More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 271 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20608399 | 111 days ago | IN | 0 ETH | 0.00002479 | ||||
Approve | 20608399 | 111 days ago | IN | 0 ETH | 0.00003678 | ||||
Transfer | 20608253 | 111 days ago | IN | 0 ETH | 0.000172 | ||||
Approve | 18781693 | 367 days ago | IN | 0 ETH | 0.00211645 | ||||
Approve | 18693598 | 379 days ago | IN | 0 ETH | 0.00201725 | ||||
Approve | 17469731 | 551 days ago | IN | 0 ETH | 0.00042633 | ||||
Transfer | 17469723 | 551 days ago | IN | 0 ETH | 0.00165326 | ||||
Transfer | 17469716 | 551 days ago | IN | 0 ETH | 0.00277164 | ||||
Transfer | 17469703 | 551 days ago | IN | 0 ETH | 0.00183319 | ||||
Transfer | 17469693 | 551 days ago | IN | 0 ETH | 0.00181044 | ||||
Approve | 17469688 | 551 days ago | IN | 0 ETH | 0.00068617 | ||||
Transfer | 17469677 | 551 days ago | IN | 0 ETH | 0.00302368 | ||||
Transfer | 17469674 | 551 days ago | IN | 0 ETH | 0.00174222 | ||||
Transfer | 17469660 | 551 days ago | IN | 0 ETH | 0.00655916 | ||||
Approve | 17469613 | 551 days ago | IN | 0 ETH | 0.00085235 | ||||
Transfer | 17469606 | 551 days ago | IN | 0 ETH | 0.00211363 | ||||
Approve | 17466788 | 551 days ago | IN | 0 ETH | 0.00072494 | ||||
Transfer | 17466777 | 551 days ago | IN | 0 ETH | 0.00172758 | ||||
Approve | 16702221 | 659 days ago | IN | 0 ETH | 0.00108465 | ||||
Approve | 16664360 | 664 days ago | IN | 0 ETH | 0.00124889 | ||||
Approve | 16664357 | 664 days ago | IN | 0 ETH | 0.00127364 | ||||
Approve | 16640034 | 668 days ago | IN | 0 ETH | 0.00197456 | ||||
Approve | 16635058 | 668 days ago | IN | 0 ETH | 0.00249831 | ||||
Approve | 16491356 | 688 days ago | IN | 0 ETH | 0.0007401 | ||||
Transfer | 16481994 | 690 days ago | IN | 0 ETH | 0.00119078 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
17469753 | 551 days ago | 0.00827178 ETH | ||||
17469753 | 551 days ago | 0.00206794 ETH | ||||
17469753 | 551 days ago | 0.01033973 ETH | ||||
17469749 | 551 days ago | 0.01033973 ETH | ||||
17469715 | 551 days ago | 0.01451218 ETH | ||||
17469715 | 551 days ago | 0.00362804 ETH | ||||
17469715 | 551 days ago | 0.01814023 ETH | ||||
17469690 | 551 days ago | 0.01477523 ETH | ||||
17469690 | 551 days ago | 0.0036938 ETH | ||||
17469690 | 551 days ago | 0.01846904 ETH | ||||
17469660 | 551 days ago | 0.01698919 ETH | ||||
17469660 | 551 days ago | 0.00424729 ETH | ||||
17469660 | 551 days ago | 0.02123552 ETH | ||||
17469451 | 551 days ago | 0.02014031 ETH | ||||
17469451 | 551 days ago | 0.00000097 ETH | ||||
17469451 | 551 days ago | 0.00503507 ETH | ||||
17469451 | 551 days ago | 0.02516767 ETH | ||||
16640590 | 667 days ago | 0.02479374 ETH | ||||
16640590 | 667 days ago | 0.00000771 ETH | ||||
16640590 | 667 days ago | 0.00619843 ETH | ||||
16640590 | 667 days ago | 0.03095814 ETH | ||||
16158398 | 735 days ago | 0.04743896 ETH | ||||
16158398 | 735 days ago | 0.00003403 ETH | ||||
16158398 | 735 days ago | 0.01185974 ETH | ||||
16158398 | 735 days ago | 0.05926312 ETH |
Loading...
Loading
Contract Name:
WCP
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-06 */ // SPDX-License-Identifier: MIT /** /$$ /$$ /$$$$$$ /$$$$$$$ /$$ /$$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$$$ | $$ /$ | $$ /$$__ $$| $$__ $$| $$ | $$__ $$ /$$__ $$| $$ | $$| $$__ $$ | $$__ $$ /$$__ $$|__ $$__/ | $$ /$$$| $$| $$ \ $$| $$ \ $$| $$ | $$ \ $$ | $$ \__/| $$ | $$| $$ \ $$ | $$ \ $$| $$ \ $$ | $$ | $$/$$ $$ $$| $$ | $$| $$$$$$$/| $$ | $$ | $$ | $$ | $$ | $$| $$$$$$$/ | $$$$$$$/| $$ | $$ | $$ | $$$$_ $$$$| $$ | $$| $$__ $$| $$ | $$ | $$ | $$ | $$ | $$| $$____/ | $$____/ | $$ | $$ | $$ | $$$/ \ $$$| $$ | $$| $$ \ $$| $$ | $$ | $$ | $$ $$| $$ | $$| $$ | $$ | $$ | $$ | $$ | $$/ \ $$| $$$$$$/| $$ | $$| $$$$$$$$| $$$$$$$/ | $$$$$$/| $$$$$$/| $$ | $$ | $$$$$$/ | $$ |__/ \__/ \______/ |__/ |__/|________/|_______/ \______/ \______/ |__/ |__/ \______/ |__/ ██╗ ██╗ ██████╗██████╗ ██║ ██║██╔════╝██╔══██╗ ██║ █╗ ██║██║ ██████╔╝ ██║███╗██║██║ ██╔═══╝ ╚███╔███╔╝╚██████╗██║ ╚══╝╚══╝ ╚═════╝╚═╝ Socials : Website: https://www.worldcuppot.io/ Telegram:https://t.me/worldcuppot Twitter: https://twitter.com/worldcuppot **/ pragma solidity 0.8.12; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _createInitialSupply(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract WCP is ERC20, Ownable { uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public maxWalletAmount; IDexRouter public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool private swapping; uint256 public swapTokensAtAmount; address public MarketingAddress; uint256 public tradingActiveBlock = 0; // 0 means trading is not active uint256 public deadBlocks = 3; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyTotalFees; uint256 public buyLiquidityFee; uint256 public buyMarketingFee; uint256 public sellTotalFees; uint256 public sellLiquidityFee; uint256 public sellMarketingFee; uint256 public tokensForLiquidity; uint256 public tokensForMarketing; // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; mapping (address => bool) private _isSniper; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event EnabledTrading(bool tradingActive, uint256 deadBlocks); event RemovedLimits(); event ExcludeFromFees(address indexed account, bool isExcluded); event UpdatedMaxBuyAmount(uint256 newAmount); event UpdatedMaxSellAmount(uint256 newAmount); event UpdatedMaxWalletAmount(uint256 newAmount); event UpdatedMarketingAddress(address indexed newWallet); event MaxTransactionExclusion(address _address, bool excluded); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event TransferForeignToken(address token, uint256 amount); constructor() ERC20("World Cup Pot", "WCP") { address newOwner = msg.sender; // can leave alone if owner is deployer. IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 1000000000 * 1e18; maxBuyAmount = totalSupply * 5 / 1000; maxSellAmount = totalSupply * 5 / 1000; maxWalletAmount = totalSupply * 5 / 1000; swapTokensAtAmount = totalSupply * 25 / 100000; // 0.025% swap amount buyMarketingFee = 0; buyLiquidityFee = 0; buyTotalFees = buyLiquidityFee + buyMarketingFee; sellMarketingFee = 2; sellLiquidityFee = 1; sellTotalFees = sellLiquidityFee + sellMarketingFee; /*Key in the Marketing address */ MarketingAddress = address(0xA8eAC40cdeE9BC47e8C805d4d309A204B857fEAB); _excludeFromMaxTransaction(newOwner, true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); excludeFromFees(newOwner, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); _createInitialSupply(newOwner, totalSupply); transferOwnership(newOwner); } receive() external payable {} // once enabled, can never be turned off function enableTrading(bool _status, uint256 _deadBlocks) external onlyOwner { require(!tradingActive, "Cannot re enable trading"); tradingActive = _status; swapEnabled = true; emit EnabledTrading(tradingActive, _deadBlocks); if (tradingActive && tradingActiveBlock == 0) { tradingActiveBlock = block.number; deadBlocks = _deadBlocks; } } // remove limits after token is stable function removeLimits() external onlyOwner { limitsInEffect = false; emit RemovedLimits(); } function updateMaxBuyAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max buy amount lower than 0.1%"); maxBuyAmount = newNum * (10**18); emit UpdatedMaxBuyAmount(maxBuyAmount); } function updateMaxSellAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max sell amount lower than 0.1%"); maxSellAmount = newNum * (10**18); emit UpdatedMaxSellAmount(maxSellAmount); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 3 / 1000)/1e18, "Cannot set max wallet amount lower than 0.3%"); maxWalletAmount = newNum * (10**18); emit UpdatedMaxWalletAmount(maxWalletAmount); } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= totalSupply() * 1 / 1000, "Swap amount cannot be higher than 0.1% total supply."); swapTokensAtAmount = newAmount; } function _excludeFromMaxTransaction(address updAds, bool isExcluded) private { _isExcludedMaxTransactionAmount[updAds] = isExcluded; emit MaxTransactionExclusion(updAds, isExcluded); } function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner { if(!isEx){ require(updAds != uniswapV2Pair, "Cannot remove uniswap pair from max txn"); } _isExcludedMaxTransactionAmount[updAds] = isEx; } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; _excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function updateBuyFees(uint256 _liquidityFee, uint256 _MarketingFee) external onlyOwner { buyLiquidityFee = _liquidityFee; buyMarketingFee = _MarketingFee; buyTotalFees = buyLiquidityFee + buyMarketingFee; require(buyTotalFees <= 15, "Must keep fees at 15% or less"); } function updateSellFees(uint256 _liquidityFee, uint256 _MarketingFee) external onlyOwner { sellLiquidityFee = _liquidityFee; sellMarketingFee = _MarketingFee; sellTotalFees = sellLiquidityFee + sellMarketingFee; require(sellTotalFees <= 30, "Must keep fees at 30% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); require(!_isSniper[from], "You are a sniper, get life!"); require(!_isSniper[to], "You are a sniper, get life!"); if(limitsInEffect){ if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)){ if(!tradingActive){ require(_isExcludedMaxTransactionAmount[from] || _isExcludedMaxTransactionAmount[to], "Trading is not active."); require(from == owner(), "Trading is enabled"); } if (tradingActiveBlock > 0 && block.number < (tradingActiveBlock + deadBlocks) ) { _isSniper[to] = true; } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy."); require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell."); } else if (!_isExcludedMaxTransactionAmount[to] && !_isExcludedMaxTransactionAmount[from]){ require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if(canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = true; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; uint256 penaltyAmount = 0; // only take fees on Trades, not on wallet transfers if(takeFee){ // bot/sniper penalty. Tokens get transferred to Marketing wallet and ETH to liquidity. if(tradingActiveBlock>0 && (tradingActiveBlock + 3) > block.number){ penaltyAmount = amount * 99 / 100; super._transfer(from, MarketingAddress, penaltyAmount); } // on sell else if (automatedMarketMakerPairs[to] && sellTotalFees > 0){ fees = amount * sellTotalFees /100; tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees; tokensForMarketing += fees * sellMarketingFee / sellTotalFees; } // on buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees; tokensForMarketing += fees * buyMarketingFee / buyTotalFees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees + penaltyAmount; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(owner()), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > swapTokensAtAmount * 10){ contractBalance = swapTokensAtAmount * 10; } bool success; // Halve the amount of liquidity tokens uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; swapTokensForEth(contractBalance - liquidityTokens); uint256 ethBalance = address(this).balance; uint256 ethForLiquidity = ethBalance; uint256 ethForMarketing = ethBalance * tokensForMarketing / (totalTokensToSwap - (tokensForLiquidity/2)); ethForLiquidity -= ethForMarketing; tokensForLiquidity = 0; tokensForMarketing = 0; if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); } (success,) = address(MarketingAddress).call{value: ethForMarketing}(""); } function transferForeignToken(address _token, address _to) external onlyOwner returns (bool _sent) { require(_token != address(0), "_token address cannot be 0"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); emit TransferForeignToken(_token, _contractBalance); } event sniperStatusChanged(address indexed sniper_address, bool status); function manageSniper(address sniper_address, bool status) external onlyOwner { require(_isSniper[sniper_address] != status, "Account is already in the said state"); _isSniper[sniper_address] = status; emit sniperStatusChanged(sniper_address, status); } function isSniper(address account) public view returns (bool) { return _isSniper[account]; } // withdraw ETH if stuck or someone sends to the address function withdrawStuckETH() external onlyOwner { bool success; (success,) = address(msg.sender).call{value: address(this).balance}(""); } function setMarketingAddress(address _MarketingAddress) external onlyOwner { require(_MarketingAddress != address(0), "_MarketingAddress address cannot be 0"); MarketingAddress = payable(_MarketingAddress); emit UpdatedMarketingAddress(_MarketingAddress); } function send_privatesale_tokens(address[] calldata addresses, uint256[] calldata values) external onlyOwner { require(addresses.length < 2001,"GAS Error: max airdrop limit is 2000 addresses"); // to prevent overflow for(uint i=0; i < addresses.length; i++){ _transfer(_msgSender(),addresses[i],values[i] * (10 ** 18)); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingActive","type":"bool"},{"indexed":false,"internalType":"uint256","name":"deadBlocks","type":"uint256"}],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedMarketingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sniper_address","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"sniperStatusChanged","type":"event"},{"inputs":[],"name":"MarketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniper_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"send_privatesale_tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_MarketingAddress","type":"address"}],"name":"setMarketingAddress","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":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_MarketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_MarketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600c556003600d55600e805462ffffff191660011790553480156200002a57600080fd5b506040518060400160405280600d81526020016c15dbdc9b190810dd5c08141bdd609a1b8152506040518060400160405280600381526020016205743560ec1b81525081600390805190602001906200008592919062000741565b5080516200009b90600490602084019062000741565b5050506000620000b0620003de60201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062003a90833981519152908290a35033737a250d5630b4cf539739df2c5dacb4c659f2488d62000110816001620003e2565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200015b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001819190620007e7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f59190620007e7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000243573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002699190620007e7565b6001600160a01b031660a08190526200028490600162000445565b6b033b2e3c9fd0803ce80000006103e8620002a18260056200082f565b620002ad919062000851565b6006556103e8620002c08260056200082f565b620002cc919062000851565b6007556103e8620002df8260056200082f565b620002eb919062000851565b600855620186a0620002ff8260196200082f565b6200030b919062000851565b600a5560006011819055601081905562000326908062000874565b600f55600260148190556001601381905562000343919062000874565b601255600b80546001600160a01b03191673a8eac40cdee9bc47e8c805d4d309a204b857feab17905562000379836001620003e2565b62000386306001620003e2565b6200039561dead6001620003e2565b620003a2836001620004b1565b620003af306001620004b1565b620003be61dead6001620004b1565b620003ca83826200055f565b620003d58362000644565b505050620008cc565b3390565b6001600160a01b038216600081815260186020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601960205260409020805460ff1916821515179055620004758282620003e2565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b03163314620005005760405162461bcd60e51b8152602060048201819052602482015260008051602062003a7083398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005b75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004f7565b8060026000828254620005cb919062000874565b90915550506001600160a01b03821660009081526020819052604081208054839290620005fa90849062000874565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b031633146200068f5760405162461bcd60e51b8152602060048201819052602482015260008051602062003a708339815191526044820152606401620004f7565b6001600160a01b038116620006f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004f7565b6005546040516001600160a01b0380841692169060008051602062003a9083398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b8280546200074f906200088f565b90600052602060002090601f016020900481019282620007735760008555620007be565b82601f106200078e57805160ff1916838001178555620007be565b82800160010185558215620007be579182015b82811115620007be578251825591602001919060010190620007a1565b50620007cc929150620007d0565b5090565b5b80821115620007cc5760008155600101620007d1565b600060208284031215620007fa57600080fd5b81516001600160a01b03811681146200081257600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200084c576200084c62000819565b500290565b6000826200086f57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200088a576200088a62000819565b500190565b600181811c90821680620008a457607f821691505b60208210811415620008c657634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161314d6200092360003960008181610575015281816110d401526115580152600081816104420152818161298a01528181612a4301528181612a7f01528181612af90152612b20015261314d6000f3fe60806040526004361061031e5760003560e01c80637bce5a04116101ab578063bbc0c742116100f7578063e2f4560511610095578063f2fde38b1161006f578063f2fde38b14610975578063f5648a4f14610995578063f6374342146109aa578063fabb0b4f146109c057600080fd5b8063e2f4560514610933578063ee40166e14610949578063f11a24d31461095f57600080fd5b8063d257b34f116100d1578063d257b34f14610897578063d85ba063146108b7578063dc3f0d0f146108cd578063dd62ed3e146108ed57600080fd5b8063bbc0c74214610838578063c024666814610857578063c18bc1951461087757600080fd5b80639213691311610164578063a457c2d71161013e578063a457c2d7146107b2578063a9059cbb146107d2578063aa4bde28146107f2578063b62496f51461080857600080fd5b8063921369131461076757806395d89b411461077d5780639a7a23d61461079257600080fd5b80637bce5a04146106bd578063819d38d2146106d35780638366e79a146106f357806388e765ff146107135780638da5cb5b14610729578063906e9dd01461074757600080fd5b80633936e8b91161026a57806366d602ae1161022357806370a08231116101fd57806370a082311461063d578063715018a614610673578063751039fc146106885780637571336a1461069d57600080fd5b806366d602ae146105f15780636a486a8e146106075780636ddd17131461061d57600080fd5b80633936e8b914610523578063395093511461054357806349bd5a5e146105635780634a62bb65146105975780635e83ae76146105b157806366ca9b83146105d157600080fd5b80631694505e116102d75780631f3fed8f116102b15780631f3fed8f146104b157806323b872dd146104c75780632be32b61146104e7578063313ce5671461050757600080fd5b80631694505e1461043057806318160ddd1461047c5780631a8145bb1461049b57600080fd5b806302dbd8f81461032a57806306fdde031461034c578063095ea7b3146103775780630caeec36146103a75780630f3a325f146103c757806310d5de531461040057600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061034a610345366004612bf2565b6109d6565b005b34801561035857600080fd5b50610361610a76565b60405161036e9190612c14565b60405180910390f35b34801561038357600080fd5b50610397610392366004612c81565b610b08565b604051901515815260200161036e565b3480156103b357600080fd5b5061034a6103c2366004612cf9565b610b1e565b3480156103d357600080fd5b506103976103e2366004612d65565b6001600160a01b03166000908152601a602052604090205460ff1690565b34801561040c57600080fd5b5061039761041b366004612d65565b60186020526000908152604090205460ff1681565b34801561043c57600080fd5b506104647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161036e565b34801561048857600080fd5b506002545b60405190815260200161036e565b3480156104a757600080fd5b5061048d60155481565b3480156104bd57600080fd5b5061048d60165481565b3480156104d357600080fd5b506103976104e2366004612d89565b610c30565b3480156104f357600080fd5b5061034a610502366004612dca565b610cda565b34801561051357600080fd5b506040516012815260200161036e565b34801561052f57600080fd5b50600b54610464906001600160a01b031681565b34801561054f57600080fd5b5061039761055e366004612c81565b610de7565b34801561056f57600080fd5b506104647f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a357600080fd5b50600e546103979060ff1681565b3480156105bd57600080fd5b5061034a6105cc366004612df1565b610e23565b3480156105dd57600080fd5b5061034a6105ec366004612bf2565b610f3f565b3480156105fd57600080fd5b5061048d60075481565b34801561061357600080fd5b5061048d60125481565b34801561062957600080fd5b50600e546103979062010000900460ff1681565b34801561064957600080fd5b5061048d610658366004612d65565b6001600160a01b031660009081526020819052604090205490565b34801561067f57600080fd5b5061034a610fd0565b34801561069457600080fd5b5061034a611044565b3480156106a957600080fd5b5061034a6106b8366004612e0f565b6110a3565b3480156106c957600080fd5b5061048d60115481565b3480156106df57600080fd5b5061034a6106ee366004612e0f565b61118f565b3480156106ff57600080fd5b5061039761070e366004612e48565b611294565b34801561071f57600080fd5b5061048d60065481565b34801561073557600080fd5b506005546001600160a01b0316610464565b34801561075357600080fd5b5061034a610762366004612d65565b611445565b34801561077357600080fd5b5061048d60145481565b34801561078957600080fd5b5061036161151d565b34801561079e57600080fd5b5061034a6107ad366004612e0f565b61152c565b3480156107be57600080fd5b506103976107cd366004612c81565b611608565b3480156107de57600080fd5b506103976107ed366004612c81565b6116a1565b3480156107fe57600080fd5b5061048d60085481565b34801561081457600080fd5b50610397610823366004612d65565b60196020526000908152604090205460ff1681565b34801561084457600080fd5b50600e5461039790610100900460ff1681565b34801561086357600080fd5b5061034a610872366004612e0f565b6116ae565b34801561088357600080fd5b5061034a610892366004612dca565b611730565b3480156108a357600080fd5b5061034a6108b2366004612dca565b611839565b3480156108c357600080fd5b5061048d600f5481565b3480156108d957600080fd5b5061034a6108e8366004612dca565b611984565b3480156108f957600080fd5b5061048d610908366004612e48565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561093f57600080fd5b5061048d600a5481565b34801561095557600080fd5b5061048d600c5481565b34801561096b57600080fd5b5061048d60105481565b34801561098157600080fd5b5061034a610990366004612d65565b611a8b565b3480156109a157600080fd5b5061034a611b76565b3480156109b657600080fd5b5061048d60135481565b3480156109cc57600080fd5b5061048d600d5481565b6005546001600160a01b03163314610a095760405162461bcd60e51b8152600401610a0090612e76565b60405180910390fd5b60138290556014819055610a1d8183612ec1565b6012819055601e1015610a725760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610a00565b5050565b606060038054610a8590612ed9565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab190612ed9565b8015610afe5780601f10610ad357610100808354040283529160200191610afe565b820191906000526020600020905b815481529060010190602001808311610ae157829003601f168201915b5050505050905090565b6000610b15338484611bed565b50600192915050565b6005546001600160a01b03163314610b485760405162461bcd60e51b8152600401610a0090612e76565b6107d18310610bb05760405162461bcd60e51b815260206004820152602e60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526d323030302061646472657373657360901b6064820152608401610a00565b60005b83811015610c2957610c1733868684818110610bd157610bd1612f14565b9050602002016020810190610be69190612d65565b858585818110610bf857610bf8612f14565b90506020020135670de0b6b3a7640000610c129190612f2a565b611d11565b80610c2181612f49565b915050610bb3565b5050505050565b6000610c3d848484611d11565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610cc25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a00565b610ccf8533858403611bed565b506001949350505050565b6005546001600160a01b03163314610d045760405162461bcd60e51b8152600401610a0090612e76565b670de0b6b3a76400006103e8610d1960025490565b610d24906001612f2a565b610d2e9190612f64565b610d389190612f64565b811015610d995760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b6064820152608401610a00565b610dab81670de0b6b3a7640000612f2a565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b15918590610e1e908690612ec1565b611bed565b6005546001600160a01b03163314610e4d5760405162461bcd60e51b8152600401610a0090612e76565b600e54610100900460ff1615610ea55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e6700000000000000006044820152606401610a00565b600e805462ff0000198415156101009081029190911662ffff0019909216919091176201000017918290556040517fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea813881292610f1192900460ff169084909115158252602082015260400190565b60405180910390a1600e54610100900460ff168015610f305750600c54155b15610a725743600c55600d5550565b6005546001600160a01b03163314610f695760405162461bcd60e51b8152600401610a0090612e76565b60108290556011819055610f7d8183612ec1565b600f8181551015610a725760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610a00565b6005546001600160a01b03163314610ffa5760405162461bcd60e51b8152600401610a0090612e76565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461106e5760405162461bcd60e51b8152600401610a0090612e76565b600e805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146110cd5760405162461bcd60e51b8152600401610a0090612e76565b80611164577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156111645760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610a00565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111b95760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b0382166000908152601a602052604090205460ff16151581151514156112345760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c726561647920696e20746865207361696420736044820152637461746560e01b6064820152608401610a00565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f15102e890ac340b006ab58d2aeebe97bf1decc13c1e8a341045452bcd429f9b091015b60405180910390a25050565b6005546000906001600160a01b031633146112c15760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b0383166113175760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610a00565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113829190612f86565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af11580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f99190612f9f565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b0316331461146f5760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b0381166114d35760405162461bcd60e51b815260206004820152602560248201527f5f4d61726b6574696e674164647265737320616464726573732063616e6e6f74604482015264020626520360dc1b6064820152608401610a00565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517fd1e7d6a3390dd5008bd1c57798817b9f806e4c417264e7d3d67e42e784dc24a990600090a250565b606060048054610a8590612ed9565b6005546001600160a01b031633146115565760405162461bcd60e51b8152600401610a0090612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156115fe5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a00565b610a7282826125ac565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561168a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a00565b6116973385858403611bed565b5060019392505050565b6000610b15338484611d11565b6005546001600160a01b031633146116d85760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101611288565b6005546001600160a01b0316331461175a5760405162461bcd60e51b8152600401610a0090612e76565b670de0b6b3a76400006103e861176f60025490565b61177a906003612f2a565b6117849190612f64565b61178e9190612f64565b8110156117f25760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610a00565b61180481670de0b6b3a7640000612f2a565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610ddc565b6005546001600160a01b031633146118635760405162461bcd60e51b8152600401610a0090612e76565b620186a061187060025490565b61187b906001612f2a565b6118859190612f64565b8110156118f25760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a00565b6103e86118fe60025490565b611909906001612f2a565b6119139190612f64565b81111561197f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610a00565b600a55565b6005546001600160a01b031633146119ae5760405162461bcd60e51b8152600401610a0090612e76565b670de0b6b3a76400006103e86119c360025490565b6119ce906001612f2a565b6119d89190612f64565b6119e29190612f64565b811015611a445760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b6064820152608401610a00565b611a5681670de0b6b3a7640000612f2a565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610ddc565b6005546001600160a01b03163314611ab55760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b038116611b1a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a00565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611ba05760405162461bcd60e51b8152600401610a0090612e76565b604051600090339047908381818185875af1925050503d8060008114611be2576040519150601f19603f3d011682016040523d82523d6000602084013e611be7565b606091505b50505050565b6001600160a01b038316611c4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a00565b6001600160a01b038216611cb05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a00565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611d375760405162461bcd60e51b8152600401610a0090612fbc565b6001600160a01b038216611d5d5760405162461bcd60e51b8152600401610a0090613001565b60008111611dad5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610a00565b6001600160a01b0383166000908152601a602052604090205460ff1615611e165760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206120736e697065722c20676574206c6966652100000000006044820152606401610a00565b6001600160a01b0382166000908152601a602052604090205460ff1615611e7f5760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206120736e697065722c20676574206c6966652100000000006044820152606401610a00565b600e5460ff1615612292576005546001600160a01b03848116911614801590611eb657506005546001600160a01b03838116911614155b8015611eca57506001600160a01b03821615155b8015611ee157506001600160a01b03821661dead14155b1561229257600e54610100900460ff16611fcb576001600160a01b03831660009081526018602052604090205460ff1680611f3457506001600160a01b03821660009081526018602052604090205460ff165b611f795760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a00565b6005546001600160a01b03848116911614611fcb5760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81a5cc8195b98589b195960721b6044820152606401610a00565b6000600c54118015611feb5750600d54600c54611fe89190612ec1565b43105b15612014576001600160a01b0382166000908152601a60205260409020805460ff191660011790555b6001600160a01b03831660009081526019602052604090205460ff16801561205557506001600160a01b03821660009081526018602052604090205460ff16155b15612131576006548111156120bd5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610a00565b6008546001600160a01b0383166000908152602081905260409020546120e39083612ec1565b111561212c5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610a00565b612292565b6001600160a01b03821660009081526019602052604090205460ff16801561217257506001600160a01b03831660009081526018602052604090205460ff16155b156121dc5760075481111561212c5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610a00565b6001600160a01b03821660009081526018602052604090205460ff1615801561221e57506001600160a01b03831660009081526018602052604090205460ff16155b15612292576008546001600160a01b0383166000908152602081905260409020546122499083612ec1565b11156122925760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610a00565b30600090815260208190526040902054600a54811080159081906122be5750600e5462010000900460ff165b80156122cd575060095460ff16155b80156122f257506001600160a01b03851660009081526019602052604090205460ff16155b801561231757506001600160a01b03851660009081526017602052604090205460ff16155b801561233c57506001600160a01b03841660009081526017602052604090205460ff16155b15612361576009805460ff19166001179055612356612616565b6009805460ff191690555b6001600160a01b03851660009081526017602052604090205460019060ff16806123a357506001600160a01b03851660009081526017602052604090205460ff165b156123ac575060005b6000808215612597576000600c541180156123d4575043600c5460036123d29190612ec1565b115b156124105760646123e6876063612f2a565b6123f09190612f64565b600b5490915061240b9089906001600160a01b03168361277b565b61256f565b6001600160a01b03871660009081526019602052604090205460ff16801561243a57506000601254115b156124c25760646012548761244f9190612f2a565b6124599190612f64565b91506012546013548361246c9190612f2a565b6124769190612f64565b601560008282546124879190612ec1565b909155505060125460145461249c9084612f2a565b6124a69190612f64565b601660008282546124b79190612ec1565b9091555061256f9050565b6001600160a01b03881660009081526019602052604090205460ff1680156124ec57506000600f54115b1561256f576064600f54876125019190612f2a565b61250b9190612f64565b9150600f546010548361251e9190612f2a565b6125289190612f64565b601560008282546125399190612ec1565b9091555050600f5460115461254e9084612f2a565b6125589190612f64565b601660008282546125699190612ec1565b90915550505b81156125805761258088308461277b565b61258a8183612ec1565b6125949087613044565b95505b6125a288888861277b565b5050505050505050565b6001600160a01b0382166000908152601960205260409020805460ff19168215151790556125da82826128d0565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b306000908152602081905260408120549050600060165460155461263a9190612ec1565b9050811580612647575080155b15612650575050565b600a805461265d91612f2a565b82111561267457600a805461267191612f2a565b91505b600080600283601554866126889190612f2a565b6126929190612f64565b61269c9190612f64565b90506126b06126ab8286613044565b612933565b601554479081906000906126c690600290612f64565b6126d09087613044565b6016546126dd9085612f2a565b6126e79190612f64565b90506126f38183613044565b600060158190556016559150831580159061270e5750600082115b1561271d5761271d8483612af3565b600b546040516001600160a01b03909116908290600081818185875af1925050503d806000811461276a576040519150601f19603f3d011682016040523d82523d6000602084013e61276f565b606091505b50505050505050505050565b6001600160a01b0383166127a15760405162461bcd60e51b8152600401610a0090612fbc565b6001600160a01b0382166127c75760405162461bcd60e51b8152600401610a0090613001565b6001600160a01b0383166000908152602081905260409020548181101561283f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a00565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612876908490612ec1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128c291815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260186020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061296857612968612f14565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0a919061305b565b81600181518110612a1d57612a1d612f14565b60200260200101906001600160a01b031690816001600160a01b031681525050612a68307f000000000000000000000000000000000000000000000000000000000000000084611bed565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612abd908590600090869030904290600401613078565b600060405180830381600087803b158015612ad757600080fd5b505af1158015612aeb573d6000803e3d6000fd5b505050505050565b612b1e307f000000000000000000000000000000000000000000000000000000000000000084611bed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719823085600080612b656005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612bcd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c2991906130e9565b60008060408385031215612c0557600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015612c4157858101830151858201604001528201612c25565b81811115612c53576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612c7e57600080fd5b50565b60008060408385031215612c9457600080fd5b8235612c9f81612c69565b946020939093013593505050565b60008083601f840112612cbf57600080fd5b50813567ffffffffffffffff811115612cd757600080fd5b6020830191508360208260051b8501011115612cf257600080fd5b9250929050565b60008060008060408587031215612d0f57600080fd5b843567ffffffffffffffff80821115612d2757600080fd5b612d3388838901612cad565b90965094506020870135915080821115612d4c57600080fd5b50612d5987828801612cad565b95989497509550505050565b600060208284031215612d7757600080fd5b8135612d8281612c69565b9392505050565b600080600060608486031215612d9e57600080fd5b8335612da981612c69565b92506020840135612db981612c69565b929592945050506040919091013590565b600060208284031215612ddc57600080fd5b5035919050565b8015158114612c7e57600080fd5b60008060408385031215612e0457600080fd5b8235612c9f81612de3565b60008060408385031215612e2257600080fd5b8235612e2d81612c69565b91506020830135612e3d81612de3565b809150509250929050565b60008060408385031215612e5b57600080fd5b8235612e6681612c69565b91506020830135612e3d81612c69565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612ed457612ed4612eab565b500190565b600181811c90821680612eed57607f821691505b60208210811415612f0e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615612f4457612f44612eab565b500290565b6000600019821415612f5d57612f5d612eab565b5060010190565b600082612f8157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612f9857600080fd5b5051919050565b600060208284031215612fb157600080fd5b8151612d8281612de3565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008282101561305657613056612eab565b500390565b60006020828403121561306d57600080fd5b8151612d8281612c69565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156130c85784516001600160a01b0316835293830193918301916001016130a3565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156130fe57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212203a548001c1d45c2fb6e79325bcab8ceed32686350140ef3c2d69c9496a4acf8264736f6c634300080c00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x60806040526004361061031e5760003560e01c80637bce5a04116101ab578063bbc0c742116100f7578063e2f4560511610095578063f2fde38b1161006f578063f2fde38b14610975578063f5648a4f14610995578063f6374342146109aa578063fabb0b4f146109c057600080fd5b8063e2f4560514610933578063ee40166e14610949578063f11a24d31461095f57600080fd5b8063d257b34f116100d1578063d257b34f14610897578063d85ba063146108b7578063dc3f0d0f146108cd578063dd62ed3e146108ed57600080fd5b8063bbc0c74214610838578063c024666814610857578063c18bc1951461087757600080fd5b80639213691311610164578063a457c2d71161013e578063a457c2d7146107b2578063a9059cbb146107d2578063aa4bde28146107f2578063b62496f51461080857600080fd5b8063921369131461076757806395d89b411461077d5780639a7a23d61461079257600080fd5b80637bce5a04146106bd578063819d38d2146106d35780638366e79a146106f357806388e765ff146107135780638da5cb5b14610729578063906e9dd01461074757600080fd5b80633936e8b91161026a57806366d602ae1161022357806370a08231116101fd57806370a082311461063d578063715018a614610673578063751039fc146106885780637571336a1461069d57600080fd5b806366d602ae146105f15780636a486a8e146106075780636ddd17131461061d57600080fd5b80633936e8b914610523578063395093511461054357806349bd5a5e146105635780634a62bb65146105975780635e83ae76146105b157806366ca9b83146105d157600080fd5b80631694505e116102d75780631f3fed8f116102b15780631f3fed8f146104b157806323b872dd146104c75780632be32b61146104e7578063313ce5671461050757600080fd5b80631694505e1461043057806318160ddd1461047c5780631a8145bb1461049b57600080fd5b806302dbd8f81461032a57806306fdde031461034c578063095ea7b3146103775780630caeec36146103a75780630f3a325f146103c757806310d5de531461040057600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061034a610345366004612bf2565b6109d6565b005b34801561035857600080fd5b50610361610a76565b60405161036e9190612c14565b60405180910390f35b34801561038357600080fd5b50610397610392366004612c81565b610b08565b604051901515815260200161036e565b3480156103b357600080fd5b5061034a6103c2366004612cf9565b610b1e565b3480156103d357600080fd5b506103976103e2366004612d65565b6001600160a01b03166000908152601a602052604090205460ff1690565b34801561040c57600080fd5b5061039761041b366004612d65565b60186020526000908152604090205460ff1681565b34801561043c57600080fd5b506104647f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161036e565b34801561048857600080fd5b506002545b60405190815260200161036e565b3480156104a757600080fd5b5061048d60155481565b3480156104bd57600080fd5b5061048d60165481565b3480156104d357600080fd5b506103976104e2366004612d89565b610c30565b3480156104f357600080fd5b5061034a610502366004612dca565b610cda565b34801561051357600080fd5b506040516012815260200161036e565b34801561052f57600080fd5b50600b54610464906001600160a01b031681565b34801561054f57600080fd5b5061039761055e366004612c81565b610de7565b34801561056f57600080fd5b506104647f000000000000000000000000ff06393c6c42409a73ae0e5d4e2e2e9b4016c81481565b3480156105a357600080fd5b50600e546103979060ff1681565b3480156105bd57600080fd5b5061034a6105cc366004612df1565b610e23565b3480156105dd57600080fd5b5061034a6105ec366004612bf2565b610f3f565b3480156105fd57600080fd5b5061048d60075481565b34801561061357600080fd5b5061048d60125481565b34801561062957600080fd5b50600e546103979062010000900460ff1681565b34801561064957600080fd5b5061048d610658366004612d65565b6001600160a01b031660009081526020819052604090205490565b34801561067f57600080fd5b5061034a610fd0565b34801561069457600080fd5b5061034a611044565b3480156106a957600080fd5b5061034a6106b8366004612e0f565b6110a3565b3480156106c957600080fd5b5061048d60115481565b3480156106df57600080fd5b5061034a6106ee366004612e0f565b61118f565b3480156106ff57600080fd5b5061039761070e366004612e48565b611294565b34801561071f57600080fd5b5061048d60065481565b34801561073557600080fd5b506005546001600160a01b0316610464565b34801561075357600080fd5b5061034a610762366004612d65565b611445565b34801561077357600080fd5b5061048d60145481565b34801561078957600080fd5b5061036161151d565b34801561079e57600080fd5b5061034a6107ad366004612e0f565b61152c565b3480156107be57600080fd5b506103976107cd366004612c81565b611608565b3480156107de57600080fd5b506103976107ed366004612c81565b6116a1565b3480156107fe57600080fd5b5061048d60085481565b34801561081457600080fd5b50610397610823366004612d65565b60196020526000908152604090205460ff1681565b34801561084457600080fd5b50600e5461039790610100900460ff1681565b34801561086357600080fd5b5061034a610872366004612e0f565b6116ae565b34801561088357600080fd5b5061034a610892366004612dca565b611730565b3480156108a357600080fd5b5061034a6108b2366004612dca565b611839565b3480156108c357600080fd5b5061048d600f5481565b3480156108d957600080fd5b5061034a6108e8366004612dca565b611984565b3480156108f957600080fd5b5061048d610908366004612e48565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561093f57600080fd5b5061048d600a5481565b34801561095557600080fd5b5061048d600c5481565b34801561096b57600080fd5b5061048d60105481565b34801561098157600080fd5b5061034a610990366004612d65565b611a8b565b3480156109a157600080fd5b5061034a611b76565b3480156109b657600080fd5b5061048d60135481565b3480156109cc57600080fd5b5061048d600d5481565b6005546001600160a01b03163314610a095760405162461bcd60e51b8152600401610a0090612e76565b60405180910390fd5b60138290556014819055610a1d8183612ec1565b6012819055601e1015610a725760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610a00565b5050565b606060038054610a8590612ed9565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab190612ed9565b8015610afe5780601f10610ad357610100808354040283529160200191610afe565b820191906000526020600020905b815481529060010190602001808311610ae157829003601f168201915b5050505050905090565b6000610b15338484611bed565b50600192915050565b6005546001600160a01b03163314610b485760405162461bcd60e51b8152600401610a0090612e76565b6107d18310610bb05760405162461bcd60e51b815260206004820152602e60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526d323030302061646472657373657360901b6064820152608401610a00565b60005b83811015610c2957610c1733868684818110610bd157610bd1612f14565b9050602002016020810190610be69190612d65565b858585818110610bf857610bf8612f14565b90506020020135670de0b6b3a7640000610c129190612f2a565b611d11565b80610c2181612f49565b915050610bb3565b5050505050565b6000610c3d848484611d11565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610cc25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a00565b610ccf8533858403611bed565b506001949350505050565b6005546001600160a01b03163314610d045760405162461bcd60e51b8152600401610a0090612e76565b670de0b6b3a76400006103e8610d1960025490565b610d24906001612f2a565b610d2e9190612f64565b610d389190612f64565b811015610d995760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b6064820152608401610a00565b610dab81670de0b6b3a7640000612f2a565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b15918590610e1e908690612ec1565b611bed565b6005546001600160a01b03163314610e4d5760405162461bcd60e51b8152600401610a0090612e76565b600e54610100900460ff1615610ea55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e6700000000000000006044820152606401610a00565b600e805462ff0000198415156101009081029190911662ffff0019909216919091176201000017918290556040517fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea813881292610f1192900460ff169084909115158252602082015260400190565b60405180910390a1600e54610100900460ff168015610f305750600c54155b15610a725743600c55600d5550565b6005546001600160a01b03163314610f695760405162461bcd60e51b8152600401610a0090612e76565b60108290556011819055610f7d8183612ec1565b600f8181551015610a725760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610a00565b6005546001600160a01b03163314610ffa5760405162461bcd60e51b8152600401610a0090612e76565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461106e5760405162461bcd60e51b8152600401610a0090612e76565b600e805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146110cd5760405162461bcd60e51b8152600401610a0090612e76565b80611164577f000000000000000000000000ff06393c6c42409a73ae0e5d4e2e2e9b4016c8146001600160a01b0316826001600160a01b031614156111645760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610a00565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111b95760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b0382166000908152601a602052604090205460ff16151581151514156112345760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c726561647920696e20746865207361696420736044820152637461746560e01b6064820152608401610a00565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f15102e890ac340b006ab58d2aeebe97bf1decc13c1e8a341045452bcd429f9b091015b60405180910390a25050565b6005546000906001600160a01b031633146112c15760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b0383166113175760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610a00565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113829190612f86565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af11580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f99190612f9f565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b0316331461146f5760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b0381166114d35760405162461bcd60e51b815260206004820152602560248201527f5f4d61726b6574696e674164647265737320616464726573732063616e6e6f74604482015264020626520360dc1b6064820152608401610a00565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517fd1e7d6a3390dd5008bd1c57798817b9f806e4c417264e7d3d67e42e784dc24a990600090a250565b606060048054610a8590612ed9565b6005546001600160a01b031633146115565760405162461bcd60e51b8152600401610a0090612e76565b7f000000000000000000000000ff06393c6c42409a73ae0e5d4e2e2e9b4016c8146001600160a01b0316826001600160a01b031614156115fe5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a00565b610a7282826125ac565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561168a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a00565b6116973385858403611bed565b5060019392505050565b6000610b15338484611d11565b6005546001600160a01b031633146116d85760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101611288565b6005546001600160a01b0316331461175a5760405162461bcd60e51b8152600401610a0090612e76565b670de0b6b3a76400006103e861176f60025490565b61177a906003612f2a565b6117849190612f64565b61178e9190612f64565b8110156117f25760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610a00565b61180481670de0b6b3a7640000612f2a565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610ddc565b6005546001600160a01b031633146118635760405162461bcd60e51b8152600401610a0090612e76565b620186a061187060025490565b61187b906001612f2a565b6118859190612f64565b8110156118f25760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a00565b6103e86118fe60025490565b611909906001612f2a565b6119139190612f64565b81111561197f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610a00565b600a55565b6005546001600160a01b031633146119ae5760405162461bcd60e51b8152600401610a0090612e76565b670de0b6b3a76400006103e86119c360025490565b6119ce906001612f2a565b6119d89190612f64565b6119e29190612f64565b811015611a445760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b6064820152608401610a00565b611a5681670de0b6b3a7640000612f2a565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610ddc565b6005546001600160a01b03163314611ab55760405162461bcd60e51b8152600401610a0090612e76565b6001600160a01b038116611b1a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a00565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611ba05760405162461bcd60e51b8152600401610a0090612e76565b604051600090339047908381818185875af1925050503d8060008114611be2576040519150601f19603f3d011682016040523d82523d6000602084013e611be7565b606091505b50505050565b6001600160a01b038316611c4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a00565b6001600160a01b038216611cb05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a00565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611d375760405162461bcd60e51b8152600401610a0090612fbc565b6001600160a01b038216611d5d5760405162461bcd60e51b8152600401610a0090613001565b60008111611dad5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610a00565b6001600160a01b0383166000908152601a602052604090205460ff1615611e165760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206120736e697065722c20676574206c6966652100000000006044820152606401610a00565b6001600160a01b0382166000908152601a602052604090205460ff1615611e7f5760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206120736e697065722c20676574206c6966652100000000006044820152606401610a00565b600e5460ff1615612292576005546001600160a01b03848116911614801590611eb657506005546001600160a01b03838116911614155b8015611eca57506001600160a01b03821615155b8015611ee157506001600160a01b03821661dead14155b1561229257600e54610100900460ff16611fcb576001600160a01b03831660009081526018602052604090205460ff1680611f3457506001600160a01b03821660009081526018602052604090205460ff165b611f795760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a00565b6005546001600160a01b03848116911614611fcb5760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81a5cc8195b98589b195960721b6044820152606401610a00565b6000600c54118015611feb5750600d54600c54611fe89190612ec1565b43105b15612014576001600160a01b0382166000908152601a60205260409020805460ff191660011790555b6001600160a01b03831660009081526019602052604090205460ff16801561205557506001600160a01b03821660009081526018602052604090205460ff16155b15612131576006548111156120bd5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610a00565b6008546001600160a01b0383166000908152602081905260409020546120e39083612ec1565b111561212c5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610a00565b612292565b6001600160a01b03821660009081526019602052604090205460ff16801561217257506001600160a01b03831660009081526018602052604090205460ff16155b156121dc5760075481111561212c5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610a00565b6001600160a01b03821660009081526018602052604090205460ff1615801561221e57506001600160a01b03831660009081526018602052604090205460ff16155b15612292576008546001600160a01b0383166000908152602081905260409020546122499083612ec1565b11156122925760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610a00565b30600090815260208190526040902054600a54811080159081906122be5750600e5462010000900460ff165b80156122cd575060095460ff16155b80156122f257506001600160a01b03851660009081526019602052604090205460ff16155b801561231757506001600160a01b03851660009081526017602052604090205460ff16155b801561233c57506001600160a01b03841660009081526017602052604090205460ff16155b15612361576009805460ff19166001179055612356612616565b6009805460ff191690555b6001600160a01b03851660009081526017602052604090205460019060ff16806123a357506001600160a01b03851660009081526017602052604090205460ff165b156123ac575060005b6000808215612597576000600c541180156123d4575043600c5460036123d29190612ec1565b115b156124105760646123e6876063612f2a565b6123f09190612f64565b600b5490915061240b9089906001600160a01b03168361277b565b61256f565b6001600160a01b03871660009081526019602052604090205460ff16801561243a57506000601254115b156124c25760646012548761244f9190612f2a565b6124599190612f64565b91506012546013548361246c9190612f2a565b6124769190612f64565b601560008282546124879190612ec1565b909155505060125460145461249c9084612f2a565b6124a69190612f64565b601660008282546124b79190612ec1565b9091555061256f9050565b6001600160a01b03881660009081526019602052604090205460ff1680156124ec57506000600f54115b1561256f576064600f54876125019190612f2a565b61250b9190612f64565b9150600f546010548361251e9190612f2a565b6125289190612f64565b601560008282546125399190612ec1565b9091555050600f5460115461254e9084612f2a565b6125589190612f64565b601660008282546125699190612ec1565b90915550505b81156125805761258088308461277b565b61258a8183612ec1565b6125949087613044565b95505b6125a288888861277b565b5050505050505050565b6001600160a01b0382166000908152601960205260409020805460ff19168215151790556125da82826128d0565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b306000908152602081905260408120549050600060165460155461263a9190612ec1565b9050811580612647575080155b15612650575050565b600a805461265d91612f2a565b82111561267457600a805461267191612f2a565b91505b600080600283601554866126889190612f2a565b6126929190612f64565b61269c9190612f64565b90506126b06126ab8286613044565b612933565b601554479081906000906126c690600290612f64565b6126d09087613044565b6016546126dd9085612f2a565b6126e79190612f64565b90506126f38183613044565b600060158190556016559150831580159061270e5750600082115b1561271d5761271d8483612af3565b600b546040516001600160a01b03909116908290600081818185875af1925050503d806000811461276a576040519150601f19603f3d011682016040523d82523d6000602084013e61276f565b606091505b50505050505050505050565b6001600160a01b0383166127a15760405162461bcd60e51b8152600401610a0090612fbc565b6001600160a01b0382166127c75760405162461bcd60e51b8152600401610a0090613001565b6001600160a01b0383166000908152602081905260409020548181101561283f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a00565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612876908490612ec1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128c291815260200190565b60405180910390a350505050565b6001600160a01b038216600081815260186020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061296857612968612f14565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0a919061305b565b81600181518110612a1d57612a1d612f14565b60200260200101906001600160a01b031690816001600160a01b031681525050612a68307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611bed565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612abd908590600090869030904290600401613078565b600060405180830381600087803b158015612ad757600080fd5b505af1158015612aeb573d6000803e3d6000fd5b505050505050565b612b1e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611bed565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d719823085600080612b656005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612bcd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c2991906130e9565b60008060408385031215612c0557600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015612c4157858101830151858201604001528201612c25565b81811115612c53576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612c7e57600080fd5b50565b60008060408385031215612c9457600080fd5b8235612c9f81612c69565b946020939093013593505050565b60008083601f840112612cbf57600080fd5b50813567ffffffffffffffff811115612cd757600080fd5b6020830191508360208260051b8501011115612cf257600080fd5b9250929050565b60008060008060408587031215612d0f57600080fd5b843567ffffffffffffffff80821115612d2757600080fd5b612d3388838901612cad565b90965094506020870135915080821115612d4c57600080fd5b50612d5987828801612cad565b95989497509550505050565b600060208284031215612d7757600080fd5b8135612d8281612c69565b9392505050565b600080600060608486031215612d9e57600080fd5b8335612da981612c69565b92506020840135612db981612c69565b929592945050506040919091013590565b600060208284031215612ddc57600080fd5b5035919050565b8015158114612c7e57600080fd5b60008060408385031215612e0457600080fd5b8235612c9f81612de3565b60008060408385031215612e2257600080fd5b8235612e2d81612c69565b91506020830135612e3d81612de3565b809150509250929050565b60008060408385031215612e5b57600080fd5b8235612e6681612c69565b91506020830135612e3d81612c69565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612ed457612ed4612eab565b500190565b600181811c90821680612eed57607f821691505b60208210811415612f0e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615612f4457612f44612eab565b500290565b6000600019821415612f5d57612f5d612eab565b5060010190565b600082612f8157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612f9857600080fd5b5051919050565b600060208284031215612fb157600080fd5b8151612d8281612de3565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008282101561305657613056612eab565b500390565b60006020828403121561306d57600080fd5b8151612d8281612c69565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156130c85784516001600160a01b0316835293830193918301916001016130a3565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156130fe57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212203a548001c1d45c2fb6e79325bcab8ceed32686350140ef3c2d69c9496a4acf8264736f6c634300080c0033
Deployed Bytecode Sourcemap
8675:15402:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15684:317;;;;;;;;;;-1:-1:-1;15684:317:0;;;;;:::i;:::-;;:::i;:::-;;3393:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4307:169;;;;;;;;;;-1:-1:-1;4307:169:0;;;;;:::i;:::-;;:::i;:::-;;;1490:14:1;;1483:22;1465:41;;1453:2;1438:18;4307:169:0;1325:187:1;23694:376:0;;;;;;;;;;-1:-1:-1;23694:376:0;;;;;:::i;:::-;;:::i;23051:106::-;;;;;;;;;;-1:-1:-1;23051:106:0;;;;;:::i;:::-;-1:-1:-1;;;;;23131:18:0;23107:4;23131:18;;;:9;:18;;;;;;;;;23051:106;9685:64;;;;;;;;;;-1:-1:-1;9685:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8823:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3101:32:1;;;3083:51;;3071:2;3056:18;8823:43:0;2919:221:1;3714:108:0;;;;;;;;;;-1:-1:-1;3802:12:0;;3714:108;;;3291:25:1;;;3279:2;3264:18;3714:108:0;3145:177:1;9488:33:0;;;;;;;;;;;;;;;;9528;;;;;;;;;;;;;;;;4484:480;;;;;;;;;;-1:-1:-1;4484:480:0;;;;;:::i;:::-;;:::i;13103:269::-;;;;;;;;;;-1:-1:-1;13103:269:0;;;;;:::i;:::-;;:::i;3613:93::-;;;;;;;;;;-1:-1:-1;3613:93:0;;3696:2;4115:36:1;;4103:2;4088:18;3613:93:0;3973:184:1;8990:31:0;;;;;;;;;;-1:-1:-1;8990:31:0;;;;-1:-1:-1;;;;;8990:31:0;;;4972:215;;;;;;;;;;-1:-1:-1;4972:215:0;;;;;:::i;:::-;;:::i;8873:38::-;;;;;;;;;;;;;;;9145:33;;;;;;;;;;-1:-1:-1;9145:33:0;;;;;;;;12501:425;;;;;;;;;;-1:-1:-1;12501:425:0;;;;;:::i;:::-;;:::i;15366:310::-;;;;;;;;;;-1:-1:-1;15366:310:0;;;;;:::i;:::-;;:::i;8749:28::-;;;;;;;;;;;;;;;;9375;;;;;;;;;;;;;;;;9225:31;;;;;;;;;;-1:-1:-1;9225:31:0;;;;;;;;;;;3830:127;;;;;;;;;;-1:-1:-1;3830:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3931:18:0;3904:7;3931:18;;;;;;;;;;;;3830:127;7434:150;;;;;;;;;;;;;:::i;12978:115::-;;;;;;;;;;;;;:::i;14589:267::-;;;;;;;;;;-1:-1:-1;14589:267:0;;;;;:::i;:::-;;:::i;9336:30::-;;;;;;;;;;;;;;;;22758:285;;;;;;;;;;-1:-1:-1;22758:285:0;;;;;:::i;:::-;;:::i;22290:381::-;;;;;;;;;;-1:-1:-1;22290:381:0;;;;;:::i;:::-;;:::i;8715:27::-;;;;;;;;;;;;;;;;7220:79;;;;;;;;;;-1:-1:-1;7285:6:0;;-1:-1:-1;;;;;7285:6:0;7220:79;;23397:289;;;;;;;;;;-1:-1:-1;23397:289:0;;;;;:::i;:::-;;:::i;9448:31::-;;;;;;;;;;;;;;;;3501:104;;;;;;;;;;;;;:::i;14864:246::-;;;;;;;;;;-1:-1:-1;14864:246:0;;;;;:::i;:::-;;:::i;5195:401::-;;;;;;;;;;-1:-1:-1;5195:401:0;;;;;:::i;:::-;;:::i;3965:175::-;;;;;;;;;;-1:-1:-1;3965:175:0;;;;;:::i;:::-;;:::i;8784:30::-;;;;;;;;;;;;;;;;9907:58;;;;;;;;;;-1:-1:-1;9907:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9185:33;;;;;;;;;;-1:-1:-1;9185:33:0;;;;;;;;;;;16009:182;;;;;;;;;;-1:-1:-1;16009:182:0;;;;;:::i;:::-;;:::i;13662:284::-;;;;;;;;;;-1:-1:-1;13662:284:0;;;;;:::i;:::-;;:::i;14016:350::-;;;;;;;;;;-1:-1:-1;14016:350:0;;;;;:::i;:::-;;:::i;9265:27::-;;;;;;;;;;;;;;;;13380:274;;;;;;;;;;-1:-1:-1;13380:274:0;;;;;:::i;:::-;;:::i;4148:151::-;;;;;;;;;;-1:-1:-1;4148:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4264:18:0;;;4237:7;4264:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4148:151;8948:33;;;;;;;;;;;;;;;;9030:37;;;;;;;;;;;;;;;;9299:30;;;;;;;;;;;;;;;;7592:244;;;;;;;;;;-1:-1:-1;7592:244:0;;;;;:::i;:::-;;:::i;23227:160::-;;;;;;;;;;;;;:::i;9410:31::-;;;;;;;;;;;;;;;;9107:29;;;;;;;;;;;;;;;;15684:317;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;;;;;;;;;15784:16:::1;:32:::0;;;15827:16:::1;:32:::0;;;15886:35:::1;15846:13:::0;15803;15886:35:::1;:::i;:::-;15870:13;:51:::0;;;15957:2:::1;-1:-1:-1::0;15940:19:0::1;15932:61;;;::::0;-1:-1:-1;;;15932:61:0;;6415:2:1;15932:61:0::1;::::0;::::1;6397:21:1::0;6454:2;6434:18;;;6427:30;6493:31;6473:18;;;6466:59;6542:18;;15932:61:0::1;6213:353:1::0;15932:61:0::1;15684:317:::0;;:::o;3393:100::-;3447:13;3480:5;3473:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3393:100;:::o;4307:169::-;4390:4;4407:39;1912:10;4430:7;4439:6;4407:8;:39::i;:::-;-1:-1:-1;4464:4:0;4307:169;;;;:::o;23694:376::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;23843:4:::1;23824:23:::0;::::1;23816:81;;;::::0;-1:-1:-1;;;23816:81:0;;7158:2:1;23816:81:0::1;::::0;::::1;7140:21:1::0;7197:2;7177:18;;;7170:30;7236:34;7216:18;;;7209:62;-1:-1:-1;;;7287:18:1;;;7280:44;7341:19;;23816:81:0::1;6956:410:1::0;23816:81:0::1;23937:6;23933:130;23947:20:::0;;::::1;23933:130;;;23988:59;1912:10:::0;24011:9:::1;;24021:1;24011:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;24024:6;;24031:1;24024:9;;;;;;;:::i;:::-;;;;;;;24037:8;24024:22;;;;:::i;:::-;23988:9;:59::i;:::-;23969:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23933:130;;;;23694:376:::0;;;;:::o;4484:480::-;4624:4;4641:36;4651:6;4659:9;4670:6;4641:9;:36::i;:::-;-1:-1:-1;;;;;4717:19:0;;4690:24;4717:19;;;:11;:19;;;;;;;;1912:10;4717:33;;;;;;;;4769:26;;;;4761:79;;;;-1:-1:-1;;;4761:79:0;;8018:2:1;4761:79:0;;;8000:21:1;8057:2;8037:18;;;8030:30;8096:34;8076:18;;;8069:62;-1:-1:-1;;;8147:18:1;;;8140:38;8195:19;;4761:79:0;7816:404:1;4761:79:0;4868:57;4877:6;1912:10;4918:6;4899:16;:25;4868:8;:57::i;:::-;-1:-1:-1;4952:4:0;;4484:480;-1:-1:-1;;;;4484:480:0:o;13103:269::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;13222:4:::1;13216;13196:13;3802:12:::0;;;3714:108;13196:13:::1;:17;::::0;13212:1:::1;13196:17;:::i;:::-;:24;;;;:::i;:::-;13195:31;;;;:::i;:::-;13185:6;:41;;13177:95;;;::::0;-1:-1:-1;;;13177:95:0;;8649:2:1;13177:95:0::1;::::0;::::1;8631:21:1::0;8688:2;8668:18;;;8661:30;8727:34;8707:18;;;8700:62;-1:-1:-1;;;8778:18:1;;;8771:39;8827:19;;13177:95:0::1;8447:405:1::0;13177:95:0::1;13298:17;:6:::0;13308::::1;13298:17;:::i;:::-;13283:12;:32:::0;;;13331:33:::1;::::0;3291:25:1;;;13331:33:0::1;::::0;3279:2:1;3264:18;13331:33:0::1;;;;;;;;13103:269:::0;:::o;4972:215::-;1912:10;5060:4;5109:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5109:34:0;;;;;;;;;;5060:4;;5077:80;;5100:7;;5109:47;;5146:10;;5109:47;:::i;:::-;5077:8;:80::i;12501:425::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;12598:13:::1;::::0;::::1;::::0;::::1;;;12597:14;12589:51;;;::::0;-1:-1:-1;;;12589:51:0;;9059:2:1;12589:51:0::1;::::0;::::1;9041:21:1::0;9098:2;9078:18;;;9071:30;9137:26;9117:18;;;9110:54;9181:18;;12589:51:0::1;8857:348:1::0;12589:51:0::1;12651:13;:23:::0;;-1:-1:-1;;12651:23:0;::::1;;;::::0;;::::1;12685:18:::0;;;;-1:-1:-1;;12685:18:0;;;;;;;;::::1;::::0;;;;12719:42:::1;::::0;::::1;::::0;::::1;::::0;12734:13;::::1;12651:23;12734:13;::::0;12749:11;;9403:14:1;;9396:22;9378:41;;9450:2;9435:18;;9428:34;9366:2;9351:18;;9210:258;12719:42:0::1;;;;;;;;12778:13;::::0;::::1;::::0;::::1;;;:40:::0;::::1;;;-1:-1:-1::0;12795:18:0::1;::::0;:23;12778:40:::1;12774:145;;;12856:12;12835:18;:33:::0;12883:10:::1;:24:::0;-1:-1:-1;12501:425:0:o;15366:310::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;15465:15:::1;:31:::0;;;15507:15:::1;:31:::0;;;15564:33:::1;15525:13:::0;15483;15564:33:::1;:::i;:::-;15549:12;:48:::0;;;-1:-1:-1;15616:18:0::1;15608:60;;;::::0;-1:-1:-1;;;15608:60:0;;9675:2:1;15608:60:0::1;::::0;::::1;9657:21:1::0;9714:2;9694:18;;;9687:30;9753:31;9733:18;;;9726:59;9802:18;;15608:60:0::1;9473:353:1::0;7434:150:0;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;7527:6:::1;::::0;7506:40:::1;::::0;7543:1:::1;::::0;-1:-1:-1;;;;;7527:6:0::1;::::0;7506:40:::1;::::0;7543:1;;7506:40:::1;7557:6;:19:::0;;-1:-1:-1;;;;;;7557:19:0::1;::::0;;7434:150::o;12978:115::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;13032:14:::1;:22:::0;;-1:-1:-1;;13032:22:0::1;::::0;;13070:15:::1;::::0;::::1;::::0;13049:5:::1;::::0;13070:15:::1;12978:115::o:0;14589:267::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;14685:4:::1;14681:111;;14723:13;-1:-1:-1::0;;;;;14713:23:0::1;:6;-1:-1:-1::0;;;;;14713:23:0::1;;;14705:75;;;::::0;-1:-1:-1;;;14705:75:0;;10033:2:1;14705:75:0::1;::::0;::::1;10015:21:1::0;10072:2;10052:18;;;10045:30;10111:34;10091:18;;;10084:62;-1:-1:-1;;;10162:18:1;;;10155:37;10209:19;;14705:75:0::1;9831:403:1::0;14705:75:0::1;-1:-1:-1::0;;;;;14802:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;14802:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14589:267::o;22758:285::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22855:25:0;::::1;;::::0;;;:9:::1;:25;::::0;;;;;::::1;;:35;;::::0;::::1;;;;22847:84;;;::::0;-1:-1:-1;;;22847:84:0;;10441:2:1;22847:84:0::1;::::0;::::1;10423:21:1::0;10480:2;10460:18;;;10453:30;10519:34;10499:18;;;10492:62;-1:-1:-1;;;10570:18:1;;;10563:34;10614:19;;22847:84:0::1;10239:400:1::0;22847:84:0::1;-1:-1:-1::0;;;;;22942:25:0;::::1;;::::0;;;:9:::1;:25;::::0;;;;;;;;:34;;-1:-1:-1;;22942:34:0::1;::::0;::::1;;::::0;;::::1;::::0;;;22992:43;;1465:41:1;;;22992:43:0::1;::::0;1438:18:1;22992:43:0::1;;;;;;;;22758:285:::0;;:::o;22290:381::-;7347:6;;22377:10;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22408:20:0;::::1;22400:59;;;::::0;-1:-1:-1;;;22400:59:0;;10846:2:1;22400:59:0::1;::::0;::::1;10828:21:1::0;10885:2;10865:18;;;10858:30;10924:28;10904:18;;;10897:56;10970:18;;22400:59:0::1;10644:350:1::0;22400:59:0::1;22497:39;::::0;-1:-1:-1;;;22497:39:0;;22530:4:::1;22497:39;::::0;::::1;3083:51:1::0;22470:24:0::1;::::0;-1:-1:-1;;;;;22497:24:0;::::1;::::0;::::1;::::0;3056:18:1;;22497:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22555:46;::::0;-1:-1:-1;;;22555:46:0;;-1:-1:-1;;;;;11380:32:1;;;22555:46:0::1;::::0;::::1;11362:51:1::0;11429:18;;;11422:34;;;22470:66:0;;-1:-1:-1;22555:23:0;;::::1;::::0;::::1;::::0;11335:18:1;;22555:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22617;::::0;;-1:-1:-1;;;;;11380:32:1;;11362:51;;11444:2;11429:18;;11422:34;;;22547:54:0;;-1:-1:-1;22617:46:0::1;::::0;11335:18:1;22617:46:0::1;;;;;;;22389:282;22290:381:::0;;;;:::o;23397:289::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23491:31:0;::::1;23483:81;;;::::0;-1:-1:-1;;;23483:81:0;;11919:2:1;23483:81:0::1;::::0;::::1;11901:21:1::0;11958:2;11938:18;;;11931:30;11997:34;11977:18;;;11970:62;-1:-1:-1;;;12048:18:1;;;12041:35;12093:19;;23483:81:0::1;11717:401:1::0;23483:81:0::1;23575:16;:45:::0;;-1:-1:-1;;;;;;23575:45:0::1;-1:-1:-1::0;;;;;23575:45:0;::::1;::::0;;::::1;::::0;;;23636:42:::1;::::0;::::1;::::0;-1:-1:-1;;23636:42:0::1;23397:289:::0;:::o;3501:104::-;3557:13;3590:7;3583:14;;;;;:::i;14864:246::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;14973:13:::1;-1:-1:-1::0;;;;;14965:21:0::1;:4;-1:-1:-1::0;;;;;14965:21:0::1;;;14957:91;;;::::0;-1:-1:-1;;;14957:91:0;;12325:2:1;14957:91:0::1;::::0;::::1;12307:21:1::0;12364:2;12344:18;;;12337:30;12403:34;12383:18;;;12376:62;12474:27;12454:18;;;12447:55;12519:19;;14957:91:0::1;12123:421:1::0;14957:91:0::1;15061:41;15090:4;15096:5;15061:28;:41::i;5195:401::-:0;1912:10;5288:4;5332:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5332:34:0;;;;;;;;;;5385:35;;;;5377:85;;;;-1:-1:-1;;;5377:85:0;;12751:2:1;5377:85:0;;;12733:21:1;12790:2;12770:18;;;12763:30;12829:34;12809:18;;;12802:62;-1:-1:-1;;;12880:18:1;;;12873:35;12925:19;;5377:85:0;12549:401:1;5377:85:0;5490:67;1912:10;5513:7;5541:15;5522:16;:34;5490:8;:67::i;:::-;-1:-1:-1;5584:4:0;;5195:401;-1:-1:-1;;;5195:401:0:o;3965:175::-;4051:4;4068:42;1912:10;4092:9;4103:6;4068:9;:42::i;16009:182::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16094:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;16094:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16149:34;;1465:41:1;;;16149:34:0::1;::::0;1438:18:1;16149:34:0::1;1325:187:1::0;13662:284:0;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;13784:4:::1;13778;13758:13;3802:12:::0;;;3714:108;13758:13:::1;:17;::::0;13774:1:::1;13758:17;:::i;:::-;:24;;;;:::i;:::-;13757:31;;;;:::i;:::-;13747:6;:41;;13739:98;;;::::0;-1:-1:-1;;;13739:98:0;;13157:2:1;13739:98:0::1;::::0;::::1;13139:21:1::0;13196:2;13176:18;;;13169:30;13235:34;13215:18;;;13208:62;-1:-1:-1;;;13286:18:1;;;13279:42;13338:19;;13739:98:0::1;12955:408:1::0;13739:98:0::1;13866:17;:6:::0;13876::::1;13866:17;:::i;:::-;13848:15;:35:::0;;;13899:39:::1;::::0;3291:25:1;;;13899:39:0::1;::::0;3279:2:1;3264:18;13899:39:0::1;3145:177:1::0;14016:350:0;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;14140:6:::1;14120:13;3802:12:::0;;;3714:108;14120:13:::1;:17;::::0;14136:1:::1;14120:17;:::i;:::-;:26;;;;:::i;:::-;14107:9;:39;;14099:105;;;::::0;-1:-1:-1;;;14099:105:0;;13570:2:1;14099:105:0::1;::::0;::::1;13552:21:1::0;13609:2;13589:18;;;13582:30;13648:34;13628:18;;;13621:62;-1:-1:-1;;;13699:18:1;;;13692:51;13760:19;;14099:105:0::1;13368:417:1::0;14099:105:0::1;14256:4;14236:13;3802:12:::0;;;3714:108;14236:13:::1;:17;::::0;14252:1:::1;14236:17;:::i;:::-;:24;;;;:::i;:::-;14223:9;:37;;14215:102;;;::::0;-1:-1:-1;;;14215:102:0;;13992:2:1;14215:102:0::1;::::0;::::1;13974:21:1::0;14031:2;14011:18;;;14004:30;14070:34;14050:18;;;14043:62;-1:-1:-1;;;14121:18:1;;;14114:50;14181:19;;14215:102:0::1;13790:416:1::0;14215:102:0::1;14328:18;:30:::0;14016:350::o;13380:274::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;13500:4:::1;13494;13474:13;3802:12:::0;;;3714:108;13474:13:::1;:17;::::0;13490:1:::1;13474:17;:::i;:::-;:24;;;;:::i;:::-;13473:31;;;;:::i;:::-;13463:6;:41;;13455:96;;;::::0;-1:-1:-1;;;13455:96:0;;14413:2:1;13455:96:0::1;::::0;::::1;14395:21:1::0;14452:2;14432:18;;;14425:30;14491:34;14471:18;;;14464:62;-1:-1:-1;;;14542:18:1;;;14535:40;14592:19;;13455:96:0::1;14211:406:1::0;13455:96:0::1;13578:17;:6:::0;13588::::1;13578:17;:::i;:::-;13562:13;:33:::0;;;13611:35:::1;::::0;3291:25:1;;;13611:35:0::1;::::0;3279:2:1;3264:18;13611:35:0::1;3145:177:1::0;7592:244:0;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7681:22:0;::::1;7673:73;;;::::0;-1:-1:-1;;;7673:73:0;;14824:2:1;7673:73:0::1;::::0;::::1;14806:21:1::0;14863:2;14843:18;;;14836:30;14902:34;14882:18;;;14875:62;-1:-1:-1;;;14953:18:1;;;14946:36;14999:19;;7673:73:0::1;14622:402:1::0;7673:73:0::1;7783:6;::::0;7762:38:::1;::::0;-1:-1:-1;;;;;7762:38:0;;::::1;::::0;7783:6:::1;::::0;7762:38:::1;::::0;7783:6:::1;::::0;7762:38:::1;7811:6;:17:::0;;-1:-1:-1;;;;;;7811:17:0::1;-1:-1:-1::0;;;;;7811:17:0;;;::::1;::::0;;;::::1;::::0;;7592:244::o;23227:160::-;7347:6;;-1:-1:-1;;;;;7347:6:0;1912:10;7347:22;7339:67;;;;-1:-1:-1;;;7339:67:0;;;;;;;:::i;:::-;23321:58:::1;::::0;23285:12:::1;::::0;23329:10:::1;::::0;23353:21:::1;::::0;23285:12;23321:58;23285:12;23321:58;23353:21;23329:10;23321:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;23227:160:0:o;6513:380::-;-1:-1:-1;;;;;6649:19:0;;6641:68;;;;-1:-1:-1;;;6641:68:0;;15441:2:1;6641:68:0;;;15423:21:1;15480:2;15460:18;;;15453:30;15519:34;15499:18;;;15492:62;-1:-1:-1;;;15570:18:1;;;15563:34;15614:19;;6641:68:0;15239:400:1;6641:68:0;-1:-1:-1;;;;;6728:21:0;;6720:68;;;;-1:-1:-1;;;6720:68:0;;15846:2:1;6720:68:0;;;15828:21:1;15885:2;15865:18;;;15858:30;15924:34;15904:18;;;15897:62;-1:-1:-1;;;15975:18:1;;;15968:32;16017:19;;6720:68:0;15644:398:1;6720:68:0;-1:-1:-1;;;;;6801:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6853:32;;3291:25:1;;;6853:32:0;;3264:18:1;6853:32:0;;;;;;;6513:380;;;:::o;16201:3784::-;-1:-1:-1;;;;;16301:18:0;;16293:68;;;;-1:-1:-1;;;16293:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16380:16:0;;16372:64;;;;-1:-1:-1;;;16372:64:0;;;;;;;:::i;:::-;16464:1;16455:6;:10;16447:52;;;;-1:-1:-1;;;16447:52:0;;17059:2:1;16447:52:0;;;17041:21:1;17098:2;17078:18;;;17071:30;17137:31;17117:18;;;17110:59;17186:18;;16447:52:0;16857:353:1;16447:52:0;-1:-1:-1;;;;;16519:15:0;;;;;;:9;:15;;;;;;;;16518:16;16510:56;;;;-1:-1:-1;;;16510:56:0;;17417:2:1;16510:56:0;;;17399:21:1;17456:2;17436:18;;;17429:30;17495:29;17475:18;;;17468:57;17542:18;;16510:56:0;17215:351:1;16510:56:0;-1:-1:-1;;;;;16586:13:0;;;;;;:9;:13;;;;;;;;16585:14;16577:54;;;;-1:-1:-1;;;16577:54:0;;17417:2:1;16577:54:0;;;17399:21:1;17456:2;17436:18;;;17429:30;17495:29;17475:18;;;17468:57;17542:18;;16577:54:0;17215:351:1;16577:54:0;16649:14;;;;16646:1386;;;7285:6;;-1:-1:-1;;;;;16683:15:0;;;7285:6;;16683:15;;;;:32;;-1:-1:-1;7285:6:0;;-1:-1:-1;;;;;16702:13:0;;;7285:6;;16702:13;;16683:32;:52;;;;-1:-1:-1;;;;;;16719:16:0;;;;16683:52;:77;;;;-1:-1:-1;;;;;;16739:21:0;;16753:6;16739:21;;16683:77;16679:1342;;;16784:13;;;;;;;16780:241;;-1:-1:-1;;;;;16829:37:0;;;;;;:31;:37;;;;;;;;;:76;;-1:-1:-1;;;;;;16870:35:0;;;;;;:31;:35;;;;;;;;16829:76;16821:111;;;;-1:-1:-1;;;16821:111:0;;17773:2:1;16821:111:0;;;17755:21:1;17812:2;17792:18;;;17785:30;-1:-1:-1;;;17831:18:1;;;17824:52;17893:18;;16821:111:0;17571:346:1;16821:111:0;7285:6;;-1:-1:-1;;;;;16963:15:0;;;7285:6;;16963:15;16955:46;;;;-1:-1:-1;;;16955:46:0;;18124:2:1;16955:46:0;;;18106:21:1;18163:2;18143:18;;;18136:30;-1:-1:-1;;;18182:18:1;;;18175:48;18240:18;;16955:46:0;17922:342:1;16955:46:0;17066:1;17045:18;;:22;:74;;;;;17108:10;;17087:18;;:31;;;;:::i;:::-;17071:12;:48;17045:74;17041:144;;;-1:-1:-1;;;;;17145:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;17145:20:0;17161:4;17145:20;;;17041:144;-1:-1:-1;;;;;17237:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;17273:35:0;;;;;;:31;:35;;;;;;;;17272:36;17237:71;17233:773;;;17351:12;;17341:6;:22;;17333:75;;;;-1:-1:-1;;;17333:75:0;;18471:2:1;17333:75:0;;;18453:21:1;18510:2;18490:18;;;18483:30;18549:34;18529:18;;;18522:62;-1:-1:-1;;;18600:18:1;;;18593:38;18648:19;;17333:75:0;18269:404:1;17333:75:0;17465:15;;-1:-1:-1;;;;;3931:18:0;;3904:7;3931:18;;;;;;;;;;;17439:22;;:6;:22;:::i;:::-;:41;;17431:78;;;;-1:-1:-1;;;17431:78:0;;18880:2:1;17431:78:0;;;18862:21:1;18919:2;18899:18;;;18892:30;-1:-1:-1;;;18938:18:1;;;18931:54;19002:18;;17431:78:0;18678:348:1;17431:78:0;17233:773;;;-1:-1:-1;;;;;17585:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;17619:37:0;;;;;;:31;:37;;;;;;;;17618:38;17585:71;17581:425;;;17699:13;;17689:6;:23;;17681:78;;;;-1:-1:-1;;;17681:78:0;;19233:2:1;17681:78:0;;;19215:21:1;19272:2;19252:18;;;19245:30;19311:34;19291:18;;;19284:62;-1:-1:-1;;;19362:18:1;;;19355:40;19412:19;;17681:78:0;19031:406:1;17581:425:0;-1:-1:-1;;;;;17807:35:0;;;;;;:31;:35;;;;;;;;17806:36;:78;;;;-1:-1:-1;;;;;;17847:37:0;;;;;;:31;:37;;;;;;;;17846:38;17806:78;17802:204;;;17942:15;;-1:-1:-1;;;;;3931:18:0;;3904:7;3931:18;;;;;;;;;;;17916:22;;:6;:22;:::i;:::-;:41;;17908:78;;;;-1:-1:-1;;;17908:78:0;;18880:2:1;17908:78:0;;;18862:21:1;18919:2;18899:18;;;18892:30;-1:-1:-1;;;18938:18:1;;;18931:54;19002:18;;17908:78:0;18678:348:1;17908:78:0;18093:4;18044:28;3931:18;;;;;;;;;;;18151;;18127:42;;;;;;;18185:22;;-1:-1:-1;18196:11:0;;;;;;;18185:22;:35;;;;-1:-1:-1;18212:8:0;;;;18211:9;18185:35;:71;;;;-1:-1:-1;;;;;;18225:31:0;;;;;;:25;:31;;;;;;;;18224:32;18185:71;:101;;;;-1:-1:-1;;;;;;18261:25:0;;;;;;:19;:25;;;;;;;;18260:26;18185:101;:129;;;;-1:-1:-1;;;;;;18291:23:0;;;;;;:19;:23;;;;;;;;18290:24;18185:129;18182:236;;;18331:8;:15;;-1:-1:-1;;18331:15:0;18342:4;18331:15;;;18363:10;:8;:10::i;:::-;18390:8;:16;;-1:-1:-1;;18390:16:0;;;18182:236;-1:-1:-1;;;;;18548:25:0;;18430:12;18548:25;;;:19;:25;;;;;;18445:4;;18548:25;;;:52;;-1:-1:-1;;;;;;18577:23:0;;;;;;:19;:23;;;;;;;;18548:52;18545:99;;;-1:-1:-1;18627:5:0;18545:99;18656:12;18683:21;18786:7;18783:1149;;;18933:1;18914:18;;:20;:63;;;;;18965:12;18939:18;;18960:1;18939:22;;;;:::i;:::-;18938:39;18914:63;18911:858;;;19027:3;19013:11;:6;19022:2;19013:11;:::i;:::-;:17;;;;:::i;:::-;19071:16;;18997:33;;-1:-1:-1;19049:54:0;;19065:4;;-1:-1:-1;;;;;19071:16:0;18997:33;19049:15;:54::i;:::-;18911:858;;;-1:-1:-1;;;;;19166:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;19215:1;19199:13;;:17;19166:50;19162:607;;;19267:3;19252:13;;19243:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;19236:34;;19337:13;;19318:16;;19311:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;19289:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;19417:13:0;;19398:16;;19391:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;19369:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;19162:607:0;;-1:-1:-1;19162:607:0;;-1:-1:-1;;;;;19491:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;19541:1;19526:12;;:16;19491:51;19488:281;;;19594:3;19579:12;;19570:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;19563:34;;19663:12;;19645:15;;19638:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;19616:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;19741:12:0;;19723:15;;19716:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;19694:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;19488:281:0;19788:8;;19785:89;;19816:42;19832:4;19846;19853;19816:15;:42::i;:::-;19900:20;19907:13;19900:4;:20;:::i;:::-;19890:30;;;;:::i;:::-;;;18783:1149;19944:33;19960:4;19966:2;19970:6;19944:15;:33::i;:::-;16280:3705;;;;;16201:3784;;;:::o;15118:240::-;-1:-1:-1;;;;;15201:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;15201:39:0;;;;;;;15253;15201:31;:39;15253:26;:39::i;:::-;15310:40;;;;;;-1:-1:-1;;;;;15310:40:0;;;;;;;;15118:240;;:::o;21122:1160::-;21205:4;21161:23;3931:18;;;;;;;;;;;21161:50;;21222:25;21271:18;;21250;;:39;;;;:::i;:::-;21222:67;-1:-1:-1;21305:20:0;;;:46;;-1:-1:-1;21329:22:0;;21305:46;21302:60;;;21354:7;;21122:1160::o;21302:60::-;21395:18;;;:23;;;:::i;:::-;21377:15;:41;21374:113;;;21452:18;;;:23;;;:::i;:::-;21434:41;;21374:113;21499:12;21573:23;21658:1;21638:17;21617:18;;21599:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;21573:86;-1:-1:-1;21672:51:0;21689:33;21573:86;21689:15;:33;:::i;:::-;21672:16;:51::i;:::-;21920:18;;21757:21;;;;21736:18;;21920:20;;21939:1;;21920:20;:::i;:::-;21899:42;;:17;:42;:::i;:::-;21877:18;;21864:31;;:10;:31;:::i;:::-;:78;;;;:::i;:::-;21838:104;-1:-1:-1;21955:34:0;21838:104;21955:34;;:::i;:::-;22023:1;22002:18;:22;;;22035:18;:22;21955:34;-1:-1:-1;22073:19:0;;;;;:42;;;22114:1;22096:15;:19;22073:42;22070:119;;;22131:46;22144:15;22161;22131:12;:46::i;:::-;22222:16;;22214:58;;-1:-1:-1;;;;;22222:16:0;;;;22252:15;;22214:58;;;;22252:15;22222:16;22214:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;21122:1160:0:o;5604:602::-;-1:-1:-1;;;;;5744:20:0;;5736:70;;;;-1:-1:-1;;;5736:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5825:23:0;;5817:71;;;;-1:-1:-1;;;5817:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5925:17:0;;5901:21;5925:17;;;;;;;;;;;5961:23;;;;5953:74;;;;-1:-1:-1;;;5953:74:0;;19774:2:1;5953:74:0;;;19756:21:1;19813:2;19793:18;;;19786:30;19852:34;19832:18;;;19825:62;-1:-1:-1;;;19903:18:1;;;19896:36;19949:19;;5953:74:0;19572:402:1;5953:74:0;-1:-1:-1;;;;;6055:17:0;;;:9;:17;;;;;;;;;;;6075:22;;;6055:42;;6115:20;;;;;;;;:30;;6091:6;;6055:9;6115:30;;6091:6;;6115:30;:::i;:::-;;;;;;;;6180:9;-1:-1:-1;;;;;6163:35:0;6172:6;-1:-1:-1;;;;;6163:35:0;;6191:6;6163:35;;;;3291:25:1;;3279:2;3264:18;;3145:177;6163:35:0;;;;;;;;5725:481;5604:602;;;:::o;14374:207::-;-1:-1:-1;;;;;14462:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;14462:52:0;;;;;;;;;;14530:43;;20147:51:1;;;20214:18;;;20207:50;14530:43:0;;20120:18:1;14530:43:0;;;;;;;14374:207;;:::o;19993:591::-;20145:16;;;20159:1;20145:16;;;;;;;;20121:21;;20145:16;;;;;;;;;;-1:-1:-1;20145:16:0;20121:40;;20190:4;20172;20177:1;20172:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20172:23:0;;;-1:-1:-1;;;;;20172:23:0;;;;;20216:15;-1:-1:-1;;;;;20216:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20206:4;20211:1;20206:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;20206:32:0;;;-1:-1:-1;;;;;20206:32:0;;;;;20251:62;20268:4;20283:15;20301:11;20251:8;:62::i;:::-;20352:224;;-1:-1:-1;;;20352:224:0;;-1:-1:-1;;;;;20352:15:0;:66;;;;:224;;20433:11;;20459:1;;20503:4;;20530;;20550:15;;20352:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20048:536;19993:591;:::o;20592:522::-;20740:62;20757:4;20772:15;20790:11;20740:8;:62::i;:::-;20845:15;-1:-1:-1;;;;;20845:31:0;;20884:9;20917:4;20937:11;20963:1;21006;21057:7;7285:6;;-1:-1:-1;;;;;7285:6:0;;7220:79;21057:7;20845:261;;;;;;-1:-1:-1;;;;;;20845:261:0;;;-1:-1:-1;;;;;22000:15:1;;;20845:261:0;;;21982:34:1;22032:18;;;22025:34;;;;22075:18;;;22068:34;;;;22118:18;;;22111:34;22182:15;;;22161:19;;;22154:44;21080:15:0;22214:19:1;;;22207:35;21916:19;;20845:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:597::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;705:6;702:1;699:13;696:91;;;775:1;770:2;761:6;750:9;746:22;742:31;735:42;696:91;-1:-1:-1;848:2:1;827:15;-1:-1:-1;;823:29:1;808:45;;;;855:2;804:54;;267:597;-1:-1:-1;;;267:597:1:o;869:131::-;-1:-1:-1;;;;;944:31:1;;934:42;;924:70;;990:1;987;980:12;924:70;869:131;:::o;1005:315::-;1073:6;1081;1134:2;1122:9;1113:7;1109:23;1105:32;1102:52;;;1150:1;1147;1140:12;1102:52;1189:9;1176:23;1208:31;1233:5;1208:31;:::i;:::-;1258:5;1310:2;1295:18;;;;1282:32;;-1:-1:-1;;;1005:315:1:o;1517:367::-;1580:8;1590:6;1644:3;1637:4;1629:6;1625:17;1621:27;1611:55;;1662:1;1659;1652:12;1611:55;-1:-1:-1;1685:20:1;;1728:18;1717:30;;1714:50;;;1760:1;1757;1750:12;1714:50;1797:4;1789:6;1785:17;1773:29;;1857:3;1850:4;1840:6;1837:1;1833:14;1825:6;1821:27;1817:38;1814:47;1811:67;;;1874:1;1871;1864:12;1811:67;1517:367;;;;;:::o;1889:773::-;2011:6;2019;2027;2035;2088:2;2076:9;2067:7;2063:23;2059:32;2056:52;;;2104:1;2101;2094:12;2056:52;2144:9;2131:23;2173:18;2214:2;2206:6;2203:14;2200:34;;;2230:1;2227;2220:12;2200:34;2269:70;2331:7;2322:6;2311:9;2307:22;2269:70;:::i;:::-;2358:8;;-1:-1:-1;2243:96:1;-1:-1:-1;2446:2:1;2431:18;;2418:32;;-1:-1:-1;2462:16:1;;;2459:36;;;2491:1;2488;2481:12;2459:36;;2530:72;2594:7;2583:8;2572:9;2568:24;2530:72;:::i;:::-;1889:773;;;;-1:-1:-1;2621:8:1;-1:-1:-1;;;;1889:773:1:o;2667:247::-;2726:6;2779:2;2767:9;2758:7;2754:23;2750:32;2747:52;;;2795:1;2792;2785:12;2747:52;2834:9;2821:23;2853:31;2878:5;2853:31;:::i;:::-;2903:5;2667:247;-1:-1:-1;;;2667:247:1:o;3327:456::-;3404:6;3412;3420;3473:2;3461:9;3452:7;3448:23;3444:32;3441:52;;;3489:1;3486;3479:12;3441:52;3528:9;3515:23;3547:31;3572:5;3547:31;:::i;:::-;3597:5;-1:-1:-1;3654:2:1;3639:18;;3626:32;3667:33;3626:32;3667:33;:::i;:::-;3327:456;;3719:7;;-1:-1:-1;;;3773:2:1;3758:18;;;;3745:32;;3327:456::o;3788:180::-;3847:6;3900:2;3888:9;3879:7;3875:23;3871:32;3868:52;;;3916:1;3913;3906:12;3868:52;-1:-1:-1;3939:23:1;;3788:180;-1:-1:-1;3788:180:1:o;4370:118::-;4456:5;4449:13;4442:21;4435:5;4432:32;4422:60;;4478:1;4475;4468:12;4493:309;4558:6;4566;4619:2;4607:9;4598:7;4594:23;4590:32;4587:52;;;4635:1;4632;4625:12;4587:52;4674:9;4661:23;4693:28;4715:5;4693:28;:::i;4807:382::-;4872:6;4880;4933:2;4921:9;4912:7;4908:23;4904:32;4901:52;;;4949:1;4946;4939:12;4901:52;4988:9;4975:23;5007:31;5032:5;5007:31;:::i;:::-;5057:5;-1:-1:-1;5114:2:1;5099:18;;5086:32;5127:30;5086:32;5127:30;:::i;:::-;5176:7;5166:17;;;4807:382;;;;;:::o;5194:388::-;5262:6;5270;5323:2;5311:9;5302:7;5298:23;5294:32;5291:52;;;5339:1;5336;5329:12;5291:52;5378:9;5365:23;5397:31;5422:5;5397:31;:::i;:::-;5447:5;-1:-1:-1;5504:2:1;5489:18;;5476:32;5517:33;5476:32;5517:33;:::i;5587:356::-;5789:2;5771:21;;;5808:18;;;5801:30;5867:34;5862:2;5847:18;;5840:62;5934:2;5919:18;;5587:356::o;5948:127::-;6009:10;6004:3;6000:20;5997:1;5990:31;6040:4;6037:1;6030:15;6064:4;6061:1;6054:15;6080:128;6120:3;6151:1;6147:6;6144:1;6141:13;6138:39;;;6157:18;;:::i;:::-;-1:-1:-1;6193:9:1;;6080:128::o;6571:380::-;6650:1;6646:12;;;;6693;;;6714:61;;6768:4;6760:6;6756:17;6746:27;;6714:61;6821:2;6813:6;6810:14;6790:18;6787:38;6784:161;;;6867:10;6862:3;6858:20;6855:1;6848:31;6902:4;6899:1;6892:15;6930:4;6927:1;6920:15;6784:161;;6571:380;;;:::o;7371:127::-;7432:10;7427:3;7423:20;7420:1;7413:31;7463:4;7460:1;7453:15;7487:4;7484:1;7477:15;7503:168;7543:7;7609:1;7605;7601:6;7597:14;7594:1;7591:21;7586:1;7579:9;7572:17;7568:45;7565:71;;;7616:18;;:::i;:::-;-1:-1:-1;7656:9:1;;7503:168::o;7676:135::-;7715:3;-1:-1:-1;;7736:17:1;;7733:43;;;7756:18;;:::i;:::-;-1:-1:-1;7803:1:1;7792:13;;7676:135::o;8225:217::-;8265:1;8291;8281:132;;8335:10;8330:3;8326:20;8323:1;8316:31;8370:4;8367:1;8360:15;8398:4;8395:1;8388:15;8281:132;-1:-1:-1;8427:9:1;;8225:217::o;10999:184::-;11069:6;11122:2;11110:9;11101:7;11097:23;11093:32;11090:52;;;11138:1;11135;11128:12;11090:52;-1:-1:-1;11161:16:1;;10999:184;-1:-1:-1;10999:184:1:o;11467:245::-;11534:6;11587:2;11575:9;11566:7;11562:23;11558:32;11555:52;;;11603:1;11600;11593:12;11555:52;11635:9;11629:16;11654:28;11676:5;11654:28;:::i;16047:401::-;16249:2;16231:21;;;16288:2;16268:18;;;16261:30;16327:34;16322:2;16307:18;;16300:62;-1:-1:-1;;;16393:2:1;16378:18;;16371:35;16438:3;16423:19;;16047:401::o;16453:399::-;16655:2;16637:21;;;16694:2;16674:18;;;16667:30;16733:34;16728:2;16713:18;;16706:62;-1:-1:-1;;;16799:2:1;16784:18;;16777:33;16842:3;16827:19;;16453:399::o;19442:125::-;19482:4;19510:1;19507;19504:8;19501:34;;;19515:18;;:::i;:::-;-1:-1:-1;19552:9:1;;19442:125::o;20400:251::-;20470:6;20523:2;20511:9;20502:7;20498:23;20494:32;20491:52;;;20539:1;20536;20529:12;20491:52;20571:9;20565:16;20590:31;20615:5;20590:31;:::i;20656:980::-;20918:4;20966:3;20955:9;20951:19;20997:6;20986:9;20979:25;21023:2;21061:6;21056:2;21045:9;21041:18;21034:34;21104:3;21099:2;21088:9;21084:18;21077:31;21128:6;21163;21157:13;21194:6;21186;21179:22;21232:3;21221:9;21217:19;21210:26;;21271:2;21263:6;21259:15;21245:29;;21292:1;21302:195;21316:6;21313:1;21310:13;21302:195;;;21381:13;;-1:-1:-1;;;;;21377:39:1;21365:52;;21472:15;;;;21437:12;;;;21413:1;21331:9;21302:195;;;-1:-1:-1;;;;;;;21553:32:1;;;;21548:2;21533:18;;21526:60;-1:-1:-1;;;21617:3:1;21602:19;21595:35;21514:3;20656:980;-1:-1:-1;;;20656:980:1:o;22253:306::-;22341:6;22349;22357;22410:2;22398:9;22389:7;22385:23;22381:32;22378:52;;;22426:1;22423;22416:12;22378:52;22455:9;22449:16;22439:26;;22505:2;22494:9;22490:18;22484:25;22474:35;;22549:2;22538:9;22534:18;22528:25;22518:35;;22253:306;;;;;:::o
Swarm Source
ipfs://3a548001c1d45c2fb6e79325bcab8ceed32686350140ef3c2d69c9496a4acf82
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BSC | 100.00% | $3,845.36 | 0.1775 | $682.41 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.