ERC-20
Overview
Max Total Supply
100,000,000,000 OMEGA
Holders
144
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 11 Decimals)
Balance
573,936,097.59350830811 OMEGAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OMEGA
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-26 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.15; 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); } 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 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; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } abstract contract Ownable is Context { address internal _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } 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 { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = 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); } contract ERC20 is Context,Ownable, IERC20, IERC20Metadata { using SafeMath for uint256; 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 11; } 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); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(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 = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, 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 {} } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Pair { function factory() external view returns (address); } interface IUniswapV2Router01 { 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); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract OMEGA is ERC20 { using SafeMath for uint256; mapping (address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedFromMaxWallet; address public devWallet; address constant _burnAddress = 0x000000000000000000000000000000000000dEaD; uint256 public _buyLiquidityFee = 1; uint256 public _buyMarketingFee = 3; uint256 public _sellLiquidityFee = 1; uint256 public _sellMarketingFee = 3; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public numTokensSellToAddToLiquidity; uint256 public maxWalletBalance; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () ERC20("Omega", "OMEGA"){ numTokensSellToAddToLiquidity = 500000000 * 10 ** decimals(); devWallet = 0xC723F9E63c6ce0910EE3d99A8b2767bCF4154B72; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[_msgSender()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[devWallet] = true; _isExcludedFromMaxWallet[owner()] = true; _isExcludedFromMaxWallet[address(this)] = true; _isExcludedFromMaxWallet[_burnAddress] = true; _isExcludedFromMaxWallet[devWallet] = true; _mint(owner(), 100000000000 * 10 ** decimals()); maxWalletBalance = 700000000 * 10 ** decimals(); } function setSellFeePercent( uint256 lFee, uint256 mFee ) external onlyOwner { _sellLiquidityFee = lFee; _sellMarketingFee = mFee; } function setBuyFeePercent( uint256 lFee, uint256 mFee ) external onlyOwner { _buyLiquidityFee = lFee; _buyMarketingFee = mFee; } function setDevWallet(address _addr) external onlyOwner { devWallet = _addr; } function setNumTokensSellToAddToLiquidity(uint256 amount) external onlyOwner { numTokensSellToAddToLiquidity = amount * 10 ** decimals(); } function setSwapAndLiquifyEnabled(bool _enabled) external onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } receive() external payable {} 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"); require(amount > 0, "Transfer amount must be greater than zero"); if ( from != owner() && to != address(this) && to != _burnAddress && to != uniswapV2Pair ) { uint256 currentBalance = balanceOf(to); require( _isExcludedFromMaxWallet[to] || (currentBalance + amount <= maxWalletBalance), "ERC20: Reached Max wallet holding" ); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; if ( overMinTokenBalance && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { contractTokenBalance = numTokensSellToAddToLiquidity; swapBack(contractTokenBalance); } bool takeFee = true; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { super._transfer(from, to, amount); takeFee = false; } else { if (from == uniswapV2Pair) { uint256 liquidityTokens = amount.mul(_buyLiquidityFee).div(100); uint256 marketingTokens = amount.mul(_buyMarketingFee).div(100); amount= amount.sub(liquidityTokens.add(marketingTokens)); super._transfer(from, address(this), liquidityTokens.add(marketingTokens)); super._transfer(from, to, amount); } else if (to == uniswapV2Pair) { uint256 liquidityTokens = amount.mul(_sellLiquidityFee).div(100); uint256 marketingTokens = amount.mul(_sellMarketingFee).div(100); amount= amount.sub(liquidityTokens.add(marketingTokens)); super._transfer(from, address(this), liquidityTokens.add(marketingTokens)); super._transfer(from, to, amount); } else { super._transfer(from, to, amount); } } } function swapBack(uint256 contractBalance) private lockTheSwap { uint256 tokensForLiquidity = contractBalance.mul(_sellLiquidityFee).div(100); uint256 marketingTokens = contractBalance.mul(_sellMarketingFee).div(100); uint256 totalTokensToSwap = tokensForLiquidity + marketingTokens; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} bool success; uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; swapTokensForEth(contractBalance - liquidityTokens); uint256 ethBalance = address(this).balance; uint256 ethForLiquidity = ethBalance; uint256 ethForMarketing = ethBalance * marketingTokens / (totalTokensToSwap - (tokensForLiquidity/2)); ethForLiquidity -= ethForMarketing; if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); } (success,) = address(devWallet).call{value: ethForMarketing}(""); } 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, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } }
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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyLiquidityFee","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":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletBalance","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":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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
60806040526001600a8190556003600b819055600c91909155600d55600f805460ff60a81b1916600160a81b1790553480156200003b57600080fd5b50604051806040016040528060058152602001644f6d65676160d81b815250604051806040016040528060058152602001644f4d45474160d81b815250620000886200043260201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36005620000dd8382620005e6565b506006620000ec8282620005e6565b50620000f9915050600b90565b6200010690600a620007c5565b6200011690631dcd6500620007d6565b601055600980546001600160a01b03191673c723f9e63c6ce0910ee3d99a8b2767bcf4154b721790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa15801562000193573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b99190620007f0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000207573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022d9190620007f0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a19190620007f0565b600f80546001600160a01b03199081166001600160a01b0393841617909155600e8054909116918316919091179055600160076000620002de3390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260079093528183208054851660019081179091556009549091168352908220805490931681179092556008906200034e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260089093528183208054851660019081179091557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548616821790556009549091168352912080549092161790556200040a620003e56000546001600160a01b031690565b620003f3600b600a620007c5565b620004049064174876e800620007d6565b62000436565b62000418600b600a620007c5565b62000428906329b92700620007d6565b6011555062000838565b3390565b6001600160a01b038216620004915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b600454620004a090826200052b565b6004556001600160a01b038216600090815260026020526040902054620004c890826200052b565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200051a9085815260200190565b60405180910390a35050565b505050565b600062000539828462000822565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200056d57607f821691505b6020821081036200058e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052657600081815260208120601f850160051c81016020861015620005bd5750805b601f850160051c820191505b81811015620005de57828155600101620005c9565b505050505050565b81516001600160401b0381111562000602576200060262000542565b6200061a8162000613845462000558565b8462000594565b602080601f831160018114620006525760008415620006395750858301515b600019600386901b1c1916600185901b178555620005de565b600085815260208120601f198616915b82811015620006835788860151825594840194600190910190840162000662565b5085821015620006a25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000709578160001904821115620006ed57620006ed620006b2565b80851615620006fb57918102915b93841c9390800290620006cd565b509250929050565b60008262000722575060016200053c565b8162000731575060006200053c565b81600181146200074a5760028114620007555762000775565b60019150506200053c565b60ff841115620007695762000769620006b2565b50506001821b6200053c565b5060208310610133831016604e8410600b84101617156200079a575081810a6200053c565b620007a68383620006c8565b8060001904821115620007bd57620007bd620006b2565b029392505050565b60006200053960ff84168362000711565b80820281158282048414176200053c576200053c620006b2565b6000602082840312156200080357600080fd5b81516001600160a01b03811681146200081b57600080fd5b9392505050565b808201808211156200053c576200053c620006b2565b61191180620008486000396000f3fe6080604052600436106101c65760003560e01c80638ea5220f116100f7578063c5d2418911610095578063dd62ed3e11610064578063dd62ed3e146104e5578063f0f165af1461052b578063f2fde38b1461054b578063f9dfdaeb1461056b57600080fd5b8063c5d241891461048d578063c8607952146104a3578063d12a7688146104b9578063dc44b6a0146104cf57600080fd5b8063a9059cbb116100d1578063a9059cbb14610417578063bbde77c114610437578063be291dc61461044d578063c49b9a801461046d57600080fd5b80638ea5220f146103c257806395d89b41146103e2578063a457c2d7146103f757600080fd5b8063395093511161016457806370a082311161013e57806370a0823114610343578063715018a61461037957806388790a681461038e5780638da5cb5b146103a457600080fd5b806339509351146102e257806349bd5a5e146103025780634a74bb021461032257600080fd5b806318160ddd116101a057806318160ddd146102655780631f53ac021461028457806323b872dd146102a6578063313ce567146102c657600080fd5b806306fdde03146101d2578063095ea7b3146101fd5780631694505e1461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e761058b565b6040516101f491906113b1565b60405180910390f35b34801561020957600080fd5b5061021d610218366004611417565b61061d565b60405190151581526020016101f4565b34801561023957600080fd5b50600e5461024d906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b34801561027157600080fd5b506004545b6040519081526020016101f4565b34801561029057600080fd5b506102a461029f366004611443565b610634565b005b3480156102b257600080fd5b5061021d6102c1366004611460565b610689565b3480156102d257600080fd5b50604051600b81526020016101f4565b3480156102ee57600080fd5b5061021d6102fd366004611417565b6106f2565b34801561030e57600080fd5b50600f5461024d906001600160a01b031681565b34801561032e57600080fd5b50600f5461021d90600160a81b900460ff1681565b34801561034f57600080fd5b5061027661035e366004611443565b6001600160a01b031660009081526002602052604090205490565b34801561038557600080fd5b506102a4610728565b34801561039a57600080fd5b50610276600c5481565b3480156103b057600080fd5b506000546001600160a01b031661024d565b3480156103ce57600080fd5b5060095461024d906001600160a01b031681565b3480156103ee57600080fd5b506101e761079c565b34801561040357600080fd5b5061021d610412366004611417565b6107ab565b34801561042357600080fd5b5061021d610432366004611417565b6107fa565b34801561044357600080fd5b5061027660115481565b34801561045957600080fd5b506102a46104683660046114a1565b610807565b34801561047957600080fd5b506102a46104883660046114c3565b61083c565b34801561049957600080fd5b50610276600b5481565b3480156104af57600080fd5b50610276600d5481565b3480156104c557600080fd5b5061027660105481565b3480156104db57600080fd5b50610276600a5481565b3480156104f157600080fd5b506102766105003660046114e5565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053757600080fd5b506102a461054636600461151e565b6108be565b34801561055757600080fd5b506102a4610566366004611443565b610904565b34801561057757600080fd5b506102a46105863660046114a1565b6109ee565b60606005805461059a90611537565b80601f01602080910402602001604051908101604052809291908181526020018280546105c690611537565b80156106135780601f106105e857610100808354040283529160200191610613565b820191906000526020600020905b8154815290600101906020018083116105f657829003601f168201915b5050505050905090565b600061062a338484610a23565b5060015b92915050565b6000546001600160a01b031633146106675760405162461bcd60e51b815260040161065e90611571565b60405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610696848484610b48565b6106e884336106e38560405180606001604052806028815260200161188f602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610eaa565b610a23565b5060019392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161062a9185906106e39086610ed6565b6000546001600160a01b031633146107525760405162461bcd60e51b815260040161065e90611571565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606006805461059a90611537565b600061062a33846106e3856040518060600160405280602581526020016118b7602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190610eaa565b600061062a338484610b48565b6000546001600160a01b031633146108315760405162461bcd60e51b815260040161065e90611571565b600c91909155600d55565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161065e90611571565b600f8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906108b390831515815260200190565b60405180910390a150565b6000546001600160a01b031633146108e85760405162461bcd60e51b815260040161065e90611571565b6108f4600b600a6116a0565b6108fe90826116af565b60105550565b6000546001600160a01b0316331461092e5760405162461bcd60e51b815260040161065e90611571565b6001600160a01b0381166109935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a185760405162461bcd60e51b815260040161065e90611571565b600a91909155600b55565b6001600160a01b038316610a855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161065e565b6001600160a01b038216610ae65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161065e565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b6e5760405162461bcd60e51b815260040161065e906116c6565b6001600160a01b038216610b945760405162461bcd60e51b815260040161065e9061170b565b60008111610bf65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161065e565b6000546001600160a01b03848116911614801590610c1d57506001600160a01b0382163014155b8015610c3457506001600160a01b03821661dead14155b8015610c4e5750600f546001600160a01b03838116911614155b15610ce9576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff1680610c915750601154610c8e838361174e565b11155b610ce75760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e6044820152606760f81b606482015260840161065e565b505b3060009081526002602052604090205460105481108015908190610d175750600f54600160a01b900460ff16155b8015610d315750600f546001600160a01b03868116911614155b8015610d465750600f54600160a81b900460ff165b15610d59576010549150610d5982610ee9565b6001600160a01b03851660009081526007602052604090205460019060ff1680610d9b57506001600160a01b03851660009081526007602052604090205460ff165b15610db357610dab86868661105a565b506000610ea2565b600f546001600160a01b0390811690871603610e47576000610deb6064610de5600a548861116690919063ffffffff16565b90611172565b90506000610e096064610de5600b548961116690919063ffffffff16565b9050610e1f610e188383610ed6565b879061117e565b9550610e358830610e308585610ed6565b61105a565b610e4088888861105a565b5050610ea2565b600f546001600160a01b0390811690861603610e97576000610e796064610de5600c548861116690919063ffffffff16565b90506000610e096064610de5600d548961116690919063ffffffff16565b610ea286868661105a565b505050505050565b60008184841115610ece5760405162461bcd60e51b815260040161065e91906113b1565b505050900390565b6000610ee2828461174e565b9392505050565b600f805460ff60a01b1916600160a01b179055600c54600090610f1490606490610de5908590611166565b90506000610f326064610de5600d548661116690919063ffffffff16565b90506000610f40828461174e565b9050831580610f4d575080155b15610f5a5750505061104a565b600080600283610f6a87896116af565b610f749190611761565b610f7e9190611761565b9050610f92610f8d8288611783565b61118a565b47806000610fa1600289611761565b610fab9087611783565b610fb588856116af565b610fbf9190611761565b9050610fcb8183611783565b9150600084118015610fdd5750600082115b15610fec57610fec84836112dc565b6009546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611039576040519150601f19603f3d011682016040523d82523d6000602084013e61103e565b606091505b50505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b0383166110805760405162461bcd60e51b815260040161065e906116c6565b6001600160a01b0382166110a65760405162461bcd60e51b815260040161065e9061170b565b6110e381604051806060016040528060268152602001611869602691396001600160a01b0386166000908152600260205260409020549190610eaa565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546111129082610ed6565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b3b9085815260200190565b6000610ee282846116af565b6000610ee28284611761565b6000610ee28284611783565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111bf576111bf611796565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c91906117ac565b8160018151811061124f5761124f611796565b6001600160a01b039283166020918202929092010152600e546112759130911684610a23565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ae9085906000908690309042906004016117c9565b600060405180830381600087803b1580156112c857600080fd5b505af1158015610ea2573d6000803e3d6000fd5b600e546112f49030906001600160a01b031684610a23565b600e546001600160a01b031663f305d71982308560008061131d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611385573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113aa919061183a565b5050505050565b600060208083528351808285015260005b818110156113de578581018301518582016040015282016113c2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461141457600080fd5b50565b6000806040838503121561142a57600080fd5b8235611435816113ff565b946020939093013593505050565b60006020828403121561145557600080fd5b8135610ee2816113ff565b60008060006060848603121561147557600080fd5b8335611480816113ff565b92506020840135611490816113ff565b929592945050506040919091013590565b600080604083850312156114b457600080fd5b50508035926020909101359150565b6000602082840312156114d557600080fd5b81358015158114610ee257600080fd5b600080604083850312156114f857600080fd5b8235611503816113ff565b91506020830135611513816113ff565b809150509250929050565b60006020828403121561153057600080fd5b5035919050565b600181811c9082168061154b57607f821691505b60208210810361156b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115f75781600019048211156115dd576115dd6115a6565b808516156115ea57918102915b93841c93908002906115c1565b509250929050565b60008261160e5750600161062e565b8161161b5750600061062e565b8160018114611631576002811461163b57611657565b600191505061062e565b60ff84111561164c5761164c6115a6565b50506001821b61062e565b5060208310610133831016604e8410600b841016171561167a575081810a61062e565b61168483836115bc565b8060001904821115611698576116986115a6565b029392505050565b6000610ee260ff8416836115ff565b808202811582820484141761062e5761062e6115a6565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082018082111561062e5761062e6115a6565b60008261177e57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561062e5761062e6115a6565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117be57600080fd5b8151610ee2816113ff565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118195784516001600160a01b0316835293830193918301916001016117f4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561184f57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205dc76ac174fccefdd982d8015565a507fedbda92368a3625f851575ccfd6358c64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c80638ea5220f116100f7578063c5d2418911610095578063dd62ed3e11610064578063dd62ed3e146104e5578063f0f165af1461052b578063f2fde38b1461054b578063f9dfdaeb1461056b57600080fd5b8063c5d241891461048d578063c8607952146104a3578063d12a7688146104b9578063dc44b6a0146104cf57600080fd5b8063a9059cbb116100d1578063a9059cbb14610417578063bbde77c114610437578063be291dc61461044d578063c49b9a801461046d57600080fd5b80638ea5220f146103c257806395d89b41146103e2578063a457c2d7146103f757600080fd5b8063395093511161016457806370a082311161013e57806370a0823114610343578063715018a61461037957806388790a681461038e5780638da5cb5b146103a457600080fd5b806339509351146102e257806349bd5a5e146103025780634a74bb021461032257600080fd5b806318160ddd116101a057806318160ddd146102655780631f53ac021461028457806323b872dd146102a6578063313ce567146102c657600080fd5b806306fdde03146101d2578063095ea7b3146101fd5780631694505e1461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e761058b565b6040516101f491906113b1565b60405180910390f35b34801561020957600080fd5b5061021d610218366004611417565b61061d565b60405190151581526020016101f4565b34801561023957600080fd5b50600e5461024d906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b34801561027157600080fd5b506004545b6040519081526020016101f4565b34801561029057600080fd5b506102a461029f366004611443565b610634565b005b3480156102b257600080fd5b5061021d6102c1366004611460565b610689565b3480156102d257600080fd5b50604051600b81526020016101f4565b3480156102ee57600080fd5b5061021d6102fd366004611417565b6106f2565b34801561030e57600080fd5b50600f5461024d906001600160a01b031681565b34801561032e57600080fd5b50600f5461021d90600160a81b900460ff1681565b34801561034f57600080fd5b5061027661035e366004611443565b6001600160a01b031660009081526002602052604090205490565b34801561038557600080fd5b506102a4610728565b34801561039a57600080fd5b50610276600c5481565b3480156103b057600080fd5b506000546001600160a01b031661024d565b3480156103ce57600080fd5b5060095461024d906001600160a01b031681565b3480156103ee57600080fd5b506101e761079c565b34801561040357600080fd5b5061021d610412366004611417565b6107ab565b34801561042357600080fd5b5061021d610432366004611417565b6107fa565b34801561044357600080fd5b5061027660115481565b34801561045957600080fd5b506102a46104683660046114a1565b610807565b34801561047957600080fd5b506102a46104883660046114c3565b61083c565b34801561049957600080fd5b50610276600b5481565b3480156104af57600080fd5b50610276600d5481565b3480156104c557600080fd5b5061027660105481565b3480156104db57600080fd5b50610276600a5481565b3480156104f157600080fd5b506102766105003660046114e5565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561053757600080fd5b506102a461054636600461151e565b6108be565b34801561055757600080fd5b506102a4610566366004611443565b610904565b34801561057757600080fd5b506102a46105863660046114a1565b6109ee565b60606005805461059a90611537565b80601f01602080910402602001604051908101604052809291908181526020018280546105c690611537565b80156106135780601f106105e857610100808354040283529160200191610613565b820191906000526020600020905b8154815290600101906020018083116105f657829003601f168201915b5050505050905090565b600061062a338484610a23565b5060015b92915050565b6000546001600160a01b031633146106675760405162461bcd60e51b815260040161065e90611571565b60405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610696848484610b48565b6106e884336106e38560405180606001604052806028815260200161188f602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610eaa565b610a23565b5060019392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161062a9185906106e39086610ed6565b6000546001600160a01b031633146107525760405162461bcd60e51b815260040161065e90611571565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606006805461059a90611537565b600061062a33846106e3856040518060600160405280602581526020016118b7602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190610eaa565b600061062a338484610b48565b6000546001600160a01b031633146108315760405162461bcd60e51b815260040161065e90611571565b600c91909155600d55565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161065e90611571565b600f8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906108b390831515815260200190565b60405180910390a150565b6000546001600160a01b031633146108e85760405162461bcd60e51b815260040161065e90611571565b6108f4600b600a6116a0565b6108fe90826116af565b60105550565b6000546001600160a01b0316331461092e5760405162461bcd60e51b815260040161065e90611571565b6001600160a01b0381166109935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a185760405162461bcd60e51b815260040161065e90611571565b600a91909155600b55565b6001600160a01b038316610a855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161065e565b6001600160a01b038216610ae65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161065e565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b6e5760405162461bcd60e51b815260040161065e906116c6565b6001600160a01b038216610b945760405162461bcd60e51b815260040161065e9061170b565b60008111610bf65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161065e565b6000546001600160a01b03848116911614801590610c1d57506001600160a01b0382163014155b8015610c3457506001600160a01b03821661dead14155b8015610c4e5750600f546001600160a01b03838116911614155b15610ce9576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff1680610c915750601154610c8e838361174e565b11155b610ce75760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e6044820152606760f81b606482015260840161065e565b505b3060009081526002602052604090205460105481108015908190610d175750600f54600160a01b900460ff16155b8015610d315750600f546001600160a01b03868116911614155b8015610d465750600f54600160a81b900460ff165b15610d59576010549150610d5982610ee9565b6001600160a01b03851660009081526007602052604090205460019060ff1680610d9b57506001600160a01b03851660009081526007602052604090205460ff165b15610db357610dab86868661105a565b506000610ea2565b600f546001600160a01b0390811690871603610e47576000610deb6064610de5600a548861116690919063ffffffff16565b90611172565b90506000610e096064610de5600b548961116690919063ffffffff16565b9050610e1f610e188383610ed6565b879061117e565b9550610e358830610e308585610ed6565b61105a565b610e4088888861105a565b5050610ea2565b600f546001600160a01b0390811690861603610e97576000610e796064610de5600c548861116690919063ffffffff16565b90506000610e096064610de5600d548961116690919063ffffffff16565b610ea286868661105a565b505050505050565b60008184841115610ece5760405162461bcd60e51b815260040161065e91906113b1565b505050900390565b6000610ee2828461174e565b9392505050565b600f805460ff60a01b1916600160a01b179055600c54600090610f1490606490610de5908590611166565b90506000610f326064610de5600d548661116690919063ffffffff16565b90506000610f40828461174e565b9050831580610f4d575080155b15610f5a5750505061104a565b600080600283610f6a87896116af565b610f749190611761565b610f7e9190611761565b9050610f92610f8d8288611783565b61118a565b47806000610fa1600289611761565b610fab9087611783565b610fb588856116af565b610fbf9190611761565b9050610fcb8183611783565b9150600084118015610fdd5750600082115b15610fec57610fec84836112dc565b6009546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611039576040519150601f19603f3d011682016040523d82523d6000602084013e61103e565b606091505b50505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b0383166110805760405162461bcd60e51b815260040161065e906116c6565b6001600160a01b0382166110a65760405162461bcd60e51b815260040161065e9061170b565b6110e381604051806060016040528060268152602001611869602691396001600160a01b0386166000908152600260205260409020549190610eaa565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546111129082610ed6565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b3b9085815260200190565b6000610ee282846116af565b6000610ee28284611761565b6000610ee28284611783565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111bf576111bf611796565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c91906117ac565b8160018151811061124f5761124f611796565b6001600160a01b039283166020918202929092010152600e546112759130911684610a23565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ae9085906000908690309042906004016117c9565b600060405180830381600087803b1580156112c857600080fd5b505af1158015610ea2573d6000803e3d6000fd5b600e546112f49030906001600160a01b031684610a23565b600e546001600160a01b031663f305d71982308560008061131d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611385573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113aa919061183a565b5050505050565b600060208083528351808285015260005b818110156113de578581018301518582016040015282016113c2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461141457600080fd5b50565b6000806040838503121561142a57600080fd5b8235611435816113ff565b946020939093013593505050565b60006020828403121561145557600080fd5b8135610ee2816113ff565b60008060006060848603121561147557600080fd5b8335611480816113ff565b92506020840135611490816113ff565b929592945050506040919091013590565b600080604083850312156114b457600080fd5b50508035926020909101359150565b6000602082840312156114d557600080fd5b81358015158114610ee257600080fd5b600080604083850312156114f857600080fd5b8235611503816113ff565b91506020830135611513816113ff565b809150509250929050565b60006020828403121561153057600080fd5b5035919050565b600181811c9082168061154b57607f821691505b60208210810361156b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115f75781600019048211156115dd576115dd6115a6565b808516156115ea57918102915b93841c93908002906115c1565b509250929050565b60008261160e5750600161062e565b8161161b5750600061062e565b8160018114611631576002811461163b57611657565b600191505061062e565b60ff84111561164c5761164c6115a6565b50506001821b61062e565b5060208310610133831016604e8410600b841016171561167a575081810a61062e565b61168483836115bc565b8060001904821115611698576116986115a6565b029392505050565b6000610ee260ff8416836115ff565b808202811582820484141761062e5761062e6115a6565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082018082111561062e5761062e6115a6565b60008261177e57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561062e5761062e6115a6565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117be57600080fd5b8151610ee2816113ff565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118195784516001600160a01b0316835293830193918301916001016117f4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561184f57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205dc76ac174fccefdd982d8015565a507fedbda92368a3625f851575ccfd6358c64736f6c63430008130033
Deployed Bytecode Sourcemap
8549:8029:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3768:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4770:181;;;;;;;;;;-1:-1:-1;4770:181:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4770:181:0;1023:187:1;9084:41:0;;;;;;;;;;-1:-1:-1;9084:41:0;;;;-1:-1:-1;;;;;9084:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;9084:41:0;1215:229:1;4125:116:0;;;;;;;;;;-1:-1:-1;4217:12:0;;4125:116;;;1595:25:1;;;1583:2;1568:18;4125:116:0;1449:177:1;11215:100:0;;;;;;;;;;-1:-1:-1;11215:100:0;;;;;:::i;:::-;;:::i;:::-;;4963:387;;;;;;;;;;-1:-1:-1;4963:387:0;;;;;:::i;:::-;;:::i;4012:101::-;;;;;;;;;;-1:-1:-1;4012:101:0;;4099:2;2486:36:1;;2474:2;2459:18;4012:101:0;2344:184:1;5362:230:0;;;;;;;;;;-1:-1:-1;5362:230:0;;;;;:::i;:::-;;:::i;9136:28::-;;;;;;;;;;-1:-1:-1;9136:28:0;;;;-1:-1:-1;;;;;9136:28:0;;;9207:40;;;;;;;;;;-1:-1:-1;9207:40:0;;;;-1:-1:-1;;;9207:40:0;;;;;;4253:135;;;;;;;;;;-1:-1:-1;4253:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;4358:18:0;4327:7;4358:18;;;:9;:18;;;;;;;4253:135;2590:160;;;;;;;;;;;;;:::i;8986:36::-;;;;;;;;;;;;;;;;2323:95;;;;;;;;;;-1:-1:-1;2369:7:0;2400:6;-1:-1:-1;;;;;2400:6:0;2323:95;;8766:24;;;;;;;;;;-1:-1:-1;8766:24:0;;;;-1:-1:-1;;;;;8766:24:0;;;3888:112;;;;;;;;;;;;;:::i;5604:281::-;;;;;;;;;;-1:-1:-1;5604:281:0;;;;;:::i;:::-;;:::i;4400:187::-;;;;;;;;;;-1:-1:-1;4400:187:0;;;;;:::i;:::-;;:::i;9313:31::-;;;;;;;;;;;;;;;;10792:201;;;;;;;;;;-1:-1:-1;10792:201:0;;;;;:::i;:::-;;:::i;11502:185::-;;;;;;;;;;-1:-1:-1;11502:185:0;;;;;:::i;:::-;;:::i;8936:35::-;;;;;;;;;;;;;;;;9034:36;;;;;;;;;;;;;;;;9258:44;;;;;;;;;;;;;;;;8888:35;;;;;;;;;;;;;;;;4599:159;;;;;;;;;;-1:-1:-1;4599:159:0;;;;;:::i;:::-;-1:-1:-1;;;;;4719:18:0;;;4688:7;4719:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4599:159;11329:161;;;;;;;;;;-1:-1:-1;11329:161:0;;;;;:::i;:::-;;:::i;2762:260::-;;;;;;;;;;-1:-1:-1;2762:260:0;;;;;:::i;:::-;;:::i;11005:198::-;;;;;;;;;;-1:-1:-1;11005:198:0;;;;;:::i;:::-;;:::i;3768:108::-;3822:13;3859:5;3852:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3768:108;:::o;4770:181::-;4853:4;4874:39;1924:10;4897:7;4906:6;4874:8;:39::i;:::-;-1:-1:-1;4935:4:0;4770:181;;;;;:::o;11215:100::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;;;;;;;;;11286:9:::1;:17:::0;;-1:-1:-1;;;;;;11286:17:0::1;-1:-1:-1::0;;;;;11286:17:0;;;::::1;::::0;;;::::1;::::0;;11215:100::o;4963:387::-;5119:4;5140:36;5150:6;5158:9;5169:6;5140:9;:36::i;:::-;5191:121;5200:6;1924:10;5222:89;5260:6;5222:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5222:19:0;;;;;;:11;:19;;;;;;;;1924:10;5222:33;;;;;;;;;;:37;:89::i;:::-;5191:8;:121::i;:::-;-1:-1:-1;5334:4:0;4963:387;;;;;:::o;5362:230::-;1924:10;5450:4;5503:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5503:34:0;;;;;;;;;;5450:4;;5471:83;;5494:7;;5503:50;;5542:10;5503:38;:50::i;2590:160::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;2701:1:::1;2685:6:::0;;2664:40:::1;::::0;-1:-1:-1;;;;;2685:6:0;;::::1;::::0;2664:40:::1;::::0;2701:1;;2664:40:::1;2736:1;2719:19:::0;;-1:-1:-1;;;;;;2719:19:0::1;::::0;;2590:160::o;3888:112::-;3944:13;3981:7;3974:14;;;;;:::i;5604:281::-;5697:4;5718:129;1924:10;5741:7;5750:96;5789:15;5750:96;;;;;;;;;;;;;;;;;1924:10;5750:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5750:34:0;;;;;;;;;;;;:38;:96::i;4400:187::-;4486:4;4507:42;1924:10;4531:9;4542:6;4507:9;:42::i;10792:201::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;10918:17:::1;:24:::0;;;;10957:17:::1;:24:::0;10792:201::o;11502:185::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;11585:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;11585:32:0::1;-1:-1:-1::0;;;;11585:32:0;;::::1;;::::0;;11637:38:::1;::::0;::::1;::::0;::::1;::::0;11609:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;11637:38:0::1;;;;;;;;11502:185:::0;:::o;11329:161::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;11462:16:::1;4099:2:::0;11462::::1;:16;:::i;:::-;11453:25;::::0;:6;:25:::1;:::i;:::-;11421:29;:57:::0;-1:-1:-1;11329:161:0:o;2762:260::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2855:22:0;::::1;2847:73;;;::::0;-1:-1:-1;;;2847:73:0;;6486:2:1;2847:73:0::1;::::0;::::1;6468:21:1::0;6525:2;6505:18;;;6498:30;6564:34;6544:18;;;6537:62;-1:-1:-1;;;6615:18:1;;;6608:36;6661:19;;2847:73:0::1;6284:402:1::0;2847:73:0::1;2961:6;::::0;;2940:38:::1;::::0;-1:-1:-1;;;;;2940:38:0;;::::1;::::0;2961:6;::::1;::::0;2940:38:::1;::::0;::::1;2993:6;:17:::0;;-1:-1:-1;;;;;;2993:17:0::1;-1:-1:-1::0;;;;;2993:17:0;;;::::1;::::0;;;::::1;::::0;;2762:260::o;11005:198::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;11130:16:::1;:23:::0;;;;11168:16:::1;:23:::0;11005:198::o;6940:416::-;-1:-1:-1;;;;;7096:19:0;;7088:68;;;;-1:-1:-1;;;7088:68:0;;6893:2:1;7088:68:0;;;6875:21:1;6932:2;6912:18;;;6905:30;6971:34;6951:18;;;6944:62;-1:-1:-1;;;7022:18:1;;;7015:34;7066:19;;7088:68:0;6691:400:1;7088:68:0;-1:-1:-1;;;;;7179:21:0;;7171:68;;;;-1:-1:-1;;;7171:68:0;;7298:2:1;7171:68:0;;;7280:21:1;7337:2;7317:18;;;7310:30;7376:34;7356:18;;;7349:62;-1:-1:-1;;;7427:18:1;;;7420:32;7469:19;;7171:68:0;7096:398:1;7171:68:0;-1:-1:-1;;;;;7256:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7312:32;;1595:25:1;;;7312:32:0;;1568:18:1;7312:32:0;;;;;;;;6940:416;;;:::o;11750:2502::-;-1:-1:-1;;;;;11902:18:0;;11894:68;;;;-1:-1:-1;;;11894:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11985:16:0;;11977:64;;;;-1:-1:-1;;;11977:64:0;;;;;;;:::i;:::-;12073:1;12064:6;:10;12056:64;;;;-1:-1:-1;;;12056:64:0;;8511:2:1;12056:64:0;;;8493:21:1;8550:2;8530:18;;;8523:30;8589:34;8569:18;;;8562:62;-1:-1:-1;;;8640:18:1;;;8633:39;8689:19;;12056:64:0;8309:405:1;12056:64:0;2369:7;2400:6;-1:-1:-1;;;;;12155:15:0;;;2400:6;;12155:15;;;;:51;;-1:-1:-1;;;;;;12187:19:0;;12201:4;12187:19;;12155:51;:86;;;;-1:-1:-1;;;;;;12223:18:0;;8833:42;12223:18;;12155:86;:122;;;;-1:-1:-1;12264:13:0;;-1:-1:-1;;;;;12258:19:0;;;12264:13;;12258:19;;12155:122;12137:425;;;-1:-1:-1;;;;;4358:18:0;;12304:22;4358:18;;;:9;:18;;;;;;;;;12383:24;:28;;;;;;;;;;:98;;-1:-1:-1;12464:16:0;;12437:23;12454:6;12437:14;:23;:::i;:::-;:43;;12383:98;12357:193;;;;-1:-1:-1;;;12357:193:0;;9051:2:1;12357:193:0;;;9033:21:1;9090:2;9070:18;;;9063:30;9129:34;9109:18;;;9102:62;-1:-1:-1;;;9180:18:1;;;9173:31;9221:19;;12357:193:0;8849:397:1;12357:193:0;12289:273;12137:425;12627:4;12578:28;4358:18;;;:9;:18;;;;;;12700:29;;12676:53;;;;;;;12766:57;;-1:-1:-1;12807:16:0;;-1:-1:-1;;;12807:16:0;;;;12806:17;12766:57;:99;;;;-1:-1:-1;12852:13:0;;-1:-1:-1;;;;;12844:21:0;;;12852:13;;12844:21;;12766:99;:141;;;;-1:-1:-1;12886:21:0;;-1:-1:-1;;;12886:21:0;;;;12766:141;12744:315;;;12965:29;;12942:52;;13013:30;13022:20;13013:8;:30::i;:::-;-1:-1:-1;;;;;13113:24:0;;13075:12;13113:24;;;:18;:24;;;;;;13090:4;;13113:24;;;:50;;-1:-1:-1;;;;;;13141:22:0;;;;;;:18;:22;;;;;;;;13113:50;13109:1132;;;13184:33;13200:4;13206:2;13210:6;13184:15;:33::i;:::-;-1:-1:-1;13246:5:0;13109:1132;;;13306:13;;-1:-1:-1;;;;;13306:13:0;;;13298:21;;;;13294:936;;13340:23;13366:37;13399:3;13366:28;13377:16;;13366:6;:10;;:28;;;;:::i;:::-;:32;;:37::i;:::-;13340:63;;13422:23;13448:37;13481:3;13448:28;13459:16;;13448:6;:10;;:28;;;;:::i;:37::-;13422:63;-1:-1:-1;13512:48:0;13523:36;:15;13422:63;13523:19;:36::i;:::-;13512:6;;:10;:48::i;:::-;13504:56;-1:-1:-1;13579:74:0;13595:4;13609;13616:36;:15;13636;13616:19;:36::i;:::-;13579:15;:74::i;:::-;13672:33;13688:4;13694:2;13698:6;13672:15;:33::i;:::-;13321:402;;13294:936;;;13739:13;;-1:-1:-1;;;;;13739:13:0;;;13733:19;;;;13729:501;;13773:23;13799:38;13833:3;13799:29;13810:17;;13799:6;:10;;:29;;;;:::i;:38::-;13773:64;;13856:23;13882:38;13916:3;13882:29;13893:17;;13882:6;:10;;:29;;;;:::i;13729:501::-;14181:33;14197:4;14203:2;14207:6;14181:15;:33::i;:::-;11879:2373;;;11750:2502;;;:::o;1317:226::-;1403:7;1472:12;1464:6;;;;1456:29;;;;-1:-1:-1;;;1456:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1511:5:0;;;1317:226::o;853:106::-;911:7;942:5;946:1;942;:5;:::i;:::-;935:12;853:106;-1:-1:-1;;;853:106:0:o;14264:1275::-;9613:16;:23;;-1:-1:-1;;;;9613:23:0;-1:-1:-1;;;9613:23:0;;;14397:17:::1;::::0;9613:23;;14377:47:::1;::::0;14420:3:::1;::::0;14377:38:::1;::::0;:15;;:19:::1;:38::i;:47::-;14348:76;;14443:23;14469:47;14512:3;14469:38;14489:17;;14469:15;:19;;:38;;;;:::i;:47::-;14443:73:::0;-1:-1:-1;14537:25:0::1;14565:36;14443:73:::0;14565:18;:36:::1;:::i;:::-;14537:64:::0;-1:-1:-1;14641:20:0;;;:46:::1;;-1:-1:-1::0;14665:22:0;;14641:46:::1;14638:60;;;14690:7;;;;;14638:60;14718:12;::::0;14852:1:::1;14832:17:::0;14793:36:::1;14811:18:::0;14793:15;:36:::1;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;14767:86:::0;-1:-1:-1;14890:51:0::1;14907:33;14767:86:::0;14907:15;:33:::1;:::i;:::-;14890:16;:51::i;:::-;15000:21;::::0;14979:18:::1;15176:20;15195:1;15176:18:::0;:20:::1;:::i;:::-;15155:42;::::0;:17;:42:::1;:::i;:::-;15123:28;15136:15:::0;15123:10;:28:::1;:::i;:::-;:75;;;;:::i;:::-;15097:101:::0;-1:-1:-1;15219:34:0::1;15097:101:::0;15219:34;::::1;:::i;:::-;;;15327:1;15309:15;:19;:42;;;;;15350:1;15332:15;:19;15309:42;15306:137;;;15375:46;15388:15;15405;15375:12;:46::i;:::-;15484:9;::::0;15476:51:::1;::::0;-1:-1:-1;;;;;15484:9:0;;::::1;::::0;15507:15;;15476:51:::1;::::0;;;15507:15;15484:9;15476:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;9651:1:0::1;-1:-1:-1::0;9667:16:0;:24;;-1:-1:-1;;;;9667:24:0;;;14264:1275::o;5897:617::-;-1:-1:-1;;;;;6057:20:0;;6049:70;;;;-1:-1:-1;;;6049:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6142:23:0;;6134:71;;;;-1:-1:-1;;;6134:71:0;;;;;;;:::i;:::-;6306;6328:6;6306:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6306:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6286:17:0;;;;;;;:9;:17;;;;;;:91;;;;6415:20;;;;;;;:32;;6440:6;6415:24;:32::i;:::-;-1:-1:-1;;;;;6392:20:0;;;;;;;:9;:20;;;;;;;:55;;;;6467:35;;;;;;;;;;6495:6;1595:25:1;;1583:2;1568:18;;1449:177;1085:106:0;1143:7;1174:5;1178:1;1174;:5;:::i;1201:106::-;1259:7;1290:5;1294:1;1290;:5;:::i;969:106::-;1027:7;1058:5;1062:1;1058;:5;:::i;15558:547::-;15652:16;;;15666:1;15652:16;;;;;;;;15628:21;;15652:16;;;;;;;;;;-1:-1:-1;15652:16:0;15628:40;;15701:4;15683;15688:1;15683:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15683:23:0;;;:7;;;;;;;;;;:23;;;;15731:15;;:22;;;-1:-1:-1;;;15731:22:0;;;;:15;;;;;:20;;:22;;;;;15683:7;;15731:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15721:4;15726:1;15721:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15721:32:0;;;:7;;;;;;;;;:32;15800:15;;15768:62;;15785:4;;15800:15;15818:11;15768:8;:62::i;:::-;15845:15;;:248;;-1:-1:-1;;;15845:248:0;;-1:-1:-1;;;;;15845:15:0;;;;:66;;:248;;15930:11;;15845:15;;16008:4;;16039;;16063:15;;15845:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16117:454;16234:15;;16202:62;;16219:4;;-1:-1:-1;;;;;16234:15:0;16252:11;16202:8;:62::i;:::-;16279:15;;-1:-1:-1;;;;;16279:15:0;:31;16318:9;16355:4;16379:11;16279:15;;16503:7;2369;2400:6;-1:-1:-1;;;;;2400:6:0;;2323:95;16503:7;16279:280;;;;;;-1:-1:-1;;;;;;16279:280:0;;;-1:-1:-1;;;;;11680:15:1;;;16279:280:0;;;11662:34:1;11712:18;;;11705:34;;;;11755:18;;;11748:34;;;;11798:18;;;11791:34;11862:15;;;11841:19;;;11834:44;16529:15:0;11894:19:1;;;11887:35;11596:19;;16279:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16117:454;;:::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;622:70;567:131;:::o;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:247::-;1690:6;1743:2;1731:9;1722:7;1718:23;1714:32;1711:52;;;1759:1;1756;1749:12;1711:52;1798:9;1785:23;1817:31;1842:5;1817:31;:::i;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2741:248::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;-1:-1:-1;;2909:23:1;;;2979:2;2964:18;;;2951:32;;-1:-1:-1;2741:248:1:o;2994:273::-;3050:6;3103:2;3091:9;3082:7;3078:23;3074:32;3071:52;;;3119:1;3116;3109:12;3071:52;3158:9;3145:23;3211:5;3204:13;3197:21;3190:5;3187:32;3177:60;;3233:1;3230;3223:12;3272:388;3340:6;3348;3401:2;3389:9;3380:7;3376:23;3372:32;3369:52;;;3417:1;3414;3407:12;3369:52;3456:9;3443:23;3475:31;3500:5;3475:31;:::i;:::-;3525:5;-1:-1:-1;3582:2:1;3567:18;;3554:32;3595:33;3554:32;3595:33;:::i;:::-;3647:7;3637:17;;;3272:388;;;;;:::o;3665:180::-;3724:6;3777:2;3765:9;3756:7;3752:23;3748:32;3745:52;;;3793:1;3790;3783:12;3745:52;-1:-1:-1;3816:23:1;;3665:180;-1:-1:-1;3665:180:1:o;3850:380::-;3929:1;3925:12;;;;3972;;;3993:61;;4047:4;4039:6;4035:17;4025:27;;3993:61;4100:2;4092:6;4089:14;4069:18;4066:38;4063:161;;4146:10;4141:3;4137:20;4134:1;4127:31;4181:4;4178:1;4171:15;4209:4;4206:1;4199:15;4063:161;;3850:380;;;:::o;4235:356::-;4437:2;4419:21;;;4456:18;;;4449:30;4515:34;4510:2;4495:18;;4488:62;4582:2;4567:18;;4235:356::o;4596:127::-;4657:10;4652:3;4648:20;4645:1;4638:31;4688:4;4685:1;4678:15;4712:4;4709:1;4702:15;4728:422;4817:1;4860:5;4817:1;4874:270;4895:7;4885:8;4882:21;4874:270;;;4954:4;4950:1;4946:6;4942:17;4936:4;4933:27;4930:53;;;4963:18;;:::i;:::-;5013:7;5003:8;4999:22;4996:55;;;5033:16;;;;4996:55;5112:22;;;;5072:15;;;;4874:270;;;4878:3;4728:422;;;;;:::o;5155:806::-;5204:5;5234:8;5224:80;;-1:-1:-1;5275:1:1;5289:5;;5224:80;5323:4;5313:76;;-1:-1:-1;5360:1:1;5374:5;;5313:76;5405:4;5423:1;5418:59;;;;5491:1;5486:130;;;;5398:218;;5418:59;5448:1;5439:10;;5462:5;;;5486:130;5523:3;5513:8;5510:17;5507:43;;;5530:18;;:::i;:::-;-1:-1:-1;;5586:1:1;5572:16;;5601:5;;5398:218;;5700:2;5690:8;5687:16;5681:3;5675:4;5672:13;5668:36;5662:2;5652:8;5649:16;5644:2;5638:4;5635:12;5631:35;5628:77;5625:159;;;-1:-1:-1;5737:19:1;;;5769:5;;5625:159;5816:34;5841:8;5835:4;5816:34;:::i;:::-;5886:6;5882:1;5878:6;5874:19;5865:7;5862:32;5859:58;;;5897:18;;:::i;:::-;5935:20;;5155:806;-1:-1:-1;;;5155:806:1:o;5966:140::-;6024:5;6053:47;6094:4;6084:8;6080:19;6074:4;6053:47;:::i;6111:168::-;6184:9;;;6215;;6232:15;;;6226:22;;6212:37;6202:71;;6253:18;;:::i;7499:401::-;7701:2;7683:21;;;7740:2;7720:18;;;7713:30;7779:34;7774:2;7759:18;;7752:62;-1:-1:-1;;;7845:2:1;7830:18;;7823:35;7890:3;7875:19;;7499:401::o;7905:399::-;8107:2;8089:21;;;8146:2;8126:18;;;8119:30;8185:34;8180:2;8165:18;;8158:62;-1:-1:-1;;;8251:2:1;8236:18;;8229:33;8294:3;8279:19;;7905:399::o;8719:125::-;8784:9;;;8805:10;;;8802:36;;;8818:18;;:::i;9251:217::-;9291:1;9317;9307:132;;9361:10;9356:3;9352:20;9349:1;9342:31;9396:4;9393:1;9386:15;9424:4;9421:1;9414:15;9307:132;-1:-1:-1;9453:9:1;;9251:217::o;9473:128::-;9540:9;;;9561:11;;;9558:37;;;9575:18;;:::i;9948:127::-;10009:10;10004:3;10000:20;9997:1;9990:31;10040:4;10037:1;10030:15;10064:4;10061:1;10054:15;10080:251;10150:6;10203:2;10191:9;10182:7;10178:23;10174:32;10171:52;;;10219:1;10216;10209:12;10171:52;10251:9;10245:16;10270:31;10295:5;10270:31;:::i;10336:980::-;10598:4;10646:3;10635:9;10631:19;10677:6;10666:9;10659:25;10703:2;10741:6;10736:2;10725:9;10721:18;10714:34;10784:3;10779:2;10768:9;10764:18;10757:31;10808:6;10843;10837:13;10874:6;10866;10859:22;10912:3;10901:9;10897:19;10890:26;;10951:2;10943:6;10939:15;10925:29;;10972:1;10982:195;10996:6;10993:1;10990:13;10982:195;;;11061:13;;-1:-1:-1;;;;;11057:39:1;11045:52;;11152:15;;;;11117:12;;;;11093:1;11011:9;10982:195;;;-1:-1:-1;;;;;;;11233:32:1;;;;11228:2;11213:18;;11206:60;-1:-1:-1;;;11297:3:1;11282:19;11275:35;11194:3;10336:980;-1:-1:-1;;;10336:980:1:o;11933:306::-;12021:6;12029;12037;12090:2;12078:9;12069:7;12065:23;12061:32;12058:52;;;12106:1;12103;12096:12;12058:52;12135:9;12129:16;12119:26;;12185:2;12174:9;12170:18;12164:25;12154:35;;12229:2;12218:9;12214:18;12208:25;12198:35;;11933:306;;;;;:::o
Swarm Source
ipfs://5dc76ac174fccefdd982d8015565a507fedbda92368a3625f851575ccfd6358c
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.