ERC-20
Overview
Max Total Supply
1,000,000 DESPIRIT
Holders
57
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,909.9999999999982 DESPIRITValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DESPIRIT
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-19 */ /** ^ ^ |\ \ / /| / \ |\__ __/| / \ / /\ \ \ _ \/ _ / / \ / / /\ \ {*}\/{*} / / \ \ | | | \ \( (00) ) / // |\ \ | | | |\ \(V""V)\ / / | || \| | | | | \ |^--^| \ / / || || || / / / | |( WWWW__ \/ /| || || || | | | | | | \______\ / / || || || | | | / | | )|______\ ) | / | || || / / / / / /______/ /| \ \ || || / / / / / /\_____/ |/ /__\ \ \ \ \ | | | / / /\______/ \ \__| \ \ \ | | | | | |\______ __ \_ \__|_| \ | | ,___ /\______ _ _ \_ \ | | |/ /\_____ / \ \__ \ | /\ |/ | |\______ | | \___ \ |__/ \ v | |\______ | | \___/ | | |\______ | | __/ \ \________\_ _\ ____/ __/ /\_____ __/ / )\_, _____/ / ___/ \uuuu/ ___/___) \______/ VVV V VVV V */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { 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 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 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 IUniswapV2Router01 { 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); } interface IUniswapV2Router02 is IUniswapV2Router01 { 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; } contract DESPIRIT is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Dejitaru Spirit"; string private _symbol = "DESPIRIT"; uint8 private _decimals = 18; address payable public marketingWallet = payable(0xeBE89A81cacE96bfab147a07085B7F2dE9F36789); address payable public DeveloperWallet = payable(0xeBE89A81cacE96bfab147a07085B7F2dE9F36789); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public blacklist; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; uint256 public _buyLiquidityFee = 5; uint256 public _buyMarketingFee = 3; uint256 public _buyDeveloperFee = 2; uint256 public _sellLiquidityFee = 5; uint256 public _sellMarketingFee = 3; uint256 public _sellDeveloperFee = 2; uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 private _totalSupply = 1000000 * 10**_decimals; uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(100); //0.001% uint256 public _maxTxAmount = _totalSupply.mul(1).div(100); //1% uint256 public _walletMax = _totalSupply.mul(1).div(100); //1% IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public EnableTransactionLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[DeveloperWallet] = true; isExcludedFromFee[address(this)] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[marketingWallet] = true; isWalletLimitExempt[DeveloperWallet] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[marketingWallet] = true; isTxLimitExempt[DeveloperWallet] = true; isTxLimitExempt[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } 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; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function enableTxLimit(bool _status) external onlyOwner { EnableTransactionLimit = _status; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWallet = payable(newAddress); } function setDeveloperWalletAddress(address newAddress) external onlyOwner() { DeveloperWallet = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } function setBlacklist(address _adr, bool _status) external onlyOwner { blacklist[_adr] = _status; } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; } function setBuyTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _buyLiquidityFee = _Liquidity; _buyMarketingFee = _Marketing; _buyDeveloperFee = _Developer; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); } function setSellTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _sellLiquidityFee = _Liquidity; _sellMarketingFee = _Marketing; _sellDeveloperFee = _Developer; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(!blacklist[sender] && !blacklist[recipient], "Bot Enemy address Restricted!"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function rescueStuckedToken(address _token, uint _amount) external onlyOwner { IERC20(_token).transfer(msg.sender,_amount); } function rescueFunds() external onlyOwner { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling); uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee); // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee); uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2); uint256 tokenForSwap = tAmount.sub(tokenForLp); uint256 initialBalance = address(this).balance; swapTokensForEth(tokenForSwap); uint256 recievedBalance = address(this).balance.sub(initialBalance); uint256 totalETHFee = totalShares.sub(liquidityShare.div(2)); uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = recievedBalance.mul(MarketingShare).div(totalETHFee); uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing); if(amountETHMarketing > 0) { payable(marketingWallet).transfer(amountETHMarketing); } if(amountETHDeveloper > 0) { payable(DeveloperWallet).transfer(amountETHDeveloper); } if(amountETHLiquidity > 0 && tokenForLp > 0) { addLiquidity(tokenForLp, amountETHLiquidity); } } 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] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } /* AirDrop Function*/ function airdrop(address[] calldata _address,uint[] calldata _tokens) external onlyOwner { address account = msg.sender; require(_address.length == _tokens.length,"Error: Mismatch Length"); uint tokenCount; for(uint i = 0; i < _tokens.length; i++) { tokenCount += _tokens[i]; } require(balanceOf(account) >= tokenCount,"Error: Insufficient Error!!"); _balances[account] = _balances[account].sub(tokenCount); for(uint j = 0; j < _address.length; j++) { _balances[_address[j]] = _balances[_address[j]].add(_tokens[j]); emit Transfer(account, _address[j], _tokens[j]); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"DeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","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":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","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":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckedToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDeveloperWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
610100604052600f60c08190526e11195a9a5d185c9d4814dc1a5c9a5d608a1b60e090815262000033916001919062000811565b5060408051808201909152600880825267111154d41254925560c21b6020909201918252620000659160029162000811565b506003805474ebe89a81cace96bfab147a07085b7f2de9f36789126001600160a81b0319909116178155600480546001600160a01b03191673ebe89a81cace96bfab147a07085b7f2de9f367891790556ddead000000000000000000000000608052600060a0526005600c819055600d8290556002600e819055600f91909155601091909155601155620000fc6012600a620009bb565b6200010b90620f424062000a7a565b6014556200014560646200013160016014546200069460201b62001bd71790919060201c565b6200072860201b62001c561790919060201c565b6015556200016b60646200013160016014546200069460201b62001bd71790919060201c565b6016556200019160646200013160016014546200069460201b62001bd71790919060201c565b6017556019805463ffffffff60a81b1916630101000160a81b179055348015620001ba57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024f57600080fd5b505afa15801562000264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028a9190620008b7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d357600080fd5b505afa158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e9190620008b7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200035757600080fd5b505af11580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003929190620008b7565b601980546001600160a01b039283166001600160a01b0319918216179091556018805492841692909116821790553060009081526006602090815260408083209383529290529081206000199055600190600790620003f96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560035461010090048216815260079093528183208054851660019081179091556004549091168352818320805485168217905530835290822080549093168117909255600a90620004806000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600354610100900482168152600a9093528183208054851660019081179091556004548216845282842080548616821790556019549091168352818320805485168217905530835290822080549093168117909255600b90620005196000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600354610100900482168152600b84528281208054861660019081179091556004549092168152828120805486168317905530815291909120805490931617909155600e54600d54600c54620005c093620005ac929062001c9862000772821b17901c565b6200077260201b62001c981790919060201c565b601281905550620005eb601154620005ac601054600f546200077260201b62001c981790919060201c565b6013556019546001600160a01b03166000908152600860205260408120805460ff1916600117905560145490600590620006223390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6014546040516200068591815260200190565b60405180910390a35062000aef565b600082620006a55750600062000722565b6000620006b3838562000a7a565b905082620006c2858362000951565b146200071f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200071f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620007d560201b60201c565b60008062000781838562000936565b9050838110156200071f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000716565b60008183620007f95760405162461bcd60e51b8152600401620007169190620008e0565b50600062000808848662000951565b95945050505050565b8280546200081f9062000a9c565b90600052602060002090601f0160209004810192826200084357600085556200088e565b82601f106200085e57805160ff19168380011785556200088e565b828001600101855582156200088e579182015b828111156200088e57825182559160200191906001019062000871565b506200089c929150620008a0565b5090565b5b808211156200089c5760008155600101620008a1565b600060208284031215620008c9578081fd5b81516001600160a01b03811681146200071f578182fd5b6000602080835283518082850152825b818110156200090e57858101830151858201604001528201620008f0565b81811115620009205783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156200094c576200094c62000ad9565b500190565b6000826200096d57634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115620009b357816000190482111562000997576200099762000ad9565b80851615620009a557918102915b93841c939080029062000977565b509250929050565b60006200071f60ff841683600082620009d75750600162000722565b81620009e65750600062000722565b8160018114620009ff576002811462000a0a5762000a2a565b600191505062000722565b60ff84111562000a1e5762000a1e62000ad9565b50506001821b62000722565b5060208310610133831016604e8410600b841016171562000a4f575081810a62000722565b62000a5b838362000972565b806000190482111562000a725762000a7262000ad9565b029392505050565b600081600019048311821515161562000a975762000a9762000ad9565b500290565b600181811c9082168062000ab157607f821691505b6020821081141562000ad357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c60a05160601c612ebe62000b29600039600081816104110152610e660152600081816105820152610ea10152612ebe6000f3fe6080604052600436106103a65760003560e01c8063844d591c116101e7578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610b18578063f8f6329014610b39578063f9f92be414610b59578063fb4b8e6c14610b8957600080fd5b8063f1d5f51714610a98578063f2fde38b14610ab8578063f455444614610ad8578063f84ba65d14610af857600080fd5b8063ec28438a116100dc578063ec28438a14610a22578063ee828db314610a42578063ef422a1814610a62578063f0cd1dac14610a8257600080fd5b8063da00097d14610990578063dc44b6a0146109b1578063dd62ed3e146109c7578063e6b2603b14610a0d57600080fd5b8063a5d69d1f11610185578063c816841b11610154578063c816841b14610914578063c860795214610934578063c867d60b1461094a578063d2d7ad831461097a57600080fd5b8063a5d69d1f1461089e578063a9059cbb146108be578063c49b9a80146108de578063c5d24189146108fe57600080fd5b80638b42507f116101c15780638b42507f1461081b5780638da5cb5b1461084b57806395d89b4114610869578063a457c2d71461087e57600080fd5b8063844d591c146107c457806385261485146107e457806388790a681461080557600080fd5b806339509351116102cc5780635881f3ef1161026a57806375f0a8741161023957806375f0a8741461075d5780637d1db4a514610782578063807c2d9c1461079857806382eefb43146107ae57600080fd5b80635881f3ef146106d257806367243482146106f257806370a0823114610712578063715018a61461074857600080fd5b80634a74bb02116102a65780634a74bb021461064b5780634cb80fd51461066c5780635194f9bf1461068c5780635342acb4146106a257600080fd5b806339509351146105db5780633b97084a146105fb5780633ecad2711461061b57600080fd5b80631870517a116103445780632563ae83116103135780632563ae831461055057806327c8f835146105705780632b112e49146105a4578063313ce567146105b957600080fd5b80631870517a146104da5780632198cf6c146104fa57806323555d571461051a57806323b872dd1461053057600080fd5b8063095ea7b311610380578063095ea7b31461044b578063153b0d1e1461047b5780631694505e1461049b57806318160ddd146104bb57600080fd5b806306fdde03146103b257806308733214146103dd5780630930907b146103ff57600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610ba9565b6040516103d49190612c39565b60405180910390f35b3480156103e957600080fd5b506103fd6103f8366004612b9e565b610c3b565b005b34801561040b57600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103d4565b34801561045757600080fd5b5061046b610466366004612aba565b610c99565b60405190151581526020016103d4565b34801561048757600080fd5b506103fd610496366004612a8d565b610cb0565b3480156104a757600080fd5b50601854610433906001600160a01b031681565b3480156104c757600080fd5b506014545b6040519081526020016103d4565b3480156104e657600080fd5b506103fd6104f5366004612b9e565b610d05565b34801561050657600080fd5b506103fd610515366004612a8d565b610d54565b34801561052657600080fd5b506104cc600e5481565b34801561053c57600080fd5b5061046b61054b366004612a4d565b610da9565b34801561055c57600080fd5b506103fd61056b366004612b4e565b610e14565b34801561057c57600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000000081565b3480156105b057600080fd5b506104cc610e5c565b3480156105c557600080fd5b5060035460405160ff90911681526020016103d4565b3480156105e757600080fd5b5061046b6105f6366004612aba565b610eef565b34801561060757600080fd5b506103fd610616366004612b86565b610f25565b34801561062757600080fd5b5061046b6106363660046129dd565b60086020526000908152604090205460ff1681565b34801561065757600080fd5b5060195461046b90600160a81b900460ff1681565b34801561067857600080fd5b506103fd6106873660046129dd565b610f54565b34801561069857600080fd5b506104cc60115481565b3480156106ae57600080fd5b5061046b6106bd3660046129dd565b60076020526000908152604090205460ff1681565b3480156106de57600080fd5b506104336106ed3660046129dd565b610fa6565b3480156106fe57600080fd5b506103fd61070d366004612ae5565b61131a565b34801561071e57600080fd5b506104cc61072d3660046129dd565b6001600160a01b031660009081526005602052604090205490565b34801561075457600080fd5b506103fd61161c565b34801561076957600080fd5b506003546104339061010090046001600160a01b031681565b34801561078e57600080fd5b506104cc60165481565b3480156107a457600080fd5b506104cc60175481565b3480156107ba57600080fd5b506104cc60135481565b3480156107d057600080fd5b506103fd6107df366004612a8d565b611696565b3480156107f057600080fd5b5060195461046b90600160c01b900460ff1681565b34801561081157600080fd5b506104cc600f5481565b34801561082757600080fd5b5061046b6108363660046129dd565b600b6020526000908152604090205460ff1681565b34801561085757600080fd5b506000546001600160a01b0316610433565b34801561087557600080fd5b506103c76116eb565b34801561088a57600080fd5b5061046b610899366004612aba565b6116fa565b3480156108aa57600080fd5b506103fd6108b9366004612b4e565b611749565b3480156108ca57600080fd5b5061046b6108d9366004612aba565b611791565b3480156108ea57600080fd5b506103fd6108f9366004612b4e565b61179e565b34801561090a57600080fd5b506104cc600d5481565b34801561092057600080fd5b50601954610433906001600160a01b031681565b34801561094057600080fd5b506104cc60105481565b34801561095657600080fd5b5061046b6109653660046129dd565b600a6020526000908152604090205460ff1681565b34801561098657600080fd5b506104cc60155481565b34801561099c57600080fd5b5060195461046b90600160b01b900460ff1681565b3480156109bd57600080fd5b506104cc600c5481565b3480156109d357600080fd5b506104cc6109e2366004612a15565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a1957600080fd5b506103fd611820565b348015610a2e57600080fd5b506103fd610a3d366004612b86565b6118a2565b348015610a4e57600080fd5b506103fd610a5d366004612b4e565b6118d1565b348015610a6e57600080fd5b506103fd610a7d366004612a8d565b611919565b348015610a8e57600080fd5b506104cc60125481565b348015610aa457600080fd5b506103fd610ab3366004612b86565b61196e565b348015610ac457600080fd5b506103fd610ad33660046129dd565b61199d565b348015610ae457600080fd5b506103fd610af3366004612aba565b611a87565b348015610b0457600080fd5b506103fd610b13366004612a8d565b611b36565b348015610b2457600080fd5b5060195461046b90600160b81b900460ff1681565b348015610b4557600080fd5b50600454610433906001600160a01b031681565b348015610b6557600080fd5b5061046b610b743660046129dd565b60096020526000908152604090205460ff1681565b348015610b9557600080fd5b506103fd610ba43660046129dd565b611b8b565b606060018054610bb890612d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be490612d8c565b8015610c315780601f10610c0657610100808354040283529160200191610c31565b820191906000526020600020905b815481529060010190602001808311610c1457829003601f168201915b5050505050905090565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b8152600401610c6590612c8c565b60405180910390fd5b600f83905560108290556011819055610c9181610c8b8585611c98565b90611c98565b601355505050565b6000610ca6338484611cf7565b5060015b92915050565b6000546001600160a01b03163314610cda5760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d2f5760405162461bcd60e51b8152600401610c6590612c8c565b600c839055600d829055600e819055610d4c81610c8b8585611c98565b601255505050565b6000546001600160a01b03163314610d7e5760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610db6848484611e1b565b50610e098433610e0485604051806060016040528060288152602001612e1c602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906122cc565b611cf7565b5060015b9392505050565b6000546001600160a01b03163314610e3e5760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260056020526040812054610eea90610ee4610edb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526005602052604090205490565b60145490612306565b90612306565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610ca6918590610e049086611c98565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b8152600401610c6590612c8c565b601555565b6000546001600160a01b03163314610f7e5760405162461bcd60e51b8152600401610c6590612c8c565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610fd15760405162461bcd60e51b8152600401610c6590612c8c565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561100f57600080fd5b505afa158015611023573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104791906129f9565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c791906129f9565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114591906129f9565b91506001600160a01b0382166112c957806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561118e57600080fd5b505afa1580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c691906129f9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561120e57600080fd5b505afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124691906129f9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561128e57600080fd5b505af11580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c691906129f9565b91505b601980546001600160a01b038085166001600160a01b03199283168117909355601880549490911693909116929092179091556000908152600860205260409020805460ff19166001179055919050565b6000546001600160a01b031633146113445760405162461bcd60e51b8152600401610c6590612c8c565b3383821461138d5760405162461bcd60e51b815260206004820152601660248201527508ae4e4dee474409ad2e6dac2e8c6d04098cadccee8d60531b6044820152606401610c65565b6000805b838110156113df578484828181106113b957634e487b7160e01b600052603260045260246000fd5b90506020020135826113cb9190612d1e565b9150806113d781612dc7565b915050611391565b5080611400836001600160a01b031660009081526005602052604090205490565b101561144e5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20496e73756666696369656e74204572726f72212100000000006044820152606401610c65565b6001600160a01b0382166000908152600560205260409020546114719082612306565b6001600160a01b0383166000908152600560205260408120919091555b85811015611613576115198585838181106114b957634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a868181106114e457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114f991906129dd565b6001600160a01b0316815260208101919091526040016000205490611c98565b6005600089898581811061153d57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061155291906129dd565b6001600160a01b0316815260208101919091526040016000205586868281811061158c57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906115a191906129dd565b6001600160a01b0316836001600160a01b0316600080516020612e448339815191528787858181106115e357634e487b7160e01b600052603260045260246000fd5b905060200201356040516115f991815260200190565b60405180910390a38061160b81612dc7565b91505061148e565b50505050505050565b6000546001600160a01b031633146116465760405162461bcd60e51b8152600401610c6590612c8c565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146116c05760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b606060028054610bb890612d8c565b6000610ca63384610e0485604051806060016040528060258152602001612e64602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906122cc565b6000546001600160a01b031633146117735760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6000610e09338484611e1b565b6000546001600160a01b031633146117c85760405162461bcd60e51b8152600401610c6590612c8c565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061181590831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461184a5760405162461bcd60e51b8152600401610c6590612c8c565b604051600090339047908381818185875af1925050503d806000811461188c576040519150601f19603f3d011682016040523d82523d6000602084013e611891565b606091505b505090508061189f57600080fd5b50565b6000546001600160a01b031633146118cc5760405162461bcd60e51b8152600401610c6590612c8c565b601655565b6000546001600160a01b031633146118fb5760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b031633146119435760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119985760405162461bcd60e51b8152600401610c6590612c8c565b601755565b6000546001600160a01b031633146119c75760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b038116611a2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c65565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611ab15760405162461bcd60e51b8152600401610c6590612c8c565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015611af957600080fd5b505af1158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b319190612b6a565b505050565b6000546001600160a01b03163314611b605760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611bb55760405162461bcd60e51b8152600401610c6590612c8c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600082611be657506000610caa565b6000611bf28385612d56565b905082611bff8583612d36565b14610e0d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c65565b6000610e0d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612348565b600080611ca58385612d1e565b905083811015610e0d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c65565b6001600160a01b038316611d595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c65565b6001600160a01b038216611dba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c65565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611e815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c65565b6001600160a01b038316611ee35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c65565b6001600160a01b03841660009081526009602052604090205460ff16158015611f2557506001600160a01b03831660009081526009602052604090205460ff16155b611f715760405162461bcd60e51b815260206004820152601d60248201527f426f7420456e656d7920616464726573732052657374726963746564210000006044820152606401610c65565b601954600160a01b900460ff1615611f9557611f8e848484612376565b9050610e0d565b6001600160a01b0384166000908152600b602052604090205460ff16158015611fd757506001600160a01b0383166000908152600b602052604090205460ff16155b8015611fec5750601954600160c01b900460ff165b15612054576016548211156120545760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c65565b30600090815260056020526040902054601554811080159081906120825750601954600160a01b900460ff16155b80156120a757506001600160a01b03861660009081526008602052604090205460ff16155b80156120bc5750601954600160a81b900460ff165b156120e257601954600160b01b900460ff16156120d95760155491505b6120e28261244a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546121349186906122cc565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061218157506001600160a01b03861660009081526007602052604090205460ff165b612195576121908787876125fd565b612197565b845b601954909150600160b81b900460ff1680156121cc57506001600160a01b0386166000908152600a602052604090205460ff16155b15612253576017546121f782610c8b896001600160a01b031660009081526005602052604090205490565b11156122535760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610c65565b6001600160a01b0386166000908152600560205260409020546122769082611c98565b6001600160a01b038088166000818152600560205260409081902093909355915190891690600080516020612e44833981519152906122b89085815260200190565b60405180910390a360019350505050610e0d565b600081848411156122f05760405162461bcd60e51b8152600401610c659190612c39565b5060006122fd8486612d75565b95945050505050565b6000610e0d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122cc565b600081836123695760405162461bcd60e51b8152600401610c659190612c39565b5060006122fd8486612d36565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546123c79184906122cc565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546123f69083611c98565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020612e44833981519152906124389086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556013546012546000916124709190611c98565b9050600061248b600f54600c54611c9890919063ffffffff16565b905060006124a6601054600d54611c9890919063ffffffff16565b905060006124c160026124bb86818988611bd7565b90611c56565b905060006124cf8683612306565b9050476124db826126f1565b60006124e74783612306565b905060006125006124f9886002611c56565b8990612306565b9050600061251560026124bb8481878d611bd7565b90506000612527836124bb868b611bd7565b9050600061253982610ee48786612306565b90508115612581576003546040516101009091046001600160a01b0316906108fc8415029084906000818181858888f1935050505015801561257f573d6000803e3d6000fd5b505b80156125c3576004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156125c1573d6000803e3d6000fd5b505b6000831180156125d35750600088115b156125e2576125e288846128af565b50506019805460ff60a01b1916905550505050505050505050565b6001600160a01b038316600090815260086020526040812054819060ff16156126415761263a60646124bb60125486611bd790919063ffffffff16565b905061267f565b6001600160a01b03841660009081526008602052604090205460ff161561267f5761267c60646124bb60135486611bd790919063ffffffff16565b90505b80156126e7573060009081526005602052604090205461269f9082611c98565b30600081815260056020526040908190209290925590516001600160a01b03871690600080516020612e44833981519152906126de9085815260200190565b60405180910390a35b6122fd8382612306565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061273457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561278857600080fd5b505afa15801561279c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c091906129f9565b816001815181106127e157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526018546128079130911684611cf7565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790612840908590600090869030904290600401612ce2565b600060405180830381600087803b15801561285a57600080fd5b505af115801561286e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516128a3929190612cc1565b60405180910390a15050565b6018546128c79030906001600160a01b031684611cf7565b6018546001600160a01b031663f305d7198230856000806128f06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561295357600080fd5b505af1158015612967573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061298c9190612bc9565b5050505050565b60008083601f8401126129a4578182fd5b50813567ffffffffffffffff8111156129bb578182fd5b6020830191508360208260051b85010111156129d657600080fd5b9250929050565b6000602082840312156129ee578081fd5b8135610e0d81612df8565b600060208284031215612a0a578081fd5b8151610e0d81612df8565b60008060408385031215612a27578081fd5b8235612a3281612df8565b91506020830135612a4281612df8565b809150509250929050565b600080600060608486031215612a61578081fd5b8335612a6c81612df8565b92506020840135612a7c81612df8565b929592945050506040919091013590565b60008060408385031215612a9f578182fd5b8235612aaa81612df8565b91506020830135612a4281612e0d565b60008060408385031215612acc578182fd5b8235612ad781612df8565b946020939093013593505050565b60008060008060408587031215612afa578081fd5b843567ffffffffffffffff80821115612b11578283fd5b612b1d88838901612993565b90965094506020870135915080821115612b35578283fd5b50612b4287828801612993565b95989497509550505050565b600060208284031215612b5f578081fd5b8135610e0d81612e0d565b600060208284031215612b7b578081fd5b8151610e0d81612e0d565b600060208284031215612b97578081fd5b5035919050565b600080600060608486031215612bb2578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215612bdd578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015612c2e5781516001600160a01b031687529582019590820190600101612c09565b509495945050505050565b6000602080835283518082850152825b81811015612c6557858101830151858201604001528201612c49565b81811115612c765783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612cda6040830184612bf6565b949350505050565b85815284602082015260a060408201526000612d0160a0830186612bf6565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612d3157612d31612de2565b500190565b600082612d5157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612d7057612d70612de2565b500290565b600082821015612d8757612d87612de2565b500390565b600181811c90821680612da057607f821691505b60208210811415612dc157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ddb57612ddb612de2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461189f57600080fd5b801515811461189f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f7ed7b2bdd660b1329dc1d3047081e1f114b83e7f26a398ac0cf55d6b1ec721964736f6c63430008040033
Deployed Bytecode
0x6080604052600436106103a65760003560e01c8063844d591c116101e7578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610b18578063f8f6329014610b39578063f9f92be414610b59578063fb4b8e6c14610b8957600080fd5b8063f1d5f51714610a98578063f2fde38b14610ab8578063f455444614610ad8578063f84ba65d14610af857600080fd5b8063ec28438a116100dc578063ec28438a14610a22578063ee828db314610a42578063ef422a1814610a62578063f0cd1dac14610a8257600080fd5b8063da00097d14610990578063dc44b6a0146109b1578063dd62ed3e146109c7578063e6b2603b14610a0d57600080fd5b8063a5d69d1f11610185578063c816841b11610154578063c816841b14610914578063c860795214610934578063c867d60b1461094a578063d2d7ad831461097a57600080fd5b8063a5d69d1f1461089e578063a9059cbb146108be578063c49b9a80146108de578063c5d24189146108fe57600080fd5b80638b42507f116101c15780638b42507f1461081b5780638da5cb5b1461084b57806395d89b4114610869578063a457c2d71461087e57600080fd5b8063844d591c146107c457806385261485146107e457806388790a681461080557600080fd5b806339509351116102cc5780635881f3ef1161026a57806375f0a8741161023957806375f0a8741461075d5780637d1db4a514610782578063807c2d9c1461079857806382eefb43146107ae57600080fd5b80635881f3ef146106d257806367243482146106f257806370a0823114610712578063715018a61461074857600080fd5b80634a74bb02116102a65780634a74bb021461064b5780634cb80fd51461066c5780635194f9bf1461068c5780635342acb4146106a257600080fd5b806339509351146105db5780633b97084a146105fb5780633ecad2711461061b57600080fd5b80631870517a116103445780632563ae83116103135780632563ae831461055057806327c8f835146105705780632b112e49146105a4578063313ce567146105b957600080fd5b80631870517a146104da5780632198cf6c146104fa57806323555d571461051a57806323b872dd1461053057600080fd5b8063095ea7b311610380578063095ea7b31461044b578063153b0d1e1461047b5780631694505e1461049b57806318160ddd146104bb57600080fd5b806306fdde03146103b257806308733214146103dd5780630930907b146103ff57600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610ba9565b6040516103d49190612c39565b60405180910390f35b3480156103e957600080fd5b506103fd6103f8366004612b9e565b610c3b565b005b34801561040b57600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103d4565b34801561045757600080fd5b5061046b610466366004612aba565b610c99565b60405190151581526020016103d4565b34801561048757600080fd5b506103fd610496366004612a8d565b610cb0565b3480156104a757600080fd5b50601854610433906001600160a01b031681565b3480156104c757600080fd5b506014545b6040519081526020016103d4565b3480156104e657600080fd5b506103fd6104f5366004612b9e565b610d05565b34801561050657600080fd5b506103fd610515366004612a8d565b610d54565b34801561052657600080fd5b506104cc600e5481565b34801561053c57600080fd5b5061046b61054b366004612a4d565b610da9565b34801561055c57600080fd5b506103fd61056b366004612b4e565b610e14565b34801561057c57600080fd5b506104337f000000000000000000000000000000000000000000000000000000000000dead81565b3480156105b057600080fd5b506104cc610e5c565b3480156105c557600080fd5b5060035460405160ff90911681526020016103d4565b3480156105e757600080fd5b5061046b6105f6366004612aba565b610eef565b34801561060757600080fd5b506103fd610616366004612b86565b610f25565b34801561062757600080fd5b5061046b6106363660046129dd565b60086020526000908152604090205460ff1681565b34801561065757600080fd5b5060195461046b90600160a81b900460ff1681565b34801561067857600080fd5b506103fd6106873660046129dd565b610f54565b34801561069857600080fd5b506104cc60115481565b3480156106ae57600080fd5b5061046b6106bd3660046129dd565b60076020526000908152604090205460ff1681565b3480156106de57600080fd5b506104336106ed3660046129dd565b610fa6565b3480156106fe57600080fd5b506103fd61070d366004612ae5565b61131a565b34801561071e57600080fd5b506104cc61072d3660046129dd565b6001600160a01b031660009081526005602052604090205490565b34801561075457600080fd5b506103fd61161c565b34801561076957600080fd5b506003546104339061010090046001600160a01b031681565b34801561078e57600080fd5b506104cc60165481565b3480156107a457600080fd5b506104cc60175481565b3480156107ba57600080fd5b506104cc60135481565b3480156107d057600080fd5b506103fd6107df366004612a8d565b611696565b3480156107f057600080fd5b5060195461046b90600160c01b900460ff1681565b34801561081157600080fd5b506104cc600f5481565b34801561082757600080fd5b5061046b6108363660046129dd565b600b6020526000908152604090205460ff1681565b34801561085757600080fd5b506000546001600160a01b0316610433565b34801561087557600080fd5b506103c76116eb565b34801561088a57600080fd5b5061046b610899366004612aba565b6116fa565b3480156108aa57600080fd5b506103fd6108b9366004612b4e565b611749565b3480156108ca57600080fd5b5061046b6108d9366004612aba565b611791565b3480156108ea57600080fd5b506103fd6108f9366004612b4e565b61179e565b34801561090a57600080fd5b506104cc600d5481565b34801561092057600080fd5b50601954610433906001600160a01b031681565b34801561094057600080fd5b506104cc60105481565b34801561095657600080fd5b5061046b6109653660046129dd565b600a6020526000908152604090205460ff1681565b34801561098657600080fd5b506104cc60155481565b34801561099c57600080fd5b5060195461046b90600160b01b900460ff1681565b3480156109bd57600080fd5b506104cc600c5481565b3480156109d357600080fd5b506104cc6109e2366004612a15565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610a1957600080fd5b506103fd611820565b348015610a2e57600080fd5b506103fd610a3d366004612b86565b6118a2565b348015610a4e57600080fd5b506103fd610a5d366004612b4e565b6118d1565b348015610a6e57600080fd5b506103fd610a7d366004612a8d565b611919565b348015610a8e57600080fd5b506104cc60125481565b348015610aa457600080fd5b506103fd610ab3366004612b86565b61196e565b348015610ac457600080fd5b506103fd610ad33660046129dd565b61199d565b348015610ae457600080fd5b506103fd610af3366004612aba565b611a87565b348015610b0457600080fd5b506103fd610b13366004612a8d565b611b36565b348015610b2457600080fd5b5060195461046b90600160b81b900460ff1681565b348015610b4557600080fd5b50600454610433906001600160a01b031681565b348015610b6557600080fd5b5061046b610b743660046129dd565b60096020526000908152604090205460ff1681565b348015610b9557600080fd5b506103fd610ba43660046129dd565b611b8b565b606060018054610bb890612d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610be490612d8c565b8015610c315780601f10610c0657610100808354040283529160200191610c31565b820191906000526020600020905b815481529060010190602001808311610c1457829003601f168201915b5050505050905090565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b8152600401610c6590612c8c565b60405180910390fd5b600f83905560108290556011819055610c9181610c8b8585611c98565b90611c98565b601355505050565b6000610ca6338484611cf7565b5060015b92915050565b6000546001600160a01b03163314610cda5760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d2f5760405162461bcd60e51b8152600401610c6590612c8c565b600c839055600d829055600e819055610d4c81610c8b8585611c98565b601255505050565b6000546001600160a01b03163314610d7e5760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610db6848484611e1b565b50610e098433610e0485604051806060016040528060288152602001612e1c602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906122cc565b611cf7565b5060015b9392505050565b6000546001600160a01b03163314610e3e5760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260056020526040812054610eea90610ee4610edb7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b031660009081526005602052604090205490565b60145490612306565b90612306565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610ca6918590610e049086611c98565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b8152600401610c6590612c8c565b601555565b6000546001600160a01b03163314610f7e5760405162461bcd60e51b8152600401610c6590612c8c565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610fd15760405162461bcd60e51b8152600401610c6590612c8c565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561100f57600080fd5b505afa158015611023573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104791906129f9565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c791906129f9565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114591906129f9565b91506001600160a01b0382166112c957806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561118e57600080fd5b505afa1580156111a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c691906129f9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561120e57600080fd5b505afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124691906129f9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561128e57600080fd5b505af11580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c691906129f9565b91505b601980546001600160a01b038085166001600160a01b03199283168117909355601880549490911693909116929092179091556000908152600860205260409020805460ff19166001179055919050565b6000546001600160a01b031633146113445760405162461bcd60e51b8152600401610c6590612c8c565b3383821461138d5760405162461bcd60e51b815260206004820152601660248201527508ae4e4dee474409ad2e6dac2e8c6d04098cadccee8d60531b6044820152606401610c65565b6000805b838110156113df578484828181106113b957634e487b7160e01b600052603260045260246000fd5b90506020020135826113cb9190612d1e565b9150806113d781612dc7565b915050611391565b5080611400836001600160a01b031660009081526005602052604090205490565b101561144e5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20496e73756666696369656e74204572726f72212100000000006044820152606401610c65565b6001600160a01b0382166000908152600560205260409020546114719082612306565b6001600160a01b0383166000908152600560205260408120919091555b85811015611613576115198585838181106114b957634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a868181106114e457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114f991906129dd565b6001600160a01b0316815260208101919091526040016000205490611c98565b6005600089898581811061153d57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061155291906129dd565b6001600160a01b0316815260208101919091526040016000205586868281811061158c57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906115a191906129dd565b6001600160a01b0316836001600160a01b0316600080516020612e448339815191528787858181106115e357634e487b7160e01b600052603260045260246000fd5b905060200201356040516115f991815260200190565b60405180910390a38061160b81612dc7565b91505061148e565b50505050505050565b6000546001600160a01b031633146116465760405162461bcd60e51b8152600401610c6590612c8c565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146116c05760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b606060028054610bb890612d8c565b6000610ca63384610e0485604051806060016040528060258152602001612e64602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906122cc565b6000546001600160a01b031633146117735760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6000610e09338484611e1b565b6000546001600160a01b031633146117c85760405162461bcd60e51b8152600401610c6590612c8c565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061181590831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461184a5760405162461bcd60e51b8152600401610c6590612c8c565b604051600090339047908381818185875af1925050503d806000811461188c576040519150601f19603f3d011682016040523d82523d6000602084013e611891565b606091505b505090508061189f57600080fd5b50565b6000546001600160a01b031633146118cc5760405162461bcd60e51b8152600401610c6590612c8c565b601655565b6000546001600160a01b031633146118fb5760405162461bcd60e51b8152600401610c6590612c8c565b60198054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b031633146119435760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119985760405162461bcd60e51b8152600401610c6590612c8c565b601755565b6000546001600160a01b031633146119c75760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b038116611a2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c65565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611ab15760405162461bcd60e51b8152600401610c6590612c8c565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015611af957600080fd5b505af1158015611b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b319190612b6a565b505050565b6000546001600160a01b03163314611b605760405162461bcd60e51b8152600401610c6590612c8c565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314611bb55760405162461bcd60e51b8152600401610c6590612c8c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600082611be657506000610caa565b6000611bf28385612d56565b905082611bff8583612d36565b14610e0d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c65565b6000610e0d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612348565b600080611ca58385612d1e565b905083811015610e0d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c65565b6001600160a01b038316611d595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c65565b6001600160a01b038216611dba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c65565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611e815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c65565b6001600160a01b038316611ee35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c65565b6001600160a01b03841660009081526009602052604090205460ff16158015611f2557506001600160a01b03831660009081526009602052604090205460ff16155b611f715760405162461bcd60e51b815260206004820152601d60248201527f426f7420456e656d7920616464726573732052657374726963746564210000006044820152606401610c65565b601954600160a01b900460ff1615611f9557611f8e848484612376565b9050610e0d565b6001600160a01b0384166000908152600b602052604090205460ff16158015611fd757506001600160a01b0383166000908152600b602052604090205460ff16155b8015611fec5750601954600160c01b900460ff165b15612054576016548211156120545760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c65565b30600090815260056020526040902054601554811080159081906120825750601954600160a01b900460ff16155b80156120a757506001600160a01b03861660009081526008602052604090205460ff16155b80156120bc5750601954600160a81b900460ff165b156120e257601954600160b01b900460ff16156120d95760155491505b6120e28261244a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546121349186906122cc565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061218157506001600160a01b03861660009081526007602052604090205460ff165b612195576121908787876125fd565b612197565b845b601954909150600160b81b900460ff1680156121cc57506001600160a01b0386166000908152600a602052604090205460ff16155b15612253576017546121f782610c8b896001600160a01b031660009081526005602052604090205490565b11156122535760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610c65565b6001600160a01b0386166000908152600560205260409020546122769082611c98565b6001600160a01b038088166000818152600560205260409081902093909355915190891690600080516020612e44833981519152906122b89085815260200190565b60405180910390a360019350505050610e0d565b600081848411156122f05760405162461bcd60e51b8152600401610c659190612c39565b5060006122fd8486612d75565b95945050505050565b6000610e0d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122cc565b600081836123695760405162461bcd60e51b8152600401610c659190612c39565b5060006122fd8486612d36565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546123c79184906122cc565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546123f69083611c98565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020612e44833981519152906124389086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556013546012546000916124709190611c98565b9050600061248b600f54600c54611c9890919063ffffffff16565b905060006124a6601054600d54611c9890919063ffffffff16565b905060006124c160026124bb86818988611bd7565b90611c56565b905060006124cf8683612306565b9050476124db826126f1565b60006124e74783612306565b905060006125006124f9886002611c56565b8990612306565b9050600061251560026124bb8481878d611bd7565b90506000612527836124bb868b611bd7565b9050600061253982610ee48786612306565b90508115612581576003546040516101009091046001600160a01b0316906108fc8415029084906000818181858888f1935050505015801561257f573d6000803e3d6000fd5b505b80156125c3576004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156125c1573d6000803e3d6000fd5b505b6000831180156125d35750600088115b156125e2576125e288846128af565b50506019805460ff60a01b1916905550505050505050505050565b6001600160a01b038316600090815260086020526040812054819060ff16156126415761263a60646124bb60125486611bd790919063ffffffff16565b905061267f565b6001600160a01b03841660009081526008602052604090205460ff161561267f5761267c60646124bb60135486611bd790919063ffffffff16565b90505b80156126e7573060009081526005602052604090205461269f9082611c98565b30600081815260056020526040908190209290925590516001600160a01b03871690600080516020612e44833981519152906126de9085815260200190565b60405180910390a35b6122fd8382612306565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061273457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561278857600080fd5b505afa15801561279c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c091906129f9565b816001815181106127e157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526018546128079130911684611cf7565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790612840908590600090869030904290600401612ce2565b600060405180830381600087803b15801561285a57600080fd5b505af115801561286e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516128a3929190612cc1565b60405180910390a15050565b6018546128c79030906001600160a01b031684611cf7565b6018546001600160a01b031663f305d7198230856000806128f06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561295357600080fd5b505af1158015612967573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061298c9190612bc9565b5050505050565b60008083601f8401126129a4578182fd5b50813567ffffffffffffffff8111156129bb578182fd5b6020830191508360208260051b85010111156129d657600080fd5b9250929050565b6000602082840312156129ee578081fd5b8135610e0d81612df8565b600060208284031215612a0a578081fd5b8151610e0d81612df8565b60008060408385031215612a27578081fd5b8235612a3281612df8565b91506020830135612a4281612df8565b809150509250929050565b600080600060608486031215612a61578081fd5b8335612a6c81612df8565b92506020840135612a7c81612df8565b929592945050506040919091013590565b60008060408385031215612a9f578182fd5b8235612aaa81612df8565b91506020830135612a4281612e0d565b60008060408385031215612acc578182fd5b8235612ad781612df8565b946020939093013593505050565b60008060008060408587031215612afa578081fd5b843567ffffffffffffffff80821115612b11578283fd5b612b1d88838901612993565b90965094506020870135915080821115612b35578283fd5b50612b4287828801612993565b95989497509550505050565b600060208284031215612b5f578081fd5b8135610e0d81612e0d565b600060208284031215612b7b578081fd5b8151610e0d81612e0d565b600060208284031215612b97578081fd5b5035919050565b600080600060608486031215612bb2578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215612bdd578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015612c2e5781516001600160a01b031687529582019590820190600101612c09565b509495945050505050565b6000602080835283518082850152825b81811015612c6557858101830151858201604001528201612c49565b81811115612c765783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612cda6040830184612bf6565b949350505050565b85815284602082015260a060408201526000612d0160a0830186612bf6565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612d3157612d31612de2565b500190565b600082612d5157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612d7057612d70612de2565b500290565b600082821015612d8757612d87612de2565b500390565b600181811c90821680612da057607f821691505b60208210811415612dc157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ddb57612ddb612de2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461189f57600080fd5b801515811461189f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f7ed7b2bdd660b1329dc1d3047081e1f114b83e7f26a398ac0cf55d6b1ec721964736f6c63430008040033
Deployed Bytecode Sourcemap
12763:16337:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16690:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21621:317;;;;;;;;;;-1:-1:-1;21621:317:0;;;;;:::i;:::-;;:::i;:::-;;13279:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5556:32:1;;;5538:51;;5526:2;5511:18;13279:81:0;5493:102:1;17856:161:0;;;;;;;;;;-1:-1:-1;17856:161:0;;;;;:::i;:::-;;:::i;:::-;;;7189:14:1;;7182:22;7164:41;;7152:2;7137:18;17856:161:0;7119:92:1;20289:113:0;;;;;;;;;;-1:-1:-1;20289:113:0;;;;;:::i;:::-;;:::i;14412:41::-;;;;;;;;;;-1:-1:-1;14412:41:0;;;;-1:-1:-1;;;;;14412:41:0;;;16967:100;;;;;;;;;;-1:-1:-1;17047:12:0;;16967:100;;;13229:25:1;;;13217:2;13202:18;16967:100:0;13184:76:1;21304:309:0;;;;;;;;;;-1:-1:-1;21304:309:0;;;;;:::i;:::-;;:::i;18789:135::-;;;;;;;;;;-1:-1:-1;18789:135:0;;;;;:::i;:::-;;:::i;13854:35::-;;;;;;;;;;;;;;;;22215:313;;;;;;;;;;-1:-1:-1;22215:313:0;;;;;:::i;:::-;;:::i;19166:113::-;;;;;;;;;;-1:-1:-1;19166:113:0;;;;;:::i;:::-;;:::i;13191:81::-;;;;;;;;;;;;;;;20125:156;;;;;;;;;;;;;:::i;16876:83::-;;;;;;;;;;-1:-1:-1;16942:9:0;;16876:83;;16942:9;;;;14331:36:1;;14319:2;14304:18;16876:83:0;14286:87:1;17353:218:0;;;;;;;;;;-1:-1:-1;17353:218:0;;;;;:::i;:::-;;:::i;19397:124::-;;;;;;;;;;-1:-1:-1;19397:124:0;;;;;:::i;:::-;;:::i;13553:45::-;;;;;;;;;;-1:-1:-1;13553:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14527:40;;;;;;;;;;-1:-1:-1;14527:40:0;;;;-1:-1:-1;;;14527:40:0;;;;;;19529:132;;;;;;;;;;-1:-1:-1;19529:132:0;;;;;:::i;:::-;;:::i;13988:36::-;;;;;;;;;;;;;;;;13496:50;;;;;;;;;;-1:-1:-1;13496:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20548:748;;;;;;;;;;-1:-1:-1;20548:748:0;;;;;:::i;:::-;;:::i;28392:697::-;;;;;;;;;;-1:-1:-1;28392:697:0;;;;;:::i;:::-;;:::i;17075:119::-;;;;;;;;;;-1:-1:-1;17075:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;17168:18:0;17141:7;17168:18;;;:9;:18;;;;;;;17075:119;4440:230;;;;;;;;;;;;;:::i;12987:92::-;;;;;;;;;;-1:-1:-1;12987:92:0;;;;;;;-1:-1:-1;;;;;12987:92:0;;;14266:59;;;;;;;;;;;;;;;;14338:58;;;;;;;;;;;;;;;;14072:33;;;;;;;;;;;;;;;;18370:129;;;;;;;;;;-1:-1:-1;18370:129:0;;;;;:::i;:::-;;:::i;14670:41::-;;;;;;;;;;-1:-1:-1;14670:41:0;;;;-1:-1:-1;;;14670:41:0;;;;;;13902:36;;;;;;;;;;;;;;;;13713:48;;;;;;;;;;-1:-1:-1;13713:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4215:79;;;;;;;;;;-1:-1:-1;4253:7:0;4280:6;-1:-1:-1;;;;;4280:6:0;4215:79;;16781:87;;;;;;;;;;;;;:::i;17579:269::-;;;;;;;;;;-1:-1:-1;17579:269:0;;;;;:::i;:::-;;:::i;19988:125::-;;;;;;;;;;-1:-1:-1;19988:125:0;;;;;:::i;:::-;;:::i;22040:167::-;;;;;;;;;;-1:-1:-1;22040:167:0;;;;;:::i;:::-;;:::i;19809:171::-;;;;;;;;;;-1:-1:-1;19809:171:0;;;;;:::i;:::-;;:::i;13812:35::-;;;;;;;;;;;;;;;;14460:26;;;;;;;;;;-1:-1:-1;14460:26:0;;;;-1:-1:-1;;;;;14460:26:0;;;13945:36;;;;;;;;;;;;;;;;13654:52;;;;;;;;;;-1:-1:-1;13654:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14177:69;;;;;;;;;;;;;;;;14574:45;;;;;;;;;;-1:-1:-1;14574:45:0;;;;-1:-1:-1;;;14574:45:0;;;;;;13770:35;;;;;;;;;;;;;;;;17202:143;;;;;;;;;;-1:-1:-1;17202:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17310:18:0;;;17283:7;17310:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17202:143;24577:154;;;;;;;;;;;;;:::i;19047:111::-;;;;;;;;;;-1:-1:-1;19047:111:0;;;;;:::i;:::-;;:::i;18932:107::-;;;;;;;;;;-1:-1:-1;18932:107:0;;;;;:::i;:::-;;:::i;18507:135::-;;;;;;;;;;-1:-1:-1;18507:135:0;;;;;:::i;:::-;;:::i;14033:32::-;;;;;;;;;;;;;;;;19287:102;;;;;;;;;;-1:-1:-1;19287:102:0;;;;;:::i;:::-;;:::i;4678:244::-;;;;;;;;;;-1:-1:-1;4678:244:0;;;;;:::i;:::-;;:::i;24430:139::-;;;;;;;;;;-1:-1:-1;24430:139:0;;;;;:::i;:::-;;:::i;18650:127::-;;;;;;;;;;-1:-1:-1;18650:127:0;;;;;:::i;:::-;;:::i;14628:35::-;;;;;;;;;;-1:-1:-1;14628:35:0;;;;-1:-1:-1;;;14628:35:0;;;;;;13086:92;;;;;;;;;;-1:-1:-1;13086:92:0;;;;-1:-1:-1;;;;;13086:92:0;;;13605:42;;;;;;;;;;-1:-1:-1;13605:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19669:132;;;;;;;;;;-1:-1:-1;19669:132:0;;;;;:::i;:::-;;:::i;16690:83::-;16727:13;16760:5;16753:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16690:83;:::o;21621:317::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;;;;;;;;;21723:17:::1;:30:::0;;;21764:17:::1;:30:::0;;;21805:17:::1;:30:::0;;;21867:63:::1;21825:10:::0;21867:40:::1;21743:10:::0;21784;21867:21:::1;:40::i;:::-;:44:::0;::::1;:63::i;:::-;21846:18;:84:::0;-1:-1:-1;;;21621:317:0:o;17856:161::-;17931:4;17948:39;1521:10;17971:7;17980:6;17948:8;:39::i;:::-;-1:-1:-1;18005:4:0;17856:161;;;;;:::o;20289:113::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20369:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:25;;-1:-1:-1;;20369:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20289:113::o;21304:309::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;21405:16:::1;:29:::0;;;21445:16:::1;:29:::0;;;21485:16:::1;:29:::0;;;21545:60:::1;21504:10:::0;21545:38:::1;21424:10:::0;21464;21545:20:::1;:38::i;:60::-;21525:17;:80:::0;-1:-1:-1;;;21304:309:0:o;18789:135::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18880:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;18880:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18789:135::o;22215:313::-;22313:4;22330:36;22340:6;22348:9;22359:6;22330:9;:36::i;:::-;-1:-1:-1;22377:121:0;22386:6;1521:10;22408:89;22446:6;22408:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22408:19:0;;;;;;:11;:19;;;;;;;;1521:10;22408:33;;;;;;;;;;:37;:89::i;:::-;22377:8;:121::i;:::-;-1:-1:-1;22516:4:0;22215:313;;;;;;:::o;19166:113::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;19244:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;19244:27:0::1;-1:-1:-1::0;;;;19244:27:0;;::::1;::::0;;;::::1;::::0;;19166:113::o;20125:156::-;-1:-1:-1;;;;;20260:11:0;17168:18;20178:7;17168:18;;;:9;:18;;;;;;20205:68;;:40;20222:22;20232:11;-1:-1:-1;;;;;17168:18:0;17141:7;17168:18;;;:9;:18;;;;;;;17075:119;20222:22;20205:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;20198:75;;20125:156;:::o;17353:218::-;1521:10;17441:4;17490:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17490:34:0;;;;;;;;;;17441:4;;17458:83;;17481:7;;17490:50;;17529:10;17490:38;:50::i;19397:124::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;19479:23:::1;:34:::0;19397:124::o;19529:132::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;19616:15:::1;:37:::0;;-1:-1:-1;;;;;19616:37:0;;::::1;;;-1:-1:-1::0;;;;;;19616:37:0;;::::1;::::0;;;::::1;::::0;;19529:132::o;20548:748::-;20628:22;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;20665:35:::1;20722:16;20665:74;;20788:16;-1:-1:-1::0;;;;;20788:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20770:53:0::1;;20832:4;20839:16;-1:-1:-1::0;;;;;20839:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20770:93;::::0;-1:-1:-1;;;;;;20770:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6054:15:1;;;20770:93:0::1;::::0;::::1;6036:34:1::0;6106:15;;6086:18;;;6079:43;5971:18;;20770:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20753:110:::0;-1:-1:-1;;;;;;20879:28:0;::::1;20876:225;;20993:16;-1:-1:-1::0;;;;;20993:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20975:74:0::1;;21058:4;21065:16;-1:-1:-1::0;;;;;21065:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20975:114;::::0;-1:-1:-1;;;;;;20975:114:0::1;::::0;;;;;;-1:-1:-1;;;;;6054:15:1;;;20975:114:0::1;::::0;::::1;6036:34:1::0;6106:15;;6086:18;;;6079:43;5971:18;;20975:114:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20958:131;;20876:225;21113:11;:28:::0;;-1:-1:-1;;;;;21113:28:0;;::::1;-1:-1:-1::0;;;;;;21113:28:0;;::::1;::::0;::::1;::::0;;;21175:15:::1;:34:::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;21113:11:::1;21247:34:::0;;;:12:::1;:34;::::0;;;;:41;;-1:-1:-1;;21247:41:0::1;21113:28:::0;21247:41:::1;::::0;;21127:14;20548:748;-1:-1:-1;20548:748:0:o;28392:697::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;28510:10:::1;28539:33:::0;;::::1;28531:67;;;::::0;-1:-1:-1;;;28531:67:0;;11762:2:1;28531:67:0::1;::::0;::::1;11744:21:1::0;11801:2;11781:18;;;11774:30;-1:-1:-1;;;11820:18:1;;;11813:52;11882:18;;28531:67:0::1;11734:172:1::0;28531:67:0::1;28609:15;::::0;28635:92:::1;28651:18:::0;;::::1;28635:92;;;28705:7;;28713:1;28705:10;;;;;-1:-1:-1::0;;;28705:10:0::1;;;;;;;;;;;;;;;28691:24;;;;;:::i;:::-;::::0;-1:-1:-1;28671:3:0;::::1;::::0;::::1;:::i;:::-;;;;28635:92;;;;28767:10;28745:18;28755:7;-1:-1:-1::0;;;;;17168:18:0;17141:7;17168:18;;;:9;:18;;;;;;;17075:119;28745:18:::1;:32;;28737:71;;;::::0;-1:-1:-1;;;28737:71:0;;8665:2:1;28737:71:0::1;::::0;::::1;8647:21:1::0;8704:2;8684:18;;;8677:30;8743:29;8723:18;;;8716:57;8790:18;;28737:71:0::1;8637:177:1::0;28737:71:0::1;-1:-1:-1::0;;;;;28840:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;:34:::1;::::0;28863:10;28840:22:::1;:34::i;:::-;-1:-1:-1::0;;;;;28819:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;:55;;;;28886:194:::1;28902:19:::0;;::::1;28886:194;;;28968:38;28995:7;;29003:1;28995:10;;;;;-1:-1:-1::0;;;28995:10:0::1;;;;;;;;;;;;;;;28968:9;:22;28978:8;;28987:1;28978:11;;;;;-1:-1:-1::0;;;28978:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;28968:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;28968:22:0;;;:26:::1;:38::i;:::-;28943:9;:22;28953:8;;28962:1;28953:11;;;;;-1:-1:-1::0;;;28953:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;28943:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;28943:22:0;:63;29044:8;;29053:1;29044:11;;::::1;;;-1:-1:-1::0;;;29044:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29026:42:0::1;29035:7;-1:-1:-1::0;;;;;29026:42:0::1;-1:-1:-1::0;;;;;;;;;;;29057:7:0::1;;29065:1;29057:10;;;;;-1:-1:-1::0;;;29057:10:0::1;;;;;;;;;;;;;;;29026:42;;;;13229:25:1::0;;13217:2;13202:18;;13184:76;29026:42:0::1;;;;;;;;28923:3:::0;::::1;::::0;::::1;:::i;:::-;;;;28886:194;;;;4419:1;;28392:697:::0;;;;:::o;4440:230::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;4531:6:::1;::::0;;4510:81:::1;::::0;4547:42:::1;::::0;-1:-1:-1;;;;;4531:6:0;;::::1;::::0;4510:81:::1;::::0;::::1;4602:6;:60:::0;;-1:-1:-1;;;;;;4602:60:0::1;4619:42;4602:60;::::0;;4440:230::o;18370:129::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18459:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;18459:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18370:129::o;16781:87::-;16820:13;16853:7;16846:14;;;;;:::i;17579:269::-;17672:4;17689:129;1521:10;17712:7;17721:96;17760:15;17721:96;;;;;;;;;;;;;;;;;1521:10;17721:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17721:34:0;;;;;;;;;;;;:38;:96::i;19988:125::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;20069:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;20069:36:0::1;-1:-1:-1::0;;;;20069:36:0;;::::1;::::0;;;::::1;::::0;;19988:125::o;22040:167::-;22118:4;22135:42;1521:10;22159:9;22170:6;22135:9;:42::i;19809:171::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;19886:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;19886:32:0::1;-1:-1:-1::0;;;;19886:32:0;;::::1;;::::0;;19934:38:::1;::::0;::::1;::::0;::::1;::::0;19910:8;7189:14:1;7182:22;7164:41;;7152:2;7137:18;;7119:92;19934:38:0::1;;;;;;;;19809:171:::0;:::o;24577:154::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;24643:58:::1;::::0;24631:7:::1;::::0;24651:10:::1;::::0;24675:21:::1;::::0;24631:7;24643:58;24631:7;24643:58;24675:21;24651:10;24643:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24630:71;;;24720:2;24712:11;;;::::0;::::1;;4419:1;24577:154::o:0;19047:111::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;19124:12:::1;:26:::0;19047:111::o;18932:107::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;18999:22:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;18999:32:0::1;-1:-1:-1::0;;;;18999:32:0;;::::1;::::0;;;::::1;::::0;;18932:107::o;18507:135::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18597:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;18597:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18507:135::o;19287:102::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;19359:10:::1;:22:::0;19287:102::o;4678:244::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4767:22:0;::::1;4759:73;;;::::0;-1:-1:-1;;;4759:73:0;;9021:2:1;4759:73:0::1;::::0;::::1;9003:21:1::0;9060:2;9040:18;;;9033:30;9099:34;9079:18;;;9072:62;-1:-1:-1;;;9150:18:1;;;9143:36;9196:19;;4759:73:0::1;8993:228:1::0;4759:73:0::1;4869:6;::::0;;4848:38:::1;::::0;-1:-1:-1;;;;;4848:38:0;;::::1;::::0;4869:6;::::1;::::0;4848:38:::1;::::0;::::1;4897:6;:17:::0;;-1:-1:-1;;;;;;4897:17:0::1;-1:-1:-1::0;;;;;4897:17:0;;;::::1;::::0;;;::::1;::::0;;4678:244::o;24430:139::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;24518:43:::1;::::0;-1:-1:-1;;;24518:43:0;;24542:10:::1;24518:43;::::0;::::1;6307:51:1::0;6374:18;;;6367:34;;;-1:-1:-1;;;;;24518:23:0;::::1;::::0;::::1;::::0;6280:18:1;;24518:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24430:139:::0;;:::o;18650:127::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18737:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;18737:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18650:127::o;19669:132::-;4349:6;;-1:-1:-1;;;;;4349:6:0;1521:10;4349:22;4341:67;;;;-1:-1:-1;;;4341:67:0;;;;;;;:::i;:::-;19756:15:::1;:37:::0;;-1:-1:-1;;;;;;19756:37:0::1;-1:-1:-1::0;;;;;19756:37:0;;;::::1;::::0;;;::::1;::::0;;19669:132::o;2900:250::-;2958:7;2982:6;2978:47;;-1:-1:-1;3012:1:0;3005:8;;2978:47;3037:9;3049:5;3053:1;3049;:5;:::i;:::-;3037:17;-1:-1:-1;3082:1:0;3073:5;3077:1;3037:17;3073:5;:::i;:::-;:10;3065:56;;;;-1:-1:-1;;;3065:56:0;;11360:2:1;3065:56:0;;;11342:21:1;11399:2;11379:18;;;11372:30;11438:34;11418:18;;;11411:62;-1:-1:-1;;;11489:18:1;;;11482:31;11530:19;;3065:56:0;11332:223:1;3158:132:0;3216:7;3243:39;3247:1;3250;3243:39;;;;;;;;;;;;;;;;;:3;:39::i;2367:181::-;2425:7;;2457:5;2461:1;2457;:5;:::i;:::-;2445:17;;2486:1;2481;:6;;2473:46;;;;-1:-1:-1;;;2473:46:0;;9831:2:1;2473:46:0;;;9813:21:1;9870:2;9850:18;;;9843:30;9909:29;9889:18;;;9882:57;9956:18;;2473:46:0;9803:177:1;18025:337:0;-1:-1:-1;;;;;18118:19:0;;18110:68;;;;-1:-1:-1;;;18110:68:0;;12880:2:1;18110:68:0;;;12862:21:1;12919:2;12899:18;;;12892:30;12958:34;12938:18;;;12931:62;-1:-1:-1;;;13009:18:1;;;13002:34;13053:19;;18110:68:0;12852:226:1;18110:68:0;-1:-1:-1;;;;;18197:21:0;;18189:68;;;;-1:-1:-1;;;18189:68:0;;9428:2:1;18189:68:0;;;9410:21:1;9467:2;9447:18;;;9440:30;9506:34;9486:18;;;9479:62;-1:-1:-1;;;9557:18:1;;;9550:32;9599:19;;18189:68:0;9400:224:1;18189:68:0;-1:-1:-1;;;;;18270:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18322:32;;13229:25:1;;;18322:32:0;;13202:18:1;18322:32:0;;;;;;;18025:337;;;:::o;22536:1886::-;22623:4;-1:-1:-1;;;;;22650:20:0;;22642:70;;;;-1:-1:-1;;;22642:70:0;;12474:2:1;22642:70:0;;;12456:21:1;12513:2;12493:18;;;12486:30;12552:34;12532:18;;;12525:62;-1:-1:-1;;;12603:18:1;;;12596:35;12648:19;;22642:70:0;12446:227:1;22642:70:0;-1:-1:-1;;;;;22731:23:0;;22723:71;;;;-1:-1:-1;;;22723:71:0;;8261:2:1;22723:71:0;;;8243:21:1;8300:2;8280:18;;;8273:30;8339:34;8319:18;;;8312:62;-1:-1:-1;;;8390:18:1;;;8383:33;8433:19;;22723:71:0;8233:225:1;22723:71:0;-1:-1:-1;;;;;22814:17:0;;;;;;:9;:17;;;;;;;;22813:18;:43;;;;-1:-1:-1;;;;;;22836:20:0;;;;;;:9;:20;;;;;;;;22835:21;22813:43;22805:85;;;;-1:-1:-1;;;22805:85:0;;10593:2:1;22805:85:0;;;10575:21:1;10632:2;10612:18;;;10605:30;10671:31;10651:18;;;10644:59;10720:18;;22805:85:0;10565:179:1;22805:85:0;22906:16;;-1:-1:-1;;;22906:16:0;;;;22903:1502;;;22956:41;22971:6;22979:9;22990:6;22956:14;:41::i;:::-;22949:48;;;;22903:1502;-1:-1:-1;;;;;23055:23:0;;;;;;:15;:23;;;;;;;;23054:24;:55;;;;-1:-1:-1;;;;;;23083:26:0;;;;;;:15;:26;;;;;;;;23082:27;23054:55;:81;;;;-1:-1:-1;23113:22:0;;-1:-1:-1;;;23113:22:0;;;;23054:81;23051:196;;;23174:12;;23164:6;:22;;23156:75;;;;-1:-1:-1;;;23156:75:0;;10951:2:1;23156:75:0;;;10933:21:1;10990:2;10970:18;;;10963:30;11029:34;11009:18;;;11002:62;-1:-1:-1;;;11080:18:1;;;11073:38;11128:19;;23156:75:0;10923:230:1;23156:75:0;23312:4;23263:28;17168:18;;;:9;:18;;;;;;23388:23;;23364:47;;;;;;;23444:44;;-1:-1:-1;23472:16:0;;-1:-1:-1;;;23472:16:0;;;;23471:17;23444:44;:69;;;;-1:-1:-1;;;;;;23493:20:0;;;;;;:12;:20;;;;;;;;23492:21;23444:69;:94;;;;-1:-1:-1;23517:21:0;;-1:-1:-1;;;23517:21:0;;;;23444:94;23440:305;;;23576:25;;-1:-1:-1;;;23576:25:0;;;;23573:97;;;23647:23;;23624:46;;23573:97;23689:36;23704:20;23689:14;:36::i;:::-;23781:53;;;;;;;;;;;-1:-1:-1;;;23781:53:0;;;;;;;;-1:-1:-1;;;;;23781:17:0;;-1:-1:-1;23781:17:0;;;:9;:17;;;;;;;;:53;;23803:6;;23781:21;:53::i;:::-;-1:-1:-1;;;;;23761:17:0;;;;;;:9;:17;;;;;;;;:73;;;;23874:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;23903:28:0;;;;;;:17;:28;;;;;;;;23874:57;23873:148;;23987:34;23995:6;24003:9;24014:6;23987:7;:34::i;:::-;23873:148;;;23978:6;23873:148;24041:16;;23851:170;;-1:-1:-1;;;;24041:16:0;;;;:51;;;;-1:-1:-1;;;;;;24062:30:0;;;;;;:19;:30;;;;;;;;24061:31;24041:51;24038:191;;;24162:10;;24121:37;24146:11;24121:20;24131:9;-1:-1:-1;;;;;17168:18:0;17141:7;17168:18;;;:9;:18;;;;;;;17075:119;24121:37;:51;;24113:100;;;;-1:-1:-1;;;24113:100:0;;10187:2:1;24113:100:0;;;10169:21:1;10226:2;10206:18;;;10199:30;10265:34;10245:18;;;10238:62;-1:-1:-1;;;10316:18:1;;;10309:35;10361:19;;24113:100:0;10159:227:1;24113:100:0;-1:-1:-1;;;;;24268:20:0;;;;;;:9;:20;;;;;;:37;;24293:11;24268:24;:37::i;:::-;-1:-1:-1;;;;;24245:20:0;;;;;;;:9;:20;;;;;;;:60;;;;24327:40;;;;;;-1:-1:-1;;;;;;;;;;;24327:40:0;;;24355:11;13229:25:1;;13217:2;13202:18;;13184:76;24327:40:0;;;;;;;;24389:4;24382:11;;;;;;;2700:192;2786:7;2822:12;2814:6;;;;2806:29;;;;-1:-1:-1;;;2806:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2846:9:0;2858:5;2862:1;2858;:5;:::i;:::-;2846:17;2700:192;-1:-1:-1;;;;;2700:192:0:o;2556:136::-;2614:7;2641:43;2645:1;2648;2641:43;;;;;;;;;;;;;;;;;:3;:43::i;3298:278::-;3384:7;3419:12;3412:5;3404:28;;;;-1:-1:-1;;;3404:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3443:9:0;3455:5;3459:1;3455;:5;:::i;24739:330::-;24869:53;;;;;;;;;;;-1:-1:-1;;;24869:53:0;;;;;;;;-1:-1:-1;;;;;24869:17:0;;24832:4;24869:17;;;:9;:17;;;;;;;:53;;24891:6;;24869:21;:53::i;:::-;-1:-1:-1;;;;;24849:17:0;;;;;;;:9;:17;;;;;;:73;;;;24956:20;;;;;;;:32;;24981:6;24956:24;:32::i;:::-;-1:-1:-1;;;;;24933:20:0;;;;;;;:9;:20;;;;;;;:55;;;;25004:35;;;;;;-1:-1:-1;;;;;;;;;;;25004:35:0;;;25032:6;13229:25:1;;13217:2;13202:18;;13184:76;25004:35:0;;;;;;;;-1:-1:-1;25057:4:0;24739:330;;;;;:::o;25077:1449::-;15136:16;:23;;-1:-1:-1;;;;15136:23:0;-1:-1:-1;;;15136:23:0;;;25195:18:::1;::::0;25173:17:::1;::::0;15136:23;;25173:41:::1;::::0;:17;:21:::1;:41::i;:::-;25151:63;;25227:22;25252:39;25273:17;;25252:16;;:20;;:39;;;;:::i;:::-;25227:64;;25302:22;25327:39;25348:17;;25327:16;;:20;;:39;;;;:::i;:::-;25302:64:::0;-1:-1:-1;25465:18:0::1;25486:51;25535:1;25486:44;25518:11:::0;25486:44;:7;25498:14;25486:11:::1;:27::i;:::-;:31:::0;::::1;:44::i;:51::-;25465:72:::0;-1:-1:-1;25548:20:0::1;25571:23;:7:::0;25465:72;25571:11:::1;:23::i;:::-;25548:46:::0;-1:-1:-1;25633:21:0::1;25665:30;25548:46:::0;25665:16:::1;:30::i;:::-;25706:23;25733:41;:21;25759:14:::0;25733:25:::1;:41::i;:::-;25706:68:::0;-1:-1:-1;25787:19:0::1;25809:38;25825:21;:14:::0;25844:1:::1;25825:18;:21::i;:::-;25809:11:::0;;:15:::1;:38::i;:::-;25787:60:::0;-1:-1:-1;25860:26:0::1;25889:59;25946:1;25889:52;25787:60:::0;25889:52;:15;25909:14;25889:19:::1;:35::i;:59::-;25860:88:::0;-1:-1:-1;25959:26:0::1;25988:52;26028:11:::0;25988:35:::1;:15:::0;26008:14;25988:19:::1;:35::i;:52::-;25959:81:::0;-1:-1:-1;26051:26:0::1;26080:63;25959:81:::0;26080:39:::1;:15:::0;26100:18;26080:19:::1;:39::i;:63::-;26051:92:::0;-1:-1:-1;26159:22:0;;26156:107:::1;;26206:15;::::0;26198:53:::1;::::0;26206:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;26206:15:0::1;::::0;26198:53:::1;::::0;::::1;;::::0;;;::::1;::::0;;;;26206:15;26198:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;26156:107;26278:22:::0;;26275:107:::1;;26325:15;::::0;26317:53:::1;::::0;-1:-1:-1;;;;;26325:15:0;;::::1;::::0;26317:53;::::1;;;::::0;26351:18;;26325:15:::1;26317:53:::0;26325:15;26317:53;26351:18;26325:15;26317:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;26275:107;26427:1;26406:18;:22;:40;;;;;26445:1;26432:10;:14;26406:40;26403:116;;;26463:44;26476:10;26488:18;26463:12;:44::i;:::-;-1:-1:-1::0;;15182:16:0;:24;;-1:-1:-1;;;;15182:24:0;;;-1:-1:-1;;;;;;;;;;25077:1449:0:o;27733:622::-;-1:-1:-1;;;;;27894:20:0;;27819:7;27894:20;;;:12;:20;;;;;;27819:7;;27894:20;;27891:223;;;27943:38;27977:3;27943:29;27954:17;;27943:6;:10;;:29;;;;:::i;:38::-;27931:50;;27891:223;;;-1:-1:-1;;;;;28011:23:0;;;;;;:12;:23;;;;;;;;28008:106;;;28063:39;28098:3;28063:30;28074:18;;28063:6;:10;;:30;;;;:::i;:39::-;28051:51;;28008:106;28137:13;;28134:173;;28212:4;28194:24;;;;:9;:24;;;;;;:39;;28223:9;28194:28;:39::i;:::-;28185:4;28167:24;;;;:9;:24;;;;;;;:66;;;;28253:42;;-1:-1:-1;;;;;28253:42:0;;;-1:-1:-1;;;;;;;;;;;28253:42:0;;;28285:9;13229:25:1;;13217:2;13202:18;;13184:76;28253:42:0;;;;;;;;28134:173;28326:21;:6;28337:9;28326:10;:21::i;26538:666::-;26688:16;;;26702:1;26688:16;;;;;;;;26664:21;;26688:16;;;;;;;;;;-1:-1:-1;26688:16:0;26664:40;;26733:4;26715;26720:1;26715:7;;;;;;-1:-1:-1;;;26715:7:0;;;;;;;;;-1:-1:-1;;;;;26715:23:0;;;:7;;;;;;;;;;:23;;;;26759:15;;:22;;;-1:-1:-1;;;26759:22:0;;;;:15;;;;;:20;;:22;;;;;26715:7;;26759:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26749:4;26754:1;26749:7;;;;;;-1:-1:-1;;;26749:7:0;;;;;;;;;-1:-1:-1;;;;;26749:32:0;;;:7;;;;;;;;;:32;26826:15;;26794:62;;26811:4;;26826:15;26844:11;26794:8;:62::i;:::-;26895:15;;:240;;-1:-1:-1;;;26895:240:0;;-1:-1:-1;;;;;26895:15:0;;;;:66;;:240;;26976:11;;26895:15;;27046:4;;27073;;27109:15;;26895:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27161:35;27178:11;27191:4;27161:35;;;;;;;:::i;:::-;;;;;;;;26538:666;;:::o;27212:513::-;27392:15;;27360:62;;27377:4;;-1:-1:-1;;;;;27392:15:0;27410:11;27360:8;:62::i;:::-;27465:15;;-1:-1:-1;;;;;27465:15:0;:31;27504:9;27537:4;27557:11;27465:15;;27669:7;4253;4280:6;-1:-1:-1;;;;;4280:6:0;;4215:79;27669:7;27465:252;;;;;;-1:-1:-1;;;;;;27465:252:0;;;-1:-1:-1;;;;;6771:15:1;;;27465:252:0;;;6753:34:1;6803:18;;;6796:34;;;;6846:18;;;6839:34;;;;6889:18;;;6882:34;6953:15;;;6932:19;;;6925:44;27691:15:0;6985:19:1;;;6978:35;6687:19;;27465:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27212:513;;:::o;14:395:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:2;;166:8;156;149:26;108:2;-1:-1:-1;196:20:1;;239:18;228:30;;225:2;;;278:8;268;261:26;225:2;322:4;314:6;310:17;298:29;;382:3;375:4;365:6;362:1;358:14;350:6;346:27;342:38;339:47;336:2;;;399:1;396;389:12;336:2;98:311;;;;;:::o;414:257::-;473:6;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;591:9;578:23;610:31;635:5;610:31;:::i;676:261::-;746:6;799:2;787:9;778:7;774:23;770:32;767:2;;;820:6;812;805:22;767:2;857:9;851:16;876:31;901:5;876:31;:::i;942:398::-;1010:6;1018;1071:2;1059:9;1050:7;1046:23;1042:32;1039:2;;;1092:6;1084;1077:22;1039:2;1136:9;1123:23;1155:31;1180:5;1155:31;:::i;:::-;1205:5;-1:-1:-1;1262:2:1;1247:18;;1234:32;1275:33;1234:32;1275:33;:::i;:::-;1327:7;1317:17;;;1029:311;;;;;:::o;1345:466::-;1422:6;1430;1438;1491:2;1479:9;1470:7;1466:23;1462:32;1459:2;;;1512:6;1504;1497:22;1459:2;1556:9;1543:23;1575:31;1600:5;1575:31;:::i;:::-;1625:5;-1:-1:-1;1682:2:1;1667:18;;1654:32;1695:33;1654:32;1695:33;:::i;:::-;1449:362;;1747:7;;-1:-1:-1;;;1801:2:1;1786:18;;;;1773:32;;1449:362::o;1816:392::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:2;;;1963:6;1955;1948:22;1910:2;2007:9;1994:23;2026:31;2051:5;2026:31;:::i;:::-;2076:5;-1:-1:-1;2133:2:1;2118:18;;2105:32;2146:30;2105:32;2146:30;:::i;2213:325::-;2281:6;2289;2342:2;2330:9;2321:7;2317:23;2313:32;2310:2;;;2363:6;2355;2348:22;2310:2;2407:9;2394:23;2426:31;2451:5;2426:31;:::i;:::-;2476:5;2528:2;2513:18;;;;2500:32;;-1:-1:-1;;;2300:238:1:o;2543:803::-;2665:6;2673;2681;2689;2742:2;2730:9;2721:7;2717:23;2713:32;2710:2;;;2763:6;2755;2748:22;2710:2;2808:9;2795:23;2837:18;2878:2;2870:6;2867:14;2864:2;;;2899:6;2891;2884:22;2864:2;2943:70;3005:7;2996:6;2985:9;2981:22;2943:70;:::i;:::-;3032:8;;-1:-1:-1;2917:96:1;-1:-1:-1;3120:2:1;3105:18;;3092:32;;-1:-1:-1;3136:16:1;;;3133:2;;;3170:6;3162;3155:22;3133:2;;3214:72;3278:7;3267:8;3256:9;3252:24;3214:72;:::i;:::-;2700:646;;;;-1:-1:-1;3305:8:1;-1:-1:-1;;;;2700:646:1:o;3351:251::-;3407:6;3460:2;3448:9;3439:7;3435:23;3431:32;3428:2;;;3481:6;3473;3466:22;3428:2;3525:9;3512:23;3544:28;3566:5;3544:28;:::i;3607:255::-;3674:6;3727:2;3715:9;3706:7;3702:23;3698:32;3695:2;;;3748:6;3740;3733:22;3695:2;3785:9;3779:16;3804:28;3826:5;3804:28;:::i;3867:190::-;3926:6;3979:2;3967:9;3958:7;3954:23;3950:32;3947:2;;;4000:6;3992;3985:22;3947:2;-1:-1:-1;4028:23:1;;3937:120;-1:-1:-1;3937:120:1:o;4062:326::-;4139:6;4147;4155;4208:2;4196:9;4187:7;4183:23;4179:32;4176:2;;;4229:6;4221;4214:22;4176:2;-1:-1:-1;;4257:23:1;;;4327:2;4312:18;;4299:32;;-1:-1:-1;4378:2:1;4363:18;;;4350:32;;4166:222;-1:-1:-1;4166:222:1:o;4393:316::-;4481:6;4489;4497;4550:2;4538:9;4529:7;4525:23;4521:32;4518:2;;;4571:6;4563;4556:22;4518:2;4605:9;4599:16;4589:26;;4655:2;4644:9;4640:18;4634:25;4624:35;;4699:2;4688:9;4684:18;4678:25;4668:35;;4508:201;;;;;:::o;4714:463::-;4767:3;4805:5;4799:12;4832:6;4827:3;4820:19;4858:4;4887:2;4882:3;4878:12;4871:19;;4924:2;4917:5;4913:14;4945:3;4957:195;4971:6;4968:1;4965:13;4957:195;;;5036:13;;-1:-1:-1;;;;;5032:39:1;5020:52;;5092:12;;;;5127:15;;;;5068:1;4986:9;4957:195;;;-1:-1:-1;5168:3:1;;4775:402;-1:-1:-1;;;;;4775:402:1:o;7451:603::-;7563:4;7592:2;7621;7610:9;7603:21;7653:6;7647:13;7696:6;7691:2;7680:9;7676:18;7669:34;7721:4;7734:140;7748:6;7745:1;7742:13;7734:140;;;7843:14;;;7839:23;;7833:30;7809:17;;;7828:2;7805:26;7798:66;7763:10;;7734:140;;;7892:6;7889:1;7886:13;7883:2;;;7962:4;7957:2;7948:6;7937:9;7933:22;7929:31;7922:45;7883:2;-1:-1:-1;8038:2:1;8017:15;-1:-1:-1;;8013:29:1;7998:45;;;;8045:2;7994:54;;7572:482;-1:-1:-1;;;7572:482:1:o;11911:356::-;12113:2;12095:21;;;12132:18;;;12125:30;12191:34;12186:2;12171:18;;12164:62;12258:2;12243:18;;12085:182::o;13265:332::-;13472:6;13461:9;13454:25;13515:2;13510;13499:9;13495:18;13488:30;13435:4;13535:56;13587:2;13576:9;13572:18;13564:6;13535:56;:::i;:::-;13527:64;13444:153;-1:-1:-1;;;;13444:153:1:o;13602:582::-;13901:6;13890:9;13883:25;13944:6;13939:2;13928:9;13924:18;13917:34;13987:3;13982:2;13971:9;13967:18;13960:31;13864:4;14008:57;14060:3;14049:9;14045:19;14037:6;14008:57;:::i;:::-;-1:-1:-1;;;;;14101:32:1;;;;14096:2;14081:18;;14074:60;-1:-1:-1;14165:3:1;14150:19;14143:35;14000:65;13873:311;-1:-1:-1;;;13873:311:1:o;14378:128::-;14418:3;14449:1;14445:6;14442:1;14439:13;14436:2;;;14455:18;;:::i;:::-;-1:-1:-1;14491:9:1;;14426:80::o;14511:217::-;14551:1;14577;14567:2;;-1:-1:-1;;;14602:31:1;;14656:4;14653:1;14646:15;14684:4;14609:1;14674:15;14567:2;-1:-1:-1;14713:9:1;;14557:171::o;14733:168::-;14773:7;14839:1;14835;14831:6;14827:14;14824:1;14821:21;14816:1;14809:9;14802:17;14798:45;14795:2;;;14846:18;;:::i;:::-;-1:-1:-1;14886:9:1;;14785:116::o;14906:125::-;14946:4;14974:1;14971;14968:8;14965:2;;;14979:18;;:::i;:::-;-1:-1:-1;15016:9:1;;14955:76::o;15036:380::-;15115:1;15111:12;;;;15158;;;15179:2;;15233:4;15225:6;15221:17;15211:27;;15179:2;15286;15278:6;15275:14;15255:18;15252:38;15249:2;;;15332:10;15327:3;15323:20;15320:1;15313:31;15367:4;15364:1;15357:15;15395:4;15392:1;15385:15;15249:2;;15091:325;;;:::o;15421:135::-;15460:3;-1:-1:-1;;15481:17:1;;15478:2;;;15501:18;;:::i;:::-;-1:-1:-1;15548:1:1;15537:13;;15468:88::o;15561:127::-;15622:10;15617:3;15613:20;15610:1;15603:31;15653:4;15650:1;15643:15;15677:4;15674:1;15667:15;15693:131;-1:-1:-1;;;;;15768:31:1;;15758:42;;15748:2;;15814:1;15811;15804:12;15829:118;15915:5;15908:13;15901:21;15894:5;15891:32;15881:2;;15937:1;15934;15927:12
Swarm Source
ipfs://f7ed7b2bdd660b1329dc1d3047081e1f114b83e7f26a398ac0cf55d6b1ec7219
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.