ERC-20
Overview
Max Total Supply
1,000,000,000 CTOSONIC
Holders
1
Total Transfers
-
Market
Price
-
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
CTOSONIC
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2024-12-21 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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"); _beforeTokenTransfer(sender, recipient, amount); 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); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), 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); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract CTOSONIC is ERC20, Ownable { IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool private swapping; address public devWallet; address public teamWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = true; bool public swapEnabled = true; uint256 public buyTotalFees; uint256 public buyLiquidityFee; uint256 public buyMarketingFee; uint256 public sellTotalFees; uint256 public sellLiquidityFee; uint256 public sellMarketingFee; uint256 public tokensForLiquidity; uint256 public tokensForMarketing; uint256 public tradeCount; uint256[] public tradeFeeLevels = [5, 4, 3, 2, 1, 0]; uint256[] public tradeCounts = [20, 40, 60, 80, 100, 120]; // exclude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedFromMaxTx; // 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; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20("CTOSONIC", "CTOSONIC") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x591cf6942c422fA53E8D81c62a9692D7BeA72F61 ); _isExcludedFromMaxTx[address(_uniswapV2Router)] = true; uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromMaxTx[address(uniswapV2Pair)] = true; _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyLiquidityFee = getCurrentFee()/2; uint256 _buyMarketingFee = getCurrentFee()/2; uint256 _sellLiquidityFee = getCurrentFee()/2; uint256 _sellMarketingFee = getCurrentFee()/2; uint256 totalSupply = 1000000000 * 1e18; maxTransactionAmount = 2000 * 1e7 * 1e18; //2 % maxWallet = 2000 * 1e7 * 1e18; //20% swapTokensAtAmount = (totalSupply * 10) / 100000; buyLiquidityFee = _buyLiquidityFee; buyMarketingFee = _buyMarketingFee; buyTotalFees = buyLiquidityFee + buyMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellMarketingFee = _sellMarketingFee; sellTotalFees = sellLiquidityFee + sellMarketingFee; devWallet = address(0xE9D391f4BB923FABA9585E60B0d83cA1474Da5a5); teamWallet = address(0xE9D391f4BB923FABA9585E60B0d83cA1474Da5a5); // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); _isExcludedFromMaxTx[owner()] = true; _isExcludedFromMaxTx[address(this)] = true; _isExcludedFromMaxTx[address(0xdead)] = true; _mint(msg.sender, totalSupply); } receive() external payable {} // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner { _isExcludedFromMaxTx[updAds] = isEx; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } 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"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedFromMaxTx[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedFromMaxTx[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedFromMaxTx[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } 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 = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount * sellTotalFees / 100; tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; tradeCount += 1; } super._transfer(from, to, amount); } function getCurrentFee() public view returns (uint256) { if (tradeCount < tradeCounts[0]) return tradeFeeLevels[0]; if (tradeCount < tradeCounts[1]) return tradeFeeLevels[1]; if (tradeCount < tradeCounts[2]) return tradeFeeLevels[2]; if (tradeCount < tradeCounts[3]) return tradeFeeLevels[3]; if (tradeCount < tradeCounts[4]) return tradeFeeLevels[4]; if (tradeCount < tradeCounts[5]) return tradeFeeLevels[5]; return tradeFeeLevels[5]; } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function setDevWallet(address wallet) external onlyOwner { devWallet = wallet; } function setTeamWallet(address wallet) external onlyOwner { teamWallet = wallet; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } // Halve the amount of liquidity tokens uint256 amountToSwapForETH = contractBalance; uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance - initialETHBalance; uint256 ethForMarketing = ethBalance * tokensForMarketing / totalTokensToSwap; uint256 ethForLiquidity = ethBalance - ethForMarketing; tokensForLiquidity = 0; tokensForMarketing = 0; if (ethForLiquidity > 0) { (success, ) = address(teamWallet).call{value: ethForLiquidity}(""); } if (ethForMarketing > 0) { (success, ) = address(devWallet).call{value: ethForMarketing}(""); } //there will be no leftover eth in the contract (success, ) = address(devWallet).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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"getCurrentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setTeamWallet","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":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tradeCounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tradeFeeLevels","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526001600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff0219169083151502179055506040518060c00160405280600560ff168152602001600460ff168152602001600360ff168152602001600260ff168152602001600160ff168152602001600060ff168152506015906006620000ac92919062000e5c565b506040518060c00160405280601460ff168152602001602860ff168152602001603c60ff168152602001605060ff168152602001606460ff168152602001607860ff1681525060169060066200010492919062000e5c565b503480156200011257600080fd5b506040518060400160405280600881526020017f43544f534f4e49430000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f43544f534f4e494300000000000000000000000000000000000000000000000081525081600390816200019091906200114c565b508060049081620001a291906200114c565b505050620001c5620001b9620007cc60201b60201c565b620007d460201b60201c565b600073591cf6942c422fa53e8d81c62a9692d7bea72f6190506001601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc91906200129d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036a91906200129d565b6040518363ffffffff1660e01b815260040162000389929190620012e0565b6020604051808303816000875af1158015620003a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cf91906200129d565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060016018600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200047160a05160016200089a60201b60201c565b60006002620004856200093b60201b60201c565b6200049191906200136b565b905060006002620004a76200093b60201b60201c565b620004b391906200136b565b905060006002620004c96200093b60201b60201c565b620004d591906200136b565b905060006002620004eb6200093b60201b60201c565b620004f791906200136b565b905060006b033b2e3c9fd0803ce800000090506b409f9cbc7c4a04c2200000006008819055506b409f9cbc7c4a04c220000000600a81905550620186a0600a82620005439190620013a3565b6200054f91906200136b565b60098190555084600d8190555083600e81905550600e54600d54620005759190620013ee565b600c8190555082601081905550816011819055506011546010546200059b9190620013ee565b600f8190555073e9d391f4bb923faba9585e60b0d83ca1474da5a5600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e9d391f4bb923faba9585e60b0d83ca1474da5a5600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200066d6200065f62000b7660201b60201c565b600162000ba060201b60201c565b6200068030600162000ba060201b60201c565b6200069561dead600162000ba060201b60201c565b600160186000620006ab62000b7660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016018600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007c0338262000cda60201b60201c565b505050505050620015b5565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000601660008154811062000955576200095462001429565b5b906000526020600020015460145410156200099557601560008154811062000982576200098162001429565b5b9060005260206000200154905062000b73565b6016600181548110620009ad57620009ac62001429565b5b90600052602060002001546014541015620009ed576015600181548110620009da57620009d962001429565b5b9060005260206000200154905062000b73565b601660028154811062000a055762000a0462001429565b5b9060005260206000200154601454101562000a4557601560028154811062000a325762000a3162001429565b5b9060005260206000200154905062000b73565b601660038154811062000a5d5762000a5c62001429565b5b9060005260206000200154601454101562000a9d57601560038154811062000a8a5762000a8962001429565b5b9060005260206000200154905062000b73565b601660048154811062000ab55762000ab462001429565b5b9060005260206000200154601454101562000af557601560048154811062000ae25762000ae162001429565b5b9060005260206000200154905062000b73565b601660058154811062000b0d5762000b0c62001429565b5b9060005260206000200154601454101562000b4d57601560058154811062000b3a5762000b3962001429565b5b9060005260206000200154905062000b73565b601560058154811062000b655762000b6462001429565b5b906000526020600020015490505b90565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000bb0620007cc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000bd662000b7660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000c2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c2690620014b9565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000cce9190620014f8565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000d4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d439062001565565b60405180910390fd5b62000d606000838362000e5260201b60201c565b806002600082825462000d749190620013ee565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000dcb9190620013ee565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000e32919062001598565b60405180910390a362000e4e6000838362000e5760201b60201c565b5050565b505050565b505050565b82805482825590600052602060002090810192821562000ea0579160200282015b8281111562000e9f578251829060ff1690559160200191906001019062000e7d565b5b50905062000eaf919062000eb3565b5090565b5b8082111562000ece57600081600090555060010162000eb4565b5090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f5457607f821691505b60208210810362000f6a5762000f6962000f0c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000fd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f95565b62000fe0868362000f95565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200102d62001027620010218462000ff8565b62001002565b62000ff8565b9050919050565b6000819050919050565b62001049836200100c565b62001061620010588262001034565b84845462000fa2565b825550505050565b600090565b6200107862001069565b620010858184846200103e565b505050565b5b81811015620010ad57620010a16000826200106e565b6001810190506200108b565b5050565b601f821115620010fc57620010c68162000f70565b620010d18462000f85565b81016020851015620010e1578190505b620010f9620010f08562000f85565b8301826200108a565b50505b505050565b600082821c905092915050565b6000620011216000198460080262001101565b1980831691505092915050565b60006200113c83836200110e565b9150826002028217905092915050565b620011578262000ed2565b67ffffffffffffffff81111562001173576200117262000edd565b5b6200117f825462000f3b565b6200118c828285620010b1565b600060209050601f831160018114620011c45760008415620011af578287015190505b620011bb85826200112e565b8655506200122b565b601f198416620011d48662000f70565b60005b82811015620011fe57848901518255600182019150602085019450602081019050620011d7565b868310156200121e57848901516200121a601f8916826200110e565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012658262001238565b9050919050565b620012778162001258565b81146200128357600080fd5b50565b60008151905062001297816200126c565b92915050565b600060208284031215620012b657620012b562001233565b5b6000620012c68482850162001286565b91505092915050565b620012da8162001258565b82525050565b6000604082019050620012f76000830185620012cf565b620013066020830184620012cf565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620013788262000ff8565b9150620013858362000ff8565b9250826200139857620013976200130d565b5b828204905092915050565b6000620013b08262000ff8565b9150620013bd8362000ff8565b9250828202620013cd8162000ff8565b91508282048414831517620013e757620013e66200133c565b5b5092915050565b6000620013fb8262000ff8565b9150620014088362000ff8565b92508282019050808211156200142357620014226200133c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620014a160208362001458565b9150620014ae8262001469565b602082019050919050565b60006020820190508181036000830152620014d48162001492565b9050919050565b60008115159050919050565b620014f281620014db565b82525050565b60006020820190506200150f6000830184620014e7565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200154d601f8362001458565b91506200155a8262001515565b602082019050919050565b6000602082019050818103600083015262001580816200153e565b9050919050565b620015928162000ff8565b82525050565b6000602082019050620015af600083018462001587565b92915050565b60805160a051613f17620015f760003960008181610f2601526113a3015260008181610c5b01528181612dc801528181612ea90152612ed00152613f176000f3fe6080604052600436106102765760003560e01c80637571336a1161014f578063bd55022a116100c1578063f11a24d31161007a578063f11a24d3146109b7578063f2fde38b146109e2578063f30678ba14610a0b578063f637434214610a48578063f70d936214610a73578063f8b45b0514610a9e5761027d565b8063bd55022a146108a5578063c0246668146108d0578063c8c8ebe4146108f9578063d85ba06314610924578063dd62ed3e1461094f578063e2f456051461098c5761027d565b806395d89b411161011357806395d89b411461076f5780639a7a23d61461079a578063a457c2d7146107c3578063a9059cbb14610800578063b62496f51461083d578063bbc0c7421461087a5761027d565b80637571336a1461069a5780637bce5a04146106c35780638da5cb5b146106ee5780638ea5220f1461071957806392136913146107445761027d565b8063313ce567116101e857806359927044116101ac578063599270441461059a5780636a486a8e146105c55780636ddd1713146105f057806370a082311461061b578063715018a614610658578063751039fc1461066f5761027d565b8063313ce5671461049f57806339509351146104ca57806349bd5a5e146105075780634a62bb65146105325780634fbee1931461055d5761027d565b806318160ddd1161023a57806318160ddd1461037b5780631a8145bb146103a65780631f3fed8f146103d15780631f53ac02146103fc57806323b872dd1461042557806326a2a72d146104625761027d565b806306fdde031461028257806307866291146102ad578063095ea7b3146102ea5780631525ff7d146103275780631694505e146103505761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610ac9565b6040516102a49190612ff6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf919061307b565b610b5b565b6040516102e191906130c3565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613114565b610b7b565b60405161031e91906130c3565b60405180910390f35b34801561033357600080fd5b5061034e6004803603810190610349919061307b565b610b99565b005b34801561035c57600080fd5b50610365610c59565b60405161037291906131b3565b60405180910390f35b34801561038757600080fd5b50610390610c7d565b60405161039d91906131dd565b60405180910390f35b3480156103b257600080fd5b506103bb610c87565b6040516103c891906131dd565b60405180910390f35b3480156103dd57600080fd5b506103e6610c8d565b6040516103f391906131dd565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e919061307b565b610c93565b005b34801561043157600080fd5b5061044c600480360381019061044791906131f8565b610d53565b60405161045991906130c3565b60405180910390f35b34801561046e57600080fd5b506104896004803603810190610484919061324b565b610e4b565b60405161049691906131dd565b60405180910390f35b3480156104ab57600080fd5b506104b4610e6f565b6040516104c19190613294565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190613114565b610e78565b6040516104fe91906130c3565b60405180910390f35b34801561051357600080fd5b5061051c610f24565b60405161052991906132be565b60405180910390f35b34801561053e57600080fd5b50610547610f48565b60405161055491906130c3565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f919061307b565b610f5b565b60405161059191906130c3565b60405180910390f35b3480156105a657600080fd5b506105af610fb1565b6040516105bc91906132be565b60405180910390f35b3480156105d157600080fd5b506105da610fd7565b6040516105e791906131dd565b60405180910390f35b3480156105fc57600080fd5b50610605610fdd565b60405161061291906130c3565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d919061307b565b610ff0565b60405161064f91906131dd565b60405180910390f35b34801561066457600080fd5b5061066d611038565b005b34801561067b57600080fd5b506106846110c0565b60405161069191906130c3565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc9190613305565b611160565b005b3480156106cf57600080fd5b506106d8611237565b6040516106e591906131dd565b60405180910390f35b3480156106fa57600080fd5b5061070361123d565b60405161071091906132be565b60405180910390f35b34801561072557600080fd5b5061072e611267565b60405161073b91906132be565b60405180910390f35b34801561075057600080fd5b5061075961128d565b60405161076691906131dd565b60405180910390f35b34801561077b57600080fd5b50610784611293565b6040516107919190612ff6565b60405180910390f35b3480156107a657600080fd5b506107c160048036038101906107bc9190613305565b611325565b005b3480156107cf57600080fd5b506107ea60048036038101906107e59190613114565b61143d565b6040516107f791906130c3565b60405180910390f35b34801561080c57600080fd5b5061082760048036038101906108229190613114565b611528565b60405161083491906130c3565b60405180910390f35b34801561084957600080fd5b50610864600480360381019061085f919061307b565b611546565b60405161087191906130c3565b60405180910390f35b34801561088657600080fd5b5061088f611566565b60405161089c91906130c3565b60405180910390f35b3480156108b157600080fd5b506108ba611579565b6040516108c791906131dd565b60405180910390f35b3480156108dc57600080fd5b506108f760048036038101906108f29190613305565b61157f565b005b34801561090557600080fd5b5061090e6116a4565b60405161091b91906131dd565b60405180910390f35b34801561093057600080fd5b506109396116aa565b60405161094691906131dd565b60405180910390f35b34801561095b57600080fd5b5061097660048036038101906109719190613345565b6116b0565b60405161098391906131dd565b60405180910390f35b34801561099857600080fd5b506109a1611737565b6040516109ae91906131dd565b60405180910390f35b3480156109c357600080fd5b506109cc61173d565b6040516109d991906131dd565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a04919061307b565b611743565b005b348015610a1757600080fd5b50610a326004803603810190610a2d919061324b565b61183a565b604051610a3f91906131dd565b60405180910390f35b348015610a5457600080fd5b50610a5d61185e565b604051610a6a91906131dd565b60405180910390f35b348015610a7f57600080fd5b50610a88611864565b604051610a9591906131dd565b60405180910390f35b348015610aaa57600080fd5b50610ab3611a6c565b604051610ac091906131dd565b60405180910390f35b606060038054610ad8906133b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b04906133b4565b8015610b515780601f10610b2657610100808354040283529160200191610b51565b820191906000526020600020905b815481529060010190602001808311610b3457829003601f168201915b5050505050905090565b60186020528060005260406000206000915054906101000a900460ff1681565b6000610b8f610b88611a72565b8484611a7a565b6001905092915050565b610ba1611a72565b73ffffffffffffffffffffffffffffffffffffffff16610bbf61123d565b73ffffffffffffffffffffffffffffffffffffffff1614610c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0c90613431565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60125481565b60135481565b610c9b611a72565b73ffffffffffffffffffffffffffffffffffffffff16610cb961123d565b73ffffffffffffffffffffffffffffffffffffffff1614610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690613431565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610d60848484611c43565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dab611a72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e22906134c3565b60405180910390fd5b610e3f85610e37611a72565b858403611a7a565b60019150509392505050565b60158181548110610e5b57600080fd5b906000526020600020016000915090505481565b60006012905090565b6000610f1a610e85611a72565b848460016000610e93611a72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f159190613512565b611a7a565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b60009054906101000a900460ff1681565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600b60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611040611a72565b73ffffffffffffffffffffffffffffffffffffffff1661105e61123d565b73ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90613431565b60405180910390fd5b6110be60006126aa565b565b60006110ca611a72565b73ffffffffffffffffffffffffffffffffffffffff166110e861123d565b73ffffffffffffffffffffffffffffffffffffffff161461113e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113590613431565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b611168611a72565b73ffffffffffffffffffffffffffffffffffffffff1661118661123d565b73ffffffffffffffffffffffffffffffffffffffff16146111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d390613431565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b6060600480546112a2906133b4565b80601f01602080910402602001604051908101604052809291908181526020018280546112ce906133b4565b801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b61132d611a72565b73ffffffffffffffffffffffffffffffffffffffff1661134b61123d565b73ffffffffffffffffffffffffffffffffffffffff16146113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890613431565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611426906135b8565b60405180910390fd5b6114398282612770565b5050565b6000806001600061144c611a72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115009061364a565b60405180910390fd5b61151d611514611a72565b85858403611a7a565b600191505092915050565b600061153c611535611a72565b8484611c43565b6001905092915050565b60196020528060005260406000206000915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b60145481565b611587611a72565b73ffffffffffffffffffffffffffffffffffffffff166115a561123d565b73ffffffffffffffffffffffffffffffffffffffff16146115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f290613431565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161169891906130c3565b60405180910390a25050565b60085481565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b600d5481565b61174b611a72565b73ffffffffffffffffffffffffffffffffffffffff1661176961123d565b73ffffffffffffffffffffffffffffffffffffffff16146117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b690613431565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361182e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611825906136dc565b60405180910390fd5b611837816126aa565b50565b6016818154811061184a57600080fd5b906000526020600020016000915090505481565b60105481565b6000601660008154811061187b5761187a6136fc565b5b906000526020600020015460145410156118b65760156000815481106118a4576118a36136fc565b5b90600052602060002001549050611a69565b60166001815481106118cb576118ca6136fc565b5b906000526020600020015460145410156119065760156001815481106118f4576118f36136fc565b5b90600052602060002001549050611a69565b601660028154811061191b5761191a6136fc565b5b90600052602060002001546014541015611956576015600281548110611944576119436136fc565b5b90600052602060002001549050611a69565b601660038154811061196b5761196a6136fc565b5b906000526020600020015460145410156119a6576015600381548110611994576119936136fc565b5b90600052602060002001549050611a69565b60166004815481106119bb576119ba6136fc565b5b906000526020600020015460145410156119f65760156004815481106119e4576119e36136fc565b5b90600052602060002001549050611a69565b6016600581548110611a0b57611a0a6136fc565b5b90600052602060002001546014541015611a46576015600581548110611a3457611a336136fc565b5b90600052602060002001549050611a69565b6015600581548110611a5b57611a5a6136fc565b5b906000526020600020015490505b90565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae09061379d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4f9061382f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c3691906131dd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca9906138c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1890613953565b60405180910390fd5b60008103611d3a57611d3583836000612811565b6126a5565b600b60009054906101000a900460ff161561223557611d5761123d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dc55750611d9561123d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfe5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e38575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e515750600560149054906101000a900460ff16155b1561223457600b60019054906101000a900460ff16611f4b57601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f0b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f41906139bf565b60405180910390fd5b5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fee5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561209557600854811115612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90613a51565b60405180910390fd5b600a5461204483610ff0565b8261204f9190613512565b1115612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790613abd565b60405180910390fd5b612233565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121385750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561218757600854811115612182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217990613b4f565b60405180910390fd5b612232565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661223157600a546121e483610ff0565b826121ef9190613512565b1115612230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222790613abd565b60405180910390fd5b5b5b5b5b5b600061224030610ff0565b9050600060095482101590508080156122655750600b60029054906101000a900460ff165b801561227e5750600560149054906101000a900460ff16155b80156122d45750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561232a5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123805750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123c4576001600560146101000a81548160ff0219169083151502179055506123a8612a90565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061247a5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561248457600090505b6000811561269557601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124e757506000600f54115b15612573576064600f54866124fc9190613b6f565b6125069190613be0565b9050600f54601054826125199190613b6f565b6125239190613be0565b601260008282546125349190613512565b92505081905550600f546011548261254c9190613b6f565b6125569190613be0565b601360008282546125679190613512565b92505081905550612657565b601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125ce57506000600c54115b15612656576064600c54866125e39190613b6f565b6125ed9190613be0565b9050600c54600d54826126009190613b6f565b61260a9190613be0565b6012600082825461261b9190613512565b92505081905550600c54600e54826126339190613b6f565b61263d9190613be0565b6013600082825461264e9190613512565b925050819055505b5b600081111561266c5761266b873083612811565b5b80856126789190613c11565b945060016014600082825461268d9190613512565b925050819055505b6126a0878787612811565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612877906138c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e690613953565b60405180910390fd5b6128fa838383612d1f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297790613cb7565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a139190613512565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a7791906131dd565b60405180910390a3612a8a848484612d24565b50505050565b6000612a9b30610ff0565b90506000601354601254612aaf9190613512565b9050600080831480612ac15750600082145b15612ace57505050612d1d565b6014600954612add9190613b6f565b831115612af6576014600954612af39190613b6f565b92505b60008390506000479050612b0982612d29565b60008147612b179190613c11565b905060008560135483612b2a9190613b6f565b612b349190613be0565b905060008183612b449190613c11565b9050600060128190555060006013819055506000811115612bee57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051612ba590613d08565b60006040518083038185875af1925050503d8060008114612be2576040519150601f19603f3d011682016040523d82523d6000602084013e612be7565b606091505b5050809650505b6000821115612c8657600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c3d90613d08565b60006040518083038185875af1925050503d8060008114612c7a576040519150601f19603f3d011682016040523d82523d6000602084013e612c7f565b606091505b5050809650505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612ccc90613d08565b60006040518083038185875af1925050503d8060008114612d09576040519150601f19603f3d011682016040523d82523d6000602084013e612d0e565b606091505b50508096505050505050505050505b565b505050565b505050565b6000600267ffffffffffffffff811115612d4657612d45613d1d565b5b604051908082528060200260200182016040528015612d745781602001602082028036833780820191505090505b5090503081600081518110612d8c57612d8b6136fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e559190613d61565b81600181518110612e6957612e686136fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ece307f000000000000000000000000000000000000000000000000000000000000000084611a7a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f30959493929190613e87565b600060405180830381600087803b158015612f4a57600080fd5b505af1158015612f5e573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fa0578082015181840152602081019050612f85565b60008484015250505050565b6000601f19601f8301169050919050565b6000612fc882612f66565b612fd28185612f71565b9350612fe2818560208601612f82565b612feb81612fac565b840191505092915050565b600060208201905081810360008301526130108184612fbd565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130488261301d565b9050919050565b6130588161303d565b811461306357600080fd5b50565b6000813590506130758161304f565b92915050565b60006020828403121561309157613090613018565b5b600061309f84828501613066565b91505092915050565b60008115159050919050565b6130bd816130a8565b82525050565b60006020820190506130d860008301846130b4565b92915050565b6000819050919050565b6130f1816130de565b81146130fc57600080fd5b50565b60008135905061310e816130e8565b92915050565b6000806040838503121561312b5761312a613018565b5b600061313985828601613066565b925050602061314a858286016130ff565b9150509250929050565b6000819050919050565b600061317961317461316f8461301d565b613154565b61301d565b9050919050565b600061318b8261315e565b9050919050565b600061319d82613180565b9050919050565b6131ad81613192565b82525050565b60006020820190506131c860008301846131a4565b92915050565b6131d7816130de565b82525050565b60006020820190506131f260008301846131ce565b92915050565b60008060006060848603121561321157613210613018565b5b600061321f86828701613066565b935050602061323086828701613066565b9250506040613241868287016130ff565b9150509250925092565b60006020828403121561326157613260613018565b5b600061326f848285016130ff565b91505092915050565b600060ff82169050919050565b61328e81613278565b82525050565b60006020820190506132a96000830184613285565b92915050565b6132b88161303d565b82525050565b60006020820190506132d360008301846132af565b92915050565b6132e2816130a8565b81146132ed57600080fd5b50565b6000813590506132ff816132d9565b92915050565b6000806040838503121561331c5761331b613018565b5b600061332a85828601613066565b925050602061333b858286016132f0565b9150509250929050565b6000806040838503121561335c5761335b613018565b5b600061336a85828601613066565b925050602061337b85828601613066565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133cc57607f821691505b6020821081036133df576133de613385565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061341b602083612f71565b9150613426826133e5565b602082019050919050565b6000602082019050818103600083015261344a8161340e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006134ad602883612f71565b91506134b882613451565b604082019050919050565b600060208201905081810360008301526134dc816134a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061351d826130de565b9150613528836130de565b92508282019050808211156135405761353f6134e3565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006135a2603983612f71565b91506135ad82613546565b604082019050919050565b600060208201905081810360008301526135d181613595565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613634602583612f71565b915061363f826135d8565b604082019050919050565b6000602082019050818103600083015261366381613627565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136c6602683612f71565b91506136d18261366a565b604082019050919050565b600060208201905081810360008301526136f5816136b9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613787602483612f71565b91506137928261372b565b604082019050919050565b600060208201905081810360008301526137b68161377a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613819602283612f71565b9150613824826137bd565b604082019050919050565b600060208201905081810360008301526138488161380c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138ab602583612f71565b91506138b68261384f565b604082019050919050565b600060208201905081810360008301526138da8161389e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061393d602383612f71565b9150613948826138e1565b604082019050919050565b6000602082019050818103600083015261396c81613930565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006139a9601683612f71565b91506139b482613973565b602082019050919050565b600060208201905081810360008301526139d88161399c565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613a3b603583612f71565b9150613a46826139df565b604082019050919050565b60006020820190508181036000830152613a6a81613a2e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613aa7601383612f71565b9150613ab282613a71565b602082019050919050565b60006020820190508181036000830152613ad681613a9a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613b39603683612f71565b9150613b4482613add565b604082019050919050565b60006020820190508181036000830152613b6881613b2c565b9050919050565b6000613b7a826130de565b9150613b85836130de565b9250828202613b93816130de565b91508282048414831517613baa57613ba96134e3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613beb826130de565b9150613bf6836130de565b925082613c0657613c05613bb1565b5b828204905092915050565b6000613c1c826130de565b9150613c27836130de565b9250828203905081811115613c3f57613c3e6134e3565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ca1602683612f71565b9150613cac82613c45565b604082019050919050565b60006020820190508181036000830152613cd081613c94565b9050919050565b600081905092915050565b50565b6000613cf2600083613cd7565b9150613cfd82613ce2565b600082019050919050565b6000613d1382613ce5565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613d5b8161304f565b92915050565b600060208284031215613d7757613d76613018565b5b6000613d8584828501613d4c565b91505092915050565b6000819050919050565b6000613db3613dae613da984613d8e565b613154565b6130de565b9050919050565b613dc381613d98565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dfe8161303d565b82525050565b6000613e108383613df5565b60208301905092915050565b6000602082019050919050565b6000613e3482613dc9565b613e3e8185613dd4565b9350613e4983613de5565b8060005b83811015613e7a578151613e618882613e04565b9750613e6c83613e1c565b925050600181019050613e4d565b5085935050505092915050565b600060a082019050613e9c60008301886131ce565b613ea96020830187613dba565b8181036040830152613ebb8186613e29565b9050613eca60608301856132af565b613ed760808301846131ce565b969550505050505056fea2646970667358221220925f69e7723ac099ee2e8ef8b8e8e8b0d0ea0ebd320a50ed922c07183fd3803964736f6c63430008120033
Deployed Bytecode
0x6080604052600436106102765760003560e01c80637571336a1161014f578063bd55022a116100c1578063f11a24d31161007a578063f11a24d3146109b7578063f2fde38b146109e2578063f30678ba14610a0b578063f637434214610a48578063f70d936214610a73578063f8b45b0514610a9e5761027d565b8063bd55022a146108a5578063c0246668146108d0578063c8c8ebe4146108f9578063d85ba06314610924578063dd62ed3e1461094f578063e2f456051461098c5761027d565b806395d89b411161011357806395d89b411461076f5780639a7a23d61461079a578063a457c2d7146107c3578063a9059cbb14610800578063b62496f51461083d578063bbc0c7421461087a5761027d565b80637571336a1461069a5780637bce5a04146106c35780638da5cb5b146106ee5780638ea5220f1461071957806392136913146107445761027d565b8063313ce567116101e857806359927044116101ac578063599270441461059a5780636a486a8e146105c55780636ddd1713146105f057806370a082311461061b578063715018a614610658578063751039fc1461066f5761027d565b8063313ce5671461049f57806339509351146104ca57806349bd5a5e146105075780634a62bb65146105325780634fbee1931461055d5761027d565b806318160ddd1161023a57806318160ddd1461037b5780631a8145bb146103a65780631f3fed8f146103d15780631f53ac02146103fc57806323b872dd1461042557806326a2a72d146104625761027d565b806306fdde031461028257806307866291146102ad578063095ea7b3146102ea5780631525ff7d146103275780631694505e146103505761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610ac9565b6040516102a49190612ff6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf919061307b565b610b5b565b6040516102e191906130c3565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613114565b610b7b565b60405161031e91906130c3565b60405180910390f35b34801561033357600080fd5b5061034e6004803603810190610349919061307b565b610b99565b005b34801561035c57600080fd5b50610365610c59565b60405161037291906131b3565b60405180910390f35b34801561038757600080fd5b50610390610c7d565b60405161039d91906131dd565b60405180910390f35b3480156103b257600080fd5b506103bb610c87565b6040516103c891906131dd565b60405180910390f35b3480156103dd57600080fd5b506103e6610c8d565b6040516103f391906131dd565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e919061307b565b610c93565b005b34801561043157600080fd5b5061044c600480360381019061044791906131f8565b610d53565b60405161045991906130c3565b60405180910390f35b34801561046e57600080fd5b506104896004803603810190610484919061324b565b610e4b565b60405161049691906131dd565b60405180910390f35b3480156104ab57600080fd5b506104b4610e6f565b6040516104c19190613294565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190613114565b610e78565b6040516104fe91906130c3565b60405180910390f35b34801561051357600080fd5b5061051c610f24565b60405161052991906132be565b60405180910390f35b34801561053e57600080fd5b50610547610f48565b60405161055491906130c3565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f919061307b565b610f5b565b60405161059191906130c3565b60405180910390f35b3480156105a657600080fd5b506105af610fb1565b6040516105bc91906132be565b60405180910390f35b3480156105d157600080fd5b506105da610fd7565b6040516105e791906131dd565b60405180910390f35b3480156105fc57600080fd5b50610605610fdd565b60405161061291906130c3565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d919061307b565b610ff0565b60405161064f91906131dd565b60405180910390f35b34801561066457600080fd5b5061066d611038565b005b34801561067b57600080fd5b506106846110c0565b60405161069191906130c3565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc9190613305565b611160565b005b3480156106cf57600080fd5b506106d8611237565b6040516106e591906131dd565b60405180910390f35b3480156106fa57600080fd5b5061070361123d565b60405161071091906132be565b60405180910390f35b34801561072557600080fd5b5061072e611267565b60405161073b91906132be565b60405180910390f35b34801561075057600080fd5b5061075961128d565b60405161076691906131dd565b60405180910390f35b34801561077b57600080fd5b50610784611293565b6040516107919190612ff6565b60405180910390f35b3480156107a657600080fd5b506107c160048036038101906107bc9190613305565b611325565b005b3480156107cf57600080fd5b506107ea60048036038101906107e59190613114565b61143d565b6040516107f791906130c3565b60405180910390f35b34801561080c57600080fd5b5061082760048036038101906108229190613114565b611528565b60405161083491906130c3565b60405180910390f35b34801561084957600080fd5b50610864600480360381019061085f919061307b565b611546565b60405161087191906130c3565b60405180910390f35b34801561088657600080fd5b5061088f611566565b60405161089c91906130c3565b60405180910390f35b3480156108b157600080fd5b506108ba611579565b6040516108c791906131dd565b60405180910390f35b3480156108dc57600080fd5b506108f760048036038101906108f29190613305565b61157f565b005b34801561090557600080fd5b5061090e6116a4565b60405161091b91906131dd565b60405180910390f35b34801561093057600080fd5b506109396116aa565b60405161094691906131dd565b60405180910390f35b34801561095b57600080fd5b5061097660048036038101906109719190613345565b6116b0565b60405161098391906131dd565b60405180910390f35b34801561099857600080fd5b506109a1611737565b6040516109ae91906131dd565b60405180910390f35b3480156109c357600080fd5b506109cc61173d565b6040516109d991906131dd565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a04919061307b565b611743565b005b348015610a1757600080fd5b50610a326004803603810190610a2d919061324b565b61183a565b604051610a3f91906131dd565b60405180910390f35b348015610a5457600080fd5b50610a5d61185e565b604051610a6a91906131dd565b60405180910390f35b348015610a7f57600080fd5b50610a88611864565b604051610a9591906131dd565b60405180910390f35b348015610aaa57600080fd5b50610ab3611a6c565b604051610ac091906131dd565b60405180910390f35b606060038054610ad8906133b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b04906133b4565b8015610b515780601f10610b2657610100808354040283529160200191610b51565b820191906000526020600020905b815481529060010190602001808311610b3457829003601f168201915b5050505050905090565b60186020528060005260406000206000915054906101000a900460ff1681565b6000610b8f610b88611a72565b8484611a7a565b6001905092915050565b610ba1611a72565b73ffffffffffffffffffffffffffffffffffffffff16610bbf61123d565b73ffffffffffffffffffffffffffffffffffffffff1614610c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0c90613431565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000591cf6942c422fa53e8d81c62a9692d7bea72f6181565b6000600254905090565b60125481565b60135481565b610c9b611a72565b73ffffffffffffffffffffffffffffffffffffffff16610cb961123d565b73ffffffffffffffffffffffffffffffffffffffff1614610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690613431565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610d60848484611c43565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dab611a72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e22906134c3565b60405180910390fd5b610e3f85610e37611a72565b858403611a7a565b60019150509392505050565b60158181548110610e5b57600080fd5b906000526020600020016000915090505481565b60006012905090565b6000610f1a610e85611a72565b848460016000610e93611a72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f159190613512565b611a7a565b6001905092915050565b7f000000000000000000000000d0e8728a721443201e90e5f9cd8c37586f51767981565b600b60009054906101000a900460ff1681565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600b60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611040611a72565b73ffffffffffffffffffffffffffffffffffffffff1661105e61123d565b73ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90613431565b60405180910390fd5b6110be60006126aa565b565b60006110ca611a72565b73ffffffffffffffffffffffffffffffffffffffff166110e861123d565b73ffffffffffffffffffffffffffffffffffffffff161461113e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113590613431565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b611168611a72565b73ffffffffffffffffffffffffffffffffffffffff1661118661123d565b73ffffffffffffffffffffffffffffffffffffffff16146111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d390613431565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b6060600480546112a2906133b4565b80601f01602080910402602001604051908101604052809291908181526020018280546112ce906133b4565b801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b61132d611a72565b73ffffffffffffffffffffffffffffffffffffffff1661134b61123d565b73ffffffffffffffffffffffffffffffffffffffff16146113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890613431565b60405180910390fd5b7f000000000000000000000000d0e8728a721443201e90e5f9cd8c37586f51767973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611426906135b8565b60405180910390fd5b6114398282612770565b5050565b6000806001600061144c611a72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115009061364a565b60405180910390fd5b61151d611514611a72565b85858403611a7a565b600191505092915050565b600061153c611535611a72565b8484611c43565b6001905092915050565b60196020528060005260406000206000915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b60145481565b611587611a72565b73ffffffffffffffffffffffffffffffffffffffff166115a561123d565b73ffffffffffffffffffffffffffffffffffffffff16146115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f290613431565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161169891906130c3565b60405180910390a25050565b60085481565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b600d5481565b61174b611a72565b73ffffffffffffffffffffffffffffffffffffffff1661176961123d565b73ffffffffffffffffffffffffffffffffffffffff16146117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b690613431565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361182e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611825906136dc565b60405180910390fd5b611837816126aa565b50565b6016818154811061184a57600080fd5b906000526020600020016000915090505481565b60105481565b6000601660008154811061187b5761187a6136fc565b5b906000526020600020015460145410156118b65760156000815481106118a4576118a36136fc565b5b90600052602060002001549050611a69565b60166001815481106118cb576118ca6136fc565b5b906000526020600020015460145410156119065760156001815481106118f4576118f36136fc565b5b90600052602060002001549050611a69565b601660028154811061191b5761191a6136fc565b5b90600052602060002001546014541015611956576015600281548110611944576119436136fc565b5b90600052602060002001549050611a69565b601660038154811061196b5761196a6136fc565b5b906000526020600020015460145410156119a6576015600381548110611994576119936136fc565b5b90600052602060002001549050611a69565b60166004815481106119bb576119ba6136fc565b5b906000526020600020015460145410156119f65760156004815481106119e4576119e36136fc565b5b90600052602060002001549050611a69565b6016600581548110611a0b57611a0a6136fc565b5b90600052602060002001546014541015611a46576015600581548110611a3457611a336136fc565b5b90600052602060002001549050611a69565b6015600581548110611a5b57611a5a6136fc565b5b906000526020600020015490505b90565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae09061379d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4f9061382f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c3691906131dd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca9906138c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1890613953565b60405180910390fd5b60008103611d3a57611d3583836000612811565b6126a5565b600b60009054906101000a900460ff161561223557611d5761123d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dc55750611d9561123d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dfe5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e38575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e515750600560149054906101000a900460ff16155b1561223457600b60019054906101000a900460ff16611f4b57601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f0b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f41906139bf565b60405180910390fd5b5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fee5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561209557600854811115612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90613a51565b60405180910390fd5b600a5461204483610ff0565b8261204f9190613512565b1115612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790613abd565b60405180910390fd5b612233565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121385750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561218757600854811115612182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217990613b4f565b60405180910390fd5b612232565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661223157600a546121e483610ff0565b826121ef9190613512565b1115612230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222790613abd565b60405180910390fd5b5b5b5b5b5b600061224030610ff0565b9050600060095482101590508080156122655750600b60029054906101000a900460ff165b801561227e5750600560149054906101000a900460ff16155b80156122d45750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561232a5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123805750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123c4576001600560146101000a81548160ff0219169083151502179055506123a8612a90565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061247a5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561248457600090505b6000811561269557601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124e757506000600f54115b15612573576064600f54866124fc9190613b6f565b6125069190613be0565b9050600f54601054826125199190613b6f565b6125239190613be0565b601260008282546125349190613512565b92505081905550600f546011548261254c9190613b6f565b6125569190613be0565b601360008282546125679190613512565b92505081905550612657565b601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125ce57506000600c54115b15612656576064600c54866125e39190613b6f565b6125ed9190613be0565b9050600c54600d54826126009190613b6f565b61260a9190613be0565b6012600082825461261b9190613512565b92505081905550600c54600e54826126339190613b6f565b61263d9190613be0565b6013600082825461264e9190613512565b925050819055505b5b600081111561266c5761266b873083612811565b5b80856126789190613c11565b945060016014600082825461268d9190613512565b925050819055505b6126a0878787612811565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612877906138c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e690613953565b60405180910390fd5b6128fa838383612d1f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297790613cb7565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a139190613512565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a7791906131dd565b60405180910390a3612a8a848484612d24565b50505050565b6000612a9b30610ff0565b90506000601354601254612aaf9190613512565b9050600080831480612ac15750600082145b15612ace57505050612d1d565b6014600954612add9190613b6f565b831115612af6576014600954612af39190613b6f565b92505b60008390506000479050612b0982612d29565b60008147612b179190613c11565b905060008560135483612b2a9190613b6f565b612b349190613be0565b905060008183612b449190613c11565b9050600060128190555060006013819055506000811115612bee57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051612ba590613d08565b60006040518083038185875af1925050503d8060008114612be2576040519150601f19603f3d011682016040523d82523d6000602084013e612be7565b606091505b5050809650505b6000821115612c8657600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c3d90613d08565b60006040518083038185875af1925050503d8060008114612c7a576040519150601f19603f3d011682016040523d82523d6000602084013e612c7f565b606091505b5050809650505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612ccc90613d08565b60006040518083038185875af1925050503d8060008114612d09576040519150601f19603f3d011682016040523d82523d6000602084013e612d0e565b606091505b50508096505050505050505050505b565b505050565b505050565b6000600267ffffffffffffffff811115612d4657612d45613d1d565b5b604051908082528060200260200182016040528015612d745781602001602082028036833780820191505090505b5090503081600081518110612d8c57612d8b6136fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000591cf6942c422fa53e8d81c62a9692d7bea72f6173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e559190613d61565b81600181518110612e6957612e686136fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ece307f000000000000000000000000591cf6942c422fa53e8d81c62a9692d7bea72f6184611a7a565b7f000000000000000000000000591cf6942c422fa53e8d81c62a9692d7bea72f6173ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f30959493929190613e87565b600060405180830381600087803b158015612f4a57600080fd5b505af1158015612f5e573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fa0578082015181840152602081019050612f85565b60008484015250505050565b6000601f19601f8301169050919050565b6000612fc882612f66565b612fd28185612f71565b9350612fe2818560208601612f82565b612feb81612fac565b840191505092915050565b600060208201905081810360008301526130108184612fbd565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130488261301d565b9050919050565b6130588161303d565b811461306357600080fd5b50565b6000813590506130758161304f565b92915050565b60006020828403121561309157613090613018565b5b600061309f84828501613066565b91505092915050565b60008115159050919050565b6130bd816130a8565b82525050565b60006020820190506130d860008301846130b4565b92915050565b6000819050919050565b6130f1816130de565b81146130fc57600080fd5b50565b60008135905061310e816130e8565b92915050565b6000806040838503121561312b5761312a613018565b5b600061313985828601613066565b925050602061314a858286016130ff565b9150509250929050565b6000819050919050565b600061317961317461316f8461301d565b613154565b61301d565b9050919050565b600061318b8261315e565b9050919050565b600061319d82613180565b9050919050565b6131ad81613192565b82525050565b60006020820190506131c860008301846131a4565b92915050565b6131d7816130de565b82525050565b60006020820190506131f260008301846131ce565b92915050565b60008060006060848603121561321157613210613018565b5b600061321f86828701613066565b935050602061323086828701613066565b9250506040613241868287016130ff565b9150509250925092565b60006020828403121561326157613260613018565b5b600061326f848285016130ff565b91505092915050565b600060ff82169050919050565b61328e81613278565b82525050565b60006020820190506132a96000830184613285565b92915050565b6132b88161303d565b82525050565b60006020820190506132d360008301846132af565b92915050565b6132e2816130a8565b81146132ed57600080fd5b50565b6000813590506132ff816132d9565b92915050565b6000806040838503121561331c5761331b613018565b5b600061332a85828601613066565b925050602061333b858286016132f0565b9150509250929050565b6000806040838503121561335c5761335b613018565b5b600061336a85828601613066565b925050602061337b85828601613066565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133cc57607f821691505b6020821081036133df576133de613385565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061341b602083612f71565b9150613426826133e5565b602082019050919050565b6000602082019050818103600083015261344a8161340e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006134ad602883612f71565b91506134b882613451565b604082019050919050565b600060208201905081810360008301526134dc816134a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061351d826130de565b9150613528836130de565b92508282019050808211156135405761353f6134e3565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006135a2603983612f71565b91506135ad82613546565b604082019050919050565b600060208201905081810360008301526135d181613595565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613634602583612f71565b915061363f826135d8565b604082019050919050565b6000602082019050818103600083015261366381613627565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136c6602683612f71565b91506136d18261366a565b604082019050919050565b600060208201905081810360008301526136f5816136b9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613787602483612f71565b91506137928261372b565b604082019050919050565b600060208201905081810360008301526137b68161377a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613819602283612f71565b9150613824826137bd565b604082019050919050565b600060208201905081810360008301526138488161380c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138ab602583612f71565b91506138b68261384f565b604082019050919050565b600060208201905081810360008301526138da8161389e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061393d602383612f71565b9150613948826138e1565b604082019050919050565b6000602082019050818103600083015261396c81613930565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006139a9601683612f71565b91506139b482613973565b602082019050919050565b600060208201905081810360008301526139d88161399c565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613a3b603583612f71565b9150613a46826139df565b604082019050919050565b60006020820190508181036000830152613a6a81613a2e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613aa7601383612f71565b9150613ab282613a71565b602082019050919050565b60006020820190508181036000830152613ad681613a9a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613b39603683612f71565b9150613b4482613add565b604082019050919050565b60006020820190508181036000830152613b6881613b2c565b9050919050565b6000613b7a826130de565b9150613b85836130de565b9250828202613b93816130de565b91508282048414831517613baa57613ba96134e3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613beb826130de565b9150613bf6836130de565b925082613c0657613c05613bb1565b5b828204905092915050565b6000613c1c826130de565b9150613c27836130de565b9250828203905081811115613c3f57613c3e6134e3565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ca1602683612f71565b9150613cac82613c45565b604082019050919050565b60006020820190508181036000830152613cd081613c94565b9050919050565b600081905092915050565b50565b6000613cf2600083613cd7565b9150613cfd82613ce2565b600082019050919050565b6000613d1382613ce5565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613d5b8161304f565b92915050565b600060208284031215613d7757613d76613018565b5b6000613d8584828501613d4c565b91505092915050565b6000819050919050565b6000613db3613dae613da984613d8e565b613154565b6130de565b9050919050565b613dc381613d98565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dfe8161303d565b82525050565b6000613e108383613df5565b60208301905092915050565b6000602082019050919050565b6000613e3482613dc9565b613e3e8185613dd4565b9350613e4983613de5565b8060005b83811015613e7a578151613e618882613e04565b9750613e6c83613e1c565b925050600181019050613e4d565b5085935050505092915050565b600060a082019050613e9c60008301886131ce565b613ea96020830187613dba565b8181036040830152613ebb8186613e29565b9050613eca60608301856132af565b613ed760808301846131ce565b969550505050505056fea2646970667358221220925f69e7723ac099ee2e8ef8b8e8e8b0d0ea0ebd320a50ed922c07183fd3803964736f6c63430008120033
Deployed Bytecode Sourcemap
8151:11818:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2624:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9200:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3538:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18478:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8194:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2945:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8847:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8887;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18375:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3715:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8961:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2844:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4215:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8252:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8509:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12754:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8360:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8737:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8588:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3061:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;772:103;;;;;;;;;;;;;:::i;:::-;;11758:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11890:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8698:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;549:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8329:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8810:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2732:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12246:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4438:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3196:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9410:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8549:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8929:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12056:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8394:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8627:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3379:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8436:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8661:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;883:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9021:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8772:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16691:556;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8476:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2624:100;2678:13;2711:5;2704:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2624:100;:::o;9200:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;3538:169::-;3621:4;3638:39;3647:12;:10;:12::i;:::-;3661:7;3670:6;3638:8;:39::i;:::-;3695:4;3688:11;;3538:169;;;;:::o;18478:97::-;695:12;:10;:12::i;:::-;684:23;;:7;:5;:7::i;:::-;:23;;;676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18560:6:::1;18547:10;;:19;;;;;;;;;;;;;;;;;;18478:97:::0;:::o;8194:51::-;;;:::o;2945:108::-;3006:7;3033:12;;3026:19;;2945:108;:::o;8847:33::-;;;;:::o;8887:::-;;;;:::o;18375:95::-;695:12;:10;:12::i;:::-;684:23;;:7;:5;:7::i;:::-;:23;;;676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18455:6:::1;18443:9;;:18;;;;;;;;;;;;;;;;;;18375:95:::0;:::o;3715:492::-;3855:4;3872:36;3882:6;3890:9;3901:6;3872:9;:36::i;:::-;3921:24;3948:11;:19;3960:6;3948:19;;;;;;;;;;;;;;;:33;3968:12;:10;:12::i;:::-;3948:33;;;;;;;;;;;;;;;;3921:60;;4020:6;4000:16;:26;;3992:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4107:57;4116:6;4124:12;:10;:12::i;:::-;4157:6;4138:16;:25;4107:8;:57::i;:::-;4195:4;4188:11;;;3715:492;;;;;:::o;8961:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2844:93::-;2902:5;2927:2;2920:9;;2844:93;:::o;4215:215::-;4303:4;4320:80;4329:12;:10;:12::i;:::-;4343:7;4389:10;4352:11;:25;4364:12;:10;:12::i;:::-;4352:25;;;;;;;;;;;;;;;:34;4378:7;4352:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4320:8;:80::i;:::-;4418:4;4411:11;;4215:215;;;;:::o;8252:38::-;;;:::o;8509:33::-;;;;;;;;;;;;;:::o;12754:126::-;12820:4;12844:19;:28;12864:7;12844:28;;;;;;;;;;;;;;;;;;;;;;;;;12837:35;;12754:126;;;:::o;8360:25::-;;;;;;;;;;;;;:::o;8737:28::-;;;;:::o;8588:30::-;;;;;;;;;;;;;:::o;3061:127::-;3135:7;3162:9;:18;3172:7;3162:18;;;;;;;;;;;;;;;;3155:25;;3061:127;;;:::o;772:103::-;695:12;:10;:12::i;:::-;684:23;;:7;:5;:7::i;:::-;:23;;;676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;837:30:::1;864:1;837:18;:30::i;:::-;772:103::o:0;11758:121::-;11810:4;695:12;:10;:12::i;:::-;684:23;;:7;:5;:7::i;:::-;:23;;;676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11844:5:::1;11827:14;;:22;;;;;;;;;;;;;;;;;;11867:4;11860:11;;11758:121:::0;:::o;11890:158::-;695:12;:10;:12::i;:::-;684:23;;:7;:5;:7::i;:::-;:23;;;676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12036:4:::1;12005:20;:28;12026:6;12005:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11890:158:::0;;:::o;8698:30::-;;;;:::o;549:87::-;595:7;622:6;;;;;;;;;;;615:13;;549:87;:::o;8329:24::-;;;;;;;;;;;;;:::o;8810:31::-;;;;:::o;2732:104::-;2788:13;2821:7;2814:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2732:104;:::o;12246:304::-;695:12;:10;:12::i;:::-;684:23;;:7;:5;:7::i;:::-;:23;;;676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12390:13:::1;12382:21;;:4;:21;;::::0;12360:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12501:41;12530:4;12536:5;12501:28;:41::i;:::-;12246:304:::0;;:::o;4438:413::-;4531:4;4548:24;4575:11;:25;4587:12;:10;:12::i;:::-;4575:25;;;;;;;;;;;;;;;:34;4601:7;4575:34;;;;;;;;;;;;;;;;4548:61;;4648:15;4628:16;:35;;4620:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4741:67;4750:12;:10;:12::i;:::-;4764:7;4792:15;4773:16;:34;4741:8;:67::i;:::-;4839:4;4832:11;;;4438:413;;;;:::o;3196:175::-;3282:4;3299:42;3309:12;:10;:12::i;:::-;3323:9;3334:6;3299:9;:42::i;:::-;3359:4;3352:11;;3196:175;;;;:::o;9410:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;8549:32::-;;;;;;;;;;;;;:::o;8929:25::-;;;;:::o;12056:182::-;695:12;:10;:12::i;:::-;684:23;;:7;:5;:7::i;:::-;:23;;;676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12172:8:::1;12141:19;:28;12161:7;12141:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12212:7;12196:34;;;12221:8;12196:34;;;;;;:::i;:::-;;;;;;;;12056:182:::0;;:::o;8394:35::-;;;;:::o;8627:27::-;;;;:::o;3379:151::-;3468:7;3495:11;:18;3507:5;3495:18;;;;;;;;;;;;;;;:27;3514:7;3495:27;;;;;;;;;;;;;;;;3488:34;;3379:151;;;;:::o;8436:33::-;;;;:::o;8661:30::-;;;;:::o;883:201::-;695:12;:10;:12::i;:::-;684:23;;:7;:5;:7::i;:::-;:23;;;676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;992:1:::1;972:22;;:8;:22;;::::0;964:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1048:28;1067:8;1048:18;:28::i;:::-;883:201:::0;:::o;9021:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8772:31::-;;;;:::o;16691:556::-;16737:7;16774:11;16786:1;16774:14;;;;;;;;:::i;:::-;;;;;;;;;;16761:10;;:27;16757:57;;;16797:14;16812:1;16797:17;;;;;;;;:::i;:::-;;;;;;;;;;16790:24;;;;16757:57;16843:11;16855:1;16843:14;;;;;;;;:::i;:::-;;;;;;;;;;16830:10;;:27;16826:57;;;16866:14;16881:1;16866:17;;;;;;;;:::i;:::-;;;;;;;;;;16859:24;;;;16826:57;16912:11;16924:1;16912:14;;;;;;;;:::i;:::-;;;;;;;;;;16899:10;;:27;16895:57;;;16935:14;16950:1;16935:17;;;;;;;;:::i;:::-;;;;;;;;;;16928:24;;;;16895:57;16981:11;16993:1;16981:14;;;;;;;;:::i;:::-;;;;;;;;;;16968:10;;:27;16964:57;;;17004:14;17019:1;17004:17;;;;;;;;:::i;:::-;;;;;;;;;;16997:24;;;;16964:57;17050:11;17062:1;17050:14;;;;;;;;:::i;:::-;;;;;;;;;;17037:10;;:27;17033:57;;;17073:14;17088:1;17073:17;;;;;;;;:::i;:::-;;;;;;;;;;17066:24;;;;17033:57;17119:11;17131:1;17119:14;;;;;;;;:::i;:::-;;;;;;;;;;17106:10;;:27;17102:57;;;17142:14;17157:1;17142:17;;;;;;;;:::i;:::-;;;;;;;;;;17135:24;;;;17102:57;17180:14;17195:1;17180:17;;;;;;;;:::i;:::-;;;;;;;;;;17173:24;;16691:556;;:::o;8476:24::-;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;6606:380::-;6759:1;6742:19;;:5;:19;;;6734:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6840:1;6821:21;;:7;:21;;;6813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6924:6;6894:11;:18;6906:5;6894:18;;;;;;;;;;;;;;;:27;6913:7;6894:27;;;;;;;;;;;;;;;:36;;;;6962:7;6946:32;;6955:5;6946:32;;;6971:6;6946:32;;;;;;:::i;:::-;;;;;;;;6606:380;;;:::o;12888:3793::-;13036:1;13020:18;;:4;:18;;;13012:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13113:1;13099:16;;:2;:16;;;13091:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13182:1;13172:6;:11;13168:93;;13200:28;13216:4;13222:2;13226:1;13200:15;:28::i;:::-;13243:7;;13168:93;13277:14;;;;;;;;;;;13273:1661;;;13338:7;:5;:7::i;:::-;13330:15;;:4;:15;;;;:49;;;;;13372:7;:5;:7::i;:::-;13366:13;;:2;:13;;;;13330:49;:86;;;;;13414:1;13400:16;;:2;:16;;;;13330:86;:128;;;;;13451:6;13437:21;;:2;:21;;;;13330:128;:158;;;;;13480:8;;;;;;;;;;;13479:9;13330:158;13308:1615;;;13528:13;;;;;;;;;;;13523:223;;13600:19;:25;13620:4;13600:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;13629:19;:23;13649:2;13629:23;;;;;;;;;;;;;;;;;;;;;;;;;13600:52;13566:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;13523:223;13820:25;:31;13846:4;13820:31;;;;;;;;;;;;;;;;;;;;;;;;;:81;;;;;13877:20;:24;13898:2;13877:24;;;;;;;;;;;;;;;;;;;;;;;;;13876:25;13820:81;13794:1114;;;13988:20;;13978:6;:30;;13944:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;14196:9;;14179:13;14189:2;14179:9;:13::i;:::-;14170:6;:22;;;;:::i;:::-;:35;;14136:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;13794:1114;;;14374:25;:29;14400:2;14374:29;;;;;;;;;;;;;;;;;;;;;;;;;:81;;;;;14429:20;:26;14450:4;14429:26;;;;;;;;;;;;;;;;;;;;;;;;;14428:27;14374:81;14348:560;;;14542:20;;14532:6;:30;;14498:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;14348:560;;;14699:20;:24;14720:2;14699:24;;;;;;;;;;;;;;;;;;;;;;;;;14694:214;;14808:9;;14791:13;14801:2;14791:9;:13::i;:::-;14782:6;:22;;;;:::i;:::-;:35;;14748:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;14694:214;14348:560;13794:1114;13308:1615;13273:1661;14946:28;14977:24;14995:4;14977:9;:24::i;:::-;14946:55;;15014:12;15053:18;;15029:20;:42;;15014:57;;15102:7;:35;;;;;15126:11;;;;;;;;;;;15102:35;:61;;;;;15155:8;;;;;;;;;;;15154:9;15102:61;:110;;;;;15181:25;:31;15207:4;15181:31;;;;;;;;;;;;;;;;;;;;;;;;;15180:32;15102:110;:153;;;;;15230:19;:25;15250:4;15230:25;;;;;;;;;;;;;;;;;;;;;;;;;15229:26;15102:153;:194;;;;;15273:19;:23;15293:2;15273:23;;;;;;;;;;;;;;;;;;;;;;;;;15272:24;15102:194;15084:326;;;15334:4;15323:8;;:15;;;;;;;;;;;;;;;;;;15355:10;:8;:10::i;:::-;15393:5;15382:8;;:16;;;;;;;;;;;;;;;;;;15084:326;15422:12;15438:8;;;;;;;;;;;15437:9;15422:24;;15548:19;:25;15568:4;15548:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15577:19;:23;15597:2;15577:23;;;;;;;;;;;;;;;;;;;;;;;;;15548:52;15544:100;;;15627:5;15617:15;;15544:100;15656:12;15761:7;15757:871;;;15817:25;:29;15843:2;15817:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;15866:1;15850:13;;:17;15817:50;15813:634;;;15920:3;15904:13;;15895:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;15888:35;;15992:13;;15972:16;;15965:4;:23;;;;:::i;:::-;15964:41;;;;:::i;:::-;15942:18;;:63;;;;;;;:::i;:::-;;;;;;;;16074:13;;16054:16;;16047:4;:23;;;;:::i;:::-;16046:41;;;;:::i;:::-;16024:18;;:63;;;;;;;:::i;:::-;;;;;;;;15813:634;;;16165:25;:31;16191:4;16165:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;16215:1;16200:12;;:16;16165:51;16161:286;;;16268:3;16253:12;;16244:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;16237:34;;16339:12;;16320:15;;16313:4;:22;;;;:::i;:::-;16312:39;;;;:::i;:::-;16290:18;;:61;;;;;;;:::i;:::-;;;;;;;;16419:12;;16400:15;;16393:4;:22;;;;:::i;:::-;16392:39;;;;:::i;:::-;16370:18;;:61;;;;;;;:::i;:::-;;;;;;;;16161:286;15813:634;16474:1;16467:4;:8;16463:91;;;16496:42;16512:4;16526;16533;16496:15;:42::i;:::-;16463:91;16580:4;16570:14;;;;;:::i;:::-;;;16615:1;16601:10;;:15;;;;;;;:::i;:::-;;;;;;;;15757:871;16640:33;16656:4;16662:2;16666:6;16640:15;:33::i;:::-;13001:3680;;;;12888:3793;;;;:::o;1090:191::-;1164:16;1183:6;;;;;;;;;;;1164:25;;1209:8;1200:6;;:17;;;;;;;;;;;;;;;;;;1264:8;1233:40;;1254:8;1233:40;;;;;;;;;;;;1153:128;1090:191;:::o;12558:188::-;12675:5;12641:25;:31;12667:4;12641:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12732:5;12698:40;;12726:4;12698:40;;;;;;;;;;;;12558:188;;:::o;4859:733::-;5017:1;4999:20;;:6;:20;;;4991:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5101:1;5080:23;;:9;:23;;;5072:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5156:47;5177:6;5185:9;5196:6;5156:20;:47::i;:::-;5216:21;5240:9;:17;5250:6;5240:17;;;;;;;;;;;;;;;;5216:41;;5293:6;5276:13;:23;;5268:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5414:6;5398:13;:22;5378:9;:17;5388:6;5378:17;;;;;;;;;;;;;;;:42;;;;5466:6;5442:9;:20;5452:9;5442:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5507:9;5490:35;;5499:6;5490:35;;;5518:6;5490:35;;;;;;:::i;:::-;;;;;;;;5538:46;5558:6;5566:9;5577:6;5538:19;:46::i;:::-;4980:612;4859:733;;;:::o;18583:1381::-;18622:23;18648:24;18666:4;18648:9;:24::i;:::-;18622:50;;18683:25;18732:18;;18711;;:39;;;;:::i;:::-;18683:67;;18761:12;18809:1;18790:15;:20;:46;;;;18835:1;18814:17;:22;18790:46;18786:85;;;18853:7;;;;;18786:85;18926:2;18905:18;;:23;;;;:::i;:::-;18887:15;:41;18883:115;;;18984:2;18963:18;;:23;;;;:::i;:::-;18945:41;;18883:115;19068:26;19097:15;19068:44;;19125:25;19153:21;19125:49;;19187:36;19204:18;19187:16;:36::i;:::-;19236:18;19281:17;19257:21;:41;;;;:::i;:::-;19236:62;;19312:23;19372:17;19351:18;;19338:10;:31;;;;:::i;:::-;:51;;;;:::i;:::-;19312:77;;19402:23;19441:15;19428:10;:28;;;;:::i;:::-;19402:54;;19490:1;19469:18;:22;;;;19523:1;19502:18;:22;;;;19559:1;19541:15;:19;19537:133;;;19601:10;;;;;;;;;;;19593:24;;19625:15;19593:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19579:66;;;;;19537:133;19707:1;19689:15;:19;19685:132;;;19749:9;;;;;;;;;;;19741:23;;19772:15;19741:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19727:65;;;;;19685:132;19907:9;;;;;;;;;;;19899:23;;19930:21;19899:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19885:71;;;;;18611:1353;;;;;;;;18583:1381;:::o;6994:125::-;;;;:::o;7127:124::-;;;;:::o;17255:589::-;17381:21;17419:1;17405:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17381:40;;17450:4;17432;17437:1;17432:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17476:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17466:4;17471:1;17466:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17511:62;17528:4;17543:15;17561:11;17511:8;:62::i;:::-;17612:15;:66;;;17693:11;17719:1;17763:4;17790;17810:15;17612:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17310:534;17255:589;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:329::-;2242:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:119;;;2297:79;;:::i;:::-;2259:119;2417:1;2442:53;2487:7;2478:6;2467:9;2463:22;2442:53;:::i;:::-;2432:63;;2388:117;2183:329;;;;:::o;2518:90::-;2552:7;2595:5;2588:13;2581:21;2570:32;;2518:90;;;:::o;2614:109::-;2695:21;2710:5;2695:21;:::i;:::-;2690:3;2683:34;2614:109;;:::o;2729:210::-;2816:4;2854:2;2843:9;2839:18;2831:26;;2867:65;2929:1;2918:9;2914:17;2905:6;2867:65;:::i;:::-;2729:210;;;;:::o;2945:77::-;2982:7;3011:5;3000:16;;2945:77;;;:::o;3028:122::-;3101:24;3119:5;3101:24;:::i;:::-;3094:5;3091:35;3081:63;;3140:1;3137;3130:12;3081:63;3028:122;:::o;3156:139::-;3202:5;3240:6;3227:20;3218:29;;3256:33;3283:5;3256:33;:::i;:::-;3156:139;;;;:::o;3301:474::-;3369:6;3377;3426:2;3414:9;3405:7;3401:23;3397:32;3394:119;;;3432:79;;:::i;:::-;3394:119;3552:1;3577:53;3622:7;3613:6;3602:9;3598:22;3577:53;:::i;:::-;3567:63;;3523:117;3679:2;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3650:118;3301:474;;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:329::-;5790:6;5839:2;5827:9;5818:7;5814:23;5810:32;5807:119;;;5845:79;;:::i;:::-;5807:119;5965:1;5990:53;6035:7;6026:6;6015:9;6011:22;5990:53;:::i;:::-;5980:63;;5936:117;5731:329;;;;:::o;6066:86::-;6101:7;6141:4;6134:5;6130:16;6119:27;;6066:86;;;:::o;6158:112::-;6241:22;6257:5;6241:22;:::i;:::-;6236:3;6229:35;6158:112;;:::o;6276:214::-;6365:4;6403:2;6392:9;6388:18;6380:26;;6416:67;6480:1;6469:9;6465:17;6456:6;6416:67;:::i;:::-;6276:214;;;;:::o;6496:118::-;6583:24;6601:5;6583:24;:::i;:::-;6578:3;6571:37;6496:118;;:::o;6620:222::-;6713:4;6751:2;6740:9;6736:18;6728:26;;6764:71;6832:1;6821:9;6817:17;6808:6;6764:71;:::i;:::-;6620:222;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:474::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7961:2;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7932:118;7583:474;;;;;:::o;8063:180::-;8111:77;8108:1;8101:88;8208:4;8205:1;8198:15;8232:4;8229:1;8222:15;8249:320;8293:6;8330:1;8324:4;8320:12;8310:22;;8377:1;8371:4;8367:12;8398:18;8388:81;;8454:4;8446:6;8442:17;8432:27;;8388:81;8516:2;8508:6;8505:14;8485:18;8482:38;8479:84;;8535:18;;:::i;:::-;8479:84;8300:269;8249:320;;;:::o;8575:182::-;8715:34;8711:1;8703:6;8699:14;8692:58;8575:182;:::o;8763:366::-;8905:3;8926:67;8990:2;8985:3;8926:67;:::i;:::-;8919:74;;9002:93;9091:3;9002:93;:::i;:::-;9120:2;9115:3;9111:12;9104:19;;8763:366;;;:::o;9135:419::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9388:9;9382:4;9378:20;9374:1;9363:9;9359:17;9352:47;9416:131;9542:4;9416:131;:::i;:::-;9408:139;;9135:419;;;:::o;9560:227::-;9700:34;9696:1;9688:6;9684:14;9677:58;9769:10;9764:2;9756:6;9752:15;9745:35;9560:227;:::o;9793:366::-;9935:3;9956:67;10020:2;10015:3;9956:67;:::i;:::-;9949:74;;10032:93;10121:3;10032:93;:::i;:::-;10150:2;10145:3;10141:12;10134:19;;9793:366;;;:::o;10165:419::-;10331:4;10369:2;10358:9;10354:18;10346:26;;10418:9;10412:4;10408:20;10404:1;10393:9;10389:17;10382:47;10446:131;10572:4;10446:131;:::i;:::-;10438:139;;10165:419;;;:::o;10590:180::-;10638:77;10635:1;10628:88;10735:4;10732:1;10725:15;10759:4;10756:1;10749:15;10776:191;10816:3;10835:20;10853:1;10835:20;:::i;:::-;10830:25;;10869:20;10887:1;10869:20;:::i;:::-;10864:25;;10912:1;10909;10905:9;10898:16;;10933:3;10930:1;10927:10;10924:36;;;10940:18;;:::i;:::-;10924:36;10776:191;;;;:::o;10973:244::-;11113:34;11109:1;11101:6;11097:14;11090:58;11182:27;11177:2;11169:6;11165:15;11158:52;10973:244;:::o;11223:366::-;11365:3;11386:67;11450:2;11445:3;11386:67;:::i;:::-;11379:74;;11462:93;11551:3;11462:93;:::i;:::-;11580:2;11575:3;11571:12;11564:19;;11223:366;;;:::o;11595:419::-;11761:4;11799:2;11788:9;11784:18;11776:26;;11848:9;11842:4;11838:20;11834:1;11823:9;11819:17;11812:47;11876:131;12002:4;11876:131;:::i;:::-;11868:139;;11595:419;;;:::o;12020:224::-;12160:34;12156:1;12148:6;12144:14;12137:58;12229:7;12224:2;12216:6;12212:15;12205:32;12020:224;:::o;12250:366::-;12392:3;12413:67;12477:2;12472:3;12413:67;:::i;:::-;12406:74;;12489:93;12578:3;12489:93;:::i;:::-;12607:2;12602:3;12598:12;12591:19;;12250:366;;;:::o;12622:419::-;12788:4;12826:2;12815:9;12811:18;12803:26;;12875:9;12869:4;12865:20;12861:1;12850:9;12846:17;12839:47;12903:131;13029:4;12903:131;:::i;:::-;12895:139;;12622:419;;;:::o;13047:225::-;13187:34;13183:1;13175:6;13171:14;13164:58;13256:8;13251:2;13243:6;13239:15;13232:33;13047:225;:::o;13278:366::-;13420:3;13441:67;13505:2;13500:3;13441:67;:::i;:::-;13434:74;;13517:93;13606:3;13517:93;:::i;:::-;13635:2;13630:3;13626:12;13619:19;;13278:366;;;:::o;13650:419::-;13816:4;13854:2;13843:9;13839:18;13831:26;;13903:9;13897:4;13893:20;13889:1;13878:9;13874:17;13867:47;13931:131;14057:4;13931:131;:::i;:::-;13923:139;;13650:419;;;:::o;14075:180::-;14123:77;14120:1;14113:88;14220:4;14217:1;14210:15;14244:4;14241:1;14234:15;14261:223;14401:34;14397:1;14389:6;14385:14;14378:58;14470:6;14465:2;14457:6;14453:15;14446:31;14261:223;:::o;14490:366::-;14632:3;14653:67;14717:2;14712:3;14653:67;:::i;:::-;14646:74;;14729:93;14818:3;14729:93;:::i;:::-;14847:2;14842:3;14838:12;14831:19;;14490:366;;;:::o;14862:419::-;15028:4;15066:2;15055:9;15051:18;15043:26;;15115:9;15109:4;15105:20;15101:1;15090:9;15086:17;15079:47;15143:131;15269:4;15143:131;:::i;:::-;15135:139;;14862:419;;;:::o;15287:221::-;15427:34;15423:1;15415:6;15411:14;15404:58;15496:4;15491:2;15483:6;15479:15;15472:29;15287:221;:::o;15514:366::-;15656:3;15677:67;15741:2;15736:3;15677:67;:::i;:::-;15670:74;;15753:93;15842:3;15753:93;:::i;:::-;15871:2;15866:3;15862:12;15855:19;;15514:366;;;:::o;15886:419::-;16052:4;16090:2;16079:9;16075:18;16067:26;;16139:9;16133:4;16129:20;16125:1;16114:9;16110:17;16103:47;16167:131;16293:4;16167:131;:::i;:::-;16159:139;;15886:419;;;:::o;16311:224::-;16451:34;16447:1;16439:6;16435:14;16428:58;16520:7;16515:2;16507:6;16503:15;16496:32;16311:224;:::o;16541:366::-;16683:3;16704:67;16768:2;16763:3;16704:67;:::i;:::-;16697:74;;16780:93;16869:3;16780:93;:::i;:::-;16898:2;16893:3;16889:12;16882:19;;16541:366;;;:::o;16913:419::-;17079:4;17117:2;17106:9;17102:18;17094:26;;17166:9;17160:4;17156:20;17152:1;17141:9;17137:17;17130:47;17194:131;17320:4;17194:131;:::i;:::-;17186:139;;16913:419;;;:::o;17338:222::-;17478:34;17474:1;17466:6;17462:14;17455:58;17547:5;17542:2;17534:6;17530:15;17523:30;17338:222;:::o;17566:366::-;17708:3;17729:67;17793:2;17788:3;17729:67;:::i;:::-;17722:74;;17805:93;17894:3;17805:93;:::i;:::-;17923:2;17918:3;17914:12;17907:19;;17566:366;;;:::o;17938:419::-;18104:4;18142:2;18131:9;18127:18;18119:26;;18191:9;18185:4;18181:20;18177:1;18166:9;18162:17;18155:47;18219:131;18345:4;18219:131;:::i;:::-;18211:139;;17938:419;;;:::o;18363:172::-;18503:24;18499:1;18491:6;18487:14;18480:48;18363:172;:::o;18541:366::-;18683:3;18704:67;18768:2;18763:3;18704:67;:::i;:::-;18697:74;;18780:93;18869:3;18780:93;:::i;:::-;18898:2;18893:3;18889:12;18882:19;;18541:366;;;:::o;18913:419::-;19079:4;19117:2;19106:9;19102:18;19094:26;;19166:9;19160:4;19156:20;19152:1;19141:9;19137:17;19130:47;19194:131;19320:4;19194:131;:::i;:::-;19186:139;;18913:419;;;:::o;19338:240::-;19478:34;19474:1;19466:6;19462:14;19455:58;19547:23;19542:2;19534:6;19530:15;19523:48;19338:240;:::o;19584:366::-;19726:3;19747:67;19811:2;19806:3;19747:67;:::i;:::-;19740:74;;19823:93;19912:3;19823:93;:::i;:::-;19941:2;19936:3;19932:12;19925:19;;19584:366;;;:::o;19956:419::-;20122:4;20160:2;20149:9;20145:18;20137:26;;20209:9;20203:4;20199:20;20195:1;20184:9;20180:17;20173:47;20237:131;20363:4;20237:131;:::i;:::-;20229:139;;19956:419;;;:::o;20381:169::-;20521:21;20517:1;20509:6;20505:14;20498:45;20381:169;:::o;20556:366::-;20698:3;20719:67;20783:2;20778:3;20719:67;:::i;:::-;20712:74;;20795:93;20884:3;20795:93;:::i;:::-;20913:2;20908:3;20904:12;20897:19;;20556:366;;;:::o;20928:419::-;21094:4;21132:2;21121:9;21117:18;21109:26;;21181:9;21175:4;21171:20;21167:1;21156:9;21152:17;21145:47;21209:131;21335:4;21209:131;:::i;:::-;21201:139;;20928:419;;;:::o;21353:241::-;21493:34;21489:1;21481:6;21477:14;21470:58;21562:24;21557:2;21549:6;21545:15;21538:49;21353:241;:::o;21600:366::-;21742:3;21763:67;21827:2;21822:3;21763:67;:::i;:::-;21756:74;;21839:93;21928:3;21839:93;:::i;:::-;21957:2;21952:3;21948:12;21941:19;;21600:366;;;:::o;21972:419::-;22138:4;22176:2;22165:9;22161:18;22153:26;;22225:9;22219:4;22215:20;22211:1;22200:9;22196:17;22189:47;22253:131;22379:4;22253:131;:::i;:::-;22245:139;;21972:419;;;:::o;22397:410::-;22437:7;22460:20;22478:1;22460:20;:::i;:::-;22455:25;;22494:20;22512:1;22494:20;:::i;:::-;22489:25;;22549:1;22546;22542:9;22571:30;22589:11;22571:30;:::i;:::-;22560:41;;22750:1;22741:7;22737:15;22734:1;22731:22;22711:1;22704:9;22684:83;22661:139;;22780:18;;:::i;:::-;22661:139;22445:362;22397:410;;;;:::o;22813:180::-;22861:77;22858:1;22851:88;22958:4;22955:1;22948:15;22982:4;22979:1;22972:15;22999:185;23039:1;23056:20;23074:1;23056:20;:::i;:::-;23051:25;;23090:20;23108:1;23090:20;:::i;:::-;23085:25;;23129:1;23119:35;;23134:18;;:::i;:::-;23119:35;23176:1;23173;23169:9;23164:14;;22999:185;;;;:::o;23190:194::-;23230:4;23250:20;23268:1;23250:20;:::i;:::-;23245:25;;23284:20;23302:1;23284:20;:::i;:::-;23279:25;;23328:1;23325;23321:9;23313:17;;23352:1;23346:4;23343:11;23340:37;;;23357:18;;:::i;:::-;23340:37;23190:194;;;;:::o;23390:225::-;23530:34;23526:1;23518:6;23514:14;23507:58;23599:8;23594:2;23586:6;23582:15;23575:33;23390:225;:::o;23621:366::-;23763:3;23784:67;23848:2;23843:3;23784:67;:::i;:::-;23777:74;;23860:93;23949:3;23860:93;:::i;:::-;23978:2;23973:3;23969:12;23962:19;;23621:366;;;:::o;23993:419::-;24159:4;24197:2;24186:9;24182:18;24174:26;;24246:9;24240:4;24236:20;24232:1;24221:9;24217:17;24210:47;24274:131;24400:4;24274:131;:::i;:::-;24266:139;;23993:419;;;:::o;24418:147::-;24519:11;24556:3;24541:18;;24418:147;;;;:::o;24571:114::-;;:::o;24691:398::-;24850:3;24871:83;24952:1;24947:3;24871:83;:::i;:::-;24864:90;;24963:93;25052:3;24963:93;:::i;:::-;25081:1;25076:3;25072:11;25065:18;;24691:398;;;:::o;25095:379::-;25279:3;25301:147;25444:3;25301:147;:::i;:::-;25294:154;;25465:3;25458:10;;25095:379;;;:::o;25480:180::-;25528:77;25525:1;25518:88;25625:4;25622:1;25615:15;25649:4;25646:1;25639:15;25666:143;25723:5;25754:6;25748:13;25739:22;;25770:33;25797:5;25770:33;:::i;:::-;25666:143;;;;:::o;25815:351::-;25885:6;25934:2;25922:9;25913:7;25909:23;25905:32;25902:119;;;25940:79;;:::i;:::-;25902:119;26060:1;26085:64;26141:7;26132:6;26121:9;26117:22;26085:64;:::i;:::-;26075:74;;26031:128;25815:351;;;;:::o;26172:85::-;26217:7;26246:5;26235:16;;26172:85;;;:::o;26263:158::-;26321:9;26354:61;26372:42;26381:32;26407:5;26381:32;:::i;:::-;26372:42;:::i;:::-;26354:61;:::i;:::-;26341:74;;26263:158;;;:::o;26427:147::-;26522:45;26561:5;26522:45;:::i;:::-;26517:3;26510:58;26427:147;;:::o;26580:114::-;26647:6;26681:5;26675:12;26665:22;;26580:114;;;:::o;26700:184::-;26799:11;26833:6;26828:3;26821:19;26873:4;26868:3;26864:14;26849:29;;26700:184;;;;:::o;26890:132::-;26957:4;26980:3;26972:11;;27010:4;27005:3;27001:14;26993:22;;26890:132;;;:::o;27028:108::-;27105:24;27123:5;27105:24;:::i;:::-;27100:3;27093:37;27028:108;;:::o;27142:179::-;27211:10;27232:46;27274:3;27266:6;27232:46;:::i;:::-;27310:4;27305:3;27301:14;27287:28;;27142:179;;;;:::o;27327:113::-;27397:4;27429;27424:3;27420:14;27412:22;;27327:113;;;:::o;27476:732::-;27595:3;27624:54;27672:5;27624:54;:::i;:::-;27694:86;27773:6;27768:3;27694:86;:::i;:::-;27687:93;;27804:56;27854:5;27804:56;:::i;:::-;27883:7;27914:1;27899:284;27924:6;27921:1;27918:13;27899:284;;;28000:6;27994:13;28027:63;28086:3;28071:13;28027:63;:::i;:::-;28020:70;;28113:60;28166:6;28113:60;:::i;:::-;28103:70;;27959:224;27946:1;27943;27939:9;27934:14;;27899:284;;;27903:14;28199:3;28192:10;;27600:608;;;27476:732;;;;:::o;28214:831::-;28477:4;28515:3;28504:9;28500:19;28492:27;;28529:71;28597:1;28586:9;28582:17;28573:6;28529:71;:::i;:::-;28610:80;28686:2;28675:9;28671:18;28662:6;28610:80;:::i;:::-;28737:9;28731:4;28727:20;28722:2;28711:9;28707:18;28700:48;28765:108;28868:4;28859:6;28765:108;:::i;:::-;28757:116;;28883:72;28951:2;28940:9;28936:18;28927:6;28883:72;:::i;:::-;28965:73;29033:3;29022:9;29018:19;29009:6;28965:73;:::i;:::-;28214:831;;;;;;;;:::o
Swarm Source
ipfs://925f69e7723ac099ee2e8ef8b8e8e8b0d0ea0ebd320a50ed922c07183fd38039
[ 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.