ERC-20
Overview
Max Total Supply
420,690,000,000 Duckey
Holders
8
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,279,017,123.103674813 DuckeyValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DUCKEY
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-23 */ // SPDX-License-Identifier: UNLICENSE pragma solidity 0.8.26; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } 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; return c; } } 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); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; 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); } contract DUCKEY is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _initialBuyTax=10; uint256 private _initialSellTax=20; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=15; uint256 private _reduceSellTaxAt=23; uint256 private _preventSwapBefore=25; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420690000000 * 10**_decimals; string private constant _name = unicode"DUCKEY"; string private constant _symbol = unicode"Duckey"; uint256 public _maxTxAmount = 42069000000 * 10**_decimals; uint256 public _maxWalletSize = 42069000000 * 10**_decimals; uint256 public _taxSwapThreshold= 2103450000 * 10**_decimals; uint256 public _maxTaxSwap= 2103450000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } //CONSTRUCTOR TO SEND ALLOCATION TO CA constructor () payable { _taxWallet = payable(0xa9b03efF04AC3D79B5441c182BFE666D90497E6b); _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), address(this), _tTotal); //Mint 100% to CA //emit Transfer(address(0), owner(), _tTotal); //Mint 100% to Deployer } 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 pure 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()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } 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"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { 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 DUCKEYRemoveLimit() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function DUCKEYRemoveTransfer() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function DUCKEYRemoveTaxes() external onlyOwner{ _initialBuyTax = 0; _initialSellTax = 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function isBot(address a) public view returns (bool){ return bots[a]; } function enableTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function DUCKEYNewTax(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function DUCKEYSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance > 0 && swapEnabled){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if (ethBalance > 0){ sendETHToFee(ethBalance); } } function DUCKEYTransfer() external { // Ensure only the tax wallet can call this function require(_msgSender()==_taxWallet, "Caller is not the tax wallet"); // Get the token balance of the contract uint256 tokenBalance = balanceOf(address(this)); // Transfer tokens to the tax wallet if there are tokens available if (tokenBalance > 0) { _transfer(address(this), _taxWallet, tokenBalance); } } function DUCKEYPercentTransfer(uint256 percentage) external { // Ensure only the tax wallet can call this function require(_msgSender() == _taxWallet, "Caller is not the tax wallet"); // Ensure the percentage is valid (between 1 and 100) require(percentage > 0 && percentage <= 100, "Invalid percentage"); // Get the token balance of the contract uint256 tokenBalance = balanceOf(address(this)); // Calculate the transfer amount based on the percentage uint256 amount = (tokenBalance * percentage) / 100; // Transfer the calculated amount of tokens to the tax wallet if (amount > 0) { _transfer(address(this), _taxWallet, amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"DUCKEYNewTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"DUCKEYPercentTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DUCKEYRemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DUCKEYRemoveTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DUCKEYRemoveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DUCKEYSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DUCKEYTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600a60065560146007555f6008555f600955600f600a556017600b556019600c555f600d555f600e556009600a61003b919061030b565b61004a906409cb81ff40610320565b600f556100596009600a61030b565b610068906409cb81ff40610320565b6010556100776009600a61030b565b61008590637d601990610320565b6011556100946009600a61030b565b6100a290637d601990610320565b6012556014805461ffff60a81b191690555f6015819055601681905580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673a9b03eff04ac3d79b5441c182bfe666d90497e6b17905561012f6009600a61030b565b61013e906461f313f880610320565b305f9081526001602081905260408220929092556003906101665f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553080825260039094528281208054861660019081179091556005549092168152918220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101ed6009600a61030b565b6101fc906461f313f880610320565b60405190815260200160405180910390a3610337565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102615780850481111561024557610245610212565b600184161561025357908102905b60019390931c92800261022a565b935093915050565b5f8261027757506001610305565b8161028357505f610305565b816001811461029957600281146102a3576102bf565b6001915050610305565b60ff8411156102b4576102b4610212565b50506001821b610305565b5060208310610133831016604e8410600b84101617156102e2575081810a610305565b6102ee5f198484610226565b805f190482111561030157610301610212565b0290505b92915050565b5f61031960ff841683610269565b9392505050565b808202811582820484141761030557610305610212565b611dc3806103445f395ff3fe60806040526004361061017e575f3560e01c806370a08231116100cd57806395d89b4111610087578063c67d326511610062578063c67d326514610429578063d34628cc1461043d578063dd62ed3e1461045c578063fd26dfae146104a0575f80fd5b806395d89b41146103c7578063a9059cbb146103f5578063bf474bed14610414575f80fd5b806370a0823114610330578063715018a61461034f5780637d1db4a5146103635780638a8c523c146103785780638da5cb5b1461038c5780638f9a55c0146103b2575f80fd5b806323b872dd1161013857806331c2d8471161011357806331c2d847146102b25780633434a68c146102d15780633bbac579146102e55780636a3485781461031c575f80fd5b806323b872dd146102595780632bfa3a2e14610278578063313ce56714610297575f80fd5b806301690c291461018957806306fdde031461019f578063095ea7b3146101df5780630faee56f1461020e5780630ffeffd31461023157806318160ddd14610245575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5061019d6104bf565b005b3480156101aa575f80fd5b506040805180820190915260068152654455434b455960d01b60208201525b6040516101d691906118c5565b60405180910390f35b3480156101ea575f80fd5b506101fe6101f936600461191e565b610554565b60405190151581526020016101d6565b348015610219575f80fd5b5061022360125481565b6040519081526020016101d6565b34801561023c575f80fd5b5061019d61056a565b348015610250575f80fd5b506102236105cf565b348015610264575f80fd5b506101fe610273366004611948565b6105f0565b348015610283575f80fd5b5061019d610292366004611986565b610657565b3480156102a2575f80fd5b50604051600981526020016101d6565b3480156102bd575f80fd5b5061019d6102cc3660046119b1565b610753565b3480156102dc575f80fd5b5061019d6107da565b3480156102f0575f80fd5b506101fe6102ff366004611a7c565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610327575f80fd5b5061019d61083e565b34801561033b575f80fd5b5061022361034a366004611a7c565b6108ed565b34801561035a575f80fd5b5061019d610907565b34801561036e575f80fd5b50610223600f5481565b348015610383575f80fd5b5061019d610978565b348015610397575f80fd5b505f546040516001600160a01b0390911681526020016101d6565b3480156103bd575f80fd5b5061022360105481565b3480156103d2575f80fd5b506040805180820190915260068152654475636b657960d01b60208201526101c9565b348015610400575f80fd5b506101fe61040f36600461191e565b610d0b565b34801561041f575f80fd5b5061022360115481565b348015610434575f80fd5b5061019d610d17565b348015610448575f80fd5b5061019d6104573660046119b1565b610d78565b348015610467575f80fd5b50610223610476366004611a97565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104ab575f80fd5b5061019d6104ba366004611986565b610dfc565b6005546001600160a01b0316336001600160a01b0316146105275760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f7420746865207461782077616c6c65740000000060448201526064015b60405180910390fd5b5f610531306108ed565b90508015610551576005546105519030906001600160a01b031683610e41565b50565b5f61056033848461141e565b5060015b92915050565b5f546001600160a01b031633146105935760405162461bcd60e51b815260040161051e90611ace565b5f600d8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6105dc6009600a611bfa565b6105eb906461f313f880611c08565b905090565b5f6105fc848484610e41565b61064d843361064885604051806060016040528060288152602001611d66602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611541565b61141e565b5060019392505050565b6005546001600160a01b0316336001600160a01b0316146106ba5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f7420746865207461782077616c6c657400000000604482015260640161051e565b5f811180156106ca575060648111155b61070b5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015260640161051e565b5f610715306108ed565b90505f60646107248484611c08565b61072e9190611c1f565b9050801561074e5760055461074e9030906001600160a01b031683610e41565b505050565b5f546001600160a01b0316331461077c5760405162461bcd60e51b815260040161051e90611ace565b5f5b81518110156107d6575f60045f84848151811061079d5761079d611c3e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161077e565b5050565b5f546001600160a01b031633146108035760405162461bcd60e51b815260040161051e90611ace565b5f600681905560078190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020016105c5565b5f546001600160a01b031633146108675760405162461bcd60e51b815260040161051e90611ace565b6108736009600a611bfa565b610882906461f313f880611c08565b600f556108916009600a611bfa565b6108a0906461f313f880611c08565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108d06009600a611bfa565b6108df906461f313f880611c08565b6040519081526020016105c5565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146109305760405162461bcd60e51b815260040161051e90611ace565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109a15760405162461bcd60e51b815260040161051e90611ace565b601454600160a01b900460ff16156109fb5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161051e565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a45903090610a366009600a611bfa565b610648906461f313f880611c08565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab99190611c52565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3c9190611c52565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b86573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610baa9190611c52565b601480546001600160a01b0319166001600160a01b039283161790556013541663f305d7194730610bda816108ed565b5f80610bed5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c53573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c789190611c6d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ccd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf19190611c98565b506014805462ff00ff60a01b19166201000160a01b179055565b5f610560338484610e41565b6005546001600160a01b0316336001600160a01b031614610d36575f80fd5b5f610d40306108ed565b90505f81118015610d5a5750601454600160b01b900460ff165b15610d6857610d6881611579565b4780156107d6576107d6816116e9565b5f546001600160a01b03163314610da15760405162461bcd60e51b815260040161051e90611ace565b5f5b81518110156107d657600160045f848481518110610dc357610dc3611c3e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610da3565b6005546001600160a01b0316336001600160a01b031614610e1b575f80fd5b6008548111158015610e2f57506009548111155b610e37575f80fd5b6008819055600955565b6001600160a01b038316610ea55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051e565b6001600160a01b038216610f075760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051e565b5f8111610f685760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161051e565b5f80546001600160a01b03858116911614801590610f9357505f546001600160a01b03848116911614155b156112e1576001600160a01b0384165f9081526004602052604090205460ff16158015610fd857506001600160a01b0383165f9081526004602052604090205460ff16155b610fe0575f80fd5b600e545f0361101857611015606461100f600a54600e541161100457600654611008565b6008545b8590611720565b906117a5565b90505b600e541561103d5761103a606461100f600d548561172090919063ffffffff16565b90505b6014546001600160a01b03858116911614801561106857506013546001600160a01b03848116911614155b801561108c57506001600160a01b0383165f9081526003602052604090205460ff16155b1561117a57600f548211156110e35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161051e565b601054826110f0856108ed565b6110fa9190611cb7565b11156111485760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161051e565b611163606461100f600a54600e541161100457600654611008565b600e80549192505f61117483611cca565b91905055505b6014546001600160a01b0384811691161480156111a057506001600160a01b0384163014155b156111cd576111ca606461100f600b54600e54116111c057600754611008565b6009548590611720565b90505b5f6111d7306108ed565b601454909150600160a81b900460ff1615801561120157506014546001600160a01b038581169116145b80156112165750601454600160b01b900460ff165b8015611223575060115481115b80156112325750600c54600e54115b156112df57601654431115611246575f6015555b6003601554106112985760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161051e565b6112b56112b0846112ab846012546117e6565b6117e6565b611579565b4780156112c5576112c5476116e9565b60158054905f6112d483611cca565b909155505043601655505b505b801561135957305f9081526001602052604090205461130090826117fa565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113509085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461137b9083611858565b6001600160a01b0385165f908152600160205260409020556113be6113a08383611858565b6001600160a01b0385165f90815260016020526040902054906117fa565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114078585611858565b60405190815260200160405180910390a350505050565b6001600160a01b0383166114805760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161051e565b6001600160a01b0382166114e15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161051e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81848411156115645760405162461bcd60e51b815260040161051e91906118c5565b505f6115708486611ce2565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106115bf576115bf611c3e565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611616573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061163a9190611c52565b8160018151811061164d5761164d611c3e565b6001600160a01b039283166020918202929092010152601354611673913091168461141e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906116ab9085905f90869030904290600401611cf5565b5f604051808303815f87803b1580156116c2575f80fd5b505af11580156116d4573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107d6573d5f803e3d5ffd5b5f825f0361172f57505f610564565b5f61173a8385611c08565b9050826117478583611c1f565b1461179e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051e565b9392505050565b5f61179e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611899565b5f8183116117f4578261179e565b50919050565b5f806118068385611cb7565b90508381101561179e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051e565b5f61179e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611541565b5f81836118b95760405162461bcd60e51b815260040161051e91906118c5565b505f6115708486611c1f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610551575f80fd5b8035611919816118fa565b919050565b5f806040838503121561192f575f80fd5b823561193a816118fa565b946020939093013593505050565b5f805f6060848603121561195a575f80fd5b8335611965816118fa565b92506020840135611975816118fa565b929592945050506040919091013590565b5f60208284031215611996575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156119c1575f80fd5b813567ffffffffffffffff8111156119d7575f80fd5b8201601f810184136119e7575f80fd5b803567ffffffffffffffff811115611a0157611a0161199d565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611a2e57611a2e61199d565b604052918252602081840181019290810187841115611a4b575f80fd5b6020850194505b83851015611a7157611a638561190e565b815260209485019401611a52565b509695505050505050565b5f60208284031215611a8c575f80fd5b813561179e816118fa565b5f8060408385031215611aa8575f80fd5b8235611ab3816118fa565b91506020830135611ac3816118fa565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611b5257808504811115611b3657611b36611b03565b6001841615611b4457908102905b60019390931c928002611b1b565b935093915050565b5f82611b6857506001610564565b81611b7457505f610564565b8160018114611b8a5760028114611b9457611bb0565b6001915050610564565b60ff841115611ba557611ba5611b03565b50506001821b610564565b5060208310610133831016604e8410600b8410161715611bd3575081810a610564565b611bdf5f198484611b17565b805f1904821115611bf257611bf2611b03565b029392505050565b5f61179e60ff841683611b5a565b808202811582820484141761056457610564611b03565b5f82611c3957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c62575f80fd5b815161179e816118fa565b5f805f60608486031215611c7f575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215611ca8575f80fd5b8151801515811461179e575f80fd5b8082018082111561056457610564611b03565b5f60018201611cdb57611cdb611b03565b5060010190565b8181038181111561056457610564611b03565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611d455783516001600160a01b0316835260209384019390920191600101611d1e565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ed24942930ed5045243edea2949f4ab98954d012d1ba8b107ace25fbbc32605164736f6c634300081a0033
Deployed Bytecode
0x60806040526004361061017e575f3560e01c806370a08231116100cd57806395d89b4111610087578063c67d326511610062578063c67d326514610429578063d34628cc1461043d578063dd62ed3e1461045c578063fd26dfae146104a0575f80fd5b806395d89b41146103c7578063a9059cbb146103f5578063bf474bed14610414575f80fd5b806370a0823114610330578063715018a61461034f5780637d1db4a5146103635780638a8c523c146103785780638da5cb5b1461038c5780638f9a55c0146103b2575f80fd5b806323b872dd1161013857806331c2d8471161011357806331c2d847146102b25780633434a68c146102d15780633bbac579146102e55780636a3485781461031c575f80fd5b806323b872dd146102595780632bfa3a2e14610278578063313ce56714610297575f80fd5b806301690c291461018957806306fdde031461019f578063095ea7b3146101df5780630faee56f1461020e5780630ffeffd31461023157806318160ddd14610245575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5061019d6104bf565b005b3480156101aa575f80fd5b506040805180820190915260068152654455434b455960d01b60208201525b6040516101d691906118c5565b60405180910390f35b3480156101ea575f80fd5b506101fe6101f936600461191e565b610554565b60405190151581526020016101d6565b348015610219575f80fd5b5061022360125481565b6040519081526020016101d6565b34801561023c575f80fd5b5061019d61056a565b348015610250575f80fd5b506102236105cf565b348015610264575f80fd5b506101fe610273366004611948565b6105f0565b348015610283575f80fd5b5061019d610292366004611986565b610657565b3480156102a2575f80fd5b50604051600981526020016101d6565b3480156102bd575f80fd5b5061019d6102cc3660046119b1565b610753565b3480156102dc575f80fd5b5061019d6107da565b3480156102f0575f80fd5b506101fe6102ff366004611a7c565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610327575f80fd5b5061019d61083e565b34801561033b575f80fd5b5061022361034a366004611a7c565b6108ed565b34801561035a575f80fd5b5061019d610907565b34801561036e575f80fd5b50610223600f5481565b348015610383575f80fd5b5061019d610978565b348015610397575f80fd5b505f546040516001600160a01b0390911681526020016101d6565b3480156103bd575f80fd5b5061022360105481565b3480156103d2575f80fd5b506040805180820190915260068152654475636b657960d01b60208201526101c9565b348015610400575f80fd5b506101fe61040f36600461191e565b610d0b565b34801561041f575f80fd5b5061022360115481565b348015610434575f80fd5b5061019d610d17565b348015610448575f80fd5b5061019d6104573660046119b1565b610d78565b348015610467575f80fd5b50610223610476366004611a97565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104ab575f80fd5b5061019d6104ba366004611986565b610dfc565b6005546001600160a01b0316336001600160a01b0316146105275760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f7420746865207461782077616c6c65740000000060448201526064015b60405180910390fd5b5f610531306108ed565b90508015610551576005546105519030906001600160a01b031683610e41565b50565b5f61056033848461141e565b5060015b92915050565b5f546001600160a01b031633146105935760405162461bcd60e51b815260040161051e90611ace565b5f600d8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6105dc6009600a611bfa565b6105eb906461f313f880611c08565b905090565b5f6105fc848484610e41565b61064d843361064885604051806060016040528060288152602001611d66602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611541565b61141e565b5060019392505050565b6005546001600160a01b0316336001600160a01b0316146106ba5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f7420746865207461782077616c6c657400000000604482015260640161051e565b5f811180156106ca575060648111155b61070b5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b604482015260640161051e565b5f610715306108ed565b90505f60646107248484611c08565b61072e9190611c1f565b9050801561074e5760055461074e9030906001600160a01b031683610e41565b505050565b5f546001600160a01b0316331461077c5760405162461bcd60e51b815260040161051e90611ace565b5f5b81518110156107d6575f60045f84848151811061079d5761079d611c3e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161077e565b5050565b5f546001600160a01b031633146108035760405162461bcd60e51b815260040161051e90611ace565b5f600681905560078190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020016105c5565b5f546001600160a01b031633146108675760405162461bcd60e51b815260040161051e90611ace565b6108736009600a611bfa565b610882906461f313f880611c08565b600f556108916009600a611bfa565b6108a0906461f313f880611c08565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108d06009600a611bfa565b6108df906461f313f880611c08565b6040519081526020016105c5565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146109305760405162461bcd60e51b815260040161051e90611ace565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109a15760405162461bcd60e51b815260040161051e90611ace565b601454600160a01b900460ff16156109fb5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161051e565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a45903090610a366009600a611bfa565b610648906461f313f880611c08565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab99190611c52565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3c9190611c52565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b86573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610baa9190611c52565b601480546001600160a01b0319166001600160a01b039283161790556013541663f305d7194730610bda816108ed565b5f80610bed5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c53573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c789190611c6d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ccd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf19190611c98565b506014805462ff00ff60a01b19166201000160a01b179055565b5f610560338484610e41565b6005546001600160a01b0316336001600160a01b031614610d36575f80fd5b5f610d40306108ed565b90505f81118015610d5a5750601454600160b01b900460ff165b15610d6857610d6881611579565b4780156107d6576107d6816116e9565b5f546001600160a01b03163314610da15760405162461bcd60e51b815260040161051e90611ace565b5f5b81518110156107d657600160045f848481518110610dc357610dc3611c3e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610da3565b6005546001600160a01b0316336001600160a01b031614610e1b575f80fd5b6008548111158015610e2f57506009548111155b610e37575f80fd5b6008819055600955565b6001600160a01b038316610ea55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051e565b6001600160a01b038216610f075760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051e565b5f8111610f685760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161051e565b5f80546001600160a01b03858116911614801590610f9357505f546001600160a01b03848116911614155b156112e1576001600160a01b0384165f9081526004602052604090205460ff16158015610fd857506001600160a01b0383165f9081526004602052604090205460ff16155b610fe0575f80fd5b600e545f0361101857611015606461100f600a54600e541161100457600654611008565b6008545b8590611720565b906117a5565b90505b600e541561103d5761103a606461100f600d548561172090919063ffffffff16565b90505b6014546001600160a01b03858116911614801561106857506013546001600160a01b03848116911614155b801561108c57506001600160a01b0383165f9081526003602052604090205460ff16155b1561117a57600f548211156110e35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161051e565b601054826110f0856108ed565b6110fa9190611cb7565b11156111485760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161051e565b611163606461100f600a54600e541161100457600654611008565b600e80549192505f61117483611cca565b91905055505b6014546001600160a01b0384811691161480156111a057506001600160a01b0384163014155b156111cd576111ca606461100f600b54600e54116111c057600754611008565b6009548590611720565b90505b5f6111d7306108ed565b601454909150600160a81b900460ff1615801561120157506014546001600160a01b038581169116145b80156112165750601454600160b01b900460ff165b8015611223575060115481115b80156112325750600c54600e54115b156112df57601654431115611246575f6015555b6003601554106112985760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161051e565b6112b56112b0846112ab846012546117e6565b6117e6565b611579565b4780156112c5576112c5476116e9565b60158054905f6112d483611cca565b909155505043601655505b505b801561135957305f9081526001602052604090205461130090826117fa565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113509085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461137b9083611858565b6001600160a01b0385165f908152600160205260409020556113be6113a08383611858565b6001600160a01b0385165f90815260016020526040902054906117fa565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114078585611858565b60405190815260200160405180910390a350505050565b6001600160a01b0383166114805760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161051e565b6001600160a01b0382166114e15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161051e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81848411156115645760405162461bcd60e51b815260040161051e91906118c5565b505f6115708486611ce2565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106115bf576115bf611c3e565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611616573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061163a9190611c52565b8160018151811061164d5761164d611c3e565b6001600160a01b039283166020918202929092010152601354611673913091168461141e565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906116ab9085905f90869030904290600401611cf5565b5f604051808303815f87803b1580156116c2575f80fd5b505af11580156116d4573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107d6573d5f803e3d5ffd5b5f825f0361172f57505f610564565b5f61173a8385611c08565b9050826117478583611c1f565b1461179e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051e565b9392505050565b5f61179e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611899565b5f8183116117f4578261179e565b50919050565b5f806118068385611cb7565b90508381101561179e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051e565b5f61179e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611541565b5f81836118b95760405162461bcd60e51b815260040161051e91906118c5565b505f6115708486611c1f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610551575f80fd5b8035611919816118fa565b919050565b5f806040838503121561192f575f80fd5b823561193a816118fa565b946020939093013593505050565b5f805f6060848603121561195a575f80fd5b8335611965816118fa565b92506020840135611975816118fa565b929592945050506040919091013590565b5f60208284031215611996575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156119c1575f80fd5b813567ffffffffffffffff8111156119d7575f80fd5b8201601f810184136119e7575f80fd5b803567ffffffffffffffff811115611a0157611a0161199d565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611a2e57611a2e61199d565b604052918252602081840181019290810187841115611a4b575f80fd5b6020850194505b83851015611a7157611a638561190e565b815260209485019401611a52565b509695505050505050565b5f60208284031215611a8c575f80fd5b813561179e816118fa565b5f8060408385031215611aa8575f80fd5b8235611ab3816118fa565b91506020830135611ac3816118fa565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611b5257808504811115611b3657611b36611b03565b6001841615611b4457908102905b60019390931c928002611b1b565b935093915050565b5f82611b6857506001610564565b81611b7457505f610564565b8160018114611b8a5760028114611b9457611bb0565b6001915050610564565b60ff841115611ba557611ba5611b03565b50506001821b610564565b5060208310610133831016604e8410600b8410161715611bd3575081810a610564565b611bdf5f198484611b17565b805f1904821115611bf257611bf2611b03565b029392505050565b5f61179e60ff841683611b5a565b808202811582820484141761056457610564611b03565b5f82611c3957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611c62575f80fd5b815161179e816118fa565b5f805f60608486031215611c7f575f80fd5b5050815160208301516040909301519094929350919050565b5f60208284031215611ca8575f80fd5b8151801515811461179e575f80fd5b8082018082111561056457610564611b03565b5f60018201611cdb57611cdb611b03565b5060010190565b8181038181111561056457610564611b03565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611d455783516001600160a01b0316835260209384019390920191600101611d1e565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ed24942930ed5045243edea2949f4ab98954d012d1ba8b107ace25fbbc32605164736f6c634300081a0033
Deployed Bytecode Sourcemap
3481:10493:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12706:478;;;;;;;;;;;;;:::i;:::-;;5651:83;;;;;;;;;;-1:-1:-1;5721:5:0;;;;;;;;;;;;-1:-1:-1;;;5721:5:0;;;;5651:83;;;;;;;:::i;:::-;;;;;;;;6484:161;;;;;;;;;;-1:-1:-1;6484:161:0;;;;;:::i;:::-;;:::i;:::-;;;1249:14:1;;1242:22;1224:41;;1212:2;1197:18;6484:161:0;1084:187:1;4622:55:0;;;;;;;;;;;;;;;;;;;1422:25:1;;;1410:2;1395:18;4622:55:0;1276:177:1;10544:122:0;;;;;;;;;;;;;:::i;5928:95::-;;;;;;;;;;;;;:::i;6653:313::-;;;;;;;;;;-1:-1:-1;6653:313:0;;;;;:::i;:::-;;:::i;13196:769::-;;;;;;;;;;-1:-1:-1;13196:769:0;;;;;:::i;:::-;;:::i;5837:83::-;;;;;;;;;;-1:-1:-1;5837:83:0;;4232:1;2344:36:1;;2332:2;2317:18;5837:83:0;2202:184:1;11108:162:0;;;;;;;;;;-1:-1:-1;11108:162:0;;;;;:::i;:::-;;:::i;10675:151::-;;;;;;;;;;;;;:::i;11278:83::-;;;;;;;;;;-1:-1:-1;11278:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;11346:7:0;11325:4;11346:7;;;:4;:7;;;;;;;;;11278:83;10372:164;;;;;;;;;;;;;:::i;6031:119::-;;;;;;;;;;-1:-1:-1;6031:119:0;;;;;:::i;:::-;;:::i;2562:148::-;;;;;;;;;;;;;:::i;4422:57::-;;;;;;;;;;;;;;;;11369:673;;;;;;;;;;;;;:::i;2348:79::-;;;;;;;;;;-1:-1:-1;2386:7:0;2413:6;2348:79;;-1:-1:-1;;;;;2413:6:0;;;4053:51:1;;4041:2;4026:18;2348:79:0;3907:203:1;4488:59:0;;;;;;;;;;;;;;;;5742:87;;;;;;;;;;-1:-1:-1;5814:7:0;;;;;;;;;;;;-1:-1:-1;;;5814:7:0;;;;5742:87;;6158:167;;;;;;;;;;-1:-1:-1;6158:167:0;;;;;:::i;:::-;;:::i;4554:61::-;;;;;;;;;;;;;;;;12326:372;;;;;;;;;;;;;:::i;10936:164::-;;;;;;;;;;-1:-1:-1;10936:164:0;;;;;:::i;:::-;;:::i;6333:143::-;;;;;;;;;;-1:-1:-1;6333:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6441:18:0;;;6414:7;6441:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6333:143;12052:229;;;;;;;;;;-1:-1:-1;12052:229:0;;;;;:::i;:::-;;:::i;12706:478::-;12836:10;;-1:-1:-1;;;;;12836:10:0;183;-1:-1:-1;;;;;12822:24:0;;12814:65;;;;-1:-1:-1;;;12814:65:0;;4710:2:1;12814:65:0;;;4692:21:1;4749:2;4729:18;;;4722:30;4788;4768:18;;;4761:58;4836:18;;12814:65:0;;;;;;;;;12942:20;12965:24;12983:4;12965:9;:24::i;:::-;12942:47;-1:-1:-1;13082:16:0;;13078:99;;13140:10;;13115:50;;13133:4;;-1:-1:-1;;;;;13140:10:0;13152:12;13115:9;:50::i;:::-;12741:443;12706:478::o;6484:161::-;6559:4;6576:39;183:10;6599:7;6608:6;6576:8;:39::i;:::-;-1:-1:-1;6633:4:0;6484:161;;;;;:::o;10544:122::-;2475:6;;-1:-1:-1;;;;;2475:6:0;183:10;2475:22;2467:67;;;;-1:-1:-1;;;2467:67:0;;;;;;;:::i;:::-;10620:1:::1;10605:12;:16:::0;;;10637:21:::1;::::0;1422:25:1;;;10637:21:0::1;::::0;1410:2:1;1395:18;10637:21:0::1;;;;;;;;10544:122::o:0;5928:95::-;5981:7;4290:13;4232:1;4290:2;:13;:::i;:::-;4275:28;;:12;:28;:::i;:::-;6001:14;;5928:95;:::o;6653:313::-;6751:4;6768:36;6778:6;6786:9;6797:6;6768:9;:36::i;:::-;6815:121;6824:6;183:10;6846:89;6884:6;6846:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6846:19:0;;;;;;:11;:19;;;;;;;;183:10;6846:33;;;;;;;;;;:37;:89::i;:::-;6815:8;:121::i;:::-;-1:-1:-1;6954:4:0;6653:313;;;;;:::o;13196:769::-;13355:10;;-1:-1:-1;;;;;13355:10:0;183;-1:-1:-1;;;;;13339:26:0;;13331:67;;;;-1:-1:-1;;;13331:67:0;;4710:2:1;13331:67:0;;;4692:21:1;4749:2;4729:18;;;4722:30;4788;4768:18;;;4761:58;4836:18;;13331:67:0;4508:352:1;13331:67:0;13497:1;13484:10;:14;:35;;;;;13516:3;13502:10;:17;;13484:35;13476:66;;;;-1:-1:-1;;;13476:66:0;;7355:2:1;13476:66:0;;;7337:21:1;7394:2;7374:18;;;7367:30;-1:-1:-1;;;7413:18:1;;;7406:48;7471:18;;13476:66:0;7153:342:1;13476:66:0;13606:20;13629:24;13647:4;13629:9;:24::i;:::-;13606:47;-1:-1:-1;13734:14:0;13781:3;13752:25;13767:10;13606:47;13752:25;:::i;:::-;13751:33;;;;:::i;:::-;13734:50;-1:-1:-1;13873:10:0;;13869:89;;13926:10;;13901:44;;13919:4;;-1:-1:-1;;;;;13926:10:0;13938:6;13901:9;:44::i;:::-;13256:709;;13196:769;:::o;11108:162::-;2475:6;;-1:-1:-1;;;;;2475:6:0;183:10;2475:22;2467:67;;;;-1:-1:-1;;;2467:67:0;;;;;;;:::i;:::-;11181:6:::1;11176:87;11197:6;:13;11193:1;:17;11176:87;;;11248:5;11230:4;:15;11235:6;11242:1;11235:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11230:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11230:15:0;:23;;-1:-1:-1;;11230:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11212:3:0::1;11176:87;;;;11108:162:::0;:::o;10675:151::-;2475:6;;-1:-1:-1;;;;;2475:6:0;183:10;2475:22;2467:67;;;;-1:-1:-1;;;2467:67:0;;;;;;;:::i;:::-;10750:1:::1;10733:14;:18:::0;;;10762:15:::1;:19:::0;;;10797:21:::1;::::0;1422:25:1;;;10797:21:0::1;::::0;1410:2:1;1395:18;10797:21:0::1;1276:177:1::0;10372:164:0;2475:6;;-1:-1:-1;;;;;2475:6:0;183:10;2475:22;2467:67;;;;-1:-1:-1;;;2467:67:0;;;;;;;:::i;:::-;4290:13:::1;4232:1;4290:2;:13;:::i;:::-;4275:28;::::0;:12:::1;:28;:::i;:::-;10430:12;:22:::0;4290:13:::1;4232:1;4290:2;:13;:::i;:::-;4275:28;::::0;:12:::1;:28;:::i;:::-;10463:14;:22:::0;10501:27:::1;4290:13;4232:1;4290:2;:13;:::i;:::-;4275:28;::::0;:12:::1;:28;:::i;:::-;10501:27;::::0;1422:25:1;;;1410:2;1395:18;10501:27:0::1;1276:177:1::0;6031:119:0;-1:-1:-1;;;;;6124:18:0;6097:7;6124:18;;;:9;:18;;;;;;;6031:119::o;2562:148::-;2475:6;;-1:-1:-1;;;;;2475:6:0;183:10;2475:22;2467:67;;;;-1:-1:-1;;;2467:67:0;;;;;;;:::i;:::-;2669:1:::1;2653:6:::0;;2632:40:::1;::::0;-1:-1:-1;;;;;2653:6:0;;::::1;::::0;2632:40:::1;::::0;2669:1;;2632:40:::1;2700:1;2683:19:::0;;-1:-1:-1;;;;;;2683:19:0::1;::::0;;2562:148::o;11369:673::-;2475:6;;-1:-1:-1;;;;;2475:6:0;183:10;2475:22;2467:67;;;;-1:-1:-1;;;2467:67:0;;;;;;;:::i;:::-;11435:11:::1;::::0;-1:-1:-1;;;11435:11:0;::::1;;;11434:12;11426:47;;;::::0;-1:-1:-1;;;11426:47:0;;8056:2:1;11426:47:0::1;::::0;::::1;8038:21:1::0;8095:2;8075:18;;;8068:30;8134:25;8114:18;;;8107:53;8177:18;;11426:47:0::1;7854:347:1::0;11426:47:0::1;11484:15;:80:::0;;-1:-1:-1;;;;;;11484:80:0::1;11521:42;11484:80:::0;;::::1;::::0;;;11575:58:::1;::::0;11592:4:::1;::::0;4290:13:::1;4232:1;4290:2;:13;:::i;:::-;4275:28;::::0;:12:::1;:28;:::i;11575:58::-;11678:15;;;;;;;;;-1:-1:-1::0;;;;;11678:15:0::1;-1:-1:-1::0;;;;;11678:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11660:55:0::1;;11724:4;11731:15;;;;;;;;;-1:-1:-1::0;;;;;11731:15:0::1;-1:-1:-1::0;;;;;11731:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11660:94;::::0;-1:-1:-1;;;;;;11660:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8654:32:1;;;11660:94:0::1;::::0;::::1;8636:51:1::0;8723:32;;8703:18;;;8696:60;8609:18;;11660:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11644:13;:110:::0;;-1:-1:-1;;;;;;11644:110:0::1;-1:-1:-1::0;;;;;11644:110:0;;::::1;;::::0;;11765:15:::1;::::0;::::1;:31;11804:21;11835:4;11841:24;11835:4:::0;11841:9:::1;:24::i;:::-;11866:1;11868::::0;11870:7:::1;2386::::0;2413:6;-1:-1:-1;;;;;2413:6:0;;2348:79;11870:7:::1;11765:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11765:129:0;;;-1:-1:-1;;;;;9088:32:1;;;11765:129:0::1;::::0;::::1;9070:51:1::0;9137:18;;;9130:34;;;;9180:18;;;9173:34;;;;9223:18;;;9216:34;9287:32;;;9266:19;;;9259:61;11878:15:0::1;9336:19:1::0;;;9329:35;9042:19;;11765:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11912:13:0::1;::::0;11943:15:::1;::::0;11905:71:::1;::::0;-1:-1:-1;;;11905:71:0;;-1:-1:-1;;;;;11943:15:0;;::::1;11905:71;::::0;::::1;10010:51:1::0;-1:-1:-1;;10077:18:1;;;10070:34;11912:13:0;::::1;::::0;-1:-1:-1;11905:29:0::1;::::0;9983:18:1;;11905:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11987:11:0::1;:18:::0;;-1:-1:-1;;;;12016:18:0;-1:-1:-1;;;12016:18:0;;;11369:673::o;6158:167::-;6236:4;6253:42;183:10;6277:9;6288:6;6253:9;:42::i;12326:372::-;12390:10;;-1:-1:-1;;;;;12390:10:0;183;-1:-1:-1;;;;;12376:24:0;;12368:33;;;;;;12412:20;12433:24;12451:4;12433:9;:24::i;:::-;12412:45;;12486:1;12471:12;:16;:31;;;;-1:-1:-1;12491:11:0;;-1:-1:-1;;;12491:11:0;;;;12471:31;12468:92;;;12518:30;12535:12;12518:16;:30::i;:::-;12589:21;12625:14;;12621:70;;12655:24;12668:10;12655:12;:24::i;10936:164::-;2475:6;;-1:-1:-1;;;;;2475:6:0;183:10;2475:22;2467:67;;;;-1:-1:-1;;;2467:67:0;;;;;;;:::i;:::-;11010:6:::1;11005:88;11026:5;:12;11022:1;:16;11005:88;;;11077:4;11060;:14;11065:5;11071:1;11065:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11060:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11060:14:0;:21;;-1:-1:-1;;11060:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11040:3:0::1;11005:88;;12052:229:::0;12132:10;;-1:-1:-1;;;;;12132:10:0;183;-1:-1:-1;;;;;12118:24:0;;12110:33;;;;;;12171:12;;12162:7;:21;;:47;;;;;12196:13;;12187:7;:22;;12162:47;12154:56;;;;;;12221:12;:20;;;12252:13;:21;12052:229::o;7317:2448::-;-1:-1:-1;;;;;7405:18:0;;7397:68;;;;-1:-1:-1;;;7397:68:0;;10599:2:1;7397:68:0;;;10581:21:1;10638:2;10618:18;;;10611:30;10677:34;10657:18;;;10650:62;-1:-1:-1;;;10728:18:1;;;10721:35;10773:19;;7397:68:0;10397:401:1;7397:68:0;-1:-1:-1;;;;;7484:16:0;;7476:64;;;;-1:-1:-1;;;7476:64:0;;11005:2:1;7476:64:0;;;10987:21:1;11044:2;11024:18;;;11017:30;11083:34;11063:18;;;11056:62;-1:-1:-1;;;11134:18:1;;;11127:33;11177:19;;7476:64:0;10803:399:1;7476:64:0;7568:1;7559:6;:10;7551:64;;;;-1:-1:-1;;;7551:64:0;;11409:2:1;7551:64:0;;;11391:21:1;11448:2;11428:18;;;11421:30;11487:34;11467:18;;;11460:62;-1:-1:-1;;;11538:18:1;;;11531:39;11587:19;;7551:64:0;11207:405:1;7551:64:0;7626:17;2413:6;;-1:-1:-1;;;;;7660:15:0;;;2413:6;;7660:15;;;;:32;;-1:-1:-1;2386:7:0;2413:6;-1:-1:-1;;;;;7679:13:0;;;2413:6;;7679:13;;7660:32;7656:1753;;;-1:-1:-1;;;;;7718:10:0;;;;;;:4;:10;;;;;;;;7717:11;:24;;;;-1:-1:-1;;;;;;7733:8:0;;;;;;:4;:8;;;;;;;;7732:9;7717:24;7709:33;;;;;;7762:9;;7773:1;7762:12;7759:139;;7806:76;7878:3;7806:67;7828:15;;7818:9;;:25;7817:55;;7858:14;;7817:55;;;7845:12;;7817:55;7806:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7794:88;;7759:139;7915:9;;:11;7912:95;;7958:33;7987:3;7958:24;7969:12;;7958:6;:10;;:24;;;;:::i;:33::-;7946:45;;7912:95;8035:13;;-1:-1:-1;;;;;8027:21:0;;;8035:13;;8027:21;:55;;;;-1:-1:-1;8066:15:0;;-1:-1:-1;;;;;8052:30:0;;;8066:15;;8052:30;;8027:55;:83;;;;-1:-1:-1;;;;;;8088:22:0;;;;;;:18;:22;;;;;;;;8086:24;8027:83;8023:420;;;8150:12;;8140:6;:22;;8132:60;;;;-1:-1:-1;;;8132:60:0;;11819:2:1;8132:60:0;;;11801:21:1;11858:2;11838:18;;;11831:30;11897:27;11877:18;;;11870:55;11942:18;;8132:60:0;11617:349:1;8132:60:0;8245:14;;8235:6;8219:13;8229:2;8219:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8211:79;;;;-1:-1:-1;;;8211:79:0;;12303:2:1;8211:79:0;;;12285:21:1;12342:2;12322:18;;;12315:30;12381:28;12361:18;;;12354:56;12427:18;;8211:79:0;12101:350:1;8211:79:0;8321:76;8393:3;8321:67;8343:15;;8333:9;;:25;8332:55;;8373:14;;8332:55;;8321:76;8416:9;:11;;8309:88;;-1:-1:-1;8416:9:0;:11;;;:::i;:::-;;;;;;8023:420;8468:13;;-1:-1:-1;;;;;8462:19:0;;;8468:13;;8462:19;:43;;;;-1:-1:-1;;;;;;8485:20:0;;8500:4;8485:20;;8462:43;8459:174;;;8538:79;8613:3;8538:70;8560:16;;8550:9;;:26;8549:58;;8592:15;;8549:58;;;8578:13;;8538:6;;:10;:70::i;:79::-;8526:91;;8459:174;8649:28;8680:24;8698:4;8680:9;:24::i;:::-;8724:6;;8649:55;;-1:-1:-1;;;;8724:6:0;;;;8723:7;:30;;;;-1:-1:-1;8740:13:0;;-1:-1:-1;;;;;8734:19:0;;;8740:13;;8734:19;8723:30;:45;;;;-1:-1:-1;8757:11:0;;-1:-1:-1;;;8757:11:0;;;;8723:45;:89;;;;;8795:17;;8772:20;:40;8723:89;:123;;;;;8828:18;;8816:9;;:30;8723:123;8719:679;;;8886:13;;8871:12;:28;8867:90;;;8936:1;8924:9;:13;8867:90;8995:1;8983:9;;:13;8975:49;;;;-1:-1:-1;;;8975:49:0;;12798:2:1;8975:49:0;;;12780:21:1;12837:2;12817:18;;;12810:30;12876:25;12856:18;;;12849:53;12919:18;;8975:49:0;12596:347:1;8975:49:0;9043:69;9060:51;9064:6;9072:38;9076:20;9098:11;;9072:3;:38::i;:::-;9060:3;:51::i;:::-;9043:16;:69::i;:::-;9160:21;9204:22;;9200:106;;9251:35;9264:21;9251:12;:35::i;:::-;9324:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9370:12:0;9354:13;:28;-1:-1:-1;8719:679:0;7694:1715;7656:1753;9424:11;;9421:161;;9492:4;9474:24;;;;:9;:24;;;;;;:39;;9503:9;9474:28;:39::i;:::-;9467:4;9449:24;;;;:9;:24;;;;;;;:64;;;;9531:39;;-1:-1:-1;;;;;9531:39:0;;;;;;;9560:9;1422:25:1;;1410:2;1395:18;;1276:177;9531:39:0;;;;;;;;9421:161;-1:-1:-1;;;;;9608:15:0;;;;;;:9;:15;;;;;;:27;;9628:6;9608:19;:27::i;:::-;-1:-1:-1;;;;;9592:15:0;;;;;;:9;:15;;;;;:43;9660:40;9678:21;:6;9689:9;9678:10;:21::i;:::-;-1:-1:-1;;;;;9660:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9646:13:0;;;;;;;:9;:13;;;;;:54;;;;9716:41;;;9735:21;:6;9746:9;9735:10;:21::i;:::-;9716:41;;1422:25:1;;;1410:2;1395:18;9716:41:0;;;;;;;7386:2379;7317:2448;;;:::o;6974:335::-;-1:-1:-1;;;;;7067:19:0;;7059:68;;;;-1:-1:-1;;;7059:68:0;;13150:2:1;7059:68:0;;;13132:21:1;13189:2;13169:18;;;13162:30;13228:34;13208:18;;;13201:62;-1:-1:-1;;;13279:18:1;;;13272:34;13323:19;;7059:68:0;12948:400:1;7059:68:0;-1:-1:-1;;;;;7146:21:0;;7138:68;;;;-1:-1:-1;;;7138:68:0;;13555:2:1;7138:68:0;;;13537:21:1;13594:2;13574:18;;;13567:30;13633:34;13613:18;;;13606:62;-1:-1:-1;;;13684:18:1;;;13677:32;13726:19;;7138:68:0;13353:398:1;7138:68:0;-1:-1:-1;;;;;7217:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7269:32;;1422:25:1;;;7269:32:0;;1395:18:1;7269:32:0;;;;;;;6974:335;;;:::o;1240:190::-;1326:7;1362:12;1354:6;;;;1346:29;;;;-1:-1:-1;;;1346:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1386:9:0;1398:5;1402:1;1398;:5;:::i;:::-;1386:17;1240:190;-1:-1:-1;;;;;1240:190:0:o;9881:483::-;5078:6;:13;;-1:-1:-1;;;;5078:13:0;-1:-1:-1;;;5078:13:0;;;9983:16:::1;::::0;;9997:1:::1;9983:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9983:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9983:16:0::1;9959:40;;10028:4;10010;10015:1;10010:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10010:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10054:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10054:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10010:7;;10054:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10044:4;10049:1;10044:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10044:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10119:15:::1;::::0;10087:62:::1;::::0;10104:4:::1;::::0;10119:15:::1;10137:11:::0;10087:8:::1;:62::i;:::-;10160:15;::::0;:196:::1;::::0;-1:-1:-1;;;10160:196:0;;-1:-1:-1;;;;;10160:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10241:11;;10160:15:::1;::::0;10283:4;;10310::::1;::::0;10330:15:::1;::::0;10160:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5114:6:0;:14;;-1:-1:-1;;;;5114:14:0;;;-1:-1:-1;;;;9881:483:0:o;10836:92::-;10893:10;;:27;;-1:-1:-1;;;;;10893:10:0;;;;:27;;;;;10913:6;;10893:10;:27;:10;:27;10913:6;10893:10;:27;;;;;;;;;;;;;;;;;;;1438:246;1496:7;1520:1;1525;1520:6;1516:47;;-1:-1:-1;1550:1:0;1543:8;;1516:47;1573:9;1585:5;1589:1;1585;:5;:::i;:::-;1573:17;-1:-1:-1;1618:1:0;1609:5;1613:1;1573:17;1609:5;:::i;:::-;:10;1601:56;;;;-1:-1:-1;;;1601:56:0;;15055:2:1;1601:56:0;;;15037:21:1;15094:2;15074:18;;;15067:30;15133:34;15113:18;;;15106:62;-1:-1:-1;;;15184:18:1;;;15177:31;15225:19;;1601:56:0;14853:397:1;1601:56:0;1675:1;1438:246;-1:-1:-1;;;1438:246:0:o;1692:132::-;1750:7;1777:39;1781:1;1784;1777:39;;;;;;;;;;;;;;;;;:3;:39::i;9775:98::-;9832:7;9859:1;9857;:3;9856:9;;9864:1;9856:9;;;-1:-1:-1;9862:1:0;9775:98;-1:-1:-1;9775:98:0:o;909:179::-;967:7;;999:5;1003:1;999;:5;:::i;:::-;987:17;;1028:1;1023;:6;;1015:46;;;;-1:-1:-1;;;1015:46:0;;15457:2:1;1015:46:0;;;15439:21:1;15496:2;15476:18;;;15469:30;15535:29;15515:18;;;15508:57;15582:18;;1015:46:0;15255:351:1;1096:136:0;1154:7;1181:43;1185:1;1188;1181:43;;;;;;;;;;;;;;;;;:3;:43::i;1832:189::-;1918:7;1953:12;1946:5;1938:28;;;;-1:-1:-1;;;1938:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1977:9:0;1989:5;1993:1;1989;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:134;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:367::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1043:2;1028:18;;;;1015:32;;-1:-1:-1;;;712:367:1:o;1458:508::-;1535:6;1543;1551;1604:2;1592:9;1583:7;1579:23;1575:32;1572:52;;;1620:1;1617;1610:12;1572:52;1659:9;1646:23;1678:31;1703:5;1678:31;:::i;:::-;1728:5;-1:-1:-1;1785:2:1;1770:18;;1757:32;1798:33;1757:32;1798:33;:::i;:::-;1458:508;;1850:7;;-1:-1:-1;;;1930:2:1;1915:18;;;;1902:32;;1458:508::o;1971:226::-;2030:6;2083:2;2071:9;2062:7;2058:23;2054:32;2051:52;;;2099:1;2096;2089:12;2051:52;-1:-1:-1;2144:23:1;;1971:226;-1:-1:-1;1971:226:1:o;2391:127::-;2452:10;2447:3;2443:20;2440:1;2433:31;2483:4;2480:1;2473:15;2507:4;2504:1;2497:15;2523:1127;2607:6;2660:2;2648:9;2639:7;2635:23;2631:32;2628:52;;;2676:1;2673;2666:12;2628:52;2716:9;2703:23;2749:18;2741:6;2738:30;2735:50;;;2781:1;2778;2771:12;2735:50;2804:22;;2857:4;2849:13;;2845:27;-1:-1:-1;2835:55:1;;2886:1;2883;2876:12;2835:55;2926:2;2913:16;2952:18;2944:6;2941:30;2938:56;;;2974:18;;:::i;:::-;3020:6;3017:1;3013:14;3056:2;3050:9;3119:2;3115:7;3110:2;3106;3102:11;3098:25;3090:6;3086:38;3190:6;3178:10;3175:22;3154:18;3142:10;3139:34;3136:62;3133:88;;;3201:18;;:::i;:::-;3237:2;3230:22;3287;;;3337:2;3367:11;;;3363:20;;;3287:22;3325:15;;3395:19;;;3392:39;;;3427:1;3424;3417:12;3392:39;3459:2;3455;3451:11;3440:22;;3471:148;3487:6;3482:3;3479:15;3471:148;;;3553:23;3572:3;3553:23;:::i;:::-;3541:36;;3606:2;3504:12;;;;3597;3471:148;;;-1:-1:-1;3638:6:1;2523:1127;-1:-1:-1;;;;;;2523:1127:1:o;3655:247::-;3714:6;3767:2;3755:9;3746:7;3742:23;3738:32;3735:52;;;3783:1;3780;3773:12;3735:52;3822:9;3809:23;3841:31;3866:5;3841:31;:::i;4115:388::-;4183:6;4191;4244:2;4232:9;4223:7;4219:23;4215:32;4212:52;;;4260:1;4257;4250:12;4212:52;4299:9;4286:23;4318:31;4343:5;4318:31;:::i;:::-;4368:5;-1:-1:-1;4425:2:1;4410:18;;4397:32;4438:33;4397:32;4438:33;:::i;:::-;4490:7;4480:17;;;4115:388;;;;;:::o;4865:356::-;5067:2;5049:21;;;5086:18;;;5079:30;5145:34;5140:2;5125:18;;5118:62;5212:2;5197:18;;4865:356::o;5416:127::-;5477:10;5472:3;5468:20;5465:1;5458:31;5508:4;5505:1;5498:15;5532:4;5529:1;5522:15;5548:375;5636:1;5654:5;5668:249;5689:1;5679:8;5676:15;5668:249;;;5739:4;5734:3;5730:14;5724:4;5721:24;5718:50;;;5748:18;;:::i;:::-;5798:1;5788:8;5784:16;5781:49;;;5812:16;;;;5781:49;5895:1;5891:16;;;;;5851:15;;5668:249;;;5548:375;;;;;;:::o;5928:902::-;5977:5;6007:8;5997:80;;-1:-1:-1;6048:1:1;6062:5;;5997:80;6096:4;6086:76;;-1:-1:-1;6133:1:1;6147:5;;6086:76;6178:4;6196:1;6191:59;;;;6264:1;6259:174;;;;6171:262;;6191:59;6221:1;6212:10;;6235:5;;;6259:174;6296:3;6286:8;6283:17;6280:43;;;6303:18;;:::i;:::-;-1:-1:-1;;6359:1:1;6345:16;;6418:5;;6171:262;;6517:2;6507:8;6504:16;6498:3;6492:4;6489:13;6485:36;6479:2;6469:8;6466:16;6461:2;6455:4;6452:12;6448:35;6445:77;6442:203;;;-1:-1:-1;6554:19:1;;;6630:5;;6442:203;6677:42;-1:-1:-1;;6702:8:1;6696:4;6677:42;:::i;:::-;6755:6;6751:1;6747:6;6743:19;6734:7;6731:32;6728:58;;;6766:18;;:::i;:::-;6804:20;;5928:902;-1:-1:-1;;;5928:902:1:o;6835:140::-;6893:5;6922:47;6963:4;6953:8;6949:19;6943:4;6922:47;:::i;6980:168::-;7053:9;;;7084;;7101:15;;;7095:22;;7081:37;7071:71;;7122:18;;:::i;7500:217::-;7540:1;7566;7556:132;;7610:10;7605:3;7601:20;7598:1;7591:31;7645:4;7642:1;7635:15;7673:4;7670:1;7663:15;7556:132;-1:-1:-1;7702:9:1;;7500:217::o;7722:127::-;7783:10;7778:3;7774:20;7771:1;7764:31;7814:4;7811:1;7804:15;7838:4;7835:1;7828:15;8206:251;8276:6;8329:2;8317:9;8308:7;8304:23;8300:32;8297:52;;;8345:1;8342;8335:12;8297:52;8377:9;8371:16;8396:31;8421:5;8396:31;:::i;9375:456::-;9463:6;9471;9479;9532:2;9520:9;9511:7;9507:23;9503:32;9500:52;;;9548:1;9545;9538:12;9500:52;-1:-1:-1;;9593:16:1;;9699:2;9684:18;;9678:25;9795:2;9780:18;;;9774:25;9593:16;;9678:25;;-1:-1:-1;9774:25:1;9375:456;-1:-1:-1;9375:456:1:o;10115:277::-;10182:6;10235:2;10223:9;10214:7;10210:23;10206:32;10203:52;;;10251:1;10248;10241:12;10203:52;10283:9;10277:16;10336:5;10329:13;10322:21;10315:5;10312:32;10302:60;;10358:1;10355;10348:12;11971:125;12036:9;;;12057:10;;;12054:36;;;12070:18;;:::i;12456:135::-;12495:3;12516:17;;;12513:43;;12536:18;;:::i;:::-;-1:-1:-1;12583:1:1;12572:13;;12456:135::o;13756:128::-;13823:9;;;13844:11;;;13841:37;;;13858:18;;:::i;13889:959::-;14151:4;14199:3;14188:9;14184:19;14230:6;14219:9;14212:25;14273:6;14268:2;14257:9;14253:18;14246:34;14316:3;14311:2;14300:9;14296:18;14289:31;14340:6;14375;14369:13;14406:6;14398;14391:22;14444:3;14433:9;14429:19;14422:26;;14483:2;14475:6;14471:15;14457:29;;14504:1;14514:195;14528:6;14525:1;14522:13;14514:195;;;14593:13;;-1:-1:-1;;;;;14589:39:1;14577:52;;14658:2;14684:15;;;;14649:12;;;;14625:1;14543:9;14514:195;;;-1:-1:-1;;;;;;;14765:32:1;;;;14760:2;14745:18;;14738:60;-1:-1:-1;;14829:3:1;14814:19;14807:35;14726:3;13889:959;-1:-1:-1;;;13889:959:1:o
Swarm Source
ipfs://ed24942930ed5045243edea2949f4ab98954d012d1ba8b107ace25fbbc326051
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.