Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 BITINU
Holders
65
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
41,782.145934809 BITINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Bittensor
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-17 */ /** .----------------. .----------------. .----------------. .----------------. .----------------. .-----------------. .----------------. .----------------. .----------------. .----------------. .-----------------. .----------------. | .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. | | | ______ | || | _____ | || | _________ | || | _________ | || | _________ | || | ____ _____ | || | _______ | || | ____ | || | _______ | || | _____ | || | ____ _____ | || | _____ _____ | | | | |_ _ \ | || | |_ _| | || | | _ _ | | || | | _ _ | | || | |_ ___ | | || ||_ \|_ _| | || | / ___ | | || | .' `. | || | |_ __ \ | || | |_ _| | || ||_ \|_ _| | || ||_ _||_ _|| | | | | |_) | | || | | | | || | |_/ | | \_| | || | |_/ | | \_| | || | | |_ \_| | || | | \ | | | || | | (__ \_| | || | / .--. \ | || | | |__) | | || | | | | || | | \ | | | || | | | | | | | | | | __'. | || | | | | || | | | | || | | | | || | | _| _ | || | | |\ \| | | || | '.___`-. | || | | | | | | || | | __ / | || | | | | || | | |\ \| | | || | | ' ' | | | | | _| |__) | | || | _| |_ | || | _| |_ | || | _| |_ | || | _| |___/ | | || | _| |_\ |_ | || | |`\____) | | || | \ `--' / | || | _| | \ \_ | || | _| |_ | || | _| |_\ |_ | || | \ `--' / | | | | |_______/ | || | |_____| | || | |_____| | || | |_____| | || | |_________| | || ||_____|\____| | || | |_______.' | || | `.____.' | || | |____| |___| | || | |_____| | || ||_____|\____| | || | `.__.' | | | | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | | | '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' | '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' Bittensor Inu as open source code printing wTAO. Biττensor Inu is a community and early investor-controlled token within the TAO ecosystem https://twitter.com/BittensorInu https://t.me/BittensorInu https://bittensorinu.com/ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.23; 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } 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 Bittensor is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = unicode"Biττensor Inu"; string private constant _symbol = unicode"BITINU"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 10000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 30; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 40; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x138d8a696AE87371bb4b9DB00f913955A9AF2658); address payable private _marketingAddress = payable(0x138d8a696AE87371bb4b9DB00f913955A9AF2658); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 200000 * 10**9; uint256 public _maxWalletSize = 300000 * 10**9; uint256 public _swapTokensAtAmount = 150000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function TaxRemove() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _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); } 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"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } 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 sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function ActivationAI(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function Aliens(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function UnlockAliens(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) TaxRemove(); _transferStandard(sender, recipient, amount); if (!takeFee) TaxRemove(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function Trigger(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function MinSwapTokenThresh(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function MaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function MaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeAccountFromFee(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":"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"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"ActivationAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"Aliens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"MaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"MaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"MinSwapTokenThresh","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"Trigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"UnlockAliens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","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":"_swapTokensAtAmount","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":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeAccountFromFee","outputs":[],"stateMutability":"nonpayable","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":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405262000018662386f26fc100005f1962000357565b62000025905f1962000377565b6006555f6008819055601e600955600a8190556028600b819055600c829055600d819055600e91909155600f55601280546001600160a01b031990811673138d8a696ae87371bb4b9db00f913955a9af26589081179092556013805490911690911790556015805462ffffff60a01b1916600160b01b17905565b5e620f48000601655660110d9316ec00060175565886c98b76000601855348015620000c9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000183573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a991906200039d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021b91906200039d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000266573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028c91906200039d565b601580546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200034891815260200190565b60405180910390a350620003cc565b5f826200037257634e487b7160e01b5f52601260045260245ffd5b500690565b818103818111156200039757634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215620003ae575f80fd5b81516001600160a01b0381168114620003c5575f80fd5b9392505050565b611cfe80620003da5f395ff3fe6080604052600436106101c8575f3560e01c80637d1db4a5116100f2578063a9059cbb11610092578063dd62ed3e11610062578063dd62ed3e14610535578063e2ee677d14610579578063e79dfd7914610598578063f2fde38b146105b7575f80fd5b8063a9059cbb146104b5578063ad69489e146104d4578063bfd79284146104f3578063c3c8cd8014610521575f80fd5b80638ebc7ec6116100cd5780638ebc7ec6146104345780638f9a55c01461045357806395d89b41146104685780639fb0350314610496575f80fd5b80637d1db4a5146103d85780637f2feddc146103ed5780638da5cb5b14610418575f80fd5b8063313ce567116101685780636d8aa8f8116101385780636d8aa8f8146103725780636fc3eaec1461039157806370a08231146103a5578063715018a6146103c4575f80fd5b8063313ce567146102fa57806333b95bc21461031557806349bd5a5e146103345780634a3459bf14610353575f80fd5b806318160ddd116101a357806318160ddd1461028257806323b872dd146102a55780632e2c80f5146102c45780632fd689e3146102e5575f80fd5b806306fdde03146101d3578063095ea7b31461021c5780631694505e1461024b575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b5060408051808201909152600f81526e4269cf84cf84656e736f7220496e7560881b60208201525b6040516102139190611872565b60405180910390f35b348015610227575f80fd5b5061023b6102363660046118e2565b6105d6565b6040519015158152602001610213565b348015610256575f80fd5b5060145461026a906001600160a01b031681565b6040516001600160a01b039091168152602001610213565b34801561028d575f80fd5b50662386f26fc100005b604051908152602001610213565b3480156102b0575f80fd5b5061023b6102bf36600461190c565b6105ec565b3480156102cf575f80fd5b506102e36102de36600461195e565b610653565b005b3480156102f0575f80fd5b5061029760185481565b348015610305575f80fd5b5060405160098152602001610213565b348015610320575f80fd5b506102e361032f366004611a1e565b6106e4565b34801561033f575f80fd5b5060155461026a906001600160a01b031681565b34801561035e575f80fd5b506102e361036d366004611a39565b61072d565b34801561037d575f80fd5b506102e361038c366004611a5f565b61075b565b34801561039c575f80fd5b506102e36107a2565b3480156103b0575f80fd5b506102976103bf366004611a1e565b6107ec565b3480156103cf575f80fd5b506102e361080d565b3480156103e3575f80fd5b5061029760165481565b3480156103f8575f80fd5b50610297610407366004611a1e565b60116020525f908152604090205481565b348015610423575f80fd5b505f546001600160a01b031661026a565b34801561043f575f80fd5b506102e361044e366004611a78565b61087e565b34801561045e575f80fd5b5061029760175481565b348015610473575f80fd5b50604080518082019091526006815265424954494e5560d01b6020820152610206565b3480156104a1575f80fd5b506102e36104b0366004611af5565b610911565b3480156104c0575f80fd5b5061023b6104cf3660046118e2565b61094e565b3480156104df575f80fd5b506102e36104ee366004611a39565b61095a565b3480156104fe575f80fd5b5061023b61050d366004611a1e565b60106020525f908152604090205460ff1681565b34801561052c575f80fd5b506102e3610988565b348015610540575f80fd5b5061029761054f366004611b24565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610584575f80fd5b506102e3610593366004611a39565b6109da565b3480156105a3575f80fd5b506102e36105b2366004611a5f565b610a08565b3480156105c2575f80fd5b506102e36105d1366004611a1e565b610a4f565b5f6105e2338484610b36565b5060015b92915050565b5f6105f8848484610c59565b610649843361064485604051806060016040528060288152602001611ca1602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611189565b610b36565b5060019392505050565b5f546001600160a01b031633146106855760405162461bcd60e51b815260040161067c90611b5b565b60405180910390fd5b5f5b81518110156106e057600160105f8484815181106106a7576106a7611b90565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610687565b5050565b5f546001600160a01b0316331461070d5760405162461bcd60e51b815260040161067c90611b5b565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107565760405162461bcd60e51b815260040161067c90611b5b565b601655565b5f546001600160a01b031633146107845760405162461bcd60e51b815260040161067c90611b5b565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107d757506013546001600160a01b0316336001600160a01b0316145b6107df575f80fd5b476107e9816111c1565b50565b6001600160a01b0381165f908152600260205260408120546105e6906111f8565b5f546001600160a01b031633146108365760405162461bcd60e51b815260040161067c90611b5b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108a75760405162461bcd60e51b815260040161067c90611b5b565b5f5b8281101561090b578160055f8686858181106108c7576108c7611b90565b90506020020160208101906108dc9190611a1e565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556001016108a9565b50505050565b5f546001600160a01b0316331461093a5760405162461bcd60e51b815260040161067c90611b5b565b600893909355600a91909155600955600b55565b5f6105e2338484610c59565b5f546001600160a01b031633146109835760405162461bcd60e51b815260040161067c90611b5b565b601755565b6012546001600160a01b0316336001600160a01b031614806109bd57506013546001600160a01b0316336001600160a01b0316145b6109c5575f80fd5b5f6109cf306107ec565b90506107e98161127a565b5f546001600160a01b03163314610a035760405162461bcd60e51b815260040161067c90611b5b565b601855565b5f546001600160a01b03163314610a315760405162461bcd60e51b815260040161067c90611b5b565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610a785760405162461bcd60e51b815260040161067c90611b5b565b6001600160a01b038116610add5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161067c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b985760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161067c565b6001600160a01b038216610bf95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161067c565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cbd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161067c565b6001600160a01b038216610d1f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161067c565b5f8111610d805760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161067c565b5f546001600160a01b03848116911614801590610daa57505f546001600160a01b03838116911614155b1561108557601554600160a01b900460ff16610e42575f546001600160a01b03848116911614610e425760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161067c565b601654811115610e945760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161067c565b6001600160a01b0383165f9081526010602052604090205460ff16158015610ed457506001600160a01b0382165f9081526010602052604090205460ff16155b610f2c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161067c565b6015546001600160a01b03838116911614610fb15760175481610f4e846107ec565b610f589190611bb8565b10610fb15760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161067c565b5f610fbb306107ec565b601854601654919250821015908210610fd45760165491505b808015610feb5750601554600160a81b900460ff16155b801561100557506015546001600160a01b03868116911614155b801561101a5750601554600160b01b900460ff165b801561103e57506001600160a01b0385165f9081526005602052604090205460ff16155b801561106257506001600160a01b0384165f9081526005602052604090205460ff16155b15611082576110708261127a565b47801561108057611080476111c1565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff16806110c557506001600160a01b0383165f9081526005602052604090205460ff165b806110f757506015546001600160a01b038581169116148015906110f757506015546001600160a01b03848116911614155b1561110357505f61117d565b6015546001600160a01b03858116911614801561112e57506014546001600160a01b03848116911614155b1561114057600854600c55600954600d555b6015546001600160a01b03848116911614801561116b57506014546001600160a01b03858116911614155b1561117d57600a54600c55600b54600d555b61090b848484846113ea565b5f81848411156111ac5760405162461bcd60e51b815260040161067c9190611872565b505f6111b88486611bcb565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106e0573d5f803e3d5ffd5b5f60065482111561125e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161067c565b5f61126761140f565b90506112738382611430565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112c0576112c0611b90565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611317573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133b9190611bde565b8160018151811061134e5761134e611b90565b6001600160a01b0392831660209182029290920101526014546113749130911684610b36565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ac9085905f90869030904290600401611bf9565b5f604051808303815f87803b1580156113c3575f80fd5b505af11580156113d5573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b806113f7576113f7611471565b61140284848461149e565b8061090b5761090b611471565b5f805f61141a61158f565b90925090506114298282611430565b9250505090565b5f61127383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115cc565b600c541580156114815750600d54155b1561148857565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806114ad876115f8565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506114de908761164d565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461150c908661168e565b6001600160a01b0389165f9081526002602052604090205561152d816116ec565b6115378483611732565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161157c91815260200190565b60405180910390a3505050505050505050565b6006545f908190662386f26fc100006115a88282611430565b8210156115c357505060065492662386f26fc1000092509050565b90939092509050565b5f81836115ec5760405162461bcd60e51b815260040161067c9190611872565b505f6111b88486611c6a565b5f805f805f805f805f6116108a600c54600d54611756565b9250925092505f61161f61140f565b90505f805f6116308e8787876117a8565b919e509c509a509598509396509194505050505091939550919395565b5f61127383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611189565b5f8061169a8385611bb8565b9050838110156112735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161067c565b5f6116f561140f565b90505f61170283836117f4565b305f9081526002602052604090205490915061171e908261168e565b305f90815260026020526040902055505050565b60065461173f908361164d565b60065560075461174f908261168e565b6007555050565b5f80808061176f606461176989896117f4565b90611430565b90505f61178160646117698a896117f4565b90505f611798826117928b8661164d565b9061164d565b9992985090965090945050505050565b5f8080806117b688866117f4565b90505f6117c388876117f4565b90505f6117d088886117f4565b90505f6117e182611792868661164d565b939b939a50919850919650505050505050565b5f825f0361180357505f6105e6565b5f61180e8385611c89565b90508261181b8583611c6a565b146112735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161067c565b5f602080835283518060208501525f5b8181101561189e57858101830151858201604001528201611882565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107e9575f80fd5b80356118dd816118be565b919050565b5f80604083850312156118f3575f80fd5b82356118fe816118be565b946020939093013593505050565b5f805f6060848603121561191e575f80fd5b8335611929816118be565b92506020840135611939816118be565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561196f575f80fd5b823567ffffffffffffffff80821115611986575f80fd5b818501915085601f830112611999575f80fd5b8135818111156119ab576119ab61194a565b8060051b604051601f19603f830116810181811085821117156119d0576119d061194a565b6040529182528482019250838101850191888311156119ed575f80fd5b938501935b82851015611a1257611a03856118d2565b845293850193928501926119f2565b98975050505050505050565b5f60208284031215611a2e575f80fd5b8135611273816118be565b5f60208284031215611a49575f80fd5b5035919050565b803580151581146118dd575f80fd5b5f60208284031215611a6f575f80fd5b61127382611a50565b5f805f60408486031215611a8a575f80fd5b833567ffffffffffffffff80821115611aa1575f80fd5b818601915086601f830112611ab4575f80fd5b813581811115611ac2575f80fd5b8760208260051b8501011115611ad6575f80fd5b602092830195509350611aec9186019050611a50565b90509250925092565b5f805f8060808587031215611b08575f80fd5b5050823594602084013594506040840135936060013592509050565b5f8060408385031215611b35575f80fd5b8235611b40816118be565b91506020830135611b50816118be565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156105e6576105e6611ba4565b818103818111156105e6576105e6611ba4565b5f60208284031215611bee575f80fd5b8151611273816118be565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c495784516001600160a01b031683529383019391830191600101611c24565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611c8457634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176105e6576105e6611ba456fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e1f7d0c53f2ff63201bf7c339352c3110410c84b848dbd421a34de01c463e04064736f6c63430008180033
Deployed Bytecode
0x6080604052600436106101c8575f3560e01c80637d1db4a5116100f2578063a9059cbb11610092578063dd62ed3e11610062578063dd62ed3e14610535578063e2ee677d14610579578063e79dfd7914610598578063f2fde38b146105b7575f80fd5b8063a9059cbb146104b5578063ad69489e146104d4578063bfd79284146104f3578063c3c8cd8014610521575f80fd5b80638ebc7ec6116100cd5780638ebc7ec6146104345780638f9a55c01461045357806395d89b41146104685780639fb0350314610496575f80fd5b80637d1db4a5146103d85780637f2feddc146103ed5780638da5cb5b14610418575f80fd5b8063313ce567116101685780636d8aa8f8116101385780636d8aa8f8146103725780636fc3eaec1461039157806370a08231146103a5578063715018a6146103c4575f80fd5b8063313ce567146102fa57806333b95bc21461031557806349bd5a5e146103345780634a3459bf14610353575f80fd5b806318160ddd116101a357806318160ddd1461028257806323b872dd146102a55780632e2c80f5146102c45780632fd689e3146102e5575f80fd5b806306fdde03146101d3578063095ea7b31461021c5780631694505e1461024b575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b5060408051808201909152600f81526e4269cf84cf84656e736f7220496e7560881b60208201525b6040516102139190611872565b60405180910390f35b348015610227575f80fd5b5061023b6102363660046118e2565b6105d6565b6040519015158152602001610213565b348015610256575f80fd5b5060145461026a906001600160a01b031681565b6040516001600160a01b039091168152602001610213565b34801561028d575f80fd5b50662386f26fc100005b604051908152602001610213565b3480156102b0575f80fd5b5061023b6102bf36600461190c565b6105ec565b3480156102cf575f80fd5b506102e36102de36600461195e565b610653565b005b3480156102f0575f80fd5b5061029760185481565b348015610305575f80fd5b5060405160098152602001610213565b348015610320575f80fd5b506102e361032f366004611a1e565b6106e4565b34801561033f575f80fd5b5060155461026a906001600160a01b031681565b34801561035e575f80fd5b506102e361036d366004611a39565b61072d565b34801561037d575f80fd5b506102e361038c366004611a5f565b61075b565b34801561039c575f80fd5b506102e36107a2565b3480156103b0575f80fd5b506102976103bf366004611a1e565b6107ec565b3480156103cf575f80fd5b506102e361080d565b3480156103e3575f80fd5b5061029760165481565b3480156103f8575f80fd5b50610297610407366004611a1e565b60116020525f908152604090205481565b348015610423575f80fd5b505f546001600160a01b031661026a565b34801561043f575f80fd5b506102e361044e366004611a78565b61087e565b34801561045e575f80fd5b5061029760175481565b348015610473575f80fd5b50604080518082019091526006815265424954494e5560d01b6020820152610206565b3480156104a1575f80fd5b506102e36104b0366004611af5565b610911565b3480156104c0575f80fd5b5061023b6104cf3660046118e2565b61094e565b3480156104df575f80fd5b506102e36104ee366004611a39565b61095a565b3480156104fe575f80fd5b5061023b61050d366004611a1e565b60106020525f908152604090205460ff1681565b34801561052c575f80fd5b506102e3610988565b348015610540575f80fd5b5061029761054f366004611b24565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610584575f80fd5b506102e3610593366004611a39565b6109da565b3480156105a3575f80fd5b506102e36105b2366004611a5f565b610a08565b3480156105c2575f80fd5b506102e36105d1366004611a1e565b610a4f565b5f6105e2338484610b36565b5060015b92915050565b5f6105f8848484610c59565b610649843361064485604051806060016040528060288152602001611ca1602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611189565b610b36565b5060019392505050565b5f546001600160a01b031633146106855760405162461bcd60e51b815260040161067c90611b5b565b60405180910390fd5b5f5b81518110156106e057600160105f8484815181106106a7576106a7611b90565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610687565b5050565b5f546001600160a01b0316331461070d5760405162461bcd60e51b815260040161067c90611b5b565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107565760405162461bcd60e51b815260040161067c90611b5b565b601655565b5f546001600160a01b031633146107845760405162461bcd60e51b815260040161067c90611b5b565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107d757506013546001600160a01b0316336001600160a01b0316145b6107df575f80fd5b476107e9816111c1565b50565b6001600160a01b0381165f908152600260205260408120546105e6906111f8565b5f546001600160a01b031633146108365760405162461bcd60e51b815260040161067c90611b5b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108a75760405162461bcd60e51b815260040161067c90611b5b565b5f5b8281101561090b578160055f8686858181106108c7576108c7611b90565b90506020020160208101906108dc9190611a1e565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556001016108a9565b50505050565b5f546001600160a01b0316331461093a5760405162461bcd60e51b815260040161067c90611b5b565b600893909355600a91909155600955600b55565b5f6105e2338484610c59565b5f546001600160a01b031633146109835760405162461bcd60e51b815260040161067c90611b5b565b601755565b6012546001600160a01b0316336001600160a01b031614806109bd57506013546001600160a01b0316336001600160a01b0316145b6109c5575f80fd5b5f6109cf306107ec565b90506107e98161127a565b5f546001600160a01b03163314610a035760405162461bcd60e51b815260040161067c90611b5b565b601855565b5f546001600160a01b03163314610a315760405162461bcd60e51b815260040161067c90611b5b565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610a785760405162461bcd60e51b815260040161067c90611b5b565b6001600160a01b038116610add5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161067c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b985760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161067c565b6001600160a01b038216610bf95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161067c565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cbd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161067c565b6001600160a01b038216610d1f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161067c565b5f8111610d805760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161067c565b5f546001600160a01b03848116911614801590610daa57505f546001600160a01b03838116911614155b1561108557601554600160a01b900460ff16610e42575f546001600160a01b03848116911614610e425760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161067c565b601654811115610e945760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161067c565b6001600160a01b0383165f9081526010602052604090205460ff16158015610ed457506001600160a01b0382165f9081526010602052604090205460ff16155b610f2c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161067c565b6015546001600160a01b03838116911614610fb15760175481610f4e846107ec565b610f589190611bb8565b10610fb15760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161067c565b5f610fbb306107ec565b601854601654919250821015908210610fd45760165491505b808015610feb5750601554600160a81b900460ff16155b801561100557506015546001600160a01b03868116911614155b801561101a5750601554600160b01b900460ff165b801561103e57506001600160a01b0385165f9081526005602052604090205460ff16155b801561106257506001600160a01b0384165f9081526005602052604090205460ff16155b15611082576110708261127a565b47801561108057611080476111c1565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff16806110c557506001600160a01b0383165f9081526005602052604090205460ff165b806110f757506015546001600160a01b038581169116148015906110f757506015546001600160a01b03848116911614155b1561110357505f61117d565b6015546001600160a01b03858116911614801561112e57506014546001600160a01b03848116911614155b1561114057600854600c55600954600d555b6015546001600160a01b03848116911614801561116b57506014546001600160a01b03858116911614155b1561117d57600a54600c55600b54600d555b61090b848484846113ea565b5f81848411156111ac5760405162461bcd60e51b815260040161067c9190611872565b505f6111b88486611bcb565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156106e0573d5f803e3d5ffd5b5f60065482111561125e5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161067c565b5f61126761140f565b90506112738382611430565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112c0576112c0611b90565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611317573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133b9190611bde565b8160018151811061134e5761134e611b90565b6001600160a01b0392831660209182029290920101526014546113749130911684610b36565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ac9085905f90869030904290600401611bf9565b5f604051808303815f87803b1580156113c3575f80fd5b505af11580156113d5573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b806113f7576113f7611471565b61140284848461149e565b8061090b5761090b611471565b5f805f61141a61158f565b90925090506114298282611430565b9250505090565b5f61127383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115cc565b600c541580156114815750600d54155b1561148857565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806114ad876115f8565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506114de908761164d565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461150c908661168e565b6001600160a01b0389165f9081526002602052604090205561152d816116ec565b6115378483611732565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161157c91815260200190565b60405180910390a3505050505050505050565b6006545f908190662386f26fc100006115a88282611430565b8210156115c357505060065492662386f26fc1000092509050565b90939092509050565b5f81836115ec5760405162461bcd60e51b815260040161067c9190611872565b505f6111b88486611c6a565b5f805f805f805f805f6116108a600c54600d54611756565b9250925092505f61161f61140f565b90505f805f6116308e8787876117a8565b919e509c509a509598509396509194505050505091939550919395565b5f61127383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611189565b5f8061169a8385611bb8565b9050838110156112735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161067c565b5f6116f561140f565b90505f61170283836117f4565b305f9081526002602052604090205490915061171e908261168e565b305f90815260026020526040902055505050565b60065461173f908361164d565b60065560075461174f908261168e565b6007555050565b5f80808061176f606461176989896117f4565b90611430565b90505f61178160646117698a896117f4565b90505f611798826117928b8661164d565b9061164d565b9992985090965090945050505050565b5f8080806117b688866117f4565b90505f6117c388876117f4565b90505f6117d088886117f4565b90505f6117e182611792868661164d565b939b939a50919850919650505050505050565b5f825f0361180357505f6105e6565b5f61180e8385611c89565b90508261181b8583611c6a565b146112735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161067c565b5f602080835283518060208501525f5b8181101561189e57858101830151858201604001528201611882565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107e9575f80fd5b80356118dd816118be565b919050565b5f80604083850312156118f3575f80fd5b82356118fe816118be565b946020939093013593505050565b5f805f6060848603121561191e575f80fd5b8335611929816118be565b92506020840135611939816118be565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561196f575f80fd5b823567ffffffffffffffff80821115611986575f80fd5b818501915085601f830112611999575f80fd5b8135818111156119ab576119ab61194a565b8060051b604051601f19603f830116810181811085821117156119d0576119d061194a565b6040529182528482019250838101850191888311156119ed575f80fd5b938501935b82851015611a1257611a03856118d2565b845293850193928501926119f2565b98975050505050505050565b5f60208284031215611a2e575f80fd5b8135611273816118be565b5f60208284031215611a49575f80fd5b5035919050565b803580151581146118dd575f80fd5b5f60208284031215611a6f575f80fd5b61127382611a50565b5f805f60408486031215611a8a575f80fd5b833567ffffffffffffffff80821115611aa1575f80fd5b818601915086601f830112611ab4575f80fd5b813581811115611ac2575f80fd5b8760208260051b8501011115611ad6575f80fd5b602092830195509350611aec9186019050611a50565b90509250925092565b5f805f8060808587031215611b08575f80fd5b5050823594602084013594506040840135936060013592509050565b5f8060408385031215611b35575f80fd5b8235611b40816118be565b91506020830135611b50816118be565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156105e6576105e6611ba4565b818103818111156105e6576105e6611ba4565b5f60208284031215611bee575f80fd5b8151611273816118be565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c495784516001600160a01b031683529383019391830191600101611c24565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611c8457634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176105e6576105e6611ba456fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e1f7d0c53f2ff63201bf7c339352c3110410c84b848dbd421a34de01c463e04064736f6c63430008180033
Deployed Bytecode Sourcemap
6995:13490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9517:83;;;;;;;;;;-1:-1:-1;9587:5:0;;;;;;;;;;;;-1:-1:-1;;;9587:5:0;;;;9517:83;;;;;;;:::i;:::-;;;;;;;;10442:193;;;;;;;;;;-1:-1:-1;10442:193:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;10442:193:0;1162:187:1;8362:41:0;;;;;;;;;;-1:-1:-1;8362:41:0;;;;-1:-1:-1;;;;;8362:41:0;;;;;;-1:-1:-1;;;;;1544:32:1;;;1526:51;;1514:2;1499:18;8362:41:0;1354:229:1;9794:95:0;;;;;;;;;;-1:-1:-1;7567:16:0;9794:95;;;1734:25:1;;;1722:2;1707:18;9794:95:0;1588:177:1;10643:446:0;;;;;;;;;;-1:-1:-1;10643:446:0;;;;;:::i;:::-;;:::i;15688:166::-;;;;;;;;;;-1:-1:-1;15688:166:0;;;;;:::i;:::-;;:::i;:::-;;8664:51;;;;;;;;;;;;;;;;9703:83;;;;;;;;;;-1:-1:-1;9703:83:0;;7240:1;3631:36:1;;3619:2;3604:18;9703:83:0;3489:184:1;15862:94:0;;;;;;;;;;-1:-1:-1;15862:94:0;;;;;:::i;:::-;;:::i;8410:28::-;;;;;;;;;;-1:-1:-1;8410:28:0;;;;-1:-1:-1;;;;;8410:28:0;;;20023:105;;;;;;;;;;-1:-1:-1;20023:105:0;;;;;:::i;:::-;;:::i;19883:101::-;;;;;;;;;;-1:-1:-1;19883:101:0;;;;;:::i;:::-;;:::i;15445:235::-;;;;;;;;;;;;;:::i;9897:138::-;;;;;;;;;;-1:-1:-1;9897:138:0;;;;;:::i;:::-;;:::i;4482:148::-;;;;;;;;;;;;;:::i;8560:44::-;;;;;;;;;;;;;;;;8104:43;;;;;;;;;;-1:-1:-1;8104:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;4268:79;;;;;;;;;;-1:-1:-1;4306:7:0;4333:6;-1:-1:-1;;;;;4333:6:0;4268:79;;20256:224;;;;;;;;;;-1:-1:-1;20256:224:0;;;;;:::i;:::-;;:::i;8611:46::-;;;;;;;;;;;;;;;;9608:87;;;;;;;;;;-1:-1:-1;9680:7:0;;;;;;;;;;;;-1:-1:-1;;;9680:7:0;;;;9608:87;;19355:292;;;;;;;;;;-1:-1:-1;19355:292:0;;;;;:::i;:::-;;:::i;10043:199::-;;;;;;;;;;-1:-1:-1;10043:199:0;;;;;:::i;:::-;;:::i;20136:112::-;;;;;;;;;;-1:-1:-1;20136:112:0;;;;;:::i;:::-;;:::i;8066:36::-;;;;;;;;;;-1:-1:-1;8066:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15201:236;;;;;;;;;;;;;:::i;10250:184::-;;;;;;;;;;-1:-1:-1;10250:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;10399:18:0;;;10367:7;10399:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10250:184;19699:132;;;;;;;;;;-1:-1:-1;19699:132:0;;;;;:::i;:::-;;:::i;15090:103::-;;;;;;;;;;-1:-1:-1;15090:103:0;;;;;:::i;:::-;;:::i;4638:244::-;;;;;;;;;;-1:-1:-1;4638:244:0;;;;;:::i;:::-;;:::i;10442:193::-;10544:4;10566:39;3107:10;10589:7;10598:6;10566:8;:39::i;:::-;-1:-1:-1;10623:4:0;10442:193;;;;;:::o;10643:446::-;10775:4;10792:36;10802:6;10810:9;10821:6;10792:9;:36::i;:::-;10839:220;10862:6;3107:10;10910:138;10966:6;10910:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10910:19:0;;;;;;:11;:19;;;;;;;;3107:10;10910:33;;;;;;;;;;:37;:138::i;:::-;10839:8;:220::i;:::-;-1:-1:-1;11077:4:0;10643:446;;;;;:::o;15688:166::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;;;;;;;;;15761:9:::1;15756:91;15780:5;:12;15776:1;:16;15756:91;;;15831:4;15814;:14;15819:5;15825:1;15819:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15814:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15814:14:0;:21;;-1:-1:-1;;15814:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;15794:3:0::1;15756:91;;;;15688:166:::0;:::o;15862:94::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15928:12:0::1;15943:5;15928:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;15928:20:0::1;::::0;;15862:94::o;20023:105::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;20094:12:::1;:26:::0;20023:105::o;19883:101::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;19950:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19950:26:0::1;-1:-1:-1::0;;;;19950:26:0;;::::1;::::0;;;::::1;::::0;;19883:101::o;15445:235::-;15511:19;;-1:-1:-1;;;;;15511:19:0;3107:10;-1:-1:-1;;;;;15495:35:0;;:72;;;-1:-1:-1;15550:17:0;;-1:-1:-1;;;;;15550:17:0;3107:10;-1:-1:-1;;;;;15534:33:0;;15495:72;15487:81;;;;;;15608:21;15640:32;15608:21;15640:12;:32::i;:::-;15476:204;15445:235::o;9897:138::-;-1:-1:-1;;;;;10010:16:0;;9963:7;10010:16;;;:7;:16;;;;;;9990:37;;:19;:37::i;4482:148::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;4589:1:::1;4573:6:::0;;4552:40:::1;::::0;-1:-1:-1;;;;;4573:6:0;;::::1;::::0;4552:40:::1;::::0;4589:1;;4552:40:::1;4620:1;4603:19:::0;;-1:-1:-1;;;;;;4603:19:0::1;::::0;;4482:148::o;20256:224::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;20363:9:::1;20359:114;20378:19:::0;;::::1;20359:114;;;20453:8;20419:18;:31;20438:8;;20447:1;20438:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20419:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20419:31:0;:42;;-1:-1:-1;;20419:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;20399:3:0::1;20359:114;;;;20256:224:::0;;;:::o;19355:292::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;19490:14:::1;:30:::0;;;;19531:15:::1;:32:::0;;;;19574:12:::1;:26:::0;19611:13:::1;:28:::0;19355:292::o;10043:199::-;10148:4;10170:42;3107:10;10194:9;10205:6;10170:9;:42::i;20136:112::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;20210:14:::1;:30:::0;20136:112::o;15201:236::-;15267:19;;-1:-1:-1;;;;;15267:19:0;3107:10;-1:-1:-1;;;;;15251:35:0;;:72;;;-1:-1:-1;15306:17:0;;-1:-1:-1;;;;;15306:17:0;3107:10;-1:-1:-1;;;;;15290:33:0;;15251:72;15243:81;;;;;;15335:23;15361:24;15379:4;15361:9;:24::i;:::-;15335:50;;15396:33;15413:15;15396:16;:33::i;19699:132::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;19783:19:::1;:40:::0;19699:132::o;15090:103::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;15159:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;15159:26:0::1;-1:-1:-1::0;;;;15159:26:0;;::::1;::::0;;;::::1;::::0;;15090:103::o;4638:244::-;4395:6;;-1:-1:-1;;;;;4395:6:0;3107:10;4395:22;4387:67;;;;-1:-1:-1;;;4387:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4727:22:0;::::1;4719:73;;;::::0;-1:-1:-1;;;4719:73:0;;6845:2:1;4719:73:0::1;::::0;::::1;6827:21:1::0;6884:2;6864:18;;;6857:30;6923:34;6903:18;;;6896:62;-1:-1:-1;;;6974:18:1;;;6967:36;7020:19;;4719:73:0::1;6643:402:1::0;4719:73:0::1;4829:6;::::0;;4808:38:::1;::::0;-1:-1:-1;;;;;4808:38:0;;::::1;::::0;4829:6;::::1;::::0;4808:38:::1;::::0;::::1;4857:6;:17:::0;;-1:-1:-1;;;;;;4857:17:0::1;-1:-1:-1::0;;;;;4857:17:0;;;::::1;::::0;;;::::1;::::0;;4638:244::o;11777:369::-;-1:-1:-1;;;;;11904:19:0;;11896:68;;;;-1:-1:-1;;;11896:68:0;;7252:2:1;11896:68:0;;;7234:21:1;7291:2;7271:18;;;7264:30;7330:34;7310:18;;;7303:62;-1:-1:-1;;;7381:18:1;;;7374:34;7425:19;;11896:68:0;7050:400:1;11896:68:0;-1:-1:-1;;;;;11983:21:0;;11975:68;;;;-1:-1:-1;;;11975:68:0;;7657:2:1;11975:68:0;;;7639:21:1;7696:2;7676:18;;;7669:30;7735:34;7715:18;;;7708:62;-1:-1:-1;;;7786:18:1;;;7779:32;7828:19;;11975:68:0;7455:398:1;11975:68:0;-1:-1:-1;;;;;12054:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12106:32;;1734:25:1;;;12106:32:0;;1707:18:1;12106:32:0;;;;;;;11777:369;;;:::o;12154:2330::-;-1:-1:-1;;;;;12276:18:0;;12268:68;;;;-1:-1:-1;;;12268:68:0;;8060:2:1;12268:68:0;;;8042:21:1;8099:2;8079:18;;;8072:30;8138:34;8118:18;;;8111:62;-1:-1:-1;;;8189:18:1;;;8182:35;8234:19;;12268:68:0;7858:401:1;12268:68:0;-1:-1:-1;;;;;12355:16:0;;12347:64;;;;-1:-1:-1;;;12347:64:0;;8466:2:1;12347:64:0;;;8448:21:1;8505:2;8485:18;;;8478:30;8544:34;8524:18;;;8517:62;-1:-1:-1;;;8595:18:1;;;8588:33;8638:19;;12347:64:0;8264:399:1;12347:64:0;12439:1;12430:6;:10;12422:64;;;;-1:-1:-1;;;12422:64:0;;8870:2:1;12422:64:0;;;8852:21:1;8909:2;8889:18;;;8882:30;8948:34;8928:18;;;8921:62;-1:-1:-1;;;8999:18:1;;;8992:39;9048:19;;12422:64:0;8668:405:1;12422:64:0;4306:7;4333:6;-1:-1:-1;;;;;12503:15:0;;;4333:6;;12503:15;;;;:32;;-1:-1:-1;4306:7:0;4333:6;-1:-1:-1;;;;;12522:13:0;;;4333:6;;12522:13;;12503:32;12499:1259;;;12592:11;;-1:-1:-1;;;12592:11:0;;;;12587:144;;4306:7;4333:6;-1:-1:-1;;;;;12632:15:0;;;4333:6;;12632:15;12624:91;;;;-1:-1:-1;;;12624:91:0;;9280:2:1;12624:91:0;;;9262:21:1;9319:2;9299:18;;;9292:30;9358:34;9338:18;;;9331:62;9429:33;9409:18;;;9402:61;9480:19;;12624:91:0;9078:427:1;12624:91:0;12765:12;;12755:6;:22;;12747:63;;;;-1:-1:-1;;;12747:63:0;;9712:2:1;12747:63:0;;;9694:21:1;9751:2;9731:18;;;9724:30;9790;9770:18;;;9763:58;9838:18;;12747:63:0;9510:352:1;12747:63:0;-1:-1:-1;;;;;12834:10:0;;;;;;:4;:10;;;;;;;;12833:11;:24;;;;-1:-1:-1;;;;;;12849:8:0;;;;;;:4;:8;;;;;;;;12848:9;12833:24;12825:72;;;;-1:-1:-1;;;12825:72:0;;10069:2:1;12825:72:0;;;10051:21:1;10108:2;10088:18;;;10081:30;10147:34;10127:18;;;10120:62;-1:-1:-1;;;10198:18:1;;;10191:33;10241:19;;12825:72:0;9867:399:1;12825:72:0;12923:13;;-1:-1:-1;;;;;12917:19:0;;;12923:13;;12917:19;12914:146;;12990:14;;12981:6;12965:13;12975:2;12965:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12957:87;;;;-1:-1:-1;;;12957:87:0;;10735:2:1;12957:87:0;;;10717:21:1;10774:2;10754:18;;;10747:30;10813:34;10793:18;;;10786:62;-1:-1:-1;;;10864:18:1;;;10857:33;10907:19;;12957:87:0;10533:399:1;12957:87:0;13076:28;13107:24;13125:4;13107:9;:24::i;:::-;13185:19;;13248:12;;13076:55;;-1:-1:-1;13161:43:0;;;;13224:36;;13221:124;;13317:12;;13294:35;;13221:124;13365:7;:18;;;;-1:-1:-1;13377:6:0;;-1:-1:-1;;;13377:6:0;;;;13376:7;13365:18;:43;;;;-1:-1:-1;13395:13:0;;-1:-1:-1;;;;;13387:21:0;;;13395:13;;13387:21;;13365:43;:58;;;;-1:-1:-1;13412:11:0;;-1:-1:-1;;;13412:11:0;;;;13365:58;:87;;;;-1:-1:-1;;;;;;13428:24:0;;;;;;:18;:24;;;;;;;;13427:25;13365:87;:114;;;;-1:-1:-1;;;;;;13457:22:0;;;;;;:18;:22;;;;;;;;13456:23;13365:114;13361:386;;;13500:38;13517:20;13500:16;:38::i;:::-;13586:21;13630:22;;13626:106;;13677:35;13690:21;13677:12;:35::i;:::-;13481:266;13361:386;12537:1221;;12499:1259;-1:-1:-1;;;;;13834:24:0;;13770:12;13834:24;;;:18;:24;;;;;;13785:4;;13834:24;;;:50;;-1:-1:-1;;;;;;13862:22:0;;;;;;:18;:22;;;;;;;;13834:50;13833:102;;;-1:-1:-1;13898:13:0;;-1:-1:-1;;;;;13890:21:0;;;13898:13;;13890:21;;;;:44;;-1:-1:-1;13921:13:0;;-1:-1:-1;;;;;13915:19:0;;;13921:13;;13915:19;;13890:44;13829:594;;;-1:-1:-1;13962:5:0;13829:594;;;14045:13;;-1:-1:-1;;;;;14037:21:0;;;14045:13;;14037:21;:55;;;;-1:-1:-1;14076:15:0;;-1:-1:-1;;;;;14062:30:0;;;14076:15;;14062:30;;14037:55;14034:162;;;14125:14;;14113:9;:26;14168:12;;14158:7;:22;14034:162;14255:13;;-1:-1:-1;;;;;14249:19:0;;;14255:13;;14249:19;:55;;;;-1:-1:-1;14288:15:0;;-1:-1:-1;;;;;14272:32:0;;;14288:15;;14272:32;;14249:55;14245:165;;;14337:15;;14325:9;:27;14381:13;;14371:7;:23;14245:165;14435:41;14450:4;14456:2;14460:6;14468:7;14435:14;:41::i;5246:224::-;5366:7;5402:12;5394:6;;;;5386:29;;;;-1:-1:-1;;;5386:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5426:9:0;5438:5;5442:1;5438;:5;:::i;:::-;5426:17;5246:224;-1:-1:-1;;;;;5246:224:0:o;14983:99::-;15040:17;;:34;;-1:-1:-1;;;;;15040:17:0;;;;:34;;;;;15067:6;;15040:17;:34;:17;:34;15067:6;15040:17;:34;;;;;;;;;;;;;;;;;;;11097:323;11192:7;11250;;11239;:18;;11217:110;;;;-1:-1:-1;;;11217:110:0;;11272:2:1;11217:110:0;;;11254:21:1;11311:2;11291:18;;;11284:30;11350:34;11330:18;;;11323:62;-1:-1:-1;;;11401:18:1;;;11394:40;11451:19;;11217:110:0;11070:406:1;11217:110:0;11338:19;11360:10;:8;:10::i;:::-;11338:32;-1:-1:-1;11388:24:0;:7;11338:32;11388:11;:24::i;:::-;11381:31;11097:323;-1:-1:-1;;;11097:323:0:o;14492:483::-;8809:6;:13;;-1:-1:-1;;;;8809:13:0;-1:-1:-1;;;8809:13:0;;;14594:16:::1;::::0;;14608:1:::1;14594:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14594:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14594:16:0::1;14570:40;;14639:4;14621;14626:1;14621:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14621:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14665:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14665:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14621:7;;14665:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14655:4;14660:1;14655:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14655:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14730:15:::1;::::0;14698:62:::1;::::0;14715:4:::1;::::0;14730:15:::1;14748:11:::0;14698:8:::1;:62::i;:::-;14771:15;::::0;:196:::1;::::0;-1:-1:-1;;;14771:196:0;;-1:-1:-1;;;;;14771:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14852:11;;14771:15:::1;::::0;14894:4;;14921::::1;::::0;14941:15:::1;::::0;14771:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8845:6:0;:14;;-1:-1:-1;;;;8845:14:0;;;-1:-1:-1;;;;14492:483:0:o;15964:275::-;16120:7;16115:25;;16129:11;:9;:11::i;:::-;16151:44;16169:6;16177:9;16188:6;16151:17;:44::i;:::-;16211:7;16206:25;;16220:11;:9;:11::i;18918:164::-;18960:7;18981:15;18998;19017:19;:17;:19::i;:::-;18980:56;;-1:-1:-1;18980:56:0;-1:-1:-1;19054:20:0;18980:56;;19054:11;:20::i;:::-;19047:27;;;;18918:164;:::o;5732:132::-;5790:7;5817:39;5821:1;5824;5817:39;;;;;;;;;;;;;;;;;:3;:39::i;11428:216::-;11472:9;;:14;:30;;;;-1:-1:-1;11490:7:0;;:12;11472:30;11468:43;;;11428:216::o;11468:43::-;11543:9;;;11523:17;:29;11581:7;;;11563:15;:25;-1:-1:-1;11601:13:0;;;;11625:11;11428:216::o;16247:610::-;16394:15;16424:23;16462:12;16489:23;16527:12;16554:13;16581:19;16592:7;16581:10;:19::i;:::-;-1:-1:-1;;;;;16629:15:0;;;;;;:7;:15;;;;;;16379:221;;-1:-1:-1;16379:221:0;;-1:-1:-1;16379:221:0;;-1:-1:-1;16379:221:0;-1:-1:-1;16379:221:0;-1:-1:-1;16379:221:0;-1:-1:-1;16629:28:0;;16379:221;16629:19;:28::i;:::-;-1:-1:-1;;;;;16611:15:0;;;;;;;:7;:15;;;;;;:46;;;;16689:18;;;;;;;:39;;16712:15;16689:22;:39::i;:::-;-1:-1:-1;;;;;16668:18:0;;;;;;:7;:18;;;;;:60;16739:16;16749:5;16739:9;:16::i;:::-;16766:23;16778:4;16784;16766:11;:23::i;:::-;16822:9;-1:-1:-1;;;;;16805:44:0;16814:6;-1:-1:-1;;;;;16805:44:0;;16833:15;16805:44;;;;1734:25:1;;1722:2;1707:18;;1588:177;16805:44:0;;;;;;;;16368:489;;;;;;16247:610;;;:::o;19090:257::-;19188:7;;19141;;;;7567:16;19256:20;19188:7;7567:16;19256:11;:20::i;:::-;19246:7;:30;19242:61;;;-1:-1:-1;;19286:7:0;;;7567:16;;-1:-1:-1;19090:257:0;-1:-1:-1;19090:257:0:o;19242:61::-;19322:7;;19331;;-1:-1:-1;19090:257:0;-1:-1:-1;19090:257:0:o;5872:223::-;5992:7;6027:12;6020:5;6012:28;;;;-1:-1:-1;;;6012:28:0;;;;;;;;:::i;:::-;-1:-1:-1;6051:9:0;6063:5;6067:1;6063;:5;:::i;17276:615::-;17376:7;17398;17420;17442;17464;17486;17522:23;17547:12;17561:13;17591:40;17603:7;17612:9;;17623:7;;17591:11;:40::i;:::-;17521:110;;;;;;17642:19;17664:10;:8;:10::i;:::-;17642:32;;17686:15;17703:23;17728:12;17757:46;17769:7;17778:4;17784:5;17791:11;17757;:46::i;:::-;17685:118;;-1:-1:-1;17685:118:0;-1:-1:-1;17685:118:0;-1:-1:-1;17854:15:0;;-1:-1:-1;17871:4:0;;-1:-1:-1;17877:5:0;;-1:-1:-1;;;;;17276:615:0;;;;;;;:::o;5102:136::-;5160:7;5187:43;5191:1;5194;5187:43;;;;;;;;;;;;;;;;;:3;:43::i;4915:179::-;4973:7;;5005:5;5009:1;5005;:5;:::i;:::-;4993:17;;5034:1;5029;:6;;5021:46;;;;-1:-1:-1;;;5021:46:0;;13146:2:1;5021:46:0;;;13128:21:1;13185:2;13165:18;;;13158:30;13224:29;13204:18;;;13197:57;13271:18;;5021:46:0;12944:351:1;16865:211:0;16918:19;16940:10;:8;:10::i;:::-;16918:32;-1:-1:-1;16961:13:0;16977:22;:5;16918:32;16977:9;:22::i;:::-;17051:4;17035:22;;;;:7;:22;;;;;;16961:38;;-1:-1:-1;17035:33:0;;16961:38;17035:26;:33::i;:::-;17026:4;17010:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16865:211:0:o;17084:147::-;17162:7;;:17;;17174:4;17162:11;:17::i;:::-;17152:7;:27;17203:10;;:20;;17218:4;17203:14;:20::i;:::-;17190:10;:33;-1:-1:-1;;17084:147:0:o;17899:469::-;18068:7;;;;18162:30;18188:3;18162:21;:7;18174:8;18162:11;:21::i;:::-;:25;;:30::i;:::-;18147:45;-1:-1:-1;18203:13:0;18219:28;18243:3;18219:19;:7;18231:6;18219:11;:19::i;:28::-;18203:44;-1:-1:-1;18258:23:0;18284:28;18203:44;18284:17;:7;18296:4;18284:11;:17::i;:::-;:21;;:28::i;:::-;18258:54;18348:4;;-1:-1:-1;18354:5:0;;-1:-1:-1;17899:469:0;;-1:-1:-1;;;;;17899:469:0:o;18376:534::-;18570:7;;;;18667:24;:7;18679:11;18667;:24::i;:::-;18649:42;-1:-1:-1;18702:12:0;18717:21;:4;18726:11;18717:8;:21::i;:::-;18702:36;-1:-1:-1;18749:13:0;18765:22;:5;18775:11;18765:9;:22::i;:::-;18749:38;-1:-1:-1;18798:23:0;18824:28;18749:38;18824:17;:7;18836:4;18824:11;:17::i;:28::-;18871:7;;;;-1:-1:-1;18897:4:0;;-1:-1:-1;18376:534:0;;-1:-1:-1;;;;;;;18376:534:0:o;5478:246::-;5536:7;5560:1;5565;5560:6;5556:47;;-1:-1:-1;5590:1:0;5583:8;;5556:47;5613:9;5625:5;5629:1;5625;:5;:::i;:::-;5613:17;-1:-1:-1;5658:1:0;5649:5;5653:1;5613:17;5649:5;:::i;:::-;:10;5641:56;;;;-1:-1:-1;;;5641:56:0;;13675:2:1;5641:56:0;;;13657:21:1;13714:2;13694:18;;;13687:30;13753:34;13733:18;;;13726:62;-1:-1:-1;;;13804:18:1;;;13797:31;13845:19;;5641:56:0;13473:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1770:456::-;1847:6;1855;1863;1916:2;1904:9;1895:7;1891:23;1887:32;1884:52;;;1932:1;1929;1922:12;1884:52;1971:9;1958:23;1990:31;2015:5;1990:31;:::i;:::-;2040:5;-1:-1:-1;2097:2:1;2082:18;;2069:32;2110:33;2069:32;2110:33;:::i;:::-;1770:456;;2162:7;;-1:-1:-1;;;2216:2:1;2201:18;;;;2188:32;;1770:456::o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:1121;2447:6;2478:2;2521;2509:9;2500:7;2496:23;2492:32;2489:52;;;2537:1;2534;2527:12;2489:52;2577:9;2564:23;2606:18;2647:2;2639:6;2636:14;2633:34;;;2663:1;2660;2653:12;2633:34;2701:6;2690:9;2686:22;2676:32;;2746:7;2739:4;2735:2;2731:13;2727:27;2717:55;;2768:1;2765;2758:12;2717:55;2804:2;2791:16;2826:2;2822;2819:10;2816:36;;;2832:18;;:::i;:::-;2878:2;2875:1;2871:10;2910:2;2904:9;2973:2;2969:7;2964:2;2960;2956:11;2952:25;2944:6;2940:38;3028:6;3016:10;3013:22;3008:2;2996:10;2993:18;2990:46;2987:72;;;3039:18;;:::i;:::-;3075:2;3068:22;3125:18;;;3159:15;;;;-1:-1:-1;3201:11:1;;;3197:20;;;3229:19;;;3226:39;;;3261:1;3258;3251:12;3226:39;3285:11;;;;3305:148;3321:6;3316:3;3313:15;3305:148;;;3387:23;3406:3;3387:23;:::i;:::-;3375:36;;3338:12;;;;3431;;;;3305:148;;;3472:6;2363:1121;-1:-1:-1;;;;;;;;2363:1121:1:o;3678:247::-;3737:6;3790:2;3778:9;3769:7;3765:23;3761:32;3758:52;;;3806:1;3803;3796:12;3758:52;3845:9;3832:23;3864:31;3889:5;3864:31;:::i;4138:180::-;4197:6;4250:2;4238:9;4229:7;4225:23;4221:32;4218:52;;;4266:1;4263;4256:12;4218:52;-1:-1:-1;4289:23:1;;4138:180;-1:-1:-1;4138:180:1:o;4323:160::-;4388:20;;4444:13;;4437:21;4427:32;;4417:60;;4473:1;4470;4463:12;4488:180;4544:6;4597:2;4585:9;4576:7;4572:23;4568:32;4565:52;;;4613:1;4610;4603:12;4565:52;4636:26;4652:9;4636:26;:::i;4673:689::-;4765:6;4773;4781;4834:2;4822:9;4813:7;4809:23;4805:32;4802:52;;;4850:1;4847;4840:12;4802:52;4890:9;4877:23;4919:18;4960:2;4952:6;4949:14;4946:34;;;4976:1;4973;4966:12;4946:34;5014:6;5003:9;4999:22;4989:32;;5059:7;5052:4;5048:2;5044:13;5040:27;5030:55;;5081:1;5078;5071:12;5030:55;5121:2;5108:16;5147:2;5139:6;5136:14;5133:34;;;5163:1;5160;5153:12;5133:34;5218:7;5211:4;5201:6;5198:1;5194:14;5190:2;5186:23;5182:34;5179:47;5176:67;;;5239:1;5236;5229:12;5176:67;5270:4;5262:13;;;;-1:-1:-1;5294:6:1;-1:-1:-1;5319:37:1;;5335:20;;;-1:-1:-1;5319:37:1;:::i;:::-;5309:47;;4673:689;;;;;:::o;5367:385::-;5453:6;5461;5469;5477;5530:3;5518:9;5509:7;5505:23;5501:33;5498:53;;;5547:1;5544;5537:12;5498:53;-1:-1:-1;;5570:23:1;;;5640:2;5625:18;;5612:32;;-1:-1:-1;5691:2:1;5676:18;;5663:32;;5742:2;5727:18;5714:32;;-1:-1:-1;5367:385:1;-1:-1:-1;5367:385:1:o;5757:388::-;5825:6;5833;5886:2;5874:9;5865:7;5861:23;5857:32;5854:52;;;5902:1;5899;5892:12;5854:52;5941:9;5928:23;5960:31;5985:5;5960:31;:::i;:::-;6010:5;-1:-1:-1;6067:2:1;6052:18;;6039:32;6080:33;6039:32;6080:33;:::i;:::-;6132:7;6122:17;;;5757:388;;;;;:::o;6150:356::-;6352:2;6334:21;;;6371:18;;;6364:30;6430:34;6425:2;6410:18;;6403:62;6497:2;6482:18;;6150:356::o;6511:127::-;6572:10;6567:3;6563:20;6560:1;6553:31;6603:4;6600:1;6593:15;6627:4;6624:1;6617:15;10271:127;10332:10;10327:3;10323:20;10320:1;10313:31;10363:4;10360:1;10353:15;10387:4;10384:1;10377:15;10403:125;10468:9;;;10489:10;;;10486:36;;;10502:18;;:::i;10937:128::-;11004:9;;;11025:11;;;11022:37;;;11039:18;;:::i;11481:251::-;11551:6;11604:2;11592:9;11583:7;11579:23;11575:32;11572:52;;;11620:1;11617;11610:12;11572:52;11652:9;11646:16;11671:31;11696:5;11671:31;:::i;11737:980::-;11999:4;12047:3;12036:9;12032:19;12078:6;12067:9;12060:25;12104:2;12142:6;12137:2;12126:9;12122:18;12115:34;12185:3;12180:2;12169:9;12165:18;12158:31;12209:6;12244;12238:13;12275:6;12267;12260:22;12313:3;12302:9;12298:19;12291:26;;12352:2;12344:6;12340:15;12326:29;;12373:1;12383:195;12397:6;12394:1;12391:13;12383:195;;;12462:13;;-1:-1:-1;;;;;12458:39:1;12446:52;;12553:15;;;;12518:12;;;;12494:1;12412:9;12383:195;;;-1:-1:-1;;;;;;;12634:32:1;;;;12629:2;12614:18;;12607:60;-1:-1:-1;;;12698:3:1;12683:19;12676:35;12595:3;11737:980;-1:-1:-1;;;11737:980:1:o;12722:217::-;12762:1;12788;12778:132;;12832:10;12827:3;12823:20;12820:1;12813:31;12867:4;12864:1;12857:15;12895:4;12892:1;12885:15;12778:132;-1:-1:-1;12924:9:1;;12722:217::o;13300:168::-;13373:9;;;13404;;13421:15;;;13415:22;;13401:37;13391:71;;13442:18;;:::i
Swarm Source
ipfs://e1f7d0c53f2ff63201bf7c339352c3110410c84b848dbd421a34de01c463e040
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.