ERC-20
Overview
Max Total Supply
100,000,000,000 ROE
Holders
98
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.204040611476942779 ROEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ROE
Compiler Version
v0.8.5+commit.a4f2e591
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-24 */ // 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) { this; 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; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } 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 waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 ROE is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "RiddleOneExperiment"; string private _symbol = "ROE"; uint8 private _decimals = 18; uint256 private _totalSupply = 100 * 10**9 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.div(50); uint256 public _walletMax = _totalSupply.div(50); uint256 private minimumTokensBeforeSwap = _totalSupply.div(10000); address payable public marketingWalletAddress = payable(0xD4BBdE3002a749CD9956572B3EeDe4bFF425e685); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMarketPair; uint256 private _buyLiquidityFee; uint256 private _buyMarketingFee = 20; uint256 private _sellLiquidityFee; uint256 private _sellMarketingFee = 20; uint256 private _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 private _marketingShare = _buyMarketingFee.add(_sellMarketingFee); uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 private _totalDistributionShares; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool private swapAndLiquifyEnabled = true; bool private swapAndLiquifyByLimitOnly = false; bool private checkWalletLimit = 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)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee); _totalDistributionShares = _liquidityShare.add(_marketingShare); isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; 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 minimumTokensBeforeSwapAmount() private view returns (uint256) { return minimumTokensBeforeSwap; } 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 setIsTxLimitAndWalletLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; isWalletLimitExempt[holder] = exempt; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setTaxes( uint256 newbuyLiquidityTax, uint256 newbuyMarketingTax, uint256 newsellLiquidityTax, uint256 newsellMarketingTax, uint256 newLiquidityShare, uint256 newMarketingShare ) external onlyOwner() { require(newbuyLiquidityTax.add(newbuyMarketingTax) <= 5, "Total tax cannot exceed 5%"); require(newsellLiquidityTax.add(newsellMarketingTax) <= 5, "Total tax cannot exceed 5%"); require(newLiquidityShare.add(newMarketingShare) <= 10, "Total tax cannot exceed 10%"); _buyLiquidityFee = newbuyLiquidityTax; _buyMarketingFee = newbuyMarketingTax; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee); _sellLiquidityFee = newsellLiquidityTax; _sellMarketingFee = newsellMarketingTax; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee); _liquidityShare = newLiquidityShare; _marketingShare = newMarketingShare; _totalDistributionShares = _liquidityShare.add(_marketingShare); } function setMaxWalletAndTxnAmount(uint256 newTxnNum, uint256 newMaxWalletNum) external onlyOwner { require(newTxnNum >= _totalSupply.div(200), "Cannot set maxTxn lower than 0.5%"); require(newMaxWalletNum >= _totalSupply.div(200),"Cannot set maxWallet lower than 0.5%"); _maxTxAmount = newTxnNum; _walletMax = newMaxWalletNum; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWalletAddress = payable(newAddress); } 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 isWalletLimitExempt[address(uniswapPair)] = true; isMarketPair[address(uniswapPair)] = true; } //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"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { 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); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } 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 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity); if(amountETHMarketing > 0) transferToAddressETH(marketingWalletAddress, amountETHMarketing); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, 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); } }
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":"_maxTxAmount","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":"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":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"setIsTxLimitAndWalletLimitExempt","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":"newTxnNum","type":"uint256"},{"internalType":"uint256","name":"newMaxWalletNum","type":"uint256"}],"name":"setMaxWalletAndTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newbuyLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newbuyMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newsellLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newsellMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","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":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052601360808190527f526964646c654f6e654578706572696d656e740000000000000000000000000060a0908152620000409160019190620006d9565b5060408051808201909152600380825262524f4560e81b60209092019182526200006d91600291620006d9565b506003805460ff191660129081179091556200008b90600a62000889565b6200009c9064174876e80062000948565b600455620000bc6032600454620005e360201b620011551790919060201c565b600555620000dc6032600454620005e360201b620011551790919060201c565b600655620000fd612710600454620005e360201b620011551790919060201c565b6007556008805473d4bbde3002a749cd9956572b3eede4bff425e6856001600160a01b031990911617905560146010819055601255601154600f546200014f9162000636602090811b6200119717901c565b601355620001706012546010546200063660201b620011971790919060201c565b6014556019805462ffffff60a81b19166201000160a81b1790553480156200019757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022c57600080fd5b505afa15801562000241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026791906200077f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b057600080fd5b505afa158015620002c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002eb91906200077f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200033457600080fd5b505af115801562000349573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036f91906200077f565b601980546001600160a01b039283166001600160a01b031991821617909155601880549284169290911682179055600454306000908152600a6020908152604080832094835293905291822055600190600b90620003d56000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600b8352208054909216600117909155601054600f5462000431929091906200119762000636821b17901c565b601581905550620004556012546011546200063660201b620011971790919060201c565b601681905550620004796014546013546200063660201b620011971790919060201c565b6017556001600c6000620004956000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556019549091168152600c90925280822080548416600190811790915530835290822080549093168117909255600d90620005056000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600d84528281208054861660019081179091556019549092168152600e90935290822080549093161790915560045490600990620005713390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620005d491815260200190565b60405180910390a350620009bd565b60006200062d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200069d60201b60201c565b90505b92915050565b60008062000645838562000802565b9050838110156200062d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b60008183620006c15760405162461bcd60e51b8152600401620006949190620007aa565b506000620006d084866200081d565b95945050505050565b828054620006e7906200096a565b90600052602060002090601f0160209004810192826200070b576000855562000756565b82601f106200072657805160ff191683800117855562000756565b8280016001018555821562000756579182015b828111156200075657825182559160200191906001019062000739565b506200076492915062000768565b5090565b5b8082111562000764576000815560010162000769565b6000602082840312156200079257600080fd5b81516001600160a01b03811681146200062d57600080fd5b600060208083528351808285015260005b81811015620007d957858101830151858201604001528201620007bb565b81811115620007ec576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115620008185762000818620009a7565b500190565b6000826200083b57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111562000881578160001904821115620008655762000865620009a7565b808516156200087357918102915b93841c939080029062000845565b509250929050565b60006200062d60ff841683600082620008a55750600162000630565b81620008b45750600062000630565b8160018114620008cd5760028114620008d857620008f8565b600191505062000630565b60ff841115620008ec57620008ec620009a7565b50506001821b62000630565b5060208310610133831016604e8410600b84101617156200091d575081810a62000630565b62000929838362000840565b8060001904821115620009405762000940620009a7565b029392505050565b6000816000190483118215151615620009655762000965620009a7565b500290565b600181811c908216806200097f57607f821691505b60208210811415620009a157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61221380620009cd6000396000f3fe6080604052600436106101f25760003560e01c8063807c2d9c1161010d578063a9059cbb116100a0578063d158272d1161006f578063d158272d146105d4578063dd62ed3e146105f4578063ef422a181461063a578063f0cd1dac1461065a578063f2fde38b1461067057600080fd5b8063a9059cbb14610544578063af06c23514610564578063c816841b14610584578063c867d60b146105a457600080fd5b80638da5cb5b116100dc5780638da5cb5b146104dc578063914eb66a146104fa57806395d89b411461050f578063a457c2d71461052457600080fd5b8063807c2d9c1461046057806382eefb4314610476578063844d591c1461048c5780638b42507f146104ac57600080fd5b806339509351116101855780635342acb4116101545780635342acb4146103c45780635881f3ef146103f457806370a08231146104145780637d1db4a51461044a57600080fd5b806339509351146103345780633b97084a146103545780633ecad271146103745780634cb80fd5146103a457600080fd5b80631694505e116101c15780631694505e1461029b57806318160ddd146102d357806323b872dd146102f2578063313ce5671461031257600080fd5b8063022d02e5146101fe57806304d4c9901461022057806306fdde0314610240578063095ea7b31461026b57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021e610219366004611ee3565b610690565b005b34801561022c57600080fd5b5061021e61023b366004611f33565b61079e565b34801561024c57600080fd5b50610255610923565b6040516102629190611fba565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611e9e565b6109b5565b6040519015158152602001610262565b3480156102a757600080fd5b506018546102bb906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b3480156102df57600080fd5b506004545b604051908152602001610262565b3480156102fe57600080fd5b5061028b61030d366004611e2a565b6109cc565b34801561031e57600080fd5b5060035460405160ff9091168152602001610262565b34801561034057600080fd5b5061028b61034f366004611e9e565b610a37565b34801561036057600080fd5b5061021e61036f366004611eca565b610a6d565b34801561038057600080fd5b5061028b61038f366004611db7565b600e6020526000908152604090205460ff1681565b3480156103b057600080fd5b5061021e6103bf366004611db7565b610a9c565b3480156103d057600080fd5b5061028b6103df366004611db7565b600b6020526000908152604090205460ff1681565b34801561040057600080fd5b506102bb61040f366004611db7565b610ae8565b34801561042057600080fd5b506102e461042f366004611db7565b6001600160a01b031660009081526009602052604090205490565b34801561045657600080fd5b506102e460055481565b34801561046c57600080fd5b506102e460065481565b34801561048257600080fd5b506102e460165481565b34801561049857600080fd5b5061021e6104a7366004611e6b565b610e7a565b3480156104b857600080fd5b5061028b6104c7366004611db7565b600d6020526000908152604090205460ff1681565b3480156104e857600080fd5b506000546001600160a01b03166102bb565b34801561050657600080fd5b5061021e610ecf565b34801561051b57600080fd5b50610255610f43565b34801561053057600080fd5b5061028b61053f366004611e9e565b610f52565b34801561055057600080fd5b5061028b61055f366004611e9e565b610fa1565b34801561057057600080fd5b5061021e61057f366004611e6b565b610fae565b34801561059057600080fd5b506019546102bb906001600160a01b031681565b3480156105b057600080fd5b5061028b6105bf366004611db7565b600c6020526000908152604090205460ff1681565b3480156105e057600080fd5b506008546102bb906001600160a01b031681565b34801561060057600080fd5b506102e461060f366004611df1565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561064657600080fd5b5061021e610655366004611e6b565b611016565b34801561066657600080fd5b506102e460155481565b34801561067c57600080fd5b5061021e61068b366004611db7565b61106b565b6000546001600160a01b031633146106c35760405162461bcd60e51b81526004016106ba9061200f565b60405180910390fd5b6004546106d19060c8611155565b82101561072a5760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e356044820152602560f81b60648201526084016106ba565b6004546107389060c8611155565b8110156107935760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016106ba565b600591909155600655565b6000546001600160a01b031633146107c85760405162461bcd60e51b81526004016106ba9061200f565b60056107d48787611197565b11156108225760405162461bcd60e51b815260206004820152601a60248201527f546f74616c207461782063616e6e6f742065786365656420352500000000000060448201526064016106ba565b600561082e8585611197565b111561087c5760405162461bcd60e51b815260206004820152601a60248201527f546f74616c207461782063616e6e6f742065786365656420352500000000000060448201526064016106ba565b600a6108888383611197565b11156108d65760405162461bcd60e51b815260206004820152601b60248201527f546f74616c207461782063616e6e6f742065786365656420313025000000000060448201526064016106ba565b600f86905560108590556108ea8686611197565b601555601184905560128390556109018484611197565b601655601382905560148190556109188282611197565b601755505050505050565b60606001805461093290612111565b80601f016020809104026020016040519081016040528092919081815260200182805461095e90612111565b80156109ab5780601f10610980576101008083540402835291602001916109ab565b820191906000526020600020905b81548152906001019060200180831161098e57829003601f168201915b5050505050905090565b60006109c23384846111f6565b5060015b92915050565b60006109d984848461131a565b50610a2c8433610a2785604051806060016040528060288152602001612191602891396001600160a01b038a166000908152600a6020908152604080832033845290915290205491906116ef565b6111f6565b5060015b9392505050565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916109c2918590610a279086611197565b6000546001600160a01b03163314610a975760405162461bcd60e51b81526004016106ba9061200f565b600755565b6000546001600160a01b03163314610ac65760405162461bcd60e51b81526004016106ba9061200f565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b03163314610b135760405162461bcd60e51b81526004016106ba9061200f565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5157600080fd5b505afa158015610b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b899190611dd4565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd157600080fd5b505afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190611dd4565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610c4f57600080fd5b505afa158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c879190611dd4565b91506001600160a01b038216610e0b57806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd057600080fd5b505afa158015610ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d089190611dd4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5057600080fd5b505afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d889190611dd4565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e089190611dd4565b91505b601980546001600160a01b03199081166001600160a01b03858116918217845560188054909316948116949094179091556000908152600c60209081526040808320805460ff19908116600190811790925594549095168352600e909152902080549091169091179055919050565b6000546001600160a01b03163314610ea45760405162461bcd60e51b81526004016106ba9061200f565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ef95760405162461bcd60e51b81526004016106ba9061200f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606002805461093290612111565b60006109c23384610a27856040518060600160405280602581526020016121b960259139336000908152600a602090815260408083206001600160a01b038d16845290915290205491906116ef565b6000610a2c33848461131a565b6000546001600160a01b03163314610fd85760405162461bcd60e51b81526004016106ba9061200f565b6001600160a01b039091166000908152600d60209081526040808320805494151560ff199586168117909155600c9092529091208054909216179055565b6000546001600160a01b031633146110405760405162461bcd60e51b81526004016106ba9061200f565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110955760405162461bcd60e51b81526004016106ba9061200f565b6001600160a01b0381166110fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ba565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a3083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611729565b6000806111a483856120a1565b905083811015610a305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ba565b6001600160a01b0383166112585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ba565b6001600160a01b0382166112b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ba565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166113805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ba565b6001600160a01b0383166113e25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ba565b601954600160a01b900460ff1615611406576113ff848484611757565b9050610a30565b6001600160a01b0384166000908152600d602052604090205460ff1615801561144857506001600160a01b0383166000908152600d602052604090205460ff16155b156114b0576005548211156114b05760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106ba565b30600090815260096020526040902054600754811080159081906114de5750601954600160a01b900460ff16155b801561150357506001600160a01b0386166000908152600e602052604090205460ff16155b80156115185750601954600160a81b900460ff165b1561153e57601954600160b01b900460ff16156115355760075491505b61153e8261183d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600990915291909120546115909186906116ef565b6001600160a01b038716600090815260096020908152604080832093909355600b90529081205460ff16806115dd57506001600160a01b0386166000908152600b602052604090205460ff165b6115f1576115ec87878761192f565b6115f3565b845b601954909150600160b81b900460ff16801561162857506001600160a01b0386166000908152600c602052604090205460ff16155b156116645760065461165982611653896001600160a01b031660009081526009602052604090205490565b90611197565b111561166457600080fd5b6001600160a01b0386166000908152600960205260409020546116879082611197565b6001600160a01b0380881660008181526009602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116db9085815260200190565b60405180910390a360019350505050610a30565b600081848411156117135760405162461bcd60e51b81526004016106ba9190611fba565b50600061172084866120fa565b95945050505050565b6000818361174a5760405162461bcd60e51b81526004016106ba9190611fba565b50600061172084866120b9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546117a89184906116ef565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546117d79083611197565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061182b9086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556017546013546000916118739160029161186d9182908790611a35565b90611155565b905060006118818383611ab4565b905061188c81611af6565b60135447906000906118ac906118a3906002611155565b60175490611ab4565b905060006118ce600261186d8461186d60135488611a3590919063ffffffff16565b905060006118dc8483611ab4565b905080156118fa576008546118fa906001600160a01b031682611c98565b60008211801561190a5750600086115b15611919576119198683611cd3565b50506019805460ff60a01b191690555050505050565b6001600160a01b0383166000908152600e6020526040812054819060ff16156119735761196c606461186d60155486611a3590919063ffffffff16565b90506119b1565b6001600160a01b0384166000908152600e602052604090205460ff16156119b1576119ae606461186d60165486611a3590919063ffffffff16565b90505b8015611a2b57306000908152600960205260409020546119d19082611197565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a229085815260200190565b60405180910390a35b6117208382611ab4565b600082611a44575060006109c6565b6000611a5083856120db565b905082611a5d85836120b9565b14610a305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ba565b6000610a3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116ef565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b2b57611b2b612162565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611b7f57600080fd5b505afa158015611b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb79190611dd4565b81600181518110611bca57611bca612162565b6001600160a01b039283166020918202929092010152601854611bf091309116846111f6565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c29908590600090869030904290600401612065565b600060405180830381600087803b158015611c4357600080fd5b505af1158015611c57573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c8c929190612044565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611cce573d6000803e3d6000fd5b505050565b601854611ceb9030906001600160a01b0316846111f6565b6018546001600160a01b031663f305d719823085600080611d146000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015611d7757600080fd5b505af1158015611d8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611db09190611f05565b5050505050565b600060208284031215611dc957600080fd5b8135610a3081612178565b600060208284031215611de657600080fd5b8151610a3081612178565b60008060408385031215611e0457600080fd5b8235611e0f81612178565b91506020830135611e1f81612178565b809150509250929050565b600080600060608486031215611e3f57600080fd5b8335611e4a81612178565b92506020840135611e5a81612178565b929592945050506040919091013590565b60008060408385031215611e7e57600080fd5b8235611e8981612178565b915060208301358015158114611e1f57600080fd5b60008060408385031215611eb157600080fd5b8235611ebc81612178565b946020939093013593505050565b600060208284031215611edc57600080fd5b5035919050565b60008060408385031215611ef657600080fd5b50508035926020909101359150565b600080600060608486031215611f1a57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215611f4c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600081518084526020808501945080840160005b83811015611faf5781516001600160a01b031687529582019590820190600101611f8a565b509495945050505050565b600060208083528351808285015260005b81811015611fe757858101830151858201604001528201611fcb565b81811115611ff9576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b82815260406020820152600061205d6040830184611f76565b949350505050565b85815284602082015260a06040820152600061208460a0830186611f76565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156120b4576120b461214c565b500190565b6000826120d657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120f5576120f561214c565b500290565b60008282101561210c5761210c61214c565b500390565b600181811c9082168061212557607f821691505b6020821081141561214657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461218d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122040848e20cdae7533fd4b71cc0c4fe590383a6b3b99caf1c6979be48d4f997ebb64736f6c63430008050033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c8063807c2d9c1161010d578063a9059cbb116100a0578063d158272d1161006f578063d158272d146105d4578063dd62ed3e146105f4578063ef422a181461063a578063f0cd1dac1461065a578063f2fde38b1461067057600080fd5b8063a9059cbb14610544578063af06c23514610564578063c816841b14610584578063c867d60b146105a457600080fd5b80638da5cb5b116100dc5780638da5cb5b146104dc578063914eb66a146104fa57806395d89b411461050f578063a457c2d71461052457600080fd5b8063807c2d9c1461046057806382eefb4314610476578063844d591c1461048c5780638b42507f146104ac57600080fd5b806339509351116101855780635342acb4116101545780635342acb4146103c45780635881f3ef146103f457806370a08231146104145780637d1db4a51461044a57600080fd5b806339509351146103345780633b97084a146103545780633ecad271146103745780634cb80fd5146103a457600080fd5b80631694505e116101c15780631694505e1461029b57806318160ddd146102d357806323b872dd146102f2578063313ce5671461031257600080fd5b8063022d02e5146101fe57806304d4c9901461022057806306fdde0314610240578063095ea7b31461026b57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021e610219366004611ee3565b610690565b005b34801561022c57600080fd5b5061021e61023b366004611f33565b61079e565b34801561024c57600080fd5b50610255610923565b6040516102629190611fba565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611e9e565b6109b5565b6040519015158152602001610262565b3480156102a757600080fd5b506018546102bb906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b3480156102df57600080fd5b506004545b604051908152602001610262565b3480156102fe57600080fd5b5061028b61030d366004611e2a565b6109cc565b34801561031e57600080fd5b5060035460405160ff9091168152602001610262565b34801561034057600080fd5b5061028b61034f366004611e9e565b610a37565b34801561036057600080fd5b5061021e61036f366004611eca565b610a6d565b34801561038057600080fd5b5061028b61038f366004611db7565b600e6020526000908152604090205460ff1681565b3480156103b057600080fd5b5061021e6103bf366004611db7565b610a9c565b3480156103d057600080fd5b5061028b6103df366004611db7565b600b6020526000908152604090205460ff1681565b34801561040057600080fd5b506102bb61040f366004611db7565b610ae8565b34801561042057600080fd5b506102e461042f366004611db7565b6001600160a01b031660009081526009602052604090205490565b34801561045657600080fd5b506102e460055481565b34801561046c57600080fd5b506102e460065481565b34801561048257600080fd5b506102e460165481565b34801561049857600080fd5b5061021e6104a7366004611e6b565b610e7a565b3480156104b857600080fd5b5061028b6104c7366004611db7565b600d6020526000908152604090205460ff1681565b3480156104e857600080fd5b506000546001600160a01b03166102bb565b34801561050657600080fd5b5061021e610ecf565b34801561051b57600080fd5b50610255610f43565b34801561053057600080fd5b5061028b61053f366004611e9e565b610f52565b34801561055057600080fd5b5061028b61055f366004611e9e565b610fa1565b34801561057057600080fd5b5061021e61057f366004611e6b565b610fae565b34801561059057600080fd5b506019546102bb906001600160a01b031681565b3480156105b057600080fd5b5061028b6105bf366004611db7565b600c6020526000908152604090205460ff1681565b3480156105e057600080fd5b506008546102bb906001600160a01b031681565b34801561060057600080fd5b506102e461060f366004611df1565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561064657600080fd5b5061021e610655366004611e6b565b611016565b34801561066657600080fd5b506102e460155481565b34801561067c57600080fd5b5061021e61068b366004611db7565b61106b565b6000546001600160a01b031633146106c35760405162461bcd60e51b81526004016106ba9061200f565b60405180910390fd5b6004546106d19060c8611155565b82101561072a5760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e356044820152602560f81b60648201526084016106ba565b6004546107389060c8611155565b8110156107935760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016106ba565b600591909155600655565b6000546001600160a01b031633146107c85760405162461bcd60e51b81526004016106ba9061200f565b60056107d48787611197565b11156108225760405162461bcd60e51b815260206004820152601a60248201527f546f74616c207461782063616e6e6f742065786365656420352500000000000060448201526064016106ba565b600561082e8585611197565b111561087c5760405162461bcd60e51b815260206004820152601a60248201527f546f74616c207461782063616e6e6f742065786365656420352500000000000060448201526064016106ba565b600a6108888383611197565b11156108d65760405162461bcd60e51b815260206004820152601b60248201527f546f74616c207461782063616e6e6f742065786365656420313025000000000060448201526064016106ba565b600f86905560108590556108ea8686611197565b601555601184905560128390556109018484611197565b601655601382905560148190556109188282611197565b601755505050505050565b60606001805461093290612111565b80601f016020809104026020016040519081016040528092919081815260200182805461095e90612111565b80156109ab5780601f10610980576101008083540402835291602001916109ab565b820191906000526020600020905b81548152906001019060200180831161098e57829003601f168201915b5050505050905090565b60006109c23384846111f6565b5060015b92915050565b60006109d984848461131a565b50610a2c8433610a2785604051806060016040528060288152602001612191602891396001600160a01b038a166000908152600a6020908152604080832033845290915290205491906116ef565b6111f6565b5060015b9392505050565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916109c2918590610a279086611197565b6000546001600160a01b03163314610a975760405162461bcd60e51b81526004016106ba9061200f565b600755565b6000546001600160a01b03163314610ac65760405162461bcd60e51b81526004016106ba9061200f565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b03163314610b135760405162461bcd60e51b81526004016106ba9061200f565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5157600080fd5b505afa158015610b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b899190611dd4565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd157600080fd5b505afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190611dd4565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610c4f57600080fd5b505afa158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c879190611dd4565b91506001600160a01b038216610e0b57806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd057600080fd5b505afa158015610ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d089190611dd4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5057600080fd5b505afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d889190611dd4565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e089190611dd4565b91505b601980546001600160a01b03199081166001600160a01b03858116918217845560188054909316948116949094179091556000908152600c60209081526040808320805460ff19908116600190811790925594549095168352600e909152902080549091169091179055919050565b6000546001600160a01b03163314610ea45760405162461bcd60e51b81526004016106ba9061200f565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ef95760405162461bcd60e51b81526004016106ba9061200f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606002805461093290612111565b60006109c23384610a27856040518060600160405280602581526020016121b960259139336000908152600a602090815260408083206001600160a01b038d16845290915290205491906116ef565b6000610a2c33848461131a565b6000546001600160a01b03163314610fd85760405162461bcd60e51b81526004016106ba9061200f565b6001600160a01b039091166000908152600d60209081526040808320805494151560ff199586168117909155600c9092529091208054909216179055565b6000546001600160a01b031633146110405760405162461bcd60e51b81526004016106ba9061200f565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110955760405162461bcd60e51b81526004016106ba9061200f565b6001600160a01b0381166110fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ba565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a3083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611729565b6000806111a483856120a1565b905083811015610a305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ba565b6001600160a01b0383166112585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ba565b6001600160a01b0382166112b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ba565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166113805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ba565b6001600160a01b0383166113e25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ba565b601954600160a01b900460ff1615611406576113ff848484611757565b9050610a30565b6001600160a01b0384166000908152600d602052604090205460ff1615801561144857506001600160a01b0383166000908152600d602052604090205460ff16155b156114b0576005548211156114b05760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106ba565b30600090815260096020526040902054600754811080159081906114de5750601954600160a01b900460ff16155b801561150357506001600160a01b0386166000908152600e602052604090205460ff16155b80156115185750601954600160a81b900460ff165b1561153e57601954600160b01b900460ff16156115355760075491505b61153e8261183d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600990915291909120546115909186906116ef565b6001600160a01b038716600090815260096020908152604080832093909355600b90529081205460ff16806115dd57506001600160a01b0386166000908152600b602052604090205460ff165b6115f1576115ec87878761192f565b6115f3565b845b601954909150600160b81b900460ff16801561162857506001600160a01b0386166000908152600c602052604090205460ff16155b156116645760065461165982611653896001600160a01b031660009081526009602052604090205490565b90611197565b111561166457600080fd5b6001600160a01b0386166000908152600960205260409020546116879082611197565b6001600160a01b0380881660008181526009602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116db9085815260200190565b60405180910390a360019350505050610a30565b600081848411156117135760405162461bcd60e51b81526004016106ba9190611fba565b50600061172084866120fa565b95945050505050565b6000818361174a5760405162461bcd60e51b81526004016106ba9190611fba565b50600061172084866120b9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546117a89184906116ef565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546117d79083611197565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061182b9086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556017546013546000916118739160029161186d9182908790611a35565b90611155565b905060006118818383611ab4565b905061188c81611af6565b60135447906000906118ac906118a3906002611155565b60175490611ab4565b905060006118ce600261186d8461186d60135488611a3590919063ffffffff16565b905060006118dc8483611ab4565b905080156118fa576008546118fa906001600160a01b031682611c98565b60008211801561190a5750600086115b15611919576119198683611cd3565b50506019805460ff60a01b191690555050505050565b6001600160a01b0383166000908152600e6020526040812054819060ff16156119735761196c606461186d60155486611a3590919063ffffffff16565b90506119b1565b6001600160a01b0384166000908152600e602052604090205460ff16156119b1576119ae606461186d60165486611a3590919063ffffffff16565b90505b8015611a2b57306000908152600960205260409020546119d19082611197565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a229085815260200190565b60405180910390a35b6117208382611ab4565b600082611a44575060006109c6565b6000611a5083856120db565b905082611a5d85836120b9565b14610a305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ba565b6000610a3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116ef565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b2b57611b2b612162565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611b7f57600080fd5b505afa158015611b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb79190611dd4565b81600181518110611bca57611bca612162565b6001600160a01b039283166020918202929092010152601854611bf091309116846111f6565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c29908590600090869030904290600401612065565b600060405180830381600087803b158015611c4357600080fd5b505af1158015611c57573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611c8c929190612044565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611cce573d6000803e3d6000fd5b505050565b601854611ceb9030906001600160a01b0316846111f6565b6018546001600160a01b031663f305d719823085600080611d146000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015611d7757600080fd5b505af1158015611d8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611db09190611f05565b5050505050565b600060208284031215611dc957600080fd5b8135610a3081612178565b600060208284031215611de657600080fd5b8151610a3081612178565b60008060408385031215611e0457600080fd5b8235611e0f81612178565b91506020830135611e1f81612178565b809150509250929050565b600080600060608486031215611e3f57600080fd5b8335611e4a81612178565b92506020840135611e5a81612178565b929592945050506040919091013590565b60008060408385031215611e7e57600080fd5b8235611e8981612178565b915060208301358015158114611e1f57600080fd5b60008060408385031215611eb157600080fd5b8235611ebc81612178565b946020939093013593505050565b600060208284031215611edc57600080fd5b5035919050565b60008060408385031215611ef657600080fd5b50508035926020909101359150565b600080600060608486031215611f1a57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215611f4c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600081518084526020808501945080840160005b83811015611faf5781516001600160a01b031687529582019590820190600101611f8a565b509495945050505050565b600060208083528351808285015260005b81811015611fe757858101830151858201604001528201611fcb565b81811115611ff9576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b82815260406020820152600061205d6040830184611f76565b949350505050565b85815284602082015260a06040820152600061208460a0830186611f76565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156120b4576120b461214c565b500190565b6000826120d657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120f5576120f561214c565b500290565b60008282101561210c5761210c61214c565b500390565b600181811c9082168061212557607f821691505b6020821081141561214657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461218d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122040848e20cdae7533fd4b71cc0c4fe590383a6b3b99caf1c6979be48d4f997ebb64736f6c63430008050033
Deployed Bytecode Sourcemap
14075:13637:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20902:370;;;;;;;;;;-1:-1:-1;20902:370:0;;;;;:::i;:::-;;:::i;:::-;;19832:1058;;;;;;;;;;-1:-1:-1;19832:1058:0;;;;;:::i;:::-;;:::i;17411:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18706:161;;;;;;;;;;-1:-1:-1;18706:161:0;;;;;:::i;:::-;;:::i;:::-;;;5378:14:1;;5371:22;5353:41;;5341:2;5326:18;18706:161:0;5308:92:1;15490:41:0;;;;;;;;;;-1:-1:-1;15490:41:0;;;;-1:-1:-1;;;;;15490:41:0;;;;;;-1:-1:-1;;;;;4024:32:1;;;4006:51;;3994:2;3979:18;15490:41:0;3961:102:1;17688:100:0;;;;;;;;;;-1:-1:-1;17768:12:0;;17688:100;;;11459:25:1;;;11447:2;11432:18;17688:100:0;11414:76:1;22651:313:0;;;;;;;;;;-1:-1:-1;22651:313:0;;;;;:::i;:::-;;:::i;17597:83::-;;;;;;;;;;-1:-1:-1;17663:9:0;;17597:83;;17663:9;;;;12561:36:1;;12549:2;12534:18;17597:83:0;12516:87:1;18074:218:0;;;;;;;;;;-1:-1:-1;18074:218:0;;;;;:::i;:::-;;:::i;19700:124::-;;;;;;;;;;-1:-1:-1;19700:124:0;;;;;:::i;:::-;;:::i;14976:45::-;;;;;;;;;;-1:-1:-1;14976:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21282:139;;;;;;;;;;-1:-1:-1;21282:139:0;;;;;:::i;:::-;;:::i;14805:50::-;;;;;;;;;;-1:-1:-1;14805:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21567:807;;;;;;;;;;-1:-1:-1;21567:807:0;;;;;:::i;:::-;;:::i;17796:119::-;;;;;;;;;;-1:-1:-1;17796:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;17889:18:0;17862:7;17889:18;;;:9;:18;;;;;;;17796:119;14389:50;;;;;;;;;;;;;;;;14447:48;;;;;;;;;;;;;;;;15401:33;;;;;;;;;;;;;;;;19220:129;;;;;;;;;;-1:-1:-1;19220:129:0;;;;;:::i;:::-;;:::i;14921:48::-;;;;;;;;;;-1:-1:-1;14921:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5608:79;;;;;;;;;;-1:-1:-1;5646:7:0;5673:6;-1:-1:-1;;;;;5673:6:0;5608:79;;5833:145;;;;;;;;;;;;;:::i;17502:87::-;;;;;;;;;;;;;:::i;18300:269::-;;;;;;;;;;-1:-1:-1;18300:269:0;;;;;:::i;:::-;;:::i;22476:167::-;;;;;;;;;;-1:-1:-1;22476:167:0;;;;;:::i;:::-;;:::i;19500:188::-;;;;;;;;;;-1:-1:-1;19500:188:0;;;;;:::i;:::-;;:::i;15538:26::-;;;;;;;;;;-1:-1:-1;15538:26:0;;;;-1:-1:-1;;;;;15538:26:0;;;14862:52;;;;;;;;;;-1:-1:-1;14862:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14575:99;;;;;;;;;;-1:-1:-1;14575:99:0;;;;-1:-1:-1;;;;;14575:99:0;;;17923:143;;;;;;;;;;-1:-1:-1;17923:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;18031:18:0;;;18004:7;18031:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17923:143;19357:135;;;;;;;;;;-1:-1:-1;19357:135:0;;;;;:::i;:::-;;:::i;15362:32::-;;;;;;;;;;;;;;;;5986:244;;;;;;;;;;-1:-1:-1;5986:244:0;;;;;:::i;:::-;;:::i;20902:370::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;;;;;;;;;21032:12:::1;::::0;:21:::1;::::0;21049:3:::1;21032:16;:21::i;:::-;21018:9;:35;;21010:81;;;::::0;-1:-1:-1;;;21010:81:0;;8775:2:1;21010:81:0::1;::::0;::::1;8757:21:1::0;8814:2;8794:18;;;8787:30;8853:34;8833:18;;;8826:62;-1:-1:-1;;;8904:18:1;;;8897:31;8945:19;;21010:81:0::1;8747:223:1::0;21010:81:0::1;21129:12;::::0;:21:::1;::::0;21146:3:::1;21129:16;:21::i;:::-;21110:15;:40;;21102:88;;;::::0;-1:-1:-1;;;21102:88:0;;8014:2:1;21102:88:0::1;::::0;::::1;7996:21:1::0;8053:2;8033:18;;;8026:30;8092:34;8072:18;;;8065:62;-1:-1:-1;;;8143:18:1;;;8136:34;8187:19;;21102:88:0::1;7986:226:1::0;21102:88:0::1;21201:12;:24:::0;;;;21236:10:::1;:28:::0;20902:370::o;19832:1058::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;20145:1:::1;20099:42;:18:::0;20122;20099:22:::1;:42::i;:::-;:47;;20091:86;;;::::0;-1:-1:-1;;;20091:86:0;;11160:2:1;20091:86:0::1;::::0;::::1;11142:21:1::0;11199:2;11179:18;;;11172:30;11238:28;11218:18;;;11211:56;11284:18;;20091:86:0::1;11132:176:1::0;20091:86:0::1;20244:1;20196:44;:19:::0;20220;20196:23:::1;:44::i;:::-;:49;;20188:88;;;::::0;-1:-1:-1;;;20188:88:0;;11160:2:1;20188:88:0::1;::::0;::::1;11142:21:1::0;11199:2;11179:18;;;11172:30;11238:28;11218:18;;;11211:56;11284:18;;20188:88:0::1;11132:176:1::0;20188:88:0::1;20339:2;20295:40;:17:::0;20317;20295:21:::1;:40::i;:::-;:46;;20287:86;;;::::0;-1:-1:-1;;;20287:86:0;;8419:2:1;20287:86:0::1;::::0;::::1;8401:21:1::0;8458:2;8438:18;;;8431:30;8497:29;8477:18;;;8470:57;8544:18;;20287:86:0::1;8391:177:1::0;20287:86:0::1;20386:16;:37:::0;;;20434:16:::1;:37:::0;;;20502:38:::1;20405:18:::0;20453;20502:20:::1;:38::i;:::-;20482:17;:58:::0;20553:17:::1;:39:::0;;;20603:17:::1;:39:::0;;;20674:40:::1;20573:19:::0;20623;20674:21:::1;:40::i;:::-;20653:18;:61:::0;20727:15:::1;:35:::0;;;20773:15:::1;:35:::0;;;20846:36:::1;20745:17:::0;20791;20846:19:::1;:36::i;:::-;20819:24;:63:::0;-1:-1:-1;;;;;;19832:1058:0:o;17411:83::-;17448:13;17481:5;17474:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17411:83;:::o;18706:161::-;18781:4;18798:39;193:10;18821:7;18830:6;18798:8;:39::i;:::-;-1:-1:-1;18855:4:0;18706:161;;;;;:::o;22651:313::-;22749:4;22766:36;22776:6;22784:9;22795:6;22766:9;:36::i;:::-;-1:-1:-1;22813:121:0;22822:6;193:10;22844:89;22882:6;22844:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22844:19:0;;;;;;:11;:19;;;;;;;;193:10;22844:33;;;;;;;;;;:37;:89::i;:::-;22813:8;:121::i;:::-;-1:-1:-1;22952:4:0;22651:313;;;;;;:::o;18074:218::-;193:10;18162:4;18211:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18211:34:0;;;;;;;;;;18162:4;;18179:83;;18202:7;;18211:50;;18250:10;18211:38;:50::i;19700:124::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;19782:23:::1;:34:::0;19700:124::o;21282:139::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;21369:22:::1;:44:::0;;-1:-1:-1;;;;;;21369:44:0::1;-1:-1:-1::0;;;;;21369:44:0;;;::::1;::::0;;;::::1;::::0;;21282:139::o;21567:807::-;21647:22;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;21684:35:::1;21741:16;21684:74;;21807:16;-1:-1:-1::0;;;;;21807:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21789:53:0::1;;21851:4;21858:16;-1:-1:-1::0;;;;;21858:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21789:93;::::0;-1:-1:-1;;;;;;21789:93:0::1;::::0;;;;;;-1:-1:-1;;;;;4522:15:1;;;21789:93:0::1;::::0;::::1;4504:34:1::0;4574:15;;4554:18;;;4547:43;4439:18;;21789:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21772:110:::0;-1:-1:-1;;;;;;21898:28:0;::::1;21895:225;;22012:16;-1:-1:-1::0;;;;;22012:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21994:74:0::1;;22077:4;22084:16;-1:-1:-1::0;;;;;22084:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21994:114;::::0;-1:-1:-1;;;;;;21994:114:0::1;::::0;;;;;;-1:-1:-1;;;;;4522:15:1;;;21994:114:0::1;::::0;::::1;4504:34:1::0;4574:15;;4554:18;;;4547:43;4439:18;;21994:114:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21977:131;;21895:225;22132:11;:28:::0;;-1:-1:-1;;;;;;22132:28:0;;::::1;-1:-1:-1::0;;;;;22132:28:0;;::::1;::::0;;::::1;::::0;;22194:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;22266:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;22266:48:0;;::::1;-1:-1:-1::0;22266:48:0;;::::1;::::0;;;22346:11;;;;::::1;22325:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;22132:28;22146:14;-1:-1:-1;21567:807:0:o;19220:129::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19309:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;19309:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19220:129::o;5833:145::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;5937:1:::1;5921:6:::0;;5900:40:::1;::::0;-1:-1:-1;;;;;5921:6:0;;::::1;::::0;5900:40:::1;::::0;5937:1;;5900:40:::1;5968:1;5951:19:::0;;-1:-1:-1;;;;;;5951:19:0::1;::::0;;5833:145::o;17502:87::-;17541:13;17574:7;17567:14;;;;;:::i;18300:269::-;18393:4;18410:129;193:10;18433:7;18442:96;18481:15;18442:96;;;;;;;;;;;;;;;;;193:10;18442:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18442:34:0;;;;;;;;;;;;:38;:96::i;22476:167::-;22554:4;22571:42;193:10;22595:9;22606:6;22571:9;:42::i;19500:188::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19601:23:0;;::::1;;::::0;;;:15:::1;:23;::::0;;;;;;;:32;;;::::1;;-1:-1:-1::0;;19601:32:0;;::::1;::::0;::::1;::::0;;;19644:19:::1;:27:::0;;;;;;:36;;;;::::1;;::::0;;19500:188::o;19357:135::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19447:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;19447:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19357:135::o;5986:244::-;5742:6;;-1:-1:-1;;;;;5742:6:0;193:10;5742:22;5734:67;;;;-1:-1:-1;;;5734:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6075:22:0;::::1;6067:73;;;::::0;-1:-1:-1;;;6067:73:0;;6848:2:1;6067:73:0::1;::::0;::::1;6830:21:1::0;6887:2;6867:18;;;6860:30;6926:34;6906:18;;;6899:62;-1:-1:-1;;;6977:18:1;;;6970:36;7023:19;;6067:73:0::1;6820:228:1::0;6067:73:0::1;6177:6;::::0;;6156:38:::1;::::0;-1:-1:-1;;;;;6156:38:0;;::::1;::::0;6177:6;::::1;::::0;6156:38:::1;::::0;::::1;6205:6;:17:::0;;-1:-1:-1;;;;;;6205:17:0::1;-1:-1:-1::0;;;;;6205:17:0;;;::::1;::::0;;;::::1;::::0;;5986:244::o;1838:132::-;1896:7;1923:39;1927:1;1930;1923:39;;;;;;;;;;;;;;;;;:3;:39::i;1047:181::-;1105:7;;1137:5;1141:1;1137;:5;:::i;:::-;1125:17;;1166:1;1161;:6;;1153:46;;;;-1:-1:-1;;;1153:46:0;;7658:2:1;1153:46:0;;;7640:21:1;7697:2;7677:18;;;7670:30;7736:29;7716:18;;;7709:57;7783:18;;1153:46:0;7630:177:1;18875:337:0;-1:-1:-1;;;;;18968:19:0;;18960:68;;;;-1:-1:-1;;;18960:68:0;;10755:2:1;18960:68:0;;;10737:21:1;10794:2;10774:18;;;10767:30;10833:34;10813:18;;;10806:62;-1:-1:-1;;;10884:18:1;;;10877:34;10928:19;;18960:68:0;10727:226:1;18960:68:0;-1:-1:-1;;;;;19047:21:0;;19039:68;;;;-1:-1:-1;;;19039:68:0;;7255:2:1;19039:68:0;;;7237:21:1;7294:2;7274:18;;;7267:30;7333:34;7313:18;;;7306:62;-1:-1:-1;;;7384:18:1;;;7377:32;7426:19;;19039:68:0;7227:224:1;19039:68:0;-1:-1:-1;;;;;19120:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19172:32;;11459:25:1;;;19172:32:0;;11432:18:1;19172:32:0;;;;;;;18875:337;;;:::o;22972:1711::-;23059:4;-1:-1:-1;;;;;23084:20:0;;23076:70;;;;-1:-1:-1;;;23076:70:0;;10349:2:1;23076:70:0;;;10331:21:1;10388:2;10368:18;;;10361:30;10427:34;10407:18;;;10400:62;-1:-1:-1;;;10478:18:1;;;10471:35;10523:19;;23076:70:0;10321:227:1;23076:70:0;-1:-1:-1;;;;;23165:23:0;;23157:71;;;;-1:-1:-1;;;23157:71:0;;6444:2:1;23157:71:0;;;6426:21:1;6483:2;6463:18;;;6456:30;6522:34;6502:18;;;6495:62;-1:-1:-1;;;6573:18:1;;;6566:33;6616:19;;23157:71:0;6416:225:1;23157:71:0;23250:16;;-1:-1:-1;;;23250:16:0;;;;23247:1429;;;23300:41;23315:6;23323:9;23334:6;23300:14;:41::i;:::-;23293:48;;;;23247:1429;-1:-1:-1;;;;;23397:23:0;;;;;;:15;:23;;;;;;;;23396:24;:55;;;;-1:-1:-1;;;;;;23425:26:0;;;;;;:15;:26;;;;;;;;23424:27;23396:55;23393:170;;;23490:12;;23480:6;:22;;23472:75;;;;-1:-1:-1;;;23472:75:0;;9177:2:1;23472:75:0;;;9159:21:1;9216:2;9196:18;;;9189:30;9255:34;9235:18;;;9228:62;-1:-1:-1;;;9306:18:1;;;9299:38;9354:19;;23472:75:0;9149:230:1;23472:75:0;23640:4;23591:28;17889:18;;;:9;:18;;;;;;23716:23;;23692:47;;;;;;;23772:44;;-1:-1:-1;23800:16:0;;-1:-1:-1;;;23800:16:0;;;;23799:17;23772:44;:69;;;;-1:-1:-1;;;;;;23821:20:0;;;;;;:12;:20;;;;;;;;23820:21;23772:69;:94;;;;-1:-1:-1;23845:21:0;;-1:-1:-1;;;23845:21:0;;;;23772:94;23768:305;;;23904:25;;-1:-1:-1;;;23904:25:0;;;;23901:97;;;23975:23;;23952:46;;23901:97;24017:36;24032:20;24017:14;:36::i;:::-;24109:53;;;;;;;;;;;-1:-1:-1;;;24109:53:0;;;;;;;;-1:-1:-1;;;;;24109:17:0;;-1:-1:-1;24109:17:0;;;:9;:17;;;;;;;;:53;;24131:6;;24109:21;:53::i;:::-;-1:-1:-1;;;;;24089:17:0;;;;;;:9;:17;;;;;;;;:73;;;;24202:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;24231:28:0;;;;;;:17;:28;;;;;;;;24202:57;24201:148;;24315:34;24323:6;24331:9;24342:6;24315:7;:34::i;:::-;24201:148;;;24306:6;24201:148;24369:16;;24179:170;;-1:-1:-1;;;;24369:16:0;;;;:51;;;;-1:-1:-1;;;;;;24390:30:0;;;;;;:19;:30;;;;;;;;24389:31;24369:51;24366:133;;;24488:10;;24447:37;24472:11;24447:20;24457:9;-1:-1:-1;;;;;17889:18:0;17862:7;17889:18;;;:9;:18;;;;;;;17796:119;24447:20;:24;;:37::i;:::-;:51;;24439:60;;;;;;-1:-1:-1;;;;;24539:20:0;;;;;;:9;:20;;;;;;:37;;24564:11;24539:24;:37::i;:::-;-1:-1:-1;;;;;24516:20:0;;;;;;;:9;:20;;;;;;;:60;;;;24598:40;;;;;;;;;;24626:11;11459:25:1;;11447:2;11432:18;;11414:76;24598:40:0;;;;;;;;24660:4;24653:11;;;;;;;1380:192;1466:7;1502:12;1494:6;;;;1486:29;;;;-1:-1:-1;;;1486:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1526:9:0;1538:5;1542:1;1538;:5;:::i;:::-;1526:17;1380:192;-1:-1:-1;;;;;1380:192:0:o;1978:278::-;2064:7;2099:12;2092:5;2084:28;;;;-1:-1:-1;;;2084:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2123:9:0;2135:5;2139:1;2135;:5;:::i;24691:330::-;24821:53;;;;;;;;;;;-1:-1:-1;;;24821:53:0;;;;;;;;-1:-1:-1;;;;;24821:17:0;;24784:4;24821:17;;;:9;:17;;;;;;;:53;;24843:6;;24821:21;:53::i;:::-;-1:-1:-1;;;;;24801:17:0;;;;;;;:9;:17;;;;;;:73;;;;24908:20;;;;;;;:32;;24933:6;24908:24;:32::i;:::-;-1:-1:-1;;;;;24885:20:0;;;;;;;:9;:20;;;;;;;:55;;;;24956:35;;;;;;;;;;24984:6;11459:25:1;;11447:2;11432:18;;11414:76;24956:35:0;;;;;;;;-1:-1:-1;25009:4:0;24691:330;;;;;:::o;25029:849::-;16159:16;:23;;-1:-1:-1;;;;16159:23:0;-1:-1:-1;;;16159:23:0;;;25166:24:::1;::::0;25145:15:::1;::::0;16159:23;;25133:65:::1;::::0;25196:1:::1;::::0;25133:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;25111:87:::0;-1:-1:-1;25209:21:0::1;25233:24;:7:::0;25111:87;25233:11:::1;:24::i;:::-;25209:48;;25270:31;25287:13;25270:16;:31::i;:::-;25422:15;::::0;25337:21:::1;::::0;25312:22:::1;::::0;25393:52:::1;::::0;25422:22:::1;::::0;25442:1:::1;25422:19;:22::i;:::-;25393:24;::::0;;:28:::1;:52::i;:::-;25371:74;;25466:26;25495:59;25552:1;25495:52;25535:11;25495:35;25514:15;;25495:14;:18;;:35;;;;:::i;:59::-;25466:88:::0;-1:-1:-1;25567:26:0::1;25596:38;:14:::0;25466:88;25596:18:::1;:38::i;:::-;25567:67:::0;-1:-1:-1;25650:22:0;;25647:104:::1;;25708:22;::::0;25687:64:::1;::::0;-1:-1:-1;;;;;25708:22:0::1;25732:18:::0;25687:20:::1;:64::i;:::-;25790:1;25769:18;:22;:41;;;;;25809:1;25795:11;:15;25769:41;25766:104;;;25825:45;25838:11;25851:18;25825:12;:45::i;:::-;-1:-1:-1::0;;16205:16:0;:24;;-1:-1:-1;;;;16205:24:0;;;-1:-1:-1;;;;;25029:849:0:o;27085:622::-;-1:-1:-1;;;;;27246:20:0;;27171:7;27246:20;;;:12;:20;;;;;;27171:7;;27246:20;;27243:223;;;27295:38;27329:3;27295:29;27306:17;;27295:6;:10;;:29;;;;:::i;:38::-;27283:50;;27243:223;;;-1:-1:-1;;;;;27363:23:0;;;;;;:12;:23;;;;;;;;27360:106;;;27415:39;27450:3;27415:30;27426:18;;27415:6;:10;;:30;;;;:::i;:39::-;27403:51;;27360:106;27489:13;;27486:173;;27564:4;27546:24;;;;:9;:24;;;;;;:39;;27575:9;27546:28;:39::i;:::-;27537:4;27519:24;;;;:9;:24;;;;;;;:66;;;;27605:42;;-1:-1:-1;;;;;27605:42:0;;;;;;;27637:9;11459:25:1;;11447:2;11432:18;;11414:76;27605:42:0;;;;;;;;27486:173;27678:21;:6;27689:9;27678:10;:21::i;1580:250::-;1638:7;1662:6;1658:47;;-1:-1:-1;1692:1:0;1685:8;;1658:47;1717:9;1729:5;1733:1;1729;:5;:::i;:::-;1717:17;-1:-1:-1;1762:1:0;1753:5;1757:1;1717:17;1753:5;:::i;:::-;:10;1745:56;;;;-1:-1:-1;;;1745:56:0;;9586:2:1;1745:56:0;;;9568:21:1;9625:2;9605:18;;;9598:30;9664:34;9644:18;;;9637:62;-1:-1:-1;;;9715:18:1;;;9708:31;9756:19;;1745:56:0;9558:223:1;1236:136:0;1294:7;1321:43;1325:1;1328;1321:43;;;;;;;;;;;;;;;;;:3;:43::i;25890:666::-;26040:16;;;26054:1;26040:16;;;;;;;;26016:21;;26040:16;;;;;;;;;;-1:-1:-1;26040:16:0;26016:40;;26085:4;26067;26072:1;26067:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26067:23:0;;;:7;;;;;;;;;;:23;;;;26111:15;;:22;;;-1:-1:-1;;;26111:22:0;;;;:15;;;;;:20;;:22;;;;;26067:7;;26111:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26101:4;26106:1;26101:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26101:32:0;;;:7;;;;;;;;;:32;26178:15;;26146:62;;26163:4;;26178:15;26196:11;26146:8;:62::i;:::-;26247:15;;:240;;-1:-1:-1;;;26247:240:0;;-1:-1:-1;;;;;26247:15:0;;;;:66;;:240;;26328:11;;26247:15;;26398:4;;26425;;26461:15;;26247:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26513:35;26530:11;26543:4;26513:35;;;;;;;:::i;:::-;;;;;;;;25945:611;25890:666;:::o;21429:126::-;21521:26;;-1:-1:-1;;;;;21521:18:0;;;:26;;;;;21540:6;;21521:26;;;;21540:6;21521:18;:26;;;;;;;;;;;;;;;;;;;;;21429:126;;:::o;26564:513::-;26744:15;;26712:62;;26729:4;;-1:-1:-1;;;;;26744:15:0;26762:11;26712:8;:62::i;:::-;26817:15;;-1:-1:-1;;;;;26817:15:0;:31;26856:9;26889:4;26909:11;26817:15;;27021:7;5646;5673:6;-1:-1:-1;;;;;5673:6:0;;5608:79;27021:7;26817:252;;;;;;-1:-1:-1;;;;;;26817:252:0;;;-1:-1:-1;;;;;4960:15:1;;;26817:252:0;;;4942:34:1;4992:18;;;4985:34;;;;5035:18;;;5028:34;;;;5078:18;;;5071:34;5142:15;;;5121:19;;;5114:44;27043:15:0;5174:19:1;;;5167:35;4876:19;;26817:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26564:513;;:::o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:2;;;667:1;664;657:12;619:2;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;609:301;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:2;;;1077:1;1074;1067:12;1029:2;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;1019:352;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;1019:352::o;1376:416::-;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:2;;;1518:1;1515;1508:12;1470:2;1557:9;1544:23;1576:31;1601:5;1576:31;:::i;:::-;1626:5;-1:-1:-1;1683:2:1;1668:18;;1655:32;1725:15;;1718:23;1706:36;;1696:2;;1756:1;1753;1746:12;1797:315;1865:6;1873;1926:2;1914:9;1905:7;1901:23;1897:32;1894:2;;;1942:1;1939;1932:12;1894:2;1981:9;1968:23;2000:31;2025:5;2000:31;:::i;:::-;2050:5;2102:2;2087:18;;;;2074:32;;-1:-1:-1;;;1884:228:1:o;2117:180::-;2176:6;2229:2;2217:9;2208:7;2204:23;2200:32;2197:2;;;2245:1;2242;2235:12;2197:2;-1:-1:-1;2268:23:1;;2187:110;-1:-1:-1;2187:110:1:o;2302:248::-;2370:6;2378;2431:2;2419:9;2410:7;2406:23;2402:32;2399:2;;;2447:1;2444;2437:12;2399:2;-1:-1:-1;;2470:23:1;;;2540:2;2525:18;;;2512:32;;-1:-1:-1;2389:161:1:o;2555:306::-;2643:6;2651;2659;2712:2;2700:9;2691:7;2687:23;2683:32;2680:2;;;2728:1;2725;2718:12;2680:2;2757:9;2751:16;2741:26;;2807:2;2796:9;2792:18;2786:25;2776:35;;2851:2;2840:9;2836:18;2830:25;2820:35;;2670:191;;;;;:::o;2866:523::-;2970:6;2978;2986;2994;3002;3010;3063:3;3051:9;3042:7;3038:23;3034:33;3031:2;;;3080:1;3077;3070:12;3031:2;-1:-1:-1;;3103:23:1;;;3173:2;3158:18;;3145:32;;-1:-1:-1;3224:2:1;3209:18;;3196:32;;3275:2;3260:18;;3247:32;;-1:-1:-1;3326:3:1;3311:19;;3298:33;;-1:-1:-1;3378:3:1;3363:19;3350:33;;-1:-1:-1;3021:368:1;-1:-1:-1;3021:368:1:o;3394:461::-;3447:3;3485:5;3479:12;3512:6;3507:3;3500:19;3538:4;3567:2;3562:3;3558:12;3551:19;;3604:2;3597:5;3593:14;3625:1;3635:195;3649:6;3646:1;3643:13;3635:195;;;3714:13;;-1:-1:-1;;;;;3710:39:1;3698:52;;3770:12;;;;3805:15;;;;3746:1;3664:9;3635:195;;;-1:-1:-1;3846:3:1;;3455:400;-1:-1:-1;;;;;3455:400:1:o;5640:597::-;5752:4;5781:2;5810;5799:9;5792:21;5842:6;5836:13;5885:6;5880:2;5869:9;5865:18;5858:34;5910:1;5920:140;5934:6;5931:1;5928:13;5920:140;;;6029:14;;;6025:23;;6019:30;5995:17;;;6014:2;5991:26;5984:66;5949:10;;5920:140;;;6078:6;6075:1;6072:13;6069:2;;;6148:1;6143:2;6134:6;6123:9;6119:22;6115:31;6108:42;6069:2;-1:-1:-1;6221:2:1;6200:15;-1:-1:-1;;6196:29:1;6181:45;;;;6228:2;6177:54;;5761:476;-1:-1:-1;;;5761:476:1:o;9786:356::-;9988:2;9970:21;;;10007:18;;;10000:30;10066:34;10061:2;10046:18;;10039:62;10133:2;10118:18;;9960:182::o;11495:332::-;11702:6;11691:9;11684:25;11745:2;11740;11729:9;11725:18;11718:30;11665:4;11765:56;11817:2;11806:9;11802:18;11794:6;11765:56;:::i;:::-;11757:64;11674:153;-1:-1:-1;;;;11674:153:1:o;11832:582::-;12131:6;12120:9;12113:25;12174:6;12169:2;12158:9;12154:18;12147:34;12217:3;12212:2;12201:9;12197:18;12190:31;12094:4;12238:57;12290:3;12279:9;12275:19;12267:6;12238:57;:::i;:::-;-1:-1:-1;;;;;12331:32:1;;;;12326:2;12311:18;;12304:60;-1:-1:-1;12395:3:1;12380:19;12373:35;12230:65;12103:311;-1:-1:-1;;;12103:311:1:o;12608:128::-;12648:3;12679:1;12675:6;12672:1;12669:13;12666:2;;;12685:18;;:::i;:::-;-1:-1:-1;12721:9:1;;12656:80::o;12741:217::-;12781:1;12807;12797:2;;12851:10;12846:3;12842:20;12839:1;12832:31;12886:4;12883:1;12876:15;12914:4;12911:1;12904:15;12797:2;-1:-1:-1;12943:9:1;;12787:171::o;12963:168::-;13003:7;13069:1;13065;13061:6;13057:14;13054:1;13051:21;13046:1;13039:9;13032:17;13028:45;13025:2;;;13076:18;;:::i;:::-;-1:-1:-1;13116:9:1;;13015:116::o;13136:125::-;13176:4;13204:1;13201;13198:8;13195:2;;;13209:18;;:::i;:::-;-1:-1:-1;13246:9:1;;13185:76::o;13266:380::-;13345:1;13341:12;;;;13388;;;13409:2;;13463:4;13455:6;13451:17;13441:27;;13409:2;13516;13508:6;13505:14;13485:18;13482:38;13479:2;;;13562:10;13557:3;13553:20;13550:1;13543:31;13597:4;13594:1;13587:15;13625:4;13622:1;13615:15;13479:2;;13321:325;;;:::o;13651:127::-;13712:10;13707:3;13703:20;13700:1;13693:31;13743:4;13740:1;13733:15;13767:4;13764:1;13757:15;13783:127;13844:10;13839:3;13835:20;13832:1;13825:31;13875:4;13872:1;13865:15;13899:4;13896:1;13889:15;14047:131;-1:-1:-1;;;;;14122:31:1;;14112:42;;14102:2;;14168:1;14165;14158:12;14102:2;14092:86;:::o
Swarm Source
ipfs://40848e20cdae7533fd4b71cc0c4fe590383a6b3b99caf1c6979be48d4f997ebb
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.