ERC-20
Overview
Max Total Supply
1,000,000,000 LVT
Holders
10
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
16,826,005.471896096 LVTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
LiveVault
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-27 */ // SPDX-License-Identifier: MIT /* LiveVault - $LVT An algorithmic framework for dynamic liquidity management and market making tactics. 🌐: https://livevault.xyz 🐦: https://twitter.com/LiveVaultEth 👥: https://t.me/livevaultstrategies */ pragma solidity ^0.8.17; 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) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view 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 IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; } interface IUniswapV2Pair { function sync() external; } contract LiveVault is Context, IERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; mapping (address => uint256) private balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; string private constant _name = "LiveVault.XYZ"; string private constant _symbol = "LVT"; uint8 private constant _decimals = 9; uint256 private _tTotal = 1000000000 * 10**_decimals; uint256 public _maxWalletAmount = 20000000 * 10**_decimals; uint256 public _maxTxAmount = 20000000 * 10**_decimals; uint256 public swapTokenAtAmount = 10000000 * 10**_decimals; uint256 public forceSwapCount; address liquidityReceiver; address marketingWallet; struct BuyFees{ uint256 liquidity; uint256 marketing; } struct SellFees{ uint256 liquidity; uint256 marketing; } BuyFees public buyFee; SellFees public sellFee; uint256 private liquidityFee; uint256 private marketingFee; bool private swapping; event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity); constructor () { marketingWallet = address(0xE3c829962B9e5F642f3B09FDEeC34E550AFcE9b8); liquidityReceiver = address(0xC8D7d8bAF8cd95499Ecb0BDBc07154f69Ae49790); balances[_msgSender()] = _tTotal; buyFee.liquidity = 1; buyFee.marketing = 3; sellFee.liquidity = 1; sellFee.marketing = 3; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[address(0x00)] = true; _isExcludedFromFee[address(0xdead)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - 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) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFee[address(account)] = excluded; } receive() external payable {} function takeBuyFees(uint256 amount, address from) private returns (uint256) { uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; uint256 marketingFeeTokens = amount * buyFee.marketing / 100; balances[address(this)] += liquidityFeeToken + marketingFeeTokens; emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken); return (amount -liquidityFeeToken -marketingFeeTokens); } function takeSellFees(uint256 amount, address from) private returns (uint256) { uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; uint256 marketingFeeTokens = amount * sellFee.marketing / 100; balances[address(this)] += liquidityFeeToken + marketingFeeTokens; emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken ); return (amount -liquidityFeeToken -marketingFeeTokens); } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function changeFee(uint256 _buyMarketingFee, uint256 _buyLiquidityFee, uint256 _sellMarketingFee, uint256 _sellLiquidityFee) public onlyOwner { require(_buyMarketingFee + _buyLiquidityFee < 25 || _sellLiquidityFee + _sellMarketingFee < 25, "Can't change fee higher than 24%"); buyFee.liquidity = _buyLiquidityFee; buyFee.marketing = _buyMarketingFee; sellFee.liquidity = _sellLiquidityFee; sellFee.marketing = _sellMarketingFee; } function changeMax(uint256 _maxTx, uint256 _maxWallet, address _address) public onlyOwner { require(_maxTx + _maxWallet > _tTotal / 1000, "Should be bigger than 0,1%"); _maxTxAmount = _maxTx; _maxWalletAmount = _maxWallet; marketingWallet = _address; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { 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"); balances[from] -= amount; uint256 transferAmount = amount; bool takeFee; if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ takeFee = true; } if(takeFee){ if(to != uniswapV2Pair){ require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount"); require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount."); transferAmount = takeBuyFees(amount, to); } if(from != uniswapV2Pair){ require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount"); transferAmount = takeSellFees(amount, from); forceSwapCount += 1; if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) { swapping = true; swapBack(swapTokenAtAmount); swapping = false; forceSwapCount = 0; } if (forceSwapCount > 5 && !swapping) { swapping = true; swapBack(balanceOf(address(this))); swapping = false; forceSwapCount = 0; } } if(to != uniswapV2Pair && from != uniswapV2Pair){ require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxnsAmount"); require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount."); } } balances[to] += transferAmount; emit Transfer(from, to, transferAmount); } function swapBack(uint256 amount) private { uint256 contractBalance = amount; uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity); uint256 marketingTokens = contractBalance * (buyFee.marketing + sellFee.marketing) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity); uint256 totalTokensToSwap = liquidityTokens + marketingTokens; uint256 tokensForLiquidity = liquidityTokens.div(2); uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap); addLiquidity(tokensForLiquidity, ethForLiquidity); bool success; (success,) = address(marketingWallet).call{value: address(this).balance}(""); require(success); } 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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH {value: ethAmount} ( address(this), tokenAmount, 0, 0, liquidityReceiver, 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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","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":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"name":"changeMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokenAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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
6080604052620000126009600a620004ea565b6200002290633b9aca0062000502565b600655620000336009600a620004ea565b62000043906301312d0062000502565b600755620000546009600a620004ea565b62000064906301312d0062000502565b600855620000756009600a620004ea565b62000084906298968062000502565b6009553480156200009457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031990811673e3c829962b9e5f642f3b09fdeec34e550afce9b817909155600b805490911673c8d7d8baf8cd95499ecb0bdbc07154f69ae49790179055600654600360006200012d3390565b6001600160a01b0316815260208082019290925260409081016000908120939093556001600d8190556003600e819055600f91909155601055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001da91906200051c565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000228573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024e91906200051c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200029c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c291906200051c565b600180546001600160a01b038086166001600160a01b0319928316178355600280549185169190921617905533600090815260056020526040808220805460ff19908116851790915530835290822080548216841790557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc805482168417905561dead9091527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909116909117905590506200037d3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620003c591815260200190565b60405180910390a3505062000547565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200042c578160001904821115620004105762000410620003d5565b808516156200041e57918102915b93841c9390800290620003f0565b509250929050565b6000826200044557506001620004e4565b816200045457506000620004e4565b81600181146200046d5760028114620004785762000498565b6001915050620004e4565b60ff8411156200048c576200048c620003d5565b50506001821b620004e4565b5060208310610133831016604e8410600b8410161715620004bd575081810a620004e4565b620004c98383620003eb565b8060001904821115620004e057620004e0620003d5565b0290505b92915050565b6000620004fb60ff84168362000434565b9392505050565b8082028115828204841417620004e457620004e4620003d5565b6000602082840312156200052f57600080fd5b81516001600160a01b0381168114620004fb57600080fd5b6118fa80620005576000396000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063c589829d11610064578063c589829d146104b9578063cbfe2ae0146104cf578063dd62ed3e146104ef578063f2fde38b1461053557600080fd5b8063a9059cbb14610459578063b1192e1814610479578063c02466681461049957600080fd5b806370a082311461038c578063715018a6146103c25780637d1db4a5146103d95780638da5cb5b146103ef57806395d89b411461040d578063a457c2d71461043957600080fd5b80632b14ca561161013e5780634706240211610118578063470624021461030257806349bd5a5e1461031d5780635342acb41461033d5780636c0a24eb1461037657600080fd5b80632b14ca5614610296578063313ce567146102c657806339509351146102e257600080fd5b806303e403b01461019157806306fdde03146101ba578063095ea7b3146101f95780631694505e1461022957806318160ddd1461026157806323b872dd1461027657600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a760095481565b6040519081526020015b60405180910390f35b3480156101c657600080fd5b5060408051808201909152600d81526c2634bb32ab30bab63a172c2cad60991b60208201525b6040516101b191906114ec565b34801561020557600080fd5b50610219610214366004611552565b610555565b60405190151581526020016101b1565b34801561023557600080fd5b50600154610249906001600160a01b031681565b6040516001600160a01b0390911681526020016101b1565b34801561026d57600080fd5b506006546101a7565b34801561028257600080fd5b5061021961029136600461157e565b61056c565b3480156102a257600080fd5b50600f546010546102b1919082565b604080519283526020830191909152016101b1565b3480156102d257600080fd5b50604051600981526020016101b1565b3480156102ee57600080fd5b506102196102fd366004611552565b6105be565b34801561030e57600080fd5b50600d54600e546102b1919082565b34801561032957600080fd5b50600254610249906001600160a01b031681565b34801561034957600080fd5b506102196103583660046115bf565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561038257600080fd5b506101a760075481565b34801561039857600080fd5b506101a76103a73660046115bf565b6001600160a01b031660009081526003602052604090205490565b3480156103ce57600080fd5b506103d76105f5565b005b3480156103e557600080fd5b506101a760085481565b3480156103fb57600080fd5b506000546001600160a01b0316610249565b34801561041957600080fd5b5060408051808201909152600381526213159560ea1b60208201526101ec565b34801561044557600080fd5b50610219610454366004611552565b610672565b34801561046557600080fd5b50610219610474366004611552565b6106a9565b34801561048557600080fd5b506103d76104943660046115dc565b6106b6565b3480156104a557600080fd5b506103d76104b436600461160e565b610761565b3480156104c557600080fd5b506101a7600a5481565b3480156104db57600080fd5b506103d76104ea36600461164c565b6107b6565b3480156104fb57600080fd5b506101a761050a366004611685565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561054157600080fd5b506103d76105503660046115bf565b610871565b600061056233848461095b565b5060015b92915050565b6000610579848484610a7f565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546105b49186916105af9086906116c9565b61095b565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105629185906105af9086906116dc565b6000546001600160a01b031633146106285760405162461bcd60e51b815260040161061f906116ef565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105629185906105af9086906116c9565b6000610562338484610a7f565b6000546001600160a01b031633146106e05760405162461bcd60e51b815260040161061f906116ef565b60196106ec84866116dc565b1080610701575060196106ff83836116dc565b105b61074d5760405162461bcd60e51b815260206004820181905260248201527f43616e2774206368616e67652066656520686967686572207468616e20323425604482015260640161061f565b600d92909255600e92909255600f55601055565b6000546001600160a01b0316331461078b5760405162461bcd60e51b815260040161061f906116ef565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107e05760405162461bcd60e51b815260040161061f906116ef565b6103e86006546107f09190611724565b6107fa83856116dc565b116108475760405162461bcd60e51b815260206004820152601a60248201527f53686f756c6420626520626967676572207468616e20302c3125000000000000604482015260640161061f565b600892909255600755600c80546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b0316331461089b5760405162461bcd60e51b815260040161061f906116ef565b6001600160a01b0381166109005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161061f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161061f565b6001600160a01b038216610a1e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161061f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ae35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161061f565b6001600160a01b038216610b455760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161061f565b60008111610ba75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161061f565b6001600160a01b03831660009081526003602052604081208054839290610bcf9084906116c9565b90915550506001600160a01b03831660009081526005602052604081205482919060ff16158015610c1957506001600160a01b03841660009081526005602052604090205460ff16155b15610c22575060015b8015610e60576002546001600160a01b03858116911614610cb757600854831115610c5f5760405162461bcd60e51b815260040161061f90611746565b60075483610c82866001600160a01b031660009081526003602052604090205490565b610c8c91906116dc565b1115610caa5760405162461bcd60e51b815260040161061f9061178f565b610cb48385610ee3565b91505b6002546001600160a01b03868116911614610dc257600854831115610cee5760405162461bcd60e51b815260040161061f90611746565b610cf88386610fba565b91506001600a6000828254610d0d91906116dc565b90915550506009543060009081526003602052604090205410158015610d36575060135460ff16155b15610d64576013805460ff19166001179055600954610d5490610ff1565b6013805460ff191690556000600a555b6005600a54118015610d79575060135460ff16155b15610dc2576013805460ff19166001179055610db2610dad306001600160a01b031660009081526003602052604090205490565b610ff1565b6013805460ff191690556000600a555b6002546001600160a01b03858116911614801590610dee57506002546001600160a01b03868116911614155b15610e6057600854831115610e155760405162461bcd60e51b815260040161061f90611746565b60075483610e38866001600160a01b031660009081526003602052604090205490565b610e4291906116dc565b1115610e605760405162461bcd60e51b815260040161061f9061178f565b6001600160a01b03841660009081526003602052604081208054849290610e889084906116dc565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ed491815260200190565b60405180910390a35050505050565b6000806064600d6000015485610ef991906117db565b610f039190611724565b905060006064600d6001015486610f1a91906117db565b610f249190611724565b9050610f3081836116dc565b3060009081526003602052604081208054909190610f4f9084906116dc565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f8b85856116dc565b60405190815260200160405180910390a380610fa783876116c9565b610fb191906116c9565b95945050505050565b6000806064600f6000015485610fd091906117db565b610fda9190611724565b905060006064600f6001015486610f1a91906117db565b600f54601054600d54600e5484936000939092909161101091906116dc565b61101a91906116dc565b61102491906116dc565b600f54600d5461103491906116dc565b61103e90846117db565b6110489190611724565b600f54601054600d54600e5493945060009361106491906116dc565b61106e91906116dc565b61107891906116dc565b601054600e5461108891906116dc565b61109290856117db565b61109c9190611724565b905060006110aa82846116dc565b905060006110b9846002611172565b905060006110c786836111bb565b9050476110d3826111fd565b60006110df47836111bb565b905060006110f7866110f1848b611357565b90611172565b905061110385826113d9565b600c546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611150576040519150601f19603f3d011682016040523d82523d6000602084013e611155565b606091505b5050809150508061116557600080fd5b5050505050505050505050565b60006111b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061148d565b9392505050565b60006111b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114bb565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611232576112326117f2565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561128b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112af9190611808565b816001815181106112c2576112c26117f2565b6001600160a01b0392831660209182029290920101526001546112e8913091168461095b565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611321908590600090869030904290600401611825565b600060405180830381600087803b15801561133b57600080fd5b505af115801561134f573d6000803e3d6000fd5b505050505050565b60008260000361136957506000610566565b600061137583856117db565b9050826113828583611724565b146111b45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161061f565b6001546113f19030906001600160a01b03168461095b565b600154600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611461573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114869190611896565b5050505050565b600081836114ae5760405162461bcd60e51b815260040161061f91906114ec565b506000610fb18486611724565b600081848411156114df5760405162461bcd60e51b815260040161061f91906114ec565b506000610fb184866116c9565b600060208083528351808285015260005b81811015611519578581018301518582016040015282016114fd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461154f57600080fd5b50565b6000806040838503121561156557600080fd5b82356115708161153a565b946020939093013593505050565b60008060006060848603121561159357600080fd5b833561159e8161153a565b925060208401356115ae8161153a565b929592945050506040919091013590565b6000602082840312156115d157600080fd5b81356111b48161153a565b600080600080608085870312156115f257600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561162157600080fd5b823561162c8161153a565b91506020830135801515811461164157600080fd5b809150509250929050565b60008060006060848603121561166157600080fd5b8335925060208401359150604084013561167a8161153a565b809150509250925092565b6000806040838503121561169857600080fd5b82356116a38161153a565b915060208301356116418161153a565b634e487b7160e01b600052601160045260246000fd5b81810381811115610566576105666116b3565b80820180821115610566576105666116b3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261174157634e487b7160e01b600052601260045260246000fd5b500490565b60208082526029908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152681e1b9cd05b5bdd5b9d60ba1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b8082028115828204841417610566576105666116b3565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561181a57600080fd5b81516111b48161153a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118755784516001600160a01b031683529383019391830191600101611850565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156118ab57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220440eecb3f2f4af1f99915b194629c53d661874e681d2760a14901c7a46c3e86664736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063c589829d11610064578063c589829d146104b9578063cbfe2ae0146104cf578063dd62ed3e146104ef578063f2fde38b1461053557600080fd5b8063a9059cbb14610459578063b1192e1814610479578063c02466681461049957600080fd5b806370a082311461038c578063715018a6146103c25780637d1db4a5146103d95780638da5cb5b146103ef57806395d89b411461040d578063a457c2d71461043957600080fd5b80632b14ca561161013e5780634706240211610118578063470624021461030257806349bd5a5e1461031d5780635342acb41461033d5780636c0a24eb1461037657600080fd5b80632b14ca5614610296578063313ce567146102c657806339509351146102e257600080fd5b806303e403b01461019157806306fdde03146101ba578063095ea7b3146101f95780631694505e1461022957806318160ddd1461026157806323b872dd1461027657600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a760095481565b6040519081526020015b60405180910390f35b3480156101c657600080fd5b5060408051808201909152600d81526c2634bb32ab30bab63a172c2cad60991b60208201525b6040516101b191906114ec565b34801561020557600080fd5b50610219610214366004611552565b610555565b60405190151581526020016101b1565b34801561023557600080fd5b50600154610249906001600160a01b031681565b6040516001600160a01b0390911681526020016101b1565b34801561026d57600080fd5b506006546101a7565b34801561028257600080fd5b5061021961029136600461157e565b61056c565b3480156102a257600080fd5b50600f546010546102b1919082565b604080519283526020830191909152016101b1565b3480156102d257600080fd5b50604051600981526020016101b1565b3480156102ee57600080fd5b506102196102fd366004611552565b6105be565b34801561030e57600080fd5b50600d54600e546102b1919082565b34801561032957600080fd5b50600254610249906001600160a01b031681565b34801561034957600080fd5b506102196103583660046115bf565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561038257600080fd5b506101a760075481565b34801561039857600080fd5b506101a76103a73660046115bf565b6001600160a01b031660009081526003602052604090205490565b3480156103ce57600080fd5b506103d76105f5565b005b3480156103e557600080fd5b506101a760085481565b3480156103fb57600080fd5b506000546001600160a01b0316610249565b34801561041957600080fd5b5060408051808201909152600381526213159560ea1b60208201526101ec565b34801561044557600080fd5b50610219610454366004611552565b610672565b34801561046557600080fd5b50610219610474366004611552565b6106a9565b34801561048557600080fd5b506103d76104943660046115dc565b6106b6565b3480156104a557600080fd5b506103d76104b436600461160e565b610761565b3480156104c557600080fd5b506101a7600a5481565b3480156104db57600080fd5b506103d76104ea36600461164c565b6107b6565b3480156104fb57600080fd5b506101a761050a366004611685565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561054157600080fd5b506103d76105503660046115bf565b610871565b600061056233848461095b565b5060015b92915050565b6000610579848484610a7f565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546105b49186916105af9086906116c9565b61095b565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105629185906105af9086906116dc565b6000546001600160a01b031633146106285760405162461bcd60e51b815260040161061f906116ef565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916105629185906105af9086906116c9565b6000610562338484610a7f565b6000546001600160a01b031633146106e05760405162461bcd60e51b815260040161061f906116ef565b60196106ec84866116dc565b1080610701575060196106ff83836116dc565b105b61074d5760405162461bcd60e51b815260206004820181905260248201527f43616e2774206368616e67652066656520686967686572207468616e20323425604482015260640161061f565b600d92909255600e92909255600f55601055565b6000546001600160a01b0316331461078b5760405162461bcd60e51b815260040161061f906116ef565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107e05760405162461bcd60e51b815260040161061f906116ef565b6103e86006546107f09190611724565b6107fa83856116dc565b116108475760405162461bcd60e51b815260206004820152601a60248201527f53686f756c6420626520626967676572207468616e20302c3125000000000000604482015260640161061f565b600892909255600755600c80546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b0316331461089b5760405162461bcd60e51b815260040161061f906116ef565b6001600160a01b0381166109005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161061f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161061f565b6001600160a01b038216610a1e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161061f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ae35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161061f565b6001600160a01b038216610b455760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161061f565b60008111610ba75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161061f565b6001600160a01b03831660009081526003602052604081208054839290610bcf9084906116c9565b90915550506001600160a01b03831660009081526005602052604081205482919060ff16158015610c1957506001600160a01b03841660009081526005602052604090205460ff16155b15610c22575060015b8015610e60576002546001600160a01b03858116911614610cb757600854831115610c5f5760405162461bcd60e51b815260040161061f90611746565b60075483610c82866001600160a01b031660009081526003602052604090205490565b610c8c91906116dc565b1115610caa5760405162461bcd60e51b815260040161061f9061178f565b610cb48385610ee3565b91505b6002546001600160a01b03868116911614610dc257600854831115610cee5760405162461bcd60e51b815260040161061f90611746565b610cf88386610fba565b91506001600a6000828254610d0d91906116dc565b90915550506009543060009081526003602052604090205410158015610d36575060135460ff16155b15610d64576013805460ff19166001179055600954610d5490610ff1565b6013805460ff191690556000600a555b6005600a54118015610d79575060135460ff16155b15610dc2576013805460ff19166001179055610db2610dad306001600160a01b031660009081526003602052604090205490565b610ff1565b6013805460ff191690556000600a555b6002546001600160a01b03858116911614801590610dee57506002546001600160a01b03868116911614155b15610e6057600854831115610e155760405162461bcd60e51b815260040161061f90611746565b60075483610e38866001600160a01b031660009081526003602052604090205490565b610e4291906116dc565b1115610e605760405162461bcd60e51b815260040161061f9061178f565b6001600160a01b03841660009081526003602052604081208054849290610e889084906116dc565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ed491815260200190565b60405180910390a35050505050565b6000806064600d6000015485610ef991906117db565b610f039190611724565b905060006064600d6001015486610f1a91906117db565b610f249190611724565b9050610f3081836116dc565b3060009081526003602052604081208054909190610f4f9084906116dc565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f8b85856116dc565b60405190815260200160405180910390a380610fa783876116c9565b610fb191906116c9565b95945050505050565b6000806064600f6000015485610fd091906117db565b610fda9190611724565b905060006064600f6001015486610f1a91906117db565b600f54601054600d54600e5484936000939092909161101091906116dc565b61101a91906116dc565b61102491906116dc565b600f54600d5461103491906116dc565b61103e90846117db565b6110489190611724565b600f54601054600d54600e5493945060009361106491906116dc565b61106e91906116dc565b61107891906116dc565b601054600e5461108891906116dc565b61109290856117db565b61109c9190611724565b905060006110aa82846116dc565b905060006110b9846002611172565b905060006110c786836111bb565b9050476110d3826111fd565b60006110df47836111bb565b905060006110f7866110f1848b611357565b90611172565b905061110385826113d9565b600c546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611150576040519150601f19603f3d011682016040523d82523d6000602084013e611155565b606091505b5050809150508061116557600080fd5b5050505050505050505050565b60006111b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061148d565b9392505050565b60006111b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114bb565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611232576112326117f2565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561128b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112af9190611808565b816001815181106112c2576112c26117f2565b6001600160a01b0392831660209182029290920101526001546112e8913091168461095b565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611321908590600090869030904290600401611825565b600060405180830381600087803b15801561133b57600080fd5b505af115801561134f573d6000803e3d6000fd5b505050505050565b60008260000361136957506000610566565b600061137583856117db565b9050826113828583611724565b146111b45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161061f565b6001546113f19030906001600160a01b03168461095b565b600154600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611461573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114869190611896565b5050505050565b600081836114ae5760405162461bcd60e51b815260040161061f91906114ec565b506000610fb18486611724565b600081848411156114df5760405162461bcd60e51b815260040161061f91906114ec565b506000610fb184866116c9565b600060208083528351808285015260005b81811015611519578581018301518582016040015282016114fd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461154f57600080fd5b50565b6000806040838503121561156557600080fd5b82356115708161153a565b946020939093013593505050565b60008060006060848603121561159357600080fd5b833561159e8161153a565b925060208401356115ae8161153a565b929592945050506040919091013590565b6000602082840312156115d157600080fd5b81356111b48161153a565b600080600080608085870312156115f257600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561162157600080fd5b823561162c8161153a565b91506020830135801515811461164157600080fd5b809150509250929050565b60008060006060848603121561166157600080fd5b8335925060208401359150604084013561167a8161153a565b809150509250925092565b6000806040838503121561169857600080fd5b82356116a38161153a565b915060208301356116418161153a565b634e487b7160e01b600052601160045260246000fd5b81810381811115610566576105666116b3565b80820180821115610566576105666116b3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261174157634e487b7160e01b600052601260045260246000fd5b500490565b60208082526029908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152681e1b9cd05b5bdd5b9d60ba1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b8082028115828204841417610566576105666116b3565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561181a57600080fd5b81516111b48161153a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118755784516001600160a01b031683529383019391830191600101611850565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156118ab57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220440eecb3f2f4af1f99915b194629c53d661874e681d2760a14901c7a46c3e86664736f6c63430008120033
Deployed Bytecode Sourcemap
4881:10527:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5580:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5580:59:0;;;;;;;;7176:83;;;;;;;;;;-1:-1:-1;7246:5:0;;;;;;;;;;;;-1:-1:-1;;;7246:5:0;;;;7176:83;;;;;;;:::i;8008:161::-;;;;;;;;;;-1:-1:-1;8008:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8008:161:0;1205:187:1;4968:41:0;;;;;;;;;;-1:-1:-1;4968:41:0;;;;-1:-1:-1;;;;;4968:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4968:41:0;1397:229:1;7453:95:0;;;;;;;;;;-1:-1:-1;7533:7:0;;7453:95;;8177:266;;;;;;;;;;-1:-1:-1;8177:266:0;;;;;:::i;:::-;;:::i;5949:23::-;;;;;;;;;;-1:-1:-1;5949:23:0;;;;;;;;;;;;;2266:25:1;;;2322:2;2307:18;;2300:34;;;;2239:18;5949:23:0;2092:248:1;7362:83:0;;;;;;;;;;-1:-1:-1;7362:83:0;;5383:1;2487:36:1;;2475:2;2460:18;7362:83:0;2345:184:1;8451:215:0;;;;;;;;;;-1:-1:-1;8451:215:0;;;;;:::i;:::-;;:::i;5921:21::-;;;;;;;;;;-1:-1:-1;5921:21:0;;;;;;;;;5018:28;;;;;;;;;;-1:-1:-1;5018:28:0;;;;-1:-1:-1;;;;;5018:28:0;;;10032:123;;;;;;;;;;-1:-1:-1;10032:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10120:27:0;10096:4;10120:27;;;:18;:27;;;;;;;;;10032:123;5454:58;;;;;;;;;;;;;;;;7556:118;;;;;;;;;;-1:-1:-1;7556:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7649:17:0;7622:7;7649:17;;;:8;:17;;;;;;;7556:118;3342:148;;;;;;;;;;;;;:::i;:::-;;5519:54;;;;;;;;;;;;;;;;3128:79;;;;;;;;;;-1:-1:-1;3166:7:0;3193:6;-1:-1:-1;;;;;3193:6:0;3128:79;;7267:87;;;;;;;;;;-1:-1:-1;7339:7:0;;;;;;;;;;;;-1:-1:-1;;;7339:7:0;;;;7267:87;;8674:225;;;;;;;;;;-1:-1:-1;8674:225:0;;;;;:::i;:::-;;:::i;7682:167::-;;;;;;;;;;-1:-1:-1;7682:167:0;;;;;:::i;:::-;;:::i;10163:492::-;;;;;;;;;;-1:-1:-1;10163:492:0;;;;;:::i;:::-;;:::i;8911:140::-;;;;;;;;;;-1:-1:-1;8911:140:0;;;;;:::i;:::-;;:::i;5646:29::-;;;;;;;;;;;;;;;;10663:275;;;;;;;;;;-1:-1:-1;10663:275:0;;;;;:::i;:::-;;:::i;7857:143::-;;;;;;;;;;-1:-1:-1;7857:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7965:18:0;;;7938:7;7965:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7857:143;3498:244;;;;;;;;;;-1:-1:-1;3498:244:0;;;;;:::i;:::-;;:::i;8008:161::-;8083:4;8100:39;2660:10;8123:7;8132:6;8100:8;:39::i;:::-;-1:-1:-1;8157:4:0;8008:161;;;;;:::o;8177:266::-;8275:4;8292:36;8302:6;8310:9;8321:6;8292:9;:36::i;:::-;-1:-1:-1;;;;;8370:19:0;;;;;;:11;:19;;;;;;;;2660:10;8370:33;;;;;;;;;8339:74;;8348:6;;8370:42;;8406:6;;8370:42;:::i;:::-;8339:8;:74::i;:::-;-1:-1:-1;8431:4:0;8177:266;;;;;:::o;8451:215::-;2660:10;8539:4;8588:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8588:34:0;;;;;;;;;;8539:4;;8556:80;;8579:7;;8588:47;;8625:10;;8588:47;:::i;3342:148::-;3255:6;;-1:-1:-1;;;;;3255:6:0;2660:10;3255:22;3247:67;;;;-1:-1:-1;;;3247:67:0;;;;;;;:::i;:::-;;;;;;;;;3449:1:::1;3433:6:::0;;3412:40:::1;::::0;-1:-1:-1;;;;;3433:6:0;;::::1;::::0;3412:40:::1;::::0;3449:1;;3412:40:::1;3480:1;3463:19:::0;;-1:-1:-1;;;;;;3463:19:0::1;::::0;;3342:148::o;8674:225::-;2660:10;8767:4;8816:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8816:34:0;;;;;;;;;;8767:4;;8784:85;;8807:7;;8816:52;;8853:15;;8816:52;:::i;7682:167::-;7760:4;7777:42;2660:10;7801:9;7812:6;7777:9;:42::i;10163:492::-;3255:6;;-1:-1:-1;;;;;3255:6:0;2660:10;3255:22;3247:67;;;;-1:-1:-1;;;3247:67:0;;;;;;;:::i;:::-;10362:2:::1;10324:35;10343:16:::0;10324;:35:::1;:::i;:::-;:40;:86;;;-1:-1:-1::0;10408:2:0::1;10368:37;10388:17:::0;10368;:37:::1;:::i;:::-;:42;10324:86;10316:131;;;::::0;-1:-1:-1;;;10316:131:0;;5544:2:1;10316:131:0::1;::::0;::::1;5526:21:1::0;;;5563:18;;;5556:30;5622:34;5602:18;;;5595:62;5674:18;;10316:131:0::1;5342:356:1::0;10316:131:0::1;10468:6;:35:::0;;;;10514:16;:35;;;;10562:7:::1;:37:::0;10610:17;:37;10163:492::o;8911:140::-;3255:6;;-1:-1:-1;;;;;3255:6:0;2660:10;3255:22;3247:67;;;;-1:-1:-1;;;3247:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8996:36:0;;;::::1;;::::0;;;:18:::1;:36;::::0;;;;:47;;-1:-1:-1;;8996:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8911:140::o;10663:275::-;3255:6;;-1:-1:-1;;;;;3255:6:0;2660:10;3255:22;3247:67;;;;-1:-1:-1;;;3247:67:0;;;;;;;:::i;:::-;10804:4:::1;10794:7;;:14;;;;:::i;:::-;10772:19;10781:10:::0;10772:6;:19:::1;:::i;:::-;:36;10764:75;;;::::0;-1:-1:-1;;;10764:75:0;;6127:2:1;10764:75:0::1;::::0;::::1;6109:21:1::0;6166:2;6146:18;;;6139:30;6205:28;6185:18;;;6178:56;6251:18;;10764:75:0::1;5925:350:1::0;10764:75:0::1;10850:12;:21:::0;;;;10873:16:::1;:29:::0;10904:15:::1;:26:::0;;-1:-1:-1;;;;;;10904:26:0::1;-1:-1:-1::0;;;;;10904:26:0;;::::1;::::0;;;::::1;::::0;;10663:275::o;3498:244::-;3255:6;;-1:-1:-1;;;;;3255:6:0;2660:10;3255:22;3247:67;;;;-1:-1:-1;;;3247:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3587:22:0;::::1;3579:73;;;::::0;-1:-1:-1;;;3579:73:0;;6482:2:1;3579:73:0::1;::::0;::::1;6464:21:1::0;6521:2;6501:18;;;6494:30;6560:34;6540:18;;;6533:62;-1:-1:-1;;;6611:18:1;;;6604:36;6657:19;;3579:73:0::1;6280:402:1::0;3579:73:0::1;3689:6;::::0;;3668:38:::1;::::0;-1:-1:-1;;;;;3668:38:0;;::::1;::::0;3689:6;::::1;::::0;3668:38:::1;::::0;::::1;3717:6;:17:::0;;-1:-1:-1;;;;;;3717:17:0::1;-1:-1:-1::0;;;;;3717:17:0;;;::::1;::::0;;;::::1;::::0;;3498:244::o;10946:337::-;-1:-1:-1;;;;;11039:19:0;;11031:68;;;;-1:-1:-1;;;11031:68:0;;6889:2:1;11031:68:0;;;6871:21:1;6928:2;6908:18;;;6901:30;6967:34;6947:18;;;6940:62;-1:-1:-1;;;7018:18:1;;;7011:34;7062:19;;11031:68:0;6687:400:1;11031:68:0;-1:-1:-1;;;;;11118:21:0;;11110:68;;;;-1:-1:-1;;;11110:68:0;;7294:2:1;11110:68:0;;;7276:21:1;7333:2;7313:18;;;7306:30;7372:34;7352:18;;;7345:62;-1:-1:-1;;;7423:18:1;;;7416:32;7465:19;;11110:68:0;7092:398:1;11110:68:0;-1:-1:-1;;;;;11191:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11243:32;;160:25:1;;;11243:32:0;;133:18:1;11243:32:0;;;;;;;10946:337;;;:::o;11291:2094::-;-1:-1:-1;;;;;11413:18:0;;11405:68;;;;-1:-1:-1;;;11405:68:0;;7697:2:1;11405:68:0;;;7679:21:1;7736:2;7716:18;;;7709:30;7775:34;7755:18;;;7748:62;-1:-1:-1;;;7826:18:1;;;7819:35;7871:19;;11405:68:0;7495:401:1;11405:68:0;-1:-1:-1;;;;;11492:16:0;;11484:64;;;;-1:-1:-1;;;11484:64:0;;8103:2:1;11484:64:0;;;8085:21:1;8142:2;8122:18;;;8115:30;8181:34;8161:18;;;8154:62;-1:-1:-1;;;8232:18:1;;;8225:33;8275:19;;11484:64:0;7901:399:1;11484:64:0;11576:1;11567:6;:10;11559:64;;;;-1:-1:-1;;;11559:64:0;;8507:2:1;11559:64:0;;;8489:21:1;8546:2;8526:18;;;8519:30;8585:34;8565:18;;;8558:62;-1:-1:-1;;;8636:18:1;;;8629:39;8685:19;;11559:64:0;8305:405:1;11559:64:0;-1:-1:-1;;;;;11644:14:0;;;;;;:8;:14;;;;;:24;;11662:6;;11644:14;:24;;11662:6;;11644:24;:::i;:::-;;;;-1:-1:-1;;;;;;;11760:24:0;;11679:22;11760:24;;;:18;:24;;;;;;11704:6;;11679:22;11760:24;;11759:25;:52;;;;-1:-1:-1;;;;;;11789:22:0;;;;;;:18;:22;;;;;;;;11788:23;11759:52;11756:97;;;-1:-1:-1;11837:4:0;11756:97;11868:7;11865:1412;;;11900:13;;-1:-1:-1;;;;;11894:19:0;;;11900:13;;11894:19;11891:311;;11951:12;;11941:6;:22;;11933:76;;;;-1:-1:-1;;;11933:76:0;;;;;;;:::i;:::-;12062:16;;12052:6;12036:13;12046:2;-1:-1:-1;;;;;7649:17:0;7622:7;7649:17;;;:8;:17;;;;;;;7556:118;12036:13;:22;;;;:::i;:::-;:42;;12028:99;;;;-1:-1:-1;;;12028:99:0;;;;;;;:::i;:::-;12163:23;12175:6;12183:2;12163:11;:23::i;:::-;12146:40;;11891:311;12229:13;;-1:-1:-1;;;;;12221:21:0;;;12229:13;;12221:21;12218:755;;12280:12;;12270:6;:22;;12262:76;;;;-1:-1:-1;;;12262:76:0;;;;;;;:::i;:::-;12374:26;12387:6;12395:4;12374:12;:26::i;:::-;12357:43;;12437:1;12419:14;;:19;;;;;;;:::i;:::-;;;;-1:-1:-1;;12490:17:0;;12480:4;7622:7;7649:17;;;:8;:17;;;;;;12462:45;;:58;;;;-1:-1:-1;12512:8:0;;;;12511:9;12462:58;12458:250;;;12545:8;:15;;-1:-1:-1;;12545:15:0;12556:4;12545:15;;;12592:17;;12583:27;;:8;:27::i;:::-;12633:8;:16;;-1:-1:-1;;12633:16:0;;;12644:5;12672:14;:18;12458:250;12749:1;12732:14;;:18;:31;;;;-1:-1:-1;12755:8:0;;;;12754:9;12732:31;12728:230;;;12788:8;:15;;-1:-1:-1;;12788:15:0;12799:4;12788:15;;;12826:34;12835:24;12853:4;-1:-1:-1;;;;;7649:17:0;7622:7;7649:17;;;:8;:17;;;;;;;7556:118;12835:24;12826:8;:34::i;:::-;12883:8;:16;;-1:-1:-1;;12883:16:0;;;12894:5;12922:14;:18;12728:230;12998:13;;-1:-1:-1;;;;;12992:19:0;;;12998:13;;12992:19;;;;:44;;-1:-1:-1;13023:13:0;;-1:-1:-1;;;;;13015:21:0;;;13023:13;;13015:21;;12992:44;12989:277;;;13074:12;;13064:6;:22;;13056:76;;;;-1:-1:-1;;;13056:76:0;;;;;;;:::i;:::-;13185:16;;13175:6;13159:13;13169:2;-1:-1:-1;;;;;7649:17:0;7622:7;7649:17;;;:8;:17;;;;;;;7556:118;13159:13;:22;;;;:::i;:::-;:42;;13151:99;;;;-1:-1:-1;;;13151:99:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13297:12:0;;;;;;:8;:12;;;;;:30;;13313:14;;13297:12;:30;;13313:14;;13297:30;:::i;:::-;;;;;;;;13358:2;-1:-1:-1;;;;;13343:34:0;13352:4;-1:-1:-1;;;;;13343:34:0;;13362:14;13343:34;;;;160:25:1;;148:2;133:18;;14:177;13343:34:0;;;;;;;;11394:1991;;11291:2094;;;:::o;9100:456::-;9168:7;9188:25;9244:3;9225:6;:16;;;9216:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9188:59;;9259:26;9316:3;9297:6;:16;;;9288:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9259:60;-1:-1:-1;9359:38:0;9259:60;9359:17;:38;:::i;:::-;9349:4;9332:23;;;;:8;:23;;;;;:65;;:23;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;9437:4:0;;-1:-1:-1;;;;;;9413:70:0;;;9444:38;9465:17;9444:18;:38;:::i;:::-;9413:70;;160:25:1;;;148:2;133:18;9413:70:0;;;;;;;9529:18;9502:25;9510:17;9502:6;:25;:::i;:::-;:45;;;;:::i;:::-;9494:54;9100:456;-1:-1:-1;;;;;9100:456:0:o;9564:460::-;9633:7;9653:25;9710:3;9690:7;:17;;;9681:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9653:60;;9725:26;9783:3;9763:7;:17;;;9754:6;:26;;;;:::i;13396:1144::-;13636:7;:17;13616;;13597:6;:16;13578;;13475:6;;13449:23;;13636:17;;13616;;13578:35;;13597:16;13578:35;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;13556:7;:17;13537:6;:16;:36;;13556:17;13537:36;:::i;:::-;13518:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;13809:7;:17;13789;;13770:6;:16;13751;;13492:162;;-1:-1:-1;13665:23:0;;13751:35;;13770:16;13751:35;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;13729:17;;13710:16;;:36;;13729:17;13710:36;:::i;:::-;13691:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;13665:162;-1:-1:-1;13838:25:0;13866:33;13665:162;13866:15;:33;:::i;:::-;13838:61;-1:-1:-1;13920:26:0;13949:22;:15;13969:1;13949:19;:22::i;:::-;13920:51;-1:-1:-1;13982:26:0;14011:39;:15;13920:51;14011:19;:39::i;:::-;13982:68;-1:-1:-1;14089:21:0;14121:36;13982:68;14121:16;:36::i;:::-;14169:18;14190:44;:21;14216:17;14190:25;:44::i;:::-;14169:65;-1:-1:-1;14255:23:0;14281:54;14317:17;14281:31;14169:65;14296:15;14281:14;:31::i;:::-;:35;;:54::i;:::-;14255:80;;14346:49;14359:18;14379:15;14346:12;:49::i;:::-;14450:15;;14442:63;;14406:12;;-1:-1:-1;;;;;14450:15:0;;14479:21;;14406:12;14442:63;14406:12;14442:63;14479:21;14450:15;14442:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14429:76;;;;;14524:7;14516:16;;;;;;13438:1102;;;;;;;;;;13396:1144;:::o;1794:132::-;1852:7;1879:39;1883:1;1886;1879:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1872:46;1794:132;-1:-1:-1;;;1794:132:0:o;1192:136::-;1250:7;1277:43;1281:1;1284;1277:43;;;;;;;;;;;;;;;;;:3;:43::i;14548:475::-;14638:16;;;14652:1;14638:16;;;;;;;;14614:21;;14638:16;;;;;;;;;;-1:-1:-1;14638:16:0;14614:40;;14683:4;14665;14670:1;14665:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14665:23:0;;;:7;;;;;;;;;;:23;;;;14709:15;;:22;;;-1:-1:-1;;;14709:22:0;;;;:15;;;;;:20;;:22;;;;;14665:7;;14709:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14699:4;14704:1;14699:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14699:32:0;;;:7;;;;;;;;;:32;14776:15;;14744:62;;14761:4;;14776:15;14794:11;14744:8;:62::i;:::-;14819:15;;:196;;-1:-1:-1;;;14819:196:0;;-1:-1:-1;;;;;14819:15:0;;;;:66;;:196;;14900:11;;14819:15;;14942:4;;14969;;14989:15;;14819:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14603:420;14548:475;:::o;1536:250::-;1594:7;1618:1;1623;1618:6;1614:47;;-1:-1:-1;1648:1:0;1641:8;;1614:47;1673:9;1685:5;1689:1;1685;:5;:::i;:::-;1673:17;-1:-1:-1;1718:1:0;1709:5;1713:1;1673:17;1709:5;:::i;:::-;:10;1701:56;;;;-1:-1:-1;;;1701:56:0;;11628:2:1;1701:56:0;;;11610:21:1;11667:2;11647:18;;;11640:30;11706:34;11686:18;;;11679:62;-1:-1:-1;;;11757:18:1;;;11750:31;11798:19;;1701:56:0;11426:397:1;15031:374:0;15144:15;;15112:62;;15129:4;;-1:-1:-1;;;;;15144:15:0;15162:11;15112:8;:62::i;:::-;15187:15;;15339:17;;15187:210;;-1:-1:-1;;;15187:210:0;;15261:4;15187:210;;;12169:34:1;12219:18;;;12212:34;;;15187:15:0;12262:18:1;;;12255:34;;;12305:18;;;12298:34;-1:-1:-1;;;;;15339:17:0;;;12348:19:1;;;12341:44;15371:15:0;12401:19:1;;;12394:35;15187:15:0;;;:31;;15227:9;;12103:19:1;;15187:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15031:374;;:::o;1934:278::-;2020:7;2055:12;2048:5;2040:28;;;;-1:-1:-1;;;2040:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2079:9:0;2091:5;2095:1;2091;:5;:::i;1336:192::-;1422:7;1458:12;1450:6;;;;1442:29;;;;-1:-1:-1;;;1442:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1482:9:0;1494:5;1498:1;1494;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885: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;2742:247::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:31;2953:5;2928:31;:::i;2994:385::-;3080:6;3088;3096;3104;3157:3;3145:9;3136:7;3132:23;3128:33;3125:53;;;3174:1;3171;3164:12;3125:53;-1:-1:-1;;3197:23:1;;;3267:2;3252:18;;3239:32;;-1:-1:-1;3318:2:1;3303:18;;3290:32;;3369:2;3354:18;3341:32;;-1:-1:-1;2994:385:1;-1:-1:-1;2994:385:1:o;3384:416::-;3449:6;3457;3510:2;3498:9;3489:7;3485:23;3481:32;3478:52;;;3526:1;3523;3516:12;3478:52;3565:9;3552:23;3584:31;3609:5;3584:31;:::i;:::-;3634:5;-1:-1:-1;3691:2:1;3676:18;;3663:32;3733:15;;3726:23;3714:36;;3704:64;;3764:1;3761;3754:12;3704:64;3787:7;3777:17;;;3384:416;;;;;:::o;3805:383::-;3882:6;3890;3898;3951:2;3939:9;3930:7;3926:23;3922:32;3919:52;;;3967:1;3964;3957:12;3919:52;4003:9;3990:23;3980:33;;4060:2;4049:9;4045:18;4032:32;4022:42;;4114:2;4103:9;4099:18;4086:32;4127:31;4152:5;4127:31;:::i;:::-;4177:5;4167:15;;;3805:383;;;;;:::o;4193:388::-;4261:6;4269;4322:2;4310:9;4301:7;4297:23;4293:32;4290:52;;;4338:1;4335;4328:12;4290:52;4377:9;4364:23;4396:31;4421:5;4396:31;:::i;:::-;4446:5;-1:-1:-1;4503:2:1;4488:18;;4475:32;4516:33;4475:32;4516:33;:::i;4586:127::-;4647:10;4642:3;4638:20;4635:1;4628:31;4678:4;4675:1;4668:15;4702:4;4699:1;4692:15;4718:128;4785:9;;;4806:11;;;4803:37;;;4820:18;;:::i;4851:125::-;4916:9;;;4937:10;;;4934:36;;;4950:18;;:::i;4981:356::-;5183:2;5165:21;;;5202:18;;;5195:30;5261:34;5256:2;5241:18;;5234:62;5328:2;5313:18;;4981:356::o;5703:217::-;5743:1;5769;5759:132;;5813:10;5808:3;5804:20;5801:1;5794:31;5848:4;5845:1;5838:15;5876:4;5873:1;5866:15;5759:132;-1:-1:-1;5905:9:1;;5703:217::o;8715:405::-;8917:2;8899:21;;;8956:2;8936:18;;;8929:30;8995:34;8990:2;8975:18;;8968:62;-1:-1:-1;;;9061:2:1;9046:18;;9039:39;9110:3;9095:19;;8715:405::o;9125:408::-;9327:2;9309:21;;;9366:2;9346:18;;;9339:30;9405:34;9400:2;9385:18;;9378:62;-1:-1:-1;;;9471:2:1;9456:18;;9449:42;9523:3;9508:19;;9125:408::o;9538:168::-;9611:9;;;9642;;9659:15;;;9653:22;;9639:37;9629:71;;9680:18;;:::i;10053:127::-;10114:10;10109:3;10105:20;10102:1;10095:31;10145:4;10142:1;10135:15;10169:4;10166:1;10159:15;10185:251;10255:6;10308:2;10296:9;10287:7;10283:23;10279:32;10276:52;;;10324:1;10321;10314:12;10276:52;10356:9;10350:16;10375:31;10400:5;10375:31;:::i;10441:980::-;10703:4;10751:3;10740:9;10736:19;10782:6;10771:9;10764:25;10808:2;10846:6;10841:2;10830:9;10826:18;10819:34;10889:3;10884:2;10873:9;10869:18;10862:31;10913:6;10948;10942:13;10979:6;10971;10964:22;11017:3;11006:9;11002:19;10995:26;;11056:2;11048:6;11044:15;11030:29;;11077:1;11087:195;11101:6;11098:1;11095:13;11087:195;;;11166:13;;-1:-1:-1;;;;;11162:39:1;11150:52;;11257:15;;;;11222:12;;;;11198:1;11116:9;11087:195;;;-1:-1:-1;;;;;;;11338:32:1;;;;11333:2;11318:18;;11311:60;-1:-1:-1;;;11402:3:1;11387:19;11380:35;11299:3;10441:980;-1:-1:-1;;;10441:980:1:o;12440:306::-;12528:6;12536;12544;12597:2;12585:9;12576:7;12572:23;12568:32;12565:52;;;12613:1;12610;12603:12;12565:52;12642:9;12636:16;12626:26;;12692:2;12681:9;12677:18;12671:25;12661:35;;12736:2;12725:9;12721:18;12715:25;12705:35;;12440:306;;;;;:::o
Swarm Source
ipfs://440eecb3f2f4af1f99915b194629c53d661874e681d2760a14901c7a46c3e866
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.