ERC-20
Overview
Max Total Supply
1,000,000 YEET2
Holders
15
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
10,174.312432862 YEET2Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
yeet2
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-03 */ /* | | # # ####### ####### ####### ####### ####### # ####### ####### ####### # # # # # # # # # # # # # # # # # # # # # # # ##### ##### # # ##### # ##### ##### # # # # # # # # # # # # # # # # # # # # # # # # ####### ####### # ####### ####### ##### ####### ####### # V2 of the experimental protocol that purges jeets on every button push. WEBSITE: https://yeetzejeet.com TELEGRAM: https://t.me/YeetZeJeet TWITTER: https://twitter.com/YeetZeJeet */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;} function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;} function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;} function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;} function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;} function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}} function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b > a) return(false, 0); return(true, a - b);}} function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if (a == 0) return(true, 0); uint256 c = a * b; if(c / a != b) return(false, 0); return(true, c);}} function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a / b);}} function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a % b);}} function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b <= a, errorMessage); return a - b;}} function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a / b;}} function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a % b;}}} interface IERC20 { function totalSupply() external view returns (uint256); function circulatingSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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);} abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);} event OwnershipTransferred(address owner); } interface stakeIntegration { function stakingWithdraw(address depositor, uint256 _amount) external; function stakingDeposit(address depositor, uint256 _amount) external; } interface tokenStaking { function deposit(uint256 amount) external; function withdraw(uint256 amount) external; } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract yeet2 is IERC20, tokenStaking, Ownable { using SafeMath for uint256; string private constant _name = 'Yeet Ze Jeet 2.0'; string private constant _symbol = 'YEET2'; uint8 private constant _decimals = 9; uint256 private _totalSupply = 1000000 * (10 ** _decimals); uint256 public _maxTxAmount = ( _totalSupply * 150 ) / 10000; uint256 public _maxSellAmount = ( _totalSupply * 150 ) / 10000; uint256 public _maxWalletToken = ( _totalSupply * 150 ) / 10000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping(address => bool) private isFeeExempt; IRouter router; address public pair; uint256 private liquidityFee = 0; uint256 private marketingFee = 200; uint256 private developmentFee = 200; uint256 private stakingFee = 0; uint256 private tokenFee = 0; uint256 private totalFee = 2000; uint256 private sellFee = 4000; uint256 private transferFee = 4000; uint256 private denominator = 10000; bool private swapEnabled = true; bool private tradingAllowed = false; bool public NewTknmcs = true; uint256 public NewTknmcsSells; uint256 public NewTknmcsTrigger = 3; bool public NewTknmcsBuyNeeded = false; uint256 private swapTimes; bool private swapping; uint256 private swapAmount = 3; uint256 private swapThreshold = ( _totalSupply * 500 ) / 100000; uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000; uint256 public NewTknmcsMinAmount = 1; modifier lockTheSwap {swapping = true; _; swapping = false;} mapping(address => uint256) public amountStaked; uint256 public totalStaked; stakeIntegration internal stakingContract; address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal development_receiver = 0x3dBe36D7A2f6E57c249a2efbEc5cB5eB7e7650a7; address internal marketing_receiver = 0x3dBe36D7A2f6E57c249a2efbEc5cB5eB7e7650a7; address internal liquidity_receiver = 0x3dBe36D7A2f6E57c249a2efbEc5cB5eB7e7650a7; address internal staking_receiver = 0x3dBe36D7A2f6E57c249a2efbEc5cB5eB7e7650a7; address internal token_receiver = 0x000000000000000000000000000000000000dEaD; event Deposit(address indexed account, uint256 indexed amount, uint256 indexed timestamp); event Withdraw(address indexed account, uint256 indexed amount, uint256 indexed timestamp); event SetStakingAddress(address indexed stakingAddress, uint256 indexed timestamp); event TradingEnabled(address indexed account, uint256 indexed timestamp); event ExcludeFromFees(address indexed account, bool indexed isExcluded, uint256 indexed timestamp); event SetDividendExempt(address indexed account, bool indexed isExempt, uint256 indexed timestamp); event Launch(uint256 indexed whitelistTime, bool indexed whitelistAllowed, uint256 indexed timestamp); event SetInternalAddresses(address indexed marketing, address indexed liquidity, address indexed development, uint256 timestamp); event SetSwapBackSettings(uint256 indexed swapAmount, uint256 indexed swapThreshold, uint256 indexed swapMinAmount, uint256 timestamp); event SetDistributionCriteria(uint256 indexed minPeriod, uint256 indexed minDistribution, uint256 indexed distributorGas, uint256 timestamp); event SetParameters(uint256 indexed maxTxAmount, uint256 indexed maxWalletToken, uint256 indexed maxTransfer, uint256 timestamp); event SetStructure(uint256 indexed total, uint256 indexed sell, uint256 transfer, uint256 indexed timestamp); event CreateLiquidity(uint256 indexed tokenAmount, uint256 indexed ETHAmount, address indexed wallet, uint256 timestamp); constructor() Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; isFeeExempt[address(this)] = true; isFeeExempt[liquidity_receiver] = true; isFeeExempt[marketing_receiver] = true; isFeeExempt[development_receiver] = true; isFeeExempt[address(DEAD)] = true; isFeeExempt[msg.sender] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() public pure returns (string memory) {return _name;} function symbol() public pure returns (string memory) {return _symbol;} function decimals() public pure returns (uint8) {return _decimals;} function getOwner() external view override returns (address) { return owner; } function totalSupply() public view override returns (uint256) {return _totalSupply;} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function availableBalance(address wallet) public view returns (uint256) {return _balances[wallet].sub(amountStaked[wallet]);} function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function preTxCheck(address sender, address recipient, uint256 amount) internal view { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount <= balanceOf(sender),"ERC20: below available balance threshold"); } function _transfer(address sender, address recipient, uint256 amount) private { preTxCheck(sender, recipient, amount); checkTradingAllowed(sender, recipient); checkTxLimit(sender, recipient, amount); checkMaxWallet(sender, recipient, amount); checkNewTknmcs(sender, recipient, amount); swapbackCounters(sender, recipient, amount); swapBack(sender, recipient); _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function deposit(uint256 amount) override external { require(amount <= _balances[msg.sender].sub(amountStaked[msg.sender]), "ERC20: Cannot stake more than available balance"); stakingContract.stakingDeposit(msg.sender, amount); amountStaked[msg.sender] = amountStaked[msg.sender].add(amount); totalStaked = totalStaked.add(amount); emit Deposit(msg.sender, amount, block.timestamp); } function withdraw(uint256 amount) override external { require(amount <= amountStaked[msg.sender], "ERC20: Cannot unstake more than amount staked"); stakingContract.stakingWithdraw(msg.sender, amount); amountStaked[msg.sender] = amountStaked[msg.sender].sub(amount); totalStaked = totalStaked.sub(amount); emit Withdraw(msg.sender, amount, block.timestamp); } function setStakingAddress(address _staking) external onlyOwner { stakingContract = stakeIntegration(_staking); isFeeExempt[_staking] = true; emit SetStakingAddress(_staking, block.timestamp); } function setStructure(uint256 _liquidity, uint256 _marketing, uint256 _token, uint256 _development, uint256 _staking, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner { liquidityFee = _liquidity; marketingFee = _marketing; tokenFee = _token; stakingFee = _staking; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans; require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5) && transferFee <= denominator.div(5), "ERC20: fees cannot be more than 20%"); emit SetStructure(_total, _sell, _trans, block.timestamp); } function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner { uint256 newTx = (totalSupply().mul(_buy)).div(uint256(10000)); uint256 newTransfer = (totalSupply().mul(_trans)).div(uint256(10000)); uint256 newWallet = (totalSupply().mul(_wallet)).div(uint256(10000)); uint256 limit = totalSupply().mul(5).div(1000); require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "ERC20: max TXs and max Wallet cannot be less than .5%"); _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet; emit SetParameters(newTx, newWallet, newTransfer, block.timestamp); } function checkTradingAllowed(address sender, address recipient) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "ERC20: Trading is not allowed");} } function checkNewTknmcs(address sender, address recipient, uint256 amount) internal { if(NewTknmcs && !swapping){ if(recipient == pair && !isFeeExempt[sender]){NewTknmcsSells = NewTknmcsSells.add(uint256(1));} if(sender == pair && !isFeeExempt[recipient] && amount >= NewTknmcsMinAmount){NewTknmcsSells = uint256(0);} if(NewTknmcsSells > NewTknmcsTrigger){NewTknmcsBuyNeeded = true;} if(NewTknmcsBuyNeeded && !isFeeExempt[recipient] && !isFeeExempt[sender]){ require(sender == pair, "ERC20: NewTknmcs purchase required"); if(amount >= NewTknmcsMinAmount){NewTknmcsSells = uint256(0); NewTknmcsBuyNeeded = false;}}} } function setNewTknmcs(bool enabled, uint256 trigger, uint256 minAmount) external onlyOwner { NewTknmcs = enabled; NewTknmcsTrigger = trigger; NewTknmcsMinAmount = minAmount; } function checkMaxWallet(address sender, address recipient, uint256 amount) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){ require((_balances[recipient].add(amount)) <= _maxWalletToken, "ERC20: exceeds maximum wallet amount.");} } function swapbackCounters(address sender, address recipient, uint256 amount) internal { if(recipient == pair && !isFeeExempt[sender] && amount >= minTokenAmount){swapTimes += uint256(1);} } function checkTxLimit(address sender, address recipient, uint256 amount) internal view { if(amountStaked[sender] > uint256(0)){require((amount.add(amountStaked[sender])) <= _balances[sender], "ERC20: exceeds maximum allowed not currently staked.");} if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "ERC20: tx limit exceeded");} require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "ERC20: tx limit exceeded"); } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee).add(stakingFee)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith, liquidity_receiver); } uint256 marketingAmount = unitBalance.mul(2).mul(marketingFee); if(marketingAmount > 0){payable(marketing_receiver).transfer(marketingAmount);} uint256 stakingAmount = unitBalance.mul(2).mul(stakingFee); if(stakingAmount > 0){payable(staking_receiver).transfer(stakingAmount);} if(address(this).balance > uint256(0)){payable(development_receiver).transfer(address(this).balance);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount, address receiver) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, address(receiver), block.timestamp); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function shouldSwapBack(address sender, address recipient) internal view returns (bool) { bool aboveThreshold = balanceOf(address(this)) >= swapThreshold; return !swapping && swapEnabled && tradingAllowed && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold; } function swapBack(address sender, address recipient) internal { if(shouldSwapBack(sender, recipient)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);} } function startTrading() external onlyOwner { tradingAllowed = true; emit TradingEnabled(msg.sender, block.timestamp); } function setInternalAddresses(address _marketing, address _liquidity, address _development, address _staking, address _token) external onlyOwner { marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development; staking_receiver = _staking; token_receiver = _token; isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_staking] = true; isFeeExempt[_token] = true; emit SetInternalAddresses(_marketing, _liquidity, _development, block.timestamp); } function setisExempt(address _address, bool _enabled) external onlyOwner { isFeeExempt[_address] = _enabled; emit ExcludeFromFees(_address, _enabled, block.timestamp); } function rescueERC20(address _address, uint256 _amount) external { IERC20(_address).transfer(development_receiver, _amount); } function setSwapbackSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner { swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000)); emit SetSwapBackSettings(_swapAmount, _swapThreshold, _minTokenAmount, block.timestamp); } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(recipient == pair){return sellFee;} if(sender == pair){return totalFee;} return transferFee; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(tokenFee > uint256(0)){_transfer(address(this), address(token_receiver), amount.div(denominator).mul(tokenFee));} return amount.sub(feeAmount);} return amount; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); 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); } }
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":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"ETHAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"CreateLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isExcluded","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"whitelistTime","type":"uint256"},{"indexed":true,"internalType":"bool","name":"whitelistAllowed","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"minPeriod","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"minDistribution","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"distributorGas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetDistributionCriteria","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isExempt","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetDividendExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketing","type":"address"},{"indexed":true,"internalType":"address","name":"liquidity","type":"address"},{"indexed":true,"internalType":"address","name":"development","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetInternalAddresses","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTransfer","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetStakingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"total","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetStructure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"swapAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"swapThreshold","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"swapMinAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetSwapBackSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingEnabled","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"NewTknmcs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NewTknmcsBuyNeeded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NewTknmcsMinAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NewTknmcsSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NewTknmcsTrigger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","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":"","type":"address"}],"name":"amountStaked","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":"wallet","type":"address"}],"name":"availableBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"},{"internalType":"address","name":"_staking","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"}],"name":"setNewTknmcs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staking","type":"address"}],"name":"setStakingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_token","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_staking","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a6200052a565b6200002190620f424062000542565b600155612710600154609662000038919062000542565b6200004491906200055c565b60025561271060015460966200005b919062000542565b6200006791906200055c565b60035561271060015460966200007e919062000542565b6200008a91906200055c565b6004556000600a81905560c8600b819055600c55600d819055600e556107d0600f55610fa060108190556011556127106012556013805462ffffff191662010001179055600360158190556016805460ff19169055601955600154620186a090620000f8906101f462000542565b6200010491906200055c565b601a55620186a0600154600a6200011c919062000542565b6200012891906200055c565b601b556001601c55602080546001600160a01b0319908116733dbe36d7a2f6e57c249a2efbec5cb5eb7e7650a790811790925560218054821683179055602280548216831790556023805482169092179091556024805490911661dead1790553480156200019557600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022391906200057f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000271573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029791906200057f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b91906200057f565b600880546001600160a01b038581166001600160a01b031992831617909255600980548484169216919091179055306000908152600760209081526040808320805460ff1990811660019081179092556022548616855282852080548216831790556021548616855282852080548216831790558354909516845281842080548616821790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054861682179055338085528285208054909616821790955554600583528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620005aa565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200046c57816000190482111562000450576200045062000415565b808516156200045e57918102915b93841c939080029062000430565b509250929050565b600082620004855750600162000524565b81620004945750600062000524565b8160018114620004ad5760028114620004b857620004d8565b600191505062000524565b60ff841115620004cc57620004cc62000415565b50506001821b62000524565b5060208310610133831016604e8410600b8410161715620004fd575081810a62000524565b6200050983836200042b565b806000190482111562000520576200052062000415565b0290505b92915050565b60006200053b60ff84168362000474565b9392505050565b808202811582820484141762000524576200052462000415565b6000826200057a57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200059257600080fd5b81516001600160a01b03811681146200053b57600080fd5b61263480620005ba6000396000f3fe6080604052600436106102135760003560e01c8063817b1cd211610118578063a9059cbb116100a0578063e7fd20871161006f578063e7fd20871461064a578063e94dd17c14610660578063ef40a67014610680578063f2fde38b146106ad578063f4e0d9ac146106cd57600080fd5b8063a9059cbb146105a4578063b6b55f25146105c4578063dd62ed3e146105e4578063e2d6f94c1461062a57600080fd5b80639358928b116100e75780639358928b1461050157806395d89b41146105165780639fb05d3714610544578063a0821be314610564578063a8aa1b311461058457600080fd5b8063817b1cd21461047957806384f2e2a41461048f578063893d20e8146104af5780638cd4426d146104e157600080fd5b806334c5d2ce1161019b5780637035d3b31161016a5780637035d3b3146103eb57806370a082311461040157806378109e54146104375780637cca52fe1461044d5780637d1db4a51461046357600080fd5b806334c5d2ce1461037157806348ff2b8b146103915780636909cad1146103b15780636981481a146103d157600080fd5b806323b872dd116101e257806323b872dd146102cf578063293230b8146102ef5780632e1a7d4d146103065780632f54bf6e14610326578063313ce5671461035557600080fd5b806306fdde031461021f578063095ea7b31461026a57806318160ddd1461029a5780631d6afe50146102b957600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152601081526f059656574205a65204a65657420322e360841b60208201525b60405161026191906121ad565b60405180910390f35b34801561027657600080fd5b5061028a610285366004612213565b6106ed565b6040519015158152602001610261565b3480156102a657600080fd5b506001545b604051908152602001610261565b3480156102c557600080fd5b506102ab60145481565b3480156102db57600080fd5b5061028a6102ea36600461223f565b610704565b3480156102fb57600080fd5b5061030461076e565b005b34801561031257600080fd5b50610304610321366004612280565b6107df565b34801561033257600080fd5b5061028a610341366004612299565b6000546001600160a01b0391821691161490565b34801561036157600080fd5b5060405160098152602001610261565b34801561037d57600080fd5b5061030461038c3660046122b6565b610925565b34801561039d57600080fd5b506103046103ac3660046122f0565b610a8f565b3480156103bd57600080fd5b5060135461028a9062010000900460ff1681565b3480156103dd57600080fd5b5060165461028a9060ff1681565b3480156103f757600080fd5b506102ab601c5481565b34801561040d57600080fd5b506102ab61041c366004612299565b6001600160a01b031660009081526005602052604090205490565b34801561044357600080fd5b506102ab60045481565b34801561045957600080fd5b506102ab60035481565b34801561046f57600080fd5b506102ab60025481565b34801561048557600080fd5b506102ab601e5481565b34801561049b57600080fd5b506103046104aa366004612329565b610b0e565b3480156104bb57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610261565b3480156104ed57600080fd5b506103046104fc366004612213565b610b5b565b34801561050d57600080fd5b506102ab610bd7565b34801561052257600080fd5b506040805180820190915260058152642ca2a2aa1960d91b6020820152610254565b34801561055057600080fd5b5061030461055f36600461235e565b610c48565b34801561057057600080fd5b506102ab61057f366004612299565b610d56565b34801561059057600080fd5b506009546104c9906001600160a01b031681565b3480156105b057600080fd5b5061028a6105bf366004612213565b610d83565b3480156105d057600080fd5b506103046105df366004612280565b610d90565b3480156105f057600080fd5b506102ab6105ff3660046123cf565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561063657600080fd5b506103046106453660046123fd565b610eed565b34801561065657600080fd5b506102ab60155481565b34801561066c57600080fd5b5061030461067b3660046122b6565b611026565b34801561068c57600080fd5b506102ab61069b366004612299565b601d6020526000908152604090205481565b3480156106b957600080fd5b506103046106c8366004612299565b6110c5565b3480156106d957600080fd5b506103046106e8366004612299565b611143565b60006106fa3384846111cf565b5060015b92915050565b60006107118484846112f3565b610763843361075e856040518060600160405280602881526020016125d7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611424565b6111cf565b5060015b9392505050565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260040161079890612452565b60405180910390fd5b6013805461ff001916610100179055604051429033907f340c369ced7c3a65b67543c4f1e839173c42d01b38931b0c01b18c89a1d1ba4b90600090a3565b336000908152601d60205260409020548111156108545760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2043616e6e6f7420756e7374616b65206d6f7265207468616e2060448201526c185b5bdd5b9d081cdd185ad959609a1b6064820152608401610798565b601f5460405163d8a9bf2960e01b8152336004820152602481018390526001600160a01b039091169063d8a9bf2990604401600060405180830381600087803b1580156108a057600080fd5b505af11580156108b4573d6000803e3d6000fd5b5050336000908152601d60205260409020546108d39250905082611450565b336000908152601d6020526040902055601e546108f09082611450565b601e556040514290829033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a450565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260040161079890612452565b600061097061271061096a8661096460015490565b9061145c565b90611468565b9050600061098761271061096a8661096460015490565b9050600061099e61271061096a8661096460015490565b905060006109b66103e861096a600561096460015490565b90508084101580156109c85750808310155b80156109d45750808210155b610a3e5760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e352560581b6064820152608401610798565b6002849055600383905560048290556040514281528390839086907fbd5acdd9cd7346c04cee822893f228a65a948bc41357408255ab8f36c446349f9060200160405180910390a450505050505050565b6000546001600160a01b03163314610ab95760405162461bcd60e51b815260040161079890612452565b6001600160a01b038216600081815260076020526040808220805460ff19168515159081179091559051429391927ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821191a45050565b6000546001600160a01b03163314610b385760405162461bcd60e51b815260040161079890612452565b60138054931515620100000262ff00001990941693909317909255601555601c55565b60205460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610bae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd29190612472565b505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba546001549192610c43929091610c3d9190611450565b90611450565b905090565b6000546001600160a01b03163314610c725760405162461bcd60e51b815260040161079890612452565b602180546001600160a01b03199081166001600160a01b038881169182179093556022805483168885169081179091556020805484168886169081178255602380548616898816908117909155602480549096169688169687179095556000848152600783526040808220805460ff199081166001908117909255868452828420805482168317905597835281832080548916821790559782529081902080549096169096179094559351428152929390927f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca910160405180910390a45050505050565b6001600160a01b0381166000908152601d602090815260408083205460059092528220546106fe91611450565b60006106fa3384846112f3565b336000908152601d6020908152604080832054600590925290912054610db591611450565b811115610e1c5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a2043616e6e6f74207374616b65206d6f7265207468616e20617660448201526e61696c61626c652062616c616e636560881b6064820152608401610798565b601f5460405163773a0f0960e01b8152336004820152602481018390526001600160a01b039091169063773a0f0990604401600060405180830381600087803b158015610e6857600080fd5b505af1158015610e7c573d6000803e3d6000fd5b5050336000908152601d6020526040902054610e9b9250905082611474565b336000908152601d6020526040902055601e54610eb89082611474565b601e556040514290829033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450565b6000546001600160a01b03163314610f175760405162461bcd60e51b815260040161079890612452565b600a889055600b879055600e869055600d849055600c859055600f83905560108290556011819055601254610f4d906005611468565b600f5411158015610f6d5750601254610f67906005611468565b60105411155b8015610f885750601254610f82906005611468565b60115411155b610fe05760405162461bcd60e51b815260206004820152602360248201527f45524332303a20666565732063616e6e6f74206265206d6f7265207468616e2060448201526232302560e81b6064820152608401610798565b4282847fdddb43af0ad29e5d9d3cb393fd94e8f11ac2c069da19545bac6ee6baf3ddc9898460405161101491815260200190565b60405180910390a45050505050505050565b6000546001600160a01b031633146110505760405162461bcd60e51b815260040161079890612452565b601983905560015461106b90620186a09061096a908561145c565b601a5560015461108490620186a09061096a908461145c565b601b556040514281528190839085907f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb39060200160405180910390a4505050565b6000546001600160a01b031633146110ef5760405162461bcd60e51b815260040161079890612452565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461116d5760405162461bcd60e51b815260040161079890612452565b601f80546001600160a01b0319166001600160a01b038316908117909155600081815260076020526040808220805460ff19166001179055514292917f23481943b6ef3dff645af874fbb24781bf224a02312f9cb308880e03e0a9ddee91a350565b6001600160a01b0383166112315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610798565b6001600160a01b0382166112925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610798565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6112fe838383611480565b61130883836115bf565b611313838383611661565b61131e838383611855565b61132983838361194f565b611334838383611aff565b61133e8383611b65565b6001600160a01b0383166000908152600560205260409020546113619082611450565b6001600160a01b0384166000908152600560205260408120919091556113878484611b88565b611391578161139c565b61139c848484611bce565b6001600160a01b0384166000908152600560205260409020549091506113c29082611474565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114169085815260200190565b60405180910390a350505050565b600081848411156114485760405162461bcd60e51b815260040161079891906121ad565b505050900390565b600061076782846124a5565b600061076782846124b8565b600061076782846124cf565b600061076782846124f1565b6001600160a01b0383166114e45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610798565b6001600160a01b0382166115465760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610798565b6001600160a01b038316600090815260056020526040902054811115610bd25760405162461bcd60e51b815260206004820152602860248201527f45524332303a2062656c6f7720617661696c61626c652062616c616e636520746044820152671a1c995cda1bdb1960c21b6064820152608401610798565b6001600160a01b03821660009081526007602052604090205460ff1615801561160157506001600160a01b03811660009081526007602052604090205460ff16155b1561165d57601354610100900460ff1661165d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f7765640000006044820152606401610798565b5050565b6001600160a01b0383166000908152601d60205260409020541561171a576001600160a01b038316600090815260056020908152604080832054601d909252909120546116af908390611474565b111561171a5760405162461bcd60e51b815260206004820152603460248201527f45524332303a2065786365656473206d6178696d756d20616c6c6f776564206e60448201527337ba1031bab93932b73a363c9039ba30b5b2b21760611b6064820152608401610798565b6009546001600160a01b038481169116146117c2576003548111158061175857506001600160a01b03831660009081526007602052604090205460ff165b8061177b57506001600160a01b03821660009081526007602052604090205460ff165b6117c25760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b6044820152606401610798565b600254811115806117eb57506001600160a01b03831660009081526007602052604090205460ff165b8061180e57506001600160a01b03821660009081526007602052604090205460ff165b610bd25760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b6044820152606401610798565b6001600160a01b03831660009081526007602052604090205460ff1615801561189757506001600160a01b03821660009081526007602052604090205460ff16155b80156118b157506009546001600160a01b03838116911614155b80156118c857506001600160a01b03821661dead14155b15610bd2576004546001600160a01b0383166000908152600560205260409020546118f39083611474565b1115610bd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b6064820152608401610798565b60135462010000900460ff16801561196a575060185460ff16155b15610bd2576009546001600160a01b0383811691161480156119a557506001600160a01b03831660009081526007602052604090205460ff16155b156119bc576014546119b8906001611474565b6014555b6009546001600160a01b0384811691161480156119f257506001600160a01b03821660009081526007602052604090205460ff16155b8015611a005750601c548110155b15611a0b5760006014555b6015546014541115611a25576016805460ff191660011790555b60165460ff168015611a5057506001600160a01b03821660009081526007602052604090205460ff16155b8015611a7557506001600160a01b03831660009081526007602052604090205460ff16155b15610bd2576009546001600160a01b03848116911614611ae25760405162461bcd60e51b815260206004820152602260248201527f45524332303a204e6577546b6e6d637320707572636861736520726571756972604482015261195960f21b6064820152608401610798565b601c548110610bd25760006014556016805460ff19169055505050565b6009546001600160a01b038381169116148015611b3557506001600160a01b03831660009081526007602052604090205460ff16155b8015611b435750601b548110155b15610bd257600160176000828254611b5b91906124f1565b9091555050505050565b611b6f8282611cc5565b1561165d57611b7f601a54611d64565b60006017555050565b6001600160a01b03821660009081526007602052604081205460ff161580156107675750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611bdb8585611f5d565b1115611cbe576000611bfe611bf08686611f5d565b601254610964908690611468565b30600090815260056020526040902054909150611c1b9082611474565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6c9085815260200190565b60405180910390a3600e5415611cac57602454600e54601254611cac9230926001600160a01b0390911691611ca79190610964908990611468565b6112f3565b611cb68382611450565b915050610767565b5092915050565b601a5430600090815260056020526040812054601854919211159060ff16158015611cf2575060135460ff165b8015611d055750601354610100900460ff165b8015611d2a57506001600160a01b03841660009081526007602052604090205460ff16155b8015611d4357506009546001600160a01b038481169116145b8015611d53575060195460175410155b8015611d5c5750805b949350505050565b6001601860006101000a81548160ff0219169083151502179055506000611db46002610964600d54611dae600c54611dae600b54611dae6001600a5461147490919063ffffffff16565b90611474565b90506000611dd18261096a600a548661145c90919063ffffffff16565b90506000611ddf8483611450565b905047611deb82611fa8565b6000611df74783611450565b90506000611e1a611e13600a548861145090919063ffffffff16565b8390611468565b90506000611e33600a548361145c90919063ffffffff16565b90508015611e5457602254611e5490879083906001600160a01b0316612102565b600b54600090611e699061096485600261145c565b90508015611ead576021546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611eab573d6000803e3d6000fd5b505b600d54600090611ec29061096486600261145c565b90508015611f06576023546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f04573d6000803e3d6000fd5b505b4715611f47576020546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611f45573d6000803e3d6000fd5b505b50506018805460ff191690555050505050505050565b6009546000906001600160a01b0390811690831603611f7f57506010546106fe565b6009546001600160a01b0390811690841603611f9e5750600f546106fe565b5060115492915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fdd57611fdd612504565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205a919061251a565b8160018151811061206d5761206d612504565b6001600160a01b03928316602091820292909201015260085461209391309116846111cf565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906120cc908590600090869030904290600401612537565b600060405180830381600087803b1580156120e657600080fd5b505af11580156120fa573d6000803e3d6000fd5b505050505050565b60085461211a9030906001600160a01b0316856111cf565b60085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af1158015612188573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120fa91906125a8565b600060208083528351808285015260005b818110156121da578581018301518582016040015282016121be565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461221057600080fd5b50565b6000806040838503121561222657600080fd5b8235612231816121fb565b946020939093013593505050565b60008060006060848603121561225457600080fd5b833561225f816121fb565b9250602084013561226f816121fb565b929592945050506040919091013590565b60006020828403121561229257600080fd5b5035919050565b6000602082840312156122ab57600080fd5b8135610767816121fb565b6000806000606084860312156122cb57600080fd5b505081359360208301359350604090920135919050565b801515811461221057600080fd5b6000806040838503121561230357600080fd5b823561230e816121fb565b9150602083013561231e816122e2565b809150509250929050565b60008060006060848603121561233e57600080fd5b8335612349816122e2565b95602085013595506040909401359392505050565b600080600080600060a0868803121561237657600080fd5b8535612381816121fb565b94506020860135612391816121fb565b935060408601356123a1816121fb565b925060608601356123b1816121fb565b915060808601356123c1816121fb565b809150509295509295909350565b600080604083850312156123e257600080fd5b82356123ed816121fb565b9150602083013561231e816121fb565b600080600080600080600080610100898b03121561241a57600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561248457600080fd5b8151610767816122e2565b634e487b7160e01b600052601160045260246000fd5b818103818111156106fe576106fe61248f565b80820281158282048414176106fe576106fe61248f565b6000826124ec57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106fe576106fe61248f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561252c57600080fd5b8151610767816121fb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125875784516001600160a01b031683529383019391830191600101612562565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125bd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122085749fe4df7d50efa9eae38d76ede4368bb0d37d867bf1ab7340dd8fb334b79a64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102135760003560e01c8063817b1cd211610118578063a9059cbb116100a0578063e7fd20871161006f578063e7fd20871461064a578063e94dd17c14610660578063ef40a67014610680578063f2fde38b146106ad578063f4e0d9ac146106cd57600080fd5b8063a9059cbb146105a4578063b6b55f25146105c4578063dd62ed3e146105e4578063e2d6f94c1461062a57600080fd5b80639358928b116100e75780639358928b1461050157806395d89b41146105165780639fb05d3714610544578063a0821be314610564578063a8aa1b311461058457600080fd5b8063817b1cd21461047957806384f2e2a41461048f578063893d20e8146104af5780638cd4426d146104e157600080fd5b806334c5d2ce1161019b5780637035d3b31161016a5780637035d3b3146103eb57806370a082311461040157806378109e54146104375780637cca52fe1461044d5780637d1db4a51461046357600080fd5b806334c5d2ce1461037157806348ff2b8b146103915780636909cad1146103b15780636981481a146103d157600080fd5b806323b872dd116101e257806323b872dd146102cf578063293230b8146102ef5780632e1a7d4d146103065780632f54bf6e14610326578063313ce5671461035557600080fd5b806306fdde031461021f578063095ea7b31461026a57806318160ddd1461029a5780631d6afe50146102b957600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152601081526f059656574205a65204a65657420322e360841b60208201525b60405161026191906121ad565b60405180910390f35b34801561027657600080fd5b5061028a610285366004612213565b6106ed565b6040519015158152602001610261565b3480156102a657600080fd5b506001545b604051908152602001610261565b3480156102c557600080fd5b506102ab60145481565b3480156102db57600080fd5b5061028a6102ea36600461223f565b610704565b3480156102fb57600080fd5b5061030461076e565b005b34801561031257600080fd5b50610304610321366004612280565b6107df565b34801561033257600080fd5b5061028a610341366004612299565b6000546001600160a01b0391821691161490565b34801561036157600080fd5b5060405160098152602001610261565b34801561037d57600080fd5b5061030461038c3660046122b6565b610925565b34801561039d57600080fd5b506103046103ac3660046122f0565b610a8f565b3480156103bd57600080fd5b5060135461028a9062010000900460ff1681565b3480156103dd57600080fd5b5060165461028a9060ff1681565b3480156103f757600080fd5b506102ab601c5481565b34801561040d57600080fd5b506102ab61041c366004612299565b6001600160a01b031660009081526005602052604090205490565b34801561044357600080fd5b506102ab60045481565b34801561045957600080fd5b506102ab60035481565b34801561046f57600080fd5b506102ab60025481565b34801561048557600080fd5b506102ab601e5481565b34801561049b57600080fd5b506103046104aa366004612329565b610b0e565b3480156104bb57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610261565b3480156104ed57600080fd5b506103046104fc366004612213565b610b5b565b34801561050d57600080fd5b506102ab610bd7565b34801561052257600080fd5b506040805180820190915260058152642ca2a2aa1960d91b6020820152610254565b34801561055057600080fd5b5061030461055f36600461235e565b610c48565b34801561057057600080fd5b506102ab61057f366004612299565b610d56565b34801561059057600080fd5b506009546104c9906001600160a01b031681565b3480156105b057600080fd5b5061028a6105bf366004612213565b610d83565b3480156105d057600080fd5b506103046105df366004612280565b610d90565b3480156105f057600080fd5b506102ab6105ff3660046123cf565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561063657600080fd5b506103046106453660046123fd565b610eed565b34801561065657600080fd5b506102ab60155481565b34801561066c57600080fd5b5061030461067b3660046122b6565b611026565b34801561068c57600080fd5b506102ab61069b366004612299565b601d6020526000908152604090205481565b3480156106b957600080fd5b506103046106c8366004612299565b6110c5565b3480156106d957600080fd5b506103046106e8366004612299565b611143565b60006106fa3384846111cf565b5060015b92915050565b60006107118484846112f3565b610763843361075e856040518060600160405280602881526020016125d7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611424565b6111cf565b5060015b9392505050565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260040161079890612452565b60405180910390fd5b6013805461ff001916610100179055604051429033907f340c369ced7c3a65b67543c4f1e839173c42d01b38931b0c01b18c89a1d1ba4b90600090a3565b336000908152601d60205260409020548111156108545760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2043616e6e6f7420756e7374616b65206d6f7265207468616e2060448201526c185b5bdd5b9d081cdd185ad959609a1b6064820152608401610798565b601f5460405163d8a9bf2960e01b8152336004820152602481018390526001600160a01b039091169063d8a9bf2990604401600060405180830381600087803b1580156108a057600080fd5b505af11580156108b4573d6000803e3d6000fd5b5050336000908152601d60205260409020546108d39250905082611450565b336000908152601d6020526040902055601e546108f09082611450565b601e556040514290829033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a450565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260040161079890612452565b600061097061271061096a8661096460015490565b9061145c565b90611468565b9050600061098761271061096a8661096460015490565b9050600061099e61271061096a8661096460015490565b905060006109b66103e861096a600561096460015490565b90508084101580156109c85750808310155b80156109d45750808210155b610a3e5760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e352560581b6064820152608401610798565b6002849055600383905560048290556040514281528390839086907fbd5acdd9cd7346c04cee822893f228a65a948bc41357408255ab8f36c446349f9060200160405180910390a450505050505050565b6000546001600160a01b03163314610ab95760405162461bcd60e51b815260040161079890612452565b6001600160a01b038216600081815260076020526040808220805460ff19168515159081179091559051429391927ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821191a45050565b6000546001600160a01b03163314610b385760405162461bcd60e51b815260040161079890612452565b60138054931515620100000262ff00001990941693909317909255601555601c55565b60205460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610bae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd29190612472565b505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba546001549192610c43929091610c3d9190611450565b90611450565b905090565b6000546001600160a01b03163314610c725760405162461bcd60e51b815260040161079890612452565b602180546001600160a01b03199081166001600160a01b038881169182179093556022805483168885169081179091556020805484168886169081178255602380548616898816908117909155602480549096169688169687179095556000848152600783526040808220805460ff199081166001908117909255868452828420805482168317905597835281832080548916821790559782529081902080549096169096179094559351428152929390927f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca910160405180910390a45050505050565b6001600160a01b0381166000908152601d602090815260408083205460059092528220546106fe91611450565b60006106fa3384846112f3565b336000908152601d6020908152604080832054600590925290912054610db591611450565b811115610e1c5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a2043616e6e6f74207374616b65206d6f7265207468616e20617660448201526e61696c61626c652062616c616e636560881b6064820152608401610798565b601f5460405163773a0f0960e01b8152336004820152602481018390526001600160a01b039091169063773a0f0990604401600060405180830381600087803b158015610e6857600080fd5b505af1158015610e7c573d6000803e3d6000fd5b5050336000908152601d6020526040902054610e9b9250905082611474565b336000908152601d6020526040902055601e54610eb89082611474565b601e556040514290829033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450565b6000546001600160a01b03163314610f175760405162461bcd60e51b815260040161079890612452565b600a889055600b879055600e869055600d849055600c859055600f83905560108290556011819055601254610f4d906005611468565b600f5411158015610f6d5750601254610f67906005611468565b60105411155b8015610f885750601254610f82906005611468565b60115411155b610fe05760405162461bcd60e51b815260206004820152602360248201527f45524332303a20666565732063616e6e6f74206265206d6f7265207468616e2060448201526232302560e81b6064820152608401610798565b4282847fdddb43af0ad29e5d9d3cb393fd94e8f11ac2c069da19545bac6ee6baf3ddc9898460405161101491815260200190565b60405180910390a45050505050505050565b6000546001600160a01b031633146110505760405162461bcd60e51b815260040161079890612452565b601983905560015461106b90620186a09061096a908561145c565b601a5560015461108490620186a09061096a908461145c565b601b556040514281528190839085907f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb39060200160405180910390a4505050565b6000546001600160a01b031633146110ef5760405162461bcd60e51b815260040161079890612452565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461116d5760405162461bcd60e51b815260040161079890612452565b601f80546001600160a01b0319166001600160a01b038316908117909155600081815260076020526040808220805460ff19166001179055514292917f23481943b6ef3dff645af874fbb24781bf224a02312f9cb308880e03e0a9ddee91a350565b6001600160a01b0383166112315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610798565b6001600160a01b0382166112925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610798565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6112fe838383611480565b61130883836115bf565b611313838383611661565b61131e838383611855565b61132983838361194f565b611334838383611aff565b61133e8383611b65565b6001600160a01b0383166000908152600560205260409020546113619082611450565b6001600160a01b0384166000908152600560205260408120919091556113878484611b88565b611391578161139c565b61139c848484611bce565b6001600160a01b0384166000908152600560205260409020549091506113c29082611474565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114169085815260200190565b60405180910390a350505050565b600081848411156114485760405162461bcd60e51b815260040161079891906121ad565b505050900390565b600061076782846124a5565b600061076782846124b8565b600061076782846124cf565b600061076782846124f1565b6001600160a01b0383166114e45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610798565b6001600160a01b0382166115465760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610798565b6001600160a01b038316600090815260056020526040902054811115610bd25760405162461bcd60e51b815260206004820152602860248201527f45524332303a2062656c6f7720617661696c61626c652062616c616e636520746044820152671a1c995cda1bdb1960c21b6064820152608401610798565b6001600160a01b03821660009081526007602052604090205460ff1615801561160157506001600160a01b03811660009081526007602052604090205460ff16155b1561165d57601354610100900460ff1661165d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f7765640000006044820152606401610798565b5050565b6001600160a01b0383166000908152601d60205260409020541561171a576001600160a01b038316600090815260056020908152604080832054601d909252909120546116af908390611474565b111561171a5760405162461bcd60e51b815260206004820152603460248201527f45524332303a2065786365656473206d6178696d756d20616c6c6f776564206e60448201527337ba1031bab93932b73a363c9039ba30b5b2b21760611b6064820152608401610798565b6009546001600160a01b038481169116146117c2576003548111158061175857506001600160a01b03831660009081526007602052604090205460ff165b8061177b57506001600160a01b03821660009081526007602052604090205460ff165b6117c25760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b6044820152606401610798565b600254811115806117eb57506001600160a01b03831660009081526007602052604090205460ff165b8061180e57506001600160a01b03821660009081526007602052604090205460ff165b610bd25760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b6044820152606401610798565b6001600160a01b03831660009081526007602052604090205460ff1615801561189757506001600160a01b03821660009081526007602052604090205460ff16155b80156118b157506009546001600160a01b03838116911614155b80156118c857506001600160a01b03821661dead14155b15610bd2576004546001600160a01b0383166000908152600560205260409020546118f39083611474565b1115610bd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b6064820152608401610798565b60135462010000900460ff16801561196a575060185460ff16155b15610bd2576009546001600160a01b0383811691161480156119a557506001600160a01b03831660009081526007602052604090205460ff16155b156119bc576014546119b8906001611474565b6014555b6009546001600160a01b0384811691161480156119f257506001600160a01b03821660009081526007602052604090205460ff16155b8015611a005750601c548110155b15611a0b5760006014555b6015546014541115611a25576016805460ff191660011790555b60165460ff168015611a5057506001600160a01b03821660009081526007602052604090205460ff16155b8015611a7557506001600160a01b03831660009081526007602052604090205460ff16155b15610bd2576009546001600160a01b03848116911614611ae25760405162461bcd60e51b815260206004820152602260248201527f45524332303a204e6577546b6e6d637320707572636861736520726571756972604482015261195960f21b6064820152608401610798565b601c548110610bd25760006014556016805460ff19169055505050565b6009546001600160a01b038381169116148015611b3557506001600160a01b03831660009081526007602052604090205460ff16155b8015611b435750601b548110155b15610bd257600160176000828254611b5b91906124f1565b9091555050505050565b611b6f8282611cc5565b1561165d57611b7f601a54611d64565b60006017555050565b6001600160a01b03821660009081526007602052604081205460ff161580156107675750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611bdb8585611f5d565b1115611cbe576000611bfe611bf08686611f5d565b601254610964908690611468565b30600090815260056020526040902054909150611c1b9082611474565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6c9085815260200190565b60405180910390a3600e5415611cac57602454600e54601254611cac9230926001600160a01b0390911691611ca79190610964908990611468565b6112f3565b611cb68382611450565b915050610767565b5092915050565b601a5430600090815260056020526040812054601854919211159060ff16158015611cf2575060135460ff165b8015611d055750601354610100900460ff165b8015611d2a57506001600160a01b03841660009081526007602052604090205460ff16155b8015611d4357506009546001600160a01b038481169116145b8015611d53575060195460175410155b8015611d5c5750805b949350505050565b6001601860006101000a81548160ff0219169083151502179055506000611db46002610964600d54611dae600c54611dae600b54611dae6001600a5461147490919063ffffffff16565b90611474565b90506000611dd18261096a600a548661145c90919063ffffffff16565b90506000611ddf8483611450565b905047611deb82611fa8565b6000611df74783611450565b90506000611e1a611e13600a548861145090919063ffffffff16565b8390611468565b90506000611e33600a548361145c90919063ffffffff16565b90508015611e5457602254611e5490879083906001600160a01b0316612102565b600b54600090611e699061096485600261145c565b90508015611ead576021546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611eab573d6000803e3d6000fd5b505b600d54600090611ec29061096486600261145c565b90508015611f06576023546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f04573d6000803e3d6000fd5b505b4715611f47576020546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611f45573d6000803e3d6000fd5b505b50506018805460ff191690555050505050505050565b6009546000906001600160a01b0390811690831603611f7f57506010546106fe565b6009546001600160a01b0390811690841603611f9e5750600f546106fe565b5060115492915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fdd57611fdd612504565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205a919061251a565b8160018151811061206d5761206d612504565b6001600160a01b03928316602091820292909201015260085461209391309116846111cf565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906120cc908590600090869030904290600401612537565b600060405180830381600087803b1580156120e657600080fd5b505af11580156120fa573d6000803e3d6000fd5b505050505050565b60085461211a9030906001600160a01b0316856111cf565b60085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af1158015612188573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120fa91906125a8565b600060208083528351808285015260005b818110156121da578581018301518582016040015282016121be565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461221057600080fd5b50565b6000806040838503121561222657600080fd5b8235612231816121fb565b946020939093013593505050565b60008060006060848603121561225457600080fd5b833561225f816121fb565b9250602084013561226f816121fb565b929592945050506040919091013590565b60006020828403121561229257600080fd5b5035919050565b6000602082840312156122ab57600080fd5b8135610767816121fb565b6000806000606084860312156122cb57600080fd5b505081359360208301359350604090920135919050565b801515811461221057600080fd5b6000806040838503121561230357600080fd5b823561230e816121fb565b9150602083013561231e816122e2565b809150509250929050565b60008060006060848603121561233e57600080fd5b8335612349816122e2565b95602085013595506040909401359392505050565b600080600080600060a0868803121561237657600080fd5b8535612381816121fb565b94506020860135612391816121fb565b935060408601356123a1816121fb565b925060608601356123b1816121fb565b915060808601356123c1816121fb565b809150509295509295909350565b600080604083850312156123e257600080fd5b82356123ed816121fb565b9150602083013561231e816121fb565b600080600080600080600080610100898b03121561241a57600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561248457600080fd5b8151610767816122e2565b634e487b7160e01b600052601160045260246000fd5b818103818111156106fe576106fe61248f565b80820281158282048414176106fe576106fe61248f565b6000826124ec57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106fe576106fe61248f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561252c57600080fd5b8151610767816121fb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125875784516001600160a01b031683529383019391830191600101612562565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125bd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122085749fe4df7d50efa9eae38d76ede4368bb0d37d867bf1ab7340dd8fb334b79a64736f6c63430008130033
Deployed Bytecode Sourcemap
5890:17022:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10388:67;;;;;;;;;;-1:-1:-1;10448:5:0;;;;;;;;;;;;-1:-1:-1;;;10448:5:0;;;;10388:67;;;;;;;:::i;:::-;;;;;;;;11172:133;;;;;;;;;;-1:-1:-1;11172:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11172:133:0;1023:187:1;10695:84:0;;;;;;;;;;-1:-1:-1;10765:12:0;;10695:84;;;1361:25:1;;;1349:2;1334:18;10695:84:0;1215:177:1;7084:29:0;;;;;;;;;;;;;;;;22257:309;;;;;;;;;;-1:-1:-1;22257:309:0;;;;;:::i;:::-;;:::i;19826:142::-;;;;;;;;;;;;;:::i;:::-;;13128:408;;;;;;;;;;-1:-1:-1;13128:408:0;;;;;:::i;:::-;;:::i;4482:87::-;;;;;;;;;;-1:-1:-1;4482:87:0;;;;;:::i;:::-;4537:4;4562:5;-1:-1:-1;;;;;4551:16:0;;;4562:5;;4551:16;;4482:87;10538:67;;;;;;;;;;-1:-1:-1;10538:67:0;;6118:1;2437:36:1;;2425:2;2410:18;10538:67:0;2295:184:1;14399:671:0;;;;;;;;;;-1:-1:-1;14399:671:0;;;;;:::i;:::-;;:::i;20525:192::-;;;;;;;;;;-1:-1:-1;20525:192:0;;;;;:::i;:::-;;:::i;7049:28::-;;;;;;;;;;-1:-1:-1;7049:28:0;;;;;;;;;;;7162:38;;;;;;;;;;-1:-1:-1;7162:38:0;;;;;;;;7444:37;;;;;;;;;;;;;;;;10785:103;;;;;;;;;;-1:-1:-1;10785:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;10868:18:0;10851:7;10868:18;;;:9;:18;;;;;;;10785:103;6327:63;;;;;;;;;;;;;;;;6258:62;;;;;;;;;;;;;;;;6191:60;;;;;;;;;;;;;;;;7608:26;;;;;;;;;;;;;;;;15980:189;;;;;;;;;;-1:-1:-1;15980:189:0;;;;;:::i;:::-;;:::i;10611:78::-;;;;;;;;;;-1:-1:-1;10663:7:0;10681:5;-1:-1:-1;;;;;10681:5:0;10611:78;;;-1:-1:-1;;;;;3861:32:1;;;3843:51;;3831:2;3816:18;10611:78:0;3697:203:1;20725:140:0;;;;;;;;;;-1:-1:-1;20725:140:0;;;;;:::i;:::-;;:::i;11442:138::-;;;;;;;;;;;;;:::i;10461:71::-;;;;;;;;;;-1:-1:-1;10523:7:0;;;;;;;;;;;;-1:-1:-1;;;10523:7:0;;;;10461:71;;19976:541;;;;;;;;;;-1:-1:-1;19976:541:0;;;;;:::i;:::-;;:::i;11311:125::-;;;;;;;;;;-1:-1:-1;11311:125:0;;;;;:::i;:::-;;:::i;6590:19::-;;;;;;;;;;-1:-1:-1;6590:19:0;;;;-1:-1:-1;;;;;6590:19:0;;;10894:139;;;;;;;;;;-1:-1:-1;10894:139:0;;;;;:::i;:::-;;:::i;12686:434::-;;;;;;;;;;-1:-1:-1;12686:434:0;;;;;:::i;:::-;;:::i;11039:127::-;;;;;;;;;;-1:-1:-1;11039:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11137:18:0;;;11120:7;11137:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11039:127;13769:622;;;;;;;;;;-1:-1:-1;13769:622:0;;;;;:::i;:::-;;:::i;7120:35::-;;;;;;;;;;;;;;;;20873:415;;;;;;;;;;-1:-1:-1;20873:415:0;;;;;:::i;:::-;;:::i;7554:47::-;;;;;;;;;;-1:-1:-1;7554:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;4575:111;;;;;;;;;;-1:-1:-1;4575:111:0;;;;;:::i;:::-;;:::i;13544:217::-;;;;;;;;;;-1:-1:-1;13544:217:0;;;;;:::i;:::-;;:::i;11172:133::-;11247:4;11254:37;11263:10;11275:7;11284:6;11254:8;:37::i;:::-;-1:-1:-1;11299:4:0;11172:133;;;;;:::o;22257:309::-;22355:4;22372:36;22382:6;22390:9;22401:6;22372:9;:36::i;:::-;22419:117;22428:6;22436:10;22448:87;22484:6;22448:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22448:19:0;;;;;;:11;:19;;;;;;;;22468:10;22448:31;;;;;;;;;:87;:35;:87::i;:::-;22419:8;:117::i;:::-;-1:-1:-1;22554:4:0;22257:309;;;;;;:::o;19826:142::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;;;;;;;;;19880:14:::1;:21:::0;;-1:-1:-1;;19880:21:0::1;;;::::0;;19917:43:::1;::::0;19944:15:::1;::::0;19932:10:::1;::::0;19917:43:::1;::::0;19880:21;;19917:43:::1;19826:142::o:0;13128:408::-;13222:10;13209:24;;;;:12;:24;;;;;;13199:34;;;13191:92;;;;-1:-1:-1;;;13191:92:0;;6578:2:1;13191:92:0;;;6560:21:1;6617:2;6597:18;;;6590:30;6656:34;6636:18;;;6629:62;-1:-1:-1;;;6707:18:1;;;6700:43;6760:19;;13191:92:0;6376:409:1;13191:92:0;13294:15;;:51;;-1:-1:-1;;;13294:51:0;;13326:10;13294:51;;;6964::1;7031:18;;;7024:34;;;-1:-1:-1;;;;;13294:15:0;;;;:31;;6937:18:1;;13294:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13396:10:0;13383:24;;;;:12;:24;;;;;;:36;;-1:-1:-1;13383:24:0;-1:-1:-1;13412:6:0;13383:28;:36::i;:::-;13369:10;13356:24;;;;:12;:24;;;;;:63;13444:11;;:23;;13460:6;13444:15;:23::i;:::-;13430:11;:37;13483:45;;13512:15;;13504:6;;13492:10;;13483:45;;;;;13128:408;:::o;14399:671::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;14499:13:::1;14515:45;14553:5;14516:23;14534:4;14516:13;10765:12:::0;;;10695:84;14516:13:::1;:17:::0;::::1;:23::i;:::-;14515:29:::0;::::1;:45::i;:::-;14499:61;;14562:19;14584:47;14624:5;14585:25;14603:6;14585:13;10765:12:::0;;;10695:84;14584:47:::1;14562:69;;14642:17;14662:48;14703:5;14663:26;14681:7;14663:13;10765:12:::0;;;10695:84;14662:48:::1;14642:68;;14712:13;14728:30;14753:4;14728:20;14746:1;14728:13;10765:12:::0;;;10695:84;14728:30:::1;14712:46;;14786:5;14777;:14;;:38;;;;;14810:5;14795:11;:20;;14777:38;:60;;;;;14832:5;14819:9;:18;;14777:60;14769:126;;;::::0;-1:-1:-1;;;14769:126:0;;7271:2:1;14769:126:0::1;::::0;::::1;7253:21:1::0;7310:2;7290:18;;;7283:30;7349:34;7329:18;;;7322:62;-1:-1:-1;;;7400:18:1;;;7393:51;7461:19;;14769:126:0::1;7069:417:1::0;14769:126:0::1;14906:12;:20:::0;;;14928:14:::1;:28:::0;;;14958:15:::1;:27:::0;;;15001:61:::1;::::0;15046:15:::1;1361:25:1::0;;14928:28:0;;14958:27;;14906:20;;15001:61:::1;::::0;1349:2:1;1334:18;15001:61:0::1;;;;;;;14488:582;;;;14399:671:::0;;;:::o;20525:192::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20609:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;:32;;-1:-1:-1;;20609:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20657:52;;20693:15:::1;::::0;20609:32;;20657:52:::1;::::0;::::1;20525:192:::0;;:::o;15980:189::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;16082:9:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;16082:19:0;;::::1;::::0;;;::::1;::::0;;;16103:16:::1;:26:::0;16131:18:::1;:30:::0;15980:189::o;20725:140::-;20827:20;;20801:56;;-1:-1:-1;;;20801:56:0;;-1:-1:-1;;;;;20827:20:0;;;20801:56;;;6964:51:1;7031:18;;;7024:34;;;20801:25:0;;;;;;6937:18:1;;20801:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20725:140;;:::o;11442:138::-;10868:9;:18;;;;7722:42;11501:7;10868:18;;;;;11518:12;;11501:7;;11518:60;;10868:18;;11518:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;11511:67;;11442:138;:::o;19976:541::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;20132:18:::1;:31:::0;;-1:-1:-1;;;;;;20132:31:0;;::::1;-1:-1:-1::0;;;;;20132:31:0;;::::1;::::0;;::::1;::::0;;;20165:18:::1;:31:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;20198:20:::1;:35:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;20235:16:::1;:27:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;20264:14:::1;:23:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;20298:23:0;;;:11:::1;:23:::0;;;;;;:30;;-1:-1:-1;;20298:30:0;;::::1;-1:-1:-1::0;20298:30:0;;::::1;::::0;;;20330:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;20362:21;;;;;;:28;;;::::1;::::0;::::1;::::0;;20392:19;;;;;;;:26;;;;::::1;::::0;;::::1;::::0;;;20434:75;;20493:15:::1;1361:25:1::0;;20198:35:0;;20165:31;;20434:75:::1;::::0;1334:18:1;20434:75:0::1;;;;;;;19976:541:::0;;;;;:::o;11311:125::-;-1:-1:-1;;;;;11413:20:0;;11374:7;11413:20;;;:12;:20;;;;;;;;;11391:9;:17;;;;;;:43;;:21;:43::i;10894:139::-;10972:4;10979:40;10989:10;11001:9;11012:6;10979:9;:40::i;12686:434::-;12805:10;12792:24;;;;:12;:24;;;;;;;;;12766:9;:21;;;;;;;:51;;:25;:51::i;:::-;12756:6;:61;;12748:121;;;;-1:-1:-1;;;12748:121:0;;7943:2:1;12748:121:0;;;7925:21:1;7982:2;7962:18;;;7955:30;8021:34;8001:18;;;7994:62;-1:-1:-1;;;8072:18:1;;;8065:45;8127:19;;12748:121:0;7741:411:1;12748:121:0;12880:15;;:50;;-1:-1:-1;;;12880:50:0;;12911:10;12880:50;;;6964:51:1;7031:18;;;7024:34;;;-1:-1:-1;;;;;12880:15:0;;;;:30;;6937:18:1;;12880:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12981:10:0;12968:24;;;;:12;:24;;;;;;:36;;-1:-1:-1;12968:24:0;-1:-1:-1;12997:6:0;12968:28;:36::i;:::-;12954:10;12941:24;;;;:12;:24;;;;;:63;13029:11;;:23;;13045:6;13029:15;:23::i;:::-;13015:11;:37;13068:44;;13096:15;;13088:6;;13076:10;;13068:44;;;;;12686:434;:::o;13769:622::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;13964:12:::1;:25:::0;;;13991:12:::1;:25:::0;;;14018:8:::1;:17:::0;;;14037:10:::1;:21:::0;;;14069:14:::1;:29:::0;;;14100:8:::1;:17:::0;;;14119:7:::1;:15:::0;;;14136:11:::1;:20:::0;;;14187:11:::1;::::0;:18:::1;::::0;14203:1:::1;14187:15;:18::i;:::-;14175:8;;:30;;:63;;;;-1:-1:-1::0;14220:11:0::1;::::0;:18:::1;::::0;14236:1:::1;14220:15;:18::i;:::-;14209:7;;:29;;14175:63;:100;;;;-1:-1:-1::0;14257:11:0::1;::::0;:18:::1;::::0;14273:1:::1;14257:15;:18::i;:::-;14242:11;;:33;;14175:100;14167:148;;;::::0;-1:-1:-1;;;14167:148:0;;8359:2:1;14167:148:0::1;::::0;::::1;8341:21:1::0;8398:2;8378:18;;;8371:30;8437:34;8417:18;;;8410:62;-1:-1:-1;;;8488:18:1;;;8481:33;8531:19;;14167:148:0::1;8157:399:1::0;14167:148:0::1;14367:15;14352:5;14344:6;14331:52;14359:6;14331:52;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;14331:52:0::1;;;;;;;;13769:622:::0;;;;;;;;:::o;20873:415::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;21002:10:::1;:24:::0;;;21044:12:::1;::::0;:53:::1;::::0;21089:6:::1;::::0;21044:32:::1;::::0;21061:14;21044:16:::1;:32::i;:53::-;21028:13;:69:::0;21126:12:::1;::::0;:54:::1;::::0;21172:6:::1;::::0;21126:33:::1;::::0;21143:15;21126:16:::1;:33::i;:54::-;21109:14;:71:::0;21196:82:::1;::::0;21262:15:::1;1361:25:1::0;;21245:15:0;;21229:14;;21216:11;;21196:82:::1;::::0;1349:2:1;1334:18;21196:82:0::1;;;;;;;20873:415:::0;;;:::o;4575:111::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;4641:5:::1;:11:::0;;-1:-1:-1;;;;;;4641:11:0::1;-1:-1:-1::0;;;;;4641:11:0;::::1;::::0;;::::1;::::0;;;4659:25:::1;::::0;3843:51:1;;;4659:25:0::1;::::0;3831:2:1;3816:18;4659:25:0::1;;;;;;;4575:111:::0;:::o;13544:217::-;4537:4;4562:5;-1:-1:-1;;;;;4562:5:0;4449:10;4551:16;4433:38;;;;-1:-1:-1;;;4433:38:0;;;;;;;:::i;:::-;13619:15:::1;:44:::0;;-1:-1:-1;;;;;;13619:44:0::1;-1:-1:-1::0;;;;;13619:44:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13665:21:0;;;:11:::1;:21;::::0;;;;;:28;;-1:-1:-1;;13665:28:0::1;-1:-1:-1::0;13665:28:0::1;::::0;;13709:44;13737:15:::1;::::0;13619:44;13709::::1;::::0;::::1;13544:217:::0;:::o;22574:335::-;-1:-1:-1;;;;;22667:19:0;;22659:68;;;;-1:-1:-1;;;22659:68:0;;8979:2:1;22659:68:0;;;8961:21:1;9018:2;8998:18;;;8991:30;9057:34;9037:18;;;9030:62;-1:-1:-1;;;9108:18:1;;;9101:34;9152:19;;22659:68:0;8777:400:1;22659:68:0;-1:-1:-1;;;;;22746:21:0;;22738:68;;;;-1:-1:-1;;;22738:68:0;;9384:2:1;22738:68:0;;;9366:21:1;9423:2;9403:18;;;9396:30;9462:34;9442:18;;;9435:62;-1:-1:-1;;;9513:18:1;;;9506:32;9555:19;;22738:68:0;9182:398:1;22738:68:0;-1:-1:-1;;;;;22817:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22869:32;;1361:25:1;;;22869:32:0;;1334:18:1;22869:32:0;;;;;;;22574:335;;;:::o;11942:736::-;12031:37;12042:6;12050:9;12061:6;12031:10;:37::i;:::-;12079:38;12099:6;12107:9;12079:19;:38::i;:::-;12128:39;12141:6;12149:9;12160:6;12128:12;:39::i;:::-;12178:41;12193:6;12201:9;12212:6;12178:14;:41::i;:::-;12230;12245:6;12253:9;12264:6;12230:14;:41::i;:::-;12282:43;12299:6;12307:9;12318:6;12282:16;:43::i;:::-;12336:27;12345:6;12353:9;12336:8;:27::i;:::-;-1:-1:-1;;;;;12394:17:0;;;;;;:9;:17;;;;;;:29;;12416:6;12394:21;:29::i;:::-;-1:-1:-1;;;;;12374:17:0;;;;;;:9;:17;;;;;:49;;;;12459:32;12384:6;12481:9;12459:13;:32::i;:::-;:78;;12531:6;12459:78;;;12494:34;12502:6;12510:9;12521:6;12494:7;:34::i;:::-;-1:-1:-1;;;;;12571:20:0;;;;;;:9;:20;;;;;;12434:103;;-1:-1:-1;12571:40:0;;12434:103;12571:24;:40::i;:::-;-1:-1:-1;;;;;12548:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12627:43;;;;;;;;;;12655:14;1361:25:1;;1349:2;1334:18;;1215:177;12627:43:0;;;;;;;;12020:658;11942:736;;;:::o;2814:162::-;2900:7;2946:12;2938:6;;;;2930:29;;;;-1:-1:-1;;;2930:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2968:5:0;;;2814:162::o;1601:82::-;1659:7;1676:5;1680:1;1676;:5;:::i;1689:82::-;1747:7;1764:5;1768:1;1764;:5;:::i;1777:82::-;1835:7;1852:5;1856:1;1852;:5;:::i;1513:82::-;1571:7;1588:5;1592:1;1588;:5;:::i;11588:346::-;-1:-1:-1;;;;;11692:20:0;;11684:70;;;;-1:-1:-1;;;11684:70:0;;10577:2:1;11684:70:0;;;10559:21:1;10616:2;10596:18;;;10589:30;10655:34;10635:18;;;10628:62;-1:-1:-1;;;10706:18:1;;;10699:35;10751:19;;11684:70:0;10375:401:1;11684:70:0;-1:-1:-1;;;;;11773:23:0;;11765:71;;;;-1:-1:-1;;;11765:71:0;;10983:2:1;11765:71:0;;;10965:21:1;11022:2;11002:18;;;10995:30;11061:34;11041:18;;;11034:62;-1:-1:-1;;;11112:18:1;;;11105:33;11155:19;;11765:71:0;10781:399:1;11765:71:0;-1:-1:-1;;;;;10868:18:0;;10851:7;10868:18;;;:9;:18;;;;;;11855:6;:27;;11847:79;;;;-1:-1:-1;;;11847:79:0;;11387:2:1;11847:79:0;;;11369:21:1;11426:2;11406:18;;;11399:30;11465:34;11445:18;;;11438:62;-1:-1:-1;;;11516:18:1;;;11509:38;11564:19;;11847:79:0;11185:404:1;15078:206:0;-1:-1:-1;;;;;15171:19:0;;;;;;:11;:19;;;;;;;;15170:20;:47;;;;-1:-1:-1;;;;;;15195:22:0;;;;;;:11;:22;;;;;;;;15194:23;15170:47;15167:110;;;15227:14;;;;;;;15219:56;;;;-1:-1:-1;;;15219:56:0;;11796:2:1;15219:56:0;;;11778:21:1;11835:2;11815:18;;;11808:30;11874:31;11854:18;;;11847:59;11923:18;;15219:56:0;11594:353:1;15219:56:0;15078:206;;:::o;16734:525::-;-1:-1:-1;;;;;16835:20:0;;16866:1;16835:20;;;:12;:20;;;;;;:33;16832:160;;-1:-1:-1;;;;;16916:17:0;;;;;;:9;:17;;;;;;;;;16890:12;:20;;;;;;;16879:32;;:6;;:10;:32::i;:::-;16878:55;;16870:120;;;;-1:-1:-1;;;16870:120:0;;12154:2:1;16870:120:0;;;12136:21:1;12193:2;12173:18;;;12166:30;12232:34;12212:18;;;12205:62;-1:-1:-1;;;12283:18:1;;;12276:50;12343:19;;16870:120:0;11952:416:1;16870:120:0;17015:4;;-1:-1:-1;;;;;17005:14:0;;;17015:4;;17005:14;17002:131;;17039:14;;17029:6;:24;;:47;;;-1:-1:-1;;;;;;17057:19:0;;;;;;:11;:19;;;;;;;;17029:47;:73;;;-1:-1:-1;;;;;;17080:22:0;;;;;;:11;:22;;;;;;;;17029:73;17021:110;;;;-1:-1:-1;;;17021:110:0;;12575:2:1;17021:110:0;;;12557:21:1;12614:2;12594:18;;;12587:30;-1:-1:-1;;;12633:18:1;;;12626:54;12697:18;;17021:110:0;12373:348:1;17021:110:0;17161:12;;17151:6;:22;;:45;;;-1:-1:-1;;;;;;17177:19:0;;;;;;:11;:19;;;;;;;;17151:45;:71;;;-1:-1:-1;;;;;;17200:22:0;;;;;;:11;:22;;;;;;;;17151:71;17143:108;;;;-1:-1:-1;;;17143:108:0;;12575:2:1;17143:108:0;;;12557:21:1;12614:2;12594:18;;;12587:30;-1:-1:-1;;;12633:18:1;;;12626:54;12697:18;;17143:108:0;12373:348:1;16177:338:0;-1:-1:-1;;;;;16281:19:0;;;;;;:11;:19;;;;;;;;16280:20;:47;;;;-1:-1:-1;;;;;;16305:22:0;;;;;;:11;:22;;;;;;;;16304:23;16280:47;:77;;;;-1:-1:-1;16352:4:0;;-1:-1:-1;;;;;16331:26:0;;;16352:4;;16331:26;;16280:77;:107;;;;-1:-1:-1;;;;;;16361:26:0;;7722:42;16361:26;;16280:107;16277:231;;;16449:15;;-1:-1:-1;;;;;16412:20:0;;;;;;:9;:20;;;;;;:32;;16437:6;16412:24;:32::i;:::-;16411:53;;16403:103;;;;-1:-1:-1;;;16403:103:0;;12928:2:1;16403:103:0;;;12910:21:1;12967:2;12947:18;;;12940:30;13006:34;12986:18;;;12979:62;-1:-1:-1;;;13057:18:1;;;13050:35;13102:19;;16403:103:0;12726:401:1;15292:680:0;15390:9;;;;;;;:22;;;;-1:-1:-1;15404:8:0;;;;15403:9;15390:22;15387:578;;;15441:4;;-1:-1:-1;;;;;15428:17:0;;;15441:4;;15428:17;:41;;;;-1:-1:-1;;;;;;15450:19:0;;;;;;:11;:19;;;;;;;;15449:20;15428:41;15425:95;;;15488:14;;:30;;15515:1;15488:18;:30::i;:::-;15471:14;:47;15425:95;15543:4;;-1:-1:-1;;;;;15533:14:0;;;15543:4;;15533:14;:41;;;;-1:-1:-1;;;;;;15552:22:0;;;;;;:11;:22;;;;;;;;15551:23;15533:41;:73;;;;;15588:18;;15578:6;:28;;15533:73;15530:107;;;15633:1;15608:14;:27;15530:107;15667:16;;15650:14;;:33;15647:65;;;15685:18;:25;;-1:-1:-1;;15685:25:0;15706:4;15685:25;;;15647:65;15725:18;;;;:45;;;;-1:-1:-1;;;;;;15748:22:0;;;;;;:11;:22;;;;;;;;15747:23;15725:45;:69;;;;-1:-1:-1;;;;;;15775:19:0;;;;;;:11;:19;;;;;;;;15774:20;15725:69;15722:242;;;15828:4;;-1:-1:-1;;;;;15818:14:0;;;15828:4;;15818:14;15810:61;;;;-1:-1:-1;;;15810:61:0;;13334:2:1;15810:61:0;;;13316:21:1;13373:2;13353:18;;;13346:30;13412:34;13392:18;;;13385:62;-1:-1:-1;;;13463:18:1;;;13456:32;13505:19;;15810:61:0;13132:398:1;15810:61:0;15886:18;;15876:6;:28;15873:90;;15931:1;15906:14;:27;15935:18;:26;;-1:-1:-1;;15935:26:0;;;15292:680;;;:::o;16523:203::-;16636:4;;-1:-1:-1;;;;;16623:17:0;;;16636:4;;16623:17;:41;;;;-1:-1:-1;;;;;;16645:19:0;;;;;;:11;:19;;;;;;;;16644:20;16623:41;:69;;;;;16678:14;;16668:6;:24;;16623:69;16620:99;;;16715:1;16694:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;16523:203:0;;;:::o;19641:173::-;19717:33;19732:6;19740:9;19717:14;:33::i;:::-;19714:93;;;19752:29;19767:13;;19752:14;:29::i;:::-;19803:1;19783:9;:22;19641:173;;:::o;21296:160::-;-1:-1:-1;;;;;21402:19:0;;21377:4;21402:19;;;:11;:19;;;;;;;;21401:20;:47;;;;-1:-1:-1;;;;;;;21426:22:0;;;;;:11;:22;;;;;;;;21425:23;;21296:160;-1:-1:-1;21296:160:0:o;21691:558::-;21777:7;21833:1;21800:30;21812:6;21820:9;21800:11;:30::i;:::-;:34;21797:430;;;21846:17;21866:59;21894:30;21906:6;21914:9;21894:11;:30::i;:::-;21877:11;;21866:23;;:6;;:10;:23::i;:59::-;21981:4;21963:24;;;;:9;:24;;;;;;21846:79;;-1:-1:-1;21963:39:0;;21846:79;21963:28;:39::i;:::-;21954:4;21936:24;;;;:9;:24;;;;;;;:66;;;;22018:42;;-1:-1:-1;;;;;22018:42:0;;;;;;;22050:9;1361:25:1;;1349:2;1334:18;;1215:177;22018:42:0;;;;;;;;22074:8;;:21;22071:116;;22130:14;;22175:8;;22158:11;;22097:88;;22115:4;;-1:-1:-1;;;;;22130:14:0;;;;22147:37;;22175:8;22147:23;;:6;;:10;:23::i;:37::-;22097:9;:88::i;:::-;22204:21;:6;22215:9;22204:10;:21::i;:::-;22197:28;;;;;21797:430;-1:-1:-1;22235:6:0;21691:558;-1:-1:-1;;21691:558:0:o;19299:334::-;19448:13;;19438:4;19381;10868:18;;;:9;:18;;;;;;19480:8;;19381:4;;-1:-1:-1;19420:41:0;;19480:8;;19479:9;:24;;;;-1:-1:-1;19492:11:0;;;;19479:24;:42;;;;-1:-1:-1;19507:14:0;;;;;;;19479:42;:66;;;;-1:-1:-1;;;;;;19526:19:0;;;;;;:11;:19;;;;;;;;19525:20;19479:66;:101;;;;-1:-1:-1;19576:4:0;;-1:-1:-1;;;;;19563:17:0;;;19576:4;;19563:17;19479:101;:128;;;;;19597:10;;19584:9;;:23;;19479:128;:146;;;;;19611:14;19479:146;19472:153;19299:334;-1:-1:-1;;;;19299:334:0:o;17267:1214::-;7521:4;7510:8;;:15;;;;;;;;;;;;;;;;;;17338:20:::1;17361:82;17441:1;17362:73;17424:10;;17362:57;17404:14;;17362:37;17386:12;;17362:19;17379:1;17362:12;;:16;;:19;;;;:::i;:::-;:23:::0;::::1;:37::i;17361:82::-;17338:105;;17454:32;17489:42;17518:12;17489:24;17500:12;;17489:6;:10;;:24;;;;:::i;:42::-;17454:77:::0;-1:-1:-1;17542:14:0::1;17559:36;:6:::0;17454:77;17559:10:::1;:36::i;:::-;17542:53:::0;-1:-1:-1;17631:21:0::1;17663:24;17542:53:::0;17663:16:::1;:24::i;:::-;17698:20;17721:41;:21;17747:14:::0;17721:25:::1;:41::i;:::-;17698:64;;17773:19;17794:48;17811:30;17828:12;;17811;:16;;:30;;;;:::i;:::-;17794:12:::0;;:16:::1;:48::i;:::-;17773:69;;17853:29;17885;17901:12;;17885:11;:15;;:29;;;;:::i;:::-;17853:61:::0;-1:-1:-1;17928:34:0;;17925:123:::1;;18026:18;::::0;17964:81:::1;::::0;17977:24;;18003:21;;-1:-1:-1;;;;;18026:18:0::1;17964:12;:81::i;:::-;18107:12;::::0;18058:23:::1;::::0;18084:36:::1;::::0;:18:::1;:11:::0;18100:1:::1;18084:15;:18::i;:36::-;18058:62:::0;-1:-1:-1;18134:19:0;;18131:79:::1;;18163:18;::::0;18155:53:::1;::::0;-1:-1:-1;;;;;18163:18:0;;::::1;::::0;18155:53;::::1;;;::::0;18192:15;;18163:18:::1;18155:53:::0;18163:18;18155:53;18192:15;18163:18;18155:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18131:79;18267:10;::::0;18220:21:::1;::::0;18244:34:::1;::::0;:18:::1;:11:::0;18260:1:::1;18244:15;:18::i;:34::-;18220:58:::0;-1:-1:-1;18292:17:0;;18289:73:::1;;18319:16;::::0;18311:49:::1;::::0;-1:-1:-1;;;;;18319:16:0;;::::1;::::0;18311:49;::::1;;;::::0;18346:13;;18319:16:::1;18311:49:::0;18319:16;18311:49;18346:13;18319:16;18311:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18289:73;18375:21;:34:::0;18372:102:::1;;18419:20;::::0;18411:61:::1;::::0;-1:-1:-1;;;;;18419:20:0;;::::1;::::0;18450:21:::1;18411:61:::0;::::1;;;::::0;18419:20:::1;18411:61:::0;18419:20;18411:61;18450:21;18419:20;18411:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18372:102;-1:-1:-1::0;;7530:8:0;:16;;-1:-1:-1;;7530:16:0;;;-1:-1:-1;;;;;;;;17267:1214:0:o;21464:219::-;21579:4;;21543:7;;-1:-1:-1;;;;;21579:4:0;;;21566:17;;;;21563:38;;-1:-1:-1;21592:7:0;;21585:14;;21563:38;21624:4;;-1:-1:-1;;;;;21624:4:0;;;21614:14;;;;21611:36;;-1:-1:-1;21637:8:0;;21630:15;;21611:36;-1:-1:-1;21664:11:0;;21464:219;;;;:::o;18857:434::-;18947:16;;;18961:1;18947:16;;;;;;;;18923:21;;18947:16;;;;;;;;;;-1:-1:-1;18947:16:0;18923:40;;18992:4;18974;18979:1;18974:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18974:23:0;;;:7;;;;;;;;;;:23;;;;19018:6;;:13;;;-1:-1:-1;;;19018:13:0;;;;:6;;;;;:11;;:13;;;;;18974:7;;19018:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19008:4;19013:1;19008:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19008:23:0;;;:7;;;;;;;;;:23;19074:6;;19042:53;;19059:4;;19074:6;19083:11;19042:8;:53::i;:::-;19106:6;;:177;;-1:-1:-1;;;19106:177:0;;-1:-1:-1;;;;;19106:6:0;;;;:57;;:177;;19178:11;;19106:6;;19220:4;;19247;;19267:15;;19106:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18912:379;18857:434;:::o;18489:360::-;18620:6;;18588:53;;18605:4;;-1:-1:-1;;;;;18620:6:0;18629:11;18588:8;:53::i;:::-;18652:6;;:189;;-1:-1:-1;;;18652:189:0;;18715:4;18652:189;;;15381:34:1;15431:18;;;15424:34;;;18652:6:0;15474:18:1;;;15467:34;;;15517:18;;;15510:34;-1:-1:-1;;;;;15581:15:1;;;15560:19;;;15553:44;18825:15:0;15613:19:1;;;15606:35;18652:6:0;;;;:22;;18682:9;;15315:19:1;;18652:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2043:247::-;2102:6;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2210:9;2197:23;2229:31;2254:5;2229:31;:::i;2484:316::-;2561:6;2569;2577;2630:2;2618:9;2609:7;2605:23;2601:32;2598:52;;;2646:1;2643;2636:12;2598:52;-1:-1:-1;;2669:23:1;;;2739:2;2724:18;;2711:32;;-1:-1:-1;2790:2:1;2775:18;;;2762:32;;2484:316;-1:-1:-1;2484:316:1:o;2805:118::-;2891:5;2884:13;2877:21;2870:5;2867:32;2857:60;;2913:1;2910;2903:12;2928:382;2993:6;3001;3054:2;3042:9;3033:7;3029:23;3025:32;3022:52;;;3070:1;3067;3060:12;3022:52;3109:9;3096:23;3128:31;3153:5;3128:31;:::i;:::-;3178:5;-1:-1:-1;3235:2:1;3220:18;;3207:32;3248:30;3207:32;3248:30;:::i;:::-;3297:7;3287:17;;;2928:382;;;;;:::o;3315:377::-;3389:6;3397;3405;3458:2;3446:9;3437:7;3433:23;3429:32;3426:52;;;3474:1;3471;3464:12;3426:52;3513:9;3500:23;3532:28;3554:5;3532:28;:::i;:::-;3579:5;3631:2;3616:18;;3603:32;;-1:-1:-1;3682:2:1;3667:18;;;3654:32;;3315:377;-1:-1:-1;;;3315:377:1:o;3905:813::-;4000:6;4008;4016;4024;4032;4085:3;4073:9;4064:7;4060:23;4056:33;4053:53;;;4102:1;4099;4092:12;4053:53;4141:9;4128:23;4160:31;4185:5;4160:31;:::i;:::-;4210:5;-1:-1:-1;4267:2:1;4252:18;;4239:32;4280:33;4239:32;4280:33;:::i;:::-;4332:7;-1:-1:-1;4391:2:1;4376:18;;4363:32;4404:33;4363:32;4404:33;:::i;:::-;4456:7;-1:-1:-1;4515:2:1;4500:18;;4487:32;4528:33;4487:32;4528:33;:::i;:::-;4580:7;-1:-1:-1;4639:3:1;4624:19;;4611:33;4653;4611;4653;:::i;:::-;4705:7;4695:17;;;3905:813;;;;;;;;:::o;4723:388::-;4791:6;4799;4852:2;4840:9;4831:7;4827:23;4823:32;4820:52;;;4868:1;4865;4858:12;4820:52;4907:9;4894:23;4926:31;4951:5;4926:31;:::i;:::-;4976:5;-1:-1:-1;5033:2:1;5018:18;;5005:32;5046:33;5005:32;5046:33;:::i;5116:661::-;5238:6;5246;5254;5262;5270;5278;5286;5294;5347:3;5335:9;5326:7;5322:23;5318:33;5315:53;;;5364:1;5361;5354:12;5315:53;-1:-1:-1;;5387:23:1;;;5457:2;5442:18;;5429:32;;-1:-1:-1;5508:2:1;5493:18;;5480:32;;5559:2;5544:18;;5531:32;;-1:-1:-1;5610:3:1;5595:19;;5582:33;;-1:-1:-1;5662:3:1;5647:19;;5634:33;;-1:-1:-1;5714:3:1;5699:19;;5686:33;;-1:-1:-1;5766:3:1;5751:19;5738:33;;-1:-1:-1;5116:661:1;-1:-1:-1;5116:661:1:o;6042:329::-;6244:2;6226:21;;;6283:1;6263:18;;;6256:29;-1:-1:-1;;;6316:2:1;6301:18;;6294:36;6362:2;6347:18;;6042:329::o;7491:245::-;7558:6;7611:2;7599:9;7590:7;7586:23;7582:32;7579:52;;;7627:1;7624;7617:12;7579:52;7659:9;7653:16;7678:28;7700:5;7678:28;:::i;9585:127::-;9646:10;9641:3;9637:20;9634:1;9627:31;9677:4;9674:1;9667:15;9701:4;9698:1;9691:15;9717:128;9784:9;;;9805:11;;;9802:37;;;9819:18;;:::i;9850:168::-;9923:9;;;9954;;9971:15;;;9965:22;;9951:37;9941:71;;9992:18;;:::i;10023:217::-;10063:1;10089;10079:132;;10133:10;10128:3;10124:20;10121:1;10114:31;10168:4;10165:1;10158:15;10196:4;10193:1;10186:15;10079:132;-1:-1:-1;10225:9:1;;10023:217::o;10245:125::-;10310:9;;;10331:10;;;10328:36;;;10344:18;;:::i;13667:127::-;13728:10;13723:3;13719:20;13716:1;13709:31;13759:4;13756:1;13749:15;13783:4;13780:1;13773:15;13799:251;13869:6;13922:2;13910:9;13901:7;13897:23;13893:32;13890:52;;;13938:1;13935;13928:12;13890:52;13970:9;13964:16;13989:31;14014:5;13989:31;:::i;14055:980::-;14317:4;14365:3;14354:9;14350:19;14396:6;14385:9;14378:25;14422:2;14460:6;14455:2;14444:9;14440:18;14433:34;14503:3;14498:2;14487:9;14483:18;14476:31;14527:6;14562;14556:13;14593:6;14585;14578:22;14631:3;14620:9;14616:19;14609:26;;14670:2;14662:6;14658:15;14644:29;;14691:1;14701:195;14715:6;14712:1;14709:13;14701:195;;;14780:13;;-1:-1:-1;;;;;14776:39:1;14764:52;;14871:15;;;;14836:12;;;;14812:1;14730:9;14701:195;;;-1:-1:-1;;;;;;;14952:32:1;;;;14947:2;14932:18;;14925:60;-1:-1:-1;;;15016:3:1;15001:19;14994:35;14913:3;14055:980;-1:-1:-1;;;14055:980:1:o;15652:306::-;15740:6;15748;15756;15809:2;15797:9;15788:7;15784:23;15780:32;15777:52;;;15825:1;15822;15815:12;15777:52;15854:9;15848:16;15838:26;;15904:2;15893:9;15889:18;15883:25;15873:35;;15948:2;15937:9;15933:18;15927:25;15917:35;;15652:306;;;;;:::o
Swarm Source
ipfs://85749fe4df7d50efa9eae38d76ede4368bb0d37d867bf1ab7340dd8fb334b79a
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.