ERC-20
Overview
Max Total Supply
100,000,000 KAAI
Holders
1,352
Market
Price
$0.15 @ 0.000047 ETH (-15.91%)
Onchain Market Cap
$15,494,100.00
Circulating Supply Market Cap
$15,490,702.00
Other Info
Token Contract (WITH 9 Decimals)
Balance
31,047.780552 KAAIValue
$4,810.57 ( ~1.4540 Eth) [0.0310%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
KAAI
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-16 */ // SPDX-License-Identifier: MIT /* Create your own AI Chatbots and AI Agents with ease on our website: https://kanzzai.com Stay updated with the latest announcements and developments by following us on Twitter: https://x.com/Kanzz_AI Join our Telegram community to connect with us and fellow enthusiasts: https://t.me/KanzzAICommunity Explore our whitepaper for an in-depth look at KanzzAI's technology and vision: https://docs.kanzzai.com Watch our tutorials and updates on KanzzAI's YouTube channel: https://www.youtube.com/@KanzzAI Find all our resources in one place on Linktree: https://linktr.ee/kanzzai */ pragma solidity ^0.8.27; // Context Contract abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } // IERC20 Interface 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 ); } // Ownable Contract 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 changeOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } 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; } } // Interfaces for Uniswap interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract KAAI is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "KANZZAI"; string private constant _symbol = "KAAI"; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**9; uint256 private _tFeeTotal; uint256 private _taxFeeOnBuy = 4; uint256 private _taxFeeOnSell = 4; uint256 private _taxFee; uint256 private _previousTaxFee; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; address payable private _feeWallet = payable(0xb129a14E8D3162Ba295aB8509e916534FA2Eb54b); mapping(address => bool) private _isExcludedFromFee; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingEnabled = false; bool private inSwap = false; bool private swapEnabled = true; bool private autoTaxEnabled = true; uint256 private launchBlock; uint256 public _maxTransactionAmount = 1000000 * 10**9; uint256 public _maxWalletSize = 1000000 * 10**9; uint256 public _swapTokensAtTreshold = 1000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); event TradingEnabled(uint256 launchBlock); event FeesUpdated(uint256 taxFeeOnBuy, uint256 taxFeeOnSell); event SwapEnabledUpdated(bool enabled); event AutoTaxEnabledUpdated(bool enabled); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _balances[_msgSender()] = _tTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); // Uniswap V2 Router uniswapV2Router = _uniswapV2Router; // Create a uniswap pair for this token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // Exclude addresses from fees _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } // ERC20 standard functions 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; } // Internal functions function removeAllFee() private { if (_taxFee == 0) return; _previousTaxFee = _taxFee; _taxFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; } 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); } // Main transfer function function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from zero address"); require(to != address(0), "ERC20: transfer to zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { // Trading enabled check if (!tradingEnabled) { require(from == owner(), "TOKEN: Trading is not enabled yet"); } require( amount <= _maxTransactionAmount, "TOKEN: Exceeds max transaction limit" ); if (to != uniswapV2Pair) { require( _balances[to].add(amount) <= _maxWalletSize, "TOKEN: Exceeds max wallet size" ); } uint256 contractTokenBalance = _balances[address(this)]; bool canSwap = contractTokenBalance >= _swapTokensAtTreshold; if (contractTokenBalance >= _maxTransactionAmount) { contractTokenBalance = _maxTransactionAmount; } if ( canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(contractETHBalance); } } } bool takeFee = true; // Exclude from fee if ( _isExcludedFromFee[from] || _isExcludedFromFee[to] || (from != uniswapV2Pair && to != uniswapV2Pair) ) { takeFee = false; } else { // Set Fee for Buys and Sells ( Snipe Protection ) if (autoTaxEnabled) { uint256 blocksSinceLaunch = block.number.sub(launchBlock); if (from == uniswapV2Pair) { // Buy if ( blocksSinceLaunch <= 4) { _taxFee = 50; } else if (blocksSinceLaunch > 4 && blocksSinceLaunch <= 20) { _taxFee = 25; } else if (blocksSinceLaunch > 20 && blocksSinceLaunch <= 60) { _taxFee = 10; } else { _taxFee = _taxFeeOnBuy; } } else if (to == uniswapV2Pair) { // Sell if ( blocksSinceLaunch <= 4) { _taxFee = 50; } else if (blocksSinceLaunch > 4 && blocksSinceLaunch <= 20) { _taxFee = 25; } else if (blocksSinceLaunch > 20 && blocksSinceLaunch <= 60) { _taxFee = 10; } else { _taxFee = _taxFeeOnSell; } } } else { if (from == uniswapV2Pair) { // Buy _taxFee = _taxFeeOnBuy; } else if (to == uniswapV2Pair) { // Sell _taxFee = _taxFeeOnSell; } } } _tokenTransfer(from, to, amount, takeFee); } // Swap tokens for ETH function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { // Generate the uniswap pair path of token -> WETH (ETH) address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // Make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // Accept any amount of ETH path, address(this), block.timestamp ); } // Send ETH to fee wallet function sendETHToFee(uint256 amount) private { _feeWallet.transfer(amount); } // Enable trading function enableTrading() public onlyOwner { tradingEnabled = true; launchBlock = block.number; emit TradingEnabled(launchBlock); } function isTradingEnabled() public view returns (bool) { return tradingEnabled; } // Manual swap and send functions function manualSwap() external { require(_msgSender() == _feeWallet, "Not authorized"); uint256 contractBalance = _balances[address(this)]; swapTokensForEth(contractBalance); } function manualSend() external { require(_msgSender() == _feeWallet, "Not authorized"); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } // Token transfer function function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); uint256 fee = amount.mul(_taxFee).div(100); uint256 transferAmount = amount.sub(fee); _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(transferAmount); _balances[address(this)] = _balances[address(this)].add(fee); emit Transfer(sender, recipient, transferAmount); if (takeFee) { emit Transfer(sender, address(this), fee); } if (!takeFee) restoreAllFee(); } // Receive ETH from Uniswap receive() external payable {} // Owner functions to update settings function updateFees(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; emit FeesUpdated(taxFeeOnBuy, taxFeeOnSell); } function updateSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtTreshold = swapTokensAtAmount; } function setSwapEnabled(bool enabled) public onlyOwner { swapEnabled = enabled; emit SwapEnabledUpdated(enabled); } function setAutoTaxEnabled(bool enabled) public onlyOwner { autoTaxEnabled = enabled; emit AutoTaxEnabledUpdated(enabled); } function updateMaxTransactionAmount(uint256 maxTxAmount) public onlyOwner { _maxTransactionAmount = maxTxAmount; emit MaxTxAmountUpdated(maxTxAmount); } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function setExcludeFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"AutoTaxEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"FeesUpdated","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":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"launchBlock","type":"uint256"}],"name":"TradingEnabled","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":"_maxTransactionAmount","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":"_swapTokensAtTreshold","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setAutoTaxEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","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"},{"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"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"updateMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"updateSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260046002819055600355600880546001600160a01b03191673b129a14e8d3162ba295ab8509e916534fa2eb54b179055600b805461010160b01b63ffffffff60a01b1990911617905566038d7ea4c68000600d819055600e819055600f5534801561006d575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350335f9081526006602090815260409182902067016345785d8a00009055600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519092839263c45a0155926004808401938290030181865afa158015610129573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014d91906102e2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610198573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bc91906102e2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610206573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022a91906102e2565b600b80546001600160a01b0319166001600160a01b039283161790555f80548216815260096020526040808220805460ff1990811660019081179092553084528284208054821683179055600854909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516102d491815260200190565b60405180910390a35061030f565b5f602082840312156102f2575f5ffd5b81516001600160a01b0381168114610308575f5ffd5b9392505050565b611a7e8061031c5f395ff3fe6080604052600436106101b2575f3560e01c806370a08231116100e7578063a9059cbb11610087578063dd62ed3e11610062578063dd62ed3e146104cd578063e01af92c14610511578063ea1644d514610530578063f42938901461054f575f5ffd5b8063a9059cbb14610470578063aa4980231461048f578063b6e85216146104ae575f5ffd5b80638baa63b2116100c25780638baa63b2146103f45780638da5cb5b146104135780638f9a55c01461042f57806395d89b4114610444575f5ffd5b806370a0823114610398578063715018a6146103cc5780638a8c523c146103e0575f5ffd5b806323b872dd1161015257806349bd5a5e1161012d57806349bd5a5e1461032757806351bc3c851461034657806364d1966f1461035a5780636db7943714610379575f5ffd5b806323b872dd146102cc5780632af4c31e146102eb578063313ce5671461030c575f5ffd5b8063095ea7b31161018d578063095ea7b3146102475780630ac742f3146102665780631694505e1461027b57806318160ddd146102b2575f5ffd5b806304beaeb8146101bd578063064a59d0146101e557806306fdde031461020f575f5ffd5b366101b957005b5f5ffd5b3480156101c8575f5ffd5b506101d2600d5481565b6040519081526020015b60405180910390f35b3480156101f0575f5ffd5b50600b54600160a01b900460ff165b60405190151581526020016101dc565b34801561021a575f5ffd5b506040805180820190915260078152664b414e5a5a414960c81b60208201525b6040516101dc91906116d0565b348015610252575f5ffd5b506101ff610261366004611719565b610563565b348015610271575f5ffd5b506101d2600f5481565b348015610286575f5ffd5b50600a5461029a906001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b3480156102bd575f5ffd5b5067016345785d8a00006101d2565b3480156102d7575f5ffd5b506101ff6102e6366004611743565b610579565b3480156102f6575f5ffd5b5061030a610305366004611781565b6105e0565b005b348015610317575f5ffd5b50604051600981526020016101dc565b348015610332575f5ffd5b50600b5461029a906001600160a01b031681565b348015610351575f5ffd5b5061030a6106d0565b348015610365575f5ffd5b5061030a6103743660046117b0565b61073f565b348015610384575f5ffd5b5061030a6103933660046117c9565b6107c0565b3480156103a3575f5ffd5b506101d26103b2366004611781565b6001600160a01b03165f9081526006602052604090205490565b3480156103d7575f5ffd5b5061030a610830565b3480156103eb575f5ffd5b5061030a6108a1565b3480156103ff575f5ffd5b5061030a61040e3660046117e9565b61091f565b34801561041e575f5ffd5b505f546001600160a01b031661029a565b34801561043a575f5ffd5b506101d2600e5481565b34801561044f575f5ffd5b506040805180820190915260048152634b41414960e01b602082015261023a565b34801561047b575f5ffd5b506101ff61048a366004611719565b61094d565b34801561049a575f5ffd5b5061030a6104a93660046117e9565b610959565b3480156104b9575f5ffd5b5061030a6104c8366004611800565b6109b7565b3480156104d8575f5ffd5b506101d26104e736600461187f565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561051c575f5ffd5b5061030a61052b3660046117b0565b610a4a565b34801561053b575f5ffd5b5061030a61054a3660046117e9565b610ac0565b34801561055a575f5ffd5b5061030a610aee565b5f61056f338484610b4c565b5060015b92915050565b5f610585848484610c6f565b6105d684336105d185604051806060016040528060288152602001611a21602891396001600160a01b038a165f90815260076020908152604080832033845290915290205491906111c4565b610b4c565b5060019392505050565b5f546001600160a01b031633146106125760405162461bcd60e51b8152600401610609906118b6565b60405180910390fd5b6001600160a01b0381166106775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610609565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b0316336001600160a01b0316146107245760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610609565b305f9081526006602052604090205461073c816111fc565b50565b5f546001600160a01b031633146107685760405162461bcd60e51b8152600401610609906118b6565b600b8054821515600160b81b0260ff60b81b199091161790556040517f58a7dba56eaaea4e4e6083c90c8125c21ab7ad09121a3b17fcb6a059df0ec2a0906107b590831515815260200190565b60405180910390a150565b5f546001600160a01b031633146107e95760405162461bcd60e51b8152600401610609906118b6565b6002829055600381905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1910160405180910390a15050565b5f546001600160a01b031633146108595760405162461bcd60e51b8152600401610609906118b6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108ca5760405162461bcd60e51b8152600401610609906118b6565b600b805460ff60a01b1916600160a01b17905543600c8190556040517fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e923916109159190815260200190565b60405180910390a1565b5f546001600160a01b031633146109485760405162461bcd60e51b8152600401610609906118b6565b600f55565b5f61056f338484610c6f565b5f546001600160a01b031633146109825760405162461bcd60e51b8152600401610609906118b6565b600d8190556040518181527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906020016107b5565b5f546001600160a01b031633146109e05760405162461bcd60e51b8152600401610609906118b6565b5f5b82811015610a44578160095f868685818110610a0057610a006118eb565b9050602002016020810190610a159190611781565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556001016109e2565b50505050565b5f546001600160a01b03163314610a735760405162461bcd60e51b8152600401610609906118b6565b600b8054821515600160b01b0260ff60b01b199091161790556040517f436b6cf978c7b6998fcce43dfe4d37e3a0dc2bb780144a2eb55d7138201e8a12906107b590831515815260200190565b5f546001600160a01b03163314610ae95760405162461bcd60e51b8152600401610609906118b6565b600e55565b6008546001600160a01b0316336001600160a01b031614610b425760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610609565b4761073c8161136c565b6001600160a01b038316610bae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610609565b6001600160a01b038216610c0f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610609565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ccf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610609565b6001600160a01b038216610d255760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610609565b5f8111610d865760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610609565b5f546001600160a01b03848116911614801590610db057505f546001600160a01b03838116911614155b15610fe957600b54600160a01b900460ff16610e2c575f546001600160a01b03848116911614610e2c5760405162461bcd60e51b815260206004820152602160248201527f544f4b454e3a2054726164696e67206973206e6f7420656e61626c65642079656044820152601d60fa1b6064820152608401610609565b600d54811115610e8a5760405162461bcd60e51b8152602060048201526024808201527f544f4b454e3a2045786365656473206d6178207472616e73616374696f6e206c6044820152631a5b5a5d60e21b6064820152608401610609565b600b546001600160a01b03838116911614610f1257600e546001600160a01b0383165f90815260066020526040902054610ec490836113a7565b1115610f125760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2045786365656473206d61782077616c6c65742073697a6500006044820152606401610609565b305f90815260066020526040902054600f54600d5490821015908210610f3857600d5491505b808015610f4f5750600b54600160a81b900460ff16155b8015610f695750600b546001600160a01b03868116911614155b8015610f7e5750600b54600160b01b900460ff165b8015610fa257506001600160a01b0385165f9081526009602052604090205460ff16155b8015610fc657506001600160a01b0384165f9081526009602052604090205460ff16155b15610fe657610fd4826111fc565b478015610fe457610fe48161136c565b505b50505b6001600160a01b0383165f9081526009602052604090205460019060ff168061102957506001600160a01b0383165f9081526009602052604090205460ff165b8061105b5750600b546001600160a01b0385811691161480159061105b5750600b546001600160a01b03848116911614155b1561106757505f6111b8565b600b54600160b81b900460ff161561117a575f61108f600c544361140c90919063ffffffff16565b600b549091506001600160a01b039081169086160361110557600481116110ba576032600455611174565b6004811180156110cb575060148111155b156110da576019600455611174565b6014811180156110eb5750603c8111155b156110fa57600a600455611174565b600254600455611174565b600b546001600160a01b0390811690851603611174576004811161112d576032600455611174565b60048111801561113e575060148111155b1561114d576019600455611174565b60148111801561115e5750603c8111155b1561116d57600a600455611174565b6003546004555b506111b8565b600b546001600160a01b039081169085160361119b576002546004556111b8565b600b546001600160a01b03908116908416036111b8576003546004555b610a448484848461144d565b5f81848411156111e75760405162461bcd60e51b815260040161060991906116d0565b505f6111f38486611913565b95945050505050565b600b805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611242576112426118eb565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611299573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bd9190611926565b816001815181106112d0576112d06118eb565b6001600160a01b039283166020918202929092010152600a546112f69130911684610b4c565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061132e9085905f90869030904290600401611941565b5f604051808303815f87803b158015611345575f5ffd5b505af1158015611357573d5f5f3e3d5ffd5b5050600b805460ff60a81b1916905550505050565b6008546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156113a3573d5f5f3e3d5ffd5b5050565b5f806113b383856119b1565b9050838110156114055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610609565b9392505050565b5f61140583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111c4565b8061145a5761145a6115d3565b5f61147b6064611475600454866115ea90919063ffffffff16565b90611668565b90505f611488848361140c565b90506114c6846040518060600160405280602681526020016119fb602691396001600160a01b0389165f9081526006602052604090205491906111c4565b6001600160a01b038088165f9081526006602052604080822093909355908716815220546114f490826113a7565b6001600160a01b0386165f9081526006602052604080822092909255308152205461151f90836113a7565b305f9081526006602090815260409182902092909255518281526001600160a01b0387811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a382156115bb5760405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b826115cb576115cb600554600455565b505050505050565b6004545f036115de57565b600480546005555f9055565b5f825f036115f957505f610573565b5f61160483856119c4565b90508261161185836119db565b146114055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610609565b5f61140583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836116c45760405162461bcd60e51b815260040161060991906116d0565b505f6111f384866119db565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461073c575f5ffd5b5f5f6040838503121561172a575f5ffd5b823561173581611705565b946020939093013593505050565b5f5f5f60608486031215611755575f5ffd5b833561176081611705565b9250602084013561177081611705565b929592945050506040919091013590565b5f60208284031215611791575f5ffd5b813561140581611705565b803580151581146117ab575f5ffd5b919050565b5f602082840312156117c0575f5ffd5b6114058261179c565b5f5f604083850312156117da575f5ffd5b50508035926020909101359150565b5f602082840312156117f9575f5ffd5b5035919050565b5f5f5f60408486031215611812575f5ffd5b833567ffffffffffffffff811115611828575f5ffd5b8401601f81018613611838575f5ffd5b803567ffffffffffffffff81111561184e575f5ffd5b8660208260051b8401011115611862575f5ffd5b60209182019450925061187690850161179c565b90509250925092565b5f5f60408385031215611890575f5ffd5b823561189b81611705565b915060208301356118ab81611705565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610573576105736118ff565b5f60208284031215611936575f5ffd5b815161140581611705565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119915783516001600160a01b031683526020938401939092019160010161196a565b50506001600160a01b039590951660608401525050608001529392505050565b80820180821115610573576105736118ff565b8082028115828204841417610573576105736118ff565b5f826119f557634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d732973b230e74d5b8ce3cad1420275e6a74647a7a0e25f347c8ec485db90fd864736f6c634300081b0033
Deployed Bytecode
0x6080604052600436106101b2575f3560e01c806370a08231116100e7578063a9059cbb11610087578063dd62ed3e11610062578063dd62ed3e146104cd578063e01af92c14610511578063ea1644d514610530578063f42938901461054f575f5ffd5b8063a9059cbb14610470578063aa4980231461048f578063b6e85216146104ae575f5ffd5b80638baa63b2116100c25780638baa63b2146103f45780638da5cb5b146104135780638f9a55c01461042f57806395d89b4114610444575f5ffd5b806370a0823114610398578063715018a6146103cc5780638a8c523c146103e0575f5ffd5b806323b872dd1161015257806349bd5a5e1161012d57806349bd5a5e1461032757806351bc3c851461034657806364d1966f1461035a5780636db7943714610379575f5ffd5b806323b872dd146102cc5780632af4c31e146102eb578063313ce5671461030c575f5ffd5b8063095ea7b31161018d578063095ea7b3146102475780630ac742f3146102665780631694505e1461027b57806318160ddd146102b2575f5ffd5b806304beaeb8146101bd578063064a59d0146101e557806306fdde031461020f575f5ffd5b366101b957005b5f5ffd5b3480156101c8575f5ffd5b506101d2600d5481565b6040519081526020015b60405180910390f35b3480156101f0575f5ffd5b50600b54600160a01b900460ff165b60405190151581526020016101dc565b34801561021a575f5ffd5b506040805180820190915260078152664b414e5a5a414960c81b60208201525b6040516101dc91906116d0565b348015610252575f5ffd5b506101ff610261366004611719565b610563565b348015610271575f5ffd5b506101d2600f5481565b348015610286575f5ffd5b50600a5461029a906001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b3480156102bd575f5ffd5b5067016345785d8a00006101d2565b3480156102d7575f5ffd5b506101ff6102e6366004611743565b610579565b3480156102f6575f5ffd5b5061030a610305366004611781565b6105e0565b005b348015610317575f5ffd5b50604051600981526020016101dc565b348015610332575f5ffd5b50600b5461029a906001600160a01b031681565b348015610351575f5ffd5b5061030a6106d0565b348015610365575f5ffd5b5061030a6103743660046117b0565b61073f565b348015610384575f5ffd5b5061030a6103933660046117c9565b6107c0565b3480156103a3575f5ffd5b506101d26103b2366004611781565b6001600160a01b03165f9081526006602052604090205490565b3480156103d7575f5ffd5b5061030a610830565b3480156103eb575f5ffd5b5061030a6108a1565b3480156103ff575f5ffd5b5061030a61040e3660046117e9565b61091f565b34801561041e575f5ffd5b505f546001600160a01b031661029a565b34801561043a575f5ffd5b506101d2600e5481565b34801561044f575f5ffd5b506040805180820190915260048152634b41414960e01b602082015261023a565b34801561047b575f5ffd5b506101ff61048a366004611719565b61094d565b34801561049a575f5ffd5b5061030a6104a93660046117e9565b610959565b3480156104b9575f5ffd5b5061030a6104c8366004611800565b6109b7565b3480156104d8575f5ffd5b506101d26104e736600461187f565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b34801561051c575f5ffd5b5061030a61052b3660046117b0565b610a4a565b34801561053b575f5ffd5b5061030a61054a3660046117e9565b610ac0565b34801561055a575f5ffd5b5061030a610aee565b5f61056f338484610b4c565b5060015b92915050565b5f610585848484610c6f565b6105d684336105d185604051806060016040528060288152602001611a21602891396001600160a01b038a165f90815260076020908152604080832033845290915290205491906111c4565b610b4c565b5060019392505050565b5f546001600160a01b031633146106125760405162461bcd60e51b8152600401610609906118b6565b60405180910390fd5b6001600160a01b0381166106775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610609565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b0316336001600160a01b0316146107245760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610609565b305f9081526006602052604090205461073c816111fc565b50565b5f546001600160a01b031633146107685760405162461bcd60e51b8152600401610609906118b6565b600b8054821515600160b81b0260ff60b81b199091161790556040517f58a7dba56eaaea4e4e6083c90c8125c21ab7ad09121a3b17fcb6a059df0ec2a0906107b590831515815260200190565b60405180910390a150565b5f546001600160a01b031633146107e95760405162461bcd60e51b8152600401610609906118b6565b6002829055600381905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1910160405180910390a15050565b5f546001600160a01b031633146108595760405162461bcd60e51b8152600401610609906118b6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108ca5760405162461bcd60e51b8152600401610609906118b6565b600b805460ff60a01b1916600160a01b17905543600c8190556040517fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e923916109159190815260200190565b60405180910390a1565b5f546001600160a01b031633146109485760405162461bcd60e51b8152600401610609906118b6565b600f55565b5f61056f338484610c6f565b5f546001600160a01b031633146109825760405162461bcd60e51b8152600401610609906118b6565b600d8190556040518181527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906020016107b5565b5f546001600160a01b031633146109e05760405162461bcd60e51b8152600401610609906118b6565b5f5b82811015610a44578160095f868685818110610a0057610a006118eb565b9050602002016020810190610a159190611781565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556001016109e2565b50505050565b5f546001600160a01b03163314610a735760405162461bcd60e51b8152600401610609906118b6565b600b8054821515600160b01b0260ff60b01b199091161790556040517f436b6cf978c7b6998fcce43dfe4d37e3a0dc2bb780144a2eb55d7138201e8a12906107b590831515815260200190565b5f546001600160a01b03163314610ae95760405162461bcd60e51b8152600401610609906118b6565b600e55565b6008546001600160a01b0316336001600160a01b031614610b425760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610609565b4761073c8161136c565b6001600160a01b038316610bae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610609565b6001600160a01b038216610c0f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610609565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ccf5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610609565b6001600160a01b038216610d255760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610609565b5f8111610d865760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610609565b5f546001600160a01b03848116911614801590610db057505f546001600160a01b03838116911614155b15610fe957600b54600160a01b900460ff16610e2c575f546001600160a01b03848116911614610e2c5760405162461bcd60e51b815260206004820152602160248201527f544f4b454e3a2054726164696e67206973206e6f7420656e61626c65642079656044820152601d60fa1b6064820152608401610609565b600d54811115610e8a5760405162461bcd60e51b8152602060048201526024808201527f544f4b454e3a2045786365656473206d6178207472616e73616374696f6e206c6044820152631a5b5a5d60e21b6064820152608401610609565b600b546001600160a01b03838116911614610f1257600e546001600160a01b0383165f90815260066020526040902054610ec490836113a7565b1115610f125760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2045786365656473206d61782077616c6c65742073697a6500006044820152606401610609565b305f90815260066020526040902054600f54600d5490821015908210610f3857600d5491505b808015610f4f5750600b54600160a81b900460ff16155b8015610f695750600b546001600160a01b03868116911614155b8015610f7e5750600b54600160b01b900460ff165b8015610fa257506001600160a01b0385165f9081526009602052604090205460ff16155b8015610fc657506001600160a01b0384165f9081526009602052604090205460ff16155b15610fe657610fd4826111fc565b478015610fe457610fe48161136c565b505b50505b6001600160a01b0383165f9081526009602052604090205460019060ff168061102957506001600160a01b0383165f9081526009602052604090205460ff165b8061105b5750600b546001600160a01b0385811691161480159061105b5750600b546001600160a01b03848116911614155b1561106757505f6111b8565b600b54600160b81b900460ff161561117a575f61108f600c544361140c90919063ffffffff16565b600b549091506001600160a01b039081169086160361110557600481116110ba576032600455611174565b6004811180156110cb575060148111155b156110da576019600455611174565b6014811180156110eb5750603c8111155b156110fa57600a600455611174565b600254600455611174565b600b546001600160a01b0390811690851603611174576004811161112d576032600455611174565b60048111801561113e575060148111155b1561114d576019600455611174565b60148111801561115e5750603c8111155b1561116d57600a600455611174565b6003546004555b506111b8565b600b546001600160a01b039081169085160361119b576002546004556111b8565b600b546001600160a01b03908116908416036111b8576003546004555b610a448484848461144d565b5f81848411156111e75760405162461bcd60e51b815260040161060991906116d0565b505f6111f38486611913565b95945050505050565b600b805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611242576112426118eb565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611299573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bd9190611926565b816001815181106112d0576112d06118eb565b6001600160a01b039283166020918202929092010152600a546112f69130911684610b4c565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061132e9085905f90869030904290600401611941565b5f604051808303815f87803b158015611345575f5ffd5b505af1158015611357573d5f5f3e3d5ffd5b5050600b805460ff60a81b1916905550505050565b6008546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156113a3573d5f5f3e3d5ffd5b5050565b5f806113b383856119b1565b9050838110156114055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610609565b9392505050565b5f61140583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111c4565b8061145a5761145a6115d3565b5f61147b6064611475600454866115ea90919063ffffffff16565b90611668565b90505f611488848361140c565b90506114c6846040518060600160405280602681526020016119fb602691396001600160a01b0389165f9081526006602052604090205491906111c4565b6001600160a01b038088165f9081526006602052604080822093909355908716815220546114f490826113a7565b6001600160a01b0386165f9081526006602052604080822092909255308152205461151f90836113a7565b305f9081526006602090815260409182902092909255518281526001600160a01b0387811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a382156115bb5760405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b826115cb576115cb600554600455565b505050505050565b6004545f036115de57565b600480546005555f9055565b5f825f036115f957505f610573565b5f61160483856119c4565b90508261161185836119db565b146114055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610609565b5f61140583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f81836116c45760405162461bcd60e51b815260040161060991906116d0565b505f6111f384866119db565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461073c575f5ffd5b5f5f6040838503121561172a575f5ffd5b823561173581611705565b946020939093013593505050565b5f5f5f60608486031215611755575f5ffd5b833561176081611705565b9250602084013561177081611705565b929592945050506040919091013590565b5f60208284031215611791575f5ffd5b813561140581611705565b803580151581146117ab575f5ffd5b919050565b5f602082840312156117c0575f5ffd5b6114058261179c565b5f5f604083850312156117da575f5ffd5b50508035926020909101359150565b5f602082840312156117f9575f5ffd5b5035919050565b5f5f5f60408486031215611812575f5ffd5b833567ffffffffffffffff811115611828575f5ffd5b8401601f81018613611838575f5ffd5b803567ffffffffffffffff81111561184e575f5ffd5b8660208260051b8401011115611862575f5ffd5b60209182019450925061187690850161179c565b90509250925092565b5f5f60408385031215611890575f5ffd5b823561189b81611705565b915060208301356118ab81611705565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610573576105736118ff565b5f60208284031215611936575f5ffd5b815161140581611705565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119915783516001600160a01b031683526020938401939092019160010161196a565b50506001600160a01b039590951660608401525050608001529392505050565b80820180821115610573576105736118ff565b8082028115828204841417610573576105736118ff565b5f826119f557634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d732973b230e74d5b8ce3cad1420275e6a74647a7a0e25f347c8ec485db90fd864736f6c634300081b0033
Deployed Bytecode Sourcemap
5076:11922:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6117:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6117:54:0;;;;;;;;14221:95;;;;;;;;;;-1:-1:-1;14294:14:0;;-1:-1:-1;;;14294:14:0;;;;14221:95;;;361:14:1;;354:22;336:41;;324:2;309:18;14221:95:0;196:187:1;7403:83:0;;;;;;;;;;-1:-1:-1;7473:5:0;;;;;;;;;;;;-1:-1:-1;;;7473:5:0;;;;7403:83;;;;;;;:::i;8309:193::-;;;;;;;;;;-1:-1:-1;8309:193:0;;;;;:::i;:::-;;:::i;6232:54::-;;;;;;;;;;;;;;;;5841:41;;;;;;;;;;-1:-1:-1;5841:41:0;;;;-1:-1:-1;;;;;5841:41:0;;;;;;-1:-1:-1;;;;;1509:32:1;;;1491:51;;1479:2;1464:18;5841:41:0;1319:229:1;7680:95:0;;;;;;;;;;-1:-1:-1;5335:17:0;7680:95;;8510:446;;;;;;;;;;-1:-1:-1;8510:446:0;;;;;:::i;:::-;;:::i;2387:279::-;;;;;;;;;;-1:-1:-1;2387:279:0;;;;;:::i;:::-;;:::i;:::-;;7589:83;;;;;;;;;;-1:-1:-1;7589:83:0;;5290:1;2460:36:1;;2448:2;2433:18;7589:83:0;2318:184:1;5889:28:0;;;;;;;;;;-1:-1:-1;5889:28:0;;;;-1:-1:-1;;;;;5889:28:0;;;14363:208;;;;;;;;;;;;;:::i;16289:147::-;;;;;;;;;;-1:-1:-1;16289:147:0;;;;;:::i;:::-;;:::i;15722:241::-;;;;;;;;;;-1:-1:-1;15722:241:0;;;;;:::i;:::-;;:::i;7783:119::-;;;;;;;;;;-1:-1:-1;7783:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7876:18:0;7849:7;7876:18;;;:9;:18;;;;;;;7783:119;2231:148;;;;;;;;;;;;;:::i;14051:162::-;;;;;;;;;;;;;:::i;15971:164::-;;;;;;;;;;-1:-1:-1;15971:164:0;;;;;:::i;:::-;;:::i;2017:79::-;;;;;;;;;;-1:-1:-1;2055:7:0;2082:6;-1:-1:-1;;;;;2082:6:0;2017:79;;6178:47;;;;;;;;;;;;;;;;7494:87;;;;;;;;;;-1:-1:-1;7566:7:0;;;;;;;;;;;;-1:-1:-1;;;7566:7:0;;;;7494:87;;7910:199;;;;;;;;;;-1:-1:-1;7910:199:0;;;;;:::i;:::-;;:::i;16444:175::-;;;;;;;;;;-1:-1:-1;16444:175:0;;;;;:::i;:::-;;:::i;16750:245::-;;;;;;;;;;-1:-1:-1;16750:245:0;;;;;:::i;:::-;;:::i;8117:184::-;;;;;;;;;;-1:-1:-1;8117:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8266:18:0;;;8234:7;8266:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8117:184;16143:138;;;;;;;;;;-1:-1:-1;16143:138:0;;;;;:::i;:::-;;:::i;16627:115::-;;;;;;;;;;-1:-1:-1;16627:115:0;;;;;:::i;:::-;;:::i;14579:207::-;;;;;;;;;;;;;:::i;8309:193::-;8411:4;8433:39;806:10;8456:7;8465:6;8433:8;:39::i;:::-;-1:-1:-1;8490:4:0;8309:193;;;;;:::o;8510:446::-;8642:4;8659:36;8669:6;8677:9;8688:6;8659:9;:36::i;:::-;8706:220;8729:6;806:10;8777:138;8833:6;8777:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8777:19:0;;;;;;:11;:19;;;;;;;;806:10;8777:33;;;;;;;;;;:37;:138::i;:::-;8706:8;:220::i;:::-;-1:-1:-1;8944:4:0;8510:446;;;;;:::o;2387:279::-;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;2488:22:0;::::1;2466:110;;;::::0;-1:-1:-1;;;2466:110:0;;5292:2:1;2466:110:0::1;::::0;::::1;5274:21:1::0;5331:2;5311:18;;;5304:30;5370:34;5350:18;;;5343:62;-1:-1:-1;;;5421:18:1;;;5414:36;5467:19;;2466:110:0::1;5090:402:1::0;2466:110:0::1;2613:6;::::0;;2592:38:::1;::::0;-1:-1:-1;;;;;2592:38:0;;::::1;::::0;2613:6;::::1;::::0;2592:38:::1;::::0;::::1;2641:6;:17:::0;;-1:-1:-1;;;;;;2641:17:0::1;-1:-1:-1::0;;;;;2641:17:0;;;::::1;::::0;;;::::1;::::0;;2387:279::o;14363:208::-;14429:10;;-1:-1:-1;;;;;14429:10:0;806;-1:-1:-1;;;;;14413:26:0;;14405:53;;;;-1:-1:-1;;;14405:53:0;;5699:2:1;14405:53:0;;;5681:21:1;5738:2;5718:18;;;5711:30;-1:-1:-1;;;5757:18:1;;;5750:44;5811:18;;14405:53:0;5497:338:1;14405:53:0;14513:4;14469:23;14495:24;;;:9;:24;;;;;;14530:33;14495:24;14530:16;:33::i;:::-;14394:177;14363:208::o;16289:147::-;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;16358:14:::1;:24:::0;;;::::1;;-1:-1:-1::0;;;16358:24:0::1;-1:-1:-1::0;;;;16358:24:0;;::::1;;::::0;;16398:30:::1;::::0;::::1;::::0;::::1;::::0;16375:7;361:14:1;354:22;336:41;;324:2;309:18;;196:187;16398:30:0::1;;;;;;;;16289:147:::0;:::o;15722:241::-;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;15836:12:::1;:26:::0;;;15873:13:::1;:28:::0;;;15917:38:::1;::::0;;6014:25:1;;;6070:2;6055:18;;6048:34;;;15917:38:0::1;::::0;5987:18:1;15917:38:0::1;;;;;;;15722:241:::0;;:::o;2231:148::-;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;2338:1:::1;2322:6:::0;;2301:40:::1;::::0;-1:-1:-1;;;;;2322:6:0;;::::1;::::0;2301:40:::1;::::0;2338:1;;2301:40:::1;2369:1;2352:19:::0;;-1:-1:-1;;;;;;2352:19:0::1;::::0;;2231:148::o;14051:162::-;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;14104:14:::1;:21:::0;;-1:-1:-1;;;;14104:21:0::1;-1:-1:-1::0;;;14104:21:0::1;::::0;;14150:12:::1;14136:11;:26:::0;;;14178:27:::1;::::0;::::1;::::0;::::1;::::0;160:25:1;;;148:2;133:18;;14:177;14178:27:0::1;;;;;;;;14051:162::o:0;15971:164::-;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;16085:21:::1;:42:::0;15971:164::o;7910:199::-;8015:4;8037:42;806:10;8061:9;8072:6;8037:9;:42::i;16444:175::-;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;16529:21:::1;:35:::0;;;16580:31:::1;::::0;160:25:1;;;16580:31:0::1;::::0;148:2:1;133:18;16580:31:0::1;14:177:1::0;16750:245:0;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;16878:9:::1;16873:115;16893:19:::0;;::::1;16873:115;;;16968:8;16934:18;:31;16953:8;;16962:1;16953:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16934:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16934:31:0;:42;;-1:-1:-1;;16934:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16914:3:0::1;16873:115;;;;16750:245:::0;;;:::o;16143:138::-;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;16209:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;16209:21:0::1;-1:-1:-1::0;;;;16209:21:0;;::::1;;::::0;;16246:27:::1;::::0;::::1;::::0;::::1;::::0;16223:7;361:14:1;354:22;336:41;;324:2;309:18;;196:187;16627:115:0;2144:6;;-1:-1:-1;;;;;2144:6:0;806:10;2144:22;2136:67;;;;-1:-1:-1;;;2136:67:0;;;;;;;:::i;:::-;16704:14:::1;:30:::0;16627:115::o;14579:207::-;14645:10;;-1:-1:-1;;;;;14645:10:0;806;-1:-1:-1;;;;;14629:26:0;;14621:53;;;;-1:-1:-1;;;14621:53:0;;5699:2:1;14621:53:0;;;5681:21:1;5738:2;5718:18;;;5711:30;-1:-1:-1;;;5757:18:1;;;5750:44;5811:18;;14621:53:0;5497:338:1;14621:53:0;14714:21;14746:32;14714:21;14746:12;:32::i;9221:369::-;-1:-1:-1;;;;;9348:19:0;;9340:68;;;;-1:-1:-1;;;9340:68:0;;6427:2:1;9340:68:0;;;6409:21:1;6466:2;6446:18;;;6439:30;6505:34;6485:18;;;6478:62;-1:-1:-1;;;6556:18:1;;;6549:34;6600:19;;9340:68:0;6225:400:1;9340:68:0;-1:-1:-1;;;;;9427:21:0;;9419:68;;;;-1:-1:-1;;;9419:68:0;;6832:2:1;9419:68:0;;;6814:21:1;6871:2;6851:18;;;6844:30;6910:34;6890:18;;;6883:62;-1:-1:-1;;;6961:18:1;;;6954:32;7003:19;;9419:68:0;6630:398:1;9419:68:0;-1:-1:-1;;;;;9498:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9550:32;;160:25:1;;;9550:32:0;;133:18:1;9550:32:0;;;;;;;9221:369;;;:::o;9629:3617::-;-1:-1:-1;;;;;9751:18:0;;9743:64;;;;-1:-1:-1;;;9743:64:0;;7235:2:1;9743:64:0;;;7217:21:1;7274:2;7254:18;;;7247:30;7313:34;7293:18;;;7286:62;-1:-1:-1;;;7364:18:1;;;7357:31;7405:19;;9743:64:0;7033:397:1;9743:64:0;-1:-1:-1;;;;;9826:16:0;;9818:60;;;;-1:-1:-1;;;9818:60:0;;7637:2:1;9818:60:0;;;7619:21:1;7676:2;7656:18;;;7649:30;7715:33;7695:18;;;7688:61;7766:18;;9818:60:0;7435:355:1;9818:60:0;9906:1;9897:6;:10;9889:64;;;;-1:-1:-1;;;9889:64:0;;7997:2:1;9889:64:0;;;7979:21:1;8036:2;8016:18;;;8009:30;8075:34;8055:18;;;8048:62;-1:-1:-1;;;8126:18:1;;;8119:39;8175:19;;9889:64:0;7795:405:1;9889:64:0;2055:7;2082:6;-1:-1:-1;;;;;9970:15:0;;;2082:6;;9970:15;;;;:32;;-1:-1:-1;2055:7:0;2082:6;-1:-1:-1;;;;;9989:13:0;;;2082:6;;9989:13;;9970:32;9966:1397;;;10062:14;;-1:-1:-1;;;10062:14:0;;;;10057:117;;2055:7;2082:6;-1:-1:-1;;;;;10105:15:0;;;2082:6;;10105:15;10097:61;;;;-1:-1:-1;;;10097:61:0;;8407:2:1;10097:61:0;;;8389:21:1;8446:2;8426:18;;;8419:30;8485:34;8465:18;;;8458:62;-1:-1:-1;;;8536:18:1;;;8529:31;8577:19;;10097:61:0;8205:397:1;10097:61:0;10226:21;;10216:6;:31;;10190:129;;;;-1:-1:-1;;;10190:129:0;;8809:2:1;10190:129:0;;;8791:21:1;8848:2;8828:18;;;8821:30;8887:34;8867:18;;;8860:62;-1:-1:-1;;;8938:18:1;;;8931:34;8982:19;;10190:129:0;8607:400:1;10190:129:0;10346:13;;-1:-1:-1;;;;;10340:19:0;;;10346:13;;10340:19;10336:207;;10439:14;;-1:-1:-1;;;;;10410:13:0;;;;;;:9;:13;;;;;;:25;;10428:6;10410:17;:25::i;:::-;:43;;10380:147;;;;-1:-1:-1;;;10380:147:0;;9214:2:1;10380:147:0;;;9196:21:1;9253:2;9233:18;;;9226:30;9292:32;9272:18;;;9265:60;9342:18;;10380:147:0;9012:354:1;10380:147:0;10608:4;10559:28;10590:24;;;:9;:24;;;;;;10668:21;;10734;;10644:45;;;;;10710;;10706:130;;10799:21;;10776:44;;10706:130;10874:7;:35;;;;-1:-1:-1;10903:6:0;;-1:-1:-1;;;10903:6:0;;;;10902:7;10874:35;:77;;;;-1:-1:-1;10938:13:0;;-1:-1:-1;;;;;10930:21:0;;;10938:13;;10930:21;;10874:77;:109;;;;-1:-1:-1;10972:11:0;;-1:-1:-1;;;10972:11:0;;;;10874:109;:155;;;;-1:-1:-1;;;;;;11005:24:0;;;;;;:18;:24;;;;;;;;11004:25;10874:155;:199;;;;-1:-1:-1;;;;;;11051:22:0;;;;;;:18;:22;;;;;;;;11050:23;10874:199;10852:500;;;11108:38;11125:20;11108:16;:38::i;:::-;11194:21;11238:22;;11234:103;;11285:32;11298:18;11285:12;:32::i;:::-;11089:263;10852:500;10004:1359;;9966:1397;-1:-1:-1;;;;;11454:24:0;;11375:12;11454:24;;;:18;:24;;;;;;11390:4;;11454:24;;;:63;;-1:-1:-1;;;;;;11495:22:0;;;;;;:18;:22;;;;;;;;11454:63;:126;;;-1:-1:-1;11543:13:0;;-1:-1:-1;;;;;11535:21:0;;;11543:13;;11535:21;;;;:44;;-1:-1:-1;11566:13:0;;-1:-1:-1;;;;;11560:19:0;;;11566:13;;11560:19;;11535:44;11436:1749;;;-1:-1:-1;11617:5:0;11436:1749;;;11723:14;;-1:-1:-1;;;11723:14:0;;;;11719:1455;;;11758:25;11786:29;11803:11;;11786:12;:16;;:29;;;;:::i;:::-;11846:13;;11758:57;;-1:-1:-1;;;;;;11846:13:0;;;11838:21;;;;11834:1039;;11938:1;11917:17;:22;11912:419;;11978:2;11968:7;:12;11834:1039;;11912:419;12034:1;12014:17;:21;:48;;;;;12060:2;12039:17;:23;;12014:48;12010:321;;;12101:2;12091:7;:12;11834:1039;;12010:321;12158:2;12138:17;:22;:49;;;;;12185:2;12164:17;:23;;12138:49;12134:197;;;12226:2;12216:7;:12;11834:1039;;12134:197;12295:12;;12285:7;:22;11834:1039;;;12366:13;;-1:-1:-1;;;;;12366:13:0;;;12360:19;;;;12356:517;;12460:1;12439:17;:22;12434:420;;12500:2;12490:7;:12;12434:420;;;12556:1;12536:17;:21;:48;;;;;12582:2;12561:17;:23;;12536:48;12532:322;;;12623:2;12613:7;:12;12532:322;;;12680:2;12660:17;:22;:49;;;;;12707:2;12686:17;:23;;12660:49;12656:198;;;12748:2;12738:7;:12;12656:198;;;12817:13;;12807:7;:23;12656:198;11739:1149;11719:1455;;;12925:13;;-1:-1:-1;;;;;12925:13:0;;;12917:21;;;;12913:246;;13001:12;;12991:7;:22;12913:246;;;13049:13;;-1:-1:-1;;;;;13049:13:0;;;13043:19;;;;13039:120;;13126:13;;13116:7;:23;13039:120;13197:41;13212:4;13218:2;13222:6;13230:7;13197:14;:41::i;3032:200::-;3128:7;3164:12;3156:6;;;;3148:29;;;;-1:-1:-1;;;3148:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3188:9:0;3200:5;3204:1;3200;:5;:::i;:::-;3188:17;3032:200;-1:-1:-1;;;;;3032:200:0:o;13282:607::-;6592:6;:13;;-1:-1:-1;;;;6592:13:0;-1:-1:-1;;;6592:13:0;;;13450:16:::1;::::0;;13464:1:::1;13450:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13450:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13450:16:0::1;13426:40;;13495:4;13477;13482:1;13477:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13477:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13521:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13521:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13477:7;;13521:22;;;;;:15;:22:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13511:4;13516:1;13511:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13511:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13588:15:::1;::::0;13556:62:::1;::::0;13573:4:::1;::::0;13588:15:::1;13606:11:::0;13556:8:::1;:62::i;:::-;13657:15;::::0;:224:::1;::::0;-1:-1:-1;;;13657:224:0;;-1:-1:-1;;;;;13657:15:0;;::::1;::::0;:66:::1;::::0;:224:::1;::::0;13738:11;;13657:15:::1;::::0;13808:4;;13835::::1;::::0;13855:15:::1;::::0;13657:224:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;6628:6:0;:14;;-1:-1:-1;;;;6628:14:0;;;-1:-1:-1;;;;13282:607:0:o;13928:92::-;13985:10;;:27;;-1:-1:-1;;;;;13985:10:0;;;;:27;;;;;14005:6;;13985:10;:27;:10;:27;14005:6;13985:10;:27;;;;;;;;;;;;;;;;;;;;;13928:92;:::o;2697:179::-;2755:7;;2787:5;2791:1;2787;:5;:::i;:::-;2775:17;;2816:1;2811;:6;;2803:46;;;;-1:-1:-1;;;2803:46:0;;11320:2:1;2803:46:0;;;11302:21:1;11359:2;11339:18;;;11332:30;11398:29;11378:18;;;11371:57;11445:18;;2803:46:0;11118:351:1;2803:46:0;2867:1;2697:179;-1:-1:-1;;;2697:179:0:o;2886:136::-;2944:7;2971:43;2975:1;2978;2971:43;;;;;;;;;;;;;;;;;:3;:43::i;14826:775::-;14982:7;14977:28;;14991:14;:12;:14::i;:::-;15018:11;15032:28;15056:3;15032:19;15043:7;;15032:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;15018:42;-1:-1:-1;15071:22:0;15096:15;:6;15018:42;15096:10;:15::i;:::-;15071:40;;15144:108;15180:6;15144:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15144:17:0;;;;;;:9;:17;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;15124:17:0;;;;;;;:9;:17;;;;;;:128;;;;15286:20;;;;;;;:40;;15311:14;15286:24;:40::i;:::-;-1:-1:-1;;;;;15263:20:0;;;;;;:9;:20;;;;;;:63;;;;15382:4;15364:24;;;;:33;;15393:3;15364:28;:33::i;:::-;15355:4;15337:24;;;;:9;:24;;;;;;;;;:60;;;;15415:43;160:25:1;;;-1:-1:-1;;;;;15415:43:0;;;;;;;;;;133:18:1;15415:43:0;;;;;;;15475:7;15471:81;;;15504:36;;160:25:1;;;15529:4:0;;-1:-1:-1;;;;;15504:36:0;;;;;148:2:1;133:18;15504:36:0;;;;;;;15471:81;15569:7;15564:29;;15578:15;9190;;9180:7;:25;9136:77;15578:15;14966:635;;14826:775;;;;:::o;8991:137::-;9038:7;;9049:1;9038:12;9034:25;;8991:137::o;9034:25::-;9089:7;;;9071:15;:25;-1:-1:-1;9109:11:0;;8991:137::o;3242:228::-;3300:7;3324:1;3329;3324:6;3320:25;;-1:-1:-1;3341:1:0;3334:8;;3320:25;3359:9;3371:5;3375:1;3371;:5;:::i;:::-;3359:17;-1:-1:-1;3404:1:0;3395:5;3399:1;3359:17;3395:5;:::i;:::-;:10;3387:56;;;;-1:-1:-1;;;3387:56:0;;12071:2:1;3387:56:0;;;12053:21:1;12110:2;12090:18;;;12083:30;12149:34;12129:18;;;12122:62;-1:-1:-1;;;12200:18:1;;;12193:31;12241:19;;3387:56:0;11869:397:1;3480:132:0;3538:7;3565:39;3569:1;3572;3565:39;;;;;;;;;;;;;;;;;3718:7;3753:12;3746:5;3738:28;;;;-1:-1:-1;;;3738:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3777:9:0;3789:5;3793:1;3789;:5;:::i;388:418:1:-;537:2;526:9;519:21;500:4;569:6;563:13;612:6;607:2;596:9;592:18;585:34;671:6;666:2;658:6;654:15;649:2;638:9;634:18;628:50;727:1;722:2;713:6;702:9;698:22;694:31;687:42;797:2;790;786:7;781:2;773:6;769:15;765:29;754:9;750:45;746:54;738:62;;;388:418;;;;:::o;811:131::-;-1:-1:-1;;;;;886:31:1;;876:42;;866:70;;932:1;929;922:12;947:367;1015:6;1023;1076:2;1064:9;1055:7;1051:23;1047:32;1044:52;;;1092:1;1089;1082:12;1044:52;1131:9;1118:23;1150:31;1175:5;1150:31;:::i;:::-;1200:5;1278:2;1263:18;;;;1250:32;;-1:-1:-1;;;947:367:1:o;1553:508::-;1630:6;1638;1646;1699:2;1687:9;1678:7;1674:23;1670:32;1667:52;;;1715:1;1712;1705:12;1667:52;1754:9;1741:23;1773:31;1798:5;1773:31;:::i;:::-;1823:5;-1:-1:-1;1880:2:1;1865:18;;1852:32;1893:33;1852:32;1893:33;:::i;:::-;1553:508;;1945:7;;-1:-1:-1;;;2025:2:1;2010:18;;;;1997:32;;1553:508::o;2066:247::-;2125:6;2178:2;2166:9;2157:7;2153:23;2149:32;2146:52;;;2194:1;2191;2184:12;2146:52;2233:9;2220:23;2252:31;2277:5;2252:31;:::i;2715:160::-;2780:20;;2836:13;;2829:21;2819:32;;2809:60;;2865:1;2862;2855:12;2809:60;2715:160;;;:::o;2880:180::-;2936:6;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3028:26;3044:9;3028:26;:::i;3065:346::-;3133:6;3141;3194:2;3182:9;3173:7;3169:23;3165:32;3162:52;;;3210:1;3207;3200:12;3162:52;-1:-1:-1;;3255:23:1;;;3375:2;3360:18;;;3347:32;;-1:-1:-1;3065:346:1:o;3416:226::-;3475:6;3528:2;3516:9;3507:7;3503:23;3499:32;3496:52;;;3544:1;3541;3534:12;3496:52;-1:-1:-1;3589:23:1;;3416:226;-1:-1:-1;3416:226:1:o;3647:684::-;3739:6;3747;3755;3808:2;3796:9;3787:7;3783:23;3779:32;3776:52;;;3824:1;3821;3814:12;3776:52;3864:9;3851:23;3897:18;3889:6;3886:30;3883:50;;;3929:1;3926;3919:12;3883:50;3952:22;;4005:4;3997:13;;3993:27;-1:-1:-1;3983:55:1;;4034:1;4031;4024:12;3983:55;4074:2;4061:16;4100:18;4092:6;4089:30;4086:50;;;4132:1;4129;4122:12;4086:50;4187:7;4180:4;4170:6;4167:1;4163:14;4159:2;4155:23;4151:34;4148:47;4145:67;;;4208:1;4205;4198:12;4145:67;4239:4;4231:13;;;;-1:-1:-1;4263:6:1;-1:-1:-1;4288:37:1;;4304:20;;4288:37;:::i;:::-;4278:47;;3647:684;;;;;:::o;4336:388::-;4404:6;4412;4465:2;4453:9;4444:7;4440:23;4436:32;4433:52;;;4481:1;4478;4471:12;4433:52;4520:9;4507:23;4539:31;4564:5;4539:31;:::i;:::-;4589:5;-1:-1:-1;4646:2:1;4631:18;;4618:32;4659:33;4618:32;4659:33;:::i;:::-;4711:7;4701:17;;;4336:388;;;;;:::o;4729:356::-;4931:2;4913:21;;;4950:18;;;4943:30;5009:34;5004:2;4989:18;;4982:62;5076:2;5061:18;;4729:356::o;6093:127::-;6154:10;6149:3;6145:20;6142:1;6135:31;6185:4;6182:1;6175:15;6209:4;6206:1;6199:15;9371:127;9432:10;9427:3;9423:20;9420:1;9413:31;9463:4;9460:1;9453:15;9487:4;9484:1;9477:15;9503:128;9570:9;;;9591:11;;;9588:37;;;9605:18;;:::i;9768:251::-;9838:6;9891:2;9879:9;9870:7;9866:23;9862:32;9859:52;;;9907:1;9904;9897:12;9859:52;9939:9;9933:16;9958:31;9983:5;9958:31;:::i;10024:959::-;10286:4;10334:3;10323:9;10319:19;10365:6;10354:9;10347:25;10408:6;10403:2;10392:9;10388:18;10381:34;10451:3;10446:2;10435:9;10431:18;10424:31;10475:6;10510;10504:13;10541:6;10533;10526:22;10579:3;10568:9;10564:19;10557:26;;10618:2;10610:6;10606:15;10592:29;;10639:1;10649:195;10663:6;10660:1;10657:13;10649:195;;;10728:13;;-1:-1:-1;;;;;10724:39:1;10712:52;;10793:2;10819:15;;;;10784:12;;;;10760:1;10678:9;10649:195;;;-1:-1:-1;;;;;;;10900:32:1;;;;10895:2;10880:18;;10873:60;-1:-1:-1;;10964:3:1;10949:19;10942:35;10861:3;10024:959;-1:-1:-1;;;10024:959:1:o;10988:125::-;11053:9;;;11074:10;;;11071:36;;;11087:18;;:::i;11474:168::-;11547:9;;;11578;;11595:15;;;11589:22;;11575:37;11565:71;;11616:18;;:::i;11647:217::-;11687:1;11713;11703:132;;11757:10;11752:3;11748:20;11745:1;11738:31;11792:4;11789:1;11782:15;11820:4;11817:1;11810:15;11703:132;-1:-1:-1;11849:9:1;;11647:217::o
Swarm Source
ipfs://d732973b230e74d5b8ce3cad1420275e6a74647a7a0e25f347c8ec485db90fd8
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.