ERC-20
Overview
Max Total Supply
6,900,000,000 (ꈍ .̮ ꈍ)
Holders
15
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
5,848,090,084.68303734 (ꈍ .̮ ꈍ)Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
shyface
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-24 */ // https://t.me/shyfaceportal // 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 shyface is IERC20, tokenStaking, Ownable { using SafeMath for uint256; string private constant _name = 'Shy Face'; string private constant _symbol = unicode'(ꈍ .̮ ꈍ)'; uint8 private constant _decimals = 9; uint256 private _totalSupply = 6900000000 * (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 = 1000; uint256 private sellFee = 2000; uint256 private transferFee = 4000; uint256 private denominator = 10000; bool private swapEnabled = true; bool private tradingAllowed = false; bool public Calibrate = true; uint256 public CalibrateSells; uint256 public CalibrateTrigger = 3; bool public CalibrateBuyNeeded = 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 CalibrateMinAmount = 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 = 0xd5BC700856BCE6eB0aE54C55CaF4A0F4eFdBED5B; address internal marketing_receiver = 0xd5BC700856BCE6eB0aE54C55CaF4A0F4eFdBED5B; address internal liquidity_receiver = 0xd5BC700856BCE6eB0aE54C55CaF4A0F4eFdBED5B; address internal staking_receiver = 0xd5BC700856BCE6eB0aE54C55CaF4A0F4eFdBED5B; 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); checkCalibrate(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 checkCalibrate(address sender, address recipient, uint256 amount) internal { if(Calibrate && !swapping){ if(recipient == pair && !isFeeExempt[sender]){CalibrateSells = CalibrateSells.add(uint256(1));} if(sender == pair && !isFeeExempt[recipient] && amount >= CalibrateMinAmount){CalibrateSells = uint256(0);} if(CalibrateSells > CalibrateTrigger){CalibrateBuyNeeded = true;} if(CalibrateBuyNeeded && !isFeeExempt[recipient] && !isFeeExempt[sender]){ require(sender == pair, "ERC20: Calibrate purchase required"); if(amount >= CalibrateMinAmount){CalibrateSells = uint256(0); CalibrateBuyNeeded = false;}}} } function setCalibrate(bool enabled, uint256 trigger, uint256 minAmount) external onlyOwner { Calibrate = enabled; CalibrateTrigger = trigger; CalibrateMinAmount = 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":"Calibrate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CalibrateBuyNeeded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CalibrateMinAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CalibrateSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CalibrateTrigger","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":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"}],"name":"setCalibrate","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":"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
6080604052620000126009600a6200052d565b620000239064019b45a50062000545565b60015561271060015460966200003a919062000545565b6200004691906200055f565b60025561271060015460966200005d919062000545565b6200006991906200055f565b600355612710600154609662000080919062000545565b6200008c91906200055f565b6004556000600a81905560c8600b819055600c55600d819055600e556103e8600f556107d0601055610fa06011556127106012556013805462ffffff191662010001179055600360158190556016805460ff19169055601955600154620186a090620000fb906101f462000545565b6200010791906200055f565b601a55620186a0600154600a6200011f919062000545565b6200012b91906200055f565b601b556001601c55602080546001600160a01b031990811673d5bc700856bce6eb0ae54c55caf4a0f4efdbed5b90811790925560218054821683179055602280548216831790556023805482169092179091556024805490911661dead1790553480156200019857600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa15801562000200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000226919062000582565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a919062000582565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030e919062000582565b600880546001600160a01b038581166001600160a01b031992831617909255600980548484169216919091179055306000908152600760209081526040808320805460ff1990811660019081179092556022548616855282852080548216831790556021548616855282852080548216831790558354909516845281842080548616821790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054861682179055338085528285208054909616821790955554600583528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620005ad565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200046f57816000190482111562000453576200045362000418565b808516156200046157918102915b93841c939080029062000433565b509250929050565b600082620004885750600162000527565b81620004975750600062000527565b8160018114620004b05760028114620004bb57620004db565b600191505062000527565b60ff841115620004cf57620004cf62000418565b50506001821b62000527565b5060208310610133831016604e8410600b841016171562000500575081810a62000527565b6200050c83836200042e565b806000190482111562000523576200052362000418565b0290505b92915050565b60006200053e60ff84168362000477565b9392505050565b808202811582820484141762000527576200052762000418565b6000826200057d57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200059557600080fd5b81516001600160a01b03811681146200053e57600080fd5b61263480620005bd6000396000f3fe6080604052600436106102135760003560e01c8063817b1cd211610118578063a9059cbb116100a0578063e94dd17c1161006f578063e94dd17c14610640578063ef40a67014610660578063f03f1a2a1461068d578063f2fde38b146106ad578063f4e0d9ac146106cd57600080fd5b8063a9059cbb1461059a578063b6b55f25146105ba578063dd62ed3e146105da578063e2d6f94c1461062057600080fd5b80639358928b116100e75780639358928b146104ef57806395d89b41146105045780639fb05d371461053a578063a0821be31461055a578063a8aa1b311461057a57600080fd5b8063817b1cd21461047157806385c7623214610487578063893d20e81461049d5780638cd4426d146104cf57600080fd5b80632f54bf6e1161019b57806365f87dbc1161016a57806365f87dbc146103e357806370a08231146103f957806378109e541461042f5780637cca52fe146104455780637d1db4a51461045b57600080fd5b80632f54bf6e14610358578063313ce5671461038757806334c5d2ce146103a357806348ff2b8b146103c357600080fd5b80631ff21e66116101e25780631ff21e66146102cb57806323aeb879146102eb57806323b872dd14610301578063293230b8146103215780632e1a7d4d1461033857600080fd5b806306fdde031461021f578063095ea7b31461026257806318160ddd146102925780631dac37e1146102b157600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50604080518082019091526008815267536879204661636560c01b60208201525b60405161025991906121ad565b60405180910390f35b34801561026e57600080fd5b5061028261027d366004612213565b6106ed565b6040519015158152602001610259565b34801561029e57600080fd5b506001545b604051908152602001610259565b3480156102bd57600080fd5b506016546102829060ff1681565b3480156102d757600080fd5b506013546102829062010000900460ff1681565b3480156102f757600080fd5b506102a360155481565b34801561030d57600080fd5b5061028261031c36600461223f565b610704565b34801561032d57600080fd5b5061033661076e565b005b34801561034457600080fd5b50610336610353366004612280565b6107df565b34801561036457600080fd5b50610282610373366004612299565b6000546001600160a01b0391821691161490565b34801561039357600080fd5b5060405160098152602001610259565b3480156103af57600080fd5b506103366103be3660046122b6565b610925565b3480156103cf57600080fd5b506103366103de3660046122f0565b610a8f565b3480156103ef57600080fd5b506102a3601c5481565b34801561040557600080fd5b506102a3610414366004612299565b6001600160a01b031660009081526005602052604090205490565b34801561043b57600080fd5b506102a360045481565b34801561045157600080fd5b506102a360035481565b34801561046757600080fd5b506102a360025481565b34801561047d57600080fd5b506102a3601e5481565b34801561049357600080fd5b506102a360145481565b3480156104a957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610259565b3480156104db57600080fd5b506103366104ea366004612213565b610b0e565b3480156104fb57600080fd5b506102a3610b8a565b34801561051057600080fd5b5060408051808201909152600d81526c28ea888d202eccae20ea888d2960981b602082015261024c565b34801561054657600080fd5b50610336610555366004612329565b610bfb565b34801561056657600080fd5b506102a3610575366004612299565b610d09565b34801561058657600080fd5b506009546104b7906001600160a01b031681565b3480156105a657600080fd5b506102826105b5366004612213565b610d36565b3480156105c657600080fd5b506103366105d5366004612280565b610d43565b3480156105e657600080fd5b506102a36105f536600461239a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561062c57600080fd5b5061033661063b3660046123c8565b610ea0565b34801561064c57600080fd5b5061033661065b3660046122b6565b610fd9565b34801561066c57600080fd5b506102a361067b366004612299565b601d6020526000908152604090205481565b34801561069957600080fd5b506103366106a836600461241d565b611078565b3480156106b957600080fd5b506103366106c8366004612299565b6110c5565b3480156106d957600080fd5b506103366106e8366004612299565b611143565b60006106fa3384846111cf565b5060015b92915050565b60006107118484846112f3565b610763843361075e856040518060600160405280602881526020016125d7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611424565b6111cf565b5060015b9392505050565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260040161079890612452565b60405180910390fd5b6013805461ff001916610100179055604051429033907f340c369ced7c3a65b67543c4f1e839173c42d01b38931b0c01b18c89a1d1ba4b90600090a3565b336000908152601d60205260409020548111156108545760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2043616e6e6f7420756e7374616b65206d6f7265207468616e2060448201526c185b5bdd5b9d081cdd185ad959609a1b6064820152608401610798565b601f5460405163d8a9bf2960e01b8152336004820152602481018390526001600160a01b039091169063d8a9bf2990604401600060405180830381600087803b1580156108a057600080fd5b505af11580156108b4573d6000803e3d6000fd5b5050336000908152601d60205260409020546108d39250905082611450565b336000908152601d6020526040902055601e546108f09082611450565b601e556040514290829033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a450565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260040161079890612452565b600061097061271061096a8661096460015490565b9061145c565b90611468565b9050600061098761271061096a8661096460015490565b9050600061099e61271061096a8661096460015490565b905060006109b66103e861096a600561096460015490565b90508084101580156109c85750808310155b80156109d45750808210155b610a3e5760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e352560581b6064820152608401610798565b6002849055600383905560048290556040514281528390839086907fbd5acdd9cd7346c04cee822893f228a65a948bc41357408255ab8f36c446349f9060200160405180910390a450505050505050565b6000546001600160a01b03163314610ab95760405162461bcd60e51b815260040161079890612452565b6001600160a01b038216600081815260076020526040808220805460ff19168515159081179091559051429391927ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821191a45050565b60205460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b859190612472565b505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba546001549192610bf6929091610bf09190611450565b90611450565b905090565b6000546001600160a01b03163314610c255760405162461bcd60e51b815260040161079890612452565b602180546001600160a01b03199081166001600160a01b038881169182179093556022805483168885169081179091556020805484168886169081178255602380548616898816908117909155602480549096169688169687179095556000848152600783526040808220805460ff199081166001908117909255868452828420805482168317905597835281832080548916821790559782529081902080549096169096179094559351428152929390927f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca910160405180910390a45050505050565b6001600160a01b0381166000908152601d602090815260408083205460059092528220546106fe91611450565b60006106fa3384846112f3565b336000908152601d6020908152604080832054600590925290912054610d6891611450565b811115610dcf5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a2043616e6e6f74207374616b65206d6f7265207468616e20617660448201526e61696c61626c652062616c616e636560881b6064820152608401610798565b601f5460405163773a0f0960e01b8152336004820152602481018390526001600160a01b039091169063773a0f0990604401600060405180830381600087803b158015610e1b57600080fd5b505af1158015610e2f573d6000803e3d6000fd5b5050336000908152601d6020526040902054610e4e9250905082611474565b336000908152601d6020526040902055601e54610e6b9082611474565b601e556040514290829033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450565b6000546001600160a01b03163314610eca5760405162461bcd60e51b815260040161079890612452565b600a889055600b879055600e869055600d849055600c859055600f83905560108290556011819055601254610f00906005611468565b600f5411158015610f205750601254610f1a906005611468565b60105411155b8015610f3b5750601254610f35906005611468565b60115411155b610f935760405162461bcd60e51b815260206004820152602360248201527f45524332303a20666565732063616e6e6f74206265206d6f7265207468616e2060448201526232302560e81b6064820152608401610798565b4282847fdddb43af0ad29e5d9d3cb393fd94e8f11ac2c069da19545bac6ee6baf3ddc98984604051610fc791815260200190565b60405180910390a45050505050505050565b6000546001600160a01b031633146110035760405162461bcd60e51b815260040161079890612452565b601983905560015461101e90620186a09061096a908561145c565b601a5560015461103790620186a09061096a908461145c565b601b556040514281528190839085907f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb39060200160405180910390a4505050565b6000546001600160a01b031633146110a25760405162461bcd60e51b815260040161079890612452565b60138054931515620100000262ff00001990941693909317909255601555601c55565b6000546001600160a01b031633146110ef5760405162461bcd60e51b815260040161079890612452565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461116d5760405162461bcd60e51b815260040161079890612452565b601f80546001600160a01b0319166001600160a01b038316908117909155600081815260076020526040808220805460ff19166001179055514292917f23481943b6ef3dff645af874fbb24781bf224a02312f9cb308880e03e0a9ddee91a350565b6001600160a01b0383166112315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610798565b6001600160a01b0382166112925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610798565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6112fe838383611480565b61130883836115bf565b611313838383611661565b61131e838383611855565b61132983838361194f565b611334838383611aff565b61133e8383611b65565b6001600160a01b0383166000908152600560205260409020546113619082611450565b6001600160a01b0384166000908152600560205260408120919091556113878484611b88565b611391578161139c565b61139c848484611bce565b6001600160a01b0384166000908152600560205260409020549091506113c29082611474565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114169085815260200190565b60405180910390a350505050565b600081848411156114485760405162461bcd60e51b815260040161079891906121ad565b505050900390565b600061076782846124a5565b600061076782846124b8565b600061076782846124cf565b600061076782846124f1565b6001600160a01b0383166114e45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610798565b6001600160a01b0382166115465760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610798565b6001600160a01b038316600090815260056020526040902054811115610b855760405162461bcd60e51b815260206004820152602860248201527f45524332303a2062656c6f7720617661696c61626c652062616c616e636520746044820152671a1c995cda1bdb1960c21b6064820152608401610798565b6001600160a01b03821660009081526007602052604090205460ff1615801561160157506001600160a01b03811660009081526007602052604090205460ff16155b1561165d57601354610100900460ff1661165d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f7765640000006044820152606401610798565b5050565b6001600160a01b0383166000908152601d60205260409020541561171a576001600160a01b038316600090815260056020908152604080832054601d909252909120546116af908390611474565b111561171a5760405162461bcd60e51b815260206004820152603460248201527f45524332303a2065786365656473206d6178696d756d20616c6c6f776564206e60448201527337ba1031bab93932b73a363c9039ba30b5b2b21760611b6064820152608401610798565b6009546001600160a01b038481169116146117c2576003548111158061175857506001600160a01b03831660009081526007602052604090205460ff165b8061177b57506001600160a01b03821660009081526007602052604090205460ff165b6117c25760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b6044820152606401610798565b600254811115806117eb57506001600160a01b03831660009081526007602052604090205460ff165b8061180e57506001600160a01b03821660009081526007602052604090205460ff165b610b855760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b6044820152606401610798565b6001600160a01b03831660009081526007602052604090205460ff1615801561189757506001600160a01b03821660009081526007602052604090205460ff16155b80156118b157506009546001600160a01b03838116911614155b80156118c857506001600160a01b03821661dead14155b15610b85576004546001600160a01b0383166000908152600560205260409020546118f39083611474565b1115610b855760405162461bcd60e51b815260206004820152602560248201527f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b6064820152608401610798565b60135462010000900460ff16801561196a575060185460ff16155b15610b85576009546001600160a01b0383811691161480156119a557506001600160a01b03831660009081526007602052604090205460ff16155b156119bc576014546119b8906001611474565b6014555b6009546001600160a01b0384811691161480156119f257506001600160a01b03821660009081526007602052604090205460ff16155b8015611a005750601c548110155b15611a0b5760006014555b6015546014541115611a25576016805460ff191660011790555b60165460ff168015611a5057506001600160a01b03821660009081526007602052604090205460ff16155b8015611a7557506001600160a01b03831660009081526007602052604090205460ff16155b15610b85576009546001600160a01b03848116911614611ae25760405162461bcd60e51b815260206004820152602260248201527f45524332303a2043616c69627261746520707572636861736520726571756972604482015261195960f21b6064820152608401610798565b601c548110610b855760006014556016805460ff19169055505050565b6009546001600160a01b038381169116148015611b3557506001600160a01b03831660009081526007602052604090205460ff16155b8015611b435750601b548110155b15610b8557600160176000828254611b5b91906124f1565b9091555050505050565b611b6f8282611cc5565b1561165d57611b7f601a54611d64565b60006017555050565b6001600160a01b03821660009081526007602052604081205460ff161580156107675750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611bdb8585611f5d565b1115611cbe576000611bfe611bf08686611f5d565b601254610964908690611468565b30600090815260056020526040902054909150611c1b9082611474565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6c9085815260200190565b60405180910390a3600e5415611cac57602454600e54601254611cac9230926001600160a01b0390911691611ca79190610964908990611468565b6112f3565b611cb68382611450565b915050610767565b5092915050565b601a5430600090815260056020526040812054601854919211159060ff16158015611cf2575060135460ff165b8015611d055750601354610100900460ff165b8015611d2a57506001600160a01b03841660009081526007602052604090205460ff16155b8015611d4357506009546001600160a01b038481169116145b8015611d53575060195460175410155b8015611d5c5750805b949350505050565b6001601860006101000a81548160ff0219169083151502179055506000611db46002610964600d54611dae600c54611dae600b54611dae6001600a5461147490919063ffffffff16565b90611474565b90506000611dd18261096a600a548661145c90919063ffffffff16565b90506000611ddf8483611450565b905047611deb82611fa8565b6000611df74783611450565b90506000611e1a611e13600a548861145090919063ffffffff16565b8390611468565b90506000611e33600a548361145c90919063ffffffff16565b90508015611e5457602254611e5490879083906001600160a01b0316612102565b600b54600090611e699061096485600261145c565b90508015611ead576021546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611eab573d6000803e3d6000fd5b505b600d54600090611ec29061096486600261145c565b90508015611f06576023546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f04573d6000803e3d6000fd5b505b4715611f47576020546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611f45573d6000803e3d6000fd5b505b50506018805460ff191690555050505050505050565b6009546000906001600160a01b0390811690831603611f7f57506010546106fe565b6009546001600160a01b0390811690841603611f9e5750600f546106fe565b5060115492915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fdd57611fdd612504565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205a919061251a565b8160018151811061206d5761206d612504565b6001600160a01b03928316602091820292909201015260085461209391309116846111cf565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906120cc908590600090869030904290600401612537565b600060405180830381600087803b1580156120e657600080fd5b505af11580156120fa573d6000803e3d6000fd5b505050505050565b60085461211a9030906001600160a01b0316856111cf565b60085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af1158015612188573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120fa91906125a8565b600060208083528351808285015260005b818110156121da578581018301518582016040015282016121be565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461221057600080fd5b50565b6000806040838503121561222657600080fd5b8235612231816121fb565b946020939093013593505050565b60008060006060848603121561225457600080fd5b833561225f816121fb565b9250602084013561226f816121fb565b929592945050506040919091013590565b60006020828403121561229257600080fd5b5035919050565b6000602082840312156122ab57600080fd5b8135610767816121fb565b6000806000606084860312156122cb57600080fd5b505081359360208301359350604090920135919050565b801515811461221057600080fd5b6000806040838503121561230357600080fd5b823561230e816121fb565b9150602083013561231e816122e2565b809150509250929050565b600080600080600060a0868803121561234157600080fd5b853561234c816121fb565b9450602086013561235c816121fb565b9350604086013561236c816121fb565b9250606086013561237c816121fb565b9150608086013561238c816121fb565b809150509295509295909350565b600080604083850312156123ad57600080fd5b82356123b8816121fb565b9150602083013561231e816121fb565b600080600080600080600080610100898b0312156123e557600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60008060006060848603121561243257600080fd5b833561243d816122e2565b95602085013595506040909401359392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561248457600080fd5b8151610767816122e2565b634e487b7160e01b600052601160045260246000fd5b818103818111156106fe576106fe61248f565b80820281158282048414176106fe576106fe61248f565b6000826124ec57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106fe576106fe61248f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561252c57600080fd5b8151610767816121fb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125875784516001600160a01b031683529383019391830191600101612562565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125bd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220baea56ff589bf096d94204e121af588e04b2de33a0445c73628cbe8956dc1c8864736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102135760003560e01c8063817b1cd211610118578063a9059cbb116100a0578063e94dd17c1161006f578063e94dd17c14610640578063ef40a67014610660578063f03f1a2a1461068d578063f2fde38b146106ad578063f4e0d9ac146106cd57600080fd5b8063a9059cbb1461059a578063b6b55f25146105ba578063dd62ed3e146105da578063e2d6f94c1461062057600080fd5b80639358928b116100e75780639358928b146104ef57806395d89b41146105045780639fb05d371461053a578063a0821be31461055a578063a8aa1b311461057a57600080fd5b8063817b1cd21461047157806385c7623214610487578063893d20e81461049d5780638cd4426d146104cf57600080fd5b80632f54bf6e1161019b57806365f87dbc1161016a57806365f87dbc146103e357806370a08231146103f957806378109e541461042f5780637cca52fe146104455780637d1db4a51461045b57600080fd5b80632f54bf6e14610358578063313ce5671461038757806334c5d2ce146103a357806348ff2b8b146103c357600080fd5b80631ff21e66116101e25780631ff21e66146102cb57806323aeb879146102eb57806323b872dd14610301578063293230b8146103215780632e1a7d4d1461033857600080fd5b806306fdde031461021f578063095ea7b31461026257806318160ddd146102925780631dac37e1146102b157600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50604080518082019091526008815267536879204661636560c01b60208201525b60405161025991906121ad565b60405180910390f35b34801561026e57600080fd5b5061028261027d366004612213565b6106ed565b6040519015158152602001610259565b34801561029e57600080fd5b506001545b604051908152602001610259565b3480156102bd57600080fd5b506016546102829060ff1681565b3480156102d757600080fd5b506013546102829062010000900460ff1681565b3480156102f757600080fd5b506102a360155481565b34801561030d57600080fd5b5061028261031c36600461223f565b610704565b34801561032d57600080fd5b5061033661076e565b005b34801561034457600080fd5b50610336610353366004612280565b6107df565b34801561036457600080fd5b50610282610373366004612299565b6000546001600160a01b0391821691161490565b34801561039357600080fd5b5060405160098152602001610259565b3480156103af57600080fd5b506103366103be3660046122b6565b610925565b3480156103cf57600080fd5b506103366103de3660046122f0565b610a8f565b3480156103ef57600080fd5b506102a3601c5481565b34801561040557600080fd5b506102a3610414366004612299565b6001600160a01b031660009081526005602052604090205490565b34801561043b57600080fd5b506102a360045481565b34801561045157600080fd5b506102a360035481565b34801561046757600080fd5b506102a360025481565b34801561047d57600080fd5b506102a3601e5481565b34801561049357600080fd5b506102a360145481565b3480156104a957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610259565b3480156104db57600080fd5b506103366104ea366004612213565b610b0e565b3480156104fb57600080fd5b506102a3610b8a565b34801561051057600080fd5b5060408051808201909152600d81526c28ea888d202eccae20ea888d2960981b602082015261024c565b34801561054657600080fd5b50610336610555366004612329565b610bfb565b34801561056657600080fd5b506102a3610575366004612299565b610d09565b34801561058657600080fd5b506009546104b7906001600160a01b031681565b3480156105a657600080fd5b506102826105b5366004612213565b610d36565b3480156105c657600080fd5b506103366105d5366004612280565b610d43565b3480156105e657600080fd5b506102a36105f536600461239a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561062c57600080fd5b5061033661063b3660046123c8565b610ea0565b34801561064c57600080fd5b5061033661065b3660046122b6565b610fd9565b34801561066c57600080fd5b506102a361067b366004612299565b601d6020526000908152604090205481565b34801561069957600080fd5b506103366106a836600461241d565b611078565b3480156106b957600080fd5b506103366106c8366004612299565b6110c5565b3480156106d957600080fd5b506103366106e8366004612299565b611143565b60006106fa3384846111cf565b5060015b92915050565b60006107118484846112f3565b610763843361075e856040518060600160405280602881526020016125d7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611424565b6111cf565b5060015b9392505050565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260040161079890612452565b60405180910390fd5b6013805461ff001916610100179055604051429033907f340c369ced7c3a65b67543c4f1e839173c42d01b38931b0c01b18c89a1d1ba4b90600090a3565b336000908152601d60205260409020548111156108545760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2043616e6e6f7420756e7374616b65206d6f7265207468616e2060448201526c185b5bdd5b9d081cdd185ad959609a1b6064820152608401610798565b601f5460405163d8a9bf2960e01b8152336004820152602481018390526001600160a01b039091169063d8a9bf2990604401600060405180830381600087803b1580156108a057600080fd5b505af11580156108b4573d6000803e3d6000fd5b5050336000908152601d60205260409020546108d39250905082611450565b336000908152601d6020526040902055601e546108f09082611450565b601e556040514290829033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a450565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260040161079890612452565b600061097061271061096a8661096460015490565b9061145c565b90611468565b9050600061098761271061096a8661096460015490565b9050600061099e61271061096a8661096460015490565b905060006109b66103e861096a600561096460015490565b90508084101580156109c85750808310155b80156109d45750808210155b610a3e5760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e352560581b6064820152608401610798565b6002849055600383905560048290556040514281528390839086907fbd5acdd9cd7346c04cee822893f228a65a948bc41357408255ab8f36c446349f9060200160405180910390a450505050505050565b6000546001600160a01b03163314610ab95760405162461bcd60e51b815260040161079890612452565b6001600160a01b038216600081815260076020526040808220805460ff19168515159081179091559051429391927ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821191a45050565b60205460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b859190612472565b505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba546001549192610bf6929091610bf09190611450565b90611450565b905090565b6000546001600160a01b03163314610c255760405162461bcd60e51b815260040161079890612452565b602180546001600160a01b03199081166001600160a01b038881169182179093556022805483168885169081179091556020805484168886169081178255602380548616898816908117909155602480549096169688169687179095556000848152600783526040808220805460ff199081166001908117909255868452828420805482168317905597835281832080548916821790559782529081902080549096169096179094559351428152929390927f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca910160405180910390a45050505050565b6001600160a01b0381166000908152601d602090815260408083205460059092528220546106fe91611450565b60006106fa3384846112f3565b336000908152601d6020908152604080832054600590925290912054610d6891611450565b811115610dcf5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a2043616e6e6f74207374616b65206d6f7265207468616e20617660448201526e61696c61626c652062616c616e636560881b6064820152608401610798565b601f5460405163773a0f0960e01b8152336004820152602481018390526001600160a01b039091169063773a0f0990604401600060405180830381600087803b158015610e1b57600080fd5b505af1158015610e2f573d6000803e3d6000fd5b5050336000908152601d6020526040902054610e4e9250905082611474565b336000908152601d6020526040902055601e54610e6b9082611474565b601e556040514290829033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450565b6000546001600160a01b03163314610eca5760405162461bcd60e51b815260040161079890612452565b600a889055600b879055600e869055600d849055600c859055600f83905560108290556011819055601254610f00906005611468565b600f5411158015610f205750601254610f1a906005611468565b60105411155b8015610f3b5750601254610f35906005611468565b60115411155b610f935760405162461bcd60e51b815260206004820152602360248201527f45524332303a20666565732063616e6e6f74206265206d6f7265207468616e2060448201526232302560e81b6064820152608401610798565b4282847fdddb43af0ad29e5d9d3cb393fd94e8f11ac2c069da19545bac6ee6baf3ddc98984604051610fc791815260200190565b60405180910390a45050505050505050565b6000546001600160a01b031633146110035760405162461bcd60e51b815260040161079890612452565b601983905560015461101e90620186a09061096a908561145c565b601a5560015461103790620186a09061096a908461145c565b601b556040514281528190839085907f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb39060200160405180910390a4505050565b6000546001600160a01b031633146110a25760405162461bcd60e51b815260040161079890612452565b60138054931515620100000262ff00001990941693909317909255601555601c55565b6000546001600160a01b031633146110ef5760405162461bcd60e51b815260040161079890612452565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461116d5760405162461bcd60e51b815260040161079890612452565b601f80546001600160a01b0319166001600160a01b038316908117909155600081815260076020526040808220805460ff19166001179055514292917f23481943b6ef3dff645af874fbb24781bf224a02312f9cb308880e03e0a9ddee91a350565b6001600160a01b0383166112315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610798565b6001600160a01b0382166112925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610798565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6112fe838383611480565b61130883836115bf565b611313838383611661565b61131e838383611855565b61132983838361194f565b611334838383611aff565b61133e8383611b65565b6001600160a01b0383166000908152600560205260409020546113619082611450565b6001600160a01b0384166000908152600560205260408120919091556113878484611b88565b611391578161139c565b61139c848484611bce565b6001600160a01b0384166000908152600560205260409020549091506113c29082611474565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114169085815260200190565b60405180910390a350505050565b600081848411156114485760405162461bcd60e51b815260040161079891906121ad565b505050900390565b600061076782846124a5565b600061076782846124b8565b600061076782846124cf565b600061076782846124f1565b6001600160a01b0383166114e45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610798565b6001600160a01b0382166115465760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610798565b6001600160a01b038316600090815260056020526040902054811115610b855760405162461bcd60e51b815260206004820152602860248201527f45524332303a2062656c6f7720617661696c61626c652062616c616e636520746044820152671a1c995cda1bdb1960c21b6064820152608401610798565b6001600160a01b03821660009081526007602052604090205460ff1615801561160157506001600160a01b03811660009081526007602052604090205460ff16155b1561165d57601354610100900460ff1661165d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f7765640000006044820152606401610798565b5050565b6001600160a01b0383166000908152601d60205260409020541561171a576001600160a01b038316600090815260056020908152604080832054601d909252909120546116af908390611474565b111561171a5760405162461bcd60e51b815260206004820152603460248201527f45524332303a2065786365656473206d6178696d756d20616c6c6f776564206e60448201527337ba1031bab93932b73a363c9039ba30b5b2b21760611b6064820152608401610798565b6009546001600160a01b038481169116146117c2576003548111158061175857506001600160a01b03831660009081526007602052604090205460ff165b8061177b57506001600160a01b03821660009081526007602052604090205460ff165b6117c25760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b6044820152606401610798565b600254811115806117eb57506001600160a01b03831660009081526007602052604090205460ff165b8061180e57506001600160a01b03821660009081526007602052604090205460ff165b610b855760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b6044820152606401610798565b6001600160a01b03831660009081526007602052604090205460ff1615801561189757506001600160a01b03821660009081526007602052604090205460ff16155b80156118b157506009546001600160a01b03838116911614155b80156118c857506001600160a01b03821661dead14155b15610b85576004546001600160a01b0383166000908152600560205260409020546118f39083611474565b1115610b855760405162461bcd60e51b815260206004820152602560248201527f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b6064820152608401610798565b60135462010000900460ff16801561196a575060185460ff16155b15610b85576009546001600160a01b0383811691161480156119a557506001600160a01b03831660009081526007602052604090205460ff16155b156119bc576014546119b8906001611474565b6014555b6009546001600160a01b0384811691161480156119f257506001600160a01b03821660009081526007602052604090205460ff16155b8015611a005750601c548110155b15611a0b5760006014555b6015546014541115611a25576016805460ff191660011790555b60165460ff168015611a5057506001600160a01b03821660009081526007602052604090205460ff16155b8015611a7557506001600160a01b03831660009081526007602052604090205460ff16155b15610b85576009546001600160a01b03848116911614611ae25760405162461bcd60e51b815260206004820152602260248201527f45524332303a2043616c69627261746520707572636861736520726571756972604482015261195960f21b6064820152608401610798565b601c548110610b855760006014556016805460ff19169055505050565b6009546001600160a01b038381169116148015611b3557506001600160a01b03831660009081526007602052604090205460ff16155b8015611b435750601b548110155b15610b8557600160176000828254611b5b91906124f1565b9091555050505050565b611b6f8282611cc5565b1561165d57611b7f601a54611d64565b60006017555050565b6001600160a01b03821660009081526007602052604081205460ff161580156107675750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611bdb8585611f5d565b1115611cbe576000611bfe611bf08686611f5d565b601254610964908690611468565b30600090815260056020526040902054909150611c1b9082611474565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c6c9085815260200190565b60405180910390a3600e5415611cac57602454600e54601254611cac9230926001600160a01b0390911691611ca79190610964908990611468565b6112f3565b611cb68382611450565b915050610767565b5092915050565b601a5430600090815260056020526040812054601854919211159060ff16158015611cf2575060135460ff165b8015611d055750601354610100900460ff165b8015611d2a57506001600160a01b03841660009081526007602052604090205460ff16155b8015611d4357506009546001600160a01b038481169116145b8015611d53575060195460175410155b8015611d5c5750805b949350505050565b6001601860006101000a81548160ff0219169083151502179055506000611db46002610964600d54611dae600c54611dae600b54611dae6001600a5461147490919063ffffffff16565b90611474565b90506000611dd18261096a600a548661145c90919063ffffffff16565b90506000611ddf8483611450565b905047611deb82611fa8565b6000611df74783611450565b90506000611e1a611e13600a548861145090919063ffffffff16565b8390611468565b90506000611e33600a548361145c90919063ffffffff16565b90508015611e5457602254611e5490879083906001600160a01b0316612102565b600b54600090611e699061096485600261145c565b90508015611ead576021546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611eab573d6000803e3d6000fd5b505b600d54600090611ec29061096486600261145c565b90508015611f06576023546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f04573d6000803e3d6000fd5b505b4715611f47576020546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611f45573d6000803e3d6000fd5b505b50506018805460ff191690555050505050505050565b6009546000906001600160a01b0390811690831603611f7f57506010546106fe565b6009546001600160a01b0390811690841603611f9e5750600f546106fe565b5060115492915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fdd57611fdd612504565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205a919061251a565b8160018151811061206d5761206d612504565b6001600160a01b03928316602091820292909201015260085461209391309116846111cf565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906120cc908590600090869030904290600401612537565b600060405180830381600087803b1580156120e657600080fd5b505af11580156120fa573d6000803e3d6000fd5b505050505050565b60085461211a9030906001600160a01b0316856111cf565b60085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af1158015612188573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120fa91906125a8565b600060208083528351808285015260005b818110156121da578581018301518582016040015282016121be565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461221057600080fd5b50565b6000806040838503121561222657600080fd5b8235612231816121fb565b946020939093013593505050565b60008060006060848603121561225457600080fd5b833561225f816121fb565b9250602084013561226f816121fb565b929592945050506040919091013590565b60006020828403121561229257600080fd5b5035919050565b6000602082840312156122ab57600080fd5b8135610767816121fb565b6000806000606084860312156122cb57600080fd5b505081359360208301359350604090920135919050565b801515811461221057600080fd5b6000806040838503121561230357600080fd5b823561230e816121fb565b9150602083013561231e816122e2565b809150509250929050565b600080600080600060a0868803121561234157600080fd5b853561234c816121fb565b9450602086013561235c816121fb565b9350604086013561236c816121fb565b9250606086013561237c816121fb565b9150608086013561238c816121fb565b809150509295509295909350565b600080604083850312156123ad57600080fd5b82356123b8816121fb565b9150602083013561231e816121fb565b600080600080600080600080610100898b0312156123e557600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60008060006060848603121561243257600080fd5b833561243d816122e2565b95602085013595506040909401359392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561248457600080fd5b8151610767816122e2565b634e487b7160e01b600052601160045260246000fd5b818103818111156106fe576106fe61248f565b80820281158282048414176106fe576106fe61248f565b6000826124ec57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106fe576106fe61248f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561252c57600080fd5b8151610767816121fb565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125875784516001600160a01b031683529383019391830191600101612562565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125bd57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220baea56ff589bf096d94204e121af588e04b2de33a0445c73628cbe8956dc1c8864736f6c63430008130033
Deployed Bytecode Sourcemap
4498:17034:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9008:67;;;;;;;;;;-1:-1:-1;9068:5:0;;;;;;;;;;;;-1:-1:-1;;;9068:5:0;;;;9008:67;;;;;;;:::i;:::-;;;;;;;;9792:133;;;;;;;;;;-1:-1:-1;9792:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9792:133:0;1023:187:1;9315:84:0;;;;;;;;;;-1:-1:-1;9385:12:0;;9315:84;;;1361:25:1;;;1349:2;1334:18;9315:84:0;1215:177:1;5782:38:0;;;;;;;;;;-1:-1:-1;5782:38:0;;;;;;;;5669:28;;;;;;;;;;-1:-1:-1;5669:28:0;;;;;;;;;;;5740:35;;;;;;;;;;;;;;;;20877:309;;;;;;;;;;-1:-1:-1;20877:309:0;;;;;:::i;:::-;;:::i;18446:142::-;;;;;;;;;;;;;:::i;:::-;;11748:408;;;;;;;;;;-1:-1:-1;11748:408:0;;;;;:::i;:::-;;:::i;3090:87::-;;;;;;;;;;-1:-1:-1;3090:87:0;;;;;:::i;:::-;3145:4;3170:5;-1:-1:-1;;;;;3159:16:0;;;3170:5;;3159:16;;3090:87;9158:67;;;;;;;;;;-1:-1:-1;9158:67:0;;4735:1;2437:36:1;;2425:2;2410:18;9158:67:0;2295:184:1;13019:671:0;;;;;;;;;;-1:-1:-1;13019:671:0;;;;;:::i;:::-;;:::i;19145:192::-;;;;;;;;;;-1:-1:-1;19145:192:0;;;;;:::i;:::-;;:::i;6064:37::-;;;;;;;;;;;;;;;;9405:103;;;;;;;;;;-1:-1:-1;9405:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9488:18:0;9471:7;9488:18;;;:9;:18;;;;;;;9405:103;4947:63;;;;;;;;;;;;;;;;4878:62;;;;;;;;;;;;;;;;4811:60;;;;;;;;;;;;;;;;6228:26;;;;;;;;;;;;;;;;5704:29;;;;;;;;;;;;;;;;9231:78;;;;;;;;;;-1:-1:-1;9283:7:0;9301:5;-1:-1:-1;;;;;9301:5:0;9231:78;;;-1:-1:-1;;;;;3479:32:1;;;3461:51;;3449:2;3434:18;9231:78:0;3315:203:1;19345:140:0;;;;;;;;;;-1:-1:-1;19345:140:0;;;;;:::i;:::-;;:::i;10062:138::-;;;;;;;;;;;;;:::i;9081:71::-;;;;;;;;;;-1:-1:-1;9143:7:0;;;;;;;;;;;;-1:-1:-1;;;9143:7:0;;;;9081:71;;18596:541;;;;;;;;;;-1:-1:-1;18596:541:0;;;;;:::i;:::-;;:::i;9931:125::-;;;;;;;;;;-1:-1:-1;9931:125:0;;;;;:::i;:::-;;:::i;5210:19::-;;;;;;;;;;-1:-1:-1;5210:19:0;;;;-1:-1:-1;;;;;5210:19:0;;;9514:139;;;;;;;;;;-1:-1:-1;9514:139:0;;;;;:::i;:::-;;:::i;11306:434::-;;;;;;;;;;-1:-1:-1;11306:434:0;;;;;:::i;:::-;;:::i;9659:127::-;;;;;;;;;;-1:-1:-1;9659:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9757:18:0;;;9740:7;9757:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9659:127;12389:622;;;;;;;;;;-1:-1:-1;12389:622:0;;;;;:::i;:::-;;:::i;19493:415::-;;;;;;;;;;-1:-1:-1;19493:415:0;;;;;:::i;:::-;;:::i;6174:47::-;;;;;;;;;;-1:-1:-1;6174:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;14600:189;;;;;;;;;;-1:-1:-1;14600:189:0;;;;;:::i;:::-;;:::i;3183:111::-;;;;;;;;;;-1:-1:-1;3183:111:0;;;;;:::i;:::-;;:::i;12164:217::-;;;;;;;;;;-1:-1:-1;12164:217:0;;;;;:::i;:::-;;:::i;9792:133::-;9867:4;9874:37;9883:10;9895:7;9904:6;9874:8;:37::i;:::-;-1:-1:-1;9919:4:0;9792:133;;;;;:::o;20877:309::-;20975:4;20992:36;21002:6;21010:9;21021:6;20992:9;:36::i;:::-;21039:117;21048:6;21056:10;21068:87;21104:6;21068:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21068:19:0;;;;;;:11;:19;;;;;;;;21088:10;21068:31;;;;;;;;;:87;:35;:87::i;:::-;21039:8;:117::i;:::-;-1:-1:-1;21174:4:0;20877:309;;;;;;:::o;18446:142::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;;;;;;;;;18500:14:::1;:21:::0;;-1:-1:-1;;18500:21:0::1;;;::::0;;18537:43:::1;::::0;18564:15:::1;::::0;18552:10:::1;::::0;18537:43:::1;::::0;18500:21;;18537:43:::1;18446:142::o:0;11748:408::-;11842:10;11829:24;;;;:12;:24;;;;;;11819:34;;;11811:92;;;;-1:-1:-1;;;11811:92:0;;6578:2:1;11811: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;;11811:92:0;6376:409:1;11811:92:0;11914:15;;:51;;-1:-1:-1;;;11914:51:0;;11946:10;11914:51;;;6964::1;7031:18;;;7024:34;;;-1:-1:-1;;;;;11914:15:0;;;;:31;;6937:18:1;;11914:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12016:10:0;12003:24;;;;:12;:24;;;;;;:36;;-1:-1:-1;12003:24:0;-1:-1:-1;12032:6:0;12003:28;:36::i;:::-;11989:10;11976:24;;;;:12;:24;;;;;:63;12064:11;;:23;;12080:6;12064:15;:23::i;:::-;12050:11;:37;12103:45;;12132:15;;12124:6;;12112:10;;12103:45;;;;;11748:408;:::o;13019:671::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;13119:13:::1;13135:45;13173:5;13136:23;13154:4;13136:13;9385:12:::0;;;9315:84;13136:13:::1;:17:::0;::::1;:23::i;:::-;13135:29:::0;::::1;:45::i;:::-;13119:61;;13182:19;13204:47;13244:5;13205:25;13223:6;13205:13;9385:12:::0;;;9315:84;13204:47:::1;13182:69;;13262:17;13282:48;13323:5;13283:26;13301:7;13283:13;9385:12:::0;;;9315:84;13282:48:::1;13262:68;;13332:13;13348:30;13373:4;13348:20;13366:1;13348:13;9385:12:::0;;;9315:84;13348:30:::1;13332:46;;13406:5;13397;:14;;:38;;;;;13430:5;13415:11;:20;;13397:38;:60;;;;;13452:5;13439:9;:18;;13397:60;13389:126;;;::::0;-1:-1:-1;;;13389:126:0;;7271:2:1;13389: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;;13389:126:0::1;7069:417:1::0;13389:126:0::1;13526:12;:20:::0;;;13548:14:::1;:28:::0;;;13578:15:::1;:27:::0;;;13621:61:::1;::::0;13666:15:::1;1361:25:1::0;;13548:28:0;;13578:27;;13526:20;;13621:61:::1;::::0;1349:2:1;1334:18;13621:61:0::1;;;;;;;13108:582;;;;13019:671:::0;;;:::o;19145:192::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19229:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;:32;;-1:-1:-1;;19229:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19277:52;;19313:15:::1;::::0;19229:32;;19277:52:::1;::::0;::::1;19145:192:::0;;:::o;19345:140::-;19447:20;;19421:56;;-1:-1:-1;;;19421:56:0;;-1:-1:-1;;;;;19447:20:0;;;19421:56;;;6964:51:1;7031:18;;;7024:34;;;19421:25:0;;;;;;6937:18:1;;19421:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19345:140;;:::o;10062:138::-;9488:9;:18;;;;6342:42;10121:7;9488:18;;;;;10138:12;;10121:7;;10138:60;;9488:18;;10138:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;10131:67;;10062:138;:::o;18596:541::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;18752:18:::1;:31:::0;;-1:-1:-1;;;;;;18752:31:0;;::::1;-1:-1:-1::0;;;;;18752:31:0;;::::1;::::0;;::::1;::::0;;;18785:18:::1;:31:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;18818:20:::1;:35:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;18855:16:::1;:27:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;18884:14:::1;:23:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;18918:23:0;;;:11:::1;:23:::0;;;;;;:30;;-1:-1:-1;;18918:30:0;;::::1;-1:-1:-1::0;18918:30:0;;::::1;::::0;;;18950:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;18982:21;;;;;;:28;;;::::1;::::0;::::1;::::0;;19012:19;;;;;;;:26;;;;::::1;::::0;;::::1;::::0;;;19054:75;;19113:15:::1;1361:25:1::0;;18818:35:0;;18785:31;;19054:75:::1;::::0;1334:18:1;19054:75:0::1;;;;;;;18596:541:::0;;;;;:::o;9931:125::-;-1:-1:-1;;;;;10033:20:0;;9994:7;10033:20;;;:12;:20;;;;;;;;;10011:9;:17;;;;;;:43;;:21;:43::i;9514:139::-;9592:4;9599:40;9609:10;9621:9;9632:6;9599:9;:40::i;11306:434::-;11425:10;11412:24;;;;:12;:24;;;;;;;;;11386:9;:21;;;;;;;:51;;:25;:51::i;:::-;11376:6;:61;;11368:121;;;;-1:-1:-1;;;11368:121:0;;7943:2:1;11368: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;;11368:121:0;7741:411:1;11368:121:0;11500:15;;:50;;-1:-1:-1;;;11500:50:0;;11531:10;11500:50;;;6964:51:1;7031:18;;;7024:34;;;-1:-1:-1;;;;;11500:15:0;;;;:30;;6937:18:1;;11500:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11601:10:0;11588:24;;;;:12;:24;;;;;;:36;;-1:-1:-1;11588:24:0;-1:-1:-1;11617:6:0;11588:28;:36::i;:::-;11574:10;11561:24;;;;:12;:24;;;;;:63;11649:11;;:23;;11665:6;11649:15;:23::i;:::-;11635:11;:37;11688:44;;11716:15;;11708:6;;11696:10;;11688:44;;;;;11306:434;:::o;12389:622::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;12584:12:::1;:25:::0;;;12611:12:::1;:25:::0;;;12638:8:::1;:17:::0;;;12657:10:::1;:21:::0;;;12689:14:::1;:29:::0;;;12720:8:::1;:17:::0;;;12739:7:::1;:15:::0;;;12756:11:::1;:20:::0;;;12807:11:::1;::::0;:18:::1;::::0;12823:1:::1;12807:15;:18::i;:::-;12795:8;;:30;;:63;;;;-1:-1:-1::0;12840:11:0::1;::::0;:18:::1;::::0;12856:1:::1;12840:15;:18::i;:::-;12829:7;;:29;;12795:63;:100;;;;-1:-1:-1::0;12877:11:0::1;::::0;:18:::1;::::0;12893:1:::1;12877:15;:18::i;:::-;12862:11;;:33;;12795:100;12787:148;;;::::0;-1:-1:-1;;;12787:148:0;;8359:2:1;12787: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;;12787:148:0::1;8157:399:1::0;12787:148:0::1;12987:15;12972:5;12964:6;12951:52;12979:6;12951:52;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;12951:52:0::1;;;;;;;;12389:622:::0;;;;;;;;:::o;19493:415::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;19622:10:::1;:24:::0;;;19664:12:::1;::::0;:53:::1;::::0;19709:6:::1;::::0;19664:32:::1;::::0;19681:14;19664:16:::1;:32::i;:53::-;19648:13;:69:::0;19746:12:::1;::::0;:54:::1;::::0;19792:6:::1;::::0;19746:33:::1;::::0;19763:15;19746:16:::1;:33::i;:54::-;19729:14;:71:::0;19816:82:::1;::::0;19882:15:::1;1361:25:1::0;;19865:15:0;;19849:14;;19836:11;;19816:82:::1;::::0;1349:2:1;1334:18;19816:82:0::1;;;;;;;19493:415:::0;;;:::o;14600:189::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;14702:9:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;14702:19:0;;::::1;::::0;;;::::1;::::0;;;14723:16:::1;:26:::0;14751:18:::1;:30:::0;14600:189::o;3183:111::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;3249:5:::1;:11:::0;;-1:-1:-1;;;;;;3249:11:0::1;-1:-1:-1::0;;;;;3249:11:0;::::1;::::0;;::::1;::::0;;;3267:25:::1;::::0;3461:51:1;;;3267:25:0::1;::::0;3449:2:1;3434:18;3267:25:0::1;;;;;;;3183:111:::0;:::o;12164:217::-;3145:4;3170:5;-1:-1:-1;;;;;3170:5:0;3057:10;3159:16;3041:38;;;;-1:-1:-1;;;3041:38:0;;;;;;;:::i;:::-;12239:15:::1;:44:::0;;-1:-1:-1;;;;;;12239:44:0::1;-1:-1:-1::0;;;;;12239:44:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;12285:21:0;;;:11:::1;:21;::::0;;;;;:28;;-1:-1:-1;;12285:28:0::1;-1:-1:-1::0;12285:28:0::1;::::0;;12329:44;12357:15:::1;::::0;12239:44;12329::::1;::::0;::::1;12164:217:::0;:::o;21194:335::-;-1:-1:-1;;;;;21287:19:0;;21279:68;;;;-1:-1:-1;;;21279:68:0;;8979:2:1;21279: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;;21279:68:0;8777:400:1;21279:68:0;-1:-1:-1;;;;;21366:21:0;;21358:68;;;;-1:-1:-1;;;21358:68:0;;9384:2:1;21358: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;;21358:68:0;9182:398:1;21358:68:0;-1:-1:-1;;;;;21437:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21489:32;;1361:25:1;;;21489:32:0;;1334:18:1;21489:32:0;;;;;;;21194:335;;;:::o;10562:736::-;10651:37;10662:6;10670:9;10681:6;10651:10;:37::i;:::-;10699:38;10719:6;10727:9;10699:19;:38::i;:::-;10748:39;10761:6;10769:9;10780:6;10748:12;:39::i;:::-;10798:41;10813:6;10821:9;10832:6;10798:14;:41::i;:::-;10850;10865:6;10873:9;10884:6;10850:14;:41::i;:::-;10902:43;10919:6;10927:9;10938:6;10902:16;:43::i;:::-;10956:27;10965:6;10973:9;10956:8;:27::i;:::-;-1:-1:-1;;;;;11014:17:0;;;;;;:9;:17;;;;;;:29;;11036:6;11014:21;:29::i;:::-;-1:-1:-1;;;;;10994:17:0;;;;;;:9;:17;;;;;:49;;;;11079:32;11004:6;11101:9;11079:13;:32::i;:::-;:78;;11151:6;11079:78;;;11114:34;11122:6;11130:9;11141:6;11114:7;:34::i;:::-;-1:-1:-1;;;;;11191:20:0;;;;;;:9;:20;;;;;;11054:103;;-1:-1:-1;11191:40:0;;11054:103;11191:24;:40::i;:::-;-1:-1:-1;;;;;11168:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11247:43;;;;;;;;;;11275:14;1361:25:1;;1349:2;1334:18;;1215:177;11247:43:0;;;;;;;;10640:658;10562:736;;;:::o;1422:162::-;1508:7;1554:12;1546:6;;;;1538:29;;;;-1:-1:-1;;;1538:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1576:5:0;;;1422:162::o;209:82::-;267:7;284:5;288:1;284;:5;:::i;297:82::-;355:7;372:5;376:1;372;:5;:::i;385:82::-;443:7;460:5;464:1;460;:5;:::i;121:82::-;179:7;196:5;200:1;196;:5;:::i;10208:346::-;-1:-1:-1;;;;;10312:20:0;;10304:70;;;;-1:-1:-1;;;10304:70:0;;10577:2:1;10304: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;;10304:70:0;10375:401:1;10304:70:0;-1:-1:-1;;;;;10393:23:0;;10385:71;;;;-1:-1:-1;;;10385:71:0;;10983:2:1;10385: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;;10385:71:0;10781:399:1;10385:71:0;-1:-1:-1;;;;;9488:18:0;;9471:7;9488:18;;;:9;:18;;;;;;10475:6;:27;;10467:79;;;;-1:-1:-1;;;10467:79:0;;11387:2:1;10467: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;;10467:79:0;11185:404:1;13698:206:0;-1:-1:-1;;;;;13791:19:0;;;;;;:11;:19;;;;;;;;13790:20;:47;;;;-1:-1:-1;;;;;;13815:22:0;;;;;;:11;:22;;;;;;;;13814:23;13790:47;13787:110;;;13847:14;;;;;;;13839:56;;;;-1:-1:-1;;;13839:56:0;;11796:2:1;13839:56:0;;;11778:21:1;11835:2;11815:18;;;11808:30;11874:31;11854:18;;;11847:59;11923:18;;13839:56:0;11594:353:1;13839:56:0;13698:206;;:::o;15354:525::-;-1:-1:-1;;;;;15455:20:0;;15486:1;15455:20;;;:12;:20;;;;;;:33;15452:160;;-1:-1:-1;;;;;15536:17:0;;;;;;:9;:17;;;;;;;;;15510:12;:20;;;;;;;15499:32;;:6;;:10;:32::i;:::-;15498:55;;15490:120;;;;-1:-1:-1;;;15490:120:0;;12154:2:1;15490: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;;15490:120:0;11952:416:1;15490:120:0;15635:4;;-1:-1:-1;;;;;15625:14:0;;;15635:4;;15625:14;15622:131;;15659:14;;15649:6;:24;;:47;;;-1:-1:-1;;;;;;15677:19:0;;;;;;:11;:19;;;;;;;;15649:47;:73;;;-1:-1:-1;;;;;;15700:22:0;;;;;;:11;:22;;;;;;;;15649:73;15641:110;;;;-1:-1:-1;;;15641:110:0;;12575:2:1;15641:110:0;;;12557:21:1;12614:2;12594:18;;;12587:30;-1:-1:-1;;;12633:18:1;;;12626:54;12697:18;;15641:110:0;12373:348:1;15641:110:0;15781:12;;15771:6;:22;;:45;;;-1:-1:-1;;;;;;15797:19:0;;;;;;:11;:19;;;;;;;;15771:45;:71;;;-1:-1:-1;;;;;;15820:22:0;;;;;;:11;:22;;;;;;;;15771:71;15763:108;;;;-1:-1:-1;;;15763:108:0;;12575:2:1;15763:108:0;;;12557:21:1;12614:2;12594:18;;;12587:30;-1:-1:-1;;;12633:18:1;;;12626:54;12697:18;;15763:108:0;12373:348:1;14797:338:0;-1:-1:-1;;;;;14901:19:0;;;;;;:11;:19;;;;;;;;14900:20;:47;;;;-1:-1:-1;;;;;;14925:22:0;;;;;;:11;:22;;;;;;;;14924:23;14900:47;:77;;;;-1:-1:-1;14972:4:0;;-1:-1:-1;;;;;14951:26:0;;;14972:4;;14951:26;;14900:77;:107;;;;-1:-1:-1;;;;;;14981:26:0;;6342:42;14981:26;;14900:107;14897:231;;;15069:15;;-1:-1:-1;;;;;15032:20:0;;;;;;:9;:20;;;;;;:32;;15057:6;15032:24;:32::i;:::-;15031:53;;15023:103;;;;-1:-1:-1;;;15023:103:0;;12928:2:1;15023: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;;15023:103:0;12726:401:1;13912:680:0;14010:9;;;;;;;:22;;;;-1:-1:-1;14024:8:0;;;;14023:9;14010:22;14007:578;;;14061:4;;-1:-1:-1;;;;;14048:17:0;;;14061:4;;14048:17;:41;;;;-1:-1:-1;;;;;;14070:19:0;;;;;;:11;:19;;;;;;;;14069:20;14048:41;14045:95;;;14108:14;;:30;;14135:1;14108:18;:30::i;:::-;14091:14;:47;14045:95;14163:4;;-1:-1:-1;;;;;14153:14:0;;;14163:4;;14153:14;:41;;;;-1:-1:-1;;;;;;14172:22:0;;;;;;:11;:22;;;;;;;;14171:23;14153:41;:73;;;;;14208:18;;14198:6;:28;;14153:73;14150:107;;;14253:1;14228:14;:27;14150:107;14287:16;;14270:14;;:33;14267:65;;;14305:18;:25;;-1:-1:-1;;14305:25:0;14326:4;14305:25;;;14267:65;14345:18;;;;:45;;;;-1:-1:-1;;;;;;14368:22:0;;;;;;:11;:22;;;;;;;;14367:23;14345:45;:69;;;;-1:-1:-1;;;;;;14395:19:0;;;;;;:11;:19;;;;;;;;14394:20;14345:69;14342:242;;;14448:4;;-1:-1:-1;;;;;14438:14:0;;;14448:4;;14438:14;14430:61;;;;-1:-1:-1;;;14430:61:0;;13334:2:1;14430: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;;14430:61:0;13132:398:1;14430:61:0;14506:18;;14496:6;:28;14493:90;;14551:1;14526:14;:27;14555:18;:26;;-1:-1:-1;;14555:26:0;;;13912:680;;;:::o;15143:203::-;15256:4;;-1:-1:-1;;;;;15243:17:0;;;15256:4;;15243:17;:41;;;;-1:-1:-1;;;;;;15265:19:0;;;;;;:11;:19;;;;;;;;15264:20;15243:41;:69;;;;;15298:14;;15288:6;:24;;15243:69;15240:99;;;15335:1;15314:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;15143:203:0;;;:::o;18261:173::-;18337:33;18352:6;18360:9;18337:14;:33::i;:::-;18334:93;;;18372:29;18387:13;;18372:14;:29::i;:::-;18423:1;18403:9;:22;18261:173;;:::o;19916:160::-;-1:-1:-1;;;;;20022:19:0;;19997:4;20022:19;;;:11;:19;;;;;;;;20021:20;:47;;;;-1:-1:-1;;;;;;;20046:22:0;;;;;:11;:22;;;;;;;;20045:23;;19916:160;-1:-1:-1;19916:160:0:o;20311:558::-;20397:7;20453:1;20420:30;20432:6;20440:9;20420:11;:30::i;:::-;:34;20417:430;;;20466:17;20486:59;20514:30;20526:6;20534:9;20514:11;:30::i;:::-;20497:11;;20486:23;;:6;;:10;:23::i;:59::-;20601:4;20583:24;;;;:9;:24;;;;;;20466:79;;-1:-1:-1;20583:39:0;;20466:79;20583:28;:39::i;:::-;20574:4;20556:24;;;;:9;:24;;;;;;;:66;;;;20638:42;;-1:-1:-1;;;;;20638:42:0;;;;;;;20670:9;1361:25:1;;1349:2;1334:18;;1215:177;20638:42:0;;;;;;;;20694:8;;:21;20691:116;;20750:14;;20795:8;;20778:11;;20717:88;;20735:4;;-1:-1:-1;;;;;20750:14:0;;;;20767:37;;20795:8;20767:23;;:6;;:10;:23::i;:37::-;20717:9;:88::i;:::-;20824:21;:6;20835:9;20824:10;:21::i;:::-;20817:28;;;;;20417:430;-1:-1:-1;20855:6:0;20311:558;-1:-1:-1;;20311:558:0:o;17919:334::-;18068:13;;18058:4;18001;9488:18;;;:9;:18;;;;;;18100:8;;18001:4;;-1:-1:-1;18040:41:0;;18100:8;;18099:9;:24;;;;-1:-1:-1;18112:11:0;;;;18099:24;:42;;;;-1:-1:-1;18127:14:0;;;;;;;18099:42;:66;;;;-1:-1:-1;;;;;;18146:19:0;;;;;;:11;:19;;;;;;;;18145:20;18099:66;:101;;;;-1:-1:-1;18196:4:0;;-1:-1:-1;;;;;18183:17:0;;;18196:4;;18183:17;18099:101;:128;;;;;18217:10;;18204:9;;:23;;18099:128;:146;;;;;18231:14;18099:146;18092:153;17919:334;-1:-1:-1;;;;17919:334:0:o;15887:1214::-;6141:4;6130:8;;:15;;;;;;;;;;;;;;;;;;15958:20:::1;15981:82;16061:1;15982:73;16044:10;;15982:57;16024:14;;15982:37;16006:12;;15982:19;15999:1;15982:12;;:16;;:19;;;;:::i;:::-;:23:::0;::::1;:37::i;15981:82::-;15958:105;;16074:32;16109:42;16138:12;16109:24;16120:12;;16109:6;:10;;:24;;;;:::i;:42::-;16074:77:::0;-1:-1:-1;16162:14:0::1;16179:36;:6:::0;16074:77;16179:10:::1;:36::i;:::-;16162:53:::0;-1:-1:-1;16251:21:0::1;16283:24;16162:53:::0;16283:16:::1;:24::i;:::-;16318:20;16341:41;:21;16367:14:::0;16341:25:::1;:41::i;:::-;16318:64;;16393:19;16414:48;16431:30;16448:12;;16431;:16;;:30;;;;:::i;:::-;16414:12:::0;;:16:::1;:48::i;:::-;16393:69;;16473:29;16505;16521:12;;16505:11;:15;;:29;;;;:::i;:::-;16473:61:::0;-1:-1:-1;16548:34:0;;16545:123:::1;;16646:18;::::0;16584:81:::1;::::0;16597:24;;16623:21;;-1:-1:-1;;;;;16646:18:0::1;16584:12;:81::i;:::-;16727:12;::::0;16678:23:::1;::::0;16704:36:::1;::::0;:18:::1;:11:::0;16720:1:::1;16704:15;:18::i;:36::-;16678:62:::0;-1:-1:-1;16754:19:0;;16751:79:::1;;16783:18;::::0;16775:53:::1;::::0;-1:-1:-1;;;;;16783:18:0;;::::1;::::0;16775:53;::::1;;;::::0;16812:15;;16783:18:::1;16775:53:::0;16783:18;16775:53;16812:15;16783:18;16775:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16751:79;16887:10;::::0;16840:21:::1;::::0;16864:34:::1;::::0;:18:::1;:11:::0;16880:1:::1;16864:15;:18::i;:34::-;16840:58:::0;-1:-1:-1;16912:17:0;;16909:73:::1;;16939:16;::::0;16931:49:::1;::::0;-1:-1:-1;;;;;16939:16:0;;::::1;::::0;16931:49;::::1;;;::::0;16966:13;;16939:16:::1;16931:49:::0;16939:16;16931:49;16966:13;16939:16;16931:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16909:73;16995:21;:34:::0;16992:102:::1;;17039:20;::::0;17031:61:::1;::::0;-1:-1:-1;;;;;17039:20:0;;::::1;::::0;17070:21:::1;17031:61:::0;::::1;;;::::0;17039:20:::1;17031:61:::0;17039:20;17031:61;17070:21;17039:20;17031:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16992:102;-1:-1:-1::0;;6150:8:0;:16;;-1:-1:-1;;6150:16:0;;;-1:-1:-1;;;;;;;;15887:1214:0:o;20084:219::-;20199:4;;20163:7;;-1:-1:-1;;;;;20199:4:0;;;20186:17;;;;20183:38;;-1:-1:-1;20212:7:0;;20205:14;;20183:38;20244:4;;-1:-1:-1;;;;;20244:4:0;;;20234:14;;;;20231:36;;-1:-1:-1;20257:8:0;;20250:15;;20231:36;-1:-1:-1;20284:11:0;;20084:219;;;;:::o;17477:434::-;17567:16;;;17581:1;17567:16;;;;;;;;17543:21;;17567:16;;;;;;;;;;-1:-1:-1;17567:16:0;17543:40;;17612:4;17594;17599:1;17594:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17594:23:0;;;:7;;;;;;;;;;:23;;;;17638:6;;:13;;;-1:-1:-1;;;17638:13:0;;;;:6;;;;;:11;;:13;;;;;17594:7;;17638:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17628:4;17633:1;17628:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17628:23:0;;;:7;;;;;;;;;:23;17694:6;;17662:53;;17679:4;;17694:6;17703:11;17662:8;:53::i;:::-;17726:6;;:177;;-1:-1:-1;;;17726:177:0;;-1:-1:-1;;;;;17726:6:0;;;;:57;;:177;;17798:11;;17726:6;;17840:4;;17867;;17887:15;;17726:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17532:379;17477:434;:::o;17109:360::-;17240:6;;17208:53;;17225:4;;-1:-1:-1;;;;;17240:6:0;17249:11;17208:8;:53::i;:::-;17272:6;;:189;;-1:-1:-1;;;17272:189:0;;17335:4;17272:189;;;15381:34:1;15431:18;;;15424:34;;;17272:6:0;15474:18:1;;;15467:34;;;15517:18;;;15510:34;-1:-1:-1;;;;;15581:15:1;;;15560:19;;;15553:44;17445:15:0;15613:19:1;;;15606:35;17272:6:0;;;;:22;;17302:9;;15315:19:1;;17272: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;3523:813::-;3618:6;3626;3634;3642;3650;3703:3;3691:9;3682:7;3678:23;3674:33;3671:53;;;3720:1;3717;3710:12;3671:53;3759:9;3746:23;3778:31;3803:5;3778:31;:::i;:::-;3828:5;-1:-1:-1;3885:2:1;3870:18;;3857:32;3898:33;3857:32;3898:33;:::i;:::-;3950:7;-1:-1:-1;4009:2:1;3994:18;;3981:32;4022:33;3981:32;4022:33;:::i;:::-;4074:7;-1:-1:-1;4133:2:1;4118:18;;4105:32;4146:33;4105:32;4146:33;:::i;:::-;4198:7;-1:-1:-1;4257:3:1;4242:19;;4229:33;4271;4229;4271;:::i;:::-;4323:7;4313:17;;;3523:813;;;;;;;;:::o;4341:388::-;4409:6;4417;4470:2;4458:9;4449:7;4445:23;4441:32;4438:52;;;4486:1;4483;4476:12;4438:52;4525:9;4512:23;4544:31;4569:5;4544:31;:::i;:::-;4594:5;-1:-1:-1;4651:2:1;4636:18;;4623:32;4664:33;4623:32;4664:33;:::i;4734:661::-;4856:6;4864;4872;4880;4888;4896;4904;4912;4965:3;4953:9;4944:7;4940:23;4936:33;4933:53;;;4982:1;4979;4972:12;4933:53;-1:-1:-1;;5005:23:1;;;5075:2;5060:18;;5047:32;;-1:-1:-1;5126:2:1;5111:18;;5098:32;;5177:2;5162:18;;5149:32;;-1:-1:-1;5228:3:1;5213:19;;5200:33;;-1:-1:-1;5280:3:1;5265:19;;5252:33;;-1:-1:-1;5332:3:1;5317:19;;5304:33;;-1:-1:-1;5384:3:1;5369:19;5356:33;;-1:-1:-1;4734:661:1;-1:-1:-1;4734:661:1:o;5400:377::-;5474:6;5482;5490;5543:2;5531:9;5522:7;5518:23;5514:32;5511:52;;;5559:1;5556;5549:12;5511:52;5598:9;5585:23;5617:28;5639:5;5617:28;:::i;:::-;5664:5;5716:2;5701:18;;5688:32;;-1:-1:-1;5767:2:1;5752:18;;;5739:32;;5400:377;-1:-1:-1;;;5400:377: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://baea56ff589bf096d94204e121af588e04b2de33a0445c73628cbe8956dc1c88
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.