ERC-20
Overview
Max Total Supply
690,000,000,000,000 MC
Holders
104
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
60,004,587,166.674672994944126447 MCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MongChain
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-04 */ // SPDX-License-Identifier: MIT /*** https://mongchain.network/ https://t.me/mongchain_portal **/ 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 MongChain is ERC20, Ownable { uint256 public minBuyAmount; uint256 public maxWalletAmount; IDexRouter public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool private swapping; uint256 public swapTokensAtAmount; address public TreasuryAddress; address public RewardsAddress; uint256 public tradingActiveBlock = 0; // 0 means trading is not active uint256 public deadBlocks = 2; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyTotalFees; uint256 public buyTreasuryFee; uint256 public buyLiquidityFee; uint256 public buyRewardsFee; uint256 public sellTotalFees; uint256 public sellTreasuryFee; uint256 public sellLiquidityFee; uint256 public sellRewardsFee; uint256 public tokensForTreasury; uint256 public tokensForLiquidity; uint256 public tokensForRewards; // 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 UpdatedMinBuyAmount(uint256 newAmount); event UpdatedMaxWalletAmount(uint256 newAmount); event UpdatedTreasuryAddress(address indexed newWallet); event UpdatedRewardsAddress(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("MongChain", "MC") { address newOwner = msg.sender; 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 = 690000000000000 * 1e18; minBuyAmount = totalSupply * 80 / 10000; maxWalletAmount = totalSupply * 90 / 10000; swapTokensAtAmount = totalSupply * 50 / 100000; buyTreasuryFee = 8; buyLiquidityFee = 0; buyRewardsFee = 2; buyTotalFees = buyTreasuryFee + buyLiquidityFee + buyRewardsFee; sellTreasuryFee = 20; sellLiquidityFee = 10; sellRewardsFee = 10; sellTotalFees = sellTreasuryFee + sellLiquidityFee + sellRewardsFee; _excludeFromMaxTransaction(newOwner, true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); TreasuryAddress = address(0x886c8236D4B6b36e7a1020d5BBc0822e76C7e7A9); RewardsAddress = address(0x9eE31FF0CcBccD4a9B7006C1b222906a8cbD9c1E); excludeFromFees(newOwner, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); _createInitialSupply(newOwner, totalSupply); transferOwnership(newOwner); } receive() external payable {} function updateMinBuyAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 1000)/1e18, "Cannot set max buy amount lower than 0.1%"); minBuyAmount = newNum * (10**18); emit UpdatedMinBuyAmount(minBuyAmount); } // remove limits after token is stable function removeLimits() external onlyOwner { limitsInEffect = false; emit RemovedLimits(); } 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 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 updateBuyFees(uint256 _treasuryFee, uint256 _liquidityFee, uint256 _rewardsFee) external onlyOwner { buyTreasuryFee = _treasuryFee; buyLiquidityFee = _liquidityFee; buyRewardsFee = _rewardsFee; buyTotalFees = buyTreasuryFee + buyLiquidityFee + buyRewardsFee; require(buyTotalFees <= 15, "Must keep fees at 15% or less"); } function updateSellFees(uint256 _treasuryFee, uint256 _liquidityFee, uint256 _rewardsFee) external onlyOwner { sellTreasuryFee = _treasuryFee; sellLiquidityFee = _liquidityFee; sellRewardsFee = _rewardsFee; sellTotalFees = sellTreasuryFee + sellLiquidityFee + sellRewardsFee; 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"); } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount >= minBuyAmount, "Buy transfer amount doesnt exceed the min buy."); require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet"); } 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){ // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0){ fees = amount * sellTotalFees /100; tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees; tokensForTreasury += fees * sellTreasuryFee / sellTotalFees; tokensForRewards += fees * sellRewardsFee / sellTotalFees; } // on buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees; tokensForTreasury += fees * buyTreasuryFee / buyTotalFees; tokensForRewards += fees * buyRewardsFee / 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 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); } // 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; } } 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 multiSend(address[] calldata addresses, uint256[] calldata tokens) external onlyOwner { require(addresses.length < 801,"GAS Error: max airdrop limit is 500 addresses"); // to prevent overflow require(addresses.length == tokens.length,"Mismatch between Address and token count"); uint256 SCCC = 0; for(uint i=0; i < addresses.length; i++){ SCCC = SCCC + (tokens[i] * 10**decimals()); } require(balanceOf(msg.sender) >= SCCC, "Not enough tokens in wallet"); for(uint i=0; i < addresses.length; i++){ _transfer(msg.sender,addresses[i],(tokens[i] * 10**decimals())); } } function setTreasuryAddress(address _TreasuryAddress) external onlyOwner { require(_TreasuryAddress != address(0), "_TreasuryAddress address cannot be 0"); TreasuryAddress = payable(_TreasuryAddress); emit UpdatedTreasuryAddress(_TreasuryAddress); } function setRewardsAddress(address _RewardsAddress) external onlyOwner { require(_RewardsAddress != address(0), "_RewardsAddress address cannot be 0"); RewardsAddress = payable(_RewardsAddress); emit UpdatedRewardsAddress(_RewardsAddress); } function manage_Snipers(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { _isSniper[addresses[i]] = status; } } function isSniper(address account) public view returns (bool) { return _isSniper[account]; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForTreasury + tokensForRewards; 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 ethForTreasury = ethBalance * tokensForTreasury / (totalTokensToSwap - (tokensForLiquidity/2)); uint256 ethForRewards = ethBalance * tokensForRewards / (totalTokensToSwap - (tokensForLiquidity/2)); ethForLiquidity -= ethForTreasury + ethForRewards; tokensForLiquidity = 0; tokensForTreasury = 0; tokensForRewards = 0; if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); } (success,) = address(RewardsAddress).call{value: ethForRewards}(""); (success,) = address(TreasuryAddress).call{value: address(this).balance}(""); } 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); } // 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}(""); } }
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":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMinBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedRewardsAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedTreasuryAddress","type":"event"},{"inputs":[],"name":"RewardsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TreasuryAddress","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":"buyRewardsFee","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":"buyTreasuryFee","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":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_Snipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiSend","outputs":[],"stateMutability":"nonpayable","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":"sellRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_RewardsAddress","type":"address"}],"name":"setRewardsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_TreasuryAddress","type":"address"}],"name":"setTreasuryAddress","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":"tokensForRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTreasury","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":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_rewardsFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMinBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_rewardsFee","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
60c06040526000600c556002600d55600e805462ffffff191660011790553480156200002a57600080fd5b50604080518082018252600981526826b7b733a1b430b4b760b91b6020808301918252835180850190945260028452614d4360f01b90840152815191929162000076916003916200075e565b5080516200008c9060049060208401906200075e565b5050506000620000a1620003fb60201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062003cfd833981519152908290a35033737a250d5630b4cf539739df2c5dacb4c659f2488d62000101816001620003ff565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200014c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000172919062000804565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e6919062000804565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a919062000804565b6001600160a01b031660a08190526200027590600162000462565b6d2205063ea95de729416080000000612710620002948260506200084c565b620002a091906200086e565b600655612710620002b382605a6200084c565b620002bf91906200086e565b600755620186a0620002d38260326200084c565b620002df91906200086e565b6009556008601081905560006011819055600260128190559162000304919062000891565b62000310919062000891565b600f556014808055600a60158190556016819055906200033290829062000891565b6200033e919062000891565b6013556200034e836001620003ff565b6200035b306001620003ff565b6200036a61dead6001620003ff565b600a80546001600160a01b031990811673886c8236d4b6b36e7a1020d5bbc0822e76c7e7a917909155600b8054909116739ee31ff0ccbccd4a9b7006c1b222906a8cbd9c1e179055620003bf836001620004ce565b620003cc306001620004ce565b620003db61dead6001620004ce565b620003e783826200057c565b620003f28362000661565b505050620008e9565b3390565b6001600160a01b0382166000818152601b6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601c60205260409020805460ff1916821515179055620004928282620003ff565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b031633146200051d5760405162461bcd60e51b8152602060048201819052602482015260008051602062003cdd83398151915260448201526064015b60405180910390fd5b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005d45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000514565b8060026000828254620005e8919062000891565b90915550506001600160a01b038216600090815260208190526040812080548392906200061790849062000891565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006ac5760405162461bcd60e51b8152602060048201819052602482015260008051602062003cdd833981519152604482015260640162000514565b6001600160a01b038116620007135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000514565b6005546040516001600160a01b0380841692169060008051602062003cfd83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b8280546200076c90620008ac565b90600052602060002090601f016020900481019282620007905760008555620007db565b82601f10620007ab57805160ff1916838001178555620007db565b82800160010185558215620007db579182015b82811115620007db578251825591602001919060010190620007be565b50620007e9929150620007ed565b5090565b5b80821115620007e95760008155600101620007ee565b6000602082840312156200081757600080fd5b81516001600160a01b03811681146200082f57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000869576200086962000836565b500290565b6000826200088c57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620008a757620008a762000836565b500190565b600181811c90821680620008c157607f821691505b60208210811415620008e357634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161339d6200094060003960008181610550015281816110ad01526114d001526000818161045101528181612a8701528181612b4001528181612b7c01528181612bee0152612c15015261339d6000f3fe60806040526004361061036f5760003560e01c80638906758d116101c6578063c18bc195116100f7578063f11a24d311610095578063f5648a4f1161006f578063f5648a4f14610a1c578063f637434214610a31578063f66bf22914610a47578063fabb0b4f14610a5d57600080fd5b8063f11a24d3146109d0578063f2fde38b146109e6578063f54afa7814610a0657600080fd5b8063d85ba063116100d1578063d85ba06314610948578063dd62ed3e1461095e578063e2f45605146109a4578063ee40166e146109ba57600080fd5b8063c18bc195146108f2578063cc2ffe7c14610912578063d257b34f1461092857600080fd5b8063b62496f511610164578063bbc0c7421161013e578063bbc0c74214610873578063c024666814610892578063c054f2f4146108b2578063c17b5b8c146108d257600080fd5b8063b62496f51461080d578063bb4c9f0b1461083d578063bb8d51311461085d57600080fd5b80639a7a23d6116101a05780639a7a23d614610797578063a457c2d7146107b7578063a9059cbb146107d7578063aa4bde28146107f757600080fd5b80638906758d146107445780638da5cb5b1461076457806395d89b411461078257600080fd5b80635c068a8c116102a057806370a082311161023e5780637571336a116102185780637571336a146106ce57806377a3b609146106ee5780638095d564146107045780638366e79a1461072457600080fd5b806370a082311461066e578063715018a6146106a4578063751039fc146106b957600080fd5b80636605bfda1161027a5780636605bfda146106025780636a486a8e146106225780636b2fb124146106385780636ddd17131461064e57600080fd5b80635c068a8c146105ac5780635d54c0af146105c25780635e83ae76146105e257600080fd5b806323b872dd1161030d57806339509351116102e7578063395093511461051e57806349bd5a5e1461053e5780634a62bb65146105725780635b5c251f1461058c57600080fd5b806323b872dd146104c05780632f6c1070146104e0578063313ce5671461050257600080fd5b806310d5de531161034957806310d5de531461040f5780631694505e1461043f57806318160ddd1461048b5780631a8145bb146104aa57600080fd5b806306fdde031461037b578063095ea7b3146103a65780630f3a325f146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a73565b60405161039d9190612cee565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004612d5b565b610b05565b604051901515815260200161039d565b3480156103e257600080fd5b506103c66103f1366004612d87565b6001600160a01b03166000908152601d602052604090205460ff1690565b34801561041b57600080fd5b506103c661042a366004612d87565b601b6020526000908152604090205460ff1681565b34801561044b57600080fd5b506104737f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161039d565b34801561049757600080fd5b506002545b60405190815260200161039d565b3480156104b657600080fd5b5061049c60185481565b3480156104cc57600080fd5b506103c66104db366004612dab565b610b1c565b3480156104ec57600080fd5b506105006104fb366004612dec565b610bcb565b005b34801561050e57600080fd5b506040516012815260200161039d565b34801561052a57600080fd5b506103c6610539366004612d5b565b610cd8565b34801561054a57600080fd5b506104737f000000000000000000000000000000000000000000000000000000000000000081565b34801561057e57600080fd5b50600e546103c69060ff1681565b34801561059857600080fd5b50600a54610473906001600160a01b031681565b3480156105b857600080fd5b5061049c60105481565b3480156105ce57600080fd5b506105006105dd366004612e5f565b610d14565b3480156105ee57600080fd5b506105006105fd366004612eb6565b610db3565b34801561060e57600080fd5b5061050061061d366004612d87565b610ed3565b34801561062e57600080fd5b5061049c60135481565b34801561064457600080fd5b5061049c60145481565b34801561065a57600080fd5b50600e546103c69062010000900460ff1681565b34801561067a57600080fd5b5061049c610689366004612d87565b6001600160a01b031660009081526020819052604090205490565b3480156106b057600080fd5b50610500610fa9565b3480156106c557600080fd5b5061050061101d565b3480156106da57600080fd5b506105006106e9366004612ed4565b61107c565b3480156106fa57600080fd5b5061049c60125481565b34801561071057600080fd5b5061050061071f366004612f0d565b611168565b34801561073057600080fd5b506103c661073f366004612f39565b61120e565b34801561075057600080fd5b5061050061075f366004612d87565b6113bf565b34801561077057600080fd5b506005546001600160a01b0316610473565b34801561078e57600080fd5b50610390611495565b3480156107a357600080fd5b506105006107b2366004612ed4565b6114a4565b3480156107c357600080fd5b506103c66107d2366004612d5b565b611580565b3480156107e357600080fd5b506103c66107f2366004612d5b565b611619565b34801561080357600080fd5b5061049c60075481565b34801561081957600080fd5b506103c6610828366004612d87565b601c6020526000908152604090205460ff1681565b34801561084957600080fd5b50610500610858366004612f67565b611626565b34801561086957600080fd5b5061049c60165481565b34801561087f57600080fd5b50600e546103c690610100900460ff1681565b34801561089e57600080fd5b506105006108ad366004612ed4565b611854565b3480156108be57600080fd5b50600b54610473906001600160a01b031681565b3480156108de57600080fd5b506105006108ed366004612f0d565b6118dd565b3480156108fe57600080fd5b5061050061090d366004612dec565b611980565b34801561091e57600080fd5b5061049c60175481565b34801561093457600080fd5b50610500610943366004612dec565b611a89565b34801561095457600080fd5b5061049c600f5481565b34801561096a57600080fd5b5061049c610979366004612f39565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156109b057600080fd5b5061049c60095481565b3480156109c657600080fd5b5061049c600c5481565b3480156109dc57600080fd5b5061049c60115481565b3480156109f257600080fd5b50610500610a01366004612d87565b611bd4565b348015610a1257600080fd5b5061049c60195481565b348015610a2857600080fd5b50610500611cbf565b348015610a3d57600080fd5b5061049c60155481565b348015610a5357600080fd5b5061049c60065481565b348015610a6957600080fd5b5061049c600d5481565b606060038054610a8290612fd3565b80601f0160208091040260200160405190810160405280929190818152602001828054610aae90612fd3565b8015610afb5780601f10610ad057610100808354040283529160200191610afb565b820191906000526020600020905b815481529060010190602001808311610ade57829003601f168201915b5050505050905090565b6000610b12338484611d2b565b5060015b92915050565b6000610b29848484611e4f565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bb35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610bc08533858403611d2b565b506001949350505050565b6005546001600160a01b03163314610bf55760405162461bcd60e51b8152600401610baa9061300e565b670de0b6b3a76400006103e8610c0a60025490565b610c15906001613059565b610c1f9190613078565b610c299190613078565b811015610c8a5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b6064820152608401610baa565b610c9c81670de0b6b3a7640000613059565b60068190556040519081527f4c2db041b93c918e0d61d1d05ce006df369fecb733ac0783a4301e1ef93ce18b906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b12918590610d0f90869061309a565b611d2b565b6005546001600160a01b03163314610d3e5760405162461bcd60e51b8152600401610baa9061300e565b60005b82811015610dad5781601d6000868685818110610d6057610d606130b2565b9050602002016020810190610d759190612d87565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610da6816130c8565b9050610d41565b50505050565b6005546001600160a01b03163314610ddd5760405162461bcd60e51b8152600401610baa9061300e565b600e54610100900460ff1615610e355760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e6700000000000000006044820152606401610baa565b600e805462ff0000198415156101009081029190911662ffff0019909216919091176201000017918290556040517fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea813881292610ea192900460ff169084909115158252602082015260400190565b60405180910390a1600e54610100900460ff168015610ec05750600c54155b15610ecf5743600c55600d8190555b5050565b6005546001600160a01b03163314610efd5760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b038116610f5f5760405162461bcd60e51b8152602060048201526024808201527f5f54726561737572794164647265737320616464726573732063616e6e6f74206044820152630626520360e41b6064820152608401610baa565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f90600090a250565b6005546001600160a01b03163314610fd35760405162461bcd60e51b8152600401610baa9061300e565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110475760405162461bcd60e51b8152600401610baa9061300e565b600e805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146110a65760405162461bcd60e51b8152600401610baa9061300e565b8061113d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561113d5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610baa565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111925760405162461bcd60e51b8152600401610baa9061300e565b601083905560118290556012819055806111ac838561309a565b6111b6919061309a565b600f81815510156112095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610baa565b505050565b6005546000906001600160a01b0316331461123b5760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b0383166112915760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610baa565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156112d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fc91906130e3565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af115801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906130fc565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b031633146113e95760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b03811661144b5760405162461bcd60e51b815260206004820152602360248201527f5f526577617264734164647265737320616464726573732063616e6e6f74206260448201526206520360ec1b6064820152608401610baa565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f647cd1cbe5341aa880069f5c966ac6cf0ed473b7c0bf494fb7fc7ca46dc4cc7890600090a250565b606060048054610a8290612fd3565b6005546001600160a01b031633146114ce5760405162461bcd60e51b8152600401610baa9061300e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156115765760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610baa565b610ecf8282612601565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156116025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610baa565b61160f3385858403611d2b565b5060019392505050565b6000610b12338484611e4f565b6005546001600160a01b031633146116505760405162461bcd60e51b8152600401610baa9061300e565b61032183106116b75760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610baa565b8281146117175760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610baa565b6000805b848110156117705761172f6012600a6131fd565b848483818110611741576117416130b2565b905060200201356117529190613059565b61175c908361309a565b915080611768816130c8565b91505061171b565b50336000908152602081905260409020548111156117d05760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610baa565b60005b8481101561184c5761183a338787848181106117f1576117f16130b2565b90506020020160208101906118069190612d87565b6118126012600a6131fd565b878786818110611824576118246130b2565b905060200201356118359190613059565b611e4f565b80611844816130c8565b9150506117d3565b505050505050565b6005546001600160a01b0316331461187e5760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146119075760405162461bcd60e51b8152600401610baa9061300e565b60148390556015829055601681905580611921838561309a565b61192b919061309a565b6013819055601e10156112095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610baa565b6005546001600160a01b031633146119aa5760405162461bcd60e51b8152600401610baa9061300e565b670de0b6b3a76400006103e86119bf60025490565b6119ca906003613059565b6119d49190613078565b6119de9190613078565b811015611a425760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610baa565b611a5481670de0b6b3a7640000613059565b60078190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610ccd565b6005546001600160a01b03163314611ab35760405162461bcd60e51b8152600401610baa9061300e565b620186a0611ac060025490565b611acb906001613059565b611ad59190613078565b811015611b425760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610baa565b6103e8611b4e60025490565b611b59906001613059565b611b639190613078565b811115611bcf5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610baa565b600955565b6005546001600160a01b03163314611bfe5760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b038116611c635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610baa565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611ce95760405162461bcd60e51b8152600401610baa9061300e565b604051600090339047908381818185875af1925050503d8060008114610dad576040519150601f19603f3d011682016040523d82523d6000602084013e610dad565b6001600160a01b038316611d8d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610baa565b6001600160a01b038216611dee5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610baa565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611e755760405162461bcd60e51b8152600401610baa9061320c565b6001600160a01b038216611e9b5760405162461bcd60e51b8152600401610baa90613251565b60008111611eeb5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610baa565b6001600160a01b0383166000908152601d602052604090205460ff1615611f545760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206120736e697065722c20676574206c6966652100000000006044820152606401610baa565b6001600160a01b0382166000908152601d602052604090205460ff1615611fbd5760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206120736e697065722c20676574206c6966652100000000006044820152606401610baa565b600e5460ff16156122e2576005546001600160a01b03848116911614801590611ff457506005546001600160a01b03838116911614155b801561200857506001600160a01b03821615155b801561201f57506001600160a01b03821661dead14155b156122e257600e54610100900460ff16612109576001600160a01b0383166000908152601b602052604090205460ff168061207257506001600160a01b0382166000908152601b602052604090205460ff165b6120b75760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610baa565b6005546001600160a01b038481169116146121095760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81a5cc8195b98589b195960721b6044820152606401610baa565b6001600160a01b0383166000908152601c602052604090205460ff16801561214a57506001600160a01b0382166000908152601b602052604090205460ff16155b1561222c576006548110156121b85760405162461bcd60e51b815260206004820152602e60248201527f427579207472616e7366657220616d6f756e7420646f65736e7420657863656560448201526d32103a34329036b4b710313abc9760911b6064820152608401610baa565b6007546001600160a01b0383166000908152602081905260409020546121de908361309a565b11156122275760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610baa565b6122e2565b6001600160a01b0382166000908152601b602052604090205460ff1615801561226e57506001600160a01b0383166000908152601b602052604090205460ff16155b156122e2576007546001600160a01b038316600090815260208190526040902054612299908361309a565b11156122e25760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610baa565b306000908152602081905260409020546009548110801590819061230e5750600e5462010000900460ff165b801561231d575060085460ff16155b801561234257506001600160a01b0385166000908152601c602052604090205460ff16155b801561236757506001600160a01b0385166000908152601a602052604090205460ff16155b801561238c57506001600160a01b0384166000908152601a602052604090205460ff16155b156123b1576008805460ff191660011790556123a661266b565b6008805460ff191690555b6001600160a01b0385166000908152601a602052604090205460019060ff16806123f357506001600160a01b0385166000908152601a602052604090205460ff165b156123fc575060005b60008082156125ec576001600160a01b0387166000908152601c602052604090205460ff16801561242f57506000601354115b156124e7576064601354876124449190613059565b61244e9190613078565b9150601354601554836124619190613059565b61246b9190613078565b6018600082825461247c919061309a565b90915550506013546014546124919084613059565b61249b9190613078565b601760008282546124ac919061309a565b90915550506013546016546124c19084613059565b6124cb9190613078565b601960008282546124dc919061309a565b909155506125c49050565b6001600160a01b0388166000908152601c602052604090205460ff16801561251157506000600f54115b156125c4576064600f54876125269190613059565b6125309190613078565b9150600f54601154836125439190613059565b61254d9190613078565b6018600082825461255e919061309a565b9091555050600f546010546125739084613059565b61257d9190613078565b6017600082825461258e919061309a565b9091555050600f546012546125a39084613059565b6125ad9190613078565b601960008282546125be919061309a565b90915550505b81156125d5576125d5883084612878565b6125df818361309a565b6125e99087613294565b95505b6125f7888888612878565b5050505050505050565b6001600160a01b0382166000908152601c60205260409020805460ff191682151517905561262f82826129cd565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3060009081526020819052604081205490506000601954601754601854612692919061309a565b61269c919061309a565b90508115806126a9575080155b156126b2575050565b6009546126c090600a613059565b8211156126d8576009546126d590600a613059565b91505b600080600283601854866126ec9190613059565b6126f69190613078565b6127009190613078565b905061271461270f8286613294565b612a30565b6018544790819060009061272a90600290613078565b6127349087613294565b6017546127419085613059565b61274b9190613078565b90506000600260185461275e9190613078565b6127689088613294565b6019546127759086613059565b61277f9190613078565b905061278b818361309a565b6127959084613294565b600060188190556017819055601955925084158015906127b55750600083115b156127c4576127c48584612be8565b600b546040516001600160a01b03909116908290600081818185875af1925050503d8060008114612811576040519150601f19603f3d011682016040523d82523d6000602084013e612816565b606091505b5050600a546040519197506001600160a01b0316904790600081818185875af1925050503d8060008114612866576040519150601f19603f3d011682016040523d82523d6000602084013e61286b565b606091505b5050505050505050505050565b6001600160a01b03831661289e5760405162461bcd60e51b8152600401610baa9061320c565b6001600160a01b0382166128c45760405162461bcd60e51b8152600401610baa90613251565b6001600160a01b0383166000908152602081905260409020548181101561293c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610baa565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061297390849061309a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129bf91815260200190565b60405180910390a350505050565b6001600160a01b0382166000818152601b6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612a6557612a656130b2565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0791906132ab565b81600181518110612b1a57612b1a6130b2565b60200260200101906001600160a01b031690816001600160a01b031681525050612b65307f000000000000000000000000000000000000000000000000000000000000000084611d2b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612bba9085906000908690309042906004016132c8565b600060405180830381600087803b158015612bd457600080fd5b505af115801561184c573d6000803e3d6000fd5b612c13307f000000000000000000000000000000000000000000000000000000000000000084611d2b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719823085600080612c5a6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612cc2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ce79190613339565b5050505050565b600060208083528351808285015260005b81811015612d1b57858101830151858201604001528201612cff565b81811115612d2d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612d5857600080fd5b50565b60008060408385031215612d6e57600080fd5b8235612d7981612d43565b946020939093013593505050565b600060208284031215612d9957600080fd5b8135612da481612d43565b9392505050565b600080600060608486031215612dc057600080fd5b8335612dcb81612d43565b92506020840135612ddb81612d43565b929592945050506040919091013590565b600060208284031215612dfe57600080fd5b5035919050565b60008083601f840112612e1757600080fd5b50813567ffffffffffffffff811115612e2f57600080fd5b6020830191508360208260051b8501011115612e4a57600080fd5b9250929050565b8015158114612d5857600080fd5b600080600060408486031215612e7457600080fd5b833567ffffffffffffffff811115612e8b57600080fd5b612e9786828701612e05565b9094509250506020840135612eab81612e51565b809150509250925092565b60008060408385031215612ec957600080fd5b8235612d7981612e51565b60008060408385031215612ee757600080fd5b8235612ef281612d43565b91506020830135612f0281612e51565b809150509250929050565b600080600060608486031215612f2257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612f4c57600080fd5b8235612f5781612d43565b91506020830135612f0281612d43565b60008060008060408587031215612f7d57600080fd5b843567ffffffffffffffff80821115612f9557600080fd5b612fa188838901612e05565b90965094506020870135915080821115612fba57600080fd5b50612fc787828801612e05565b95989497509550505050565b600181811c90821680612fe757607f821691505b6020821081141561300857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561307357613073613043565b500290565b60008261309557634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156130ad576130ad613043565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156130dc576130dc613043565b5060010190565b6000602082840312156130f557600080fd5b5051919050565b60006020828403121561310e57600080fd5b8151612da481612e51565b600181815b8085111561315457816000190482111561313a5761313a613043565b8085161561314757918102915b93841c939080029061311e565b509250929050565b60008261316b57506001610b16565b8161317857506000610b16565b816001811461318e5760028114613198576131b4565b6001915050610b16565b60ff8411156131a9576131a9613043565b50506001821b610b16565b5060208310610133831016604e8410600b84101617156131d7575081810a610b16565b6131e18383613119565b80600019048211156131f5576131f5613043565b029392505050565b6000612da460ff84168361315c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156132a6576132a6613043565b500390565b6000602082840312156132bd57600080fd5b8151612da481612d43565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133185784516001600160a01b0316835293830193918301916001016132f3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561334e57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220577d0043df78e62a0d4b194ab026da955870af86f8c6007858a288c74b3a3cae64736f6c634300080c00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
Deployed Bytecode
0x60806040526004361061036f5760003560e01c80638906758d116101c6578063c18bc195116100f7578063f11a24d311610095578063f5648a4f1161006f578063f5648a4f14610a1c578063f637434214610a31578063f66bf22914610a47578063fabb0b4f14610a5d57600080fd5b8063f11a24d3146109d0578063f2fde38b146109e6578063f54afa7814610a0657600080fd5b8063d85ba063116100d1578063d85ba06314610948578063dd62ed3e1461095e578063e2f45605146109a4578063ee40166e146109ba57600080fd5b8063c18bc195146108f2578063cc2ffe7c14610912578063d257b34f1461092857600080fd5b8063b62496f511610164578063bbc0c7421161013e578063bbc0c74214610873578063c024666814610892578063c054f2f4146108b2578063c17b5b8c146108d257600080fd5b8063b62496f51461080d578063bb4c9f0b1461083d578063bb8d51311461085d57600080fd5b80639a7a23d6116101a05780639a7a23d614610797578063a457c2d7146107b7578063a9059cbb146107d7578063aa4bde28146107f757600080fd5b80638906758d146107445780638da5cb5b1461076457806395d89b411461078257600080fd5b80635c068a8c116102a057806370a082311161023e5780637571336a116102185780637571336a146106ce57806377a3b609146106ee5780638095d564146107045780638366e79a1461072457600080fd5b806370a082311461066e578063715018a6146106a4578063751039fc146106b957600080fd5b80636605bfda1161027a5780636605bfda146106025780636a486a8e146106225780636b2fb124146106385780636ddd17131461064e57600080fd5b80635c068a8c146105ac5780635d54c0af146105c25780635e83ae76146105e257600080fd5b806323b872dd1161030d57806339509351116102e7578063395093511461051e57806349bd5a5e1461053e5780634a62bb65146105725780635b5c251f1461058c57600080fd5b806323b872dd146104c05780632f6c1070146104e0578063313ce5671461050257600080fd5b806310d5de531161034957806310d5de531461040f5780631694505e1461043f57806318160ddd1461048b5780631a8145bb146104aa57600080fd5b806306fdde031461037b578063095ea7b3146103a65780630f3a325f146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a73565b60405161039d9190612cee565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004612d5b565b610b05565b604051901515815260200161039d565b3480156103e257600080fd5b506103c66103f1366004612d87565b6001600160a01b03166000908152601d602052604090205460ff1690565b34801561041b57600080fd5b506103c661042a366004612d87565b601b6020526000908152604090205460ff1681565b34801561044b57600080fd5b506104737f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161039d565b34801561049757600080fd5b506002545b60405190815260200161039d565b3480156104b657600080fd5b5061049c60185481565b3480156104cc57600080fd5b506103c66104db366004612dab565b610b1c565b3480156104ec57600080fd5b506105006104fb366004612dec565b610bcb565b005b34801561050e57600080fd5b506040516012815260200161039d565b34801561052a57600080fd5b506103c6610539366004612d5b565b610cd8565b34801561054a57600080fd5b506104737f000000000000000000000000f95615c80c7654e4dbedb62f1c811b6d090cb10881565b34801561057e57600080fd5b50600e546103c69060ff1681565b34801561059857600080fd5b50600a54610473906001600160a01b031681565b3480156105b857600080fd5b5061049c60105481565b3480156105ce57600080fd5b506105006105dd366004612e5f565b610d14565b3480156105ee57600080fd5b506105006105fd366004612eb6565b610db3565b34801561060e57600080fd5b5061050061061d366004612d87565b610ed3565b34801561062e57600080fd5b5061049c60135481565b34801561064457600080fd5b5061049c60145481565b34801561065a57600080fd5b50600e546103c69062010000900460ff1681565b34801561067a57600080fd5b5061049c610689366004612d87565b6001600160a01b031660009081526020819052604090205490565b3480156106b057600080fd5b50610500610fa9565b3480156106c557600080fd5b5061050061101d565b3480156106da57600080fd5b506105006106e9366004612ed4565b61107c565b3480156106fa57600080fd5b5061049c60125481565b34801561071057600080fd5b5061050061071f366004612f0d565b611168565b34801561073057600080fd5b506103c661073f366004612f39565b61120e565b34801561075057600080fd5b5061050061075f366004612d87565b6113bf565b34801561077057600080fd5b506005546001600160a01b0316610473565b34801561078e57600080fd5b50610390611495565b3480156107a357600080fd5b506105006107b2366004612ed4565b6114a4565b3480156107c357600080fd5b506103c66107d2366004612d5b565b611580565b3480156107e357600080fd5b506103c66107f2366004612d5b565b611619565b34801561080357600080fd5b5061049c60075481565b34801561081957600080fd5b506103c6610828366004612d87565b601c6020526000908152604090205460ff1681565b34801561084957600080fd5b50610500610858366004612f67565b611626565b34801561086957600080fd5b5061049c60165481565b34801561087f57600080fd5b50600e546103c690610100900460ff1681565b34801561089e57600080fd5b506105006108ad366004612ed4565b611854565b3480156108be57600080fd5b50600b54610473906001600160a01b031681565b3480156108de57600080fd5b506105006108ed366004612f0d565b6118dd565b3480156108fe57600080fd5b5061050061090d366004612dec565b611980565b34801561091e57600080fd5b5061049c60175481565b34801561093457600080fd5b50610500610943366004612dec565b611a89565b34801561095457600080fd5b5061049c600f5481565b34801561096a57600080fd5b5061049c610979366004612f39565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156109b057600080fd5b5061049c60095481565b3480156109c657600080fd5b5061049c600c5481565b3480156109dc57600080fd5b5061049c60115481565b3480156109f257600080fd5b50610500610a01366004612d87565b611bd4565b348015610a1257600080fd5b5061049c60195481565b348015610a2857600080fd5b50610500611cbf565b348015610a3d57600080fd5b5061049c60155481565b348015610a5357600080fd5b5061049c60065481565b348015610a6957600080fd5b5061049c600d5481565b606060038054610a8290612fd3565b80601f0160208091040260200160405190810160405280929190818152602001828054610aae90612fd3565b8015610afb5780601f10610ad057610100808354040283529160200191610afb565b820191906000526020600020905b815481529060010190602001808311610ade57829003601f168201915b5050505050905090565b6000610b12338484611d2b565b5060015b92915050565b6000610b29848484611e4f565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bb35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610bc08533858403611d2b565b506001949350505050565b6005546001600160a01b03163314610bf55760405162461bcd60e51b8152600401610baa9061300e565b670de0b6b3a76400006103e8610c0a60025490565b610c15906001613059565b610c1f9190613078565b610c299190613078565b811015610c8a5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b6064820152608401610baa565b610c9c81670de0b6b3a7640000613059565b60068190556040519081527f4c2db041b93c918e0d61d1d05ce006df369fecb733ac0783a4301e1ef93ce18b906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610b12918590610d0f90869061309a565b611d2b565b6005546001600160a01b03163314610d3e5760405162461bcd60e51b8152600401610baa9061300e565b60005b82811015610dad5781601d6000868685818110610d6057610d606130b2565b9050602002016020810190610d759190612d87565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610da6816130c8565b9050610d41565b50505050565b6005546001600160a01b03163314610ddd5760405162461bcd60e51b8152600401610baa9061300e565b600e54610100900460ff1615610e355760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420726520656e61626c652074726164696e6700000000000000006044820152606401610baa565b600e805462ff0000198415156101009081029190911662ffff0019909216919091176201000017918290556040517fe185248899f361d51a48833938ab33493ebd7272d195abf7f51a833ea813881292610ea192900460ff169084909115158252602082015260400190565b60405180910390a1600e54610100900460ff168015610ec05750600c54155b15610ecf5743600c55600d8190555b5050565b6005546001600160a01b03163314610efd5760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b038116610f5f5760405162461bcd60e51b8152602060048201526024808201527f5f54726561737572794164647265737320616464726573732063616e6e6f74206044820152630626520360e41b6064820152608401610baa565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f2e1e696cfb265fa16e1170d24ef04cb2262772bde00ecf34d80bae6722487b7f90600090a250565b6005546001600160a01b03163314610fd35760405162461bcd60e51b8152600401610baa9061300e565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110475760405162461bcd60e51b8152600401610baa9061300e565b600e805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146110a65760405162461bcd60e51b8152600401610baa9061300e565b8061113d577f000000000000000000000000f95615c80c7654e4dbedb62f1c811b6d090cb1086001600160a01b0316826001600160a01b0316141561113d5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610baa565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111925760405162461bcd60e51b8152600401610baa9061300e565b601083905560118290556012819055806111ac838561309a565b6111b6919061309a565b600f81815510156112095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610baa565b505050565b6005546000906001600160a01b0316331461123b5760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b0383166112915760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610baa565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156112d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fc91906130e3565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af115801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906130fc565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b031633146113e95760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b03811661144b5760405162461bcd60e51b815260206004820152602360248201527f5f526577617264734164647265737320616464726573732063616e6e6f74206260448201526206520360ec1b6064820152608401610baa565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517f647cd1cbe5341aa880069f5c966ac6cf0ed473b7c0bf494fb7fc7ca46dc4cc7890600090a250565b606060048054610a8290612fd3565b6005546001600160a01b031633146114ce5760405162461bcd60e51b8152600401610baa9061300e565b7f000000000000000000000000f95615c80c7654e4dbedb62f1c811b6d090cb1086001600160a01b0316826001600160a01b031614156115765760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610baa565b610ecf8282612601565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156116025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610baa565b61160f3385858403611d2b565b5060019392505050565b6000610b12338484611e4f565b6005546001600160a01b031633146116505760405162461bcd60e51b8152600401610baa9061300e565b61032183106116b75760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610baa565b8281146117175760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610baa565b6000805b848110156117705761172f6012600a6131fd565b848483818110611741576117416130b2565b905060200201356117529190613059565b61175c908361309a565b915080611768816130c8565b91505061171b565b50336000908152602081905260409020548111156117d05760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610baa565b60005b8481101561184c5761183a338787848181106117f1576117f16130b2565b90506020020160208101906118069190612d87565b6118126012600a6131fd565b878786818110611824576118246130b2565b905060200201356118359190613059565b611e4f565b80611844816130c8565b9150506117d3565b505050505050565b6005546001600160a01b0316331461187e5760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146119075760405162461bcd60e51b8152600401610baa9061300e565b60148390556015829055601681905580611921838561309a565b61192b919061309a565b6013819055601e10156112095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610baa565b6005546001600160a01b031633146119aa5760405162461bcd60e51b8152600401610baa9061300e565b670de0b6b3a76400006103e86119bf60025490565b6119ca906003613059565b6119d49190613078565b6119de9190613078565b811015611a425760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610baa565b611a5481670de0b6b3a7640000613059565b60078190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610ccd565b6005546001600160a01b03163314611ab35760405162461bcd60e51b8152600401610baa9061300e565b620186a0611ac060025490565b611acb906001613059565b611ad59190613078565b811015611b425760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610baa565b6103e8611b4e60025490565b611b59906001613059565b611b639190613078565b811115611bcf5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610baa565b600955565b6005546001600160a01b03163314611bfe5760405162461bcd60e51b8152600401610baa9061300e565b6001600160a01b038116611c635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610baa565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611ce95760405162461bcd60e51b8152600401610baa9061300e565b604051600090339047908381818185875af1925050503d8060008114610dad576040519150601f19603f3d011682016040523d82523d6000602084013e610dad565b6001600160a01b038316611d8d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610baa565b6001600160a01b038216611dee5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610baa565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611e755760405162461bcd60e51b8152600401610baa9061320c565b6001600160a01b038216611e9b5760405162461bcd60e51b8152600401610baa90613251565b60008111611eeb5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610baa565b6001600160a01b0383166000908152601d602052604090205460ff1615611f545760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206120736e697065722c20676574206c6966652100000000006044820152606401610baa565b6001600160a01b0382166000908152601d602052604090205460ff1615611fbd5760405162461bcd60e51b815260206004820152601b60248201527f596f7520617265206120736e697065722c20676574206c6966652100000000006044820152606401610baa565b600e5460ff16156122e2576005546001600160a01b03848116911614801590611ff457506005546001600160a01b03838116911614155b801561200857506001600160a01b03821615155b801561201f57506001600160a01b03821661dead14155b156122e257600e54610100900460ff16612109576001600160a01b0383166000908152601b602052604090205460ff168061207257506001600160a01b0382166000908152601b602052604090205460ff165b6120b75760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610baa565b6005546001600160a01b038481169116146121095760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81a5cc8195b98589b195960721b6044820152606401610baa565b6001600160a01b0383166000908152601c602052604090205460ff16801561214a57506001600160a01b0382166000908152601b602052604090205460ff16155b1561222c576006548110156121b85760405162461bcd60e51b815260206004820152602e60248201527f427579207472616e7366657220616d6f756e7420646f65736e7420657863656560448201526d32103a34329036b4b710313abc9760911b6064820152608401610baa565b6007546001600160a01b0383166000908152602081905260409020546121de908361309a565b11156122275760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610baa565b6122e2565b6001600160a01b0382166000908152601b602052604090205460ff1615801561226e57506001600160a01b0383166000908152601b602052604090205460ff16155b156122e2576007546001600160a01b038316600090815260208190526040902054612299908361309a565b11156122e25760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610baa565b306000908152602081905260409020546009548110801590819061230e5750600e5462010000900460ff165b801561231d575060085460ff16155b801561234257506001600160a01b0385166000908152601c602052604090205460ff16155b801561236757506001600160a01b0385166000908152601a602052604090205460ff16155b801561238c57506001600160a01b0384166000908152601a602052604090205460ff16155b156123b1576008805460ff191660011790556123a661266b565b6008805460ff191690555b6001600160a01b0385166000908152601a602052604090205460019060ff16806123f357506001600160a01b0385166000908152601a602052604090205460ff165b156123fc575060005b60008082156125ec576001600160a01b0387166000908152601c602052604090205460ff16801561242f57506000601354115b156124e7576064601354876124449190613059565b61244e9190613078565b9150601354601554836124619190613059565b61246b9190613078565b6018600082825461247c919061309a565b90915550506013546014546124919084613059565b61249b9190613078565b601760008282546124ac919061309a565b90915550506013546016546124c19084613059565b6124cb9190613078565b601960008282546124dc919061309a565b909155506125c49050565b6001600160a01b0388166000908152601c602052604090205460ff16801561251157506000600f54115b156125c4576064600f54876125269190613059565b6125309190613078565b9150600f54601154836125439190613059565b61254d9190613078565b6018600082825461255e919061309a565b9091555050600f546010546125739084613059565b61257d9190613078565b6017600082825461258e919061309a565b9091555050600f546012546125a39084613059565b6125ad9190613078565b601960008282546125be919061309a565b90915550505b81156125d5576125d5883084612878565b6125df818361309a565b6125e99087613294565b95505b6125f7888888612878565b5050505050505050565b6001600160a01b0382166000908152601c60205260409020805460ff191682151517905561262f82826129cd565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3060009081526020819052604081205490506000601954601754601854612692919061309a565b61269c919061309a565b90508115806126a9575080155b156126b2575050565b6009546126c090600a613059565b8211156126d8576009546126d590600a613059565b91505b600080600283601854866126ec9190613059565b6126f69190613078565b6127009190613078565b905061271461270f8286613294565b612a30565b6018544790819060009061272a90600290613078565b6127349087613294565b6017546127419085613059565b61274b9190613078565b90506000600260185461275e9190613078565b6127689088613294565b6019546127759086613059565b61277f9190613078565b905061278b818361309a565b6127959084613294565b600060188190556017819055601955925084158015906127b55750600083115b156127c4576127c48584612be8565b600b546040516001600160a01b03909116908290600081818185875af1925050503d8060008114612811576040519150601f19603f3d011682016040523d82523d6000602084013e612816565b606091505b5050600a546040519197506001600160a01b0316904790600081818185875af1925050503d8060008114612866576040519150601f19603f3d011682016040523d82523d6000602084013e61286b565b606091505b5050505050505050505050565b6001600160a01b03831661289e5760405162461bcd60e51b8152600401610baa9061320c565b6001600160a01b0382166128c45760405162461bcd60e51b8152600401610baa90613251565b6001600160a01b0383166000908152602081905260409020548181101561293c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610baa565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061297390849061309a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129bf91815260200190565b60405180910390a350505050565b6001600160a01b0382166000818152601b6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612a6557612a656130b2565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0791906132ab565b81600181518110612b1a57612b1a6130b2565b60200260200101906001600160a01b031690816001600160a01b031681525050612b65307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d2b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612bba9085906000908690309042906004016132c8565b600060405180830381600087803b158015612bd457600080fd5b505af115801561184c573d6000803e3d6000fd5b612c13307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611d2b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d719823085600080612c5a6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612cc2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ce79190613339565b5050505050565b600060208083528351808285015260005b81811015612d1b57858101830151858201604001528201612cff565b81811115612d2d576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612d5857600080fd5b50565b60008060408385031215612d6e57600080fd5b8235612d7981612d43565b946020939093013593505050565b600060208284031215612d9957600080fd5b8135612da481612d43565b9392505050565b600080600060608486031215612dc057600080fd5b8335612dcb81612d43565b92506020840135612ddb81612d43565b929592945050506040919091013590565b600060208284031215612dfe57600080fd5b5035919050565b60008083601f840112612e1757600080fd5b50813567ffffffffffffffff811115612e2f57600080fd5b6020830191508360208260051b8501011115612e4a57600080fd5b9250929050565b8015158114612d5857600080fd5b600080600060408486031215612e7457600080fd5b833567ffffffffffffffff811115612e8b57600080fd5b612e9786828701612e05565b9094509250506020840135612eab81612e51565b809150509250925092565b60008060408385031215612ec957600080fd5b8235612d7981612e51565b60008060408385031215612ee757600080fd5b8235612ef281612d43565b91506020830135612f0281612e51565b809150509250929050565b600080600060608486031215612f2257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612f4c57600080fd5b8235612f5781612d43565b91506020830135612f0281612d43565b60008060008060408587031215612f7d57600080fd5b843567ffffffffffffffff80821115612f9557600080fd5b612fa188838901612e05565b90965094506020870135915080821115612fba57600080fd5b50612fc787828801612e05565b95989497509550505050565b600181811c90821680612fe757607f821691505b6020821081141561300857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561307357613073613043565b500290565b60008261309557634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156130ad576130ad613043565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156130dc576130dc613043565b5060010190565b6000602082840312156130f557600080fd5b5051919050565b60006020828403121561310e57600080fd5b8151612da481612e51565b600181815b8085111561315457816000190482111561313a5761313a613043565b8085161561314757918102915b93841c939080029061311e565b509250929050565b60008261316b57506001610b16565b8161317857506000610b16565b816001811461318e5760028114613198576131b4565b6001915050610b16565b60ff8411156131a9576131a9613043565b50506001821b610b16565b5060208310610133831016604e8410600b84101617156131d7575081810a610b16565b6131e18383613119565b80600019048211156131f5576131f5613043565b029392505050565b6000612da460ff84168361315c565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156132a6576132a6613043565b500390565b6000602082840312156132bd57600080fd5b8151612da481612d43565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133185784516001600160a01b0316835293830193918301916001016132f3565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561334e57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220577d0043df78e62a0d4b194ab026da955870af86f8c6007858a288c74b3a3cae64736f6c634300080c0033
Deployed Bytecode Sourcemap
7006:15488:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1724:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2638:169;;;;;;;;;;-1:-1:-1;2638:169:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;2638:169:0;1072:187:1;20336:106:0;;;;;;;;;;-1:-1:-1;20336:106:0;;;;;:::i;:::-;-1:-1:-1;;;;;20416:18:0;20392:4;20416:18;;;:9;:18;;;;;;;;;20336:106;8128:64;;;;;;;;;;-1:-1:-1;8128:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7125:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1698:32:1;;;1680:51;;1668:2;1653:18;7125:43:0;1516:221:1;2045:108:0;;;;;;;;;;-1:-1:-1;2133:12:0;;2045:108;;;1888:25:1;;;1876:2;1861:18;2045:108:0;1742:177:1;7933:33:0;;;;;;;;;;;;;;;;2815:480;;;;;;;;;;-1:-1:-1;2815:480:0;;;;;:::i;:::-;;:::i;10893:269::-;;;;;;;;;;-1:-1:-1;10893:269:0;;;;;:::i;:::-;;:::i;:::-;;1944:93;;;;;;;;;;-1:-1:-1;1944:93:0;;2027:2;2712:36:1;;2700:2;2685:18;1944:93:0;2570:184:1;3303:215:0;;;;;;;;;;-1:-1:-1;3303:215:0;;;;;:::i;:::-;;:::i;7175:38::-;;;;;;;;;;;;;;;7482:33;;;;;;;;;;-1:-1:-1;7482:33:0;;;;;;;;7292:30;;;;;;;;;;-1:-1:-1;7292:30:0;;;;-1:-1:-1;;;;;7292:30:0;;;7636:29;;;;;;;;;;;;;;;;20120:208;;;;;;;;;;-1:-1:-1;20120:208:0;;;;;:::i;:::-;;:::i;17882:425::-;;;;;;;;;;-1:-1:-1;17882:425:0;;;;;:::i;:::-;;:::i;19550:281::-;;;;;;;;;;-1:-1:-1;19550:281:0;;;;;:::i;:::-;;:::i;7746:28::-;;;;;;;;;;;;;;;;7781:30;;;;;;;;;;;;;;;;7562:31;;;;;;;;;;-1:-1:-1;7562:31:0;;;;;;;;;;;2161:127;;;;;;;;;;-1:-1:-1;2161:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2262:18:0;2235:7;2262:18;;;;;;;;;;;;2161:127;5765:150;;;;;;;;;;;;;:::i;11218:115::-;;;;;;;;;;;;;:::i;11558:267::-;;;;;;;;;;-1:-1:-1;11558:267:0;;;;;:::i;:::-;;:::i;7709:28::-;;;;;;;;;;;;;;;;12553:381;;;;;;;;;;-1:-1:-1;12553:381:0;;;;;:::i;:::-;;:::i;21878:::-;;;;;;;;;;-1:-1:-1;21878:381:0;;;;;:::i;:::-;;:::i;19839:273::-;;;;;;;;;;-1:-1:-1;19839:273:0;;;;;:::i;:::-;;:::i;5551:79::-;;;;;;;;;;-1:-1:-1;5616:6:0;;-1:-1:-1;;;;;5616:6:0;5551:79;;1832:104;;;;;;;;;;;;;:::i;17332:246::-;;;;;;;;;;-1:-1:-1;17332:246:0;;;;;:::i;:::-;;:::i;3526:401::-;;;;;;;;;;-1:-1:-1;3526:401:0;;;;;:::i;:::-;;:::i;2296:175::-;;;;;;;;;;-1:-1:-1;2296:175:0;;;;;:::i;:::-;;:::i;7086:30::-;;;;;;;;;;;;;;;;8350:58;;;;;;;;;;-1:-1:-1;8350:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18852:688;;;;;;;;;;-1:-1:-1;18852:688:0;;;;;:::i;:::-;;:::i;7856:29::-;;;;;;;;;;;;;;;;7522:33;;;;;;;;;;-1:-1:-1;7522:33:0;;;;;;;;;;;13340:182;;;;;;;;;;-1:-1:-1;13340:182:0;;;;;:::i;:::-;;:::i;7329:29::-;;;;;;;;;;-1:-1:-1;7329:29:0;;;;-1:-1:-1;;;;;7329:29:0;;;12942:390;;;;;;;;;;-1:-1:-1;12942:390:0;;;;;:::i;:::-;;:::i;11833:284::-;;;;;;;;;;-1:-1:-1;11833:284:0;;;;;:::i;:::-;;:::i;7894:32::-;;;;;;;;;;;;;;;;12187:350;;;;;;;;;;-1:-1:-1;12187:350:0;;;;;:::i;:::-;;:::i;7602:27::-;;;;;;;;;;;;;;;;2479:151;;;;;;;;;;-1:-1:-1;2479:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2595:18:0;;;2568:7;2595:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2479:151;7250:33;;;;;;;;;;;;;;;;7367:37;;;;;;;;;;;;;;;;7672:30;;;;;;;;;;;;;;;;5923:244;;;;;;;;;;-1:-1:-1;5923:244:0;;;;;:::i;:::-;;:::i;7973:31::-;;;;;;;;;;;;;;;;22329:160;;;;;;;;;;;;;:::i;7818:31::-;;;;;;;;;;;;;;;;7052:27;;;;;;;;;;;;;;;;7444:29;;;;;;;;;;;;;;;;1724:100;1778:13;1811:5;1804:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1724:100;:::o;2638:169::-;2721:4;2738:39;243:10;2761:7;2770:6;2738:8;:39::i;:::-;-1:-1:-1;2795:4:0;2638:169;;;;;:::o;2815:480::-;2955:4;2972:36;2982:6;2990:9;3001:6;2972:9;:36::i;:::-;-1:-1:-1;;;;;3048:19:0;;3021:24;3048:19;;;:11;:19;;;;;;;;243:10;3048:33;;;;;;;;3100:26;;;;3092:79;;;;-1:-1:-1;;;3092:79:0;;6813:2:1;3092:79:0;;;6795:21:1;6852:2;6832:18;;;6825:30;6891:34;6871:18;;;6864:62;-1:-1:-1;;;6942:18:1;;;6935:38;6990:19;;3092:79:0;;;;;;;;;3199:57;3208:6;243:10;3249:6;3230:16;:25;3199:8;:57::i;:::-;-1:-1:-1;3283:4:0;;2815:480;-1:-1:-1;;;;2815:480:0:o;10893:269::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;11012:4:::1;11006;10986:13;2133:12:::0;;;2045:108;10986:13:::1;:17;::::0;11002:1:::1;10986:17;:::i;:::-;:24;;;;:::i;:::-;10985:31;;;;:::i;:::-;10975:6;:41;;10967:95;;;::::0;-1:-1:-1;;;10967:95:0;;8110:2:1;10967:95:0::1;::::0;::::1;8092:21:1::0;8149:2;8129:18;;;8122:30;8188:34;8168:18;;;8161:62;-1:-1:-1;;;8239:18:1;;;8232:39;8288:19;;10967:95:0::1;7908:405:1::0;10967:95:0::1;11088:17;:6:::0;11098::::1;11088:17;:::i;:::-;11073:12;:32:::0;;;11121:33:::1;::::0;1888:25:1;;;11121:33:0::1;::::0;1876:2:1;1861:18;11121:33:0::1;;;;;;;;10893:269:::0;:::o;3303:215::-;243:10;3391:4;3440:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3440:34:0;;;;;;;;;;3391:4;;3408:80;;3431:7;;3440:47;;3477:10;;3440:47;:::i;:::-;3408:8;:80::i;20120:208::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;20220:9:::1;20215:106;20231:20:::0;;::::1;20215:106;;;20303:6;20277:9;:23;20287:9;;20297:1;20287:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20277:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20277:23:0;:32;;-1:-1:-1;;20277:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20253:3:::1;::::0;::::1;:::i;:::-;;;20215:106;;;;20120:208:::0;;;:::o;17882:425::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;17979:13:::1;::::0;::::1;::::0;::::1;;;17978:14;17970:51;;;::::0;-1:-1:-1;;;17970:51:0;;8925:2:1;17970:51:0::1;::::0;::::1;8907:21:1::0;8964:2;8944:18;;;8937:30;9003:26;8983:18;;;8976:54;9047:18;;17970:51:0::1;8723:348:1::0;17970:51:0::1;18032:13;:23:::0;;-1:-1:-1;;18032:23:0;::::1;;;::::0;;::::1;18066:18:::0;;;;-1:-1:-1;;18066:18:0;;;;;;;;::::1;::::0;;;;18100:42:::1;::::0;::::1;::::0;::::1;::::0;18115:13;::::1;18032:23;18115:13;::::0;18130:11;;9269:14:1;;9262:22;9244:41;;9316:2;9301:18;;9294:34;9232:2;9217:18;;9076:258;18100:42:0::1;;;;;;;;18159:13;::::0;::::1;::::0;::::1;;;:40:::0;::::1;;;-1:-1:-1::0;18176:18:0::1;::::0;:23;18159:40:::1;18155:145;;;18237:12;18216:18;:33:::0;18264:10:::1;:24:::0;;;18155:145:::1;17882:425:::0;;:::o;19550:281::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19642:30:0;::::1;19634:79;;;::::0;-1:-1:-1;;;19634:79:0;;9541:2:1;19634:79:0::1;::::0;::::1;9523:21:1::0;9580:2;9560:18;;;9553:30;9619:34;9599:18;;;9592:62;-1:-1:-1;;;9670:18:1;;;9663:34;9714:19;;19634:79:0::1;9339:400:1::0;19634:79:0::1;19724:15;:43:::0;;-1:-1:-1;;;;;;19724:43:0::1;-1:-1:-1::0;;;;;19724:43:0;::::1;::::0;;::::1;::::0;;;19783:40:::1;::::0;::::1;::::0;-1:-1:-1;;19783:40:0::1;19550:281:::0;:::o;5765:150::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;5858:6:::1;::::0;5837:40:::1;::::0;5874:1:::1;::::0;-1:-1:-1;;;;;5858:6:0::1;::::0;5837:40:::1;::::0;5874:1;;5837:40:::1;5888:6;:19:::0;;-1:-1:-1;;;;;;5888:19:0::1;::::0;;5765:150::o;11218:115::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;11272:14:::1;:22:::0;;-1:-1:-1;;11272:22:0::1;::::0;;11310:15:::1;::::0;::::1;::::0;11289:5:::1;::::0;11310:15:::1;11218:115::o:0;11558:267::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;11654:4:::1;11650:111;;11692:13;-1:-1:-1::0;;;;;11682:23:0::1;:6;-1:-1:-1::0;;;;;11682:23:0::1;;;11674:75;;;::::0;-1:-1:-1;;;11674:75:0;;9946:2:1;11674:75:0::1;::::0;::::1;9928:21:1::0;9985:2;9965:18;;;9958:30;10024:34;10004:18;;;9997:62;-1:-1:-1;;;10075:18:1;;;10068:37;10122:19;;11674:75:0::1;9744:403:1::0;11674:75:0::1;-1:-1:-1::0;;;;;11771:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;11771:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11558:267::o;12553:381::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;12672:14:::1;:29:::0;;;12712:15:::1;:31:::0;;;12754:13:::1;:27:::0;;;12770:11;12807:32:::1;12730:13:::0;12689:12;12807:32:::1;:::i;:::-;:48;;;;:::i;:::-;12792:12;:63:::0;;;-1:-1:-1;12874:18:0::1;12866:60;;;::::0;-1:-1:-1;;;12866:60:0;;10354:2:1;12866:60:0::1;::::0;::::1;10336:21:1::0;10393:2;10373:18;;;10366:30;10432:31;10412:18;;;10405:59;10481:18;;12866:60:0::1;10152:353:1::0;12866:60:0::1;12553:381:::0;;;:::o;21878:::-;5678:6;;21965:10;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21996:20:0;::::1;21988:59;;;::::0;-1:-1:-1;;;21988:59:0;;10712:2:1;21988:59:0::1;::::0;::::1;10694:21:1::0;10751:2;10731:18;;;10724:30;10790:28;10770:18;;;10763:56;10836:18;;21988:59:0::1;10510:350:1::0;21988:59:0::1;22085:39;::::0;-1:-1:-1;;;22085:39:0;;22118:4:::1;22085:39;::::0;::::1;1680:51:1::0;22058:24:0::1;::::0;-1:-1:-1;;;;;22085:24:0;::::1;::::0;::::1;::::0;1653:18:1;;22085:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22143:46;::::0;-1:-1:-1;;;22143:46:0;;-1:-1:-1;;;;;11246:32:1;;;22143:46:0::1;::::0;::::1;11228:51:1::0;11295:18;;;11288:34;;;22058:66:0;;-1:-1:-1;22143:23:0;;::::1;::::0;::::1;::::0;11201:18:1;;22143:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22205;::::0;;-1:-1:-1;;;;;11246:32:1;;11228:51;;11310:2;11295:18;;11288:34;;;22135:54:0;;-1:-1:-1;22205:46:0::1;::::0;11201:18:1;22205:46:0::1;;;;;;;21977:282;21878:381:::0;;;;:::o;19839:273::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19929:29:0;::::1;19921:77;;;::::0;-1:-1:-1;;;19921:77:0;;11785:2:1;19921:77:0::1;::::0;::::1;11767:21:1::0;11824:2;11804:18;;;11797:30;11863:34;11843:18;;;11836:62;-1:-1:-1;;;11914:18:1;;;11907:33;11957:19;;19921:77:0::1;11583:399:1::0;19921:77:0::1;20009:14;:41:::0;;-1:-1:-1;;;;;;20009:41:0::1;-1:-1:-1::0;;;;;20009:41:0;::::1;::::0;;::::1;::::0;;;20066:38:::1;::::0;::::1;::::0;-1:-1:-1;;20066:38:0::1;19839:273:::0;:::o;1832:104::-;1888:13;1921:7;1914:14;;;;;:::i;17332:246::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;17441:13:::1;-1:-1:-1::0;;;;;17433:21:0::1;:4;-1:-1:-1::0;;;;;17433:21:0::1;;;17425:91;;;::::0;-1:-1:-1;;;17425:91:0;;12189:2:1;17425:91:0::1;::::0;::::1;12171:21:1::0;12228:2;12208:18;;;12201:30;12267:34;12247:18;;;12240:62;12338:27;12318:18;;;12311:55;12383:19;;17425:91:0::1;11987:421:1::0;17425:91:0::1;17529:41;17558:4;17564:5;17529:28;:41::i;3526:401::-:0;243:10;3619:4;3663:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3663:34:0;;;;;;;;;;3716:35;;;;3708:85;;;;-1:-1:-1;;;3708:85:0;;12615:2:1;3708:85:0;;;12597:21:1;12654:2;12634:18;;;12627:30;12693:34;12673:18;;;12666:62;-1:-1:-1;;;12744:18:1;;;12737:35;12789:19;;3708:85:0;12413:401:1;3708:85:0;3821:67;243:10;3844:7;3872:15;3853:16;:34;3821:8;:67::i;:::-;-1:-1:-1;3915:4:0;;3526:401;-1:-1:-1;;;3526:401:0:o;2296:175::-;2382:4;2399:42;243:10;2423:9;2434:6;2399:9;:42::i;18852:688::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;18987:3:::1;18968:22:::0;::::1;18960:79;;;::::0;-1:-1:-1;;;18960:79:0;;13021:2:1;18960:79:0::1;::::0;::::1;13003:21:1::0;13060:2;13040:18;;;13033:30;13099:34;13079:18;;;13072:62;-1:-1:-1;;;13150:18:1;;;13143:43;13203:19;;18960:79:0::1;12819:409:1::0;18960:79:0::1;19081:33:::0;;::::1;19073:85;;;::::0;-1:-1:-1;;;19073:85:0;;13435:2:1;19073:85:0::1;::::0;::::1;13417:21:1::0;13474:2;13454:18;;;13447:30;13513:34;13493:18;;;13486:62;-1:-1:-1;;;13564:18:1;;;13557:38;13612:19;;19073:85:0::1;13233:404:1::0;19073:85:0::1;19171:12;19204:6:::0;19200:109:::1;19214:20:::0;;::::1;19200:109;;;19282:14;2027:2:::0;19282::::1;:14;:::i;:::-;19270:6;;19277:1;19270:9;;;;;;;:::i;:::-;;;;;;;:26;;;;:::i;:::-;19262:35;::::0;:4;:35:::1;:::i;:::-;19255:42:::0;-1:-1:-1;19236:3:0;::::1;::::0;::::1;:::i;:::-;;;;19200:109;;;-1:-1:-1::0;19339:10:0::1;2235:7:::0;2262:18;;;;;;;;;;;19354:4;-1:-1:-1;19329:29:0::1;19321:69;;;::::0;-1:-1:-1;;;19321:69:0;;15227:2:1;19321:69:0::1;::::0;::::1;15209:21:1::0;15266:2;15246:18;;;15239:30;15305:29;15285:18;;;15278:57;15352:18;;19321:69:0::1;15025:351:1::0;19321:69:0::1;19407:6;19403:130;19417:20:::0;;::::1;19403:130;;;19458:63;19468:10;19479:9;;19489:1;19479:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19505:14;2027:2:::0;19505::::1;:14;:::i;:::-;19493:6;;19500:1;19493:9;;;;;;;:::i;:::-;;;;;;;:26;;;;:::i;:::-;19458:9;:63::i;:::-;19439:3:::0;::::1;::::0;::::1;:::i;:::-;;;;19403:130;;;;18947:593;18852:688:::0;;;;:::o;13340:182::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13425:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;13425:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13480:34;;1212:41:1;;;13480:34:0::1;::::0;1185:18:1;13480:34:0::1;;;;;;;13340:182:::0;;:::o;12942:390::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;13062:15:::1;:30:::0;;;13103:16:::1;:32:::0;;;13146:14:::1;:28:::0;;;13163:11;13201:34:::1;13122:13:::0;13080:12;13201:34:::1;:::i;:::-;:51;;;;:::i;:::-;13185:13;:67:::0;;;13288:2:::1;-1:-1:-1::0;13271:19:0::1;13263:61;;;::::0;-1:-1:-1;;;13263:61:0;;15583:2:1;13263:61:0::1;::::0;::::1;15565:21:1::0;15622:2;15602:18;;;15595:30;15661:31;15641:18;;;15634:59;15710:18;;13263:61:0::1;15381:353:1::0;11833:284:0;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;11955:4:::1;11949;11929:13;2133:12:::0;;;2045:108;11929:13:::1;:17;::::0;11945:1:::1;11929:17;:::i;:::-;:24;;;;:::i;:::-;11928:31;;;;:::i;:::-;11918:6;:41;;11910:98;;;::::0;-1:-1:-1;;;11910:98:0;;15941:2:1;11910:98:0::1;::::0;::::1;15923:21:1::0;15980:2;15960:18;;;15953:30;16019:34;15999:18;;;15992:62;-1:-1:-1;;;16070:18:1;;;16063:42;16122:19;;11910:98:0::1;15739:408:1::0;11910:98:0::1;12037:17;:6:::0;12047::::1;12037:17;:::i;:::-;12019:15;:35:::0;;;12070:39:::1;::::0;1888:25:1;;;12070:39:0::1;::::0;1876:2:1;1861:18;12070:39:0::1;1742:177:1::0;12187:350:0;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;12311:6:::1;12291:13;2133:12:::0;;;2045:108;12291:13:::1;:17;::::0;12307:1:::1;12291:17;:::i;:::-;:26;;;;:::i;:::-;12278:9;:39;;12270:105;;;::::0;-1:-1:-1;;;12270:105:0;;16354:2:1;12270:105:0::1;::::0;::::1;16336:21:1::0;16393:2;16373:18;;;16366:30;16432:34;16412:18;;;16405:62;-1:-1:-1;;;16483:18:1;;;16476:51;16544:19;;12270:105:0::1;16152:417:1::0;12270:105:0::1;12427:4;12407:13;2133:12:::0;;;2045:108;12407:13:::1;:17;::::0;12423:1:::1;12407:17;:::i;:::-;:24;;;;:::i;:::-;12394:9;:37;;12386:102;;;::::0;-1:-1:-1;;;12386:102:0;;16776:2:1;12386:102:0::1;::::0;::::1;16758:21:1::0;16815:2;16795:18;;;16788:30;16854:34;16834:18;;;16827:62;-1:-1:-1;;;16905:18:1;;;16898:50;16965:19;;12386:102:0::1;16574:416:1::0;12386:102:0::1;12499:18;:30:::0;12187:350::o;5923:244::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6012:22:0;::::1;6004:73;;;::::0;-1:-1:-1;;;6004:73:0;;17197:2:1;6004:73:0::1;::::0;::::1;17179:21:1::0;17236:2;17216:18;;;17209:30;17275:34;17255:18;;;17248:62;-1:-1:-1;;;17326:18:1;;;17319:36;17372:19;;6004:73:0::1;16995:402:1::0;6004:73:0::1;6114:6;::::0;6093:38:::1;::::0;-1:-1:-1;;;;;6093:38:0;;::::1;::::0;6114:6:::1;::::0;6093:38:::1;::::0;6114:6:::1;::::0;6093:38:::1;6142:6;:17:::0;;-1:-1:-1;;;;;;6142:17:0::1;-1:-1:-1::0;;;;;6142:17:0;;;::::1;::::0;;;::::1;::::0;;5923:244::o;22329:160::-;5678:6;;-1:-1:-1;;;;;5678:6:0;243:10;5678:22;5670:67;;;;-1:-1:-1;;;5670:67:0;;;;;;;:::i;:::-;22423:58:::1;::::0;22387:12:::1;::::0;22431:10:::1;::::0;22455:21:::1;::::0;22387:12;22423:58;22387:12;22423:58;22455:21;22431:10;22423:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4844:380:::0;-1:-1:-1;;;;;4980:19:0;;4972:68;;;;-1:-1:-1;;;4972:68:0;;17814:2:1;4972:68:0;;;17796:21:1;17853:2;17833:18;;;17826:30;17892:34;17872:18;;;17865:62;-1:-1:-1;;;17943:18:1;;;17936:34;17987:19;;4972:68:0;17612:400:1;4972:68:0;-1:-1:-1;;;;;5059:21:0;;5051:68;;;;-1:-1:-1;;;5051:68:0;;18219:2:1;5051:68:0;;;18201:21:1;18258:2;18238:18;;;18231:30;18297:34;18277:18;;;18270:62;-1:-1:-1;;;18348:18:1;;;18341:32;18390:19;;5051:68:0;18017:398:1;5051:68:0;-1:-1:-1;;;;;5132:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5184:32;;1888:25:1;;;5184:32:0;;1861:18:1;5184:32:0;;;;;;;4844:380;;;:::o;13532:3193::-;-1:-1:-1;;;;;13632:18:0;;13624:68;;;;-1:-1:-1;;;13624:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13711:16:0;;13703:64;;;;-1:-1:-1;;;13703:64:0;;;;;;;:::i;:::-;13795:1;13786:6;:10;13778:52;;;;-1:-1:-1;;;13778:52:0;;19432:2:1;13778:52:0;;;19414:21:1;19471:2;19451:18;;;19444:30;19510:31;19490:18;;;19483:59;19559:18;;13778:52:0;19230:353:1;13778:52:0;-1:-1:-1;;;;;13850:15:0;;;;;;:9;:15;;;;;;;;13849:16;13841:56;;;;-1:-1:-1;;;13841:56:0;;19790:2:1;13841:56:0;;;19772:21:1;19829:2;19809:18;;;19802:30;19868:29;19848:18;;;19841:57;19915:18;;13841:56:0;19588:351:1;13841:56:0;-1:-1:-1;;;;;13917:13:0;;;;;;:9;:13;;;;;;;;13916:14;13908:54;;;;-1:-1:-1;;;13908:54:0;;19790:2:1;13908:54:0;;;19772:21:1;19829:2;19809:18;;;19802:30;19868:29;19848:18;;;19841:57;19915:18;;13908:54:0;19588:351:1;13908:54:0;13980:14;;;;13977:978;;;5616:6;;-1:-1:-1;;;;;14014:15:0;;;5616:6;;14014:15;;;;:32;;-1:-1:-1;5616:6:0;;-1:-1:-1;;;;;14033:13:0;;;5616:6;;14033:13;;14014:32;:52;;;;-1:-1:-1;;;;;;14050:16:0;;;;14014:52;:77;;;;-1:-1:-1;;;;;;14070:21:0;;14084:6;14070:21;;14014:77;14010:934;;;14115:13;;;;;;;14111:241;;-1:-1:-1;;;;;14160:37:0;;;;;;:31;:37;;;;;;;;;:76;;-1:-1:-1;;;;;;14201:35:0;;;;;;:31;:35;;;;;;;;14160:76;14152:111;;;;-1:-1:-1;;;14152:111:0;;20146:2:1;14152:111:0;;;20128:21:1;20185:2;20165:18;;;20158:30;-1:-1:-1;;;20204:18:1;;;20197:52;20266:18;;14152:111:0;19944:346:1;14152:111:0;5616:6;;-1:-1:-1;;;;;14294:15:0;;;5616:6;;14294:15;14286:46;;;;-1:-1:-1;;;14286:46:0;;20497:2:1;14286:46:0;;;20479:21:1;20536:2;20516:18;;;20509:30;-1:-1:-1;;;20555:18:1;;;20548:48;20613:18;;14286:46:0;20295:342:1;14286:46:0;-1:-1:-1;;;;;14404:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;14440:35:0;;;;;;:31;:35;;;;;;;;14439:36;14404:71;14400:529;;;14518:12;;14508:6;:22;;14500:81;;;;-1:-1:-1;;;14500:81:0;;20844:2:1;14500:81:0;;;20826:21:1;20883:2;20863:18;;;20856:30;20922:34;20902:18;;;20895:62;-1:-1:-1;;;20973:18:1;;;20966:44;21027:19;;14500:81:0;20642:410:1;14500:81:0;14638:15;;-1:-1:-1;;;;;2262:18:0;;2235:7;2262:18;;;;;;;;;;;14612:22;;:6;:22;:::i;:::-;:41;;14604:78;;;;-1:-1:-1;;;14604:78:0;;21259:2:1;14604:78:0;;;21241:21:1;21298:2;21278:18;;;21271:30;-1:-1:-1;;;21317:18:1;;;21310:54;21381:18;;14604:78:0;21057:348:1;14604:78:0;14400:529;;;-1:-1:-1;;;;;14730:35:0;;;;;;:31;:35;;;;;;;;14729:36;:78;;;;-1:-1:-1;;;;;;14770:37:0;;;;;;:31;:37;;;;;;;;14769:38;14729:78;14725:204;;;14865:15;;-1:-1:-1;;;;;2262:18:0;;2235:7;2262:18;;;;;;;;;;;14839:22;;:6;:22;:::i;:::-;:41;;14831:78;;;;-1:-1:-1;;;14831:78:0;;21259:2:1;14831:78:0;;;21241:21:1;21298:2;21278:18;;;21271:30;-1:-1:-1;;;21317:18:1;;;21310:54;21381:18;;14831:78:0;21057:348:1;14831:78:0;15016:4;14967:28;2262:18;;;;;;;;;;;15074;;15050:42;;;;;;;15108:22;;-1:-1:-1;15119:11:0;;;;;;;15108:22;:35;;;;-1:-1:-1;15135:8:0;;;;15134:9;15108:35;:71;;;;-1:-1:-1;;;;;;15148:31:0;;;;;;:25;:31;;;;;;;;15147:32;15108:71;:101;;;;-1:-1:-1;;;;;;15184:25:0;;;;;;:19;:25;;;;;;;;15183:26;15108:101;:129;;;;-1:-1:-1;;;;;;15214:23:0;;;;;;:19;:23;;;;;;;;15213:24;15108:129;15105:236;;;15254:8;:15;;-1:-1:-1;;15254:15:0;15265:4;15254:15;;;15286:10;:8;:10::i;:::-;15313:8;:16;;-1:-1:-1;;15313:16:0;;;15105:236;-1:-1:-1;;;;;15471:25:0;;15353:12;15471:25;;;:19;:25;;;;;;15368:4;;15471:25;;;:52;;-1:-1:-1;;;;;;15500:23:0;;;;;;:19;:23;;;;;;;;15471:52;15468:99;;;-1:-1:-1;15550:5:0;15468:99;15579:12;15606:21;15709:7;15706:966;;;-1:-1:-1;;;;;15760:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;15809:1;15793:13;;:17;15760:50;15756:753;;;15861:3;15846:13;;15837:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;15830:34;;15931:13;;15912:16;;15905:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;15883:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;16009:13:0;;15991:15;;15984:22;;:4;:22;:::i;:::-;:38;;;;:::i;:::-;15963:17;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;16085:13:0;;16068:14;;16061:21;;:4;:21;:::i;:::-;:37;;;;:::i;:::-;16041:16;;:57;;;;;;;:::i;:::-;;;;-1:-1:-1;15756:753:0;;-1:-1:-1;15756:753:0;;-1:-1:-1;;;;;16159:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;16209:1;16194:12;;:16;16159:51;16156:353;;;16262:3;16247:12;;16238:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;16231:34;;16331:12;;16313:15;;16306:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;16284:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;16407:12:0;;16390:14;;16383:21;;:4;:21;:::i;:::-;:36;;;;:::i;:::-;16362:17;;:57;;;;;;;:::i;:::-;;;;-1:-1:-1;;16481:12:0;;16465:13;;16458:20;;:4;:20;:::i;:::-;:35;;;;:::i;:::-;16438:16;;:55;;;;;;;:::i;:::-;;;;-1:-1:-1;;16156:353:0;16528:8;;16525:89;;16556:42;16572:4;16586;16593;16556:15;:42::i;:::-;16640:20;16647:13;16640:4;:20;:::i;:::-;16630:30;;;;:::i;:::-;;;15706:966;16684:33;16700:4;16706:2;16710:6;16684:15;:33::i;:::-;13611:3114;;;;;13532:3193;;;:::o;17586:240::-;-1:-1:-1;;;;;17669:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;17669:39:0;;;;;;;17721;17669:31;:39;17721:26;:39::i;:::-;17778:40;;;;;;-1:-1:-1;;;;;17778:40:0;;;;;;;;17586:240;;:::o;20455:1415::-;20538:4;20494:23;2262:18;;;;;;;;;;;20494:50;;20555:25;20624:16;;20604:17;;20583:18;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;20555:85;-1:-1:-1;20656:20:0;;;:46;;-1:-1:-1;20680:22:0;;20656:46;20653:60;;;20705:7;;20455:1415::o;20653:60::-;20746:18;;:23;;20767:2;20746:23;:::i;:::-;20728:15;:41;20725:113;;;20803:18;;:23;;20824:2;20803:23;:::i;:::-;20785:41;;20725:113;20850:12;20924:23;21009:1;20989:17;20968:18;;20950:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;20924:86;-1:-1:-1;21023:51:0;21040:33;20924:86;21040:15;:33;:::i;:::-;21023:16;:51::i;:::-;21269:18;;21108:21;;;;21087:18;;21269:20;;21288:1;;21269:20;:::i;:::-;21248:42;;:17;:42;:::i;:::-;21227:17;;21214:30;;:10;:30;:::i;:::-;:77;;;;:::i;:::-;21189:102;;21302:21;21399:1;21380:18;;:20;;;;:::i;:::-;21359:42;;:17;:42;:::i;:::-;21339:16;;21326:29;;:10;:29;:::i;:::-;:76;;;;:::i;:::-;21302:100;-1:-1:-1;21434:30:0;21302:100;21434:14;:30;:::i;:::-;21415:49;;;;:::i;:::-;21498:1;21477:18;:22;;;21510:17;:21;;;21542:16;:20;21415:49;-1:-1:-1;21578:19:0;;;;;:42;;;21619:1;21601:15;:19;21578:42;21575:119;;;21636:46;21649:15;21666;21636:12;:46::i;:::-;21727:14;;21719:54;;-1:-1:-1;;;;;21727:14:0;;;;21755:13;;21719:54;;;;21755:13;21727:14;21719:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21807:15:0;;21799:63;;21706:67;;-1:-1:-1;;;;;;21807:15:0;;21836:21;;21799:63;;;;21836:21;21807:15;21799:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20455:1415:0:o;3935:602::-;-1:-1:-1;;;;;4075:20:0;;4067:70;;;;-1:-1:-1;;;4067:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4156:23:0;;4148:71;;;;-1:-1:-1;;;4148:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4256:17:0;;4232:21;4256:17;;;;;;;;;;;4292:23;;;;4284:74;;;;-1:-1:-1;;;4284:74:0;;21742:2:1;4284:74:0;;;21724:21:1;21781:2;21761:18;;;21754:30;21820:34;21800:18;;;21793:62;-1:-1:-1;;;21871:18:1;;;21864:36;21917:19;;4284:74:0;21540:402:1;4284:74:0;-1:-1:-1;;;;;4386:17:0;;;:9;:17;;;;;;;;;;;4406:22;;;4386:42;;4446:20;;;;;;;;:30;;4422:6;;4386:9;4446:30;;4422:6;;4446:30;:::i;:::-;;;;;;;;4511:9;-1:-1:-1;;;;;4494:35:0;4503:6;-1:-1:-1;;;;;4494:35:0;;4522:6;4494:35;;;;1888:25:1;;1876:2;1861:18;;1742:177;4494:35:0;;;;;;;;4056:481;3935:602;;;:::o;11343:207::-;-1:-1:-1;;;;;11431:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;11431:52:0;;;;;;;;;;11499:43;;22115:51:1;;;22182:18;;;22175:50;11499:43:0;;22088:18:1;11499:43:0;;;;;;;11343:207;;:::o;16733:591::-;16885:16;;;16899:1;16885:16;;;;;;;;16861:21;;16885:16;;;;;;;;;;-1:-1:-1;16885:16:0;16861:40;;16930:4;16912;16917:1;16912:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16912:23:0;;;-1:-1:-1;;;;;16912:23:0;;;;;16956:15;-1:-1:-1;;;;;16956:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16946:4;16951:1;16946:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16946:32:0;;;-1:-1:-1;;;;;16946:32:0;;;;;16991:62;17008:4;17023:15;17041:11;16991:8;:62::i;:::-;17092:224;;-1:-1:-1;;;17092:224:0;;-1:-1:-1;;;;;17092:15:0;:66;;;;:224;;17173:11;;17199:1;;17243:4;;17270;;17290:15;;17092:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18315:522;18463:62;18480:4;18495:15;18513:11;18463:8;:62::i;:::-;18568:15;-1:-1:-1;;;;;18568:31:0;;18607:9;18640:4;18660:11;18686:1;18729;18780:7;5616:6;;-1:-1:-1;;;;;5616:6:0;;5551:79;18780:7;18568:261;;;;;;-1:-1:-1;;;;;;18568:261:0;;;-1:-1:-1;;;;;23968:15:1;;;18568:261:0;;;23950:34:1;24000:18;;;23993:34;;;;24043:18;;;24036:34;;;;24086:18;;;24079:34;24150:15;;;24129:19;;;24122:44;18803:15:0;24182:19:1;;;24175:35;23884:19;;18568:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18315:522;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;:::-;1500:5;1264:247;-1:-1:-1;;;1264:247:1:o;1924:456::-;2001:6;2009;2017;2070:2;2058:9;2049:7;2045:23;2041:32;2038:52;;;2086:1;2083;2076:12;2038:52;2125:9;2112:23;2144:31;2169:5;2144:31;:::i;:::-;2194:5;-1:-1:-1;2251:2:1;2236:18;;2223:32;2264:33;2223:32;2264:33;:::i;:::-;1924:456;;2316:7;;-1:-1:-1;;;2370:2:1;2355:18;;;;2342:32;;1924:456::o;2385:180::-;2444:6;2497:2;2485:9;2476:7;2472:23;2468:32;2465:52;;;2513:1;2510;2503:12;2465:52;-1:-1:-1;2536:23:1;;2385:180;-1:-1:-1;2385:180:1:o;2967:367::-;3030:8;3040:6;3094:3;3087:4;3079:6;3075:17;3071:27;3061:55;;3112:1;3109;3102:12;3061:55;-1:-1:-1;3135:20:1;;3178:18;3167:30;;3164:50;;;3210:1;3207;3200:12;3164:50;3247:4;3239:6;3235:17;3223:29;;3307:3;3300:4;3290:6;3287:1;3283:14;3275:6;3271:27;3267:38;3264:47;3261:67;;;3324:1;3321;3314:12;3261:67;2967:367;;;;;:::o;3339:118::-;3425:5;3418:13;3411:21;3404:5;3401:32;3391:60;;3447:1;3444;3437:12;3462:566;3554:6;3562;3570;3623:2;3611:9;3602:7;3598:23;3594:32;3591:52;;;3639:1;3636;3629:12;3591:52;3679:9;3666:23;3712:18;3704:6;3701:30;3698:50;;;3744:1;3741;3734:12;3698:50;3783:70;3845:7;3836:6;3825:9;3821:22;3783:70;:::i;:::-;3872:8;;-1:-1:-1;3757:96:1;-1:-1:-1;;3957:2:1;3942:18;;3929:32;3970:28;3929:32;3970:28;:::i;:::-;4017:5;4007:15;;;3462:566;;;;;:::o;4033:309::-;4098:6;4106;4159:2;4147:9;4138:7;4134:23;4130:32;4127:52;;;4175:1;4172;4165:12;4127:52;4214:9;4201:23;4233:28;4255:5;4233:28;:::i;4347:382::-;4412:6;4420;4473:2;4461:9;4452:7;4448:23;4444:32;4441:52;;;4489:1;4486;4479:12;4441:52;4528:9;4515:23;4547:31;4572:5;4547:31;:::i;:::-;4597:5;-1:-1:-1;4654:2:1;4639:18;;4626:32;4667:30;4626:32;4667:30;:::i;:::-;4716:7;4706:17;;;4347:382;;;;;:::o;4734:316::-;4811:6;4819;4827;4880:2;4868:9;4859:7;4855:23;4851:32;4848:52;;;4896:1;4893;4886:12;4848:52;-1:-1:-1;;4919:23:1;;;4989:2;4974:18;;4961:32;;-1:-1:-1;5040:2:1;5025:18;;;5012:32;;4734:316;-1:-1:-1;4734:316:1:o;5055:388::-;5123:6;5131;5184:2;5172:9;5163:7;5159:23;5155:32;5152:52;;;5200:1;5197;5190:12;5152:52;5239:9;5226:23;5258:31;5283:5;5258:31;:::i;:::-;5308:5;-1:-1:-1;5365:2:1;5350:18;;5337:32;5378:33;5337:32;5378:33;:::i;5448:773::-;5570:6;5578;5586;5594;5647:2;5635:9;5626:7;5622:23;5618:32;5615:52;;;5663:1;5660;5653:12;5615:52;5703:9;5690:23;5732:18;5773:2;5765:6;5762:14;5759:34;;;5789:1;5786;5779:12;5759:34;5828:70;5890:7;5881:6;5870:9;5866:22;5828:70;:::i;:::-;5917:8;;-1:-1:-1;5802:96:1;-1:-1:-1;6005:2:1;5990:18;;5977:32;;-1:-1:-1;6021:16:1;;;6018:36;;;6050:1;6047;6040:12;6018:36;;6089:72;6153:7;6142:8;6131:9;6127:24;6089:72;:::i;:::-;5448:773;;;;-1:-1:-1;6180:8:1;-1:-1:-1;;;;5448:773:1:o;6226:380::-;6305:1;6301:12;;;;6348;;;6369:61;;6423:4;6415:6;6411:17;6401:27;;6369:61;6476:2;6468:6;6465:14;6445:18;6442:38;6439:161;;;6522:10;6517:3;6513:20;6510:1;6503:31;6557:4;6554:1;6547:15;6585:4;6582:1;6575:15;6439:161;;6226:380;;;:::o;7020:356::-;7222:2;7204:21;;;7241:18;;;7234:30;7300:34;7295:2;7280:18;;7273:62;7367:2;7352:18;;7020:356::o;7381:127::-;7442:10;7437:3;7433:20;7430:1;7423:31;7473:4;7470:1;7463:15;7497:4;7494:1;7487:15;7513:168;7553:7;7619:1;7615;7611:6;7607:14;7604:1;7601:21;7596:1;7589:9;7582:17;7578:45;7575:71;;;7626:18;;:::i;:::-;-1:-1:-1;7666:9:1;;7513:168::o;7686:217::-;7726:1;7752;7742:132;;7796:10;7791:3;7787:20;7784:1;7777:31;7831:4;7828:1;7821:15;7859:4;7856:1;7849:15;7742:132;-1:-1:-1;7888:9:1;;7686:217::o;8318:128::-;8358:3;8389:1;8385:6;8382:1;8379:13;8376:39;;;8395:18;;:::i;:::-;-1:-1:-1;8431:9:1;;8318:128::o;8451:127::-;8512:10;8507:3;8503:20;8500:1;8493:31;8543:4;8540:1;8533:15;8567:4;8564:1;8557:15;8583:135;8622:3;-1:-1:-1;;8643:17:1;;8640:43;;;8663:18;;:::i;:::-;-1:-1:-1;8710:1:1;8699:13;;8583:135::o;10865:184::-;10935:6;10988:2;10976:9;10967:7;10963:23;10959:32;10956:52;;;11004:1;11001;10994:12;10956:52;-1:-1:-1;11027:16:1;;10865:184;-1:-1:-1;10865:184:1:o;11333:245::-;11400:6;11453:2;11441:9;11432:7;11428:23;11424:32;11421:52;;;11469:1;11466;11459:12;11421:52;11501:9;11495:16;11520:28;11542:5;11520:28;:::i;13642:422::-;13731:1;13774:5;13731:1;13788:270;13809:7;13799:8;13796:21;13788:270;;;13868:4;13864:1;13860:6;13856:17;13850:4;13847:27;13844:53;;;13877:18;;:::i;:::-;13927:7;13917:8;13913:22;13910:55;;;13947:16;;;;13910:55;14026:22;;;;13986:15;;;;13788:270;;;13792:3;13642:422;;;;;:::o;14069:806::-;14118:5;14148:8;14138:80;;-1:-1:-1;14189:1:1;14203:5;;14138:80;14237:4;14227:76;;-1:-1:-1;14274:1:1;14288:5;;14227:76;14319:4;14337:1;14332:59;;;;14405:1;14400:130;;;;14312:218;;14332:59;14362:1;14353:10;;14376:5;;;14400:130;14437:3;14427:8;14424:17;14421:43;;;14444:18;;:::i;:::-;-1:-1:-1;;14500:1:1;14486:16;;14515:5;;14312:218;;14614:2;14604:8;14601:16;14595:3;14589:4;14586:13;14582:36;14576:2;14566:8;14563:16;14558:2;14552:4;14549:12;14545:35;14542:77;14539:159;;;-1:-1:-1;14651:19:1;;;14683:5;;14539:159;14730:34;14755:8;14749:4;14730:34;:::i;:::-;14800:6;14796:1;14792:6;14788:19;14779:7;14776:32;14773:58;;;14811:18;;:::i;:::-;14849:20;;14069:806;-1:-1:-1;;;14069:806:1:o;14880:140::-;14938:5;14967:47;15008:4;14998:8;14994:19;14988:4;14967:47;:::i;18420:401::-;18622:2;18604:21;;;18661:2;18641:18;;;18634:30;18700:34;18695:2;18680:18;;18673:62;-1:-1:-1;;;18766:2:1;18751:18;;18744:35;18811:3;18796:19;;18420:401::o;18826:399::-;19028:2;19010:21;;;19067:2;19047:18;;;19040:30;19106:34;19101:2;19086:18;;19079:62;-1:-1:-1;;;19172:2:1;19157:18;;19150:33;19215:3;19200:19;;18826:399::o;21410:125::-;21450:4;21478:1;21475;21472:8;21469:34;;;21483:18;;:::i;:::-;-1:-1:-1;21520:9:1;;21410:125::o;22368:251::-;22438:6;22491:2;22479:9;22470:7;22466:23;22462:32;22459:52;;;22507:1;22504;22497:12;22459:52;22539:9;22533:16;22558:31;22583:5;22558:31;:::i;22624:980::-;22886:4;22934:3;22923:9;22919:19;22965:6;22954:9;22947:25;22991:2;23029:6;23024:2;23013:9;23009:18;23002:34;23072:3;23067:2;23056:9;23052:18;23045:31;23096:6;23131;23125:13;23162:6;23154;23147:22;23200:3;23189:9;23185:19;23178:26;;23239:2;23231:6;23227:15;23213:29;;23260:1;23270:195;23284:6;23281:1;23278:13;23270:195;;;23349:13;;-1:-1:-1;;;;;23345:39:1;23333:52;;23440:15;;;;23405:12;;;;23381:1;23299:9;23270:195;;;-1:-1:-1;;;;;;;23521:32:1;;;;23516:2;23501:18;;23494:60;-1:-1:-1;;;23585:3:1;23570:19;23563:35;23482:3;22624:980;-1:-1:-1;;;22624:980:1:o;24221:306::-;24309:6;24317;24325;24378:2;24366:9;24357:7;24353:23;24349:32;24346:52;;;24394:1;24391;24384:12;24346:52;24423:9;24417:16;24407:26;;24473:2;24462:9;24458:18;24452:25;24442:35;;24517:2;24506:9;24502:18;24496:25;24486:35;;24221:306;;;;;:::o
Swarm Source
ipfs://577d0043df78e62a0d4b194ab026da955870af86f8c6007858a288c74b3a3cae
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.