ERC-20
Overview
Max Total Supply
100,000,000 Chi
Holders
75
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ChiChi
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-29 */ // SPDX-License-Identifier: UNLICENSE pragma solidity ^0.8.7; 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, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } library Address { function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract ChiChi is Context, IERC20, Ownable { using Address for address payable; 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) public allowedTransfer; mapping(address => bool) private _isBlacklisted; address[] private _excluded; bool public tradingEnabled; bool public swapEnabled; bool private swapping; //Anti Dump mapping(address => uint256) private _lastSell; bool public coolDownEnabled = true; uint256 public coolDownTime = 60 seconds; IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1e8 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = 100_000_000 * 10**9; uint256 public maxBuyLimit = 1_000_000 * 10**9; uint256 public maxSellLimit = 1_000_000 * 10**9; uint256 public maxWalletLimit = 1_000_000 * 10**9; uint256 public genesis_block; uint256 private deadline; address public deadWallet = 0x000000000000000000000000000000000000dEaD; address public marketingWallet = 0x1D2e1E49F86c2Fe7215f3b77fF54f7Bd6e027a79; address public operationWallet = 0xCe31788eC9c35b2Bb29dd7150ab4dDC8AB2b00DD; address private devWallet = 0xf5c9d3f40840f76b37Ec8aA320F9370294ce84CA; string private constant _name = "Chi Chi"; string private constant _symbol = "Chi"; struct Taxes { uint256 rfi; uint256 marketing; uint256 liquidity; uint256 operation; uint256 dev; } Taxes private launchtax; Taxes public taxes = Taxes(1, 5, 2, 1, 1); Taxes public sellTaxes = Taxes(1, 5, 2, 1, 1); struct TotFeesPaidStruct { uint256 rfi; uint256 marketing; uint256 liquidity; uint256 operation; uint256 dev; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues { uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 rLiquidity; uint256 rOperation; uint256 rDev; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; uint256 tLiquidity; uint256 tOperation; uint256 tDev; } event FeesChanged(); event UpdatedRouter(address oldRouter, address newRouter); modifier lockTheSwap() { swapping = true; _; swapping = false; } constructor(address routerAddress) { IRouter _router = IRouter(routerAddress); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludeFromReward(pair); excludeFromReward(deadWallet); _rOwned[owner()] = _rTotal; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromFee[operationWallet] = true; _isExcludedFromFee[devWallet] = true; _isExcludedFromFee[deadWallet] = true; _isExcludedFromFee[0xD152f549545093347A162Dce210e7293f1452150] = true; _isExcludedFromFee[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; _isExcludedFromFee[0x33d4cC8716Beb13F814F538Ad3b2de3b036f5e2A] = true; allowedTransfer[address(this)] = true; allowedTransfer[owner()] = true; allowedTransfer[pair] = true; allowedTransfer[marketingWallet] = true; allowedTransfer[operationWallet] = true; allowedTransfer[devWallet] = true; allowedTransfer[0xD152f549545093347A162Dce210e7293f1452150] = true; allowedTransfer[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; allowedTransfer[0x33d4cC8716Beb13F814F538Ad3b2de3b036f5e2A] = true; emit Transfer(address(0), owner(), _tTotal); } //std ERC20: 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; } //override ERC20: 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 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 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 returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns (uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, true, false, false); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true, false, false); return s.rTransferAmount; } } function setTradingStatus( bool state, uint256 _deadline, uint256 rfi, uint256 marketing, uint256 liquidity, uint256 operation, uint256 dev ) external onlyOwner { tradingEnabled = state; swapEnabled = state; deadline = _deadline; launchtax = Taxes(rfi, marketing, liquidity, operation, dev); if (state == true) genesis_block = block.number; } function tokenFromReflection(uint256 rAmount) public view returns (uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount / currentRate; } //@dev kept original RFI naming -> "reward" as in reflection 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 _liquidity, uint256 _operation, uint256 _dev ) public onlyOwner { taxes = Taxes(_rfi, _marketing, _liquidity, _operation, _dev); emit FeesChanged(); } function setSellTaxes( uint256 _rfi, uint256 _marketing, uint256 _liquidity, uint256 _operation, uint256 _dev ) public onlyOwner { sellTaxes = Taxes(_rfi, _marketing, _liquidity, _operation, _dev); 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 _takeOperation(uint256 rOperation, uint256 tOperation) private { totFeesPaid.operation += tOperation; if (_isExcluded[address(this)]) { _tOwned[address(this)] += tOperation; } _rOwned[address(this)] += rOperation; } 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, bool useLaunchTax ) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee, isSell, useLaunchTax); ( to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rLiquidity ) = _getRValues1(to_return, tAmount, takeFee, _getRate()); (to_return.rOperation, to_return.rDev) = _getRValues2( to_return, takeFee, _getRate() ); return to_return; } function _getTValues( uint256 tAmount, bool takeFee, bool isSell, bool useLaunchTax ) private view returns (valuesFromGetValues memory s) { if (!takeFee) { s.tTransferAmount = tAmount; return s; } Taxes memory temp; if (isSell && !useLaunchTax) temp = sellTaxes; else if (!useLaunchTax) temp = taxes; else temp = launchtax; s.tRfi = (tAmount * temp.rfi) / 100; s.tMarketing = (tAmount * temp.marketing) / 100; s.tLiquidity = (tAmount * temp.liquidity) / 100; s.tOperation = (tAmount * temp.operation) / 100; s.tDev = (tAmount * temp.dev) / 100; s.tTransferAmount = tAmount - s.tRfi - s.tMarketing - s.tLiquidity - s.tOperation - s.tDev; return s; } function _getRValues1( valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate ) private pure returns ( uint256 rAmount, uint256 rTransferAmount, uint256 rRfi, uint256 rMarketing, uint256 rLiquidity ) { rAmount = tAmount * currentRate; if (!takeFee) { return (rAmount, rAmount, 0, 0, 0); } rRfi = s.tRfi * currentRate; rMarketing = s.tMarketing * currentRate; rLiquidity = s.tLiquidity * currentRate; uint256 rOperation = s.tOperation * currentRate; uint256 rDev = s.tDev * currentRate; rTransferAmount = rAmount - rRfi - rMarketing - rLiquidity - rOperation - rDev; return (rAmount, rTransferAmount, rRfi, rMarketing, rLiquidity); } function _getRValues2( valuesFromGetValues memory s, bool takeFee, uint256 currentRate ) private pure returns ( uint256 rOperation, uint256 rDev ) { if (!takeFee) { return (0, 0); } rOperation = s.tOperation * currentRate; rDev = s.tDev * currentRate; return (rOperation, rDev); } 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(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot"); if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(tradingEnabled, "Trading not active"); } if (from == pair && !_isExcludedFromFee[to] && !swapping) { require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit"); require( balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } if ( from != pair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] && !swapping ) { require(amount <= maxSellLimit, "You are exceeding maxSellLimit"); if (to != pair) { require( balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } if (coolDownEnabled) { uint256 timePassed = block.timestamp - _lastSell[from]; require(timePassed >= coolDownTime, "Cooldown enabled"); _lastSell[from] = block.timestamp; } } bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if ( !swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { if (to == pair) swapAndLiquify(swapTokensAtAmount, sellTaxes); else swapAndLiquify(swapTokensAtAmount, taxes); } bool takeFee = true; bool isSell = false; if (swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false; if (to == pair) isSell = true; _tokenTransfer(from, to, amount, takeFee, isSell); } //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 { bool useLaunchTax = !_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && block.number < genesis_block + deadline; valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell, useLaunchTax); 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); emit Transfer( sender, address(this), s.tLiquidity + s.tMarketing + s.tOperation + s.tDev ); } if (s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing); if (s.rOperation > 0 || s.tOperation > 0) _takeOperation(s.rOperation, s.tOperation); if (s.rDev > 0 || s.tDev > 0) _takeDev(s.rDev, s.tDev); emit Transfer(sender, recipient, s.tTransferAmount); } function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap { uint256 denominator = (temp.liquidity + temp.marketing + temp.operation + temp.dev) * 2; uint256 tokensToAddLiquidityWith = (contractBalance * temp.liquidity) / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - temp.liquidity); uint256 ethToAddLiquidityWith = unitBalance * temp.liquidity; if (ethToAddLiquidityWith > 0) { // Add liquidity to uniswap addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * temp.marketing; if (marketingAmt > 0) { payable(marketingWallet).sendValue(marketingAmt); } uint256 operationAmt = unitBalance * 2 * temp.operation; if (operationAmt > 0) { payable(operationWallet).sendValue(operationAmt); } uint256 devAmt = unitBalance * 2 * temp.dev; if (devAmt > 0) { payable(devWallet).sendValue(devAmt); } } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{ value: ethAmount }( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function swapTokensForETH(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = 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 bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = state; } } function updateMarketingWallet(address newWallet) external onlyOwner { marketingWallet = newWallet; } function updateOperationWallet(address newWallet) external onlyOwner { operationWallet = newWallet; } function updateDevWallet(address newWallet) external onlyOwner { devWallet = newWallet; } function updateCooldown(bool state, uint256 time) external onlyOwner { coolDownTime = time * 1 seconds; coolDownEnabled = state; } function updateSwapTokensAtAmount(uint256 amount) external onlyOwner { swapTokensAtAmount = amount * 10**_decimals; } function updateSwapEnabled(bool _enabled) external onlyOwner { swapEnabled = _enabled; } function updateIsBlacklisted(address account, bool state) external onlyOwner { _isBlacklisted[account] = state; } function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isBlacklisted[accounts[i]] = state; } } function updateAllowedTransfer(address account, bool state) external onlyOwner { allowedTransfer[account] = state; } function bulkupdateAllowedTransfer(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { allowedTransfer[accounts[i]] = state; } } function updateMaxBuyTxLimit(uint256 maxBuy, uint256 maxSell) external onlyOwner { maxBuyLimit = maxBuy * 10**decimals(); maxSellLimit = maxSell * 10**decimals(); } function updateMaxWalletlimit(uint256 amount) external onlyOwner { maxWalletLimit = amount * 10**decimals(); } function updateRouterAndPair(address newRouter, address newPair) external onlyOwner { router = IRouter(newRouter); pair = newPair; } //Use this in case ETH are sent to the contract by mistake function rescueETH(uint256 weiAmount) external onlyOwner { require(address(this).balance >= weiAmount, "insufficient ETH balance"); payable(msg.sender).transfer(weiAmount); } function rescueAnyBEP20Tokens( address _tokenAddr, address _to, uint256 _amount ) public onlyOwner { IERC20(_tokenAddr).transfer(_to, _amount); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","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":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkupdateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"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":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"operationWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"}],"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":"rescueETH","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":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"operation","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_operation","type":"uint256"},{"internalType":"uint256","name":"_dev","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":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_operation","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"operation","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"name":"setTradingStatus","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":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"operation","type":"uint256"},{"internalType":"uint256","name":"dev","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":"liquidity","type":"uint256"},{"internalType":"uint256","name":"operation","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"updateMaxBuyTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateOperationWallet","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
6080604052600b805460ff19166001179055603c600c55620000246009600a62000b3e565b62000034906305f5e10062000bff565b600f819055620000479060001962000c59565b620000559060001962000c21565b60105567016345785d8a000060115566038d7ea4c6800060128190556013819055601455601780546001600160a01b031990811661dead17909155601880548216731d2e1e49f86c2fe7215f3b77ff54f7bd6e027a7917905560198054821673ce31788ec9c35b2bb29dd7150ab4ddc8ab2b00dd179055601a805490911673f5c9d3f40840f76b37ec8aa320f9370294ce84ca1790556040805160a08082018352600180835260056020808501829052600285870181905260608087018590526080968701859052848355602184905560228290556023859055602485905587519586018852848652918501839052958401869052830182905291909201829052602582905560265560279190915560288190556029553480156200017957600080fd5b5060405162004688380380620046888339810160408190526200019c9162000ab3565b620001a73362000689565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e857600080fd5b505afa158015620001fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000223919062000ab3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026c57600080fd5b505afa15801562000281573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a7919062000ab3565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002f057600080fd5b505af115801562000305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032b919062000ab3565b600d80546001600160a01b038086166001600160a01b031992831617909255600e805492841692909116821790559091506200036790620006d9565b6017546200037e906001600160a01b0316620006d9565b60105460016000620003986000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff1916600190811790915591620003e76000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556018548216815260048452828120805486166001908117909155601954831682528382208054871682179055601a54831682528382208054871682179055601754909216815282812080548616831790557f2fc42e7588b4edb66ce07fb3609ffa59834fccc36ebe8aae6c36eab91742a4d080548616831790557f0f9a3868f1631ef1e24492db718b4e768795a0dc96cdfcac3486af5b876fb31e80548616831790557f893a60c82ffc039a4e70dd9928e5abaadc75b5334d4a4681f86e581ad9a427488054861683179055308152600693849052918220805490941681179093556200050a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600e54821681526006909352818320805485166001908117909155601854821684528284208054861682179055601954821684528284208054861682179055601a54909116835290822080548416821790557f674b74cc59dfd2d5f1c14ef2fec6dc3b72472a1377ab553121fb7519d31d16b780548416821790557fab9d0a02af394b8961be3a9588d91fbbf70984385fd8d3031385f593b62a4bf980548416821790557333d4cc8716beb13f814f538ad3b2de3b036f5e2a9091527f62cfe9f2c815ce30bfa072f04603dc8f52731cf884f81ec2b9f6b21d86279fa58054909216179055620006306000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516200067891815260200190565b60405180910390a350505062000cb2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620007395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620007a45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000730565b6001600160a01b0381166000908152600160205260409020541562000801576001600160a01b038116600090815260016020526040902054620007e79062000867565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000601054821115620008d05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000730565b6000620008dc620008f1565b9050620008ea818462000ade565b9392505050565b60008080620008ff62000917565b909250905062000910818362000ade565b9250505090565b601054600f546000918291825b60085481101562000a7f578260016000600884815481106200094a576200094a62000c9c565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620009b9575081600260006008848154811062000992576200099262000c9c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15620009d057601054600f54945094505050509091565b6001600060088381548110620009ea57620009ea62000c9c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000a1b908462000c21565b9250600260006008838154811062000a375762000a3762000c9c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000a68908362000c21565b91508062000a768162000c3b565b91505062000924565b50600f5460105462000a92919062000ade565b82101562000aaa57601054600f549350935050509091565b90939092509050565b60006020828403121562000ac657600080fd5b81516001600160a01b0381168114620008ea57600080fd5b60008262000af05762000af062000c86565b500490565b600181815b8085111562000b3657816000190482111562000b1a5762000b1a62000c70565b8085161562000b2857918102915b93841c939080029062000afa565b509250929050565b6000620008ea60ff84168360008262000b5a5750600162000bf9565b8162000b695750600062000bf9565b816001811462000b82576002811462000b8d5762000bad565b600191505062000bf9565b60ff84111562000ba15762000ba162000c70565b50506001821b62000bf9565b5060208310610133831016604e8410600b841016171562000bd2575081810a62000bf9565b62000bde838362000af5565b806000190482111562000bf55762000bf562000c70565b0290505b92915050565b600081600019048311821515161562000c1c5762000c1c62000c70565b500290565b60008282101562000c365762000c3662000c70565b500390565b600060001982141562000c525762000c5262000c70565b5060010190565b60008262000c6b5762000c6b62000c86565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6139c68062000cc26000396000f3fe6080604052600436106103905760003560e01c8063728f8eea116101dc578063c791fc5411610102578063e3bbe444116100a0578063f2fde38b1161006f578063f2fde38b14610b17578063f66895a314610b37578063f6bc962414610b5e578063f887ea4014610b7e57600080fd5b8063e3bbe44414610a9d578063e517f2b914610abd578063ea2f0b3714610add578063ee36e35914610afd57600080fd5b8063d8672e51116100dc578063d8672e5114610a01578063dd62ed3e14610a21578063e042ad5814610a67578063e2f4560514610a8757600080fd5b8063c791fc54146109ab578063d257b34f146109cb578063d2ce0db2146109eb57600080fd5b806395d89b411161017a578063a8aa1b3111610149578063a8aa1b311461092b578063a9059cbb1461094b578063aacebbe31461096b578063b5c571451461098b57600080fd5b806395d89b41146108985780639ba5e4d5146108c45780639e252f00146108eb578063a457c2d71461090b57600080fd5b806388f82020116101b657806388f82020146108015780638da5cb5b1461083a5780638e2839ff14610858578063924de9b71461087857600080fd5b8063728f8eea1461075a57806375f0a874146107a957806385141a77146107e157600080fd5b806347c23092116102c15780635fcefa421161025f5780636aa5b37f1161022e5780636aa5b37f146106f05780636ddd17131461070657806370a0823114610725578063715018a61461074557600080fd5b80635fcefa421461067457806362695eae14610694578063652e2f04146106c457806366a88d96146106da57600080fd5b806352390c021161029b57806352390c02146105db5780635342acb4146105fb5780635b24ea5e146106345780635e19678d1461065457600080fd5b806347c23092146105815780634ada218b146105a15780634fdaf486146105bb57600080fd5b80632d8381191161032e5780633950935111610308578063395093511461050157806340b28c2f14610521578063437823ec146105415780634549b0391461056157600080fd5b80632d838119146104a5578063313ce567146104c55780633685d419146104e157600080fd5b806318160ddd1161036a57806318160ddd146104305780631816467f1461044f57806323b872dd1461046f578063274a533c1461048f57600080fd5b806306fdde031461039c578063095ea7b3146103de57806313f97a8e1461040e57600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506040805180820190915260078152664368692043686960c81b60208201525b6040516103d591906136a1565b60405180910390f35b3480156103ea57600080fd5b506103fe6103f9366004613421565b610b9e565b60405190151581526020016103d5565b34801561041a57600080fd5b5061042e61042936600461344d565b610bb5565b005b34801561043c57600080fd5b50600f545b6040519081526020016103d5565b34801561045b57600080fd5b5061042e61046a36600461333f565b610c54565b34801561047b57600080fd5b506103fe61048a3660046133b2565b610ca0565b34801561049b57600080fd5b5061044160155481565b3480156104b157600080fd5b506104416104c03660046135d8565b610d51565b3480156104d157600080fd5b50604051600981526020016103d5565b3480156104ed57600080fd5b5061042e6104fc36600461333f565b610dd5565b34801561050d57600080fd5b506103fe61051c366004613421565b610f8c565b34801561052d57600080fd5b5061042e61053c366004613379565b610fc3565b34801561054d57600080fd5b5061042e61055c36600461333f565b61101b565b34801561056d57600080fd5b5061044161057c3660046135f1565b611069565b34801561058d57600080fd5b5061042e61059c3660046133b2565b6110f9565b3480156105ad57600080fd5b506009546103fe9060ff1681565b3480156105c757600080fd5b5061042e6105d636600461344d565b6111ab565b3480156105e757600080fd5b5061042e6105f636600461333f565b61123c565b34801561060757600080fd5b506103fe61061636600461333f565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561064057600080fd5b5061042e61064f3660046133f3565b61138f565b34801561066057600080fd5b5061042e61066f366004613583565b6113e4565b34801561068057600080fd5b5061042e61068f366004613666565b611489565b3480156106a057600080fd5b506103fe6106af36600461333f565b60066020526000908152604090205460ff1681565b3480156106d057600080fd5b5061044160135481565b3480156106e657600080fd5b5061044160145481565b3480156106fc57600080fd5b5061044160125481565b34801561071257600080fd5b506009546103fe90610100900460ff1681565b34801561073157600080fd5b5061044161074036600461333f565b611522565b34801561075157600080fd5b5061042e611581565b34801561076657600080fd5b50602054602154602254602354602454610781949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103d5565b3480156107b557600080fd5b506018546107c9906001600160a01b031681565b6040516001600160a01b0390911681526020016103d5565b3480156107ed57600080fd5b506017546107c9906001600160a01b031681565b34801561080d57600080fd5b506103fe61081c36600461333f565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561084657600080fd5b506000546001600160a01b03166107c9565b34801561086457600080fd5b5061042e61087336600461344d565b6115b7565b34801561088457600080fd5b5061042e61089336600461352b565b611648565b3480156108a457600080fd5b5060408051808201909152600381526243686960e81b60208201526103c8565b3480156108d057600080fd5b50602a54602b54602c54602d54602e54610781949392919085565b3480156108f757600080fd5b5061042e6109063660046135d8565b61168c565b34801561091757600080fd5b506103fe610926366004613421565b611733565b34801561093757600080fd5b50600e546107c9906001600160a01b031681565b34801561095757600080fd5b506103fe610966366004613421565b6117ce565b34801561097757600080fd5b5061042e61098636600461333f565b6117db565b34801561099757600080fd5b5061042e6109a63660046133f3565b611827565b3480156109b757600080fd5b5061042e6109c6366004613666565b61187c565b3480156109d757600080fd5b5061042e6109e63660046135d8565b611914565b3480156109f757600080fd5b50610441600c5481565b348015610a0d57600080fd5b5061042e610a1c3660046135d8565b61195a565b348015610a2d57600080fd5b50610441610a3c366004613379565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a7357600080fd5b506019546107c9906001600160a01b031681565b348015610a9357600080fd5b5061044160115481565b348015610aa957600080fd5b5061042e610ab8366004613616565b6119a0565b348015610ac957600080fd5b5061042e610ad8366004613565565b611a00565b348015610ae957600080fd5b5061042e610af836600461333f565b611a4c565b348015610b0957600080fd5b50600b546103fe9060ff1681565b348015610b2357600080fd5b5061042e610b3236600461333f565b611a97565b348015610b4357600080fd5b50602554602654602754602854602954610781949392919085565b348015610b6a57600080fd5b5061042e610b7936600461333f565b611b32565b348015610b8a57600080fd5b50600d546107c9906001600160a01b031681565b6000610bab338484611b7e565b5060015b92915050565b6000546001600160a01b03163314610be85760405162461bcd60e51b8152600401610bdf906136f6565b60405180910390fd5b60005b8251811015610c4f578160076000858481518110610c0b57610c0b613941565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c47816138fa565b915050610beb565b505050565b6000546001600160a01b03163314610c7e5760405162461bcd60e51b8152600401610bdf906136f6565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610cad848484611ca2565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610d325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610bdf565b610d468533610d4186856138e3565b611b7e565b506001949350505050565b6000601054821115610db85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610bdf565b6000610dc26123f0565b9050610dce81846137b4565b9392505050565b6000546001600160a01b03163314610dff5760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03811660009081526005602052604090205460ff16610e675760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610bdf565b60005b600854811015610f8857816001600160a01b031660088281548110610e9157610e91613941565b6000918252602090912001546001600160a01b03161415610f765760088054610ebc906001906138e3565b81548110610ecc57610ecc613941565b600091825260209091200154600880546001600160a01b039092169183908110610ef857610ef8613941565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610f5057610f5061392b565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f80816138fa565b915050610e6a565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610bab918590610d4190869061379c565b6000546001600160a01b03163314610fed5760405162461bcd60e51b8152600401610bdf906136f6565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146110455760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600f548311156110bd5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610bdf565b816110dc5760006110d2846001600080612413565b519150610baf9050565b60006110ec846001600080612413565b602001519150610baf9050565b6000546001600160a01b031633146111235760405162461bcd60e51b8152600401610bdf906136f6565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a59190613548565b50505050565b6000546001600160a01b031633146111d55760405162461bcd60e51b8152600401610bdf906136f6565b60005b8251811015610c4f5781600660008584815181106111f8576111f8613941565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611234816138fa565b9150506111d8565b6000546001600160a01b031633146112665760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03811660009081526005602052604090205460ff16156112cf5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610bdf565b6001600160a01b03811660009081526001602052604090205415611329576001600160a01b03811660009081526001602052604090205461130f90610d51565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113b95760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461140e5760405162461bcd60e51b8152600401610bdf906136f6565b6009805461ffff191661ff00198915159081169190911761010082021790915560168790556040805160a0810182528781526020810187905290810185905260608101849052608001829052601b869055601c859055601d849055601e839055601f8290556001141561148057436015555b50505050505050565b6000546001600160a01b031633146114b35760405162461bcd60e51b8152600401610bdf906136f6565b6040805160a08101825286815260208082018790528183018690526060820185905260809091018390528690556021859055602284905560238390556024829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6001600160a01b03811660009081526005602052604081205460ff161561155f57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610baf90610d51565b6000546001600160a01b031633146115ab5760405162461bcd60e51b8152600401610bdf906136f6565b6115b56000612477565b565b6000546001600160a01b031633146115e15760405162461bcd60e51b8152600401610bdf906136f6565b60005b8251811015610c4f57816004600085848151811061160457611604613941565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611640816138fa565b9150506115e4565b6000546001600160a01b031633146116725760405162461bcd60e51b8152600401610bdf906136f6565b600980549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146116b65760405162461bcd60e51b8152600401610bdf906136f6565b804710156117065760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610bdf565b604051339082156108fc029083906000818181858888f19350505050158015610f88573d6000803e3d6000fd5b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156117b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bdf565b6117c43385610d4186856138e3565b5060019392505050565b6000610bab338484611ca2565b6000546001600160a01b031633146118055760405162461bcd60e51b8152600401610bdf906136f6565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146118515760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118a65760405162461bcd60e51b8152600401610bdf906136f6565b6040805160a081018252868152602081018690528082018590526060810184905260800182905260258690556026859055602784905560288390556029829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b0316331461193e5760405162461bcd60e51b8152600401610bdf906136f6565b61194a6009600a613819565b61195490826138c4565b60115550565b6000546001600160a01b031633146119845760405162461bcd60e51b8152600401610bdf906136f6565b6119906009600a613819565b61199a90826138c4565b60145550565b6000546001600160a01b031633146119ca5760405162461bcd60e51b8152600401610bdf906136f6565b6119d66009600a613819565b6119e090836138c4565b6012556119ef6009600a613819565b6119f990826138c4565b6013555050565b6000546001600160a01b03163314611a2a5760405162461bcd60e51b8152600401610bdf906136f6565b611a358160016138c4565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b03163314611a765760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611ac15760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b038116611b265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bdf565b611b2f81612477565b50565b6000546001600160a01b03163314611b5c5760405162461bcd60e51b8152600401610bdf906136f6565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611be05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bdf565b6001600160a01b038216611c415760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bdf565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611d065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bdf565b6001600160a01b038216611d685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bdf565b60008111611dca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bdf565b611dd383611522565b811115611e3c5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610bdf565b6001600160a01b03831660009081526007602052604090205460ff16158015611e7e57506001600160a01b03821660009081526007602052604090205460ff16155b611eba5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610bdf565b6001600160a01b03831660009081526004602052604090205460ff16158015611efc57506001600160a01b03821660009081526004602052604090205460ff16155b15611f485760095460ff16611f485760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610bdf565b600e546001600160a01b038481169116148015611f7e57506001600160a01b03821660009081526004602052604090205460ff16155b8015611f93575060095462010000900460ff16155b1561204f57601254811115611fea5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610bdf565b60145481611ff784611522565b612001919061379c565b111561204f5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610bdf565b600e546001600160a01b0384811691161480159061208657506001600160a01b03821660009081526004602052604090205460ff16155b80156120ab57506001600160a01b03831660009081526004602052604090205460ff16155b80156120c0575060095462010000900460ff16155b15612223576013548111156121175760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610bdf565b600e546001600160a01b03838116911614612191576014548161213984611522565b612143919061379c565b11156121915760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610bdf565b600b5460ff1615612223576001600160a01b0383166000908152600a60205260408120546121bf90426138e3565b9050600c548110156122065760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610bdf565b506001600160a01b0383166000908152600a602052604090204290555b600060115461223130611522565b600954911115915062010000900460ff161580156122565750600954610100900460ff165b801561225f5750805b80156122795750600e546001600160a01b03858116911614155b801561229e57506001600160a01b03841660009081526004602052604090205460ff16155b80156122c357506001600160a01b03831660009081526004602052604090205460ff16155b1561235f57600e546001600160a01b0384811691161415612321576011546040805160a08101825260255481526026546020820152602754918101919091526028546060820152602954608082015261231c91906124c7565b61235f565b6011546040805160a08101825260208054825260215490820152602254918101919091526023546060820152602454608082015261235f91906124c7565b60095460019060009062010000900460ff168061239457506001600160a01b03861660009081526004602052604090205460ff165b806123b757506001600160a01b03851660009081526004602052604090205460ff165b156123c157600091505b600e546001600160a01b03868116911614156123db575060015b6123e8868686858561266d565b505050505050565b60008060006123fd6129dc565b909250905061240c81836137b4565b9250505090565b61241b6132bc565b61242785858585612b5f565b905061243c8186866124376123f0565b612d61565b60808601526060850152604084015260208301528152612464818561245f6123f0565b612e32565b60c083015260a08201525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff0000191662010000179055608081015160608201516020830151604084015160009392916124fa9161379c565b612504919061379c565b61250e919061379c565b6125199060026138c4565b905060008183604001518561252e91906138c4565b61253891906137b4565b9050600061254682866138e3565b90504761255282612e74565b600061255e82476138e3565b9050600086604001518661257291906138e3565b61257c90836137b4565b9050600087604001518261259091906138c4565b905080156125a2576125a28682612fd5565b60208801516000906125b58460026138c4565b6125bf91906138c4565b905080156125dd576018546125dd906001600160a01b0316826130b9565b60608901516000906125f08560026138c4565b6125fa91906138c4565b9050801561261857601954612618906001600160a01b0316826130b9565b60808a015160009061262b8660026138c4565b61263591906138c4565b9050801561265357601a54612653906001600160a01b0316826130b9565b50506009805462ff00001916905550505050505050505050565b6001600160a01b03851660009081526004602052604081205460ff161580156126af57506001600160a01b03851660009081526004602052604090205460ff16155b80156126c957506016546015546126c6919061379c565b43105b905060006126d985858585612413565b6001600160a01b03881660009081526005602052604090205490915060ff161561273b576001600160a01b0387166000908152600260205260409020546127219086906138e3565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff161561279e5760e08101516001600160a01b038716600090815260026020526040902054612784919061379c565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546127c391906138e3565b6001600160a01b03808916600090815260016020908152604080832094909455840151918916815291909120546127fa919061379c565b6001600160a01b038716600090815260016020526040908190209190915581015115158061282d57506000816101000151115b156128455761284581604001518261010001516131d2565b60008160800151118061285d57506000816101400151115b156128f2576128758160800151826101400151613207565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361018001518461016001518561012001518661014001516128cc919061379c565b6128d6919061379c565b6128e0919061379c565b60405190815260200160405180910390a35b60008160600151118061290a57506000816101200151115b1561292257612922816060015182610120015161327d565b60008160a00151118061293a57506000816101600151115b15612952576129528160a00151826101600151613292565b60008160c00151118061296a57506000816101800151115b15612982576129828160c001518261018001516132a7565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001516040516129cb91815260200190565b60405180910390a350505050505050565b601054600f546000918291825b600854811015612b2e57826001600060088481548110612a0b57612a0b613941565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612a765750816002600060088481548110612a4f57612a4f613941565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612a8c57601054600f54945094505050509091565b6001600060088381548110612aa357612aa3613941565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612ad290846138e3565b92506002600060088381548110612aeb57612aeb613941565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612b1a90836138e3565b915080612b26816138fa565b9150506129e9565b50600f54601054612b3f91906137b4565b821015612b5657601054600f549350935050509091565b90939092509050565b612b676132bc565b83612b785760e0810185905261246f565b612baa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b838015612bb5575082155b15612bf157506040805160a081018252602554815260265460208201526027549181019190915260285460608201526029546080820152612c60565b82612c2d57506040805160a081018252602080548252602154908201526022549181019190915260235460608201526024546080820152612c60565b506040805160a081018252601b548152601c546020820152601d5491810191909152601e546060820152601f5460808201525b8051606490612c6f90886138c4565b612c7991906137b4565b6101008301526020810151606490612c9190886138c4565b612c9b91906137b4565b6101208301526040810151606490612cb390886138c4565b612cbd91906137b4565b6101408301526060810151606490612cd590886138c4565b612cdf91906137b4565b6101608301526080810151606490612cf790886138c4565b612d0191906137b4565b6101808301819052610160830151610140840151610120850151610100860151612d2b908b6138e3565b612d3591906138e3565b612d3f91906138e3565b612d4991906138e3565b612d5391906138e3565b60e083015250949350505050565b600080808080612d7186896138c4565b945086612d8957508392506000915081905080612e27565b85896101000151612d9a91906138c4565b925085896101200151612dad91906138c4565b915085896101400151612dc091906138c4565b90506000868a6101600151612dd591906138c4565b90506000878b6101800151612dea91906138c4565b905080828486612dfa898c6138e3565b612e0491906138e3565b612e0e91906138e3565b612e1891906138e3565b612e2291906138e3565b955050505b945094509450945094565b60008083612e4557506000905080612e6c565b82856101600151612e5691906138c4565b915082856101800151612e6991906138c4565b90505b935093915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ea957612ea9613941565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612efd57600080fd5b505afa158015612f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f35919061335c565b81600181518110612f4857612f48613941565b6001600160a01b039283166020918202929092010152600d54612f6e9130911684611b7e565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612fa790859060009086903090429060040161372b565b600060405180830381600087803b158015612fc157600080fd5b505af11580156123e8573d6000803e3d6000fd5b600d54612fed9030906001600160a01b031684611b7e565b600d546001600160a01b031663f305d7198230856000806130166000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561307957600080fd5b505af115801561308d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130b29190613638565b5050505050565b804710156131095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610bdf565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613156576040519150601f19603f3d011682016040523d82523d6000602084013e61315b565b606091505b5050905080610c4f5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610bdf565b81601060008282546131e491906138e3565b9091555050602a80548291906000906131fe90849061379c565b90915550505050565b80602a600201600082825461321c919061379c565b90915550503060009081526005602052604090205460ff161561325e57306000908152600260205260408120805483929061325890849061379c565b90915550505b30600090815260016020526040812080548492906131fe90849061379c565b80602a600101600082825461321c919061379c565b80602a600301600082825461321c919061379c565b80602a600401600082825461321c919061379c565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b803561332f8161396d565b919050565b803561332f81613982565b60006020828403121561335157600080fd5b8135610dce8161396d565b60006020828403121561336e57600080fd5b8151610dce8161396d565b6000806040838503121561338c57600080fd5b82356133978161396d565b915060208301356133a78161396d565b809150509250929050565b6000806000606084860312156133c757600080fd5b83356133d28161396d565b925060208401356133e28161396d565b929592945050506040919091013590565b6000806040838503121561340657600080fd5b82356134118161396d565b915060208301356133a781613982565b6000806040838503121561343457600080fd5b823561343f8161396d565b946020939093013593505050565b6000806040838503121561346057600080fd5b823567ffffffffffffffff8082111561347857600080fd5b818501915085601f83011261348c57600080fd5b81356020828211156134a0576134a0613957565b8160051b604051601f19603f830116810181811086821117156134c5576134c5613957565b604052838152828101945085830182870184018b10156134e457600080fd5b600096505b8487101561350e576134fa81613324565b8652600196909601959483019483016134e9565b50965061351e9050878201613334565b9450505050509250929050565b60006020828403121561353d57600080fd5b8135610dce81613982565b60006020828403121561355a57600080fd5b8151610dce81613982565b6000806040838503121561357857600080fd5b823561343f81613982565b600080600080600080600060e0888a03121561359e57600080fd5b87356135a981613982565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b6000602082840312156135ea57600080fd5b5035919050565b6000806040838503121561360457600080fd5b8235915060208301356133a781613982565b6000806040838503121561362957600080fd5b50508035926020909101359150565b60008060006060848603121561364d57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561367e57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156136ce578581018301518582016040015282016136b2565b818111156136e0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561377b5784516001600160a01b031683529383019391830191600101613756565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156137af576137af613915565b500190565b6000826137d157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156138115781600019048211156137f7576137f7613915565b8085161561380457918102915b93841c93908002906137db565b509250929050565b6000610dce60ff84168360008261383257506001610baf565b8161383f57506000610baf565b8160018114613855576002811461385f5761387b565b6001915050610baf565b60ff84111561387057613870613915565b50506001821b610baf565b5060208310610133831016604e8410600b841016171561389e575081810a610baf565b6138a883836137d6565b80600019048211156138bc576138bc613915565b029392505050565b60008160001904831182151516156138de576138de613915565b500290565b6000828210156138f5576138f5613915565b500390565b600060001982141561390e5761390e613915565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611b2f57600080fd5b8015158114611b2f57600080fdfea26469706673582212206d6a6ab0faacaed9916ba7e4ffa3a96b67e8d140a9eaf94e455291beead8fb5b64736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106103905760003560e01c8063728f8eea116101dc578063c791fc5411610102578063e3bbe444116100a0578063f2fde38b1161006f578063f2fde38b14610b17578063f66895a314610b37578063f6bc962414610b5e578063f887ea4014610b7e57600080fd5b8063e3bbe44414610a9d578063e517f2b914610abd578063ea2f0b3714610add578063ee36e35914610afd57600080fd5b8063d8672e51116100dc578063d8672e5114610a01578063dd62ed3e14610a21578063e042ad5814610a67578063e2f4560514610a8757600080fd5b8063c791fc54146109ab578063d257b34f146109cb578063d2ce0db2146109eb57600080fd5b806395d89b411161017a578063a8aa1b3111610149578063a8aa1b311461092b578063a9059cbb1461094b578063aacebbe31461096b578063b5c571451461098b57600080fd5b806395d89b41146108985780639ba5e4d5146108c45780639e252f00146108eb578063a457c2d71461090b57600080fd5b806388f82020116101b657806388f82020146108015780638da5cb5b1461083a5780638e2839ff14610858578063924de9b71461087857600080fd5b8063728f8eea1461075a57806375f0a874146107a957806385141a77146107e157600080fd5b806347c23092116102c15780635fcefa421161025f5780636aa5b37f1161022e5780636aa5b37f146106f05780636ddd17131461070657806370a0823114610725578063715018a61461074557600080fd5b80635fcefa421461067457806362695eae14610694578063652e2f04146106c457806366a88d96146106da57600080fd5b806352390c021161029b57806352390c02146105db5780635342acb4146105fb5780635b24ea5e146106345780635e19678d1461065457600080fd5b806347c23092146105815780634ada218b146105a15780634fdaf486146105bb57600080fd5b80632d8381191161032e5780633950935111610308578063395093511461050157806340b28c2f14610521578063437823ec146105415780634549b0391461056157600080fd5b80632d838119146104a5578063313ce567146104c55780633685d419146104e157600080fd5b806318160ddd1161036a57806318160ddd146104305780631816467f1461044f57806323b872dd1461046f578063274a533c1461048f57600080fd5b806306fdde031461039c578063095ea7b3146103de57806313f97a8e1461040e57600080fd5b3661039757005b600080fd5b3480156103a857600080fd5b506040805180820190915260078152664368692043686960c81b60208201525b6040516103d591906136a1565b60405180910390f35b3480156103ea57600080fd5b506103fe6103f9366004613421565b610b9e565b60405190151581526020016103d5565b34801561041a57600080fd5b5061042e61042936600461344d565b610bb5565b005b34801561043c57600080fd5b50600f545b6040519081526020016103d5565b34801561045b57600080fd5b5061042e61046a36600461333f565b610c54565b34801561047b57600080fd5b506103fe61048a3660046133b2565b610ca0565b34801561049b57600080fd5b5061044160155481565b3480156104b157600080fd5b506104416104c03660046135d8565b610d51565b3480156104d157600080fd5b50604051600981526020016103d5565b3480156104ed57600080fd5b5061042e6104fc36600461333f565b610dd5565b34801561050d57600080fd5b506103fe61051c366004613421565b610f8c565b34801561052d57600080fd5b5061042e61053c366004613379565b610fc3565b34801561054d57600080fd5b5061042e61055c36600461333f565b61101b565b34801561056d57600080fd5b5061044161057c3660046135f1565b611069565b34801561058d57600080fd5b5061042e61059c3660046133b2565b6110f9565b3480156105ad57600080fd5b506009546103fe9060ff1681565b3480156105c757600080fd5b5061042e6105d636600461344d565b6111ab565b3480156105e757600080fd5b5061042e6105f636600461333f565b61123c565b34801561060757600080fd5b506103fe61061636600461333f565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561064057600080fd5b5061042e61064f3660046133f3565b61138f565b34801561066057600080fd5b5061042e61066f366004613583565b6113e4565b34801561068057600080fd5b5061042e61068f366004613666565b611489565b3480156106a057600080fd5b506103fe6106af36600461333f565b60066020526000908152604090205460ff1681565b3480156106d057600080fd5b5061044160135481565b3480156106e657600080fd5b5061044160145481565b3480156106fc57600080fd5b5061044160125481565b34801561071257600080fd5b506009546103fe90610100900460ff1681565b34801561073157600080fd5b5061044161074036600461333f565b611522565b34801561075157600080fd5b5061042e611581565b34801561076657600080fd5b50602054602154602254602354602454610781949392919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103d5565b3480156107b557600080fd5b506018546107c9906001600160a01b031681565b6040516001600160a01b0390911681526020016103d5565b3480156107ed57600080fd5b506017546107c9906001600160a01b031681565b34801561080d57600080fd5b506103fe61081c36600461333f565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561084657600080fd5b506000546001600160a01b03166107c9565b34801561086457600080fd5b5061042e61087336600461344d565b6115b7565b34801561088457600080fd5b5061042e61089336600461352b565b611648565b3480156108a457600080fd5b5060408051808201909152600381526243686960e81b60208201526103c8565b3480156108d057600080fd5b50602a54602b54602c54602d54602e54610781949392919085565b3480156108f757600080fd5b5061042e6109063660046135d8565b61168c565b34801561091757600080fd5b506103fe610926366004613421565b611733565b34801561093757600080fd5b50600e546107c9906001600160a01b031681565b34801561095757600080fd5b506103fe610966366004613421565b6117ce565b34801561097757600080fd5b5061042e61098636600461333f565b6117db565b34801561099757600080fd5b5061042e6109a63660046133f3565b611827565b3480156109b757600080fd5b5061042e6109c6366004613666565b61187c565b3480156109d757600080fd5b5061042e6109e63660046135d8565b611914565b3480156109f757600080fd5b50610441600c5481565b348015610a0d57600080fd5b5061042e610a1c3660046135d8565b61195a565b348015610a2d57600080fd5b50610441610a3c366004613379565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a7357600080fd5b506019546107c9906001600160a01b031681565b348015610a9357600080fd5b5061044160115481565b348015610aa957600080fd5b5061042e610ab8366004613616565b6119a0565b348015610ac957600080fd5b5061042e610ad8366004613565565b611a00565b348015610ae957600080fd5b5061042e610af836600461333f565b611a4c565b348015610b0957600080fd5b50600b546103fe9060ff1681565b348015610b2357600080fd5b5061042e610b3236600461333f565b611a97565b348015610b4357600080fd5b50602554602654602754602854602954610781949392919085565b348015610b6a57600080fd5b5061042e610b7936600461333f565b611b32565b348015610b8a57600080fd5b50600d546107c9906001600160a01b031681565b6000610bab338484611b7e565b5060015b92915050565b6000546001600160a01b03163314610be85760405162461bcd60e51b8152600401610bdf906136f6565b60405180910390fd5b60005b8251811015610c4f578160076000858481518110610c0b57610c0b613941565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c47816138fa565b915050610beb565b505050565b6000546001600160a01b03163314610c7e5760405162461bcd60e51b8152600401610bdf906136f6565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610cad848484611ca2565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610d325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610bdf565b610d468533610d4186856138e3565b611b7e565b506001949350505050565b6000601054821115610db85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610bdf565b6000610dc26123f0565b9050610dce81846137b4565b9392505050565b6000546001600160a01b03163314610dff5760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03811660009081526005602052604090205460ff16610e675760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610bdf565b60005b600854811015610f8857816001600160a01b031660088281548110610e9157610e91613941565b6000918252602090912001546001600160a01b03161415610f765760088054610ebc906001906138e3565b81548110610ecc57610ecc613941565b600091825260209091200154600880546001600160a01b039092169183908110610ef857610ef8613941565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610f5057610f5061392b565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f80816138fa565b915050610e6a565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610bab918590610d4190869061379c565b6000546001600160a01b03163314610fed5760405162461bcd60e51b8152600401610bdf906136f6565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146110455760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600f548311156110bd5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610bdf565b816110dc5760006110d2846001600080612413565b519150610baf9050565b60006110ec846001600080612413565b602001519150610baf9050565b6000546001600160a01b031633146111235760405162461bcd60e51b8152600401610bdf906136f6565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a59190613548565b50505050565b6000546001600160a01b031633146111d55760405162461bcd60e51b8152600401610bdf906136f6565b60005b8251811015610c4f5781600660008584815181106111f8576111f8613941565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611234816138fa565b9150506111d8565b6000546001600160a01b031633146112665760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03811660009081526005602052604090205460ff16156112cf5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610bdf565b6001600160a01b03811660009081526001602052604090205415611329576001600160a01b03811660009081526001602052604090205461130f90610d51565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113b95760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461140e5760405162461bcd60e51b8152600401610bdf906136f6565b6009805461ffff191661ff00198915159081169190911761010082021790915560168790556040805160a0810182528781526020810187905290810185905260608101849052608001829052601b869055601c859055601d849055601e839055601f8290556001141561148057436015555b50505050505050565b6000546001600160a01b031633146114b35760405162461bcd60e51b8152600401610bdf906136f6565b6040805160a08101825286815260208082018790528183018690526060820185905260809091018390528690556021859055602284905560238390556024829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6001600160a01b03811660009081526005602052604081205460ff161561155f57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610baf90610d51565b6000546001600160a01b031633146115ab5760405162461bcd60e51b8152600401610bdf906136f6565b6115b56000612477565b565b6000546001600160a01b031633146115e15760405162461bcd60e51b8152600401610bdf906136f6565b60005b8251811015610c4f57816004600085848151811061160457611604613941565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611640816138fa565b9150506115e4565b6000546001600160a01b031633146116725760405162461bcd60e51b8152600401610bdf906136f6565b600980549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146116b65760405162461bcd60e51b8152600401610bdf906136f6565b804710156117065760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610bdf565b604051339082156108fc029083906000818181858888f19350505050158015610f88573d6000803e3d6000fd5b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156117b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bdf565b6117c43385610d4186856138e3565b5060019392505050565b6000610bab338484611ca2565b6000546001600160a01b031633146118055760405162461bcd60e51b8152600401610bdf906136f6565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146118515760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146118a65760405162461bcd60e51b8152600401610bdf906136f6565b6040805160a081018252868152602081018690528082018590526060810184905260800182905260258690556026859055602784905560288390556029829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6000546001600160a01b0316331461193e5760405162461bcd60e51b8152600401610bdf906136f6565b61194a6009600a613819565b61195490826138c4565b60115550565b6000546001600160a01b031633146119845760405162461bcd60e51b8152600401610bdf906136f6565b6119906009600a613819565b61199a90826138c4565b60145550565b6000546001600160a01b031633146119ca5760405162461bcd60e51b8152600401610bdf906136f6565b6119d66009600a613819565b6119e090836138c4565b6012556119ef6009600a613819565b6119f990826138c4565b6013555050565b6000546001600160a01b03163314611a2a5760405162461bcd60e51b8152600401610bdf906136f6565b611a358160016138c4565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b03163314611a765760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611ac15760405162461bcd60e51b8152600401610bdf906136f6565b6001600160a01b038116611b265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bdf565b611b2f81612477565b50565b6000546001600160a01b03163314611b5c5760405162461bcd60e51b8152600401610bdf906136f6565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611be05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bdf565b6001600160a01b038216611c415760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bdf565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611d065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bdf565b6001600160a01b038216611d685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bdf565b60008111611dca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bdf565b611dd383611522565b811115611e3c5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610bdf565b6001600160a01b03831660009081526007602052604090205460ff16158015611e7e57506001600160a01b03821660009081526007602052604090205460ff16155b611eba5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610bdf565b6001600160a01b03831660009081526004602052604090205460ff16158015611efc57506001600160a01b03821660009081526004602052604090205460ff16155b15611f485760095460ff16611f485760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610bdf565b600e546001600160a01b038481169116148015611f7e57506001600160a01b03821660009081526004602052604090205460ff16155b8015611f93575060095462010000900460ff16155b1561204f57601254811115611fea5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610bdf565b60145481611ff784611522565b612001919061379c565b111561204f5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610bdf565b600e546001600160a01b0384811691161480159061208657506001600160a01b03821660009081526004602052604090205460ff16155b80156120ab57506001600160a01b03831660009081526004602052604090205460ff16155b80156120c0575060095462010000900460ff16155b15612223576013548111156121175760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610bdf565b600e546001600160a01b03838116911614612191576014548161213984611522565b612143919061379c565b11156121915760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610bdf565b600b5460ff1615612223576001600160a01b0383166000908152600a60205260408120546121bf90426138e3565b9050600c548110156122065760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610bdf565b506001600160a01b0383166000908152600a602052604090204290555b600060115461223130611522565b600954911115915062010000900460ff161580156122565750600954610100900460ff165b801561225f5750805b80156122795750600e546001600160a01b03858116911614155b801561229e57506001600160a01b03841660009081526004602052604090205460ff16155b80156122c357506001600160a01b03831660009081526004602052604090205460ff16155b1561235f57600e546001600160a01b0384811691161415612321576011546040805160a08101825260255481526026546020820152602754918101919091526028546060820152602954608082015261231c91906124c7565b61235f565b6011546040805160a08101825260208054825260215490820152602254918101919091526023546060820152602454608082015261235f91906124c7565b60095460019060009062010000900460ff168061239457506001600160a01b03861660009081526004602052604090205460ff165b806123b757506001600160a01b03851660009081526004602052604090205460ff165b156123c157600091505b600e546001600160a01b03868116911614156123db575060015b6123e8868686858561266d565b505050505050565b60008060006123fd6129dc565b909250905061240c81836137b4565b9250505090565b61241b6132bc565b61242785858585612b5f565b905061243c8186866124376123f0565b612d61565b60808601526060850152604084015260208301528152612464818561245f6123f0565b612e32565b60c083015260a08201525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff0000191662010000179055608081015160608201516020830151604084015160009392916124fa9161379c565b612504919061379c565b61250e919061379c565b6125199060026138c4565b905060008183604001518561252e91906138c4565b61253891906137b4565b9050600061254682866138e3565b90504761255282612e74565b600061255e82476138e3565b9050600086604001518661257291906138e3565b61257c90836137b4565b9050600087604001518261259091906138c4565b905080156125a2576125a28682612fd5565b60208801516000906125b58460026138c4565b6125bf91906138c4565b905080156125dd576018546125dd906001600160a01b0316826130b9565b60608901516000906125f08560026138c4565b6125fa91906138c4565b9050801561261857601954612618906001600160a01b0316826130b9565b60808a015160009061262b8660026138c4565b61263591906138c4565b9050801561265357601a54612653906001600160a01b0316826130b9565b50506009805462ff00001916905550505050505050505050565b6001600160a01b03851660009081526004602052604081205460ff161580156126af57506001600160a01b03851660009081526004602052604090205460ff16155b80156126c957506016546015546126c6919061379c565b43105b905060006126d985858585612413565b6001600160a01b03881660009081526005602052604090205490915060ff161561273b576001600160a01b0387166000908152600260205260409020546127219086906138e3565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff161561279e5760e08101516001600160a01b038716600090815260026020526040902054612784919061379c565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546127c391906138e3565b6001600160a01b03808916600090815260016020908152604080832094909455840151918916815291909120546127fa919061379c565b6001600160a01b038716600090815260016020526040908190209190915581015115158061282d57506000816101000151115b156128455761284581604001518261010001516131d2565b60008160800151118061285d57506000816101400151115b156128f2576128758160800151826101400151613207565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361018001518461016001518561012001518661014001516128cc919061379c565b6128d6919061379c565b6128e0919061379c565b60405190815260200160405180910390a35b60008160600151118061290a57506000816101200151115b1561292257612922816060015182610120015161327d565b60008160a00151118061293a57506000816101600151115b15612952576129528160a00151826101600151613292565b60008160c00151118061296a57506000816101800151115b15612982576129828160c001518261018001516132a7565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001516040516129cb91815260200190565b60405180910390a350505050505050565b601054600f546000918291825b600854811015612b2e57826001600060088481548110612a0b57612a0b613941565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612a765750816002600060088481548110612a4f57612a4f613941565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612a8c57601054600f54945094505050509091565b6001600060088381548110612aa357612aa3613941565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612ad290846138e3565b92506002600060088381548110612aeb57612aeb613941565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612b1a90836138e3565b915080612b26816138fa565b9150506129e9565b50600f54601054612b3f91906137b4565b821015612b5657601054600f549350935050509091565b90939092509050565b612b676132bc565b83612b785760e0810185905261246f565b612baa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b838015612bb5575082155b15612bf157506040805160a081018252602554815260265460208201526027549181019190915260285460608201526029546080820152612c60565b82612c2d57506040805160a081018252602080548252602154908201526022549181019190915260235460608201526024546080820152612c60565b506040805160a081018252601b548152601c546020820152601d5491810191909152601e546060820152601f5460808201525b8051606490612c6f90886138c4565b612c7991906137b4565b6101008301526020810151606490612c9190886138c4565b612c9b91906137b4565b6101208301526040810151606490612cb390886138c4565b612cbd91906137b4565b6101408301526060810151606490612cd590886138c4565b612cdf91906137b4565b6101608301526080810151606490612cf790886138c4565b612d0191906137b4565b6101808301819052610160830151610140840151610120850151610100860151612d2b908b6138e3565b612d3591906138e3565b612d3f91906138e3565b612d4991906138e3565b612d5391906138e3565b60e083015250949350505050565b600080808080612d7186896138c4565b945086612d8957508392506000915081905080612e27565b85896101000151612d9a91906138c4565b925085896101200151612dad91906138c4565b915085896101400151612dc091906138c4565b90506000868a6101600151612dd591906138c4565b90506000878b6101800151612dea91906138c4565b905080828486612dfa898c6138e3565b612e0491906138e3565b612e0e91906138e3565b612e1891906138e3565b612e2291906138e3565b955050505b945094509450945094565b60008083612e4557506000905080612e6c565b82856101600151612e5691906138c4565b915082856101800151612e6991906138c4565b90505b935093915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ea957612ea9613941565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612efd57600080fd5b505afa158015612f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f35919061335c565b81600181518110612f4857612f48613941565b6001600160a01b039283166020918202929092010152600d54612f6e9130911684611b7e565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612fa790859060009086903090429060040161372b565b600060405180830381600087803b158015612fc157600080fd5b505af11580156123e8573d6000803e3d6000fd5b600d54612fed9030906001600160a01b031684611b7e565b600d546001600160a01b031663f305d7198230856000806130166000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561307957600080fd5b505af115801561308d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130b29190613638565b5050505050565b804710156131095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610bdf565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613156576040519150601f19603f3d011682016040523d82523d6000602084013e61315b565b606091505b5050905080610c4f5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610bdf565b81601060008282546131e491906138e3565b9091555050602a80548291906000906131fe90849061379c565b90915550505050565b80602a600201600082825461321c919061379c565b90915550503060009081526005602052604090205460ff161561325e57306000908152600260205260408120805483929061325890849061379c565b90915550505b30600090815260016020526040812080548492906131fe90849061379c565b80602a600101600082825461321c919061379c565b80602a600301600082825461321c919061379c565b80602a600401600082825461321c919061379c565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b803561332f8161396d565b919050565b803561332f81613982565b60006020828403121561335157600080fd5b8135610dce8161396d565b60006020828403121561336e57600080fd5b8151610dce8161396d565b6000806040838503121561338c57600080fd5b82356133978161396d565b915060208301356133a78161396d565b809150509250929050565b6000806000606084860312156133c757600080fd5b83356133d28161396d565b925060208401356133e28161396d565b929592945050506040919091013590565b6000806040838503121561340657600080fd5b82356134118161396d565b915060208301356133a781613982565b6000806040838503121561343457600080fd5b823561343f8161396d565b946020939093013593505050565b6000806040838503121561346057600080fd5b823567ffffffffffffffff8082111561347857600080fd5b818501915085601f83011261348c57600080fd5b81356020828211156134a0576134a0613957565b8160051b604051601f19603f830116810181811086821117156134c5576134c5613957565b604052838152828101945085830182870184018b10156134e457600080fd5b600096505b8487101561350e576134fa81613324565b8652600196909601959483019483016134e9565b50965061351e9050878201613334565b9450505050509250929050565b60006020828403121561353d57600080fd5b8135610dce81613982565b60006020828403121561355a57600080fd5b8151610dce81613982565b6000806040838503121561357857600080fd5b823561343f81613982565b600080600080600080600060e0888a03121561359e57600080fd5b87356135a981613982565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b6000602082840312156135ea57600080fd5b5035919050565b6000806040838503121561360457600080fd5b8235915060208301356133a781613982565b6000806040838503121561362957600080fd5b50508035926020909101359150565b60008060006060848603121561364d57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561367e57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156136ce578581018301518582016040015282016136b2565b818111156136e0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561377b5784516001600160a01b031683529383019391830191600101613756565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156137af576137af613915565b500190565b6000826137d157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156138115781600019048211156137f7576137f7613915565b8085161561380457918102915b93841c93908002906137db565b509250929050565b6000610dce60ff84168360008261383257506001610baf565b8161383f57506000610baf565b8160018114613855576002811461385f5761387b565b6001915050610baf565b60ff84111561387057613870613915565b50506001821b610baf565b5060208310610133831016604e8410600b841016171561389e575081810a610baf565b6138a883836137d6565b80600019048211156138bc576138bc613915565b029392505050565b60008160001904831182151516156138de576138de613915565b500290565b6000828210156138f5576138f5613915565b500390565b600060001982141561390e5761390e613915565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611b2f57600080fd5b8015158114611b2f57600080fdfea26469706673582212206d6a6ab0faacaed9916ba7e4ffa3a96b67e8d140a9eaf94e455291beead8fb5b64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
3312:24324:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7641:83;;;;;;;;;;-1:-1:-1;7711:5:0;;;;;;;;;;;;-1:-1:-1;;;7711:5:0;;;;7641:83;;;;;;;:::i;:::-;;;;;;;;8401:161;;;;;;;;;;-1:-1:-1;8401:161:0;;;;;:::i;:::-;;:::i;:::-;;;8026:14:1;;8019:22;8001:41;;7989:2;7974:18;8401:161:0;7861:187:1;26061:211:0;;;;;;;;;;-1:-1:-1;26061:211:0;;;;;:::i;:::-;;:::i;:::-;;7941:95;;;;;;;;;;-1:-1:-1;8021:7:0;;7941:95;;;17782:25:1;;;17770:2;17755:18;7941:95:0;17636:177:1;25405:103:0;;;;;;;;;;-1:-1:-1;25405:103:0;;;;;:::i;:::-;;:::i;8570:448::-;;;;;;;;;;-1:-1:-1;8570:448:0;;;;;:::i;:::-;;:::i;4573:28::-;;;;;;;;;;;;;;;;10935:250;;;;;;;;;;-1:-1:-1;10935:250:0;;;;;:::i;:::-;;:::i;7827:83::-;;;;;;;;;;-1:-1:-1;7827:83:0;;4177:1;19413:36:1;;19401:2;19386:18;7827:83:0;19271:184:1;11599:473:0;;;;;;;;;;-1:-1:-1;11599:473:0;;;;;:::i;:::-;;:::i;9026:207::-;;;;;;;;;;-1:-1:-1;9026:207:0;;;;;:::i;:::-;;:::i;26973:155::-;;;;;;;;;;-1:-1:-1;26973:155:0;;;;;:::i;:::-;;:::i;12080:111::-;;;;;;;;;;-1:-1:-1;12080:111:0;;;;;:::i;:::-;;:::i;9942:517::-;;;;;;;;;;-1:-1:-1;9942:517:0;;;;;:::i;:::-;;:::i;27405:191::-;;;;;;;;;;-1:-1:-1;27405:191:0;;;;;:::i;:::-;;:::i;3834:26::-;;;;;;;;;;-1:-1:-1;3834:26:0;;;;;;;;26418:220;;;;;;;;;;-1:-1:-1;26418:220:0;;;;;:::i;:::-;;:::i;11259:332::-;;;;;;;;;;-1:-1:-1;11259:332:0;;;;;:::i;:::-;;:::i;12317:124::-;;;;;;;;;;-1:-1:-1;12317:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;12406:27:0;12382:4;12406:27;;;:18;:27;;;;;;;;;12317:124;25926:127;;;;;;;;;;-1:-1:-1;25926:127:0;;;;;:::i;:::-;;:::i;10467:460::-;;;;;;;;;;-1:-1:-1;10467:460:0;;;;;:::i;:::-;;:::i;12449:285::-;;;;;;;;;;-1:-1:-1;12449:285:0;;;;;:::i;:::-;;:::i;3688:47::-;;;;;;;;;;-1:-1:-1;3688:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4461;;;;;;;;;;;;;;;;4515:49;;;;;;;;;;;;;;;;4408:46;;;;;;;;;;;;;;;;3867:23;;;;;;;;;;-1:-1:-1;3867:23:0;;;;;;;;;;;8044:198;;;;;;;;;;-1:-1:-1;8044:198:0;;;;;:::i;:::-;;:::i;1626:94::-;;;;;;;;;;;;;:::i;5244:41::-;;;;;;;;;;-1:-1:-1;5244:41:0;;;;;;;;;;;;;;;;;;;;;;19062:25:1;;;19118:2;19103:18;;19096:34;;;;19146:18;;;19139:34;;;;19204:2;19189:18;;19182:34;19247:3;19232:19;;19225:35;19049:3;19034:19;5244:41:0;18803:463:1;4718:75:0;;;;;;;;;;-1:-1:-1;4718:75:0;;;;-1:-1:-1;;;;;4718:75:0;;;;;;-1:-1:-1;;;;;6926:32:1;;;6908:51;;6896:2;6881:18;4718:75:0;6762:203:1;4641:70:0;;;;;;;;;;-1:-1:-1;4641:70:0;;;;-1:-1:-1;;;;;4641:70:0;;;9814:120;;;;;;;;;;-1:-1:-1;9814:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9906:20:0;9882:4;9906:20;;;:11;:20;;;;;;;;;9814:120;1403:87;;;;;;;;;;-1:-1:-1;1449:7:0;1476:6;-1:-1:-1;;;;;1476:6:0;1403:87;;24939:212;;;;;;;;;;-1:-1:-1;24939:212:0;;;;;:::i;:::-;;:::i;25816:102::-;;;;;;;;;;-1:-1:-1;25816:102:0;;;;;:::i;:::-;;:::i;7732:87::-;;;;;;;;;;-1:-1:-1;7804:7:0;;;;;;;;;;;;-1:-1:-1;;;7804:7:0;;;;7732:87;;5515:36;;;;;;;;;;-1:-1:-1;5515:36:0;;;;;;;;;;;;;;;;;;27200:197;;;;;;;;;;-1:-1:-1;27200:197:0;;;;;:::i;:::-;;:::i;9241:392::-;;;;;;;;;;-1:-1:-1;9241:392:0;;;;;:::i;:::-;;:::i;4114:19::-;;;;;;;;;;-1:-1:-1;4114:19:0;;;;-1:-1:-1;;;;;4114:19:0;;;9641:165;;;;;;;;;;-1:-1:-1;9641:165:0;;;;;:::i;:::-;;:::i;25159:115::-;;;;;;;;;;-1:-1:-1;25159:115:0;;;;;:::i;:::-;;:::i;26280:130::-;;;;;;;;;;-1:-1:-1;26280:130:0;;;;;:::i;:::-;;:::i;12742:292::-;;;;;;;;;;-1:-1:-1;12742:292:0;;;;;:::i;:::-;;:::i;25677:131::-;;;;;;;;;;-1:-1:-1;25677:131:0;;;;;:::i;:::-;;:::i;4037:40::-;;;;;;;;;;;;;;;;26841:124;;;;;;;;;;-1:-1:-1;26841:124:0;;;;;:::i;:::-;;:::i;8250:143::-;;;;;;;;;;-1:-1:-1;8250:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8358:18:0;;;8331:7;8358:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8250:143;4800:75;;;;;;;;;;-1:-1:-1;4800:75:0;;;;-1:-1:-1;;;;;4800:75:0;;;4346:55;;;;;;;;;;;;;;;;26646:187;;;;;;;;;;-1:-1:-1;26646:187:0;;;;;:::i;:::-;;:::i;25516:153::-;;;;;;;;;;-1:-1:-1;25516:153:0;;;;;:::i;:::-;;:::i;12199:110::-;;;;;;;;;;-1:-1:-1;12199:110:0;;;;;:::i;:::-;;:::i;3996:34::-;;;;;;;;;;-1:-1:-1;3996:34:0;;;;;;;;1728:192;;;;;;;;;;-1:-1:-1;1728:192:0;;;;;:::i;:::-;;:::i;5292:45::-;;;;;;;;;;-1:-1:-1;5292:45:0;;;;;;;;;;;;;;;;;;25282:115;;;;;;;;;;-1:-1:-1;25282:115:0;;;;;:::i;:::-;;:::i;4086:21::-;;;;;;;;;;-1:-1:-1;4086:21:0;;;;-1:-1:-1;;;;;4086:21:0;;;8401:161;8476:4;8493:39;904:10;8516:7;8525:6;8493:8;:39::i;:::-;-1:-1:-1;8550:4:0;8401:161;;;;;:::o;26061:211::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;;;;;;;;;26162:9:::1;26157:108;26181:8;:15;26177:1;:19;26157:108;;;26248:5;26218:14;:27;26233:8;26242:1;26233:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26218:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26218:27:0;:35;;-1:-1:-1;;26218:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26198:3;::::1;::::0;::::1;:::i;:::-;;;;26157:108;;;;26061:211:::0;;:::o;25405:103::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;25479:9:::1;:21:::0;;-1:-1:-1;;;;;;25479:21:0::1;-1:-1:-1::0;;;;;25479:21:0;;;::::1;::::0;;;::::1;::::0;;25405:103::o;8570:448::-;8702:4;8719:36;8729:6;8737:9;8748:6;8719:9;:36::i;:::-;-1:-1:-1;;;;;8795:19:0;;8768:24;8795:19;;;:11;:19;;;;;;;;904:10;8795:33;;;;;;;;8847:26;;;;8839:79;;;;-1:-1:-1;;;8839:79:0;;14042:2:1;8839:79:0;;;14024:21:1;14081:2;14061:18;;;14054:30;14120:34;14100:18;;;14093:62;-1:-1:-1;;;14171:18:1;;;14164:38;14219:19;;8839:79:0;13840:404:1;8839:79:0;8929:57;8938:6;904:10;8960:25;8979:6;8960:16;:25;:::i;:::-;8929:8;:57::i;:::-;-1:-1:-1;9006:4:0;;8570:448;-1:-1:-1;;;;8570:448:0:o;10935:250::-;11002:7;11041;;11030;:18;;11022:73;;;;-1:-1:-1;;;11022:73:0;;10607:2:1;11022:73:0;;;10589:21:1;10646:2;10626:18;;;10619:30;10685:34;10665:18;;;10658:62;-1:-1:-1;;;10736:18:1;;;10729:40;10786:19;;11022:73:0;10405:406:1;11022:73:0;11106:19;11128:10;:8;:10::i;:::-;11106:32;-1:-1:-1;11156:21:0;11106:32;11156:7;:21;:::i;:::-;11149:28;10935:250;-1:-1:-1;;;10935:250:0:o;11599:473::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11679:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;11671:56;;;::::0;-1:-1:-1;;;11671:56:0;;12972:2:1;11671:56:0::1;::::0;::::1;12954:21:1::0;13011:2;12991:18;;;12984:30;13050:25;13030:18;;;13023:53;13093:18;;11671:56:0::1;12770:347:1::0;11671:56:0::1;11743:9;11738:327;11762:9;:16:::0;11758:20;::::1;11738:327;;;11820:7;-1:-1:-1::0;;;;;11804:23:0::1;:9;11814:1;11804:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;11804:12:0::1;:23;11800:254;;;11863:9;11873:16:::0;;:20:::1;::::0;11892:1:::1;::::0;11873:20:::1;:::i;:::-;11863:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;11848:9:::1;:12:::0;;-1:-1:-1;;;;;11863:31:0;;::::1;::::0;11858:1;;11848:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;11848:46:0::1;-1:-1:-1::0;;;;;11848:46:0;;::::1;;::::0;;11913:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;11952:11:::1;:20:::0;;;;:28;;-1:-1:-1;;11952:28:0::1;::::0;;11999:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;11999:15:0;;;;;-1:-1:-1;;;;;;11999:15:0::1;::::0;;;;;11738:327:::1;11599:473:::0;:::o;11800:254::-:1;11780:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11738:327;;;;11599:473:::0;:::o;9026:207::-;904:10;9106:4;9155:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9155:34:0;;;;;;;;;;9106:4;;9123:80;;9146:7;;9155:47;;9192:10;;9155:47;:::i;26973:155::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;27068:6:::1;:27:::0;;-1:-1:-1;;;;;27068:27:0;;::::1;-1:-1:-1::0;;;;;;27068:27:0;;::::1;;::::0;;;27106:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;26973:155::o;12080:111::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12149:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;12149:34:0::1;12179:4;12149:34;::::0;;12080:111::o;9942:517::-;10060:7;10104;;10093;:18;;10085:62;;;;-1:-1:-1;;;10085:62:0;;13682:2:1;10085:62:0;;;13664:21:1;13721:2;13701:18;;;13694:30;13760:33;13740:18;;;13733:61;13811:18;;10085:62:0;13480:355:1;10085:62:0;10163:17;10158:294;;10197:28;10228:39;10239:7;10248:4;10254:5;10261;10228:10;:39::i;:::-;10289:9;;-1:-1:-1;10282:16:0;;-1:-1:-1;10282:16:0;10158:294;10331:28;10362:39;10373:7;10382:4;10388:5;10395;10362:10;:39::i;:::-;10423:17;;;;-1:-1:-1;10416:24:0;;-1:-1:-1;10416:24:0;27405:191;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;27547:41:::1;::::0;-1:-1:-1;;;27547:41:0;;-1:-1:-1;;;;;7162:32:1;;;27547:41:0::1;::::0;::::1;7144:51:1::0;7211:18;;;7204:34;;;27547:27:0;::::1;::::0;::::1;::::0;7117:18:1;;27547:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27405:191:::0;;;:::o;26418:220::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;26527:9:::1;26522:109;26546:8;:15;26542:1;:19;26522:109;;;26614:5;26583:15;:28;26599:8;26608:1;26599:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;26583:28:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;26583:28:0;:36;;-1:-1:-1;;26583:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26563:3;::::1;::::0;::::1;:::i;:::-;;;;26522:109;;11259:332:::0;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11340:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;11339:21;11331:61;;;::::0;-1:-1:-1;;;11331:61:0;;11828:2:1;11331:61:0::1;::::0;::::1;11810:21:1::0;11867:2;11847:18;;;11840:30;11906:29;11886:18;;;11879:57;11953:18;;11331:61:0::1;11626:351:1::0;11331:61:0::1;-1:-1:-1::0;;;;;11407:16:0;::::1;11426:1;11407:16:::0;;;:7:::1;:16;::::0;;;;;:20;11403:109:::1;;-1:-1:-1::0;;;;;11483:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;11463:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;11444:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;11403:109:::1;-1:-1:-1::0;;;;;11522:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;11522:27:0::1;11545:4;11522:27:::0;;::::1;::::0;;;11560:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;11560:23:0::1;::::0;;::::1;::::0;;11259:332::o;25926:127::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26014:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;26014:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25926:127::o;10467:460::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;10707:14:::1;:22:::0;;-1:-1:-1;;10740:19:0;-1:-1:-1;;10707:22:0;::::1;;10740:19:::0;;;;;;;10707:22:::1;10740:19:::0;::::1;;::::0;;;10770:8:::1;:20:::0;;;10813:48:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;10801:9:::1;:60:::0;;;;;;;;;;;;;;;;;;;-1:-1:-1;10876:13:0::1;10872:47;;;10907:12;10891:13;:28:::0;10872:47:::1;10467:460:::0;;;;;;;:::o;12449:285::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;12643:54:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;12635:62;;;;;;;;;;;;;;;;;;;12713:13;::::1;::::0;-1:-1:-1;;12713:13:0::1;12449:285:::0;;;;;:::o;8044:198::-;-1:-1:-1;;;;;8134:20:0;;8110:7;8134:20;;;:11;:20;;;;;;;;8130:49;;;-1:-1:-1;;;;;;8163:16:0;;;;;:7;:16;;;;;;;8044:198::o;8130:49::-;-1:-1:-1;;;;;8217:16:0;;;;;;:7;:16;;;;;;8197:37;;:19;:37::i;1626:94::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;1691:21:::1;1709:1;1691:9;:21::i;:::-;1626:94::o:0;24939:212::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;25037:9:::1;25032:112;25056:8;:15;25052:1;:19;25032:112;;;25127:5;25093:18;:31;25112:8;25121:1;25112:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;25093:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;25093:31:0;:39;;-1:-1:-1;;25093:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25073:3;::::1;::::0;::::1;:::i;:::-;;;;25032:112;;25816:102:::0;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;25888:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;25888:22:0;;::::1;::::0;;;::::1;::::0;;25816:102::o;27200:197::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;27301:9:::1;27276:21;:34;;27268:71;;;::::0;-1:-1:-1;;;27268:71:0;;14812:2:1;27268:71:0::1;::::0;::::1;14794:21:1::0;14851:2;14831:18;;;14824:30;14890:26;14870:18;;;14863:54;14934:18;;27268:71:0::1;14610:348:1::0;27268:71:0::1;27350:39;::::0;27358:10:::1;::::0;27350:39;::::1;;;::::0;27379:9;;27350:39:::1;::::0;;;27379:9;27358:10;27350:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;9241:392:::0;904:10;9344:4;9393:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9393:34:0;;;;;;;;;;9446:35;;;;9438:85;;;;-1:-1:-1;;;9438:85:0;;17432:2:1;9438:85:0;;;17414:21:1;17471:2;17451:18;;;17444:30;17510:34;17490:18;;;17483:62;-1:-1:-1;;;17561:18:1;;;17554:35;17606:19;;9438:85:0;17230:401:1;9438:85:0;9534:67;904:10;9557:7;9566:34;9585:15;9566:16;:34;:::i;9534:67::-;-1:-1:-1;9621:4:0;;9241:392;-1:-1:-1;;;9241:392:0:o;9641:165::-;9719:4;9736:40;9746:10;9758:9;9769:6;9736:9;:40::i;25159:115::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;25239:15:::1;:27:::0;;-1:-1:-1;;;;;;25239:27:0::1;-1:-1:-1::0;;;;;25239:27:0;;;::::1;::::0;;;::::1;::::0;;25159:115::o;26280:130::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26370:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;26370:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26280:130::o;12742:292::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;12944:53:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;12932:9:::1;:65:::0;;;;;;;;;;;;;;;;;;;13013:13;::::1;::::0;-1:-1:-1;;13013:13:0::1;12742:292:::0;;;;;:::o;25677:131::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;25787:13:::1;4177:1;25787:2;:13;:::i;:::-;25778:22;::::0;:6;:22:::1;:::i;:::-;25757:18;:43:::0;-1:-1:-1;25677:131:0:o;26841:124::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;26943:14:::1;4177:1:::0;26943:2:::1;:14;:::i;:::-;26934:23;::::0;:6;:23:::1;:::i;:::-;26917:14;:40:::0;-1:-1:-1;26841:124:0:o;26646:187::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;26761:14:::1;4177:1:::0;26761:2:::1;:14;:::i;:::-;26752:23;::::0;:6;:23:::1;:::i;:::-;26738:11;:37:::0;26811:14:::1;4177:1:::0;26811:2:::1;:14;:::i;:::-;26801:24;::::0;:7;:24:::1;:::i;:::-;26786:12;:39:::0;-1:-1:-1;;26646:187:0:o;25516:153::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;25611:16:::1;:4:::0;25618:9:::1;25611:16;:::i;:::-;25596:12;:31:::0;-1:-1:-1;25638:15:0::1;:23:::0;;-1:-1:-1;;25638:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25516:153::o;12199:110::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12266:27:0::1;12296:5;12266:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;12266:35:0::1;::::0;;12199:110::o;1728:192::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1817:22:0;::::1;1809:73;;;::::0;-1:-1:-1;;;1809:73:0;;11018:2:1;1809:73:0::1;::::0;::::1;11000:21:1::0;11057:2;11037:18;;;11030:30;11096:34;11076:18;;;11069:62;-1:-1:-1;;;11147:18:1;;;11140:36;11193:19;;1809:73:0::1;10816:402:1::0;1809:73:0::1;1893:19;1903:8;1893:9;:19::i;:::-;1728:192:::0;:::o;25282:115::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;25362:15:::1;:27:::0;;-1:-1:-1;;;;;;25362:27:0::1;-1:-1:-1::0;;;;;25362:27:0;;;::::1;::::0;;;::::1;::::0;;25282:115::o;18106:369::-;-1:-1:-1;;;;;18233:19:0;;18225:68;;;;-1:-1:-1;;;18225:68:0;;16326:2:1;18225:68:0;;;16308:21:1;16365:2;16345:18;;;16338:30;16404:34;16384:18;;;16377:62;-1:-1:-1;;;16455:18:1;;;16448:34;16499:19;;18225:68:0;16124:400:1;18225:68:0;-1:-1:-1;;;;;18312:21:0;;18304:68;;;;-1:-1:-1;;;18304:68:0;;11425:2:1;18304:68:0;;;11407:21:1;11464:2;11444:18;;;11437:30;11503:34;11483:18;;;11476:62;-1:-1:-1;;;11554:18:1;;;11547:32;11596:19;;18304:68:0;11223:398:1;18304:68:0;-1:-1:-1;;;;;18383:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18435:32;;17782:25:1;;;18435:32:0;;17755:18:1;18435:32:0;;;;;;;18106:369;;;:::o;18483:2374::-;-1:-1:-1;;;;;18605:18:0;;18597:68;;;;-1:-1:-1;;;18597:68:0;;15920:2:1;18597:68:0;;;15902:21:1;15959:2;15939:18;;;15932:30;15998:34;15978:18;;;15971:62;-1:-1:-1;;;16049:18:1;;;16042:35;16094:19;;18597:68:0;15718:401:1;18597:68:0;-1:-1:-1;;;;;18684:16:0;;18676:64;;;;-1:-1:-1;;;18676:64:0;;9080:2:1;18676:64:0;;;9062:21:1;9119:2;9099:18;;;9092:30;9158:34;9138:18;;;9131:62;-1:-1:-1;;;9209:18:1;;;9202:33;9252:19;;18676:64:0;8878:399:1;18676:64:0;18768:1;18759:6;:10;18751:64;;;;-1:-1:-1;;;18751:64:0;;15165:2:1;18751:64:0;;;15147:21:1;15204:2;15184:18;;;15177:30;15243:34;15223:18;;;15216:62;-1:-1:-1;;;15294:18:1;;;15287:39;15343:19;;18751:64:0;14963:405:1;18751:64:0;18858:15;18868:4;18858:9;:15::i;:::-;18848:6;:25;;18826:124;;;;-1:-1:-1;;;18826:124:0;;10189:2:1;18826:124:0;;;10171:21:1;10228:2;10208:18;;;10201:30;10267:34;10247:18;;;10240:62;-1:-1:-1;;;10318:18:1;;;10311:47;10375:19;;18826:124:0;9987:413:1;18826:124:0;-1:-1:-1;;;;;18970:20:0;;;;;;:14;:20;;;;;;;;18969:21;:44;;;;-1:-1:-1;;;;;;18995:18:0;;;;;;:14;:18;;;;;;;;18994:19;18969:44;18961:70;;;;-1:-1:-1;;;18961:70:0;;16731:2:1;18961:70:0;;;16713:21:1;16770:2;16750:18;;;16743:30;-1:-1:-1;;;16789:18:1;;;16782:43;16842:18;;18961:70:0;16529:337:1;18961:70:0;-1:-1:-1;;;;;19049:24:0;;;;;;:18;:24;;;;;;;;19048:25;:52;;;;-1:-1:-1;;;;;;19078:22:0;;;;;;:18;:22;;;;;;;;19077:23;19048:52;19044:130;;;19125:14;;;;19117:45;;;;-1:-1:-1;;;19117:45:0;;9842:2:1;19117:45:0;;;9824:21:1;9881:2;9861:18;;;9854:30;-1:-1:-1;;;9900:18:1;;;9893:48;9958:18;;19117:45:0;9640:342:1;19117:45:0;19198:4;;-1:-1:-1;;;;;19190:12:0;;;19198:4;;19190:12;:39;;;;-1:-1:-1;;;;;;19207:22:0;;;;;;:18;:22;;;;;;;;19206:23;19190:39;:52;;;;-1:-1:-1;19234:8:0;;;;;;;19233:9;19190:52;19186:297;;;19277:11;;19267:6;:21;;19259:63;;;;-1:-1:-1;;;19259:63:0;;9484:2:1;19259:63:0;;;9466:21:1;9523:2;9503:18;;;9496:30;9562:31;9542:18;;;9535:59;9611:18;;19259:63:0;9282:353:1;19259:63:0;19389:14;;19379:6;19363:13;19373:2;19363:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;19337:134;;;;-1:-1:-1;;;19337:134:0;;12184:2:1;19337:134:0;;;12166:21:1;;;12203:18;;;12196:30;12262:34;12242:18;;;12235:62;12314:18;;19337:134:0;11982:356:1;19337:134:0;19521:4;;-1:-1:-1;;;;;19513:12:0;;;19521:4;;19513:12;;;;:39;;-1:-1:-1;;;;;;19530:22:0;;;;;;:18;:22;;;;;;;;19529:23;19513:39;:68;;;;-1:-1:-1;;;;;;19557:24:0;;;;;;:18;:24;;;;;;;;19556:25;19513:68;:81;;;;-1:-1:-1;19586:8:0;;;;;;;19585:9;19513:81;19495:664;;;19639:12;;19629:6;:22;;19621:65;;;;-1:-1:-1;;;19621:65:0;;17073:2:1;19621:65:0;;;17055:21:1;17112:2;17092:18;;;17085:30;17151:32;17131:18;;;17124:60;17201:18;;19621:65:0;16871:354:1;19621:65:0;19711:4;;-1:-1:-1;;;;;19705:10:0;;;19711:4;;19705:10;19701:197;;19792:14;;19782:6;19766:13;19776:2;19766:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;19736:146;;;;-1:-1:-1;;;19736:146:0;;12184:2:1;19736:146:0;;;12166:21:1;;;12203:18;;;12196:30;12262:34;12242:18;;;12235:62;12314:18;;19736:146:0;11982:356:1;19736:146:0;19916:15;;;;19912:236;;;-1:-1:-1;;;;;19991:15:0;;19952:18;19991:15;;;:9;:15;;;;;;19973:33;;:15;:33;:::i;:::-;19952:54;;20047:12;;20033:10;:26;;20025:55;;;;-1:-1:-1;;;20025:55:0;;15575:2:1;20025:55:0;;;15557:21:1;15614:2;15594:18;;;15587:30;-1:-1:-1;;;15633:18:1;;;15626:46;15689:18;;20025:55:0;15373:340:1;20025:55:0;-1:-1:-1;;;;;;20099:15:0;;;;;;:9;:15;;;;;20117;20099:33;;19912:236;20171:12;20214:18;;20186:24;20204:4;20186:9;:24::i;:::-;20262:8;;-1:-1:-1;;20186:46:0;;-1:-1:-1;20262:8:0;;;;;20261:9;:37;;;;-1:-1:-1;20287:11:0;;;;;;;20261:37;:61;;;;;20315:7;20261:61;:90;;;;-1:-1:-1;20347:4:0;;-1:-1:-1;;;;;20339:12:0;;;20347:4;;20339:12;;20261:90;:132;;;;-1:-1:-1;;;;;;20369:24:0;;;;;;:18;:24;;;;;;;;20368:25;20261:132;:172;;;;-1:-1:-1;;;;;;20411:22:0;;;;;;:18;:22;;;;;;;;20410:23;20261:172;20243:351;;;20470:4;;-1:-1:-1;;;;;20464:10:0;;;20470:4;;20464:10;20460:122;;;20491:18;;20476:45;;;;;;;;20511:9;20476:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20491:18;20476:14;:45::i;:::-;20460:122;;;20556:18;;20541:41;;;;;;;;20576:5;20541:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20556:18;20541:14;:41::i;:::-;20668:8;;20619:4;;20604:12;;20668:8;;;;;;:36;;-1:-1:-1;;;;;;20680:24:0;;;;;;:18;:24;;;;;;;;20668:36;:62;;;-1:-1:-1;;;;;;20708:22:0;;;;;;:18;:22;;;;;;;;20668:62;20664:83;;;20742:5;20732:15;;20664:83;20768:4;;-1:-1:-1;;;;;20762:10:0;;;20768:4;;20762:10;20758:29;;;-1:-1:-1;20783:4:0;20758:29;20800:49;20815:4;20821:2;20825:6;20833:7;20842:6;20800:14;:49::i;:::-;18586:2271;;;18483:2374;;;:::o;17365:161::-;17407:7;17428:15;17445;17464:19;:17;:19::i;:::-;17427:56;;-1:-1:-1;17427:56:0;-1:-1:-1;17501:17:0;17427:56;;17501:17;:::i;:::-;17494:24;;;;17365:161;:::o;14285:692::-;14433:36;;:::i;:::-;14494:51;14506:7;14515;14524:6;14532:12;14494:11;:51::i;:::-;14482:63;;14741:53;14754:9;14765:7;14774;14783:10;:8;:10::i;:::-;14741:12;:53::i;:::-;14707:20;;;14556:238;14672:20;;;14556:238;14643:14;;;14556:238;14603:25;;;14556:238;;;14846:94;14571:9;14897:7;14919:10;:8;:10::i;:::-;14846:12;:94::i;:::-;14828:14;;;14805:135;14806:20;;;14805:135;14285:692;;;;;;;:::o;1928:173::-;1984:16;2003:6;;-1:-1:-1;;;;;2020:17:0;;;-1:-1:-1;;;;;;2020:17:0;;;;;;2053:40;;2003:6;;;;;;;2053:40;;1984:16;2053:40;1973:128;1928:173;:::o;22465:1391::-;6089:8;:15;;-1:-1:-1;;6089:15:0;;;;;22677:8:::1;::::0;::::1;::::0;22647:14:::1;::::0;::::1;::::0;22617::::1;::::0;::::1;::::0;22587::::1;::::0;::::1;::::0;6089:15;;22677:8;22647:14;22587:44:::1;::::0;::::1;:::i;:::-;:74;;;;:::i;:::-;:98;;;;:::i;:::-;22586:104;::::0;22689:1:::1;22586:104;:::i;:::-;22564:126;;22701:32;22773:11;22755:4;:14;;;22737:15;:32;;;;:::i;:::-;22736:48;;;;:::i;:::-;22701:83:::0;-1:-1:-1;22795:14:0::1;22812:42;22701:83:::0;22812:15;:42:::1;:::i;:::-;22795:59:::0;-1:-1:-1;22892:21:0::1;22926:24;22795:59:::0;22926:16:::1;:24::i;:::-;22963:20;22986:38;23010:14:::0;22986:21:::1;:38;:::i;:::-;22963:61;;23035:19;23087:4;:14;;;23073:11;:28;;;;:::i;:::-;23057:45;::::0;:12;:45:::1;:::i;:::-;23035:67;;23113:29;23159:4;:14;;;23145:11;:28;;;;:::i;:::-;23113:60:::0;-1:-1:-1;23190:25:0;;23186:160:::1;;23273:61;23286:24;23312:21;23273:12;:61::i;:::-;23399:14;::::0;::::1;::::0;23358:20:::1;::::0;23381:15:::1;:11:::0;23395:1:::1;23381:15;:::i;:::-;:32;;;;:::i;:::-;23358:55:::0;-1:-1:-1;23428:16:0;;23424:97:::1;;23469:15;::::0;23461:48:::1;::::0;-1:-1:-1;;;;;23469:15:0::1;23496:12:::0;23461:34:::1;:48::i;:::-;23582:14;::::0;::::1;::::0;23541:20:::1;::::0;23564:15:::1;:11:::0;23578:1:::1;23564:15;:::i;:::-;:32;;;;:::i;:::-;23541:55:::0;-1:-1:-1;23611:16:0;;23607:97:::1;;23652:15;::::0;23644:48:::1;::::0;-1:-1:-1;;;;;23652:15:0::1;23679:12:::0;23644:34:::1;:48::i;:::-;23751:8;::::0;::::1;::::0;23716:14:::1;::::0;23733:15:::1;:11:::0;23747:1:::1;23733:15;:::i;:::-;:26;;;;:::i;:::-;23716:43:::0;-1:-1:-1;23774:10:0;;23770:79:::1;;23809:9;::::0;23801:36:::1;::::0;-1:-1:-1;;;;;23809:9:0::1;23830:6:::0;23801:28:::1;:36::i;:::-;-1:-1:-1::0;;6127:8:0;:16;;-1:-1:-1;;6127:16:0;;;-1:-1:-1;;;;;;;;;;22465:1391:0:o;20938:1519::-;-1:-1:-1;;;;;21133:26:0;;21112:17;21133:26;;;:18;:26;;;;;;;;21132:27;:74;;;;-1:-1:-1;;;;;;21177:29:0;;;;;;:18;:29;;;;;;;;21176:30;21132:74;:130;;;;;21254:8;;21238:13;;:24;;;;:::i;:::-;21223:12;:39;21132:130;21112:150;;21275:28;21306:50;21317:7;21326;21335:6;21343:12;21306:10;:50::i;:::-;-1:-1:-1;;;;;21373:19:0;;;;;;:11;:19;;;;;;21275:81;;-1:-1:-1;21373:19:0;;21369:124;;;-1:-1:-1;;;;;21456:15:0;;;;;;:7;:15;;;;;;:25;;21474:7;;21456:25;:::i;:::-;-1:-1:-1;;;;;21438:15:0;;;;;;:7;:15;;;;;:43;21369:124;-1:-1:-1;;;;;21507:22:0;;;;;;:11;:22;;;;;;;;21503:141;;;21615:17;;;;-1:-1:-1;;;;;21594:18:0;;;;;;:7;:18;;;;;;:38;;21615:17;21594:38;:::i;:::-;-1:-1:-1;;;;;21573:18:0;;;;;;:7;:18;;;;;:59;21503:141;21692:9;;-1:-1:-1;;;;;21674:15:0;;21692:9;21674:15;;;:7;:15;;;;;;:27;;21692:9;21674:27;:::i;:::-;-1:-1:-1;;;;;21656:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;21754:17;;;21733:18;;;;;;;;;;:38;;21754:17;21733:38;:::i;:::-;-1:-1:-1;;;;;21712:18:0;;;;;;:7;:18;;;;;;;:59;;;;21788:6;;;:10;;;:24;;;21811:1;21802;:6;;;:10;21788:24;21784:57;;;21814:27;21826:1;:6;;;21834:1;:6;;;21814:11;:27::i;:::-;21871:1;21856;:12;;;:16;:36;;;;21891:1;21876;:12;;;:16;21856:36;21852:281;;;21909:42;21924:1;:12;;;21938:1;:12;;;21909:14;:42::i;:::-;22031:4;-1:-1:-1;;;;;21971:150:0;21998:6;-1:-1:-1;;;;;21971:150:0;;22100:1;:6;;;22085:1;:12;;;22070:1;:12;;;22055:1;:12;;;:27;;;;:::i;:::-;:42;;;;:::i;:::-;:51;;;;:::i;:::-;21971:150;;17782:25:1;;;17770:2;17755:18;21971:150:0;;;;;;;21852:281;22162:1;22147;:12;;;:16;:36;;;;22182:1;22167;:12;;;:16;22147:36;22143:84;;;22185:42;22200:1;:12;;;22214:1;:12;;;22185:14;:42::i;:::-;22257:1;22242;:12;;;:16;:36;;;;22277:1;22262;:12;;;:16;22242:36;22238:84;;;22280:42;22295:1;:12;;;22309:1;:12;;;22280:14;:42::i;:::-;22346:1;22337;:6;;;:10;:24;;;;22360:1;22351;:6;;;:10;22337:24;22333:54;;;22363:24;22372:1;:6;;;22380:1;:6;;;22363:8;:24::i;:::-;22420:9;-1:-1:-1;;;;;22403:46:0;22412:6;-1:-1:-1;;;;;22403:46:0;;22431:1;:17;;;22403:46;;;;17782:25:1;;17770:2;17755:18;;17636:177;22403:46:0;;;;;;;;21101:1356;;20938:1519;;;;;:::o;17534:564::-;17632:7;;17668;;17585;;;;;17686:300;17710:9;:16;17706:20;;17686:300;;;17776:7;17752;:21;17760:9;17770:1;17760:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17760:12:0;17752:21;;;;;;;;;;;;;:31;;:66;;;17811:7;17787;:21;17795:9;17805:1;17795:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17795:12:0;17787:21;;;;;;;;;;;;;:31;17752:66;17748:114;;;17845:7;;17854;;17837:25;;;;;;;17534:564;;:::o;17748:114::-;17897:7;:21;17905:9;17915:1;17905:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17905:12:0;17897:21;;;;;;;;;;;;;17887:31;;:7;:31;:::i;:::-;17877:41;;17953:7;:21;17961:9;17971:1;17961:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17961:12:0;17953:21;;;;;;;;;;;;;17943:31;;:7;:31;:::i;:::-;17933:41;-1:-1:-1;17728:3:0;;;;:::i;:::-;;;;17686:300;;;;18020:7;;18010;;:17;;;;:::i;:::-;18000:7;:27;17996:58;;;18037:7;;18046;;18029:25;;;;;;17534:564;;:::o;17996:58::-;18073:7;;18082;;-1:-1:-1;17534:564:0;-1:-1:-1;17534:564:0:o;14985:917::-;15134:28;;:::i;:::-;15180:7;15175:91;;15204:17;;;:27;;;15246:8;;15175:91;15276:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15276:17:0;15308:6;:23;;;;;15319:12;15318:13;15308:23;15304:124;;;-1:-1:-1;15333:16:0;;;;;;;;15340:9;15333:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15304:124;;;15370:12;15365:63;;-1:-1:-1;15384:12:0;;;;;;;;15391:5;15384:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15365:63;;;-1:-1:-1;15412:16:0;;;;;;;;15419:9;15412:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15365:63;15461:8;;15473:3;;15451:18;;:7;:18;:::i;:::-;15450:26;;;;:::i;:::-;15441:6;;;:35;15513:14;;;;15531:3;;15503:24;;:7;:24;:::i;:::-;15502:32;;;;:::i;:::-;15487:12;;;:47;15571:14;;;;15589:3;;15561:24;;:7;:24;:::i;:::-;15560:32;;;;:::i;:::-;15545:12;;;:47;15629:14;;;;15647:3;;15619:24;;:7;:24;:::i;:::-;15618:32;;;;:::i;:::-;15603:12;;;:47;15681:8;;;;15693:3;;15671:18;;:7;:18;:::i;:::-;15670:26;;;;:::i;:::-;15661:6;;;:35;;;15841:12;;;;15813;;;;15785;;;;15763:6;;;;15740:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;:85;;;;:::i;:::-;:113;;;;:::i;:::-;:135;;;;:::i;:::-;15707:17;;;:168;-1:-1:-1;14985:917:0;;;;;;:::o;15910:995::-;16120:15;;;;;16304:21;16314:11;16304:7;:21;:::i;:::-;16294:31;;16343:7;16338:75;;-1:-1:-1;16375:7:0;;-1:-1:-1;16393:1:0;;-1:-1:-1;16393:1:0;;-1:-1:-1;16393:1:0;16367:34;;16338:75;16441:11;16432:1;:6;;;:20;;;;:::i;:::-;16425:27;;16491:11;16476:1;:12;;;:26;;;;:::i;:::-;16463:39;;16541:11;16526:1;:12;;;:26;;;;:::i;:::-;16513:39;;16563:18;16599:11;16584:1;:12;;;:26;;;;:::i;:::-;16563:47;;16621:12;16645:11;16636:1;:6;;;:20;;;;:::i;:::-;16621:35;-1:-1:-1;16621:35:0;16793:10;16767;16741;16698:27;16721:4;16698:7;:27;:::i;:::-;:53;;;;:::i;:::-;:79;;;;:::i;:::-;:105;;;;:::i;:::-;:125;;;;:::i;:::-;16667:156;;16834:63;;15910:995;;;;;;;;;;:::o;16913:444::-;17097:18;17130:12;17175:7;17170:54;;-1:-1:-1;17207:1:0;;-1:-1:-1;17207:1:0;17199:13;;17170:54;17264:11;17249:1;:12;;;:26;;;;:::i;:::-;17236:39;;17302:11;17293:1;:6;;;:20;;;;:::i;:::-;17286:27;;16913:444;;;;;;;:::o;24369:562::-;24519:16;;;24533:1;24519:16;;;;;;;;24495:21;;24519:16;;;;;;;;;;-1:-1:-1;24519:16:0;24495:40;;24564:4;24546;24551:1;24546:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24546:23:0;;;:7;;;;;;;;;;:23;;;;24590:6;;:13;;;-1:-1:-1;;;24590:13:0;;;;:6;;;;;:11;;:13;;;;;24546:7;;24590:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24580:4;24585:1;24580:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24580:23:0;;;:7;;;;;;;;;:23;24648:6;;24616:53;;24633:4;;24648:6;24657:11;24616:8;:53::i;:::-;24708:6;;:215;;-1:-1:-1;;;24708:215:0;;-1:-1:-1;;;;;24708:6:0;;;;:57;;:215;;24780:11;;24708:6;;24850:4;;24877;;24897:15;;24708:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23864:497;24044:6;;24012:53;;24029:4;;-1:-1:-1;;;;;24044:6:0;24053:11;24012:8;:53::i;:::-;24108:6;;-1:-1:-1;;;;;24108:6:0;:22;24139:9;24173:4;24193:11;24108:6;;24305:7;1449;1476:6;-1:-1:-1;;;;;1476:6:0;;1403:87;24305:7;24108:245;;;;;;-1:-1:-1;;;;;;24108:245:0;;;-1:-1:-1;;;;;7608:15:1;;;24108:245:0;;;7590:34:1;7640:18;;;7633:34;;;;7683:18;;;7676:34;;;;7726:18;;;7719:34;7790:15;;;7769:19;;;7762:44;24327:15:0;7822:19:1;;;7815:35;7524:19;;24108:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23864:497;;:::o;2986:319::-;3101:6;3076:21;:31;;3068:73;;;;-1:-1:-1;;;3068:73:0;;13324:2:1;3068:73:0;;;13306:21:1;13363:2;13343:18;;;13336:30;13402:31;13382:18;;;13375:59;13451:18;;3068:73:0;13122:353:1;3068:73:0;3155:12;3173:9;-1:-1:-1;;;;;3173:14:0;3196:6;3173:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3154:54;;;3227:7;3219:78;;;;-1:-1:-1;;;3219:78:0;;12545:2:1;3219:78:0;;;12527:21:1;12584:2;12564:18;;;12557:30;12623:34;12603:18;;;12596:62;12694:28;12674:18;;;12667:56;12740:19;;3219:78:0;12343:422:1;13042:125:0;13121:4;13110:7;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;13136:11:0;:23;;13155:4;;13136:11;:15;;:23;;13155:4;;13136:23;:::i;:::-;;;;-1:-1:-1;;;;13042:125:0:o;13175:280::-;13283:10;13258:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;13330:4:0;13310:26;;;;:11;:26;;;;;;;;13306:95;;;13369:4;13353:22;;;;:7;:22;;;;;:36;;13379:10;;13353:22;:36;;13379:10;;13353:36;:::i;:::-;;;;-1:-1:-1;;13306:95:0;13427:4;13411:22;;;;:7;:22;;;;;:36;;13437:10;;13411:22;:36;;13437:10;;13411:36;:::i;13463:280::-;13571:10;13546:11;:21;;;:35;;;;;;;:::i;13751:280::-;13859:10;13834:11;:21;;;:35;;;;;;;:::i;14039:238::-;14123:4;14104:11;:15;;;:23;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:128::-;218:20;;247:28;218:20;247:28;:::i;286:247::-;345:6;398:2;386:9;377:7;373:23;369:32;366:52;;;414:1;411;404:12;366:52;453:9;440:23;472:31;497:5;472:31;:::i;538:251::-;608:6;661:2;649:9;640:7;636:23;632:32;629:52;;;677:1;674;667:12;629:52;709:9;703:16;728:31;753:5;728:31;:::i;794:388::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;978:9;965:23;997:31;1022:5;997:31;:::i;:::-;1047:5;-1:-1:-1;1104:2:1;1089:18;;1076:32;1117:33;1076:32;1117:33;:::i;:::-;1169:7;1159:17;;;794:388;;;;;:::o;1187:456::-;1264:6;1272;1280;1333:2;1321:9;1312:7;1308:23;1304:32;1301:52;;;1349:1;1346;1339:12;1301:52;1388:9;1375:23;1407:31;1432:5;1407:31;:::i;:::-;1457:5;-1:-1:-1;1514:2:1;1499:18;;1486:32;1527:33;1486:32;1527:33;:::i;:::-;1187:456;;1579:7;;-1:-1:-1;;;1633:2:1;1618:18;;;;1605:32;;1187:456::o;1648:382::-;1713:6;1721;1774:2;1762:9;1753:7;1749:23;1745:32;1742:52;;;1790:1;1787;1780:12;1742:52;1829:9;1816:23;1848:31;1873:5;1848:31;:::i;:::-;1898:5;-1:-1:-1;1955:2:1;1940:18;;1927:32;1968:30;1927:32;1968:30;:::i;2035:315::-;2103:6;2111;2164:2;2152:9;2143:7;2139:23;2135:32;2132:52;;;2180:1;2177;2170:12;2132:52;2219:9;2206:23;2238:31;2263:5;2238:31;:::i;:::-;2288:5;2340:2;2325:18;;;;2312:32;;-1:-1:-1;;;2035:315:1:o;2355:1202::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2562:9;2549:23;2591:18;2632:2;2624:6;2621:14;2618:34;;;2648:1;2645;2638:12;2618:34;2686:6;2675:9;2671:22;2661:32;;2731:7;2724:4;2720:2;2716:13;2712:27;2702:55;;2753:1;2750;2743:12;2702:55;2789:2;2776:16;2811:4;2834:2;2830;2827:10;2824:36;;;2840:18;;:::i;:::-;2886:2;2883:1;2879:10;2918:2;2912:9;2981:2;2977:7;2972:2;2968;2964:11;2960:25;2952:6;2948:38;3036:6;3024:10;3021:22;3016:2;3004:10;3001:18;2998:46;2995:72;;;3047:18;;:::i;:::-;3083:2;3076:22;3133:18;;;3167:15;;;;-1:-1:-1;3202:11:1;;;3232;;;3228:20;;3225:33;-1:-1:-1;3222:53:1;;;3271:1;3268;3261:12;3222:53;3293:1;3284:10;;3303:169;3317:2;3314:1;3311:9;3303:169;;;3374:23;3393:3;3374:23;:::i;:::-;3362:36;;3335:1;3328:9;;;;;3418:12;;;;3450;;3303:169;;;-1:-1:-1;3491:6:1;-1:-1:-1;3516:35:1;;-1:-1:-1;3532:18:1;;;3516:35;:::i;:::-;3506:45;;;;;;2355:1202;;;;;:::o;3562:241::-;3618:6;3671:2;3659:9;3650:7;3646:23;3642:32;3639:52;;;3687:1;3684;3677:12;3639:52;3726:9;3713:23;3745:28;3767:5;3745:28;:::i;3808:245::-;3875:6;3928:2;3916:9;3907:7;3903:23;3899:32;3896:52;;;3944:1;3941;3934:12;3896:52;3976:9;3970:16;3995:28;4017:5;3995:28;:::i;4058:309::-;4123:6;4131;4184:2;4172:9;4163:7;4159:23;4155:32;4152:52;;;4200:1;4197;4190:12;4152:52;4239:9;4226:23;4258:28;4280:5;4258:28;:::i;4372:653::-;4482:6;4490;4498;4506;4514;4522;4530;4583:3;4571:9;4562:7;4558:23;4554:33;4551:53;;;4600:1;4597;4590:12;4551:53;4639:9;4626:23;4658:28;4680:5;4658:28;:::i;:::-;4705:5;4757:2;4742:18;;4729:32;;-1:-1:-1;4808:2:1;4793:18;;4780:32;;4859:2;4844:18;;4831:32;;-1:-1:-1;4910:3:1;4895:19;;4882:33;;-1:-1:-1;4962:3:1;4947:19;;4934:33;;-1:-1:-1;5014:3:1;4999:19;4986:33;;-1:-1:-1;4372:653:1;-1:-1:-1;;;4372:653:1:o;5030:180::-;5089:6;5142:2;5130:9;5121:7;5117:23;5113:32;5110:52;;;5158:1;5155;5148:12;5110:52;-1:-1:-1;5181:23:1;;5030:180;-1:-1:-1;5030:180:1:o;5215:309::-;5280:6;5288;5341:2;5329:9;5320:7;5316:23;5312:32;5309:52;;;5357:1;5354;5347:12;5309:52;5393:9;5380:23;5370:33;;5453:2;5442:9;5438:18;5425:32;5466:28;5488:5;5466:28;:::i;5529:248::-;5597:6;5605;5658:2;5646:9;5637:7;5633:23;5629:32;5626:52;;;5674:1;5671;5664:12;5626:52;-1:-1:-1;;5697:23:1;;;5767:2;5752:18;;;5739:32;;-1:-1:-1;5529:248:1:o;5782:306::-;5870:6;5878;5886;5939:2;5927:9;5918:7;5914:23;5910:32;5907:52;;;5955:1;5952;5945:12;5907:52;5984:9;5978:16;5968:26;;6034:2;6023:9;6019:18;6013:25;6003:35;;6078:2;6067:9;6063:18;6057:25;6047:35;;5782:306;;;;;:::o;6093:454::-;6188:6;6196;6204;6212;6220;6273:3;6261:9;6252:7;6248:23;6244:33;6241:53;;;6290:1;6287;6280:12;6241:53;-1:-1:-1;;6313:23:1;;;6383:2;6368:18;;6355:32;;-1:-1:-1;6434:2:1;6419:18;;6406:32;;6485:2;6470:18;;6457:32;;-1:-1:-1;6536:3:1;6521:19;6508:33;;-1:-1:-1;6093:454:1;-1:-1:-1;6093:454:1:o;8276:597::-;8388:4;8417:2;8446;8435:9;8428:21;8478:6;8472:13;8521:6;8516:2;8505:9;8501:18;8494:34;8546:1;8556:140;8570:6;8567:1;8564:13;8556:140;;;8665:14;;;8661:23;;8655:30;8631:17;;;8650:2;8627:26;8620:66;8585:10;;8556:140;;;8714:6;8711:1;8708:13;8705:91;;;8784:1;8779:2;8770:6;8759:9;8755:22;8751:31;8744:42;8705:91;-1:-1:-1;8857:2:1;8836:15;-1:-1:-1;;8832:29:1;8817:45;;;;8864:2;8813:54;;8276:597;-1:-1:-1;;;8276:597:1:o;14249:356::-;14451:2;14433:21;;;14470:18;;;14463:30;14529:34;14524:2;14509:18;;14502:62;14596:2;14581:18;;14249:356::o;17818:980::-;18080:4;18128:3;18117:9;18113:19;18159:6;18148:9;18141:25;18185:2;18223:6;18218:2;18207:9;18203:18;18196:34;18266:3;18261:2;18250:9;18246:18;18239:31;18290:6;18325;18319:13;18356:6;18348;18341:22;18394:3;18383:9;18379:19;18372:26;;18433:2;18425:6;18421:15;18407:29;;18454:1;18464:195;18478:6;18475:1;18472:13;18464:195;;;18543:13;;-1:-1:-1;;;;;18539:39:1;18527:52;;18634:15;;;;18599:12;;;;18575:1;18493:9;18464:195;;;-1:-1:-1;;;;;;;18715:32:1;;;;18710:2;18695:18;;18688:60;-1:-1:-1;;;18779:3:1;18764:19;18757:35;18676:3;17818:980;-1:-1:-1;;;17818:980:1:o;19460:128::-;19500:3;19531:1;19527:6;19524:1;19521:13;19518:39;;;19537:18;;:::i;:::-;-1:-1:-1;19573:9:1;;19460:128::o;19593:217::-;19633:1;19659;19649:132;;19703:10;19698:3;19694:20;19691:1;19684:31;19738:4;19735:1;19728:15;19766:4;19763:1;19756:15;19649:132;-1:-1:-1;19795:9:1;;19593:217::o;19815:422::-;19904:1;19947:5;19904:1;19961:270;19982:7;19972:8;19969:21;19961:270;;;20041:4;20037:1;20033:6;20029:17;20023:4;20020:27;20017:53;;;20050:18;;:::i;:::-;20100:7;20090:8;20086:22;20083:55;;;20120:16;;;;20083:55;20199:22;;;;20159:15;;;;19961:270;;;19965:3;19815:422;;;;;:::o;20242:140::-;20300:5;20329:47;20370:4;20360:8;20356:19;20350:4;20436:5;20466:8;20456:80;;-1:-1:-1;20507:1:1;20521:5;;20456:80;20555:4;20545:76;;-1:-1:-1;20592:1:1;20606:5;;20545:76;20637:4;20655:1;20650:59;;;;20723:1;20718:130;;;;20630:218;;20650:59;20680:1;20671:10;;20694:5;;;20718:130;20755:3;20745:8;20742:17;20739:43;;;20762:18;;:::i;:::-;-1:-1:-1;;20818:1:1;20804:16;;20833:5;;20630:218;;20932:2;20922:8;20919:16;20913:3;20907:4;20904:13;20900:36;20894:2;20884:8;20881:16;20876:2;20870:4;20867:12;20863:35;20860:77;20857:159;;;-1:-1:-1;20969:19:1;;;21001:5;;20857:159;21048:34;21073:8;21067:4;21048:34;:::i;:::-;21118:6;21114:1;21110:6;21106:19;21097:7;21094:32;21091:58;;;21129:18;;:::i;:::-;21167:20;;20387:806;-1:-1:-1;;;20387:806:1:o;21198:168::-;21238:7;21304:1;21300;21296:6;21292:14;21289:1;21286:21;21281:1;21274:9;21267:17;21263:45;21260:71;;;21311:18;;:::i;:::-;-1:-1:-1;21351:9:1;;21198:168::o;21371:125::-;21411:4;21439:1;21436;21433:8;21430:34;;;21444:18;;:::i;:::-;-1:-1:-1;21481:9:1;;21371:125::o;21501:135::-;21540:3;-1:-1:-1;;21561:17:1;;21558:43;;;21581:18;;:::i;:::-;-1:-1:-1;21628:1:1;21617:13;;21501:135::o;21641:127::-;21702:10;21697:3;21693:20;21690:1;21683:31;21733:4;21730:1;21723:15;21757:4;21754:1;21747:15;21773:127;21834:10;21829:3;21825:20;21822:1;21815:31;21865:4;21862:1;21855:15;21889:4;21886:1;21879:15;21905:127;21966:10;21961:3;21957:20;21954:1;21947:31;21997:4;21994:1;21987:15;22021:4;22018:1;22011:15;22037:127;22098:10;22093:3;22089:20;22086:1;22079:31;22129:4;22126:1;22119:15;22153:4;22150:1;22143:15;22169:131;-1:-1:-1;;;;;22244:31:1;;22234:42;;22224:70;;22290:1;22287;22280:12;22305:118;22391:5;22384:13;22377:21;22370:5;22367:32;22357:60;;22413:1;22410;22403:12
Swarm Source
ipfs://6d6a6ab0faacaed9916ba7e4ffa3a96b67e8d140a9eaf94e455291beead8fb5b
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.