ERC-20
DeFi
Overview
Max Total Supply
1,000,000,000 KUJIRA
Holders
479 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0 KUJIRAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ZAKUJIRA
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-21 */ // SPDX-License-Identifier: NOLICENSE pragma solidity ^0.8.10; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external 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 ZAKUJIRA is Context, IERC20, Ownable { mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; mapping (address => bool) private _isBot; address[] private _excluded; bool public swapEnabled = true; bool private swapping; IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1e9 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = 1_557_333 * 10**_decimals; uint256 public maxSellAmount = 14_016_000 * 10**_decimals; uint256 public maxBuyAmount = 23_360_000 * 10**_decimals; uint256 public maxWalletBalance = 10_000 * 10**_decimals; address public marketingAddress = 0x662c875D77E5Ac24d1a86CF78B90a0e1Ce824019; address public devAddress = 0x037DC9B03E344A0b77719F31D1B5C817FBC976FC; string private constant _name = "ZAKUJIRA"; string private constant _symbol = "KUJIRA"; struct Taxes { uint256 rfi; uint256 dev; uint256 marketing; uint256 liquidity; } Taxes public taxes = Taxes(0,2,5,0); Taxes public sellTaxes = Taxes(0,2,5,0); struct TotFeesPaidStruct{ uint256 rfi; uint256 marketing; uint256 dev; uint256 liquidity; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues{ uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 rDev; uint256 rLiquidity; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; uint256 tDev; uint256 tLiquidity; } event FeesChanged(); modifier lockTheSwap { swapping = true; _; swapping = false; } constructor () { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludeFromReward(pair); _rOwned[owner()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingAddress]=true; _isExcludedFromFee[devAddress] = true; emit Transfer(address(0), owner(), _tTotal); } 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 totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), 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(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tAmount, bool deductTransferRfi, bool isSell) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, false, isSell); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true, isSell); return s.rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount/currentRate; } function excludeFromReward(address account) public onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is not excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function setTaxes(uint256 _rfi, uint256 _marketing, uint256 _dev, uint256 _liquidity) public onlyOwner { taxes.rfi = _rfi; taxes.marketing = _marketing; taxes.dev = _dev; taxes.liquidity = _liquidity; emit FeesChanged(); } function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _dev, uint256 _liquidity) public onlyOwner { sellTaxes.rfi = _rfi; sellTaxes.marketing = _marketing; sellTaxes.dev = _dev; sellTaxes.liquidity = _liquidity; emit FeesChanged(); } function _reflectRfi(uint256 rRfi, uint256 tRfi) private { _rTotal -=rRfi; totFeesPaid.rfi +=tRfi; } function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private { totFeesPaid.liquidity +=tLiquidity; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tLiquidity; } _rOwned[address(this)] +=rLiquidity; } function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private { totFeesPaid.marketing +=tMarketing; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tMarketing; } _rOwned[address(this)] +=rMarketing; } function _takeDev(uint256 rDev, uint256 tDev) private { totFeesPaid.dev += tDev; if(_isExcluded[address(this)]) { _tOwned[address(this)]+= tDev; } _rOwned[address(this)] += rDev; } function _getValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee, isSell); (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rDev, to_return.rLiquidity) = _getRValues(to_return, tAmount, takeFee, _getRate()); return to_return; } function _getTValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory s) { if(!takeFee) { s.tTransferAmount = tAmount; return s; } Taxes memory temp; if(isSell) temp = sellTaxes; else temp = taxes; s.tRfi = tAmount*temp.rfi/100; s.tMarketing = tAmount*temp.marketing/100; s.tLiquidity = tAmount*temp.liquidity/100; s.tDev = tAmount*temp.dev/100; s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tDev-s.tLiquidity; return s; } function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rMarketing, uint256 rDev, uint256 rLiquidity) { rAmount = tAmount*currentRate; if(!takeFee) { return(rAmount, rAmount, 0,0,0,0); } rRfi = s.tRfi*currentRate; rMarketing = s.tMarketing*currentRate; rDev = s.tDev*currentRate; rLiquidity = s.tLiquidity*currentRate; rTransferAmount = rAmount-rRfi-rMarketing-rDev-rLiquidity; return (rAmount, rTransferAmount, rRfi,rMarketing,rDev,rLiquidity); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply/tSupply; } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply-_rOwned[_excluded[i]]; tSupply = tSupply-_tOwned[_excluded[i]]; } if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(!_isBot[from] && !_isBot[to], "You are a bot"); if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !swapping){ if(from == pair){ require(amount <= maxBuyAmount, "You are exceeding maxBuyAmount"); } if(to == pair){ require(amount <= maxSellAmount, "You are exceeding maxSellAmount"); } if(to != pair){ require(balanceOf(to) + amount <= maxWalletBalance, "You are exceeding maxWalletBalance"); } } bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ swapAndLiquify(swapTokensAtAmount); } _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]), to == pair); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private { valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell); if (_isExcluded[sender] ) { //from excluded _tOwned[sender] = _tOwned[sender]-tAmount; } if (_isExcluded[recipient]) { //to excluded _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount; } _rOwned[sender] = _rOwned[sender]-s.rAmount; _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount; if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi); if(s.rLiquidity > 0 || s.tLiquidity > 0) { _takeLiquidity(s.rLiquidity,s.tLiquidity); } if(s.rMarketing > 0 || s.tMarketing > 0){ _takeMarketing(s.rMarketing, s.tMarketing); } if(s.rDev > 0 || s.tDev > 0){ _takeDev(s.rDev, s.tDev); } emit Transfer(sender, recipient, s.tTransferAmount); emit Transfer(sender, address(this), s.tLiquidity + s.tDev + s.tMarketing); } function swapAndLiquify(uint256 tokens) private lockTheSwap{ // Split the contract balance into halves uint256 denominator = (sellTaxes.liquidity + sellTaxes.marketing + sellTaxes.dev) * 2; uint256 tokensToAddLiquidityWith = tokens * sellTaxes.liquidity / denominator; uint256 toSwap = tokens - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForBNB(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 bnbToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(bnbToAddLiquidityWith > 0){ // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingAddress).transfer(marketingAmt); } uint256 devAmt = unitBalance * 2 * sellTaxes.dev; if(devAmt > 0){ payable(devAddress).transfer(devAmt); } } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0), block.timestamp ); } function swapTokensForBNB(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingAddress = newWallet; } function updateDevWallet(address newDevWallet) external onlyOwner{ devAddress = newDevWallet; } function updateMaxWalletBalance(uint256 amount) external onlyOwner{ maxWalletBalance = amount * 10**_decimals; } function updatMaxBuyAmt(uint256 amount) external onlyOwner{ maxBuyAmount = amount * 10**_decimals; } function updatMaxSellAmt(uint256 amount) external onlyOwner{ maxSellAmount = amount * 10**_decimals; } function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{ swapTokensAtAmount = amount * 10**_decimals; } function updateSwapEnabled(bool _enabled) external onlyOwner{ swapEnabled = _enabled; } function setAntibot(address account, bool state) external onlyOwner{ require(_isBot[account] != state, 'Value already set'); _isBot[account] = state; } function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ _isBot[accounts[i]] = state; } } function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{ router = IRouter(newRouter); pair = newPair; } function isBot(address account) public view returns(bool){ return _isBot[account]; } //Use this in case BNB are sent to the contract by mistake function rescueBNB(uint256 weiAmount) external onlyOwner{ require(address(this).balance >= weiAmount, "insufficient BNB balance"); payable(msg.sender).transfer(weiAmount); } // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake) // Owner cannot transfer out ZAKUJIRA from this smart contract function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner { require(_tokenAddr != address(this), "Cannot transfer out ZAKUJIRA!"); IERC20(_tokenAddr).transfer(_to, _amount); } receive() external payable{ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","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":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"},{"internalType":"bool","name":"isSell","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxBuyAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updatMaxSellAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526008805460ff191660011790556200001f6009600a620009cc565b6200002f90633b9aca00620009dd565b600a819055620000429060001962000a15565b620000509060001962000a2c565b600b55620000616009600a620009cc565b62000070906217c355620009dd565b600c55620000816009600a620009cc565b620000909062d5de00620009dd565b600d55620000a16009600a620009cc565b620000b1906301647200620009dd565b600e55620000c26009600a620009cc565b620000d090612710620009dd565b600f55601080546001600160a01b031990811673662c875d77e5ac24d1a86cf78b90a0e1ce824019179091556011805490911673037dc9b03e344a0b77719f31d1b5c817fbc976fc1790556040805160808082018352600080835260026020808501829052600585870181905260609586018490526012849055601383905560148190556015849055865194850187528385529084018290529483018590529190920182905260168290556017556018919091556019553480156200019457600080fd5b50620001a0336200047e565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000220919062000a46565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000294919062000a46565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000308919062000a46565b600880546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600980549183166001600160a01b0319909216821790559091506200035690620004ce565b600b5460016000620003706000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620003aa6200065c60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155601054821684528284208054861682179055601154909116835291208054909216179055620004266000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200046e91815260200190565b60405180910390a3505062000abc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146200052e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620005995760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000525565b6001600160a01b03811660009081526001602052604090205415620005f6576001600160a01b038116600090815260016020526040902054620005dc906200066b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600b54821115620006d45760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000525565b6000620006e0620006f5565b9050620006ee818462000a71565b9392505050565b60008080620007036200071b565b909250905062000714818362000a71565b9250505090565b600b54600a546000918291825b60075481101562000883578260016000600784815481106200074e576200074e62000a88565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620007bd575081600260006007848154811062000796576200079662000a88565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15620007d457600b54600a54945094505050509091565b6001600060078381548110620007ee57620007ee62000a88565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200081f908462000a2c565b925060026000600783815481106200083b576200083b62000a88565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200086c908362000a2c565b9150806200087a8162000a9e565b91505062000728565b50600a54600b5462000896919062000a71565b821015620008ae57600b54600a549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200090e578160001904821115620008f257620008f2620008b7565b808516156200090057918102915b93841c9390800290620008d2565b509250929050565b6000826200092757506001620009c6565b816200093657506000620009c6565b81600181146200094f57600281146200095a576200097a565b6001915050620009c6565b60ff8411156200096e576200096e620008b7565b50506001821b620009c6565b5060208310610133831016604e8410600b84101617156200099f575081810a620009c6565b620009ab8383620008cd565b8060001904821115620009c257620009c2620008b7565b0290505b92915050565b6000620006ee60ff84168362000916565b6000816000190483118215151615620009fa57620009fa620008b7565b500290565b634e487b7160e01b600052601260045260246000fd5b60008262000a275762000a27620009ff565b500690565b60008282101562000a415762000a41620008b7565b500390565b60006020828403121562000a5957600080fd5b81516001600160a01b0381168114620006ee57600080fd5b60008262000a835762000a83620009ff565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000ab55762000ab5620008b7565b5060010190565b612f8d8062000acc6000396000f3fe6080604052600436106102b25760003560e01c8063728f8eea11610175578063aacebbe3116100dc578063e116554511610095578063f2fde38b1161006f578063f2fde38b14610911578063f480fec214610931578063f66895a314610951578063f887ea401461097457600080fd5b8063e1165545146108bb578063e2f45605146108db578063ea2f0b37146108f157600080fd5b8063aacebbe3146107df578063b31470a4146107ff578063bbde77c11461081f578063c4fd856b14610835578063d257b34f14610855578063dd62ed3e1461087557600080fd5b80639ba5e4d51161012e5780639ba5e4d51461071c578063a12a7d611461073f578063a457c2d71461075f578063a5ece9411461077f578063a8aa1b311461079f578063a9059cbb146107bf57600080fd5b8063728f8eea1461061d57806388e765ff1461066057806388f82020146106765780638da5cb5b146106af578063924de9b7146106cd57806395d89b41146106ed57600080fd5b80633bbac5791161021957806352390c02116101d257806352390c021461055f5780635342acb41461057f57806366d602ae146105b85780636ddd1713146105ce57806370a08231146105e8578063715018a61461060857600080fd5b80633bbac579146104865780633f63d40f146104bf57806340b28c2f146104df578063437823ec146104ff578063441b1d301461051f57806347c230921461053f57600080fd5b806327563c8c1161026b57806327563c8c146103b25780632d838119146103d2578063313ce567146103f25780633685d4191461040e578063395093511461042e5780633ad10ef61461044e57600080fd5b806306fdde03146102be578063095ea7b31461030157806318160ddd146103315780631816467f14610350578063188b1bf11461037257806323b872dd1461039257600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506040805180820190915260088152675a414b554a49524160c01b60208201525b6040516102f8919061296e565b60405180910390f35b34801561030d57600080fd5b5061032161031c3660046129e8565b61099a565b60405190151581526020016102f8565b34801561033d57600080fd5b50600a545b6040519081526020016102f8565b34801561035c57600080fd5b5061037061036b366004612a14565b6109b1565b005b34801561037e57600080fd5b5061037061038d366004612a31565b610a06565b34801561039e57600080fd5b506103216103ad366004612a4a565b610a4c565b3480156103be57600080fd5b506103706103cd366004612a31565b610aff565b3480156103de57600080fd5b506103426103ed366004612a31565b610b45565b3480156103fe57600080fd5b50604051600981526020016102f8565b34801561041a57600080fd5b50610370610429366004612a14565b610bc2565b34801561043a57600080fd5b506103216104493660046129e8565b610d79565b34801561045a57600080fd5b5060115461046e906001600160a01b031681565b6040516001600160a01b0390911681526020016102f8565b34801561049257600080fd5b506103216104a1366004612a14565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104cb57600080fd5b506103426104da366004612aa4565b610db0565b3480156104eb57600080fd5b506103706104fa366004612ae6565b610e3c565b34801561050b57600080fd5b5061037061051a366004612a14565b610ea0565b34801561052b57600080fd5b5061037061053a366004612a31565b610eee565b34801561054b57600080fd5b5061037061055a366004612a4a565b610f95565b34801561056b57600080fd5b5061037061057a366004612a14565b611091565b34801561058b57600080fd5b5061032161059a366004612a14565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105c457600080fd5b50610342600d5481565b3480156105da57600080fd5b506008546103219060ff1681565b3480156105f457600080fd5b50610342610603366004612a14565b6111e4565b34801561061457600080fd5b50610370611243565b34801561062957600080fd5b506012546013546014546015546106409392919084565b6040805194855260208501939093529183015260608201526080016102f8565b34801561066c57600080fd5b50610342600e5481565b34801561068257600080fd5b50610321610691366004612a14565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156106bb57600080fd5b506000546001600160a01b031661046e565b3480156106d957600080fd5b506103706106e8366004612b1f565b611279565b3480156106f957600080fd5b506040805180820190915260068152654b554a49524160d01b60208201526102eb565b34801561072857600080fd5b50601a54601b54601c54601d546106409392919084565b34801561074b57600080fd5b5061037061075a366004612b3c565b6112b6565b34801561076b57600080fd5b5061032161077a3660046129e8565b611323565b34801561078b57600080fd5b5060105461046e906001600160a01b031681565b3480156107ab57600080fd5b5060095461046e906001600160a01b031681565b3480156107cb57600080fd5b506103216107da3660046129e8565b6113be565b3480156107eb57600080fd5b506103706107fa366004612a14565b6113cb565b34801561080b57600080fd5b5061037061081a366004612b84565b611417565b34801561082b57600080fd5b50610342600f5481565b34801561084157600080fd5b50610370610850366004612a31565b6114ad565b34801561086157600080fd5b50610370610870366004612a31565b6114f3565b34801561088157600080fd5b50610342610890366004612ae6565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108c757600080fd5b506103706108d6366004612c5b565b611539565b3480156108e757600080fd5b50610342600c5481565b3480156108fd57600080fd5b5061037061090c366004612a14565b6115f1565b34801561091d57600080fd5b5061037061092c366004612a14565b61163c565b34801561093d57600080fd5b5061037061094c366004612b3c565b6116d7565b34801561095d57600080fd5b506016546017546018546019546106409392919084565b34801561098057600080fd5b5060085461046e906201000090046001600160a01b031681565b60006109a7338484611744565b5060015b92915050565b6000546001600160a01b031633146109e45760405162461bcd60e51b81526004016109db90612c89565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a305760405162461bcd60e51b81526004016109db90612c89565b610a3c6009600a612db8565b610a469082612dc7565b600f5550565b6000610a59848484611868565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610ade5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109db565b610af28533610aed8685612de6565b611744565b60019150505b9392505050565b6000546001600160a01b03163314610b295760405162461bcd60e51b81526004016109db90612c89565b610b356009600a612db8565b610b3f9082612dc7565b600e5550565b6000600b54821115610bac5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109db565b6000610bb6611d3c565b9050610af88184612dfd565b6000546001600160a01b03163314610bec5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03811660009081526005602052604090205460ff16610c545760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016109db565b60005b600754811015610d7557816001600160a01b031660078281548110610c7e57610c7e612e1f565b6000918252602090912001546001600160a01b03161415610d635760078054610ca990600190612de6565b81548110610cb957610cb9612e1f565b600091825260209091200154600780546001600160a01b039092169183908110610ce557610ce5612e1f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610d3d57610d3d612e35565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d6d81612e4b565b915050610c57565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109a7918590610aed908690612e66565b6000600a54841115610e045760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109db565b82610e21576000610e1785600085611d5f565b519150610af89050565b6000610e2f85600185611d5f565b602001519150610af89050565b6000546001600160a01b03163314610e665760405162461bcd60e51b81526004016109db90612c89565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610eca5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610f185760405162461bcd60e51b81526004016109db90612c89565b80471015610f685760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016109db565b604051339082156108fc029083906000818181858888f19350505050158015610d75573d6000803e3d6000fd5b6000546001600160a01b03163314610fbf5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b0383163014156110185760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207472616e73666572206f7574205a414b554a4952412100000060448201526064016109db565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108b9190612e7e565b50505050565b6000546001600160a01b031633146110bb5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03811660009081526005602052604090205460ff16156111245760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109db565b6001600160a01b0381166000908152600160205260409020541561117e576001600160a01b03811660009081526001602052604090205461116490610b45565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561122157506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109ab90610b45565b6000546001600160a01b0316331461126d5760405162461bcd60e51b81526004016109db90612c89565b6112776000611da9565b565b6000546001600160a01b031633146112a35760405162461bcd60e51b81526004016109db90612c89565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146112e05760405162461bcd60e51b81526004016109db90612c89565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156113a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109db565b6113b43385610aed8685612de6565b5060019392505050565b60006109a7338484611868565b6000546001600160a01b031633146113f55760405162461bcd60e51b81526004016109db90612c89565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114415760405162461bcd60e51b81526004016109db90612c89565b60005b82518110156114a857816006600085848151811061146457611464612e1f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806114a081612e4b565b915050611444565b505050565b6000546001600160a01b031633146114d75760405162461bcd60e51b81526004016109db90612c89565b6114e36009600a612db8565b6114ed9082612dc7565b600d5550565b6000546001600160a01b0316331461151d5760405162461bcd60e51b81526004016109db90612c89565b6115296009600a612db8565b6115339082612dc7565b600c5550565b6000546001600160a01b031633146115635760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03821660009081526006602052604090205460ff16151581151514156115c65760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016109db565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461161b5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146116665760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b0381166116cb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109db565b6116d481611da9565b50565b6000546001600160a01b031633146117015760405162461bcd60e51b81526004016109db90612c89565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b0383166117a65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109db565b6001600160a01b0382166118075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109db565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109db565b6001600160a01b03821661192e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109db565b600081116119905760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109db565b611999836111e4565b811115611a025760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016109db565b6001600160a01b03831660009081526006602052604090205460ff16158015611a4457506001600160a01b03821660009081526006602052604090205460ff16155b611a805760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016109db565b6001600160a01b03831660009081526004602052604090205460ff16158015611ac257506001600160a01b03821660009081526004602052604090205460ff16155b8015611ad65750600854610100900460ff16155b15611c30576009546001600160a01b0384811691161415611b4357600e54811115611b435760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e74000060448201526064016109db565b6009546001600160a01b0383811691161415611bab57600d54811115611bab5760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e740060448201526064016109db565b6009546001600160a01b03838116911614611c3057600f5481611bcd846111e4565b611bd79190612e66565b1115611c305760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b60648201526084016109db565b6000600c54611c3e306111e4565b6008549111159150610100900460ff16158015611c5d575060085460ff165b8015611c665750805b8015611c8057506009546001600160a01b03858116911614155b8015611ca557506001600160a01b03841660009081526004602052604090205460ff16155b8015611cca57506001600160a01b03831660009081526004602052604090205460ff16155b15611cda57611cda600c54611df9565b6001600160a01b03841660009081526004602052604090205461108b9085908590859060ff1680611d2357506001600160a01b03871660009081526004602052604090205460ff165b6009549015906001600160a01b03898116911614611f90565b6000806000611d4961225c565b9092509050611d588183612dfd565b9250505090565b611d67612914565b611d728484846123df565b9050611d87818585611d82611d3c565b612552565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560175460185460195460009291611e1e91612e66565b611e289190612e66565b611e33906002612dc7565b905060008160166003015484611e499190612dc7565b611e539190612dfd565b90506000611e618285612de6565b905047611e6d82612604565b6000611e798247612de6565b601954909150600090611e8c9087612de6565b611e969083612dfd565b601954909150600090611ea99083612dc7565b90508015611ebb57611ebb8682612783565b601854600090611ecc846002612dc7565b611ed69190612dc7565b90508015611f1a576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f18573d6000803e3d6000fd5b505b601754600090611f2b856002612dc7565b611f359190612dc7565b90508015611f79576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f77573d6000803e3d6000fd5b505b50506008805461ff00191690555050505050505050565b6000611f9d848484611d5f565b6001600160a01b03871660009081526005602052604090205490915060ff1615611fff576001600160a01b038616600090815260026020526040902054611fe5908590612de6565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156120625760c08101516001600160a01b0386166000908152600260205260409020546120489190612e66565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b0387166000908152600160205260409020546120879190612de6565b6001600160a01b03808816600090815260016020908152604080832094909455840151918816815291909120546120be9190612e66565b6001600160a01b03861660009081526001602052604090819020919091558101511515806120f0575060008160e00151115b156121075761210781604001518260e0015161283f565b60008160a00151118061211f57506000816101400151115b15612137576121378160a00151826101400151612874565b60008160600151118061214f57506000816101000151115b156121675761216781606001518261010001516128ea565b60008160800151118061217f57506000816101200151115b156121975761219781608001518261012001516128ff565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516121e091815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001518561014001516122399190612e66565b6122439190612e66565b60405190815260200160405180910390a3505050505050565b600b54600a546000918291825b6007548110156123ae5782600160006007848154811061228b5761228b612e1f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806122f657508160026000600784815481106122cf576122cf612e1f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561230c57600b54600a54945094505050509091565b600160006007838154811061232357612323612e1f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546123529084612de6565b9250600260006007838154811061236b5761236b612e1f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461239a9083612de6565b9150806123a681612e4b565b915050612269565b50600a54600b546123bf9190612dfd565b8210156123d657600b54600a549350935050509091565b90939092509050565b6123e7612914565b826123f85760c08101849052610af8565b6124236040518060800160405280600081526020016000815260200160008152602001600081525090565b821561245857506040805160808101825260165481526017546020820152601854918101919091526019546060820152612483565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906124929087612dc7565b61249c9190612dfd565b60e083015260408101516064906124b39087612dc7565b6124bd9190612dfd565b61010083015260608101516064906124d59087612dc7565b6124df9190612dfd565b61014083015260208101516064906124f79087612dc7565b6125019190612dfd565b610120830181905261014083015161010084015160e08501519192916125279089612de6565b6125319190612de6565b61253b9190612de6565b6125459190612de6565b60c0830152509392505050565b60008080808080612563878a612dc7565b95508761257e575084935060009250829150819050806125f7565b868a60e0015161258e9190612dc7565b9350868a61010001516125a19190612dc7565b9250868a61012001516125b49190612dc7565b9150868a61014001516125c79190612dc7565b90508082846125d6878a612de6565b6125e09190612de6565b6125ea9190612de6565b6125f49190612de6565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061263957612639612e1f565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d09190612e9b565b816001815181106126e3576126e3612e1f565b6001600160a01b03928316602091820292909201015260085461270f9130916201000090041684611744565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061274d908590600090869030904290600401612eb8565b600060405180830381600087803b15801561276757600080fd5b505af115801561277b573d6000803e3d6000fd5b505050505050565b6008546127a19030906201000090046001600160a01b031684611744565b60085460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612813573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128389190612f29565b5050505050565b81600b60008282546128519190612de6565b9091555050601a805482919060009061286b908490612e66565b90915550505050565b80601a60030160008282546128899190612e66565b90915550503060009081526005602052604090205460ff16156128cb5730600090815260026020526040812080548392906128c5908490612e66565b90915550505b306000908152600160205260408120805484929061286b908490612e66565b80601a60010160008282546128899190612e66565b80601a60020160008282546128899190612e66565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b8181101561299b5785810183015185820160400152820161297f565b818111156129ad576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146116d457600080fd5b80356129e3816129c3565b919050565b600080604083850312156129fb57600080fd5b8235612a06816129c3565b946020939093013593505050565b600060208284031215612a2657600080fd5b8135610af8816129c3565b600060208284031215612a4357600080fd5b5035919050565b600080600060608486031215612a5f57600080fd5b8335612a6a816129c3565b92506020840135612a7a816129c3565b929592945050506040919091013590565b80151581146116d457600080fd5b80356129e381612a8b565b600080600060608486031215612ab957600080fd5b833592506020840135612acb81612a8b565b91506040840135612adb81612a8b565b809150509250925092565b60008060408385031215612af957600080fd5b8235612b04816129c3565b91506020830135612b14816129c3565b809150509250929050565b600060208284031215612b3157600080fd5b8135610af881612a8b565b60008060008060808587031215612b5257600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612b9757600080fd5b823567ffffffffffffffff80821115612baf57600080fd5b818501915085601f830112612bc357600080fd5b8135602082821115612bd757612bd7612b6e565b8160051b604051601f19603f83011681018181108682111715612bfc57612bfc612b6e565b604052928352818301935084810182019289841115612c1a57600080fd5b948201945b83861015612c3f57612c30866129d8565b85529482019493820193612c1f565b9650612c4e9050878201612a99565b9450505050509250929050565b60008060408385031215612c6e57600080fd5b8235612c79816129c3565b91506020830135612b1481612a8b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612d0f578160001904821115612cf557612cf5612cbe565b80851615612d0257918102915b93841c9390800290612cd9565b509250929050565b600082612d26575060016109ab565b81612d33575060006109ab565b8160018114612d495760028114612d5357612d6f565b60019150506109ab565b60ff841115612d6457612d64612cbe565b50506001821b6109ab565b5060208310610133831016604e8410600b8410161715612d92575081810a6109ab565b612d9c8383612cd4565b8060001904821115612db057612db0612cbe565b029392505050565b6000610af860ff841683612d17565b6000816000190483118215151615612de157612de1612cbe565b500290565b600082821015612df857612df8612cbe565b500390565b600082612e1a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612e5f57612e5f612cbe565b5060010190565b60008219821115612e7957612e79612cbe565b500190565b600060208284031215612e9057600080fd5b8151610af881612a8b565b600060208284031215612ead57600080fd5b8151610af8816129c3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f085784516001600160a01b031683529383019391830191600101612ee3565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612f3e57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209b2a18d7fc94dfb128468879008389e6e49fe5cda4a27931a8e2034cd96afd5f64736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106102b25760003560e01c8063728f8eea11610175578063aacebbe3116100dc578063e116554511610095578063f2fde38b1161006f578063f2fde38b14610911578063f480fec214610931578063f66895a314610951578063f887ea401461097457600080fd5b8063e1165545146108bb578063e2f45605146108db578063ea2f0b37146108f157600080fd5b8063aacebbe3146107df578063b31470a4146107ff578063bbde77c11461081f578063c4fd856b14610835578063d257b34f14610855578063dd62ed3e1461087557600080fd5b80639ba5e4d51161012e5780639ba5e4d51461071c578063a12a7d611461073f578063a457c2d71461075f578063a5ece9411461077f578063a8aa1b311461079f578063a9059cbb146107bf57600080fd5b8063728f8eea1461061d57806388e765ff1461066057806388f82020146106765780638da5cb5b146106af578063924de9b7146106cd57806395d89b41146106ed57600080fd5b80633bbac5791161021957806352390c02116101d257806352390c021461055f5780635342acb41461057f57806366d602ae146105b85780636ddd1713146105ce57806370a08231146105e8578063715018a61461060857600080fd5b80633bbac579146104865780633f63d40f146104bf57806340b28c2f146104df578063437823ec146104ff578063441b1d301461051f57806347c230921461053f57600080fd5b806327563c8c1161026b57806327563c8c146103b25780632d838119146103d2578063313ce567146103f25780633685d4191461040e578063395093511461042e5780633ad10ef61461044e57600080fd5b806306fdde03146102be578063095ea7b31461030157806318160ddd146103315780631816467f14610350578063188b1bf11461037257806323b872dd1461039257600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506040805180820190915260088152675a414b554a49524160c01b60208201525b6040516102f8919061296e565b60405180910390f35b34801561030d57600080fd5b5061032161031c3660046129e8565b61099a565b60405190151581526020016102f8565b34801561033d57600080fd5b50600a545b6040519081526020016102f8565b34801561035c57600080fd5b5061037061036b366004612a14565b6109b1565b005b34801561037e57600080fd5b5061037061038d366004612a31565b610a06565b34801561039e57600080fd5b506103216103ad366004612a4a565b610a4c565b3480156103be57600080fd5b506103706103cd366004612a31565b610aff565b3480156103de57600080fd5b506103426103ed366004612a31565b610b45565b3480156103fe57600080fd5b50604051600981526020016102f8565b34801561041a57600080fd5b50610370610429366004612a14565b610bc2565b34801561043a57600080fd5b506103216104493660046129e8565b610d79565b34801561045a57600080fd5b5060115461046e906001600160a01b031681565b6040516001600160a01b0390911681526020016102f8565b34801561049257600080fd5b506103216104a1366004612a14565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104cb57600080fd5b506103426104da366004612aa4565b610db0565b3480156104eb57600080fd5b506103706104fa366004612ae6565b610e3c565b34801561050b57600080fd5b5061037061051a366004612a14565b610ea0565b34801561052b57600080fd5b5061037061053a366004612a31565b610eee565b34801561054b57600080fd5b5061037061055a366004612a4a565b610f95565b34801561056b57600080fd5b5061037061057a366004612a14565b611091565b34801561058b57600080fd5b5061032161059a366004612a14565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105c457600080fd5b50610342600d5481565b3480156105da57600080fd5b506008546103219060ff1681565b3480156105f457600080fd5b50610342610603366004612a14565b6111e4565b34801561061457600080fd5b50610370611243565b34801561062957600080fd5b506012546013546014546015546106409392919084565b6040805194855260208501939093529183015260608201526080016102f8565b34801561066c57600080fd5b50610342600e5481565b34801561068257600080fd5b50610321610691366004612a14565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156106bb57600080fd5b506000546001600160a01b031661046e565b3480156106d957600080fd5b506103706106e8366004612b1f565b611279565b3480156106f957600080fd5b506040805180820190915260068152654b554a49524160d01b60208201526102eb565b34801561072857600080fd5b50601a54601b54601c54601d546106409392919084565b34801561074b57600080fd5b5061037061075a366004612b3c565b6112b6565b34801561076b57600080fd5b5061032161077a3660046129e8565b611323565b34801561078b57600080fd5b5060105461046e906001600160a01b031681565b3480156107ab57600080fd5b5060095461046e906001600160a01b031681565b3480156107cb57600080fd5b506103216107da3660046129e8565b6113be565b3480156107eb57600080fd5b506103706107fa366004612a14565b6113cb565b34801561080b57600080fd5b5061037061081a366004612b84565b611417565b34801561082b57600080fd5b50610342600f5481565b34801561084157600080fd5b50610370610850366004612a31565b6114ad565b34801561086157600080fd5b50610370610870366004612a31565b6114f3565b34801561088157600080fd5b50610342610890366004612ae6565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108c757600080fd5b506103706108d6366004612c5b565b611539565b3480156108e757600080fd5b50610342600c5481565b3480156108fd57600080fd5b5061037061090c366004612a14565b6115f1565b34801561091d57600080fd5b5061037061092c366004612a14565b61163c565b34801561093d57600080fd5b5061037061094c366004612b3c565b6116d7565b34801561095d57600080fd5b506016546017546018546019546106409392919084565b34801561098057600080fd5b5060085461046e906201000090046001600160a01b031681565b60006109a7338484611744565b5060015b92915050565b6000546001600160a01b031633146109e45760405162461bcd60e51b81526004016109db90612c89565b60405180910390fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a305760405162461bcd60e51b81526004016109db90612c89565b610a3c6009600a612db8565b610a469082612dc7565b600f5550565b6000610a59848484611868565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610ade5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109db565b610af28533610aed8685612de6565b611744565b60019150505b9392505050565b6000546001600160a01b03163314610b295760405162461bcd60e51b81526004016109db90612c89565b610b356009600a612db8565b610b3f9082612dc7565b600e5550565b6000600b54821115610bac5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109db565b6000610bb6611d3c565b9050610af88184612dfd565b6000546001600160a01b03163314610bec5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03811660009081526005602052604090205460ff16610c545760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016109db565b60005b600754811015610d7557816001600160a01b031660078281548110610c7e57610c7e612e1f565b6000918252602090912001546001600160a01b03161415610d635760078054610ca990600190612de6565b81548110610cb957610cb9612e1f565b600091825260209091200154600780546001600160a01b039092169183908110610ce557610ce5612e1f565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610d3d57610d3d612e35565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d6d81612e4b565b915050610c57565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109a7918590610aed908690612e66565b6000600a54841115610e045760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109db565b82610e21576000610e1785600085611d5f565b519150610af89050565b6000610e2f85600185611d5f565b602001519150610af89050565b6000546001600160a01b03163314610e665760405162461bcd60e51b81526004016109db90612c89565b6008805462010000600160b01b031916620100006001600160a01b0394851602179055600980546001600160a01b03191691909216179055565b6000546001600160a01b03163314610eca5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610f185760405162461bcd60e51b81526004016109db90612c89565b80471015610f685760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016109db565b604051339082156108fc029083906000818181858888f19350505050158015610d75573d6000803e3d6000fd5b6000546001600160a01b03163314610fbf5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b0383163014156110185760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74207472616e73666572206f7574205a414b554a4952412100000060448201526064016109db565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015611067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108b9190612e7e565b50505050565b6000546001600160a01b031633146110bb5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03811660009081526005602052604090205460ff16156111245760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109db565b6001600160a01b0381166000908152600160205260409020541561117e576001600160a01b03811660009081526001602052604090205461116490610b45565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff161561122157506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109ab90610b45565b6000546001600160a01b0316331461126d5760405162461bcd60e51b81526004016109db90612c89565b6112776000611da9565b565b6000546001600160a01b031633146112a35760405162461bcd60e51b81526004016109db90612c89565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146112e05760405162461bcd60e51b81526004016109db90612c89565b60128490556014839055601382905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156113a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109db565b6113b43385610aed8685612de6565b5060019392505050565b60006109a7338484611868565b6000546001600160a01b031633146113f55760405162461bcd60e51b81526004016109db90612c89565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114415760405162461bcd60e51b81526004016109db90612c89565b60005b82518110156114a857816006600085848151811061146457611464612e1f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806114a081612e4b565b915050611444565b505050565b6000546001600160a01b031633146114d75760405162461bcd60e51b81526004016109db90612c89565b6114e36009600a612db8565b6114ed9082612dc7565b600d5550565b6000546001600160a01b0316331461151d5760405162461bcd60e51b81526004016109db90612c89565b6115296009600a612db8565b6115339082612dc7565b600c5550565b6000546001600160a01b031633146115635760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03821660009081526006602052604090205460ff16151581151514156115c65760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b60448201526064016109db565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461161b5760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146116665760405162461bcd60e51b81526004016109db90612c89565b6001600160a01b0381166116cb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109db565b6116d481611da9565b50565b6000546001600160a01b031633146117015760405162461bcd60e51b81526004016109db90612c89565b60168490556018839055601782905560198190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6001600160a01b0383166117a65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109db565b6001600160a01b0382166118075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109db565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109db565b6001600160a01b03821661192e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109db565b600081116119905760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109db565b611999836111e4565b811115611a025760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016109db565b6001600160a01b03831660009081526006602052604090205460ff16158015611a4457506001600160a01b03821660009081526006602052604090205460ff16155b611a805760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b60448201526064016109db565b6001600160a01b03831660009081526004602052604090205460ff16158015611ac257506001600160a01b03821660009081526004602052604090205460ff16155b8015611ad65750600854610100900460ff16155b15611c30576009546001600160a01b0384811691161415611b4357600e54811115611b435760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e74000060448201526064016109db565b6009546001600160a01b0383811691161415611bab57600d54811115611bab5760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e740060448201526064016109db565b6009546001600160a01b03838116911614611c3057600f5481611bcd846111e4565b611bd79190612e66565b1115611c305760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b60648201526084016109db565b6000600c54611c3e306111e4565b6008549111159150610100900460ff16158015611c5d575060085460ff165b8015611c665750805b8015611c8057506009546001600160a01b03858116911614155b8015611ca557506001600160a01b03841660009081526004602052604090205460ff16155b8015611cca57506001600160a01b03831660009081526004602052604090205460ff16155b15611cda57611cda600c54611df9565b6001600160a01b03841660009081526004602052604090205461108b9085908590859060ff1680611d2357506001600160a01b03871660009081526004602052604090205460ff165b6009549015906001600160a01b03898116911614611f90565b6000806000611d4961225c565b9092509050611d588183612dfd565b9250505090565b611d67612914565b611d728484846123df565b9050611d87818585611d82611d3c565b612552565b60a0870152608086015260608501526040840152602083015281529392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560175460185460195460009291611e1e91612e66565b611e289190612e66565b611e33906002612dc7565b905060008160166003015484611e499190612dc7565b611e539190612dfd565b90506000611e618285612de6565b905047611e6d82612604565b6000611e798247612de6565b601954909150600090611e8c9087612de6565b611e969083612dfd565b601954909150600090611ea99083612dc7565b90508015611ebb57611ebb8682612783565b601854600090611ecc846002612dc7565b611ed69190612dc7565b90508015611f1a576010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f18573d6000803e3d6000fd5b505b601754600090611f2b856002612dc7565b611f359190612dc7565b90508015611f79576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611f77573d6000803e3d6000fd5b505b50506008805461ff00191690555050505050505050565b6000611f9d848484611d5f565b6001600160a01b03871660009081526005602052604090205490915060ff1615611fff576001600160a01b038616600090815260026020526040902054611fe5908590612de6565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156120625760c08101516001600160a01b0386166000908152600260205260409020546120489190612e66565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b0387166000908152600160205260409020546120879190612de6565b6001600160a01b03808816600090815260016020908152604080832094909455840151918816815291909120546120be9190612e66565b6001600160a01b03861660009081526001602052604090819020919091558101511515806120f0575060008160e00151115b156121075761210781604001518260e0015161283f565b60008160a00151118061211f57506000816101400151115b15612137576121378160a00151826101400151612874565b60008160600151118061214f57506000816101000151115b156121675761216781606001518261010001516128ea565b60008160800151118061217f57506000816101200151115b156121975761219781608001518261012001516128ff565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516121e091815260200190565b60405180910390a3306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001518561014001516122399190612e66565b6122439190612e66565b60405190815260200160405180910390a3505050505050565b600b54600a546000918291825b6007548110156123ae5782600160006007848154811061228b5761228b612e1f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806122f657508160026000600784815481106122cf576122cf612e1f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561230c57600b54600a54945094505050509091565b600160006007838154811061232357612323612e1f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546123529084612de6565b9250600260006007838154811061236b5761236b612e1f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461239a9083612de6565b9150806123a681612e4b565b915050612269565b50600a54600b546123bf9190612dfd565b8210156123d657600b54600a549350935050509091565b90939092509050565b6123e7612914565b826123f85760c08101849052610af8565b6124236040518060800160405280600081526020016000815260200160008152602001600081525090565b821561245857506040805160808101825260165481526017546020820152601854918101919091526019546060820152612483565b5060408051608081018252601254815260135460208201526014549181019190915260155460608201525b80516064906124929087612dc7565b61249c9190612dfd565b60e083015260408101516064906124b39087612dc7565b6124bd9190612dfd565b61010083015260608101516064906124d59087612dc7565b6124df9190612dfd565b61014083015260208101516064906124f79087612dc7565b6125019190612dfd565b610120830181905261014083015161010084015160e08501519192916125279089612de6565b6125319190612de6565b61253b9190612de6565b6125459190612de6565b60c0830152509392505050565b60008080808080612563878a612dc7565b95508761257e575084935060009250829150819050806125f7565b868a60e0015161258e9190612dc7565b9350868a61010001516125a19190612dc7565b9250868a61012001516125b49190612dc7565b9150868a61014001516125c79190612dc7565b90508082846125d6878a612de6565b6125e09190612de6565b6125ea9190612de6565b6125f49190612de6565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061263957612639612e1f565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d09190612e9b565b816001815181106126e3576126e3612e1f565b6001600160a01b03928316602091820292909201015260085461270f9130916201000090041684611744565b60085460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061274d908590600090869030904290600401612eb8565b600060405180830381600087803b15801561276757600080fd5b505af115801561277b573d6000803e3d6000fd5b505050505050565b6008546127a19030906201000090046001600160a01b031684611744565b60085460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a4820152620100009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612813573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128389190612f29565b5050505050565b81600b60008282546128519190612de6565b9091555050601a805482919060009061286b908490612e66565b90915550505050565b80601a60030160008282546128899190612e66565b90915550503060009081526005602052604090205460ff16156128cb5730600090815260026020526040812080548392906128c5908490612e66565b90915550505b306000908152600160205260408120805484929061286b908490612e66565b80601a60010160008282546128899190612e66565b80601a60020160008282546128899190612e66565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b8181101561299b5785810183015185820160400152820161297f565b818111156129ad576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146116d457600080fd5b80356129e3816129c3565b919050565b600080604083850312156129fb57600080fd5b8235612a06816129c3565b946020939093013593505050565b600060208284031215612a2657600080fd5b8135610af8816129c3565b600060208284031215612a4357600080fd5b5035919050565b600080600060608486031215612a5f57600080fd5b8335612a6a816129c3565b92506020840135612a7a816129c3565b929592945050506040919091013590565b80151581146116d457600080fd5b80356129e381612a8b565b600080600060608486031215612ab957600080fd5b833592506020840135612acb81612a8b565b91506040840135612adb81612a8b565b809150509250925092565b60008060408385031215612af957600080fd5b8235612b04816129c3565b91506020830135612b14816129c3565b809150509250929050565b600060208284031215612b3157600080fd5b8135610af881612a8b565b60008060008060808587031215612b5257600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612b9757600080fd5b823567ffffffffffffffff80821115612baf57600080fd5b818501915085601f830112612bc357600080fd5b8135602082821115612bd757612bd7612b6e565b8160051b604051601f19603f83011681018181108682111715612bfc57612bfc612b6e565b604052928352818301935084810182019289841115612c1a57600080fd5b948201945b83861015612c3f57612c30866129d8565b85529482019493820193612c1f565b9650612c4e9050878201612a99565b9450505050509250929050565b60008060408385031215612c6e57600080fd5b8235612c79816129c3565b91506020830135612b1481612a8b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612d0f578160001904821115612cf557612cf5612cbe565b80851615612d0257918102915b93841c9390800290612cd9565b509250929050565b600082612d26575060016109ab565b81612d33575060006109ab565b8160018114612d495760028114612d5357612d6f565b60019150506109ab565b60ff841115612d6457612d64612cbe565b50506001821b6109ab565b5060208310610133831016604e8410600b8410161715612d92575081810a6109ab565b612d9c8383612cd4565b8060001904821115612db057612db0612cbe565b029392505050565b6000610af860ff841683612d17565b6000816000190483118215151615612de157612de1612cbe565b500290565b600082821015612df857612df8612cbe565b500390565b600082612e1a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415612e5f57612e5f612cbe565b5060010190565b60008219821115612e7957612e79612cbe565b500190565b600060208284031215612e9057600080fd5b8151610af881612a8b565b600060208284031215612ead57600080fd5b8151610af8816129c3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f085784516001600160a01b031683529383019391830191600101612ee3565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612f3e57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212209b2a18d7fc94dfb128468879008389e6e49fe5cda4a27931a8e2034cd96afd5f64736f6c634300080a0033
Deployed Bytecode Sourcemap
2850:18430:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5596:83;;;;;;;;;;-1:-1:-1;5666:5:0;;;;;;;;;;;;-1:-1:-1;;;5666:5:0;;;;5596:83;;;;;;;:::i;:::-;;;;;;;;6504:161;;;;;;;;;;-1:-1:-1;6504:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6504:161:0;1211:187:1;5869:95:0;;;;;;;;;;-1:-1:-1;5949:7:0;;5869:95;;;1549:25:1;;;1537:2;1522:18;5869:95:0;1403:177:1;19138:109:0;;;;;;;;;;-1:-1:-1;19138:109:0;;;;;:::i;:::-;;:::i;:::-;;19259:126;;;;;;;;;;-1:-1:-1;19259:126:0;;;;;:::i;:::-;;:::i;6673:422::-;;;;;;;;;;-1:-1:-1;6673:422:0;;;;;:::i;:::-;;:::i;19393:114::-;;;;;;;;;;-1:-1:-1;19393:114:0;;;;;:::i;:::-;;:::i;8333:248::-;;;;;;;;;;-1:-1:-1;8333:248:0;;;;;:::i;:::-;;:::i;5778:83::-;;;;;;;;;;-1:-1:-1;5778:83:0;;3437:1;2625:36:1;;2613:2;2598:18;5778:83:0;2483:184:1;8930:475:0;;;;;;;;;;-1:-1:-1;8930:475:0;;;;;:::i;:::-;;:::i;7103:215::-;;;;;;;;;;-1:-1:-1;7103:215:0;;;;;:::i;:::-;;:::i;3961:70::-;;;;;;;;;;-1:-1:-1;3961:70:0;;;;-1:-1:-1;;;;;3961:70:0;;;;;;-1:-1:-1;;;;;2836:32:1;;;2818:51;;2806:2;2791:18;3961:70:0;2672:203:1;20452:98:0;;;;;;;;;;-1:-1:-1;20452:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;20527:15:0;20504:4;20527:15;;;:6;:15;;;;;;;;;20452:98;7839:486;;;;;;;;;;-1:-1:-1;7839:486:0;;;;;:::i;:::-;;:::i;20286:154::-;;;;;;;;;;-1:-1:-1;20286:154:0;;;;;:::i;:::-;;:::i;9415:111::-;;;;;;;;;;-1:-1:-1;9415:111:0;;;;;:::i;:::-;;:::i;20628:196::-;;;;;;;;;;-1:-1:-1;20628:196:0;;;;;:::i;:::-;;:::i;21001:234::-;;;;;;;;;;-1:-1:-1;21001:234:0;;;;;:::i;:::-;;:::i;8589:333::-;;;;;;;;;;-1:-1:-1;8589:333:0;;;;;:::i;:::-;;:::i;9654:123::-;;;;;;;;;;-1:-1:-1;9654:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9742:27:0;9718:4;9742:27;;;:18;:27;;;;;;;;;9654:123;3686:57;;;;;;;;;;;;;;;;3279:30;;;;;;;;;;-1:-1:-1;3279:30:0;;;;;;;;5972:198;;;;;;;;;;-1:-1:-1;5972:198:0;;;;;:::i;:::-;;:::i;1627:94::-;;;;;;;;;;;;;:::i;4263:35::-;;;;;;;;;;-1:-1:-1;4263:35:0;;;;;;;;;;;;;;;;;;;4209:25:1;;;4265:2;4250:18;;4243:34;;;;4293:18;;;4286:34;4351:2;4336:18;;4329:34;4196:3;4181:19;4263:35:0;3978:391:1;3750:56:0;;;;;;;;;;;;;;;;7711:120;;;;;;;;;;-1:-1:-1;7711:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7803:20:0;7779:4;7803:20;;;:11;:20;;;;;;;;;7711:120;1404:87;;;;;;;;;;-1:-1:-1;1450:7:0;1477:6;-1:-1:-1;;;;;1477:6:0;1404:87;;19785:101;;;;;;;;;;-1:-1:-1;19785:101:0;;;;;:::i;:::-;;:::i;5685:87::-;;;;;;;;;;-1:-1:-1;5757:7:0;;;;;;;;;;;;-1:-1:-1;;;5757:7:0;;;;5685:87;;4491:36;;;;;;;;;;-1:-1:-1;4491:36:0;;;;;;;;;;;;;;;9785:272;;;;;;;;;;-1:-1:-1;9785:272:0;;;;;:::i;:::-;;:::i;7326:377::-;;;;;;;;;;-1:-1:-1;7326:377:0;;;;;:::i;:::-;;:::i;3878:76::-;;;;;;;;;;-1:-1:-1;3878:76:0;;;;-1:-1:-1;;;;;3878:76:0;;;3374:19;;;;;;;;;;-1:-1:-1;3374:19:0;;;;-1:-1:-1;;;;;3374:19:0;;;6178:167;;;;;;;;;;-1:-1:-1;6178:167:0;;;;;:::i;:::-;;:::i;19011:115::-;;;;;;;;;;-1:-1:-1;19011:115:0;;;;;:::i;:::-;;:::i;20080:194::-;;;;;;;;;;-1:-1:-1;20080:194:0;;;;;:::i;:::-;;:::i;3813:56::-;;;;;;;;;;;;;;;;19519:116;;;;;;;;;;-1:-1:-1;19519:116:0;;;;;:::i;:::-;;:::i;19647:130::-;;;;;;;;;;-1:-1:-1;19647:130:0;;;;;:::i;:::-;;:::i;6353:143::-;;;;;;;;;;-1:-1:-1;6353:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6461:18:0;;;6434:7;6461:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6353:143;19894:174;;;;;;;;;;-1:-1:-1;19894:174:0;;;;;:::i;:::-;;:::i;3612:61::-;;;;;;;;;;;;;;;;9534:110;;;;;;;;;;-1:-1:-1;9534:110:0;;;;;:::i;:::-;;:::i;1729:192::-;;;;;;;;;;-1:-1:-1;1729:192:0;;;;;:::i;:::-;;:::i;10069:292::-;;;;;;;;;;-1:-1:-1;10069:292:0;;;;;:::i;:::-;;:::i;4305:39::-;;;;;;;;;;-1:-1:-1;4305:39:0;;;;;;;;;;;;;;;3346:21;;;;;;;;;;-1:-1:-1;3346:21:0;;;;;;;-1:-1:-1;;;;;3346:21:0;;;6504:161;6579:4;6596:39;905:10;6619:7;6628:6;6596:8;:39::i;:::-;-1:-1:-1;6653:4:0;6504:161;;;;;:::o;19138:109::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;;;;;;;;;19214:10:::1;:25:::0;;-1:-1:-1;;;;;;19214:25:0::1;-1:-1:-1::0;;;;;19214:25:0;;;::::1;::::0;;;::::1;::::0;;19138:109::o;19259:126::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;19364:13:::1;3437:1;19364:2;:13;:::i;:::-;19355:22;::::0;:6;:22:::1;:::i;:::-;19336:16;:41:::0;-1:-1:-1;19259:126:0:o;6673:422::-;6779:4;6796:36;6806:6;6814:9;6825:6;6796:9;:36::i;:::-;-1:-1:-1;;;;;6872:19:0;;6845:24;6872:19;;;:11;:19;;;;;;;;905:10;6872:33;;;;;;;;6924:26;;;;6916:79;;;;-1:-1:-1;;;6916:79:0;;9199:2:1;6916:79:0;;;9181:21:1;9238:2;9218:18;;;9211:30;9277:34;9257:18;;;9250:62;-1:-1:-1;;;9328:18:1;;;9321:38;9376:19;;6916:79:0;8997:404:1;6916:79:0;7006:57;7015:6;905:10;7037:25;7056:6;7037:16;:25;:::i;:::-;7006:8;:57::i;:::-;7083:4;7076:11;;;6673:422;;;;;;:::o;19393:114::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;19486:13:::1;3437:1;19486:2;:13;:::i;:::-;19477:22;::::0;:6;:22:::1;:::i;:::-;19462:12;:37:::0;-1:-1:-1;19393:114:0:o;8333:248::-;8399:7;8438;;8427;:18;;8419:73;;;;-1:-1:-1;;;8419:73:0;;9738:2:1;8419:73:0;;;9720:21:1;9777:2;9757:18;;;9750:30;9816:34;9796:18;;;9789:62;-1:-1:-1;;;9867:18:1;;;9860:40;9917:19;;8419:73:0;9536:406:1;8419:73:0;8503:19;8526:10;:8;:10::i;:::-;8503:33;-1:-1:-1;8554:19:0;8503:33;8554:7;:19;:::i;8930:475::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9012:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9004:56;;;::::0;-1:-1:-1;;;9004:56:0;;10371:2:1;9004:56:0::1;::::0;::::1;10353:21:1::0;10410:2;10390:18;;;10383:30;10449:25;10429:18;;;10422:53;10492:18;;9004:56:0::1;10169:347:1::0;9004:56:0::1;9076:9;9071:327;9095:9;:16:::0;9091:20;::::1;9071:327;;;9153:7;-1:-1:-1::0;;;;;9137:23:0::1;:9;9147:1;9137:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9137:12:0::1;:23;9133:254;;;9196:9;9206:16:::0;;:20:::1;::::0;9225:1:::1;::::0;9206:20:::1;:::i;:::-;9196:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9181:9:::1;:12:::0;;-1:-1:-1;;;;;9196:31:0;;::::1;::::0;9191:1;;9181:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9181:46:0::1;-1:-1:-1::0;;;;;9181:46:0;;::::1;;::::0;;9246:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9285:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9285:28:0::1;::::0;;9332:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9332:15:0;;;;;-1:-1:-1;;;;;;9332:15:0::1;::::0;;;;;9071:327:::1;8930:475:::0;:::o;9133:254::-:1;9113:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9071:327;;;;8930:475:::0;:::o;7103:215::-;905:10;7191:4;7240:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7240:34:0;;;;;;;;;;7191:4;;7208:80;;7231:7;;7240:47;;7277:10;;7240:47;:::i;7839:486::-;7942:7;7981;;7970;:18;;7962:62;;;;-1:-1:-1;;;7962:62:0;;11260:2:1;7962:62:0;;;11242:21:1;11299:2;11279:18;;;11272:30;11338:33;11318:18;;;11311:61;11389:18;;7962:62:0;11058:355:1;7962:62:0;8040:17;8035:283;;8074:28;8105:34;8116:7;8125:5;8132:6;8105:10;:34::i;:::-;8161:9;;-1:-1:-1;8154:16:0;;-1:-1:-1;8154:16:0;8035:283;8203:28;8234:33;8245:7;8254:4;8260:6;8234:10;:33::i;:::-;8289:17;;;;-1:-1:-1;8282:24:0;;-1:-1:-1;8282:24:0;20286:154;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;20380:6:::1;:27:::0;;-1:-1:-1;;;;;;20380:27:0::1;::::0;-1:-1:-1;;;;;20380:27:0;;::::1;;;::::0;;20418:4:::1;:14:::0;;-1:-1:-1;;;;;;20418:14:0::1;::::0;;;::::1;;::::0;;20286:154::o;9415:111::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9484:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9484:34:0::1;9514:4;9484:34;::::0;;9415:111::o;20628:196::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;20728:9:::1;20703:21;:34;;20695:71;;;::::0;-1:-1:-1;;;20695:71:0;;11620:2:1;20695:71:0::1;::::0;::::1;11602:21:1::0;11659:2;11639:18;;;11632:30;11698:26;11678:18;;;11671:54;11742:18;;20695:71:0::1;11418:348:1::0;20695:71:0::1;20777:39;::::0;20785:10:::1;::::0;20777:39;::::1;;;::::0;20806:9;;20777:39:::1;::::0;;;20806:9;20785:10;20777:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;21001:234:::0;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21114:27:0;::::1;21136:4;21114:27;;21106:69;;;::::0;-1:-1:-1;;;21106:69:0;;11973:2:1;21106:69:0::1;::::0;::::1;11955:21:1::0;12012:2;11992:18;;;11985:30;12051:31;12031:18;;;12024:59;12100:18;;21106:69:0::1;11771:353:1::0;21106:69:0::1;21186:41;::::0;-1:-1:-1;;;21186:41:0;;-1:-1:-1;;;;;12321:32:1;;;21186:41:0::1;::::0;::::1;12303:51:1::0;12370:18;;;12363:34;;;21186:27:0;::::1;::::0;::::1;::::0;12276:18:1;;21186:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21001:234:::0;;;:::o;8589:333::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8672:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;8671:21;8663:61;;;::::0;-1:-1:-1;;;8663:61:0;;12860:2:1;8663:61:0::1;::::0;::::1;12842:21:1::0;12899:2;12879:18;;;12872:30;12938:29;12918:18;;;12911:57;12985:18;;8663:61:0::1;12658:351:1::0;8663:61:0::1;-1:-1:-1::0;;;;;8738:16:0;::::1;8757:1;8738:16:::0;;;:7:::1;:16;::::0;;;;;:20;8735:108:::1;;-1:-1:-1::0;;;;;8814:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;8794:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;8775:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;8735:108:::1;-1:-1:-1::0;;;;;8853:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;8853:27:0::1;8876:4;8853:27:::0;;::::1;::::0;;;8891:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8891:23:0::1;::::0;;::::1;::::0;;8589:333::o;5972:198::-;-1:-1:-1;;;;;6062:20:0;;6038:7;6062:20;;;:11;:20;;;;;;;;6058:49;;;-1:-1:-1;;;;;;6091:16:0;;;;;:7;:16;;;;;;;5972:198::o;6058:49::-;-1:-1:-1;;;;;6145:16:0;;;;;;:7;:16;;;;;;6125:37;;:19;:37::i;1627:94::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;1692:21:::1;1710:1;1692:9;:21::i;:::-;1627:94::o:0;19785:101::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;19856:11:::1;:22:::0;;-1:-1:-1;;19856:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19785:101::o;9785:272::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;9899:5:::1;:16:::0;;;9926:15;:28;;;9965:9;:16;;;9992:15;:28;;;10036:13:::1;::::0;::::1;::::0;9899:9:::1;::::0;10036:13:::1;9785:272:::0;;;;:::o;7326:377::-;905:10;7419:4;7463:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7463:34:0;;;;;;;;;;7516:35;;;;7508:85;;;;-1:-1:-1;;;7508:85:0;;13216:2:1;7508:85:0;;;13198:21:1;13255:2;13235:18;;;13228:30;13294:34;13274:18;;;13267:62;-1:-1:-1;;;13345:18:1;;;13338:35;13390:19;;7508:85:0;13014:401:1;7508:85:0;7604:67;905:10;7627:7;7636:34;7655:15;7636:16;:34;:::i;7604:67::-;-1:-1:-1;7691:4:0;;7326:377;-1:-1:-1;;;7326:377:0:o;6178:167::-;6256:4;6273:42;905:10;6297:9;6308:6;6273:9;:42::i;19011:115::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;19090:16:::1;:28:::0;;-1:-1:-1;;;;;;19090:28:0::1;-1:-1:-1::0;;;;;19090:28:0;;;::::1;::::0;;;::::1;::::0;;19011:115::o;20080:194::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;20173:9:::1;20169:98;20192:8;:15;20188:1;:19;20169:98;;;20250:5;20228:6;:19;20235:8;20244:1;20235:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20228:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20228:19:0;:27;;-1:-1:-1;;20228:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20209:3;::::1;::::0;::::1;:::i;:::-;;;;20169:98;;;;20080:194:::0;;:::o;19519:116::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;19614:13:::1;3437:1;19614:2;:13;:::i;:::-;19605:22;::::0;:6;:22:::1;:::i;:::-;19589:13;:38:::0;-1:-1:-1;19519:116:0:o;19647:130::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;19756:13:::1;3437:1;19756:2;:13;:::i;:::-;19747:22;::::0;:6;:22:::1;:::i;:::-;19726:18;:43:::0;-1:-1:-1;19647:130:0:o;19894:174::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19980:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;::::1;;:24;;::::0;::::1;;;;19972:54;;;::::0;-1:-1:-1;;;19972:54:0;;13622:2:1;19972:54:0::1;::::0;::::1;13604:21:1::0;13661:2;13641:18;;;13634:30;-1:-1:-1;;;13680:18:1;;;13673:47;13737:18;;19972:54:0::1;13420:341:1::0;19972:54:0::1;-1:-1:-1::0;;;;;20037:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;20037:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19894:174::o;9534:110::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9601:27:0::1;9631:5;9601:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9601:35:0::1;::::0;;9534:110::o;1729:192::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1818:22:0;::::1;1810:73;;;::::0;-1:-1:-1;;;1810:73:0;;13968:2:1;1810:73:0::1;::::0;::::1;13950:21:1::0;14007:2;13987:18;;;13980:30;14046:34;14026:18;;;14019:62;-1:-1:-1;;;14097:18:1;;;14090:36;14143:19;;1810:73:0::1;13766:402:1::0;1810:73:0::1;1894:19;1904:8;1894:9;:19::i;:::-;1729:192:::0;:::o;10069:292::-;1450:7;1477:6;-1:-1:-1;;;;;1477:6:0;905:10;1539:23;1531:68;;;;-1:-1:-1;;;1531:68:0;;;;;;;:::i;:::-;10187:9:::1;:20:::0;;;10218:19;:32;;;10261:13;:20;;;10292:19;:32;;;10340:13:::1;::::0;::::1;::::0;10187::::1;::::0;10340::::1;10069:292:::0;;;;:::o;13775:335::-;-1:-1:-1;;;;;13868:19:0;;13860:68;;;;-1:-1:-1;;;13860:68:0;;14375:2:1;13860:68:0;;;14357:21:1;14414:2;14394:18;;;14387:30;14453:34;14433:18;;;14426:62;-1:-1:-1;;;14504:18:1;;;14497:34;14548:19;;13860:68:0;14173:400:1;13860:68:0;-1:-1:-1;;;;;13947:21:0;;13939:68;;;;-1:-1:-1;;;13939:68:0;;14780:2:1;13939:68:0;;;14762:21:1;14819:2;14799:18;;;14792:30;14858:34;14838:18;;;14831:62;-1:-1:-1;;;14909:18:1;;;14902:32;14951:19;;13939:68:0;14578:398:1;13939:68:0;-1:-1:-1;;;;;14018:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14070:32;;1549:25:1;;;14070:32:0;;1522:18:1;14070:32:0;;;;;;;13775:335;;;:::o;14118:1365::-;-1:-1:-1;;;;;14206:18:0;;14198:68;;;;-1:-1:-1;;;14198:68:0;;15183:2:1;14198:68:0;;;15165:21:1;15222:2;15202:18;;;15195:30;15261:34;15241:18;;;15234:62;-1:-1:-1;;;15312:18:1;;;15305:35;15357:19;;14198:68:0;14981:401:1;14198:68:0;-1:-1:-1;;;;;14285:16:0;;14277:64;;;;-1:-1:-1;;;14277:64:0;;15589:2:1;14277:64:0;;;15571:21:1;15628:2;15608:18;;;15601:30;15667:34;15647:18;;;15640:62;-1:-1:-1;;;15718:18:1;;;15711:33;15761:19;;14277:64:0;15387:399:1;14277:64:0;14369:1;14360:6;:10;14352:64;;;;-1:-1:-1;;;14352:64:0;;15993:2:1;14352:64:0;;;15975:21:1;16032:2;16012:18;;;16005:30;16071:34;16051:18;;;16044:62;-1:-1:-1;;;16122:18:1;;;16115:39;16171:19;;14352:64:0;15791:405:1;14352:64:0;14445:15;14455:4;14445:9;:15::i;:::-;14435:6;:25;;14427:86;;;;-1:-1:-1;;;14427:86:0;;16403:2:1;14427:86:0;;;16385:21:1;16442:2;16422:18;;;16415:30;16481:34;16461:18;;;16454:62;-1:-1:-1;;;16532:18:1;;;16525:47;16589:19;;14427:86:0;16201:413:1;14427:86:0;-1:-1:-1;;;;;14533:12:0;;;;;;:6;:12;;;;;;;;14532:13;:28;;;;-1:-1:-1;;;;;;14550:10:0;;;;;;:6;:10;;;;;;;;14549:11;14532:28;14524:54;;;;-1:-1:-1;;;14524:54:0;;16821:2:1;14524:54:0;;;16803:21:1;16860:2;16840:18;;;16833:30;-1:-1:-1;;;16879:18:1;;;16872:43;16932:18;;14524:54:0;16619:337:1;14524:54:0;-1:-1:-1;;;;;14611:24:0;;;;;;:18;:24;;;;;;;;14610:25;:52;;;;-1:-1:-1;;;;;;14640:22:0;;;;;;:18;:22;;;;;;;;14639:23;14610:52;:65;;;;-1:-1:-1;14667:8:0;;;;;;;14666:9;14610:65;14607:493;;;14702:4;;-1:-1:-1;;;;;14694:12:0;;;14702:4;;14694:12;14691:116;;;14744:12;;14734:6;:22;;14726:65;;;;-1:-1:-1;;;14726:65:0;;17163:2:1;14726:65:0;;;17145:21:1;17202:2;17182:18;;;17175:30;17241:32;17221:18;;;17214:60;17291:18;;14726:65:0;16961:354:1;14726:65:0;14830:4;;-1:-1:-1;;;;;14824:10:0;;;14830:4;;14824:10;14821:116;;;14872:13;;14862:6;:23;;14854:67;;;;-1:-1:-1;;;14854:67:0;;17522:2:1;14854:67:0;;;17504:21:1;17561:2;17541:18;;;17534:30;17600:33;17580:18;;;17573:61;17651:18;;14854:67:0;17320:355:1;14854:67:0;14960:4;;-1:-1:-1;;;;;14954:10:0;;;14960:4;;14954:10;14951:138;;15018:16;;15008:6;14992:13;15002:2;14992:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;14984:89;;;;-1:-1:-1;;;14984:89:0;;17882:2:1;14984:89:0;;;17864:21:1;17921:2;17901:18;;;17894:30;17960:34;17940:18;;;17933:62;-1:-1:-1;;;18011:18:1;;;18004:32;18053:19;;14984:89:0;17680:398:1;14984:89:0;15120:12;15163:18;;15135:24;15153:4;15135:9;:24::i;:::-;15196:8;;-1:-1:-1;;15135:46:0;;-1:-1:-1;15196:8:0;;;;;15195:9;:24;;;;-1:-1:-1;15208:11:0;;;;15195:24;:35;;;;;15223:7;15195:35;:51;;;;-1:-1:-1;15242:4:0;;-1:-1:-1;;;;;15234:12:0;;;15242:4;;15234:12;;15195:51;:80;;;;-1:-1:-1;;;;;;15251:24:0;;;;;;:18;:24;;;;;;;;15250:25;15195:80;:107;;;;-1:-1:-1;;;;;;15280:22:0;;;;;;:18;:22;;;;;;;;15279:23;15195:107;15192:172;;;15318:34;15333:18;;15318:14;:34::i;:::-;-1:-1:-1;;;;;15411:24:0;;;;;;:18;:24;;;;;;15376:99;;15391:4;;15397:2;;15401:6;;15411:24;;;:50;;-1:-1:-1;;;;;;15439:22:0;;;;;;:18;:22;;;;;;;;15411:50;15470:4;;15409:53;;;-1:-1:-1;;;;;15464:10:0;;;15470:4;;15464:10;15376:14;:99::i;13061:158::-;13102:7;13123:15;13140;13159:19;:17;:19::i;:::-;13122:56;;-1:-1:-1;13122:56:0;-1:-1:-1;13196:15:0;13122:56;;13196:15;:::i;:::-;13189:22;;;;13061:158;:::o;11341:407::-;11427:36;;:::i;:::-;11488:37;11500:7;11509;11518:6;11488:11;:37::i;:::-;11476:49;;11661:52;11673:9;11684:7;11693;11702:10;:8;:10::i;:::-;11661:11;:52::i;:::-;11637:20;;;11536:177;11621:14;;;11536:177;11599:20;;;11536:177;11583:14;;;11536:177;11556:25;;;11536:177;;;11341:407;;;;;:::o;1929:173::-;1985:16;2004:6;;-1:-1:-1;;;;;2021:17:0;;;-1:-1:-1;;;;;;2021:17:0;;;;;;2054:40;;2004:6;;;;;;;2054:40;;1985:16;2054:40;1974:128;1929:173;:::o;16733:1194::-;4918:8;:15;;-1:-1:-1;;4918:15:0;;;;;16920:13;;16898:19;;16876;;4918:15;;16920:13;16876:41:::1;::::0;::::1;:::i;:::-;:57;;;;:::i;:::-;16875:63;::::0;16937:1:::1;16875:63;:::i;:::-;16853:85;;16949:32;17015:11;16993:9;:19;;;16984:6;:28;;;;:::i;:::-;:42;;;;:::i;:::-;16949:77:::0;-1:-1:-1;17037:14:0::1;17054:33;16949:77:::0;17054:6;:33:::1;:::i;:::-;17037:50:::0;-1:-1:-1;17125:21:0::1;17159:24;17037:50:::0;17159:16:::1;:24::i;:::-;17196:20;17219:38;17243:14:::0;17219:21:::1;:38;:::i;:::-;17319:19:::0;;17196:61;;-1:-1:-1;17268:19:0::1;::::0;17305:33:::1;::::0;:11;:33:::1;:::i;:::-;17289:50;::::0;:12;:50:::1;:::i;:::-;17396:19:::0;;17268:71;;-1:-1:-1;17350:29:0::1;::::0;17382:33:::1;::::0;17268:71;17382:33:::1;:::i;:::-;17350:65:::0;-1:-1:-1;17431:25:0;;17428:158:::1;;17513:61;17526:24;17552:21;17513:12;:61::i;:::-;17639:19:::0;;17598:20:::1;::::0;17621:15:::1;:11:::0;17639:19:::1;17621:15;:::i;:::-;:37;;;;:::i;:::-;17598:60:::0;-1:-1:-1;17672:16:0;;17669:95:::1;;17712:16;::::0;17704:48:::1;::::0;-1:-1:-1;;;;;17712:16:0;;::::1;::::0;17704:48;::::1;;;::::0;17739:12;;17712:16:::1;17704:48:::0;17712:16;17704:48;17739:12;17712:16;17704:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17669:95;17819:13:::0;;17784:14:::1;::::0;17801:15:::1;:11:::0;17815:1:::1;17801:15;:::i;:::-;:31;;;;:::i;:::-;17784:48:::0;-1:-1:-1;17846:10:0;;17843:77:::1;;17880:10;::::0;17872:36:::1;::::0;-1:-1:-1;;;;;17880:10:0;;::::1;::::0;17872:36;::::1;;;::::0;17901:6;;17880:10:::1;17872:36:::0;17880:10;17872:36;17901:6;17880:10;17872:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17843:77;-1:-1:-1::0;;4956:8:0;:16;;-1:-1:-1;;4956:16:0;;;-1:-1:-1;;;;;;;;16733:1194:0:o;15566:1159::-;15688:28;15719:36;15730:7;15739;15748:6;15719:10;:36::i;:::-;-1:-1:-1;;;;;15772:19:0;;;;;;:11;:19;;;;;;15688:67;;-1:-1:-1;15772:19:0;;15768:115;;;-1:-1:-1;;;;;15848:15:0;;;;;;:7;:15;;;;;;:23;;15864:7;;15848:23;:::i;:::-;-1:-1:-1;;;;;15830:15:0;;;;;;:7;:15;;;;;:41;15768:115;-1:-1:-1;;;;;15897:22:0;;;;;;:11;:22;;;;;;;;15893:130;;;15994:17;;;;-1:-1:-1;;;;;15975:18:0;;;;;;:7;:18;;;;;;:36;;15994:17;15975:36;:::i;:::-;-1:-1:-1;;;;;15954:18:0;;;;;;:7;:18;;;;;:57;15893:130;16069:9;;-1:-1:-1;;;;;16053:15:0;;16069:9;16053:15;;;:7;:15;;;;;;:25;;16069:9;16053:25;:::i;:::-;-1:-1:-1;;;;;16035:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;16129:17;;;16110:18;;;;;;;;;;:36;;16129:17;16110:36;:::i;:::-;-1:-1:-1;;;;;16089:18:0;;;;;;:7;:18;;;;;;;:57;;;;16170:6;;;:10;;;:24;;;16193:1;16184;:6;;;:10;16170:24;16167:56;;;16196:27;16208:1;:6;;;16216:1;:6;;;16196:11;:27::i;:::-;16252:1;16237;:12;;;:16;:36;;;;16272:1;16257;:12;;;:16;16237:36;16234:109;;;16290:41;16305:1;:12;;;16318:1;:12;;;16290:14;:41::i;:::-;16371:1;16356;:12;;;:16;:36;;;;16391:1;16376;:12;;;:16;16356:36;16353:109;;;16408:42;16423:1;:12;;;16437:1;:12;;;16408:14;:42::i;:::-;16484:1;16475;:6;;;:10;:24;;;;16498:1;16489;:6;;;:10;16475:24;16472:79;;;16515:24;16524:1;:6;;;16532:1;:6;;;16515:8;:24::i;:::-;16593:9;-1:-1:-1;;;;;16576:46:0;16585:6;-1:-1:-1;;;;;16576:46:0;;16604:1;:17;;;16576:46;;;;1549:25:1;;1537:2;1522:18;;1403:177;16576:46:0;;;;;;;;16663:4;-1:-1:-1;;;;;16638:69:0;16647:6;-1:-1:-1;;;;;16638:69:0;;16694:1;:12;;;16685:1;:6;;;16670:1;:12;;;:21;;;;:::i;:::-;:36;;;;:::i;:::-;16638:69;;1549:25:1;;;1537:2;1522:18;16638:69:0;;;;;;;15677:1048;15566:1159;;;;;:::o;13227:540::-;13324:7;;13360;;13277;;;;;13378:279;13402:9;:16;13398:20;;13378:279;;;13468:7;13444;:21;13452:9;13462:1;13452:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13452:12:0;13444:21;;;;;;;;;;;;;:31;;:66;;;13503:7;13479;:21;13487:9;13497:1;13487:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13487:12:0;13479:21;;;;;;;;;;;;;:31;13444:66;13440:97;;;13520:7;;13529;;13512:25;;;;;;;13227:540;;:::o;13440:97::-;13570:7;:21;13578:9;13588:1;13578:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13578:12:0;13570:21;;;;;;;;;;;;;13562:29;;:7;:29;:::i;:::-;13552:39;;13624:7;:21;13632:9;13642:1;13632:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13632:12:0;13624:21;;;;;;;;;;;;;13616:29;;:7;:29;:::i;:::-;13606:39;-1:-1:-1;13420:3:0;;;;:::i;:::-;;;;13378:279;;;;13689:7;;13681;;:15;;;;:::i;:::-;13671:7;:25;13667:56;;;13706:7;;13715;;13698:25;;;;;;13227:540;;:::o;13667:56::-;13742:7;;13751;;-1:-1:-1;13227:540:0;-1:-1:-1;13227:540:0:o;11756:608::-;11843:28;;:::i;:::-;11890:7;11886:86;;11912:17;;;:27;;;11952:8;;11886:86;11982:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11982:17:0;12013:6;12010:55;;;-1:-1:-1;12021:16:0;;;;;;;;12028:9;12021:16;;;;;;;;;;;;;;;;;;;;;;;;12010:55;;;-1:-1:-1;12053:12:0;;;;;;;;12060:5;12053:12;;;;;;;;;;;;;;;;;;;;;;;;12010:55;12103:8;;12112:3;;12095:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12086:6;;;:29;12149:14;;;;12164:3;;12141:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12126:12;;;:41;12201:14;;;;12216:3;;12193:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;12178:12;;;:41;12247:8;;;;12256:3;;12239:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;12230:6;;;:29;;;12325:12;;;;12305;;;;12298:6;;;;12325:12;;12230:29;12290:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:34;;;;:::i;:::-;:47;;;;:::i;:::-;12270:17;;;:67;-1:-1:-1;11756:608:0;;;;;:::o;12372:681::-;12497:15;;;;;;12627:19;12635:11;12627:7;:19;:::i;:::-;12617:29;;12663:7;12659:71;;-1:-1:-1;12692:7:0;;-1:-1:-1;12710:1:0;;-1:-1:-1;12710:1:0;;-1:-1:-1;12710:1:0;;-1:-1:-1;12710:1:0;12685:33;;12659:71;12756:11;12749:1;:6;;;:18;;;;:::i;:::-;12742:25;;12804:11;12791:1;:12;;;:24;;;;:::i;:::-;12778:37;;12840:11;12833:1;:6;;;:18;;;;:::i;:::-;12826:25;;12888:11;12875:1;:12;;;:24;;;;:::i;:::-;12862:37;-1:-1:-1;12862:37:0;12953:4;12942:10;12929:12;12937:4;12929:7;:12;:::i;:::-;:23;;;;:::i;:::-;:28;;;;:::i;:::-;:39;;;;:::i;:::-;12910:58;;12372:681;;;;;;;;;;;;:::o;18441:562::-;18591:16;;;18605:1;18591:16;;;;;;;;18567:21;;18591:16;;;;;;;;;;-1:-1:-1;18591:16:0;18567:40;;18636:4;18618;18623:1;18618:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18618:23:0;;;-1:-1:-1;;;;;18618:23:0;;;;;18662:6;;;;;;;;;-1:-1:-1;;;;;18662:6:0;-1:-1:-1;;;;;18662:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18652:4;18657:1;18652:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18652:23:0;;;:7;;;;;;;;;:23;18720:6;;18688:53;;18705:4;;18720:6;;;;18729:11;18688:8;:53::i;:::-;18780:6;;:215;;-1:-1:-1;;;18780:215:0;;:6;;;;-1:-1:-1;;;;;18780:6:0;;:57;;:215;;18852:11;;18878:1;;18922:4;;18949;;18969:15;;18780:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18496:507;18441:562;:::o;17935:498::-;18115:6;;18083:53;;18100:4;;18115:6;;;-1:-1:-1;;;;;18115:6:0;18124:11;18083:8;:53::i;:::-;18179:6;;:246;;-1:-1:-1;;;18179:246:0;;18242:4;18179:246;;;19665:34:1;19715:18;;;19708:34;;;18288:1:0;19758:18:1;;;19751:34;;;19801:18;;;19794:34;;;19844:19;;;19837:44;18399:15:0;19897:19:1;;;19890:35;18179:6:0;;;;-1:-1:-1;;;;;18179:6:0;;:22;;18209:9;;19599:19:1;;18179:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17935:498;;:::o;10369:123::-;10447:4;10437:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;10462:11:0;:22;;10480:4;;10462:11;:15;;:22;;10480:4;;10462:22;:::i;:::-;;;;-1:-1:-1;;;;10369:123:0:o;10500:284::-;10607:10;10583:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10653:4:0;10633:26;;;;:11;:26;;;;;;;;10630:101;;;10701:4;10685:22;;;;:7;:22;;;;;:34;;10709:10;;10685:22;:34;;10709:10;;10685:34;:::i;:::-;;;;-1:-1:-1;;10630:101:0;10757:4;10741:22;;;;:7;:22;;;;;:35;;10766:10;;10741:22;:35;;10766:10;;10741:35;:::i;10792:284::-;10899:10;10875:11;:21;;;:34;;;;;;;:::i;11088:245::-;11172:4;11153:11;:15;;;:23;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:247::-;1644:6;1697:2;1685:9;1676:7;1672:23;1668:32;1665:52;;;1713:1;1710;1703:12;1665:52;1752:9;1739:23;1771:31;1796:5;1771:31;:::i;1837:180::-;1896:6;1949:2;1937:9;1928:7;1924:23;1920:32;1917:52;;;1965:1;1962;1955:12;1917:52;-1:-1:-1;1988:23:1;;1837:180;-1:-1:-1;1837:180:1:o;2022:456::-;2099:6;2107;2115;2168:2;2156:9;2147:7;2143:23;2139:32;2136:52;;;2184:1;2181;2174:12;2136:52;2223:9;2210:23;2242:31;2267:5;2242:31;:::i;:::-;2292:5;-1:-1:-1;2349:2:1;2334:18;;2321:32;2362:33;2321:32;2362:33;:::i;:::-;2022:456;;2414:7;;-1:-1:-1;;;2468:2:1;2453:18;;;;2440:32;;2022:456::o;2880:118::-;2966:5;2959:13;2952:21;2945:5;2942:32;2932:60;;2988:1;2985;2978:12;3003:128;3068:20;;3097:28;3068:20;3097:28;:::i;3136:444::-;3207:6;3215;3223;3276:2;3264:9;3255:7;3251:23;3247:32;3244:52;;;3292:1;3289;3282:12;3244:52;3328:9;3315:23;3305:33;;3388:2;3377:9;3373:18;3360:32;3401:28;3423:5;3401:28;:::i;:::-;3448:5;-1:-1:-1;3505:2:1;3490:18;;3477:32;3518:30;3477:32;3518:30;:::i;:::-;3567:7;3557:17;;;3136:444;;;;;:::o;3585:388::-;3653:6;3661;3714:2;3702:9;3693:7;3689:23;3685:32;3682:52;;;3730:1;3727;3720:12;3682:52;3769:9;3756:23;3788:31;3813:5;3788:31;:::i;:::-;3838:5;-1:-1:-1;3895:2:1;3880:18;;3867:32;3908:33;3867:32;3908:33;:::i;:::-;3960:7;3950:17;;;3585:388;;;;;:::o;4374:241::-;4430:6;4483:2;4471:9;4462:7;4458:23;4454:32;4451:52;;;4499:1;4496;4489:12;4451:52;4538:9;4525:23;4557:28;4579:5;4557:28;:::i;4620:385::-;4706:6;4714;4722;4730;4783:3;4771:9;4762:7;4758:23;4754:33;4751:53;;;4800:1;4797;4790:12;4751:53;-1:-1:-1;;4823:23:1;;;4893:2;4878:18;;4865:32;;-1:-1:-1;4944:2:1;4929:18;;4916:32;;4995:2;4980:18;4967:32;;-1:-1:-1;4620:385:1;-1:-1:-1;4620:385:1:o;5010:127::-;5071:10;5066:3;5062:20;5059:1;5052:31;5102:4;5099:1;5092:15;5126:4;5123:1;5116:15;5142:1191;5232:6;5240;5293:2;5281:9;5272:7;5268:23;5264:32;5261:52;;;5309:1;5306;5299:12;5261:52;5349:9;5336:23;5378:18;5419:2;5411:6;5408:14;5405:34;;;5435:1;5432;5425:12;5405:34;5473:6;5462:9;5458:22;5448:32;;5518:7;5511:4;5507:2;5503:13;5499:27;5489:55;;5540:1;5537;5530:12;5489:55;5576:2;5563:16;5598:4;5621:2;5617;5614:10;5611:36;;;5627:18;;:::i;:::-;5673:2;5670:1;5666:10;5705:2;5699:9;5768:2;5764:7;5759:2;5755;5751:11;5747:25;5739:6;5735:38;5823:6;5811:10;5808:22;5803:2;5791:10;5788:18;5785:46;5782:72;;;5834:18;;:::i;:::-;5870:2;5863:22;5920:18;;;5954:15;;;;-1:-1:-1;5996:11:1;;;5992:20;;;6024:19;;;6021:39;;;6056:1;6053;6046:12;6021:39;6080:11;;;;6100:148;6116:6;6111:3;6108:15;6100:148;;;6182:23;6201:3;6182:23;:::i;:::-;6170:36;;6133:12;;;;6226;;;;6100:148;;;6267:6;-1:-1:-1;6292:35:1;;-1:-1:-1;6308:18:1;;;6292:35;:::i;:::-;6282:45;;;;;;5142:1191;;;;;:::o;6338:382::-;6403:6;6411;6464:2;6452:9;6443:7;6439:23;6435:32;6432:52;;;6480:1;6477;6470:12;6432:52;6519:9;6506:23;6538:31;6563:5;6538:31;:::i;:::-;6588:5;-1:-1:-1;6645:2:1;6630:18;;6617:32;6658:30;6617:32;6658:30;:::i;6948:356::-;7150:2;7132:21;;;7169:18;;;7162:30;7228:34;7223:2;7208:18;;7201:62;7295:2;7280:18;;6948:356::o;7309:127::-;7370:10;7365:3;7361:20;7358:1;7351:31;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7441:422;7530:1;7573:5;7530:1;7587:270;7608:7;7598:8;7595:21;7587:270;;;7667:4;7663:1;7659:6;7655:17;7649:4;7646:27;7643:53;;;7676:18;;:::i;:::-;7726:7;7716:8;7712:22;7709:55;;;7746:16;;;;7709:55;7825:22;;;;7785:15;;;;7587:270;;;7591:3;7441:422;;;;;:::o;7868:806::-;7917:5;7947:8;7937:80;;-1:-1:-1;7988:1:1;8002:5;;7937:80;8036:4;8026:76;;-1:-1:-1;8073:1:1;8087:5;;8026:76;8118:4;8136:1;8131:59;;;;8204:1;8199:130;;;;8111:218;;8131:59;8161:1;8152:10;;8175:5;;;8199:130;8236:3;8226:8;8223:17;8220:43;;;8243:18;;:::i;:::-;-1:-1:-1;;8299:1:1;8285:16;;8314:5;;8111:218;;8413:2;8403:8;8400:16;8394:3;8388:4;8385:13;8381:36;8375:2;8365:8;8362:16;8357:2;8351:4;8348:12;8344:35;8341:77;8338:159;;;-1:-1:-1;8450:19:1;;;8482:5;;8338:159;8529:34;8554:8;8548:4;8529:34;:::i;:::-;8599:6;8595:1;8591:6;8587:19;8578:7;8575:32;8572:58;;;8610:18;;:::i;:::-;8648:20;;7868:806;-1:-1:-1;;;7868:806:1:o;8679:140::-;8737:5;8766:47;8807:4;8797:8;8793:19;8787:4;8766:47;:::i;8824:168::-;8864:7;8930:1;8926;8922:6;8918:14;8915:1;8912:21;8907:1;8900:9;8893:17;8889:45;8886:71;;;8937:18;;:::i;:::-;-1:-1:-1;8977:9:1;;8824:168::o;9406:125::-;9446:4;9474:1;9471;9468:8;9465:34;;;9479:18;;:::i;:::-;-1:-1:-1;9516:9:1;;9406:125::o;9947:217::-;9987:1;10013;10003:132;;10057:10;10052:3;10048:20;10045:1;10038:31;10092:4;10089:1;10082:15;10120:4;10117:1;10110:15;10003:132;-1:-1:-1;10149:9:1;;9947:217::o;10521:127::-;10582:10;10577:3;10573:20;10570:1;10563:31;10613:4;10610:1;10603:15;10637:4;10634:1;10627:15;10653:127;10714:10;10709:3;10705:20;10702:1;10695:31;10745:4;10742:1;10735:15;10769:4;10766:1;10759:15;10785:135;10824:3;-1:-1:-1;;10845:17:1;;10842:43;;;10865:18;;:::i;:::-;-1:-1:-1;10912:1:1;10901:13;;10785:135::o;10925:128::-;10965:3;10996:1;10992:6;10989:1;10986:13;10983:39;;;11002:18;;:::i;:::-;-1:-1:-1;11038:9:1;;10925:128::o;12408:245::-;12475:6;12528:2;12516:9;12507:7;12503:23;12499:32;12496:52;;;12544:1;12541;12534:12;12496:52;12576:9;12570:16;12595:28;12617:5;12595:28;:::i;18083:251::-;18153:6;18206:2;18194:9;18185:7;18181:23;18177:32;18174:52;;;18222:1;18219;18212:12;18174:52;18254:9;18248:16;18273:31;18298:5;18273:31;:::i;18339:980::-;18601:4;18649:3;18638:9;18634:19;18680:6;18669:9;18662:25;18706:2;18744:6;18739:2;18728:9;18724:18;18717:34;18787:3;18782:2;18771:9;18767:18;18760:31;18811:6;18846;18840:13;18877:6;18869;18862:22;18915:3;18904:9;18900:19;18893:26;;18954:2;18946:6;18942:15;18928:29;;18975:1;18985:195;18999:6;18996:1;18993:13;18985:195;;;19064:13;;-1:-1:-1;;;;;19060:39:1;19048:52;;19155:15;;;;19120:12;;;;19096:1;19014:9;18985:195;;;-1:-1:-1;;;;;;;19236:32:1;;;;19231:2;19216:18;;19209:60;-1:-1:-1;;;19300:3:1;19285:19;19278:35;19197:3;18339:980;-1:-1:-1;;;18339:980:1:o;19936:306::-;20024:6;20032;20040;20093:2;20081:9;20072:7;20068:23;20064:32;20061:52;;;20109:1;20106;20099:12;20061:52;20138:9;20132:16;20122:26;;20188:2;20177:9;20173:18;20167:25;20157:35;;20232:2;20221:9;20217:18;20211:25;20201:35;;19936:306;;;;;:::o
Swarm Source
ipfs://9b2a18d7fc94dfb128468879008389e6e49fe5cda4a27931a8e2034cd96afd5f
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.