ERC-20
Overview
Max Total Supply
1,000,000,000 MOONWEEN
Holders
34
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
7,222,745.778092714343607138 MOONWEENValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MOONWEEN
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-31 */ // SPDX-License-Identifier: MIT /* ████ ██▓▓▓▓██ ██▓▓▓▓██ ██▓▓██ ████████ ██▓▓██ ████████ ████░░░░░░░░████▓▓████░░░░░░░░████ ████░░░░░░░░░░██░░░░██░░░░██░░░░░░░░░░████ ██░░░░██░░░░░░██░░░░░░░░░░░░░░██░░░░░░██░░░░██ ██░░░░██░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░██░░░░██ ██░░██░░░░░░░░██░░░░░░░░██░░░░░░░░██░░░░░░░░██░░██ ██░░██░░░░░░░░██████░░░░░░██░░░░░░██████░░░░░░░░██░░██ ██░░██░░░░░░██████████░░░░░░░░░░██████████░░░░░░██░░██ ██░░██░░░░░░██████████░░░░░░░░░░██████████░░░░░░██░░██ ██░░██░░░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░░░░░██░░██ ██░░██░░░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░██░░██ ██░░██░░░░░░░░░░░░░░░░██████████░░░░░░░░░░░░░░░░██░░██ ██░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░████░░░░░░░░░░░░██ ██░░░░░░░░░░░░░░████░░░░░░░░░░░░░░████░░░░░░░░░░░░░░██ ██░░██░░░░░░░░░░██████████████████░░░░░░░░░░██░░██ ██░░░░██░░░░░░░░░░░░██████████░░░░░░░░░░░░██░░░░██ ██░░░░██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██░░░░██ ████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░████ ████░░░░░░░░░░░░██░░░░░░░░░░░░████ ████████████ ████████████ Moonween | $MOONWEEN It is time. Time for Moonween. 🎃 Website: https://moonween-erc.com Twitter: https://twitter.com/MoonweenERC TG: https://t.me/MoonweenPortal */ pragma solidity ^0.8.0; library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { require(b != -1 || a != MIN_INT256); return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IUniSwapPair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniSwapRouter{ 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 removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( 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 swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniSwapFactory { 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; } contract Ownable { address private _owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = msg.sender; } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(isOwner()); _; } function isOwner() public view returns (bool) { return msg.sender == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(_owner); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } abstract contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor( string memory name_, string memory symbol_, uint8 decimals_ ) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } contract MOONWEEN is ERC20Detailed, Ownable { using SafeMath for uint256; using SafeMathInt for int256; modifier validRecipient(address to) { require(to != address(0x0)); _; } uint256 public buyLiquidityFee = 10; uint256 public buyMarketingFee = 40; uint256 public buyTeamFee = 30; uint256 public buyBurnFee = 0; uint256 public sellLiquidityFee = 10; uint256 public sellMarketingFee = 40; uint256 public sellTeamFee = 30; uint256 public sellBurnFee = 0; uint256 public AmountLiquidityFee; uint256 public AmountMarketingFee; uint256 public AmountTeamFee; // uint256 public AmountBurnFee; uint256 public feeDenominator = 1000; address public marketingWallet = payable(0x2566ab781B250eba29A3d212D322726A53c6Bca3); address public teamWallet = payable(0xA69E850B4b9b11c8568a974cd9Dbe959619eE927); address public liquidityWallet; address private constant deadWallet = 0x000000000000000000000000000000000000dEaD; address private constant ZeroWallet = 0x0000000000000000000000000000000000000000; mapping(address => bool) public blacklist; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public automatedMarketMakerPairs; uint256 public constant DECIMALS = 18; uint256 public _totalSupply = 1000_000_000 * (10 ** DECIMALS); uint256 public swapTokensAtAmount = _totalSupply.mul(1).div(feeDenominator); //0.1% uint256 public MaxWalletLimit = _totalSupply.mul(20).div(feeDenominator); //2% uint256 public MaxTxLimit = _totalSupply.mul(20).div(feeDenominator); //2% bool public EnableTransactionLimit = true; bool public checkWalletLimit = true; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; bool public _autoAddLiquidity = true; address public pair; IUniSwapPair public pairContract; IUniSwapRouter public router; bool inSwap = false; modifier swapping() { inSwap = true; _; inSwap = false; } constructor() ERC20Detailed("Moonween", "MOONWEEN", uint8(DECIMALS)) Ownable() { router = IUniSwapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IUniSwapFactory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = ~uint256(0); liquidityWallet = msg.sender; pairContract = IUniSwapPair(pair); automatedMarketMakerPairs[pair] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[pair] = true; isWalletLimitExempt[address(this)] = true; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0x0), owner(), _totalSupply); } function transfer(address to, uint256 value) external override validRecipient(to) returns (bool) { _transferFrom(msg.sender, to, value); return true; } function transferFrom( address from, address to, uint256 value ) external override validRecipient(to) returns (bool) { if (_allowances[from][msg.sender] != ~uint256(0)) { _allowances[from][msg.sender] = _allowances[from][ msg.sender ].sub(value, "Insufficient Allowance"); } _transferFrom(from, to, value); return true; } function _basicTransfer( address from, address to, uint256 amount ) internal returns (bool) { _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount); return true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0,"Error: Invalid Amount!"); require(!blacklist[sender] && !blacklist[recipient], "in_blacklist"); if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) { require(amount <= MaxTxLimit, "Error: Transfer amount exceeds the maxTxAmount."); } if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (shouldAddLiquidity()) { addLiquidity(); } _balances[sender] = _balances[sender].sub(amount); uint256 AmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(AmountReceived) <= MaxWalletLimit,"Error: Transfer Amount exceeds Wallet Limit."); } _balances[recipient] = _balances[recipient].add(AmountReceived); emit Transfer(sender,recipient,AmountReceived); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeAmount; uint LFEE; uint MFEE; uint TFEE; uint BFEE; if(automatedMarketMakerPairs[sender]){ LFEE = amount.mul(buyLiquidityFee).div(feeDenominator); AmountLiquidityFee += LFEE; MFEE = amount.mul(buyMarketingFee).div(feeDenominator); AmountMarketingFee += MFEE; TFEE = amount.mul(buyTeamFee).div(feeDenominator); AmountTeamFee += TFEE; BFEE = amount.mul(buyBurnFee).div(feeDenominator); feeAmount = LFEE.add(MFEE).add(TFEE); } else if(automatedMarketMakerPairs[recipient]){ LFEE = amount.mul(sellLiquidityFee).div(feeDenominator); AmountLiquidityFee += LFEE; MFEE = amount.mul(sellMarketingFee).div(feeDenominator); AmountMarketingFee += MFEE; TFEE = amount.mul(sellTeamFee).div(feeDenominator); AmountTeamFee += TFEE; BFEE = amount.mul(sellBurnFee).div(feeDenominator); feeAmount = LFEE.add(MFEE).add(TFEE); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } if(BFEE > 0) { _totalSupply = _totalSupply.sub(BFEE); emit Transfer(sender, address(0), BFEE); } return amount.sub(feeAmount).sub(BFEE); } function manualSwap() public onlyOwner swapping { if(AmountLiquidityFee > 0) swapForLiquidity(AmountLiquidityFee); if(AmountMarketingFee > 0) swapForMarketing(AmountMarketingFee); if(AmountTeamFee > 0) swapForTeam(AmountTeamFee); } function addLiquidity() internal swapping { if(AmountLiquidityFee > 0){ swapForLiquidity(AmountLiquidityFee); } if(AmountMarketingFee > 0){ swapForMarketing(AmountMarketingFee); } if(AmountTeamFee > 0){ swapForTeam(AmountTeamFee); } } function shouldTakeFee(address from, address to) internal view returns (bool) { if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ return false; } else{ return (automatedMarketMakerPairs[from] || automatedMarketMakerPairs[to]); } } function shouldAddLiquidity() internal view returns (bool) { uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; return _autoAddLiquidity && !inSwap && canSwap && !automatedMarketMakerPairs[msg.sender]; } function setAutoAddLiquidity(bool _flag) external onlyOwner { if(_flag) { _autoAddLiquidity = _flag; } else { _autoAddLiquidity = _flag; } } function allowance(address owner_, address spender) external view override returns (uint256) { return _allowances[owner_][spender]; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 oldValue = _allowances[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowances[msg.sender][spender] = 0; } else { _allowances[msg.sender][spender] = oldValue.sub( subtractedValue ); } emit Approval( msg.sender, spender, _allowances[msg.sender][spender] ); return true; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { _allowances[msg.sender][spender] = _allowances[msg.sender][ spender ].add(addedValue); emit Approval( msg.sender, spender, _allowances[msg.sender][spender] ); return true; } function approve(address spender, uint256 value) external override returns (bool) { _approve(msg.sender,spender,value); return true; } 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 checkFeeExempt(address _addr) external view returns (bool) { return _isExcludedFromFees[_addr]; } function enableDisableTxLimit(bool _status) public onlyOwner { EnableTransactionLimit = _status; } function enableDisableWalletLimit(bool _status) public onlyOwner { checkWalletLimit = _status; } function setBuyFee( uint _newLp, uint _newMarketing, uint _newTeam, uint _newBurn ) public onlyOwner { buyLiquidityFee = _newLp; buyMarketingFee = _newMarketing; buyTeamFee = _newTeam; buyBurnFee = _newBurn; } function setSellFee( uint _newLp, uint _newMarketing, uint _newTeam, uint _newBurn ) public onlyOwner { sellLiquidityFee = _newLp; sellMarketingFee = _newMarketing; sellTeamFee = _newTeam; sellBurnFee = _newBurn; } function clearStuckBalance(address _receiver) external onlyOwner { uint256 balance = address(this).balance; payable(_receiver).transfer(balance); } function rescueToken(address tokenAddress,address _receiver, uint256 tokens) external onlyOwner returns (bool success){ return IERC20(tokenAddress).transfer(_receiver, tokens); } function setMarketingWallet(address _marketing) public onlyOwner { marketingWallet = _marketing; } function setTeamWallet(address _team) public onlyOwner { teamWallet = _team; } function setLiquidityWallet(address _Liquidity) public onlyOwner { liquidityWallet = _Liquidity; } function setMaxWalletLimit(uint _value) public onlyOwner { MaxWalletLimit = _value; } function setMaxTxLimit(uint _value) public onlyOwner { MaxTxLimit = _value; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(_balances[deadWallet]).sub(_balances[ZeroWallet]); } function isNotInSwap() external view returns (bool) { return !inSwap; } function manualSync() external { IUniSwapPair(pair).sync(); } function setLP(address _address) external onlyOwner { pairContract = IUniSwapPair(_address); pair = _address; } function setAutomaticPairMarket(address _addr,bool _status) public onlyOwner { if(_status) { require(!automatedMarketMakerPairs[_addr],"Pair Already Set!!"); } automatedMarketMakerPairs[_addr] = _status; isWalletLimitExempt[_addr] = true; } function setWhitelistFee(address _addr,bool _status) external onlyOwner { require(_isExcludedFromFees[_addr] != _status, "Error: Not changed"); _isExcludedFromFees[_addr] = _status; } function setEdTxLimit(address _addr,bool _status) external onlyOwner { isTxLimitExempt[_addr] = _status; } function setEdWalletLimit(address _addr,bool _status) external onlyOwner { isWalletLimitExempt[_addr] = _status; } function setBotBlacklist(address _botAddress, bool _flag) external onlyOwner { blacklist[_botAddress] = _flag; } function setMinSwapAmount(uint _value) external onlyOwner { swapTokensAtAmount = _value; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function swapForMarketing(uint _tokens) private { uint initalBalance = address(this).balance; swapTokensForEth(_tokens); uint recieveBalance = address(this).balance.sub(initalBalance); AmountMarketingFee = AmountMarketingFee.sub(_tokens); payable(marketingWallet).transfer(recieveBalance); } function swapForTeam(uint _tokens) private { uint initalBalance = address(this).balance; swapTokensForEth(_tokens); uint recieveBalance = address(this).balance.sub(initalBalance); AmountTeamFee = AmountTeamFee.sub(_tokens); payable(teamWallet).transfer(recieveBalance); } function swapForLiquidity(uint _tokens) private { uint half = AmountLiquidityFee.div(2); uint otherhalf = AmountLiquidityFee.sub(half); uint initalBalance = address(this).balance; swapTokensForEth(half); uint recieveBalance = address(this).balance.sub(initalBalance); AmountLiquidityFee = AmountLiquidityFee.sub(_tokens); addLiquidity(otherhalf,recieveBalance); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable liquidityWallet, block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } receive() external payable {} }
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"}],"name":"OwnershipRenounced","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":"AmountLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"_status","type":"bool"}],"name":"enableDisableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract IUniSwapPair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoAddLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setAutomaticPairMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setBotBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLp","type":"uint256"},{"internalType":"uint256","name":"_newMarketing","type":"uint256"},{"internalType":"uint256","name":"_newTeam","type":"uint256"},{"internalType":"uint256","name":"_newBurn","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setEdTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setEdWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_Liquidity","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMinSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLp","type":"uint256"},{"internalType":"uint256","name":"_newMarketing","type":"uint256"},{"internalType":"uint256","name":"_newTeam","type":"uint256"},{"internalType":"uint256","name":"_newBurn","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setWhitelistFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"value","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":"value","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600a600381905560286004819055601e600581905560006006819055600784905560089290925560095581556103e8600e55600f80546001600160a01b0319908116732566ab781b250eba29a3d212d322726a53c6bca3179091556010805490911673a69e850b4b9b11c8568a974cd9dbe959619ee9271790556200008c90601290620008b5565b6200009c90633b9aca006200099d565b601755620000d7600e54620000c36001601754620005c260201b620016f41790919060201c565b6200062260201b620017391790919060201c565b601855620000fe600e54620000c36014601754620005c260201b620016f41790919060201c565b60195562000125600e54620000c36014601754620005c260201b620016f41790919060201c565b601a55601b8054610100600160ff19928316811761ff00191691909117909255601e805490911690911790556020805460ff60a01b191690553480156200016b57600080fd5b506040518060400160405280600881526020016726b7b7b73bb2b2b760c11b8152506040518060400160405280600881526020016726a7a7a72ba2a2a760c11b81525060128260009080519060200190620001c8929190620006be565b508151620001de906001906020850190620006be565b506002805460ff191660ff9290921691909117610100600160a81b0319166101003302179055505060208054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0319909116178082556040805163c45a015560e01b815290516001600160a01b039092169263c45a015592600480840193829003018186803b1580156200026c57600080fd5b505afa15801562000281573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a7919062000764565b60208054604080516315ab88c960e31b815290516001600160a01b039485169463c9c653969493169263ad5c46489260048082019391829003018186803b158015620002f257600080fd5b505afa15801562000307573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032d919062000764565b306040518363ffffffff1660e01b81526004016200034d9291906200078d565b602060405180830381600087803b1580156200036857600080fd5b505af11580156200037d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a3919062000764565b601e8054610100600160a81b0319166101006001600160a01b039384168102919091178255306000908152601d602090815260408083208254871684528252808320600019905560118054336001600160a01b0319918216179091559454601f80549590910490961693909416831790945590815260169092528120805460ff19166001908117909155906015906200043b6200066c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601e5461010090049091168152601590925280822080548416600190811790915530835290822080549093168117909255601390620004a76200066c565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526013909252812080549092166001908117909255601490620004f76200066c565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260149092528120805490921660011790915560175490601c90620005496200066c565b6001600160a01b031681526020810191909152604001600020556200056d6200066c565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601754604051620005b491906200083e565b60405180910390a362000a12565b600082620005d3575060006200061c565b6000620005e183856200099d565b905082620005f0858362000847565b14620006195760405162461bcd60e51b81526004016200061090620007fd565b60405180910390fd5b90505b92915050565b60006200061983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200068060201b60201c565b60025461010090046001600160a01b031690565b60008183620006a45760405162461bcd60e51b8152600401620006109190620007a7565b506000620006b3848662000847565b9150505b9392505050565b828054620006cc90620009bf565b90600052602060002090601f016020900481019282620006f057600085556200073b565b82601f106200070b57805160ff19168380011785556200073b565b828001600101855582156200073b579182015b828111156200073b5782518255916020019190600101906200071e565b50620007499291506200074d565b5090565b5b808211156200074957600081556001016200074e565b60006020828403121562000776578081fd5b81516001600160a01b038116811462000619578182fd5b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b81811015620007d557858101830151858201604001528201620007b7565b81811115620007e75783604083870101525b50601f01601f1916929092016040019392505050565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6000826200086357634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116200087c5750620008ac565b818704821115620008915762000891620009fc565b808616156200089f57918102915b9490941c9380026200086b565b94509492505050565b6000620006196000198484600082620008d157506001620006b7565b81620008e057506000620006b7565b8160018114620008f95760028114620009045762000938565b6001915050620006b7565b60ff841115620009185762000918620009fc565b6001841b915084821115620009315762000931620009fc565b50620006b7565b5060208310610133831016604e8410600b841016171562000970575081810a838111156200096a576200096a620009fc565b620006b7565b6200097f848484600162000868565b808604821115620009945762000994620009fc565b02949350505050565b6000816000190483118215151615620009ba57620009ba620009fc565b500290565b600281046001821680620009d457607f821691505b60208210811415620009f657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612ab78062000a226000396000f3fe6080604052600436106103fe5760003560e01c80637e504d5911610213578063cfe0e61911610123578063e71dc3f5116100ab578063f63743421161007a578063f637434214610aeb578063f832679514610b00578063f872858a14610b15578063f887ea4014610b2a578063f9f92be414610b3f57610405565b8063e71dc3f514610a81578063ea8b2c4414610a96578063f11a24d314610ab6578063f2fde38b14610acb57610405565b8063dd62ed3e116100f2578063dd62ed3e146109ec578063dde04b9514610a0c578063e2f4560514610a2c578063e5711e8b14610a41578063e653da0814610a6157610405565b8063cfe0e6191461098d578063d4399790146109a2578063d4698016146109c2578063d729715f146109d757610405565b806395d89b41116101a6578063a9059cbb11610175578063a9059cbb146108f8578063adb873bd14610918578063b62496f51461092d578063c867d60b1461094d578063cfbac92f1461096d57610405565b806395d89b41146108995780639c2e4ac6146108ae578063a457c2d7146108c3578063a8aa1b31146108e357610405565b80638c5a133d116101e25780638c5a133d1461083a5780638da5cb5b1461085a5780638f32d59b1461086f578063921369131461088457610405565b80637e504d59146107d057806383b4ac68146107f057806385261485146108055780638b42507f1461081a57610405565b806337c9be871161030e57806364f5a5bb116102a1578063728d41c911610270578063728d41c914610751578063753d02a11461077157806375f0a87414610786578063764d72bf1461079b5780637bce5a04146107bb57610405565b806364f5a5bb146106e75780636912652c1461070757806370a082311461071c578063715018a61461073c57610405565b806351bc3c85116102dd57806351bc3c851461067d57806359927044146106925780635d098b38146106a75780636140a51e146106c757610405565b806337c9be871461060657806339509351146106265780633eaaf86b146106465780634d709adf1461065b57610405565b80632563ae83116103915780632ed9aed1116103605780632ed9aed11461057a5780632f34d2821461058f578063313ce567146105af578063320d4534146105d157806333490191146105f157610405565b80632563ae8314610510578063296f0a0c146105305780632b112e49146105505780632e0f26251461056557610405565b8063180fe7c9116103cd578063180fe7c9146104a657806318160ddd146104c657806323a2f1fc146104db57806323b872dd146104f057610405565b806306fdde031461040a578063095ea7b3146104355780631525ff7d14610462578063180b0d7e1461048457610405565b3661040557005b600080fd5b34801561041657600080fd5b5061041f610b5f565b60405161042c91906125f6565b60405180910390f35b34801561044157600080fd5b506104556104503660046124aa565b610bf1565b60405161042c91906125eb565b34801561046e57600080fd5b5061048261047d3660046123cd565b610c08565b005b34801561049057600080fd5b50610499610c3b565b60405161042c9190612918565b3480156104b257600080fd5b506104826104c136600461247d565b610c41565b3480156104d257600080fd5b50610499610c7d565b3480156104e757600080fd5b50610499610c83565b3480156104fc57600080fd5b5061045561050b36600461243d565b610c89565b34801561051c57600080fd5b5061048261052b3660046124d5565b610d63565b34801561053c57600080fd5b5061048261054b3660046123cd565b610d8e565b34801561055c57600080fd5b50610499610dc1565b34801561057157600080fd5b50610499610e32565b34801561058657600080fd5b50610499610e37565b34801561059b57600080fd5b506104826105aa3660046123cd565b610e3d565b3480156105bb57600080fd5b506105c4610e8a565b60405161042c9190612991565b3480156105dd57600080fd5b506104826105ec36600461250d565b610e93565b3480156105fd57600080fd5b50610499610ea9565b34801561061257600080fd5b5061048261062136600461247d565b610eaf565b34801561063257600080fd5b506104556106413660046124aa565b610eeb565b34801561065257600080fd5b50610499610f82565b34801561066757600080fd5b50610670610f88565b60405161042c9190612583565b34801561068957600080fd5b50610482610f97565b34801561069e57600080fd5b50610670611003565b3480156106b357600080fd5b506104826106c23660046123cd565b611012565b3480156106d357600080fd5b506104826106e23660046124d5565b611045565b3480156106f357600080fd5b5061048261070236600461250d565b611069565b34801561071357600080fd5b5061045561107f565b34801561072857600080fd5b506104996107373660046123cd565b611088565b34801561074857600080fd5b506104826110a3565b34801561075d57600080fd5b5061048261076c36600461250d565b611103565b34801561077d57600080fd5b50610482611119565b34801561079257600080fd5b50610670611183565b3480156107a757600080fd5b506104826107b63660046123cd565b611192565b3480156107c757600080fd5b506104996111e0565b3480156107dc57600080fd5b506104826107eb36600461247d565b6111e6565b3480156107fc57600080fd5b50610455611222565b34801561081157600080fd5b50610455611233565b34801561082657600080fd5b506104556108353660046123cd565b61123c565b34801561084657600080fd5b50610482610855366004612552565b611251565b34801561086657600080fd5b50610670611276565b34801561087b57600080fd5b5061045561128a565b34801561089057600080fd5b506104996112a0565b3480156108a557600080fd5b5061041f6112a6565b3480156108ba57600080fd5b506104996112b5565b3480156108cf57600080fd5b506104556108de3660046124aa565b6112bb565b3480156108ef57600080fd5b506106706113a7565b34801561090457600080fd5b506104556109133660046124aa565b6113bb565b34801561092457600080fd5b506104996113e7565b34801561093957600080fd5b506104556109483660046123cd565b6113ed565b34801561095957600080fd5b506104556109683660046123cd565b611402565b34801561097957600080fd5b506104826109883660046124d5565b611417565b34801561099957600080fd5b50610499611453565b3480156109ae57600080fd5b506104556109bd3660046123cd565b611459565b3480156109ce57600080fd5b50610670611477565b3480156109e357600080fd5b50610499611486565b3480156109f857600080fd5b50610499610a07366004612405565b61148c565b348015610a1857600080fd5b50610482610a2736600461247d565b6114b7565b348015610a3857600080fd5b5061049961153b565b348015610a4d57600080fd5b50610455610a5c36600461243d565b611541565b348015610a6d57600080fd5b50610482610a7c366004612552565b6115de565b348015610a8d57600080fd5b50610499611603565b348015610aa257600080fd5b50610482610ab136600461247d565b611609565b348015610ac257600080fd5b50610499611696565b348015610ad757600080fd5b50610482610ae63660046123cd565b61169c565b348015610af757600080fd5b506104996116b6565b348015610b0c57600080fd5b506104996116bc565b348015610b2157600080fd5b506104556116c2565b348015610b3657600080fd5b506106706116d0565b348015610b4b57600080fd5b50610455610b5a3660046123cd565b6116df565b606060008054610b6e90612a0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9a90612a0d565b8015610be75780601f10610bbc57610100808354040283529160200191610be7565b820191906000526020600020905b815481529060010190602001808311610bca57829003601f168201915b5050505050905090565b6000610bfe33848461177b565b5060015b92915050565b610c1061128a565b610c1957600080fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b600e5481565b610c4961128a565b610c5257600080fd5b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b60175490565b601a5481565b6000826001600160a01b038116610c9f57600080fd5b6001600160a01b0385166000908152601d6020908152604080832033845290915290205460001914610d4c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601d82528381203382529091529190912054610d2791859061182f565b6001600160a01b0386166000908152601d602090815260408083203384529091529020555b610d57858585611869565b50600195945050505050565b610d6b61128a565b610d7457600080fd5b601b80549115156101000261ff0019909216919091179055565b610d9661128a565b610d9f57600080fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b601c6020527fb9c6de81004e18dedadca3e5eabaab449ca91dff6f58efc9461da635fe77f8495461dead60009081527fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc546017549192610e2d929091610e279190611b37565b90611b37565b905090565b601281565b600d5481565b610e4561128a565b610e4e57600080fd5b601f80546001600160a01b0319166001600160a01b03929092169182179055601e8054610100600160a81b031916610100909202919091179055565b60025460ff1690565b610e9b61128a565b610ea457600080fd5b601855565b60195481565b610eb761128a565b610ec057600080fd5b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b336000908152601d602090815260408083206001600160a01b0386168452909152812054610f199083611b79565b336000818152601d602090815260408083206001600160a01b038916808552925291829020849055905190927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591610f719190612918565b60405180910390a350600192915050565b60175481565b601f546001600160a01b031681565b610f9f61128a565b610fa857600080fd5b6020805460ff60a01b1916600160a01b179055600b5415610fce57610fce600b54611ba8565b600c5415610fe157610fe1600c54611c0e565b600d5415610ff457610ff4600d54611c71565b6020805460ff60a01b19169055565b6010546001600160a01b031681565b61101a61128a565b61102357600080fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b61104d61128a565b61105657600080fd5b601b805460ff1916911515919091179055565b61107161128a565b61107a57600080fd5b601a55565b601e5460ff1681565b6001600160a01b03166000908152601c602052604090205490565b6110ab61128a565b6110b457600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b61110b61128a565b61111457600080fd5b601955565b601e60019054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b50505050565b600f546001600160a01b031681565b61119a61128a565b6111a357600080fd5b60405147906001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111db573d6000803e3d6000fd5b505050565b60045481565b6111ee61128a565b6111f757600080fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b602054600160a01b900460ff161590565b601b5460ff1681565b60146020526000908152604090205460ff1681565b61125961128a565b61126257600080fd5b600393909355600491909155600555600655565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60085481565b606060018054610b6e90612a0d565b60055481565b336000908152601d602090815260408083206001600160a01b038616845290915281205480831061130f57336000908152601d602090815260408083206001600160a01b038816845290915281205561133e565b6113198184611b37565b336000908152601d602090815260408083206001600160a01b03891684529091529020555b336000818152601d602090815260408083206001600160a01b0389168085529252918290205491519092917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916113959190612918565b60405180910390a35060019392505050565b601e5461010090046001600160a01b031681565b6000826001600160a01b0381166113d157600080fd5b6113dc338585611869565b506001949350505050565b600a5481565b60166020526000908152604090205460ff1681565b60156020526000908152604090205460ff1681565b61141f61128a565b61142857600080fd5b801561144157601e805460ff1916821515179055611450565b601e805460ff19168215151790555b50565b600c5481565b6001600160a01b031660009081526013602052604090205460ff1690565b6011546001600160a01b031681565b60095481565b6001600160a01b039182166000908152601d6020908152604080832093909416825291909152205490565b6114bf61128a565b6114c857600080fd5b6001600160a01b03821660009081526013602052604090205460ff16151581151514156115105760405162461bcd60e51b8152600401611507906128ec565b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60185481565b600061154b61128a565b61155457600080fd5b60405163a9059cbb60e01b81526001600160a01b0385169063a9059cbb906115829086908690600401612597565b602060405180830381600087803b15801561159c57600080fd5b505af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d491906124f1565b90505b9392505050565b6115e661128a565b6115ef57600080fd5b600793909355600891909155600955600a55565b60065481565b61161161128a565b61161a57600080fd5b8015611659576001600160a01b03821660009081526016602052604090205460ff16156116595760405162461bcd60e51b8152600401611507906126ce565b6001600160a01b039091166000908152601660209081526040808320805494151560ff199586161790556015909152902080549091166001179055565b60035481565b6116a461128a565b6116ad57600080fd5b61145081611cd4565b60075481565b600b5481565b601b54610100900460ff1681565b6020546001600160a01b031681565b60126020526000908152604090205460ff1681565b60008261170357506000610c02565b600061170f83856129d7565b90508261171c85836129b7565b146115d75760405162461bcd60e51b815260040161150790612780565b60006115d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d4e565b6001600160a01b0383166117a15760405162461bcd60e51b81526004016115079061285c565b6001600160a01b0382166117c75760405162461bcd60e51b81526004016115079061268c565b6001600160a01b038084166000818152601d602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611822908590612918565b60405180910390a3505050565b600081848411156118535760405162461bcd60e51b815260040161150791906125f6565b50600061186084866129f6565b95945050505050565b60006001600160a01b0384166118915760405162461bcd60e51b815260040161150790612817565b6001600160a01b0383166118b75760405162461bcd60e51b815260040161150790612649565b600082116118d75760405162461bcd60e51b8152600401611507906127e7565b6001600160a01b03841660009081526012602052604090205460ff1615801561191957506001600160a01b03831660009081526012602052604090205460ff16155b6119355760405162461bcd60e51b8152600401611507906127c1565b6001600160a01b03841660009081526014602052604090205460ff1615801561197757506001600160a01b03831660009081526014602052604090205460ff16155b80156119855750601b5460ff165b156119ac57601a548211156119ac5760405162461bcd60e51b815260040161150790612731565b602054600160a01b900460ff16156119d0576119c9848484611d7c565b90506115d7565b6119d8611df1565b156119e5576119e5610fa8565b6001600160a01b0384166000908152601c6020526040902054611a089083611b37565b6001600160a01b0385166000908152601c6020526040812091909155611a2e8585611e4f565b611a385782611a43565b611a43858585611ee1565b601b54909150610100900460ff168015611a7657506001600160a01b03841660009081526015602052604090205460ff16155b15611aaf57601954611a9182611a8b87611088565b90611b79565b1115611aaf5760405162461bcd60e51b8152600401611507906128a0565b6001600160a01b0384166000908152601c6020526040902054611ad29082611b79565b6001600160a01b038086166000818152601c602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b24908590612918565b60405180910390a3506001949350505050565b60006115d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061182f565b600080611b86838561299f565b9050838110156115d75760405162461bcd60e51b8152600401611507906126fa565b600b54600090611bb9906002611739565b90506000611bd282600b54611b3790919063ffffffff16565b905047611bde8361219d565b6000611bea4783611b37565b600b54909150611bfa9086611b37565b600b55611c078382612323565b5050505050565b47611c188261219d565b6000611c244783611b37565b600c54909150611c349084611b37565b600c55600f546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561117d573d6000803e3d6000fd5b47611c7b8261219d565b6000611c874783611b37565b600d54909150611c979084611b37565b600d556010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561117d573d6000803e3d6000fd5b6001600160a01b038116611ce757600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183611d6f5760405162461bcd60e51b815260040161150791906125f6565b50600061186084866129b7565b6001600160a01b0383166000908152601c6020526040812054611d9f9083611b37565b6001600160a01b038086166000908152601c60205260408082209390935590851681522054611dce9083611b79565b6001600160a01b0384166000908152601c60205260409020555060019392505050565b600080611dfd30611088565b601854601e549192508210159060ff168015611e235750602054600160a01b900460ff16155b8015611e2c5750805b8015611e4857503360009081526016602052604090205460ff16155b9250505090565b6001600160a01b03821660009081526013602052604081205460ff1680611e8e57506001600160a01b03821660009081526013602052604090205460ff165b15611e9b57506000610c02565b6001600160a01b03831660009081526016602052604090205460ff1680611eda57506001600160a01b03821660009081526016602052604090205460ff165b9050610c02565b6001600160a01b0383166000908152601660205260408120548190819081908190819060ff1615611fd157611f2d600e54611f276003548a6116f490919063ffffffff16565b90611739565b935083600b6000828254611f41919061299f565b9091555050600e54600454611f5c9190611f27908a906116f4565b925082600c6000828254611f70919061299f565b9091555050600e54600554611f8b9190611f27908a906116f4565b915081600d6000828254611f9f919061299f565b9091555050600e54600654611fba9190611f27908a906116f4565b9050611fca82611a8b8686611b79565b94506120ad565b6001600160a01b03881660009081526016602052604090205460ff16156120ad5761200d600e54611f276007548a6116f490919063ffffffff16565b935083600b6000828254612021919061299f565b9091555050600e5460085461203c9190611f27908a906116f4565b925082600c6000828254612050919061299f565b9091555050600e5460095461206b9190611f27908a906116f4565b915081600d600082825461207f919061299f565b9091555050600e54600a5461209a9190611f27908a906116f4565b90506120aa82611a8b8686611b79565b94505b841561212557306000908152601c60205260409020546120cd9086611b79565b306000818152601c6020526040908190209290925590516001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061211c908990612918565b60405180910390a35b8015612182576017546121389082611b37565b6017556040516000906001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612179908590612918565b60405180910390a35b61219081610e278988611b37565b9998505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106121e057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092018101919091528054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561223357600080fd5b505afa158015612247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226b91906123e9565b8160018151811061228c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152546122b4913091168461177b565b60205460405163791ac94760e01b81526001600160a01b039091169063791ac947906122ed908590600090869030904290600401612921565b600060405180830381600087803b15801561230757600080fd5b505af115801561231b573d6000803e3d6000fd5b505050505050565b60205461233b9030906001600160a01b03168461177b565b60205460115460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261237b92309289926000928392169042906004016125b0565b6060604051808303818588803b15801561239457600080fd5b505af11580156123a8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c079190612525565b6000602082840312156123de578081fd5b81356115d781612a5e565b6000602082840312156123fa578081fd5b81516115d781612a5e565b60008060408385031215612417578081fd5b823561242281612a5e565b9150602083013561243281612a5e565b809150509250929050565b600080600060608486031215612451578081fd5b833561245c81612a5e565b9250602084013561246c81612a5e565b929592945050506040919091013590565b6000806040838503121561248f578182fd5b823561249a81612a5e565b9150602083013561243281612a73565b600080604083850312156124bc578182fd5b82356124c781612a5e565b946020939093013593505050565b6000602082840312156124e6578081fd5b81356115d781612a73565b600060208284031215612502578081fd5b81516115d781612a73565b60006020828403121561251e578081fd5b5035919050565b600080600060608486031215612539578283fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215612567578081fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561262257858101830151858201604001528201612606565b818111156126335783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601290820152715061697220416c726561647920536574212160701b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252602f908201527f4572726f723a205472616e7366657220616d6f756e742065786365656473207460408201526e34329036b0bc2a3c20b6b7bab73a1760891b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252600c908201526b1a5b97d89b1858dadb1a5cdd60a21b604082015260600190565b6020808252601690820152754572726f723a20496e76616c696420416d6f756e742160501b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4572726f723a205472616e7366657220416d6f756e742065786365656473205760408201526b30b63632ba102634b6b4ba1760a11b606082015260800190565b602080825260129082015271115c9c9bdc8e88139bdd0818da185b99d95960721b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156129705784516001600160a01b03168352938301939183019160010161294b565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b600082198211156129b2576129b2612a48565b500190565b6000826129d257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129f1576129f1612a48565b500290565b600082821015612a0857612a08612a48565b500390565b600281046001821680612a2157607f821691505b60208210811415612a4257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461145057600080fd5b801515811461145057600080fdfea264697066735822122043282612dfad81d1387020269ab1658ad3706a65386cea7a1efb28bcee89f96364736f6c63430008000033
Deployed Bytecode
0x6080604052600436106103fe5760003560e01c80637e504d5911610213578063cfe0e61911610123578063e71dc3f5116100ab578063f63743421161007a578063f637434214610aeb578063f832679514610b00578063f872858a14610b15578063f887ea4014610b2a578063f9f92be414610b3f57610405565b8063e71dc3f514610a81578063ea8b2c4414610a96578063f11a24d314610ab6578063f2fde38b14610acb57610405565b8063dd62ed3e116100f2578063dd62ed3e146109ec578063dde04b9514610a0c578063e2f4560514610a2c578063e5711e8b14610a41578063e653da0814610a6157610405565b8063cfe0e6191461098d578063d4399790146109a2578063d4698016146109c2578063d729715f146109d757610405565b806395d89b41116101a6578063a9059cbb11610175578063a9059cbb146108f8578063adb873bd14610918578063b62496f51461092d578063c867d60b1461094d578063cfbac92f1461096d57610405565b806395d89b41146108995780639c2e4ac6146108ae578063a457c2d7146108c3578063a8aa1b31146108e357610405565b80638c5a133d116101e25780638c5a133d1461083a5780638da5cb5b1461085a5780638f32d59b1461086f578063921369131461088457610405565b80637e504d59146107d057806383b4ac68146107f057806385261485146108055780638b42507f1461081a57610405565b806337c9be871161030e57806364f5a5bb116102a1578063728d41c911610270578063728d41c914610751578063753d02a11461077157806375f0a87414610786578063764d72bf1461079b5780637bce5a04146107bb57610405565b806364f5a5bb146106e75780636912652c1461070757806370a082311461071c578063715018a61461073c57610405565b806351bc3c85116102dd57806351bc3c851461067d57806359927044146106925780635d098b38146106a75780636140a51e146106c757610405565b806337c9be871461060657806339509351146106265780633eaaf86b146106465780634d709adf1461065b57610405565b80632563ae83116103915780632ed9aed1116103605780632ed9aed11461057a5780632f34d2821461058f578063313ce567146105af578063320d4534146105d157806333490191146105f157610405565b80632563ae8314610510578063296f0a0c146105305780632b112e49146105505780632e0f26251461056557610405565b8063180fe7c9116103cd578063180fe7c9146104a657806318160ddd146104c657806323a2f1fc146104db57806323b872dd146104f057610405565b806306fdde031461040a578063095ea7b3146104355780631525ff7d14610462578063180b0d7e1461048457610405565b3661040557005b600080fd5b34801561041657600080fd5b5061041f610b5f565b60405161042c91906125f6565b60405180910390f35b34801561044157600080fd5b506104556104503660046124aa565b610bf1565b60405161042c91906125eb565b34801561046e57600080fd5b5061048261047d3660046123cd565b610c08565b005b34801561049057600080fd5b50610499610c3b565b60405161042c9190612918565b3480156104b257600080fd5b506104826104c136600461247d565b610c41565b3480156104d257600080fd5b50610499610c7d565b3480156104e757600080fd5b50610499610c83565b3480156104fc57600080fd5b5061045561050b36600461243d565b610c89565b34801561051c57600080fd5b5061048261052b3660046124d5565b610d63565b34801561053c57600080fd5b5061048261054b3660046123cd565b610d8e565b34801561055c57600080fd5b50610499610dc1565b34801561057157600080fd5b50610499610e32565b34801561058657600080fd5b50610499610e37565b34801561059b57600080fd5b506104826105aa3660046123cd565b610e3d565b3480156105bb57600080fd5b506105c4610e8a565b60405161042c9190612991565b3480156105dd57600080fd5b506104826105ec36600461250d565b610e93565b3480156105fd57600080fd5b50610499610ea9565b34801561061257600080fd5b5061048261062136600461247d565b610eaf565b34801561063257600080fd5b506104556106413660046124aa565b610eeb565b34801561065257600080fd5b50610499610f82565b34801561066757600080fd5b50610670610f88565b60405161042c9190612583565b34801561068957600080fd5b50610482610f97565b34801561069e57600080fd5b50610670611003565b3480156106b357600080fd5b506104826106c23660046123cd565b611012565b3480156106d357600080fd5b506104826106e23660046124d5565b611045565b3480156106f357600080fd5b5061048261070236600461250d565b611069565b34801561071357600080fd5b5061045561107f565b34801561072857600080fd5b506104996107373660046123cd565b611088565b34801561074857600080fd5b506104826110a3565b34801561075d57600080fd5b5061048261076c36600461250d565b611103565b34801561077d57600080fd5b50610482611119565b34801561079257600080fd5b50610670611183565b3480156107a757600080fd5b506104826107b63660046123cd565b611192565b3480156107c757600080fd5b506104996111e0565b3480156107dc57600080fd5b506104826107eb36600461247d565b6111e6565b3480156107fc57600080fd5b50610455611222565b34801561081157600080fd5b50610455611233565b34801561082657600080fd5b506104556108353660046123cd565b61123c565b34801561084657600080fd5b50610482610855366004612552565b611251565b34801561086657600080fd5b50610670611276565b34801561087b57600080fd5b5061045561128a565b34801561089057600080fd5b506104996112a0565b3480156108a557600080fd5b5061041f6112a6565b3480156108ba57600080fd5b506104996112b5565b3480156108cf57600080fd5b506104556108de3660046124aa565b6112bb565b3480156108ef57600080fd5b506106706113a7565b34801561090457600080fd5b506104556109133660046124aa565b6113bb565b34801561092457600080fd5b506104996113e7565b34801561093957600080fd5b506104556109483660046123cd565b6113ed565b34801561095957600080fd5b506104556109683660046123cd565b611402565b34801561097957600080fd5b506104826109883660046124d5565b611417565b34801561099957600080fd5b50610499611453565b3480156109ae57600080fd5b506104556109bd3660046123cd565b611459565b3480156109ce57600080fd5b50610670611477565b3480156109e357600080fd5b50610499611486565b3480156109f857600080fd5b50610499610a07366004612405565b61148c565b348015610a1857600080fd5b50610482610a2736600461247d565b6114b7565b348015610a3857600080fd5b5061049961153b565b348015610a4d57600080fd5b50610455610a5c36600461243d565b611541565b348015610a6d57600080fd5b50610482610a7c366004612552565b6115de565b348015610a8d57600080fd5b50610499611603565b348015610aa257600080fd5b50610482610ab136600461247d565b611609565b348015610ac257600080fd5b50610499611696565b348015610ad757600080fd5b50610482610ae63660046123cd565b61169c565b348015610af757600080fd5b506104996116b6565b348015610b0c57600080fd5b506104996116bc565b348015610b2157600080fd5b506104556116c2565b348015610b3657600080fd5b506106706116d0565b348015610b4b57600080fd5b50610455610b5a3660046123cd565b6116df565b606060008054610b6e90612a0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9a90612a0d565b8015610be75780601f10610bbc57610100808354040283529160200191610be7565b820191906000526020600020905b815481529060010190602001808311610bca57829003601f168201915b5050505050905090565b6000610bfe33848461177b565b5060015b92915050565b610c1061128a565b610c1957600080fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b600e5481565b610c4961128a565b610c5257600080fd5b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b60175490565b601a5481565b6000826001600160a01b038116610c9f57600080fd5b6001600160a01b0385166000908152601d6020908152604080832033845290915290205460001914610d4c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601d82528381203382529091529190912054610d2791859061182f565b6001600160a01b0386166000908152601d602090815260408083203384529091529020555b610d57858585611869565b50600195945050505050565b610d6b61128a565b610d7457600080fd5b601b80549115156101000261ff0019909216919091179055565b610d9661128a565b610d9f57600080fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b601c6020527fb9c6de81004e18dedadca3e5eabaab449ca91dff6f58efc9461da635fe77f8495461dead60009081527fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc546017549192610e2d929091610e279190611b37565b90611b37565b905090565b601281565b600d5481565b610e4561128a565b610e4e57600080fd5b601f80546001600160a01b0319166001600160a01b03929092169182179055601e8054610100600160a81b031916610100909202919091179055565b60025460ff1690565b610e9b61128a565b610ea457600080fd5b601855565b60195481565b610eb761128a565b610ec057600080fd5b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b336000908152601d602090815260408083206001600160a01b0386168452909152812054610f199083611b79565b336000818152601d602090815260408083206001600160a01b038916808552925291829020849055905190927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591610f719190612918565b60405180910390a350600192915050565b60175481565b601f546001600160a01b031681565b610f9f61128a565b610fa857600080fd5b6020805460ff60a01b1916600160a01b179055600b5415610fce57610fce600b54611ba8565b600c5415610fe157610fe1600c54611c0e565b600d5415610ff457610ff4600d54611c71565b6020805460ff60a01b19169055565b6010546001600160a01b031681565b61101a61128a565b61102357600080fd5b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b61104d61128a565b61105657600080fd5b601b805460ff1916911515919091179055565b61107161128a565b61107a57600080fd5b601a55565b601e5460ff1681565b6001600160a01b03166000908152601c602052604090205490565b6110ab61128a565b6110b457600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b61110b61128a565b61111457600080fd5b601955565b601e60019054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b50505050565b600f546001600160a01b031681565b61119a61128a565b6111a357600080fd5b60405147906001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111db573d6000803e3d6000fd5b505050565b60045481565b6111ee61128a565b6111f757600080fd5b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b602054600160a01b900460ff161590565b601b5460ff1681565b60146020526000908152604090205460ff1681565b61125961128a565b61126257600080fd5b600393909355600491909155600555600655565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60085481565b606060018054610b6e90612a0d565b60055481565b336000908152601d602090815260408083206001600160a01b038616845290915281205480831061130f57336000908152601d602090815260408083206001600160a01b038816845290915281205561133e565b6113198184611b37565b336000908152601d602090815260408083206001600160a01b03891684529091529020555b336000818152601d602090815260408083206001600160a01b0389168085529252918290205491519092917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916113959190612918565b60405180910390a35060019392505050565b601e5461010090046001600160a01b031681565b6000826001600160a01b0381166113d157600080fd5b6113dc338585611869565b506001949350505050565b600a5481565b60166020526000908152604090205460ff1681565b60156020526000908152604090205460ff1681565b61141f61128a565b61142857600080fd5b801561144157601e805460ff1916821515179055611450565b601e805460ff19168215151790555b50565b600c5481565b6001600160a01b031660009081526013602052604090205460ff1690565b6011546001600160a01b031681565b60095481565b6001600160a01b039182166000908152601d6020908152604080832093909416825291909152205490565b6114bf61128a565b6114c857600080fd5b6001600160a01b03821660009081526013602052604090205460ff16151581151514156115105760405162461bcd60e51b8152600401611507906128ec565b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b60185481565b600061154b61128a565b61155457600080fd5b60405163a9059cbb60e01b81526001600160a01b0385169063a9059cbb906115829086908690600401612597565b602060405180830381600087803b15801561159c57600080fd5b505af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d491906124f1565b90505b9392505050565b6115e661128a565b6115ef57600080fd5b600793909355600891909155600955600a55565b60065481565b61161161128a565b61161a57600080fd5b8015611659576001600160a01b03821660009081526016602052604090205460ff16156116595760405162461bcd60e51b8152600401611507906126ce565b6001600160a01b039091166000908152601660209081526040808320805494151560ff199586161790556015909152902080549091166001179055565b60035481565b6116a461128a565b6116ad57600080fd5b61145081611cd4565b60075481565b600b5481565b601b54610100900460ff1681565b6020546001600160a01b031681565b60126020526000908152604090205460ff1681565b60008261170357506000610c02565b600061170f83856129d7565b90508261171c85836129b7565b146115d75760405162461bcd60e51b815260040161150790612780565b60006115d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d4e565b6001600160a01b0383166117a15760405162461bcd60e51b81526004016115079061285c565b6001600160a01b0382166117c75760405162461bcd60e51b81526004016115079061268c565b6001600160a01b038084166000818152601d602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611822908590612918565b60405180910390a3505050565b600081848411156118535760405162461bcd60e51b815260040161150791906125f6565b50600061186084866129f6565b95945050505050565b60006001600160a01b0384166118915760405162461bcd60e51b815260040161150790612817565b6001600160a01b0383166118b75760405162461bcd60e51b815260040161150790612649565b600082116118d75760405162461bcd60e51b8152600401611507906127e7565b6001600160a01b03841660009081526012602052604090205460ff1615801561191957506001600160a01b03831660009081526012602052604090205460ff16155b6119355760405162461bcd60e51b8152600401611507906127c1565b6001600160a01b03841660009081526014602052604090205460ff1615801561197757506001600160a01b03831660009081526014602052604090205460ff16155b80156119855750601b5460ff165b156119ac57601a548211156119ac5760405162461bcd60e51b815260040161150790612731565b602054600160a01b900460ff16156119d0576119c9848484611d7c565b90506115d7565b6119d8611df1565b156119e5576119e5610fa8565b6001600160a01b0384166000908152601c6020526040902054611a089083611b37565b6001600160a01b0385166000908152601c6020526040812091909155611a2e8585611e4f565b611a385782611a43565b611a43858585611ee1565b601b54909150610100900460ff168015611a7657506001600160a01b03841660009081526015602052604090205460ff16155b15611aaf57601954611a9182611a8b87611088565b90611b79565b1115611aaf5760405162461bcd60e51b8152600401611507906128a0565b6001600160a01b0384166000908152601c6020526040902054611ad29082611b79565b6001600160a01b038086166000818152601c602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b24908590612918565b60405180910390a3506001949350505050565b60006115d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061182f565b600080611b86838561299f565b9050838110156115d75760405162461bcd60e51b8152600401611507906126fa565b600b54600090611bb9906002611739565b90506000611bd282600b54611b3790919063ffffffff16565b905047611bde8361219d565b6000611bea4783611b37565b600b54909150611bfa9086611b37565b600b55611c078382612323565b5050505050565b47611c188261219d565b6000611c244783611b37565b600c54909150611c349084611b37565b600c55600f546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561117d573d6000803e3d6000fd5b47611c7b8261219d565b6000611c874783611b37565b600d54909150611c979084611b37565b600d556010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561117d573d6000803e3d6000fd5b6001600160a01b038116611ce757600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183611d6f5760405162461bcd60e51b815260040161150791906125f6565b50600061186084866129b7565b6001600160a01b0383166000908152601c6020526040812054611d9f9083611b37565b6001600160a01b038086166000908152601c60205260408082209390935590851681522054611dce9083611b79565b6001600160a01b0384166000908152601c60205260409020555060019392505050565b600080611dfd30611088565b601854601e549192508210159060ff168015611e235750602054600160a01b900460ff16155b8015611e2c5750805b8015611e4857503360009081526016602052604090205460ff16155b9250505090565b6001600160a01b03821660009081526013602052604081205460ff1680611e8e57506001600160a01b03821660009081526013602052604090205460ff165b15611e9b57506000610c02565b6001600160a01b03831660009081526016602052604090205460ff1680611eda57506001600160a01b03821660009081526016602052604090205460ff165b9050610c02565b6001600160a01b0383166000908152601660205260408120548190819081908190819060ff1615611fd157611f2d600e54611f276003548a6116f490919063ffffffff16565b90611739565b935083600b6000828254611f41919061299f565b9091555050600e54600454611f5c9190611f27908a906116f4565b925082600c6000828254611f70919061299f565b9091555050600e54600554611f8b9190611f27908a906116f4565b915081600d6000828254611f9f919061299f565b9091555050600e54600654611fba9190611f27908a906116f4565b9050611fca82611a8b8686611b79565b94506120ad565b6001600160a01b03881660009081526016602052604090205460ff16156120ad5761200d600e54611f276007548a6116f490919063ffffffff16565b935083600b6000828254612021919061299f565b9091555050600e5460085461203c9190611f27908a906116f4565b925082600c6000828254612050919061299f565b9091555050600e5460095461206b9190611f27908a906116f4565b915081600d600082825461207f919061299f565b9091555050600e54600a5461209a9190611f27908a906116f4565b90506120aa82611a8b8686611b79565b94505b841561212557306000908152601c60205260409020546120cd9086611b79565b306000818152601c6020526040908190209290925590516001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061211c908990612918565b60405180910390a35b8015612182576017546121389082611b37565b6017556040516000906001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612179908590612918565b60405180910390a35b61219081610e278988611b37565b9998505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106121e057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092018101919091528054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561223357600080fd5b505afa158015612247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226b91906123e9565b8160018151811061228c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152546122b4913091168461177b565b60205460405163791ac94760e01b81526001600160a01b039091169063791ac947906122ed908590600090869030904290600401612921565b600060405180830381600087803b15801561230757600080fd5b505af115801561231b573d6000803e3d6000fd5b505050505050565b60205461233b9030906001600160a01b03168461177b565b60205460115460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261237b92309289926000928392169042906004016125b0565b6060604051808303818588803b15801561239457600080fd5b505af11580156123a8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c079190612525565b6000602082840312156123de578081fd5b81356115d781612a5e565b6000602082840312156123fa578081fd5b81516115d781612a5e565b60008060408385031215612417578081fd5b823561242281612a5e565b9150602083013561243281612a5e565b809150509250929050565b600080600060608486031215612451578081fd5b833561245c81612a5e565b9250602084013561246c81612a5e565b929592945050506040919091013590565b6000806040838503121561248f578182fd5b823561249a81612a5e565b9150602083013561243281612a73565b600080604083850312156124bc578182fd5b82356124c781612a5e565b946020939093013593505050565b6000602082840312156124e6578081fd5b81356115d781612a73565b600060208284031215612502578081fd5b81516115d781612a73565b60006020828403121561251e578081fd5b5035919050565b600080600060608486031215612539578283fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215612567578081fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561262257858101830151858201604001528201612606565b818111156126335783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601290820152715061697220416c726561647920536574212160701b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252602f908201527f4572726f723a205472616e7366657220616d6f756e742065786365656473207460408201526e34329036b0bc2a3c20b6b7bab73a1760891b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252600c908201526b1a5b97d89b1858dadb1a5cdd60a21b604082015260600190565b6020808252601690820152754572726f723a20496e76616c696420416d6f756e742160501b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4572726f723a205472616e7366657220416d6f756e742065786365656473205760408201526b30b63632ba102634b6b4ba1760a11b606082015260800190565b602080825260129082015271115c9c9bdc8e88139bdd0818da185b99d95960721b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156129705784516001600160a01b03168352938301939183019160010161294b565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b600082198211156129b2576129b2612a48565b500190565b6000826129d257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156129f1576129f1612a48565b500290565b600082821015612a0857612a08612a48565b500390565b600281046001821680612a2157607f821691505b60208210811415612a4257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461145057600080fd5b801515811461145057600080fdfea264697066735822122043282612dfad81d1387020269ab1658ad3706a65386cea7a1efb28bcee89f96364736f6c63430008000033
Deployed Bytecode Sourcemap
16691:16517:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16415:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26678:189;;;;;;;;;;-1:-1:-1;26678:189:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;28780:92::-;;;;;;;;;;-1:-1:-1;28780:92:0;;;;;:::i;:::-;;:::i;:::-;;17395:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;30216:120::-;;;;;;;;;;-1:-1:-1;30216:120:0;;;;;:::i;:::-;;:::i;30734:102::-;;;;;;;;;;;;;:::i;18412:68::-;;;;;;;;;;;;;:::i;20170:447::-;;;;;;;;;;-1:-1:-1;20170:447:0;;;;;:::i;:::-;;:::i;27511:110::-;;;;;;;;;;-1:-1:-1;27511:110:0;;;;;:::i;:::-;;:::i;28880:112::-;;;;;;;;;;-1:-1:-1;28880:112:0;;;;;:::i;:::-;;:::i;29207:167::-;;;;;;;;;;;;;:::i;18121:37::-;;;;;;;;;;;;;:::i;17320:28::-;;;;;;;;;;;;;:::i;29558:134::-;;;;;;;;;;-1:-1:-1;29558:134:0;;;;;:::i;:::-;;:::i;16601:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;30618:104::-;;;;;;;;;;-1:-1:-1;30618:104:0;;;;;:::i;:::-;;:::i;18327:72::-;;;;;;;;;;;;;:::i;30480:130::-;;;;;;;;;;-1:-1:-1;30480:130:0;;;;;:::i;:::-;;:::i;26282:388::-;;;;;;;;;;-1:-1:-1;26282:388:0;;;;;:::i;:::-;;:::i;18167:61::-;;;;;;;;;;;;;:::i;18792:32::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;23960:265::-;;;;;;;;;;;;;:::i;17531:79::-;;;;;;;;;;;;;:::i;28660:112::-;;;;;;;;;;-1:-1:-1;28660:112:0;;;;;:::i;:::-;;:::i;27391:::-;;;;;;;;;;-1:-1:-1;27391:112:0;;;;;:::i;:::-;;:::i;29107:92::-;;;;;;;;;;-1:-1:-1;29107:92:0;;;;;:::i;:::-;;:::i;18717:36::-;;;;;;;;;;;;;:::i;30847:119::-;;;;;;;;;;-1:-1:-1;30847:119:0;;;;;:::i;:::-;;:::i;15626:126::-;;;;;;;;;;;;;:::i;29000:99::-;;;;;;;;;;-1:-1:-1;29000:99:0;;;;;:::i;:::-;;:::i;29475:75::-;;;;;;;;;;;;;:::i;17440:84::-;;;;;;;;;;;;;:::i;28282:170::-;;;;;;;;;;-1:-1:-1;28282:170:0;;;;;:::i;:::-;;:::i;16960:35::-;;;;;;;;;;;;;:::i;30344:128::-;;;;;;;;;;-1:-1:-1;30344:128:0;;;;;:::i;:::-;;:::i;29382:85::-;;;;;;;;;;;;;:::i;18495:41::-;;;;;;;;;;;;;:::i;17940:48::-;;;;;;;;;;-1:-1:-1;17940:48:0;;;;;:::i;:::-;;:::i;27629:319::-;;;;;;;;;;-1:-1:-1;27629:319:0;;;;;:::i;:::-;;:::i;15361:79::-;;;;;;;;;;;;;:::i;15526:92::-;;;;;;;;;;;;;:::i;17120:36::-;;;;;;;;;;;;;:::i;16506:87::-;;;;;;;;;;;;;:::i;17002:30::-;;;;;;;;;;;;;:::i;25702:572::-;;;;;;;;;;-1:-1:-1;25702:572:0;;;;;:::i;:::-;;:::i;18766:19::-;;;;;;;;;;;;;:::i;19947:215::-;;;;;;;;;;-1:-1:-1;19947:215:0;;;;;:::i;:::-;;:::i;17201:30::-;;;;;;;;;;;;;:::i;18054:58::-;;;;;;;;;;-1:-1:-1;18054:58:0;;;;;:::i;:::-;;:::i;17995:52::-;;;;;;;;;;-1:-1:-1;17995:52:0;;;;;:::i;:::-;;:::i;25300:198::-;;;;;;;;;;-1:-1:-1;25300:198:0;;;;;:::i;:::-;;:::i;17280:33::-;;;;;;;;;;;;;:::i;27263:120::-;;;;;;;;;;-1:-1:-1;27263:120:0;;;;;:::i;:::-;;:::i;17617:30::-;;;;;;;;;;;;;:::i;17163:31::-;;;;;;;;;;;;;:::i;25506:188::-;;;;;;;;;;-1:-1:-1;25506:188:0;;;;;:::i;:::-;;:::i;30002:206::-;;;;;;;;;;-1:-1:-1;30002:206:0;;;;;:::i;:::-;;:::i;18235:75::-;;;;;;;;;;;;;:::i;28460:192::-;;;;;;;;;;-1:-1:-1;28460:192:0;;;;;:::i;:::-;;:::i;27956:318::-;;;;;;;;;;-1:-1:-1;27956:318:0;;;;;:::i;:::-;;:::i;17039:29::-;;;;;;;;;;;;;:::i;29700:294::-;;;;;;;;;;-1:-1:-1;29700:294:0;;;;;:::i;:::-;;:::i;16918:35::-;;;;;;;;;;;;;:::i;15760:109::-;;;;;;;;;;-1:-1:-1;15760:109:0;;;;;:::i;:::-;;:::i;17077:36::-;;;;;;;;;;;;;:::i;17240:33::-;;;;;;;;;;;;;:::i;18543:35::-;;;;;;;;;;;;;:::i;18831:28::-;;;;;;;;;;;;;:::i;17832:41::-;;;;;;;;;;-1:-1:-1;17832:41:0;;;;;:::i;:::-;;:::i;16415:83::-;16452:13;16485:5;16478:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16415:83;:::o;26678:189::-;26781:4;26803:34;26812:10;26823:7;26831:5;26803:8;:34::i;:::-;-1:-1:-1;26855:4:0;26678:189;;;;;:::o;28780:92::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;28846:10:::1;:18:::0;;-1:-1:-1;;;;;;28846:18:0::1;-1:-1:-1::0;;;;;28846:18:0;;;::::1;::::0;;;::::1;::::0;;28780:92::o;17395:36::-;;;;:::o;30216:120::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;-1:-1:-1;;;;;30296:22:0;;;::::1;;::::0;;;:15:::1;:22;::::0;;;;:32;;-1:-1:-1;;30296:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30216:120::o;30734:102::-;30816:12;;30734:102;:::o;18412:68::-;;;;:::o;20170:447::-;20313:4;20300:2;-1:-1:-1;;;;;16871:18:0;;16863:27;;;;;;-1:-1:-1;;;;;20344:17:0;::::1;20386:1;20344:17:::0;;;:11:::1;:17;::::0;;;;;;;20362:10:::1;20344:29:::0;;;;;;;;-1:-1:-1;;20344:44:0::1;20340:207;;20437:98;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;20437:98:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;20437:17:0;::::1;-1:-1:-1::0;20437:17:0;;;:11:::1;:17:::0;;;;;20473:10:::1;20437:61:::0;;;;;;;;;;:98:::1;::::0;20503:5;;20437:65:::1;:98::i;:::-;-1:-1:-1::0;;;;;20405:17:0;::::1;;::::0;;;:11:::1;:17;::::0;;;;;;;20423:10:::1;20405:29:::0;;;;;;;:130;20340:207:::1;20557:30;20571:4;20577:2;20581:5;20557:13;:30::i;:::-;-1:-1:-1::0;20605:4:0::1;::::0;20170:447;-1:-1:-1;;;;;20170:447:0:o;27511:110::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;27587:16:::1;:26:::0;;;::::1;;;;-1:-1:-1::0;;27587:26:0;;::::1;::::0;;;::::1;::::0;;27511:110::o;28880:112::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;28956:15:::1;:28:::0;;-1:-1:-1;;;;;;28956:28:0::1;-1:-1:-1::0;;;;;28956:28:0;;;::::1;::::0;;;::::1;::::0;;28880:112::o;29207:167::-;29344:9;:21;;;;17694:42;29260:7;29317:21;;;;;29300:12;;29260:7;;29300:66;;29344:21;;29300:39;;:12;:16;:39::i;:::-;:43;;:66::i;:::-;29280:86;;29207:167;:::o;18121:37::-;18156:2;18121:37;:::o;17320:28::-;;;;:::o;29558:134::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;29621:12:::1;:37:::0;;-1:-1:-1;;;;;;29621:37:0::1;-1:-1:-1::0;;;;;29621:37:0;;;::::1;::::0;;::::1;::::0;;29669:4:::1;:15:::0;;-1:-1:-1;;;;;;29669:15:0::1;29621:37;29669:15:::0;;::::1;::::0;;;::::1;::::0;;29558:134::o;16601:83::-;16667:9;;;;16601:83;:::o;30618:104::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;30687::::1;:27:::0;30618:104::o;18327:72::-;;;;:::o;30480:130::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;-1:-1:-1;;;;;30568:22:0;;;::::1;;::::0;;;:9:::1;:22;::::0;;;;:30;;-1:-1:-1;;30568:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30480:130::o;26282:388::-;26451:10;26382:4;26439:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26439:56:0;;;;;;;;;;:72;;26500:10;26439:60;:72::i;:::-;26416:10;26404:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26404:32:0;;;;;;;;;;;:107;;;26527:113;;26404:32;;26527:113;;;;26404:107;26527:113;:::i;:::-;;;;;;;;-1:-1:-1;26658:4:0;26282:388;;;;:::o;18167:61::-;;;;:::o;18792:32::-;;;-1:-1:-1;;;;;18792:32:0;;:::o;23960:265::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;18927:6:::1;:13:::0;;-1:-1:-1;;;;18927:13:0::1;-1:-1:-1::0;;;18927:13:0::1;::::0;;24023:18:::2;::::0;:22;24020:63:::2;;24047:36;24064:18;;24047:16;:36::i;:::-;24098:18;::::0;:22;24095:63:::2;;24122:36;24139:18;;24122:16;:36::i;:::-;24172:13;::::0;:17;24169:48:::2;;24191:26;24203:13;;24191:11;:26::i;:::-;18963:6:::1;:14:::0;;-1:-1:-1;;;;18963:14:0::1;::::0;;23960:265::o;17531:79::-;;;-1:-1:-1;;;;;17531:79:0;;:::o;28660:112::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;28736:15:::1;:28:::0;;-1:-1:-1;;;;;;28736:28:0::1;-1:-1:-1::0;;;;;28736:28:0;;;::::1;::::0;;;::::1;::::0;;28660:112::o;27391:::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;27463:22:::1;:32:::0;;-1:-1:-1;;27463:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27391:112::o;29107:92::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;29171:10:::1;:19:::0;29107:92::o;18717:36::-;;;;;;:::o;30847:119::-;-1:-1:-1;;;;;30940:18:0;30913:7;30940:18;;;:9;:18;;;;;;;30847:119::o;15626:126::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;15707:6:::1;::::0;15688:26:::1;::::0;15707:6:::1;::::0;;::::1;-1:-1:-1::0;;;;;15707:6:0::1;::::0;15688:26:::1;::::0;;;::::1;15725:6;:19:::0;;-1:-1:-1;;;;;;15725:19:0::1;::::0;;15626:126::o;29000:99::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;29068:14:::1;:23:::0;29000:99::o;29475:75::-;29530:4;;;;;;;;;-1:-1:-1;;;;;29530:4:0;-1:-1:-1;;;;;29517:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29475:75::o;17440:84::-;;;-1:-1:-1;;;;;17440:84:0;;:::o;28282:170::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;28408:36:::1;::::0;28376:21:::1;::::0;-1:-1:-1;;;;;28408:27:0;::::1;::::0;:36;::::1;;;::::0;28376:21;;28358:15:::1;28408:36:::0;28358:15;28408:36;28376:21;28408:27;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15509:1;28282:170:::0;:::o;16960:35::-;;;;:::o;30344:128::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;-1:-1:-1;;;;;30428:26:0;;;::::1;;::::0;;;:19:::1;:26;::::0;;;;:36;;-1:-1:-1;;30428:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30344:128::o;29382:85::-;29453:6;;-1:-1:-1;;;29453:6:0;;;;29452:7;;29382:85::o;18495:41::-;;;;;;:::o;17940:48::-;;;;;;;;;;;;;;;:::o;27629:319::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;27810:15:::1;:24:::0;;;;27845:15:::1;:31:::0;;;;27887:10:::1;:21:::0;27919:10:::1;:21:::0;27629:319::o;15361:79::-;15426:6;;;;;-1:-1:-1;;;;;15426:6:0;;15361:79::o;15526:92::-;15604:6;;;;;-1:-1:-1;;;;;15604:6:0;15590:10;:20;;15526:92::o;17120:36::-;;;;:::o;16506:87::-;16545:13;16578:7;16571:14;;;;;:::i;17002:30::-;;;;:::o;25702:572::-;25860:10;25807:4;25848:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;25848:32:0;;;;;;;;;;25895:27;;;25891:225;;25951:10;25974:1;25939:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;25939:32:0;;;;;;;;;:36;25891:225;;;26043:61;:8;26074:15;26043:12;:61::i;:::-;26020:10;26008:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26008:32:0;;;;;;;;;:96;25891:225;26154:10;26201:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26131:113:0;;26201:32;;;;;;;;;;26131:113;;;;26154:10;26131:113;;;;26201:32;26131:113;:::i;:::-;;;;;;;;-1:-1:-1;26262:4:0;;25702:572;-1:-1:-1;;;25702:572:0:o;18766:19::-;;;;;;-1:-1:-1;;;;;18766:19:0;;:::o;19947:215::-;20074:4;20052:2;-1:-1:-1;;;;;16871:18:0;;16863:27;;;;;;20096:36:::1;20110:10;20122:2;20126:5;20096:13;:36::i;:::-;-1:-1:-1::0;20150:4:0::1;::::0;19947:215;-1:-1:-1;;;;19947:215:0:o;17201:30::-;;;;:::o;18054:58::-;;;;;;;;;;;;;;;:::o;17995:52::-;;;;;;;;;;;;;;;:::o;25300:198::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;25374:5:::1;25371:120;;;25396:17;:25:::0;;-1:-1:-1;;25396:25:0::1;::::0;::::1;;;::::0;;25371:120:::1;;;25454:17;:25:::0;;-1:-1:-1;;25454:25:0::1;::::0;::::1;;;::::0;;25371:120:::1;25300:198:::0;:::o;17280:33::-;;;;:::o;27263:120::-;-1:-1:-1;;;;;27349:26:0;27325:4;27349:26;;;:19;:26;;;;;;;;;27263:120::o;17617:30::-;;;-1:-1:-1;;;;;17617:30:0;;:::o;17163:31::-;;;;:::o;25506:188::-;-1:-1:-1;;;;;25658:19:0;;;25626:7;25658:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;25506:188::o;30002:206::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;-1:-1:-1;;;;;30093:26:0;::::1;;::::0;;;:19:::1;:26;::::0;;;;;::::1;;:37;;::::0;::::1;;;;30085:68;;;;-1:-1:-1::0;;;30085:68:0::1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;;;;;30164:26:0;;;::::1;;::::0;;;:19:::1;:26;::::0;;;;:36;;-1:-1:-1;;30164:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30002:206::o;18235:75::-;;;;:::o;28460:192::-;28565:12;15488:9;:7;:9::i;:::-;15480:18;;;;;;28596:48:::1;::::0;-1:-1:-1;;;28596:48:0;;-1:-1:-1;;;;;28596:29:0;::::1;::::0;::::1;::::0;:48:::1;::::0;28626:9;;28637:6;;28596:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28589:55;;15509:1;28460:192:::0;;;;;:::o;27956:318::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;28132:16:::1;:25:::0;;;;28168:16:::1;:32:::0;;;;28211:11:::1;:22:::0;28244:11:::1;:22:::0;27956:318::o;17039:29::-;;;;:::o;29700:294::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;29791:7:::1;29788:102;;;-1:-1:-1::0;;;;;29824:32:0;::::1;;::::0;;;:25:::1;:32;::::0;;;;;::::1;;29823:33;29815:63;;;;-1:-1:-1::0;;;29815:63:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29900:32:0;;::::1;;::::0;;;:25:::1;:32;::::0;;;;;;;:42;;;::::1;;-1:-1:-1::0;;29900:42:0;;::::1;;::::0;;29953:19:::1;:26:::0;;;;;:33;;;;::::1;29900:42:::0;29953:33:::1;::::0;;29700:294::o;16918:35::-;;;;:::o;15760:109::-;15488:9;:7;:9::i;:::-;15480:18;;;;;;15833:28:::1;15852:8;15833:18;:28::i;17077:36::-:0;;;;:::o;17240:33::-;;;;:::o;18543:35::-;;;;;;;;;:::o;18831:28::-;;;-1:-1:-1;;;;;18831:28:0;;:::o;17832:41::-;;;;;;;;;;;;;;;:::o;6211:250::-;6269:7;6293:6;6289:47;;-1:-1:-1;6323:1:0;6316:8;;6289:47;6348:9;6360:5;6364:1;6360;:5;:::i;:::-;6348:17;-1:-1:-1;6393:1:0;6384:5;6388:1;6348:17;6384:5;:::i;:::-;:10;6376:56;;;;-1:-1:-1;;;6376:56:0;;;;;;;:::i;6469:132::-;6527:7;6554:39;6558:1;6561;6554:39;;;;;;;;;;;;;;;;;:3;:39::i;26875:380::-;-1:-1:-1;;;;;27011:19:0;;27003:68;;;;-1:-1:-1;;;27003:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27090:21:0;;27082:68;;;;-1:-1:-1;;;27082:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27163:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;27215:32;;;;;27193:6;;27215:32;:::i;:::-;;;;;;;;26875:380;;;:::o;5977:226::-;6097:7;6133:12;6125:6;;;;6117:29;;;;-1:-1:-1;;;6117:29:0;;;;;;;;:::i;:::-;-1:-1:-1;6157:9:0;6169:5;6173:1;6169;:5;:::i;:::-;6157:17;5977:226;-1:-1:-1;;;;;5977:226:0:o;20895:1398::-;21021:4;-1:-1:-1;;;;;21046:20:0;;21038:70;;;;-1:-1:-1;;;21038:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21127:23:0;;21119:71;;;;-1:-1:-1;;;21119:71:0;;;;;;;:::i;:::-;21218:1;21209:6;:10;21201:44;;;;-1:-1:-1;;;21201:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21265:17:0;;;;;;:9;:17;;;;;;;;21264:18;:43;;;;-1:-1:-1;;;;;;21287:20:0;;;;;;:9;:20;;;;;;;;21286:21;21264:43;21256:68;;;;-1:-1:-1;;;21256:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21341:23:0;;;;;;:15;:23;;;;;;;;21340:24;:55;;;;-1:-1:-1;;;;;;21369:26:0;;;;;;:15;:26;;;;;;;;21368:27;21340:55;:81;;;;-1:-1:-1;21399:22:0;;;;21340:81;21337:193;;;21456:10;;21446:6;:20;;21438:80;;;;-1:-1:-1;;;21438:80:0;;;;;;;:::i;:::-;21546:6;;-1:-1:-1;;;21546:6:0;;;;21542:87;;;21576:41;21591:6;21599:9;21610:6;21576:14;:41::i;:::-;21569:48;;;;21542:87;21645:20;:18;:20::i;:::-;21641:67;;;21682:14;:12;:14::i;:::-;-1:-1:-1;;;;;21740:17:0;;;;;;:9;:17;;;;;;:29;;21762:6;21740:21;:29::i;:::-;-1:-1:-1;;;;;21720:17:0;;;;;;:9;:17;;;;;:49;;;;21815:32;21730:6;21837:9;21815:13;:32::i;:::-;:104;;21913:6;21815:104;;;21863:34;21871:6;21879:9;21890:6;21863:7;:34::i;:::-;21935:16;;21790:129;;-1:-1:-1;21935:16:0;;;;;:51;;;;-1:-1:-1;;;;;;21956:30:0;;;;;;:19;:30;;;;;;;;21955:31;21935:51;21932:197;;;22055:14;;22011:40;22036:14;22011:20;22021:9;22011;:20::i;:::-;:24;;:40::i;:::-;:58;;22003:114;;;;-1:-1:-1;;;22003:114:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22164:20:0;;;;;;:9;:20;;;;;;:40;;22189:14;22164:24;:40::i;:::-;-1:-1:-1;;;;;22141:20:0;;;;;;;:9;:20;;;;;;;:63;;;;22222:41;;;;;;;;;;22248:14;;22222:41;:::i;:::-;;;;;;;;-1:-1:-1;22281:4:0;;20895:1398;-1:-1:-1;;;;20895:1398:0:o;5833:136::-;5891:7;5918:43;5922:1;5925;5918:43;;;;;;;;;;;;;;;;;:3;:43::i;5644:181::-;5702:7;;5734:5;5738:1;5734;:5;:::i;:::-;5722:17;;5763:1;5758;:6;;5750:46;;;;-1:-1:-1;;;5750:46:0;;;;;;;:::i;31652:431::-;31723:18;;31711:9;;31723:25;;31746:1;31723:22;:25::i;:::-;31711:37;;31759:14;31776:28;31799:4;31776:18;;:22;;:28;;;;:::i;:::-;31759:45;-1:-1:-1;31836:21:0;31868:22;31885:4;31868:16;:22::i;:::-;31901:19;31923:40;:21;31949:13;31923:25;:40::i;:::-;31995:18;;31901:62;;-1:-1:-1;31995:31:0;;32018:7;31995:22;:31::i;:::-;31974:18;:52;32037:38;32050:9;32060:14;32037:12;:38::i;:::-;31652:431;;;;;:::o;30974:341::-;31054:21;31086:25;31103:7;31086:16;:25::i;:::-;31122:19;31144:40;:21;31170:13;31144:25;:40::i;:::-;31216:18;;31122:62;;-1:-1:-1;31216:31:0;;31239:7;31216:22;:31::i;:::-;31195:18;:52;31266:15;;31258:49;;-1:-1:-1;;;;;31266:15:0;;;;31258:49;;;;;31292:14;;31266:15;31258:49;31266:15;31258:49;31292:14;31266:15;31258:49;;;;;;;;;;;;;;;;;;;31323:321;31398:21;31430:25;31447:7;31430:16;:25::i;:::-;31466:19;31488:40;:21;31514:13;31488:25;:40::i;:::-;31555:13;;31466:62;;-1:-1:-1;31555:26:0;;31573:7;31555:17;:26::i;:::-;31539:13;:42;31600:10;;31592:44;;-1:-1:-1;;;;;31600:10:0;;;;31592:44;;;;;31621:14;;31600:10;31592:44;31600:10;31592:44;31621:14;31600:10;31592:44;;;;;;;;;;;;;;;;;;;15877:187;-1:-1:-1;;;;;15951:22:0;;15943:31;;;;;;16011:6;;15990:38;;-1:-1:-1;;;;;15990:38:0;;;;16011:6;;;;;15990:38;;;;;16039:6;:17;;-1:-1:-1;;;;;16039:17:0;;;;;-1:-1:-1;;;;;;16039:17:0;;;;;;;;;15877:187::o;6609:225::-;6729:7;6764:12;6757:5;6749:28;;;;-1:-1:-1;;;6749:28:0;;;;;;;;:::i;:::-;-1:-1:-1;6788:9:0;6800:5;6804:1;6800;:5;:::i;20625:262::-;-1:-1:-1;;;;;20778:15:0;;20743:4;20778:15;;;:9;:15;;;;;;:27;;20798:6;20778:19;:27::i;:::-;-1:-1:-1;;;;;20760:15:0;;;;;;;:9;:15;;;;;;:45;;;;20832:13;;;;;;;:25;;20850:6;20832:17;:25::i;:::-;-1:-1:-1;;;;;20816:13:0;;;;;;:9;:13;;;;;:41;-1:-1:-1;20875:4:0;20625:262;;;;;:::o;24934:358::-;24987:4;25006:28;25037:24;25055:4;25037:9;:24::i;:::-;25111:18;;25162:17;;25006:55;;-1:-1:-1;25087:42:0;;;;25162:17;;:42;;;;-1:-1:-1;25198:6:0;;-1:-1:-1;;;25198:6:0;;;;25197:7;25162:42;:67;;;;;25222:7;25162:67;:122;;;;-1:-1:-1;25273:10:0;25247:37;;;;:25;:37;;;;;;;;25246:38;25162:122;25142:142;;;;24934:358;:::o;24581:345::-;-1:-1:-1;;;;;24705:25:0;;24680:4;24705:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;24734:23:0;;;;;;:19;:23;;;;;;;;24705:52;24702:217;;;-1:-1:-1;24780:5:0;24773:12;;24702:217;-1:-1:-1;;;;;24842:31:0;;;;;;:25;:31;;;;;;;;;:64;;-1:-1:-1;;;;;;24877:29:0;;;;;;:25;:29;;;;;;;;24842:64;24834:73;;;;22301:1651;-1:-1:-1;;;;;22565:33:0;;22422:7;22565:33;;;:25;:33;;;;;;22422:7;;;;;;;;;;22565:33;;22562:1004;;;22623:47;22655:14;;22623:27;22634:15;;22623:6;:10;;:27;;;;:::i;:::-;:31;;:47::i;:::-;22616:54;;22707:4;22685:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;22765:14:0;;22744:15;;22733:47;;22765:14;22733:27;;:6;;:10;:27::i;:47::-;22726:54;;22817:4;22795:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;22870:14:0;;22854:10;;22843:42;;22870:14;22843:22;;:6;;:10;:22::i;:42::-;22836:49;;22917:4;22900:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;22970:14:0;;22954:10;;22943:42;;22970:14;22943:22;;:6;;:10;:22::i;:42::-;22936:49;-1:-1:-1;23014:24:0;23033:4;23014:14;:4;23023;23014:8;:14::i;:24::-;23002:36;;22562:1004;;;-1:-1:-1;;;;;23068:36:0;;;;;;:25;:36;;;;;;;;23065:501;;;23129:48;23162:14;;23129:28;23140:16;;23129:6;:10;;:28;;;;:::i;:48::-;23122:55;;23214:4;23192:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;23273:14:0;;23251:16;;23240:48;;23273:14;23240:28;;:6;;:10;:28::i;:48::-;23233:55;;23325:4;23303:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;23379:14:0;;23362:11;;23351:43;;23379:14;23351:23;;:6;;:10;:23::i;:43::-;23344:50;;23426:4;23409:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;23480:14:0;;23463:11;;23452:43;;23480:14;23452:23;;:6;;:10;:23::i;:43::-;23445:50;-1:-1:-1;23524:24:0;23543:4;23524:14;:4;23533;23524:8;:14::i;:24::-;23512:36;;23065:501;23581:13;;23578:173;;23656:4;23638:24;;;;:9;:24;;;;;;:39;;23667:9;23638:28;:39::i;:::-;23629:4;23611:24;;;;:9;:24;;;;;;;:66;;;;23697:42;;-1:-1:-1;;;;;23697:42:0;;;;;;;23729:9;;23697:42;:::i;:::-;;;;;;;;23578:173;23766:8;;23763:131;;23806:12;;:22;;23823:4;23806:16;:22::i;:::-;23791:12;:37;23848:34;;23873:1;;-1:-1:-1;;;;;23848:34:0;;;;;;;23877:4;;23848:34;:::i;:::-;;;;;;;;23763:131;23913:31;23939:4;23913:21;:6;23924:9;23913:10;:21::i;:31::-;23906:38;22301:1651;-1:-1:-1;;;;;;;;;22301:1651:0:o;32602:564::-;32752:16;;;32766:1;32752:16;;;;;;;;32728:21;;32752:16;;;;;;;;;;-1:-1:-1;32752:16:0;32728:40;;32797:4;32779;32784:1;32779:7;;;;;;-1:-1:-1;;;32779:7:0;;;;;;;;;-1:-1:-1;;;;;32779:23:0;;;:7;;;;;;;;;;:23;;;;32823:6;;:13;;;-1:-1:-1;;;32823:13:0;;;;:6;;;;;:11;;:13;;;;;32779:7;;32823:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32813:4;32818:1;32813:7;;;;;;-1:-1:-1;;;32813:7:0;;;;;;;;;-1:-1:-1;;;;;32813:23:0;;;:7;;;;;;;;;;:23;;;;32881:6;32849:53;;32866:4;;32881:6;32890:11;32849:8;:53::i;:::-;32941:6;;:215;;-1:-1:-1;;;32941:215:0;;-1:-1:-1;;;;;32941:6:0;;;;:57;;:215;;33013:11;;32941:6;;33083:4;;33110;;33130:15;;32941:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32602:564;;:::o;32091:503::-;32271:6;;32239:53;;32256:4;;-1:-1:-1;;;;;32271:6:0;32280:11;32239:8;:53::i;:::-;32333:6;;32528:15;;32333:251;;-1:-1:-1;;;32333:251:0;;-1:-1:-1;;;;;32333:6:0;;;;:22;;32363:9;;32333:251;;32396:4;;32416:11;;32333:6;;;;32528:15;;32558;;32333:251;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:396::-;;;1554:2;1542:9;1533:7;1529:23;1525:32;1522:2;;;1575:6;1567;1560:22;1522:2;1619:9;1606:23;1638:33;1665:5;1638:33;:::i;:::-;1690:5;-1:-1:-1;1747:2:1;1732:18;;1719:32;1760;1719;1760;:::i;1829:327::-;;;1958:2;1946:9;1937:7;1933:23;1929:32;1926:2;;;1979:6;1971;1964:22;1926:2;2023:9;2010:23;2042:33;2069:5;2042:33;:::i;:::-;2094:5;2146:2;2131:18;;;;2118:32;;-1:-1:-1;;;1916:240:1:o;2161:253::-;;2270:2;2258:9;2249:7;2245:23;2241:32;2238:2;;;2291:6;2283;2276:22;2238:2;2335:9;2322:23;2354:30;2378:5;2354:30;:::i;2419:257::-;;2539:2;2527:9;2518:7;2514:23;2510:32;2507:2;;;2560:6;2552;2545:22;2507:2;2597:9;2591:16;2616:30;2640:5;2616:30;:::i;2681:190::-;;2793:2;2781:9;2772:7;2768:23;2764:32;2761:2;;;2814:6;2806;2799:22;2761:2;-1:-1:-1;2842:23:1;;2751:120;-1:-1:-1;2751:120:1:o;2876:316::-;;;;3033:2;3021:9;3012:7;3008:23;3004:32;3001:2;;;3054:6;3046;3039:22;3001:2;3088:9;3082:16;3072:26;;3138:2;3127:9;3123:18;3117:25;3107:35;;3182:2;3171:9;3167:18;3161:25;3151:35;;2991:201;;;;;:::o;3197:395::-;;;;;3360:3;3348:9;3339:7;3335:23;3331:33;3328:2;;;3382:6;3374;3367:22;3328:2;-1:-1:-1;;3410:23:1;;;3480:2;3465:18;;3452:32;;-1:-1:-1;3531:2:1;3516:18;;3503:32;;3582:2;3567:18;3554:32;;-1:-1:-1;3318:274:1;-1:-1:-1;3318:274:1:o;3597:203::-;-1:-1:-1;;;;;3761:32:1;;;;3743:51;;3731:2;3716:18;;3698:102::o;3805:274::-;-1:-1:-1;;;;;3997:32:1;;;;3979:51;;4061:2;4046:18;;4039:34;3967:2;3952:18;;3934:145::o;4084:607::-;-1:-1:-1;;;;;4443:15:1;;;4425:34;;4490:2;4475:18;;4468:34;;;;4533:2;4518:18;;4511:34;;;;4576:2;4561:18;;4554:34;;;;4625:15;;;4619:3;4604:19;;4597:44;4405:3;4657:19;;4650:35;;;;4374:3;4359:19;;4341:350::o;4696:187::-;4861:14;;4854:22;4836:41;;4824:2;4809:18;;4791:92::o;5347:603::-;;5488:2;5517;5506:9;5499:21;5549:6;5543:13;5592:6;5587:2;5576:9;5572:18;5565:34;5617:4;5630:140;5644:6;5641:1;5638:13;5630:140;;;5739:14;;;5735:23;;5729:30;5705:17;;;5724:2;5701:26;5694:66;5659:10;;5630:140;;;5788:6;5785:1;5782:13;5779:2;;;5858:4;5853:2;5844:6;5833:9;5829:22;5825:31;5818:45;5779:2;-1:-1:-1;5934:2:1;5913:15;-1:-1:-1;;5909:29:1;5894:45;;;;5941:2;5890:54;;5468:482;-1:-1:-1;;;5468:482:1:o;5955:399::-;6157:2;6139:21;;;6196:2;6176:18;;;6169:30;6235:34;6230:2;6215:18;;6208:62;-1:-1:-1;;;6301:2:1;6286:18;;6279:33;6344:3;6329:19;;6129:225::o;6359:398::-;6561:2;6543:21;;;6600:2;6580:18;;;6573:30;6639:34;6634:2;6619:18;;6612:62;-1:-1:-1;;;6705:2:1;6690:18;;6683:32;6747:3;6732:19;;6533:224::o;6762:342::-;6964:2;6946:21;;;7003:2;6983:18;;;6976:30;-1:-1:-1;;;7037:2:1;7022:18;;7015:48;7095:2;7080:18;;6936:168::o;7109:351::-;7311:2;7293:21;;;7350:2;7330:18;;;7323:30;7389:29;7384:2;7369:18;;7362:57;7451:2;7436:18;;7283:177::o;7465:411::-;7667:2;7649:21;;;7706:2;7686:18;;;7679:30;7745:34;7740:2;7725:18;;7718:62;-1:-1:-1;;;7811:2:1;7796:18;;7789:45;7866:3;7851:19;;7639:237::o;7881:397::-;8083:2;8065:21;;;8122:2;8102:18;;;8095:30;8161:34;8156:2;8141:18;;8134:62;-1:-1:-1;;;8227:2:1;8212:18;;8205:31;8268:3;8253:19;;8055:223::o;8283:336::-;8485:2;8467:21;;;8524:2;8504:18;;;8497:30;-1:-1:-1;;;8558:2:1;8543:18;;8536:42;8610:2;8595:18;;8457:162::o;8624:346::-;8826:2;8808:21;;;8865:2;8845:18;;;8838:30;-1:-1:-1;;;8899:2:1;8884:18;;8877:52;8961:2;8946:18;;8798:172::o;8975:401::-;9177:2;9159:21;;;9216:2;9196:18;;;9189:30;9255:34;9250:2;9235:18;;9228:62;-1:-1:-1;;;9321:2:1;9306:18;;9299:35;9366:3;9351:19;;9149:227::o;9381:400::-;9583:2;9565:21;;;9622:2;9602:18;;;9595:30;9661:34;9656:2;9641:18;;9634:62;-1:-1:-1;;;9727:2:1;9712:18;;9705:34;9771:3;9756:19;;9555:226::o;9786:408::-;9988:2;9970:21;;;10027:2;10007:18;;;10000:30;10066:34;10061:2;10046:18;;10039:62;-1:-1:-1;;;10132:2:1;10117:18;;10110:42;10184:3;10169:19;;9960:234::o;10199:342::-;10401:2;10383:21;;;10440:2;10420:18;;;10413:30;-1:-1:-1;;;10474:2:1;10459:18;;10452:48;10532:2;10517:18;;10373:168::o;10546:177::-;10692:25;;;10680:2;10665:18;;10647:76::o;10728:983::-;;11038:3;11027:9;11023:19;11069:6;11058:9;11051:25;11095:2;11133:6;11128:2;11117:9;11113:18;11106:34;11176:3;11171:2;11160:9;11156:18;11149:31;11200:6;11235;11229:13;11266:6;11258;11251:22;11304:3;11293:9;11289:19;11282:26;;11343:2;11335:6;11331:15;11317:29;;11364:4;11377:195;11391:6;11388:1;11385:13;11377:195;;;11456:13;;-1:-1:-1;;;;;11452:39:1;11440:52;;11547:15;;;;11512:12;;;;11488:1;11406:9;11377:195;;;-1:-1:-1;;;;;;;11628:32:1;;;;11623:2;11608:18;;11601:60;-1:-1:-1;;;11692:3:1;11677:19;11670:35;11589:3;10999:712;-1:-1:-1;;;10999:712:1:o;11716:184::-;11888:4;11876:17;;;;11858:36;;11846:2;11831:18;;11813:87::o;11905:128::-;;11976:1;11972:6;11969:1;11966:13;11963:2;;;11982:18;;:::i;:::-;-1:-1:-1;12018:9:1;;11953:80::o;12038:217::-;;12104:1;12094:2;;-1:-1:-1;;;12129:31:1;;12183:4;12180:1;12173:15;12211:4;12136:1;12201:15;12094:2;-1:-1:-1;12240:9:1;;12084:171::o;12260:168::-;;12366:1;12362;12358:6;12354:14;12351:1;12348:21;12343:1;12336:9;12329:17;12325:45;12322:2;;;12373:18;;:::i;:::-;-1:-1:-1;12413:9:1;;12312:116::o;12433:125::-;;12501:1;12498;12495:8;12492:2;;;12506:18;;:::i;:::-;-1:-1:-1;12543:9:1;;12482:76::o;12563:380::-;12648:1;12638:12;;12695:1;12685:12;;;12706:2;;12760:4;12752:6;12748:17;12738:27;;12706:2;12813;12805:6;12802:14;12782:18;12779:38;12776:2;;;12859:10;12854:3;12850:20;12847:1;12840:31;12894:4;12891:1;12884:15;12922:4;12919:1;12912:15;12776:2;;12618:325;;;:::o;12948:127::-;13009:10;13004:3;13000:20;12997:1;12990:31;13040:4;13037:1;13030:15;13064:4;13061:1;13054:15;13080:133;-1:-1:-1;;;;;13157:31:1;;13147:42;;13137:2;;13203:1;13200;13193:12;13218:120;13306:5;13299:13;13292:21;13285:5;13282:32;13272:2;;13328:1;13325;13318:12
Swarm Source
ipfs://43282612dfad81d1387020269ab1658ad3706a65386cea7a1efb28bcee89f963
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.