Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 FOMOJOMO
Holders
14
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
12,988.29329971 FOMOJOMOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Token
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-03 */ /* Telegram : https://t.me/fomojomoportal Twitter : https://twitter.com/fomojomo_eth Website : https://fomojomo.vip/ */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function isOwner() public view returns (bool) { return msg.sender == _owner; } function renouncedOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Token is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "FOMOJOMO"; string private _symbol = unicode"FOMOJOMO"; uint8 private _decimals = 8; address public marketingWallet = 0x65E6ADB66cCa018ECe8BCa4852EfffdD611a18ae; address public BuyBackWallet = 0x65E6ADB66cCa018ECe8BCa4852EfffdD611a18ae; address public liquidityReciever; address public constant deadAddress = 0x000000000000000000000000000000000000dEaD; address public constant zeroAddress = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; uint256 _buyLiquidityFee = 0; uint256 _buyMarketingFee = 300; uint256 _buybuybackFee = 0; uint256 _sellLiquidityFee = 0; uint256 _sellMarketingFee = 400; uint256 _sellbuybackFee = 0; uint256 totalBuy; uint256 totalSell; uint256 constant denominator = 1000; uint256 private _totalSupply = 1_000_000 * 10 ** _decimals; uint256 public minimumTokensBeforeSwap = 6000 * 10 ** _decimals; uint256 public _maxTxAmount = _totalSupply.mul(20).div(denominator); //2% uint256 public _walletMax = _totalSupply.mul(20).div(denominator); //2% bool public EnableTxLimit = true; bool public checkWalletLimit = true; bool public ActiveTrade = false; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier onlyDev { require(msg.sender == liquidityReciever, "Ownable: caller is not the Dev"); _; } event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { address developerWallet = 0x9B260a74A1B08B040Bc4595b434F46D7Bb1cc5cb; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); liquidityReciever = developerWallet; isExcludedFromFee[address(this)] = true; isExcludedFromFee[developerWallet] = true; isWalletLimitExempt[developerWallet] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[developerWallet] = true; isTxLimitExempt[address(this)] = true; isMarketPair[address(uniswapPair)] = true; totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buybuybackFee); totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellbuybackFee); transferOwnership(developerWallet); _balances[developerWallet] = _totalSupply; emit Transfer(address(0), developerWallet, _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20:from zero"); require(recipient != address(0), "ERC20:to zero"); require(amount > 0, "Invalid Amount"); if(!ActiveTrade){ require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is Paused!"); } if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) { require(amount <= _maxTxAmount,"Max Tx"); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { swapAndLiquify(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = shouldTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify() private lockTheSwap { uint256 contractBalance = balanceOf(address(this)); if(contractBalance == 0) return; uint256 _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 _MarketingShare = _buyMarketingFee.add(_sellMarketingFee); // uint256 _BuyBackShare = _buybuybackFee.add(_sellbuybackFee); uint totalShares = totalBuy.add(totalSell); if(totalShares == 0) return; uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2); uint256 tokensForSwap = contractBalance.sub(tokensForLP); uint256 initialBalance = address(this).balance; swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance.sub(initialBalance); uint256 totalETHFee = totalShares.sub(_liquidityShare.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = amountReceived.mul(_MarketingShare).div(totalETHFee); uint256 amountETHBuyBack = amountReceived.sub(amountETHLiquidity).sub(amountETHMarketing); if(amountETHMarketing > 0) transferToAddressETH(marketingWallet,amountETHMarketing); if(amountETHBuyBack > 0) transferToAddressETH(BuyBackWallet,amountETHBuyBack); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } function transferToAddressETH(address recipient, uint256 amount) private { payable(recipient).transfer(amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } 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 liquidityReciever, block.timestamp ); } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { return true; } else if (isMarketPair[sender] || isMarketPair[recipient]) { return false; } else { return false; } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint feeAmount; unchecked { if(isMarketPair[sender]) { feeAmount = amount.mul(totalBuy).div(denominator); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(totalSell).div(denominator); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } } //To Rescue Stucked Balance function rescueFunds() external onlyOwner { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os,"Transaction Failed!!"); } //To Rescue Stucked Tokens function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyOwner { adr.transfer(recipient,amount); } function enableTrading(bool _status) external onlyOwner { ActiveTrade = _status; } function enableTxLimit(bool _status) external onlyOwner { EnableTxLimit = _status; } function enableWalletLimit(bool _status) external onlyOwner { checkWalletLimit = _status; } function removeLimits() external onlyOwner { checkWalletLimit = false; EnableTxLimit = false; } function enableLimits() external onlyOwner { checkWalletLimit = true; EnableTxLimit = true; } function setBuyFee(uint _newLP , uint _newMarket , uint _newBB) external onlyOwner { _buyLiquidityFee = _newLP; _buyMarketingFee = _newMarket; _buybuybackFee = _newBB; totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buybuybackFee); } function setSellFee(uint _newLP , uint _newMarket , uint _newBB) external onlyOwner { _sellLiquidityFee = _newLP; _sellMarketingFee = _newMarket; _sellbuybackFee = _newBB; totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellbuybackFee); } function setMarketingWallets(address _newWallet) external onlyOwner { marketingWallet = _newWallet; } function setLiquidityWallets(address _newWallet) external onlyOwner { liquidityReciever = _newWallet; } function setBuyBackWallets(address _newWallet) external onlyOwner { BuyBackWallet = _newWallet; } function setExcludeFromFee(address _adr,bool _status) external onlyOwner { require(isExcludedFromFee[_adr] != _status,"Not Changed!!"); isExcludedFromFee[_adr] = _status; } function ExcludeWalletLimit(address _adr,bool _status) external onlyOwner { require(isWalletLimitExempt[_adr] != _status,"Not Changed!!"); isWalletLimitExempt[_adr] = _status; } function ExcludeTxLimit(address _adr,bool _status) external onlyOwner { require(isTxLimitExempt[_adr] != _status,"Not Changed!!"); isTxLimitExempt[_adr] = _status; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMaxWalletLimit(uint256 newLimit) external onlyOwner() { _walletMax = newLimit; } function setTxLimit(uint256 newLimit) external onlyOwner() { _maxTxAmount = newLimit; } function setSwapAndLiquifyEnabled(bool _enabled) external onlyDev { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setMarketPair(address _pair, bool _status) external onlyOwner { isMarketPair[_pair] = _status; if(_status) { isWalletLimitExempt[address(_pair)] = true; } } function changeRouterVersion(address newRouterAddress) external onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; isWalletLimitExempt[address(uniswapPair)] = true; } }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":[],"name":"ActiveTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyBackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"enableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setBuyBackWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newBB","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setLiquidityWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newBB","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600881526020017f464f4d4f4a4f4d4f000000000000000000000000000000000000000000000000815250600190816200004a9190620010b1565b506040518060400160405280600881526020017f464f4d4f4a4f4d4f00000000000000000000000000000000000000000000000081525060029081620000919190620010b1565b506008600360006101000a81548160ff021916908360ff1602179055507365e6adb66cca018ece8bca4852efffdd611a18ae600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507365e6adb66cca018ece8bca4852efffdd611a18ae600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c5561012c600d556000600e556000600f556101906010556000601155600360009054906101000a900460ff16600a62000196919062001328565b620f4240620001a6919062001379565b601455600360009054906101000a900460ff16600a620001c7919062001328565b611770620001d6919062001379565b601555620002106103e8620001fc6014805462000ac060201b62002f1c1790919060201c565b62000b4360201b62002f961790919060201c565b6016556200024a6103e8620002366014805462000ac060201b62002f1c1790919060201c565b62000b4360201b62002f961790919060201c565b6017556001601860006101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506000601860026101000a81548160ff0219169083151502179055506001601960156101000a81548160ff021916908315150217905550348015620002c657600080fd5b506000620002d962000b9560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000739b260a74a1b08b040bc4595b434f46d7bb1cc5cb90506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041b91906200142e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000483573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a991906200142e565b6040518363ffffffff1660e01b8152600401620004c892919062001471565b6020604051808303816000875af1158015620004e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050e91906200142e565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009b2600e546200099e600d54600c5462000b9d60201b62002fe01790919060201c565b62000b9d60201b62002fe01790919060201c565b601281905550620009f1601154620009dd601054600f5462000b9d60201b62002fe01790919060201c565b62000b9d60201b62002fe01790919060201c565b60138190555062000a088262000c0060201b60201c565b601454600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60145460405162000ab09190620014af565b60405180910390a3505062001835565b600080830362000ad4576000905062000b3d565b6000828462000ae4919062001379565b905082848262000af59190620014fb565b1462000b38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2f90620015ba565b60405180910390fd5b809150505b92915050565b600062000b8d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000dcf60201b60201c565b905092915050565b600033905090565b600080828462000bae9190620015dc565b90508381101562000bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bed9062001667565b60405180910390fd5b8091505092915050565b62000c1062000b9560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000ca0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9790620016d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000d12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d099062001771565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808311829062000e19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e10919062001811565b60405180910390fd5b506000838562000e2a9190620014fb565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000eb957607f821691505b60208210810362000ecf5762000ece62000e71565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000efa565b62000f45868362000efa565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f9262000f8c62000f868462000f5d565b62000f67565b62000f5d565b9050919050565b6000819050919050565b62000fae8362000f71565b62000fc662000fbd8262000f99565b84845462000f07565b825550505050565b600090565b62000fdd62000fce565b62000fea81848462000fa3565b505050565b5b8181101562001012576200100660008262000fd3565b60018101905062000ff0565b5050565b601f82111562001061576200102b8162000ed5565b620010368462000eea565b8101602085101562001046578190505b6200105e620010558562000eea565b83018262000fef565b50505b505050565b600082821c905092915050565b6000620010866000198460080262001066565b1980831691505092915050565b6000620010a1838362001073565b9150826002028217905092915050565b620010bc8262000e37565b67ffffffffffffffff811115620010d857620010d762000e42565b5b620010e4825462000ea0565b620010f182828562001016565b600060209050601f83116001811462001129576000841562001114578287015190505b62001120858262001093565b86555062001190565b601f198416620011398662000ed5565b60005b8281101562001163578489015182556001820191506020850194506020810190506200113c565b868310156200118357848901516200117f601f89168262001073565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200122657808604811115620011fe57620011fd62001198565b5b60018516156200120e5780820291505b80810290506200121e85620011c7565b9450620011de565b94509492505050565b60008262001241576001905062001314565b8162001251576000905062001314565b81600181146200126a57600281146200127557620012ab565b600191505062001314565b60ff8411156200128a576200128962001198565b5b8360020a915084821115620012a457620012a362001198565b5b5062001314565b5060208310610133831016604e8410600b8410161715620012e55782820a905083811115620012df57620012de62001198565b5b62001314565b620012f48484846001620011d4565b925090508184048111156200130e576200130d62001198565b5b81810290505b9392505050565b600060ff82169050919050565b6000620013358262000f5d565b915062001342836200131b565b9250620013717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200122f565b905092915050565b6000620013868262000f5d565b9150620013938362000f5d565b9250828202620013a38162000f5d565b91508282048414831517620013bd57620013bc62001198565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013f682620013c9565b9050919050565b6200140881620013e9565b81146200141457600080fd5b50565b6000815190506200142881620013fd565b92915050565b600060208284031215620014475762001446620013c4565b5b6000620014578482850162001417565b91505092915050565b6200146b81620013e9565b82525050565b600060408201905062001488600083018562001460565b62001497602083018462001460565b9392505050565b620014a98162000f5d565b82525050565b6000602082019050620014c660008301846200149e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015088262000f5d565b9150620015158362000f5d565b925082620015285762001527620014cc565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620015a260218362001533565b9150620015af8262001544565b604082019050919050565b60006020820190508181036000830152620015d58162001593565b9050919050565b6000620015e98262000f5d565b9150620015f68362000f5d565b925082820190508082111562001611576200161062001198565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006200164f601b8362001533565b91506200165c8262001617565b602082019050919050565b60006020820190508181036000830152620016828162001640565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620016c160208362001533565b9150620016ce8262001689565b602082019050919050565b60006020820190508181036000830152620016f481620016b2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200175960268362001533565b91506200176682620016fb565b604082019050919050565b600060208201905081810360008301526200178c816200174a565b9050919050565b60005b83811015620017b357808201518184015260208101905062001796565b60008484015250505050565b6000601f19601f8301169050919050565b6000620017dd8262000e37565b620017e9818562001533565b9350620017fb81856020860162001793565b6200180681620017bf565b840191505092915050565b600060208201905081810360008301526200182d8184620017d0565b905092915050565b61577c80620018456000396000f3fe6080604052600436106103545760003560e01c8063728d41c9116101c6578063c16dd4a4116100f7578063dd62ed3e11610095578063f275f64b1161006f578063f275f64b14610c5b578063f2fde38b14610c84578063f872858a14610cad578063ffc0a03114610cd85761035b565b8063dd62ed3e14610bde578063e6b2603b14610c1b578063ee828db314610c325761035b565b8063c867d60b116100d1578063c867d60b14610b24578063cb917be614610b61578063cea9d26f14610b8a578063d2d7ad8314610bb35761035b565b8063c16dd4a414610aa7578063c49b9a8014610ad0578063c816841b14610af95761035b565b80638f32d59b11610164578063a457c2d71161013e578063a457c2d7146109db578063a9059cbb14610a18578063af9549e014610a55578063c0b4d19914610a7e5761035b565b80638f32d59b1461095a57806395d89b411461098557806398e944c8146109b05761035b565b80637d1db4a5116101a05780637d1db4a51461089c578063807c2d9c146108c75780638b42507f146108f25780638da5cb5b1461092f5761035b565b8063728d41c914610831578063751039fc1461085a57806375f0a874146108715761035b565b80633187c304116102a05780635342acb41161023e5780635e42358c116102185780635e42358c146107875780636902ca61146107b25780636e94312d146107c957806370a08231146107f45761035b565b80635342acb4146106e45780635881f3ef146107215780635c85974f1461075e5761035b565b80633b97084a1161027a5780633b97084a1461062a5780633ecad271146106535780634974d88f146106905780634a74bb02146106b95761035b565b80633187c3041461059957806338ec0b11146105c457806339509351146105ed5761035b565b80631d865c301161030d57806325519cf2116102e757806325519cf2146104ef57806327c8f835146105185780632b112e4914610543578063313ce5671461056e5761035b565b80631d865c301461047257806320365d5f1461049b57806323b872dd146104b25761035b565b806306fdde03146103605780630930907b1461038b578063095ea7b3146103b657806313ea1d89146103f35780631694505e1461041c57806318160ddd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d01565b604051610382919061460e565b60405180910390f35b34801561039757600080fd5b506103a0610d93565b6040516103ad9190614671565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906146f3565b610d98565b6040516103ea919061474e565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614795565b610db6565b005b34801561042857600080fd5b50610431610f38565b60405161043e9190614834565b60405180910390f35b34801561045357600080fd5b5061045c610f5e565b604051610469919061485e565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190614879565b610f68565b005b3480156104a757600080fd5b506104b0611048565b005b3480156104be57600080fd5b506104d960048036038101906104d491906148cc565b61119d565b6040516104e6919061474e565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190614879565b611277565b005b34801561052457600080fd5b5061052d611357565b60405161053a9190614671565b60405180910390f35b34801561054f57600080fd5b5061055861135d565b604051610565919061485e565b60405180910390f35b34801561057a57600080fd5b5061058361139e565b604051610590919061493b565b60405180910390f35b3480156105a557600080fd5b506105ae6113b5565b6040516105bb919061474e565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190614795565b6113c8565b005b3480156105f957600080fd5b50610614600480360381019061060f91906146f3565b61154a565b604051610621919061474e565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190614956565b6115fd565b005b34801561065f57600080fd5b5061067a60048036038101906106759190614983565b61169c565b604051610687919061474e565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b291906149b0565b6116bc565b005b3480156106c557600080fd5b506106ce61176e565b6040516106db919061474e565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190614983565b611781565b604051610718919061474e565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190614983565b6117a1565b6040516107559190614671565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190614956565b611ca4565b005b34801561079357600080fd5b5061079c611d43565b6040516107a9919061474e565b60405180910390f35b3480156107be57600080fd5b506107c7611d56565b005b3480156107d557600080fd5b506107de611e23565b6040516107eb9190614671565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190614983565b611e49565b604051610828919061485e565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614956565b611e92565b005b34801561086657600080fd5b5061086f611f31565b005b34801561087d57600080fd5b50610886611ffe565b6040516108939190614671565b60405180910390f35b3480156108a857600080fd5b506108b1612024565b6040516108be919061485e565b60405180910390f35b3480156108d357600080fd5b506108dc61202a565b6040516108e9919061485e565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190614983565b612030565b604051610926919061474e565b60405180910390f35b34801561093b57600080fd5b50610944612050565b6040516109519190614671565b60405180910390f35b34801561096657600080fd5b5061096f612079565b60405161097c919061474e565b60405180910390f35b34801561099157600080fd5b5061099a6120d0565b6040516109a7919061460e565b60405180910390f35b3480156109bc57600080fd5b506109c5612162565b6040516109d29190614671565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd91906146f3565b612188565b604051610a0f919061474e565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a91906146f3565b612255565b604051610a4c919061474e565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614795565b612274565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190614983565b6123f6565b005b348015610ab357600080fd5b50610ace6004803603810190610ac99190614795565b6124cf565b005b348015610adc57600080fd5b50610af76004803603810190610af291906149b0565b61261e565b005b348015610b0557600080fd5b50610b0e612702565b604051610b1b9190614671565b60405180910390f35b348015610b3057600080fd5b50610b4b6004803603810190610b469190614983565b612728565b604051610b58919061474e565b60405180910390f35b348015610b6d57600080fd5b50610b886004803603810190610b839190614983565b612748565b005b348015610b9657600080fd5b50610bb16004803603810190610bac9190614a1b565b612821565b005b348015610bbf57600080fd5b50610bc861293a565b604051610bd5919061485e565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c009190614a6e565b612940565b604051610c12919061485e565b60405180910390f35b348015610c2757600080fd5b50610c306129c7565b005b348015610c3e57600080fd5b50610c596004803603810190610c5491906149b0565b612b0b565b005b348015610c6757600080fd5b50610c826004803603810190610c7d91906149b0565b612bbd565b005b348015610c9057600080fd5b50610cab6004803603810190610ca69190614983565b612c6f565b005b348015610cb957600080fd5b50610cc2612e30565b604051610ccf919061474e565b60405180910390f35b348015610ce457600080fd5b50610cff6004803603810190610cfa9190614983565b612e43565b005b606060018054610d1090614add565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c90614add565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b600081565b6000610dac610da561303e565b8484613046565b6001905092915050565b610dbe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290614b5a565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490614bc6565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b610f7061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490614b5a565b60405180910390fd5b82600f81905550816010819055508060118190555061103d60115461102f601054600f54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601381905550505050565b61105061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490614b5a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006111aa84848461320f565b5061126c846111b761303e565b611267856040518060600160405280602881526020016156fa60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061121d61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b600190509392505050565b61127f61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390614b5a565b60405180910390fd5b82600c8190555081600d8190555080600e8190555061134c600e5461133e600d54600c54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601281905550505050565b61dead81565b600061139961136c6000611e49565b61138b61137a61dead611e49565b60145461392990919063ffffffff16565b61392990919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601860029054906101000a900460ff1681565b6113d061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490614b5a565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690614bc6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f361155761303e565b846115ee856007600061156861303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b613046565b6001905092915050565b61160561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614b5a565b60405180910390fd5b8060158190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116c461303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890614b5a565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b601960159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117ab61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90614b5a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119379190614bfb565b6040518363ffffffff1660e01b8152600401611954929190614c28565b602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190614bfb565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190614bfb565b6040518363ffffffff1660e01b8152600401611ae2929190614c28565b6020604051808303816000875af1158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190614bfb565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cac61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090614b5a565b60405180910390fd5b8060168190555050565b601860009054906101000a900460ff1681565b611d5e61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614b5a565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e9a61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614b5a565b60405180910390fd5b8060178190555050565b611f3961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90614b5a565b60405180910390fd5b6000601860016101000a81548160ff0219169083151502179055506000601860006101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060600280546120df90614add565b80601f016020809104026020016040519081016040528092919081815260200182805461210b90614add565b80156121585780601f1061212d57610100808354040283529160200191612158565b820191906000526020600020905b81548152906001019060200180831161213b57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061224b61219561303e565b846122468560405180606001604052806025815260200161572260259139600760006121bf61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b6001905092915050565b600061226961226261303e565b848461320f565b506001905092915050565b61227c61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614b5a565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290614bc6565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123fe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290614b5a565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124d761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90614b5a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561261a576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a590614c9d565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f7919061474e565b60405180910390a150565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61275061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d490614b5a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61282961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad90614b5a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016128f1929190614cbd565b6020604051808303816000875af1158015612910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129349190614cfb565b50505050565b60155481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129cf61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614b5a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a8290614d59565b60006040518083038185875af1925050503d8060008114612abf576040519150601f19603f3d011682016040523d82523d6000602084013e612ac4565b606091505b5050905080612b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aff90614dba565b60405180910390fd5b50565b612b1361303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9790614b5a565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b612bc561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614b5a565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b612c7761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614b5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614e4c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860019054906101000a900460ff1681565b612e4b61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf90614b5a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612f2e5760009050612f90565b60008284612f3c9190614e9b565b9050828482612f4b9190614f0c565b14612f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8290614faf565b60405180910390fd5b809150505b92915050565b6000612fd883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613973565b905092915050565b6000808284612fef9190614fcf565b905083811015613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302b9061504f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ac906150e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311b90615173565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613202919061485e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361327f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613276906151df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59061524b565b60405180910390fd5b60008211613331576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613328906152b7565b60405180910390fd5b601860029054906101000a900460ff1661342657600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806133e65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341c90615323565b60405180910390fd5b5b601960149054906101000a900460ff161561344d576134468484846139d6565b90506138be565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134f15750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135095750601860009054906101000a900460ff165b1561355457601654821115613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a9061538f565b60405180910390fd5b5b600061355f30611e49565b9050600060155482101590508080156135855750601960149054906101000a900460ff16155b80156135db5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135f35750601960159054906101000a900460ff165b1561360157613600613ba9565b5b61368a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006136d98787613e27565b6136ed576136e8878787613f92565b6136ef565b845b9050601860019054906101000a900460ff1680156137575750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137bc5760175461377a8261376c89611e49565b612fe090919063ffffffff16565b11156137bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b2906153fb565b60405180910390fd5b5b61380e81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ae919061485e565b60405180910390a3600193505050505b9392505050565b600083831115829061390d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613904919061460e565b60405180910390fd5b506000838561391c919061541b565b9050809150509392505050565b600061396b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506138c5565b905092915050565b600080831182906139ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139b1919061460e565b60405180910390fd5b50600083856139c99190614f0c565b9050809150509392505050565b6000613a61826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b96919061485e565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613bcf30611e49565b905060008103613bdf5750613e0a565b6000613bf8600f54600c54612fe090919063ffffffff16565b90506000613c13601054600d54612fe090919063ffffffff16565b90506000613c2e601354601254612fe090919063ffffffff16565b905060008103613c415750505050613e0a565b6000613c7b6002613c6d84613c5f888a612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613c92828761392990919063ffffffff16565b90506000479050613ca2826141b7565b6000613cb7824761392990919063ffffffff16565b90506000613ce1613cd260028a612f9690919063ffffffff16565b8761392990919063ffffffff16565b90506000613d1d6002613d0f84613d018d88612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613d4683613d388b87612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90506000613d6f82613d61858861392990919063ffffffff16565b61392990919063ffffffff16565b90506000821115613da757613da6600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614433565b5b6000811115613ddd57613ddc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614433565b5b600083118015613ded5750600088115b15613dfd57613dfc888461447e565b5b5050505050505050505050505b6000601960146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613eca5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613ed85760019050613f8c565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613f795750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f875760009050613f8c565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614017576140106103e861400260125486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b9050614096565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614095576140926103e861408460135486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90505b5b600081111561419a576140f181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614191919061485e565b60405180910390a35b6141ad818461392990919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156141d4576141d361544f565b5b6040519080825280602002602001820160405280156142025781602001602082028036833780820191505090505b509050308160008151811061421a5761421961547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e59190614bfb565b816001815181106142f9576142f861547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061436030601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016143c49594939291906155a6565b600060405180830381600087803b1580156143de57600080fd5b505af11580156143f2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614427929190615600565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614479573d6000803e3d6000fd5b505050565b6144ab30601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161453496959493929190615630565b60606040518083038185885af1158015614552573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061457791906156a6565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156145b857808201518184015260208101905061459d565b60008484015250505050565b6000601f19601f8301169050919050565b60006145e08261457e565b6145ea8185614589565b93506145fa81856020860161459a565b614603816145c4565b840191505092915050565b6000602082019050818103600083015261462881846145d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061465b82614630565b9050919050565b61466b81614650565b82525050565b60006020820190506146866000830184614662565b92915050565b600080fd5b61469a81614650565b81146146a557600080fd5b50565b6000813590506146b781614691565b92915050565b6000819050919050565b6146d0816146bd565b81146146db57600080fd5b50565b6000813590506146ed816146c7565b92915050565b6000806040838503121561470a5761470961468c565b5b6000614718858286016146a8565b9250506020614729858286016146de565b9150509250929050565b60008115159050919050565b61474881614733565b82525050565b6000602082019050614763600083018461473f565b92915050565b61477281614733565b811461477d57600080fd5b50565b60008135905061478f81614769565b92915050565b600080604083850312156147ac576147ab61468c565b5b60006147ba858286016146a8565b92505060206147cb85828601614780565b9150509250929050565b6000819050919050565b60006147fa6147f56147f084614630565b6147d5565b614630565b9050919050565b600061480c826147df565b9050919050565b600061481e82614801565b9050919050565b61482e81614813565b82525050565b60006020820190506148496000830184614825565b92915050565b614858816146bd565b82525050565b6000602082019050614873600083018461484f565b92915050565b6000806000606084860312156148925761489161468c565b5b60006148a0868287016146de565b93505060206148b1868287016146de565b92505060406148c2868287016146de565b9150509250925092565b6000806000606084860312156148e5576148e461468c565b5b60006148f3868287016146a8565b9350506020614904868287016146a8565b9250506040614915868287016146de565b9150509250925092565b600060ff82169050919050565b6149358161491f565b82525050565b6000602082019050614950600083018461492c565b92915050565b60006020828403121561496c5761496b61468c565b5b600061497a848285016146de565b91505092915050565b6000602082840312156149995761499861468c565b5b60006149a7848285016146a8565b91505092915050565b6000602082840312156149c6576149c561468c565b5b60006149d484828501614780565b91505092915050565b60006149e882614650565b9050919050565b6149f8816149dd565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b600080600060608486031215614a3457614a3361468c565b5b6000614a4286828701614a06565b9350506020614a53868287016146a8565b9250506040614a64868287016146de565b9150509250925092565b60008060408385031215614a8557614a8461468c565b5b6000614a93858286016146a8565b9250506020614aa4858286016146a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614af557607f821691505b602082108103614b0857614b07614aae565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614b44602083614589565b9150614b4f82614b0e565b602082019050919050565b60006020820190508181036000830152614b7381614b37565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b6000614bb0600d83614589565b9150614bbb82614b7a565b602082019050919050565b60006020820190508181036000830152614bdf81614ba3565b9050919050565b600081519050614bf581614691565b92915050565b600060208284031215614c1157614c1061468c565b5b6000614c1f84828501614be6565b91505092915050565b6000604082019050614c3d6000830185614662565b614c4a6020830184614662565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865204465760000600082015250565b6000614c87601e83614589565b9150614c9282614c51565b602082019050919050565b60006020820190508181036000830152614cb681614c7a565b9050919050565b6000604082019050614cd26000830185614662565b614cdf602083018461484f565b9392505050565b600081519050614cf581614769565b92915050565b600060208284031215614d1157614d1061468c565b5b6000614d1f84828501614ce6565b91505092915050565b600081905092915050565b50565b6000614d43600083614d28565b9150614d4e82614d33565b600082019050919050565b6000614d6482614d36565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614da4601483614589565b9150614daf82614d6e565b602082019050919050565b60006020820190508181036000830152614dd381614d97565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e36602683614589565b9150614e4182614dda565b604082019050919050565b60006020820190508181036000830152614e6581614e29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ea6826146bd565b9150614eb1836146bd565b9250828202614ebf816146bd565b91508282048414831517614ed657614ed5614e6c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f17826146bd565b9150614f22836146bd565b925082614f3257614f31614edd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f99602183614589565b9150614fa482614f3d565b604082019050919050565b60006020820190508181036000830152614fc881614f8c565b9050919050565b6000614fda826146bd565b9150614fe5836146bd565b9250828201905080821115614ffd57614ffc614e6c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615039601b83614589565b915061504482615003565b602082019050919050565b600060208201905081810360008301526150688161502c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150cb602483614589565b91506150d68261506f565b604082019050919050565b600060208201905081810360008301526150fa816150be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061515d602283614589565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b60006151c9600f83614589565b91506151d482615193565b602082019050919050565b600060208201905081810360008301526151f8816151bc565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000615235600d83614589565b9150615240826151ff565b602082019050919050565b6000602082019050818103600083015261526481615228565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006152a1600e83614589565b91506152ac8261526b565b602082019050919050565b600060208201905081810360008301526152d081615294565b9050919050565b7f54726164696e6720697320506175736564210000000000000000000000000000600082015250565b600061530d601283614589565b9150615318826152d7565b602082019050919050565b6000602082019050818103600083015261533c81615300565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b6000615379600683614589565b915061538482615343565b602082019050919050565b600060208201905081810360008301526153a88161536c565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006153e5600a83614589565b91506153f0826153af565b602082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b6000615426826146bd565b9150615431836146bd565b925082820390508181111561544957615448614e6c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006154d26154cd6154c8846154ad565b6147d5565b6146bd565b9050919050565b6154e2816154b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61551d81614650565b82525050565b600061552f8383615514565b60208301905092915050565b6000602082019050919050565b6000615553826154e8565b61555d81856154f3565b935061556883615504565b8060005b838110156155995781516155808882615523565b975061558b8361553b565b92505060018101905061556c565b5085935050505092915050565b600060a0820190506155bb600083018861484f565b6155c860208301876154d9565b81810360408301526155da8186615548565b90506155e96060830185614662565b6155f6608083018461484f565b9695505050505050565b6000604082019050615615600083018561484f565b81810360208301526156278184615548565b90509392505050565b600060c0820190506156456000830189614662565b615652602083018861484f565b61565f60408301876154d9565b61566c60608301866154d9565b6156796080830185614662565b61568660a083018461484f565b979650505050505050565b6000815190506156a0816146c7565b92915050565b6000806000606084860312156156bf576156be61468c565b5b60006156cd86828701615691565b93505060206156de86828701615691565b92505060406156ef86828701615691565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fec96ca6a3f92a62acce175364200aa02f83d5415db2b96e40565e0eb1c20e0964736f6c63430008120033
Deployed Bytecode
0x6080604052600436106103545760003560e01c8063728d41c9116101c6578063c16dd4a4116100f7578063dd62ed3e11610095578063f275f64b1161006f578063f275f64b14610c5b578063f2fde38b14610c84578063f872858a14610cad578063ffc0a03114610cd85761035b565b8063dd62ed3e14610bde578063e6b2603b14610c1b578063ee828db314610c325761035b565b8063c867d60b116100d1578063c867d60b14610b24578063cb917be614610b61578063cea9d26f14610b8a578063d2d7ad8314610bb35761035b565b8063c16dd4a414610aa7578063c49b9a8014610ad0578063c816841b14610af95761035b565b80638f32d59b11610164578063a457c2d71161013e578063a457c2d7146109db578063a9059cbb14610a18578063af9549e014610a55578063c0b4d19914610a7e5761035b565b80638f32d59b1461095a57806395d89b411461098557806398e944c8146109b05761035b565b80637d1db4a5116101a05780637d1db4a51461089c578063807c2d9c146108c75780638b42507f146108f25780638da5cb5b1461092f5761035b565b8063728d41c914610831578063751039fc1461085a57806375f0a874146108715761035b565b80633187c304116102a05780635342acb41161023e5780635e42358c116102185780635e42358c146107875780636902ca61146107b25780636e94312d146107c957806370a08231146107f45761035b565b80635342acb4146106e45780635881f3ef146107215780635c85974f1461075e5761035b565b80633b97084a1161027a5780633b97084a1461062a5780633ecad271146106535780634974d88f146106905780634a74bb02146106b95761035b565b80633187c3041461059957806338ec0b11146105c457806339509351146105ed5761035b565b80631d865c301161030d57806325519cf2116102e757806325519cf2146104ef57806327c8f835146105185780632b112e4914610543578063313ce5671461056e5761035b565b80631d865c301461047257806320365d5f1461049b57806323b872dd146104b25761035b565b806306fdde03146103605780630930907b1461038b578063095ea7b3146103b657806313ea1d89146103f35780631694505e1461041c57806318160ddd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d01565b604051610382919061460e565b60405180910390f35b34801561039757600080fd5b506103a0610d93565b6040516103ad9190614671565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906146f3565b610d98565b6040516103ea919061474e565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614795565b610db6565b005b34801561042857600080fd5b50610431610f38565b60405161043e9190614834565b60405180910390f35b34801561045357600080fd5b5061045c610f5e565b604051610469919061485e565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190614879565b610f68565b005b3480156104a757600080fd5b506104b0611048565b005b3480156104be57600080fd5b506104d960048036038101906104d491906148cc565b61119d565b6040516104e6919061474e565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190614879565b611277565b005b34801561052457600080fd5b5061052d611357565b60405161053a9190614671565b60405180910390f35b34801561054f57600080fd5b5061055861135d565b604051610565919061485e565b60405180910390f35b34801561057a57600080fd5b5061058361139e565b604051610590919061493b565b60405180910390f35b3480156105a557600080fd5b506105ae6113b5565b6040516105bb919061474e565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190614795565b6113c8565b005b3480156105f957600080fd5b50610614600480360381019061060f91906146f3565b61154a565b604051610621919061474e565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190614956565b6115fd565b005b34801561065f57600080fd5b5061067a60048036038101906106759190614983565b61169c565b604051610687919061474e565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b291906149b0565b6116bc565b005b3480156106c557600080fd5b506106ce61176e565b6040516106db919061474e565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190614983565b611781565b604051610718919061474e565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190614983565b6117a1565b6040516107559190614671565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190614956565b611ca4565b005b34801561079357600080fd5b5061079c611d43565b6040516107a9919061474e565b60405180910390f35b3480156107be57600080fd5b506107c7611d56565b005b3480156107d557600080fd5b506107de611e23565b6040516107eb9190614671565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190614983565b611e49565b604051610828919061485e565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614956565b611e92565b005b34801561086657600080fd5b5061086f611f31565b005b34801561087d57600080fd5b50610886611ffe565b6040516108939190614671565b60405180910390f35b3480156108a857600080fd5b506108b1612024565b6040516108be919061485e565b60405180910390f35b3480156108d357600080fd5b506108dc61202a565b6040516108e9919061485e565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190614983565b612030565b604051610926919061474e565b60405180910390f35b34801561093b57600080fd5b50610944612050565b6040516109519190614671565b60405180910390f35b34801561096657600080fd5b5061096f612079565b60405161097c919061474e565b60405180910390f35b34801561099157600080fd5b5061099a6120d0565b6040516109a7919061460e565b60405180910390f35b3480156109bc57600080fd5b506109c5612162565b6040516109d29190614671565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd91906146f3565b612188565b604051610a0f919061474e565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a91906146f3565b612255565b604051610a4c919061474e565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614795565b612274565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190614983565b6123f6565b005b348015610ab357600080fd5b50610ace6004803603810190610ac99190614795565b6124cf565b005b348015610adc57600080fd5b50610af76004803603810190610af291906149b0565b61261e565b005b348015610b0557600080fd5b50610b0e612702565b604051610b1b9190614671565b60405180910390f35b348015610b3057600080fd5b50610b4b6004803603810190610b469190614983565b612728565b604051610b58919061474e565b60405180910390f35b348015610b6d57600080fd5b50610b886004803603810190610b839190614983565b612748565b005b348015610b9657600080fd5b50610bb16004803603810190610bac9190614a1b565b612821565b005b348015610bbf57600080fd5b50610bc861293a565b604051610bd5919061485e565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c009190614a6e565b612940565b604051610c12919061485e565b60405180910390f35b348015610c2757600080fd5b50610c306129c7565b005b348015610c3e57600080fd5b50610c596004803603810190610c5491906149b0565b612b0b565b005b348015610c6757600080fd5b50610c826004803603810190610c7d91906149b0565b612bbd565b005b348015610c9057600080fd5b50610cab6004803603810190610ca69190614983565b612c6f565b005b348015610cb957600080fd5b50610cc2612e30565b604051610ccf919061474e565b60405180910390f35b348015610ce457600080fd5b50610cff6004803603810190610cfa9190614983565b612e43565b005b606060018054610d1090614add565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c90614add565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b600081565b6000610dac610da561303e565b8484613046565b6001905092915050565b610dbe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290614b5a565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490614bc6565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b610f7061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490614b5a565b60405180910390fd5b82600f81905550816010819055508060118190555061103d60115461102f601054600f54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601381905550505050565b61105061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490614b5a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006111aa84848461320f565b5061126c846111b761303e565b611267856040518060600160405280602881526020016156fa60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061121d61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b600190509392505050565b61127f61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390614b5a565b60405180910390fd5b82600c8190555081600d8190555080600e8190555061134c600e5461133e600d54600c54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601281905550505050565b61dead81565b600061139961136c6000611e49565b61138b61137a61dead611e49565b60145461392990919063ffffffff16565b61392990919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601860029054906101000a900460ff1681565b6113d061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490614b5a565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690614bc6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f361155761303e565b846115ee856007600061156861303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b613046565b6001905092915050565b61160561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614b5a565b60405180910390fd5b8060158190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116c461303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890614b5a565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b601960159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117ab61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90614b5a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119379190614bfb565b6040518363ffffffff1660e01b8152600401611954929190614c28565b602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190614bfb565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190614bfb565b6040518363ffffffff1660e01b8152600401611ae2929190614c28565b6020604051808303816000875af1158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190614bfb565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cac61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090614b5a565b60405180910390fd5b8060168190555050565b601860009054906101000a900460ff1681565b611d5e61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614b5a565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e9a61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614b5a565b60405180910390fd5b8060178190555050565b611f3961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90614b5a565b60405180910390fd5b6000601860016101000a81548160ff0219169083151502179055506000601860006101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060600280546120df90614add565b80601f016020809104026020016040519081016040528092919081815260200182805461210b90614add565b80156121585780601f1061212d57610100808354040283529160200191612158565b820191906000526020600020905b81548152906001019060200180831161213b57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061224b61219561303e565b846122468560405180606001604052806025815260200161572260259139600760006121bf61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b6001905092915050565b600061226961226261303e565b848461320f565b506001905092915050565b61227c61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614b5a565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290614bc6565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123fe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290614b5a565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124d761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90614b5a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561261a576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a590614c9d565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f7919061474e565b60405180910390a150565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61275061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d490614b5a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61282961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad90614b5a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016128f1929190614cbd565b6020604051808303816000875af1158015612910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129349190614cfb565b50505050565b60155481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129cf61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614b5a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a8290614d59565b60006040518083038185875af1925050503d8060008114612abf576040519150601f19603f3d011682016040523d82523d6000602084013e612ac4565b606091505b5050905080612b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aff90614dba565b60405180910390fd5b50565b612b1361303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9790614b5a565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b612bc561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614b5a565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b612c7761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614b5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614e4c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860019054906101000a900460ff1681565b612e4b61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf90614b5a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612f2e5760009050612f90565b60008284612f3c9190614e9b565b9050828482612f4b9190614f0c565b14612f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8290614faf565b60405180910390fd5b809150505b92915050565b6000612fd883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613973565b905092915050565b6000808284612fef9190614fcf565b905083811015613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302b9061504f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ac906150e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311b90615173565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613202919061485e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361327f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613276906151df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59061524b565b60405180910390fd5b60008211613331576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613328906152b7565b60405180910390fd5b601860029054906101000a900460ff1661342657600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806133e65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341c90615323565b60405180910390fd5b5b601960149054906101000a900460ff161561344d576134468484846139d6565b90506138be565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134f15750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135095750601860009054906101000a900460ff165b1561355457601654821115613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a9061538f565b60405180910390fd5b5b600061355f30611e49565b9050600060155482101590508080156135855750601960149054906101000a900460ff16155b80156135db5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135f35750601960159054906101000a900460ff165b1561360157613600613ba9565b5b61368a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006136d98787613e27565b6136ed576136e8878787613f92565b6136ef565b845b9050601860019054906101000a900460ff1680156137575750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137bc5760175461377a8261376c89611e49565b612fe090919063ffffffff16565b11156137bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b2906153fb565b60405180910390fd5b5b61380e81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ae919061485e565b60405180910390a3600193505050505b9392505050565b600083831115829061390d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613904919061460e565b60405180910390fd5b506000838561391c919061541b565b9050809150509392505050565b600061396b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506138c5565b905092915050565b600080831182906139ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139b1919061460e565b60405180910390fd5b50600083856139c99190614f0c565b9050809150509392505050565b6000613a61826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b96919061485e565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613bcf30611e49565b905060008103613bdf5750613e0a565b6000613bf8600f54600c54612fe090919063ffffffff16565b90506000613c13601054600d54612fe090919063ffffffff16565b90506000613c2e601354601254612fe090919063ffffffff16565b905060008103613c415750505050613e0a565b6000613c7b6002613c6d84613c5f888a612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613c92828761392990919063ffffffff16565b90506000479050613ca2826141b7565b6000613cb7824761392990919063ffffffff16565b90506000613ce1613cd260028a612f9690919063ffffffff16565b8761392990919063ffffffff16565b90506000613d1d6002613d0f84613d018d88612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613d4683613d388b87612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90506000613d6f82613d61858861392990919063ffffffff16565b61392990919063ffffffff16565b90506000821115613da757613da6600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614433565b5b6000811115613ddd57613ddc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614433565b5b600083118015613ded5750600088115b15613dfd57613dfc888461447e565b5b5050505050505050505050505b6000601960146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613eca5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613ed85760019050613f8c565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613f795750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f875760009050613f8c565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614017576140106103e861400260125486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b9050614096565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614095576140926103e861408460135486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90505b5b600081111561419a576140f181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614191919061485e565b60405180910390a35b6141ad818461392990919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156141d4576141d361544f565b5b6040519080825280602002602001820160405280156142025781602001602082028036833780820191505090505b509050308160008151811061421a5761421961547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e59190614bfb565b816001815181106142f9576142f861547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061436030601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016143c49594939291906155a6565b600060405180830381600087803b1580156143de57600080fd5b505af11580156143f2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614427929190615600565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614479573d6000803e3d6000fd5b505050565b6144ab30601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161453496959493929190615630565b60606040518083038185885af1158015614552573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061457791906156a6565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156145b857808201518184015260208101905061459d565b60008484015250505050565b6000601f19601f8301169050919050565b60006145e08261457e565b6145ea8185614589565b93506145fa81856020860161459a565b614603816145c4565b840191505092915050565b6000602082019050818103600083015261462881846145d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061465b82614630565b9050919050565b61466b81614650565b82525050565b60006020820190506146866000830184614662565b92915050565b600080fd5b61469a81614650565b81146146a557600080fd5b50565b6000813590506146b781614691565b92915050565b6000819050919050565b6146d0816146bd565b81146146db57600080fd5b50565b6000813590506146ed816146c7565b92915050565b6000806040838503121561470a5761470961468c565b5b6000614718858286016146a8565b9250506020614729858286016146de565b9150509250929050565b60008115159050919050565b61474881614733565b82525050565b6000602082019050614763600083018461473f565b92915050565b61477281614733565b811461477d57600080fd5b50565b60008135905061478f81614769565b92915050565b600080604083850312156147ac576147ab61468c565b5b60006147ba858286016146a8565b92505060206147cb85828601614780565b9150509250929050565b6000819050919050565b60006147fa6147f56147f084614630565b6147d5565b614630565b9050919050565b600061480c826147df565b9050919050565b600061481e82614801565b9050919050565b61482e81614813565b82525050565b60006020820190506148496000830184614825565b92915050565b614858816146bd565b82525050565b6000602082019050614873600083018461484f565b92915050565b6000806000606084860312156148925761489161468c565b5b60006148a0868287016146de565b93505060206148b1868287016146de565b92505060406148c2868287016146de565b9150509250925092565b6000806000606084860312156148e5576148e461468c565b5b60006148f3868287016146a8565b9350506020614904868287016146a8565b9250506040614915868287016146de565b9150509250925092565b600060ff82169050919050565b6149358161491f565b82525050565b6000602082019050614950600083018461492c565b92915050565b60006020828403121561496c5761496b61468c565b5b600061497a848285016146de565b91505092915050565b6000602082840312156149995761499861468c565b5b60006149a7848285016146a8565b91505092915050565b6000602082840312156149c6576149c561468c565b5b60006149d484828501614780565b91505092915050565b60006149e882614650565b9050919050565b6149f8816149dd565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b600080600060608486031215614a3457614a3361468c565b5b6000614a4286828701614a06565b9350506020614a53868287016146a8565b9250506040614a64868287016146de565b9150509250925092565b60008060408385031215614a8557614a8461468c565b5b6000614a93858286016146a8565b9250506020614aa4858286016146a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614af557607f821691505b602082108103614b0857614b07614aae565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614b44602083614589565b9150614b4f82614b0e565b602082019050919050565b60006020820190508181036000830152614b7381614b37565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b6000614bb0600d83614589565b9150614bbb82614b7a565b602082019050919050565b60006020820190508181036000830152614bdf81614ba3565b9050919050565b600081519050614bf581614691565b92915050565b600060208284031215614c1157614c1061468c565b5b6000614c1f84828501614be6565b91505092915050565b6000604082019050614c3d6000830185614662565b614c4a6020830184614662565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865204465760000600082015250565b6000614c87601e83614589565b9150614c9282614c51565b602082019050919050565b60006020820190508181036000830152614cb681614c7a565b9050919050565b6000604082019050614cd26000830185614662565b614cdf602083018461484f565b9392505050565b600081519050614cf581614769565b92915050565b600060208284031215614d1157614d1061468c565b5b6000614d1f84828501614ce6565b91505092915050565b600081905092915050565b50565b6000614d43600083614d28565b9150614d4e82614d33565b600082019050919050565b6000614d6482614d36565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614da4601483614589565b9150614daf82614d6e565b602082019050919050565b60006020820190508181036000830152614dd381614d97565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e36602683614589565b9150614e4182614dda565b604082019050919050565b60006020820190508181036000830152614e6581614e29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ea6826146bd565b9150614eb1836146bd565b9250828202614ebf816146bd565b91508282048414831517614ed657614ed5614e6c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f17826146bd565b9150614f22836146bd565b925082614f3257614f31614edd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f99602183614589565b9150614fa482614f3d565b604082019050919050565b60006020820190508181036000830152614fc881614f8c565b9050919050565b6000614fda826146bd565b9150614fe5836146bd565b9250828201905080821115614ffd57614ffc614e6c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615039601b83614589565b915061504482615003565b602082019050919050565b600060208201905081810360008301526150688161502c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150cb602483614589565b91506150d68261506f565b604082019050919050565b600060208201905081810360008301526150fa816150be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061515d602283614589565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b60006151c9600f83614589565b91506151d482615193565b602082019050919050565b600060208201905081810360008301526151f8816151bc565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000615235600d83614589565b9150615240826151ff565b602082019050919050565b6000602082019050818103600083015261526481615228565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006152a1600e83614589565b91506152ac8261526b565b602082019050919050565b600060208201905081810360008301526152d081615294565b9050919050565b7f54726164696e6720697320506175736564210000000000000000000000000000600082015250565b600061530d601283614589565b9150615318826152d7565b602082019050919050565b6000602082019050818103600083015261533c81615300565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b6000615379600683614589565b915061538482615343565b602082019050919050565b600060208201905081810360008301526153a88161536c565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006153e5600a83614589565b91506153f0826153af565b602082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b6000615426826146bd565b9150615431836146bd565b925082820390508181111561544957615448614e6c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006154d26154cd6154c8846154ad565b6147d5565b6146bd565b9050919050565b6154e2816154b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61551d81614650565b82525050565b600061552f8383615514565b60208301905092915050565b6000602082019050919050565b6000615553826154e8565b61555d81856154f3565b935061556883615504565b8060005b838110156155995781516155808882615523565b975061558b8361553b565b92505060018101905061556c565b5085935050505092915050565b600060a0820190506155bb600083018861484f565b6155c860208301876154d9565b81810360408301526155da8186615548565b90506155e96060830185614662565b6155f6608083018461484f565b9695505050505050565b6000604082019050615615600083018561484f565b81810360208301526156278184615548565b90509392505050565b600060c0820190506156456000830189614662565b615652602083018861484f565b61565f60408301876154d9565b61566c60608301866154d9565b6156796080830185614662565b61568660a083018461484f565b979650505050505050565b6000815190506156a0816146c7565b92915050565b6000806000606084860312156156bf576156be61468c565b5b60006156cd86828701615691565b93505060206156de86828701615691565b92505060406156ef86828701615691565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fec96ca6a3f92a62acce175364200aa02f83d5415db2b96e40565e0eb1c20e0964736f6c63430008120033
Deployed Bytecode Sourcemap
4544:16286:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8271:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5054:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9441:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19068:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6242:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8548:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17978:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3047:231;;;;;;;;;;;;;:::i;:::-;;10392:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17684:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4967:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9959:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8457:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6202:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18860:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8938:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19264:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5331:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17318:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6357:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5274:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20016:809;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19510:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6121:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17557:119;;;;;;;;;;;;;:::i;:::-;;4846:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8656:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19396:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17431:118;;;;;;;;;;;;;:::i;:::-;;4764:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5955:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6039:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5442:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2722:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2947:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8362:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4926:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9164:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10217:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18657:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18283:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19798:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19619:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6290:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5383:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18534:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16968:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5883:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8787:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16750:178;;;;;;;;;;;;;:::i;:::-;;17212:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17108:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3286:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6160:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18406:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8271:83;8308:13;8341:5;8334:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8271:83;:::o;5054:80::-;5092:42;5054:80;:::o;9441:161::-;9516:4;9533:39;9542:12;:10;:12::i;:::-;9556:7;9565:6;9533:8;:39::i;:::-;9590:4;9583:11;;9441:161;;;;:::o;19068:188::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19182:7:::1;19157:32;;:15;:21;19173:4;19157:21;;;;;;;;;;;;;;;;;;;;;;;;;:32;;::::0;19149:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19241:7;19217:15;:21;19233:4;19217:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19068:188:::0;;:::o;6242:41::-;;;;;;;;;;;;;:::o;8548:100::-;8601:7;8628:12;;8621:19;;8548:100;:::o;17978:297::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18101:6:::1;18081:17;:26;;;;18138:10;18118:17;:30;;;;18177:6;18159:15;:24;;;;18206:61;18251:15;;18206:40;18228:17;;18206;;:21;;:40;;;;:::i;:::-;:44;;:61;;;;:::i;:::-;18194:9;:73;;;;17978:297:::0;;;:::o;3047:231::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3155:42:::1;3118:81;;3139:6;::::0;::::1;;;;;;;;3118:81;;;;;;;;;;;;3227:42;3210:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3047:231::o:0;10392:313::-;10490:4;10507:36;10517:6;10525:9;10536:6;10507:9;:36::i;:::-;;10554:121;10563:6;10571:12;:10;:12::i;:::-;10585:89;10623:6;10585:89;;;;;;;;;;;;;;;;;:11;:19;10597:6;10585:19;;;;;;;;;;;;;;;:33;10605:12;:10;:12::i;:::-;10585:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10554:8;:121::i;:::-;10693:4;10686:11;;10392:313;;;;;:::o;17684:286::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17802:6:::1;17783:16;:25;;;;17838:10;17819:16;:29;;;;17876:6;17859:14;:23;;;;17904:58;17947:14;;17904:38;17925:16;;17904;;:20;;:38;;;;:::i;:::-;:42;;:58;;;;:::i;:::-;17893:8;:69;;;;17684:286:::0;;;:::o;4967:80::-;5005:42;4967:80;:::o;9959:156::-;10012:7;10039:68;10084:22;5092:42;10084:9;:22::i;:::-;10039:40;10056:22;5005:42;10056:9;:22::i;:::-;10039:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;10032:75;;9959:156;:::o;8457:83::-;8498:5;8523:9;;;;;;;;;;;8516:16;;8457:83;:::o;6202:31::-;;;;;;;;;;;;;:::o;18860:200::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18982:7:::1;18953:36;;:19;:25;18973:4;18953:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;::::0;18945:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19045:7;19017:19;:25;19037:4;19017:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18860:200:::0;;:::o;8938:218::-;9026:4;9043:83;9052:12;:10;:12::i;:::-;9066:7;9075:50;9114:10;9075:11;:25;9087:12;:10;:12::i;:::-;9075:25;;;;;;;;;;;;;;;:34;9101:7;9075:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9043:8;:83::i;:::-;9144:4;9137:11;;8938:218;;;;:::o;19264:124::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19372:8:::1;19346:23;:34;;;;19264:124:::0;:::o;5331:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17318:105::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17408:7:::1;17389:16;;:26;;;;;;;;;;;;;;;;;;17318:105:::0;:::o;6357:40::-;;;;;;;;;;;;;:::o;5274:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;20016:809::-;20098:22;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20135:35:::1;20192:16;20135:74;;20258:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20240:53;;;20302:4;20309:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20240:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20223:110;;20375:1;20349:28;;:14;:28;;::::0;20346:225:::1;;20463:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20445:74;;;20528:4;20535:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20445:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20428:131;;20346:225;20597:14;20583:11;;:28;;;;;;;;;;;;;;;;;;20663:16;20645:15;;:34;;;;;;;;;;;;;;;;;;20754:4;20717:12;:34;20738:11;;;;;;;;;;;20717:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20813:4;20769:19;:41;20797:11;;;;;;;;;;;20769:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;20122:703;20016:809:::0;;;:::o;19510:101::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19595:8:::1;19580:12;:23;;;;19510:101:::0;:::o;6121:32::-;;;;;;;;;;;;;:::o;17557:119::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17630:4:::1;17611:16;;:23;;;;;;;;;;;;;;;;;;17661:4;17645:13;;:20;;;;;;;;;;;;;;;;;;17557:119::o:0;4846:73::-;;;;;;;;;;;;;:::o;8656:123::-;8722:7;8748:9;:18;8758:7;8748:18;;;;;;;;;;;;;;;;8741:25;;8656:123;;;:::o;19396:106::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19486:8:::1;19473:10;:21;;;;19396:106:::0;:::o;17431:118::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17504:5:::1;17485:16;;:24;;;;;;;;;;;;;;;;;;17536:5;17520:13;;:21;;;;;;;;;;;;;;;;;;17431:118::o:0;4764:75::-;;;;;;;;;;;;;:::o;5955:68::-;;;;:::o;6039:65::-;;;;:::o;5442:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2722:79::-;2760:7;2787:6;;;;;;;;;;;2780:13;;2722:79;:::o;2947:92::-;2987:4;3025:6;;;;;;;;;;;3011:20;;:10;:20;;;3004:27;;2947:92;:::o;8362:87::-;8401:13;8434:7;8427:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8362:87;:::o;4926:32::-;;;;;;;;;;;;;:::o;9164:269::-;9257:4;9274:129;9283:12;:10;:12::i;:::-;9297:7;9306:96;9345:15;9306:96;;;;;;;;;;;;;;;;;:11;:25;9318:12;:10;:12::i;:::-;9306:25;;;;;;;;;;;;;;;:34;9332:7;9306:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9274:8;:129::i;:::-;9421:4;9414:11;;9164:269;;;;:::o;10217:167::-;10295:4;10312:42;10322:12;:10;:12::i;:::-;10336:9;10347:6;10312:9;:42::i;:::-;;10372:4;10365:11;;10217:167;;;;:::o;18657:195::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18776:7:::1;18749:34;;:17;:23;18767:4;18749:23;;;;;;;;;;;;;;;;;;;;;;;;;:34;;::::0;18741:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18837:7;18811:17;:23;18829:4;18811:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18657:195:::0;;:::o;18283:115::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18380:10:::1;18362:15;;:28;;;;;;;;;;;;;;;;;;18283:115:::0;:::o;19798:210::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19902:7:::1;19880:12;:19;19893:5;19880:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19923:7;19920:81;;;19985:4;19947:19;:35;19975:5;19947:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19920:81;19798:210:::0;;:::o;19619:171::-;6652:17;;;;;;;;;;;6638:31;;:10;:31;;;6630:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19720:8:::1;19696:21;;:32;;;;;;;;;;;;;;;;;;19744:38;19773:8;19744:38;;;;;;:::i;:::-;;;;;;;;19619:171:::0;:::o;6290:26::-;;;;;;;;;;;;;:::o;5383:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18534:111::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18627:10:::1;18611:13;;:26;;;;;;;;;;;;;;;;;;18534:111:::0;:::o;16968:132::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17062:3:::1;:12;;;17075:9;17085:6;17062:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16968:132:::0;;;:::o;5883:63::-;;;;:::o;8787:143::-;8868:7;8895:11;:18;8907:5;8895:18;;;;;;;;;;;;;;;:27;8914:7;8895:27;;;;;;;;;;;;;;;;8888:34;;8787:143;;;;:::o;16750:178::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16805:7:::1;16825:10;16817:24;;16849:21;16817:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16804:71;;;16894:2;16886:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;16792:136;16750:178::o:0;17212:98::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17295:7:::1;17279:13;;:23;;;;;;;;;;;;;;;;;;17212:98:::0;:::o;17108:96::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17189:7:::1;17175:11;;:21;;;;;;;;;;;;;;;;;;17108:96:::0;:::o;3286:244::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3395:1:::1;3375:22;;:8;:22;;::::0;3367:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3485:8;3456:38;;3477:6;::::0;::::1;;;;;;;;3456:38;;;;;;;;;;;;3514:8;3505:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3286:244:::0;:::o;6160:35::-;;;;;;;;;;;;;:::o;18406:117::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18505:10:::1;18485:17;;:30;;;;;;;;;;;;;;;;;;18406:117:::0;:::o;1715:250::-;1773:7;1802:1;1797;:6;1793:47;;1827:1;1820:8;;;;1793:47;1852:9;1868:1;1864;:5;;;;:::i;:::-;1852:17;;1897:1;1892;1888;:5;;;;:::i;:::-;:10;1880:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1956:1;1949:8;;;1715:250;;;;;:::o;1973:132::-;2031:7;2058:39;2062:1;2065;2058:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2051:46;;1973:132;;;;:::o;1182:181::-;1240:7;1260:9;1276:1;1272;:5;;;;:::i;:::-;1260:17;;1301:1;1296;:6;;1288:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1354:1;1347:8;;;1182:181;;;;:::o;230:115::-;283:15;326:10;311:26;;230:115;:::o;9610:337::-;9720:1;9703:19;;:5;:19;;;9695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9801:1;9782:21;;:7;:21;;;9774:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9885:6;9855:11;:18;9867:5;9855:18;;;;;;;;;;;;;;;:27;9874:7;9855:27;;;;;;;;;;;;;;;:36;;;;9923:7;9907:32;;9916:5;9907:32;;;9932:6;9907:32;;;;;;:::i;:::-;;;;;;;;9610:337;;;:::o;10713:1645::-;10800:4;10845:1;10827:20;;:6;:20;;;10819:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10907:1;10886:23;;:9;:23;;;10878:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10955:1;10946:6;:10;10938:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;10992:11;;;;;;;;;;;10988:130;;11027:17;:25;11045:6;11027:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;11056:17;:28;11074:9;11056:28;;;;;;;;;;;;;;;;;;;;;;;;;11027:57;11019:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10988:130;11133:16;;;;;;;;;;;11130:1221;;;11183:41;11198:6;11206:9;11217:6;11183:14;:41::i;:::-;11176:48;;;;11130:1221;11282:15;:23;11298:6;11282:23;;;;;;;;;;;;;;;;;;;;;;;;;11281:24;:55;;;;;11310:15;:26;11326:9;11310:26;;;;;;;;;;;;;;;;;;;;;;;;;11309:27;11281:55;:72;;;;;11340:13;;;;;;;;;;;11281:72;11278:152;;;11392:12;;11382:6;:22;;11374:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;11278:152;11447:28;11478:24;11496:4;11478:9;:24::i;:::-;11447:55;;11517:28;11572:23;;11548:20;:47;;11517:78;;11628:23;:44;;;;;11656:16;;;;;;;;;;;11655:17;11628:44;:69;;;;;11677:12;:20;11690:6;11677:20;;;;;;;;;;;;;;;;;;;;;;;;;11676:21;11628:69;:94;;;;;11701:21;;;;;;;;;;;11628:94;11624:165;;;11757:16;:14;:16::i;:::-;11624:165;11825:53;11847:6;11825:53;;;;;;;;;;;;;;;;;:9;:17;11835:6;11825:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11805:9;:17;11815:6;11805:17;;;;;;;;;;;;;;;:73;;;;11895:19;11917:31;11931:6;11938:9;11917:13;:31::i;:::-;:77;;11960:34;11968:6;11976:9;11987:6;11960:7;:34::i;:::-;11917:77;;;11951:6;11917:77;11895:99;;12014:16;;;;;;;;;;;:51;;;;;12035:19;:30;12055:9;12035:30;;;;;;;;;;;;;;;;;;;;;;;;;12034:31;12014:51;12011:164;;;12135:10;;12094:37;12119:11;12094:20;12104:9;12094;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;12086:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12011:164;12214:37;12239:11;12214:9;:20;12224:9;12214:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;12191:9;:20;12201:9;12191:20;;;;;;;;;;;;;;;:60;;;;12290:9;12273:40;;12282:6;12273:40;;;12301:11;12273:40;;;;;;:::i;:::-;;;;;;;;12335:4;12328:11;;;;;10713:1645;;;;;;:::o;1515:192::-;1601:7;1634:1;1629;:6;;1637:12;1621:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1661:9;1677:1;1673;:5;;;;:::i;:::-;1661:17;;1698:1;1691:8;;;1515:192;;;;;:::o;1371:136::-;1429:7;1456:43;1460:1;1463;1456:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1449:50;;1371:136;;;;:::o;2113:278::-;2199:7;2231:1;2227;:5;2234:12;2219:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2258:9;2274:1;2270;:5;;;;:::i;:::-;2258:17;;2382:1;2375:8;;;2113:278;;;;;:::o;12366:330::-;12459:4;12496:53;12518:6;12496:53;;;;;;;;;;;;;;;;;:9;:17;12506:6;12496:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12476:9;:17;12486:6;12476:17;;;;;;;;;;;;;;;:73;;;;12583:32;12608:6;12583:9;:20;12593:9;12583:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12560:9;:20;12570:9;12560:20;;;;;;;;;;;;;;;:55;;;;12648:9;12631:35;;12640:6;12631:35;;;12659:6;12631:35;;;;;;:::i;:::-;;;;;;;;12684:4;12677:11;;12366:330;;;;;:::o;12704:1529::-;6878:4;6859:16;;:23;;;;;;;;;;;;;;;;;;12771::::1;12797:24;12815:4;12797:9;:24::i;:::-;12771:50;;12856:1;12837:15;:20:::0;12834:32:::1;;12859:7;;;12834:32;12878:23;12904:39;12925:17;;12904:16;;:20;;:39;;;;:::i;:::-;12878:65;;12954:23;12980:39;13001:17;;12980:16;;:20;;:39;;;;:::i;:::-;12954:65;;13105:16;13124:23;13137:9;;13124:8;;:12;;:23;;;;:::i;:::-;13105:42;;13176:1;13161:11;:16:::0;13158:28:::1;;13179:7;;;;;;13158:28;13198:19;13220:60;13278:1;13220:53;13261:11;13220:36;13240:15;13220;:19;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;13198:82;;13291:21;13315:32;13335:11;13315:15;:19;;:32;;;;:::i;:::-;13291:56;;13360:22;13385:21;13360:46;;13417:31;13434:13;13417:16;:31::i;:::-;13459:22;13484:41;13510:14;13484:21;:25;;:41;;;;:::i;:::-;13459:66;;13538:19;13560:39;13576:22;13596:1;13576:15;:19;;:22;;;;:::i;:::-;13560:11;:15;;:39;;;;:::i;:::-;13538:61;;13612:26;13641:59;13698:1;13641:52;13681:11;13641:35;13660:15;13641:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;13612:88;;13711:26;13740:52;13780:11;13740:35;13759:15;13740:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;13711:81;;13803:24;13830:62;13873:18;13830:38;13849:18;13830:14;:18;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;13803:89;;13929:1;13908:18;:22;13905:97;;;13946:56;13967:15;;;;;;;;;;;13983:18;13946:20;:56::i;:::-;13905:97;14037:1;14018:16;:20;14015:91;;;14054:52;14075:13;;;;;;;;;;;14089:16;14054:20;:52::i;:::-;14015:91;14143:1;14122:18;:22;:41;;;;;14162:1;14148:11;:15;14122:41;14119:104;;;14178:45;14191:11;14204:18;14178:12;:45::i;:::-;14119:104;12750:1483;;;;;;;;;;;;6893:1;6924:5:::0;6905:16;;:24;;;;;;;;;;;;;;;;;;12704:1529::o;15585:366::-;15666:4;15686:17;:25;15704:6;15686:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15715:17;:28;15733:9;15715:28;;;;;;;;;;;;;;;;;;;;;;;;;15686:57;15683:261;;;15767:4;15760:11;;;;15683:261;15802:12;:20;15815:6;15802:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15826:12;:23;15839:9;15826:23;;;;;;;;;;;;;;;;;;;;;;;;;15802:47;15798:146;;;15873:5;15866:12;;;;15798:146;15927:5;15920:12;;15585:366;;;;;:::o;15959:750::-;16045:7;16075:14;16140:12;:20;16153:6;16140:20;;;;;;;;;;;;;;;;;;;;;;;;;16137:293;;;16195:37;5800:4;16195:20;16206:8;;16195:6;:10;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;16183:49;;16137:293;;;16284:12;:23;16297:9;16284:23;;;;;;;;;;;;;;;;;;;;;;;;;16281:149;;;16358:38;5800:4;16358:21;16369:9;;16358:6;:10;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16346:50;;16281:149;16137:293;16466:1;16454:9;:13;16451:185;;;16515:39;16544:9;16515;:24;16533:4;16515:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16488:9;:24;16506:4;16488:24;;;;;;;;;;;;;;;:66;;;;16603:4;16578:42;;16587:6;16578:42;;;16610:9;16578:42;;;;;;:::i;:::-;;;;;;;;16451:185;16659:21;16670:9;16659:6;:10;;:21;;;;:::i;:::-;16652:28;;;15959:750;;;;;:::o;14380:666::-;14506:21;14544:1;14530:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14506:40;;14575:4;14557;14562:1;14557:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14601:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14591:4;14596:1;14591:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;14636:62;14653:4;14668:15;;;;;;;;;;;14686:11;14636:8;:62::i;:::-;14737:15;;;;;;;;;;;:66;;;14818:11;14844:1;14888:4;14915;14951:15;14737:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15003:35;15020:11;15033:4;15003:35;;;;;;;:::i;:::-;;;;;;;;14435:611;14380:666;:::o;14241:127::-;14333:9;14325:27;;:35;14353:6;14325:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14241:127;;:::o;15054:523::-;15202:62;15219:4;15234:15;;;;;;;;;;;15252:11;15202:8;:62::i;:::-;15307:15;;;;;;;;;;;:31;;;15346:9;15379:4;15399:11;15425:1;15468;15511:17;;;;;;;;;;;15543:15;15307:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15054:523;;:::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;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:468::-;4124:6;4132;4181:2;4169:9;4160:7;4156:23;4152:32;4149:119;;;4187:79;;:::i;:::-;4149:119;4307:1;4332:53;4377:7;4368:6;4357:9;4353:22;4332:53;:::i;:::-;4322:63;;4278:117;4434:2;4460:50;4502:7;4493:6;4482:9;4478:22;4460:50;:::i;:::-;4450:60;;4405:115;4059:468;;;;;:::o;4533:60::-;4561:3;4582:5;4575:12;;4533:60;;;:::o;4599:142::-;4649:9;4682:53;4700:34;4709:24;4727:5;4709:24;:::i;:::-;4700:34;:::i;:::-;4682:53;:::i;:::-;4669:66;;4599:142;;;:::o;4747:126::-;4797:9;4830:37;4861:5;4830:37;:::i;:::-;4817:50;;4747:126;;;:::o;4879:152::-;4955:9;4988:37;5019:5;4988:37;:::i;:::-;4975:50;;4879:152;;;:::o;5037:183::-;5150:63;5207:5;5150:63;:::i;:::-;5145:3;5138:76;5037:183;;:::o;5226:274::-;5345:4;5383:2;5372:9;5368:18;5360:26;;5396:97;5490:1;5479:9;5475:17;5466:6;5396:97;:::i;:::-;5226:274;;;;:::o;5506:118::-;5593:24;5611:5;5593:24;:::i;:::-;5588:3;5581:37;5506:118;;:::o;5630:222::-;5723:4;5761:2;5750:9;5746:18;5738:26;;5774:71;5842:1;5831:9;5827:17;5818:6;5774:71;:::i;:::-;5630:222;;;;:::o;5858:619::-;5935:6;5943;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;6381:2;6407:53;6452:7;6443:6;6432:9;6428:22;6407:53;:::i;:::-;6397:63;;6352:118;5858:619;;;;;:::o;6483:::-;6560:6;6568;6576;6625:2;6613:9;6604:7;6600:23;6596:32;6593:119;;;6631:79;;:::i;:::-;6593:119;6751:1;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;:::i;:::-;6766:63;;6722:117;6878:2;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6849:118;7006:2;7032:53;7077:7;7068:6;7057:9;7053:22;7032:53;:::i;:::-;7022:63;;6977:118;6483:619;;;;;:::o;7108:86::-;7143:7;7183:4;7176:5;7172:16;7161:27;;7108:86;;;:::o;7200:112::-;7283:22;7299:5;7283:22;:::i;:::-;7278:3;7271:35;7200:112;;:::o;7318:214::-;7407:4;7445:2;7434:9;7430:18;7422:26;;7458:67;7522:1;7511:9;7507:17;7498:6;7458:67;:::i;:::-;7318:214;;;;:::o;7538:329::-;7597:6;7646:2;7634:9;7625:7;7621:23;7617:32;7614:119;;;7652:79;;:::i;:::-;7614:119;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7538:329;;;;:::o;7873:::-;7932:6;7981:2;7969:9;7960:7;7956:23;7952:32;7949:119;;;7987:79;;:::i;:::-;7949:119;8107:1;8132:53;8177:7;8168:6;8157:9;8153:22;8132:53;:::i;:::-;8122:63;;8078:117;7873:329;;;;:::o;8208:323::-;8264:6;8313:2;8301:9;8292:7;8288:23;8284:32;8281:119;;;8319:79;;:::i;:::-;8281:119;8439:1;8464:50;8506:7;8497:6;8486:9;8482:22;8464:50;:::i;:::-;8454:60;;8410:114;8208:323;;;;:::o;8537:109::-;8587:7;8616:24;8634:5;8616:24;:::i;:::-;8605:35;;8537:109;;;:::o;8652:148::-;8738:37;8769:5;8738:37;:::i;:::-;8731:5;8728:48;8718:76;;8790:1;8787;8780:12;8718:76;8652:148;:::o;8806:165::-;8865:5;8903:6;8890:20;8881:29;;8919:46;8959:5;8919:46;:::i;:::-;8806:165;;;;:::o;8977:645::-;9067:6;9075;9083;9132:2;9120:9;9111:7;9107:23;9103:32;9100:119;;;9138:79;;:::i;:::-;9100:119;9258:1;9283:66;9341:7;9332:6;9321:9;9317:22;9283:66;:::i;:::-;9273:76;;9229:130;9398:2;9424:53;9469:7;9460:6;9449:9;9445:22;9424:53;:::i;:::-;9414:63;;9369:118;9526:2;9552:53;9597:7;9588:6;9577:9;9573:22;9552:53;:::i;:::-;9542:63;;9497:118;8977:645;;;;;:::o;9628:474::-;9696:6;9704;9753:2;9741:9;9732:7;9728:23;9724:32;9721:119;;;9759:79;;:::i;:::-;9721:119;9879:1;9904:53;9949:7;9940:6;9929:9;9925:22;9904:53;:::i;:::-;9894:63;;9850:117;10006:2;10032:53;10077:7;10068:6;10057:9;10053:22;10032:53;:::i;:::-;10022:63;;9977:118;9628:474;;;;;:::o;10108:180::-;10156:77;10153:1;10146:88;10253:4;10250:1;10243:15;10277:4;10274:1;10267:15;10294:320;10338:6;10375:1;10369:4;10365:12;10355:22;;10422:1;10416:4;10412:12;10443:18;10433:81;;10499:4;10491:6;10487:17;10477:27;;10433:81;10561:2;10553:6;10550:14;10530:18;10527:38;10524:84;;10580:18;;:::i;:::-;10524:84;10345:269;10294:320;;;:::o;10620:182::-;10760:34;10756:1;10748:6;10744:14;10737:58;10620:182;:::o;10808:366::-;10950:3;10971:67;11035:2;11030:3;10971:67;:::i;:::-;10964:74;;11047:93;11136:3;11047:93;:::i;:::-;11165:2;11160:3;11156:12;11149:19;;10808:366;;;:::o;11180:419::-;11346:4;11384:2;11373:9;11369:18;11361:26;;11433:9;11427:4;11423:20;11419:1;11408:9;11404:17;11397:47;11461:131;11587:4;11461:131;:::i;:::-;11453:139;;11180:419;;;:::o;11605:163::-;11745:15;11741:1;11733:6;11729:14;11722:39;11605:163;:::o;11774:366::-;11916:3;11937:67;12001:2;11996:3;11937:67;:::i;:::-;11930:74;;12013:93;12102:3;12013:93;:::i;:::-;12131:2;12126:3;12122:12;12115:19;;11774:366;;;:::o;12146:419::-;12312:4;12350:2;12339:9;12335:18;12327:26;;12399:9;12393:4;12389:20;12385:1;12374:9;12370:17;12363:47;12427:131;12553:4;12427:131;:::i;:::-;12419:139;;12146:419;;;:::o;12571:143::-;12628:5;12659:6;12653:13;12644:22;;12675:33;12702:5;12675:33;:::i;:::-;12571:143;;;;:::o;12720:351::-;12790:6;12839:2;12827:9;12818:7;12814:23;12810:32;12807:119;;;12845:79;;:::i;:::-;12807:119;12965:1;12990:64;13046:7;13037:6;13026:9;13022:22;12990:64;:::i;:::-;12980:74;;12936:128;12720:351;;;;:::o;13077:332::-;13198:4;13236:2;13225:9;13221:18;13213:26;;13249:71;13317:1;13306:9;13302:17;13293:6;13249:71;:::i;:::-;13330:72;13398:2;13387:9;13383:18;13374:6;13330:72;:::i;:::-;13077:332;;;;;:::o;13415:180::-;13555:32;13551:1;13543:6;13539:14;13532:56;13415:180;:::o;13601:366::-;13743:3;13764:67;13828:2;13823:3;13764:67;:::i;:::-;13757:74;;13840:93;13929:3;13840:93;:::i;:::-;13958:2;13953:3;13949:12;13942:19;;13601:366;;;:::o;13973:419::-;14139:4;14177:2;14166:9;14162:18;14154:26;;14226:9;14220:4;14216:20;14212:1;14201:9;14197:17;14190:47;14254:131;14380:4;14254:131;:::i;:::-;14246:139;;13973:419;;;:::o;14398:332::-;14519:4;14557:2;14546:9;14542:18;14534:26;;14570:71;14638:1;14627:9;14623:17;14614:6;14570:71;:::i;:::-;14651:72;14719:2;14708:9;14704:18;14695:6;14651:72;:::i;:::-;14398:332;;;;;:::o;14736:137::-;14790:5;14821:6;14815:13;14806:22;;14837:30;14861:5;14837:30;:::i;:::-;14736:137;;;;:::o;14879:345::-;14946:6;14995:2;14983:9;14974:7;14970:23;14966:32;14963:119;;;15001:79;;:::i;:::-;14963:119;15121:1;15146:61;15199:7;15190:6;15179:9;15175:22;15146:61;:::i;:::-;15136:71;;15092:125;14879:345;;;;:::o;15230:147::-;15331:11;15368:3;15353:18;;15230:147;;;;:::o;15383:114::-;;:::o;15503:398::-;15662:3;15683:83;15764:1;15759:3;15683:83;:::i;:::-;15676:90;;15775:93;15864:3;15775:93;:::i;:::-;15893:1;15888:3;15884:11;15877:18;;15503:398;;;:::o;15907:379::-;16091:3;16113:147;16256:3;16113:147;:::i;:::-;16106:154;;16277:3;16270:10;;15907:379;;;:::o;16292:170::-;16432:22;16428:1;16420:6;16416:14;16409:46;16292:170;:::o;16468:366::-;16610:3;16631:67;16695:2;16690:3;16631:67;:::i;:::-;16624:74;;16707:93;16796:3;16707:93;:::i;:::-;16825:2;16820:3;16816:12;16809:19;;16468:366;;;:::o;16840:419::-;17006:4;17044:2;17033:9;17029:18;17021:26;;17093:9;17087:4;17083:20;17079:1;17068:9;17064:17;17057:47;17121:131;17247:4;17121:131;:::i;:::-;17113:139;;16840:419;;;:::o;17265:225::-;17405:34;17401:1;17393:6;17389:14;17382:58;17474:8;17469:2;17461:6;17457:15;17450:33;17265:225;:::o;17496:366::-;17638:3;17659:67;17723:2;17718:3;17659:67;:::i;:::-;17652:74;;17735:93;17824:3;17735:93;:::i;:::-;17853:2;17848:3;17844:12;17837:19;;17496:366;;;:::o;17868:419::-;18034:4;18072:2;18061:9;18057:18;18049:26;;18121:9;18115:4;18111:20;18107:1;18096:9;18092:17;18085:47;18149:131;18275:4;18149:131;:::i;:::-;18141:139;;17868:419;;;:::o;18293:180::-;18341:77;18338:1;18331:88;18438:4;18435:1;18428:15;18462:4;18459:1;18452:15;18479:410;18519:7;18542:20;18560:1;18542:20;:::i;:::-;18537:25;;18576:20;18594:1;18576:20;:::i;:::-;18571:25;;18631:1;18628;18624:9;18653:30;18671:11;18653:30;:::i;:::-;18642:41;;18832:1;18823:7;18819:15;18816:1;18813:22;18793:1;18786:9;18766:83;18743:139;;18862:18;;:::i;:::-;18743:139;18527:362;18479:410;;;;:::o;18895:180::-;18943:77;18940:1;18933:88;19040:4;19037:1;19030:15;19064:4;19061:1;19054:15;19081:185;19121:1;19138:20;19156:1;19138:20;:::i;:::-;19133:25;;19172:20;19190:1;19172:20;:::i;:::-;19167:25;;19211:1;19201:35;;19216:18;;:::i;:::-;19201:35;19258:1;19255;19251:9;19246:14;;19081:185;;;;:::o;19272:220::-;19412:34;19408:1;19400:6;19396:14;19389:58;19481:3;19476:2;19468:6;19464:15;19457:28;19272:220;:::o;19498:366::-;19640:3;19661:67;19725:2;19720:3;19661:67;:::i;:::-;19654:74;;19737:93;19826:3;19737:93;:::i;:::-;19855:2;19850:3;19846:12;19839:19;;19498:366;;;:::o;19870:419::-;20036:4;20074:2;20063:9;20059:18;20051:26;;20123:9;20117:4;20113:20;20109:1;20098:9;20094:17;20087:47;20151:131;20277:4;20151:131;:::i;:::-;20143:139;;19870:419;;;:::o;20295:191::-;20335:3;20354:20;20372:1;20354:20;:::i;:::-;20349:25;;20388:20;20406:1;20388:20;:::i;:::-;20383:25;;20431:1;20428;20424:9;20417:16;;20452:3;20449:1;20446:10;20443:36;;;20459:18;;:::i;:::-;20443:36;20295:191;;;;:::o;20492:177::-;20632:29;20628:1;20620:6;20616:14;20609:53;20492:177;:::o;20675:366::-;20817:3;20838:67;20902:2;20897:3;20838:67;:::i;:::-;20831:74;;20914:93;21003:3;20914:93;:::i;:::-;21032:2;21027:3;21023:12;21016:19;;20675:366;;;:::o;21047:419::-;21213:4;21251:2;21240:9;21236:18;21228:26;;21300:9;21294:4;21290:20;21286:1;21275:9;21271:17;21264:47;21328:131;21454:4;21328:131;:::i;:::-;21320:139;;21047:419;;;:::o;21472:223::-;21612:34;21608:1;21600:6;21596:14;21589:58;21681:6;21676:2;21668:6;21664:15;21657:31;21472:223;:::o;21701:366::-;21843:3;21864:67;21928:2;21923:3;21864:67;:::i;:::-;21857:74;;21940:93;22029:3;21940:93;:::i;:::-;22058:2;22053:3;22049:12;22042:19;;21701:366;;;:::o;22073:419::-;22239:4;22277:2;22266:9;22262:18;22254:26;;22326:9;22320:4;22316:20;22312:1;22301:9;22297:17;22290:47;22354:131;22480:4;22354:131;:::i;:::-;22346:139;;22073:419;;;:::o;22498:221::-;22638:34;22634:1;22626:6;22622:14;22615:58;22707:4;22702:2;22694:6;22690:15;22683:29;22498:221;:::o;22725:366::-;22867:3;22888:67;22952:2;22947:3;22888:67;:::i;:::-;22881:74;;22964:93;23053:3;22964:93;:::i;:::-;23082:2;23077:3;23073:12;23066:19;;22725:366;;;:::o;23097:419::-;23263:4;23301:2;23290:9;23286:18;23278:26;;23350:9;23344:4;23340:20;23336:1;23325:9;23321:17;23314:47;23378:131;23504:4;23378:131;:::i;:::-;23370:139;;23097:419;;;:::o;23522:165::-;23662:17;23658:1;23650:6;23646:14;23639:41;23522:165;:::o;23693:366::-;23835:3;23856:67;23920:2;23915:3;23856:67;:::i;:::-;23849:74;;23932:93;24021:3;23932:93;:::i;:::-;24050:2;24045:3;24041:12;24034:19;;23693:366;;;:::o;24065:419::-;24231:4;24269:2;24258:9;24254:18;24246:26;;24318:9;24312:4;24308:20;24304:1;24293:9;24289:17;24282:47;24346:131;24472:4;24346:131;:::i;:::-;24338:139;;24065:419;;;:::o;24490:163::-;24630:15;24626:1;24618:6;24614:14;24607:39;24490:163;:::o;24659:366::-;24801:3;24822:67;24886:2;24881:3;24822:67;:::i;:::-;24815:74;;24898:93;24987:3;24898:93;:::i;:::-;25016:2;25011:3;25007:12;25000:19;;24659:366;;;:::o;25031:419::-;25197:4;25235:2;25224:9;25220:18;25212:26;;25284:9;25278:4;25274:20;25270:1;25259:9;25255:17;25248:47;25312:131;25438:4;25312:131;:::i;:::-;25304:139;;25031:419;;;:::o;25456:164::-;25596:16;25592:1;25584:6;25580:14;25573:40;25456:164;:::o;25626:366::-;25768:3;25789:67;25853:2;25848:3;25789:67;:::i;:::-;25782:74;;25865:93;25954:3;25865:93;:::i;:::-;25983:2;25978:3;25974:12;25967:19;;25626:366;;;:::o;25998:419::-;26164:4;26202:2;26191:9;26187:18;26179:26;;26251:9;26245:4;26241:20;26237:1;26226:9;26222:17;26215:47;26279:131;26405:4;26279:131;:::i;:::-;26271:139;;25998:419;;;:::o;26423:168::-;26563:20;26559:1;26551:6;26547:14;26540:44;26423:168;:::o;26597:366::-;26739:3;26760:67;26824:2;26819:3;26760:67;:::i;:::-;26753:74;;26836:93;26925:3;26836:93;:::i;:::-;26954:2;26949:3;26945:12;26938:19;;26597:366;;;:::o;26969:419::-;27135:4;27173:2;27162:9;27158:18;27150:26;;27222:9;27216:4;27212:20;27208:1;27197:9;27193:17;27186:47;27250:131;27376:4;27250:131;:::i;:::-;27242:139;;26969:419;;;:::o;27394:156::-;27534:8;27530:1;27522:6;27518:14;27511:32;27394:156;:::o;27556:365::-;27698:3;27719:66;27783:1;27778:3;27719:66;:::i;:::-;27712:73;;27794:93;27883:3;27794:93;:::i;:::-;27912:2;27907:3;27903:12;27896:19;;27556:365;;;:::o;27927:419::-;28093:4;28131:2;28120:9;28116:18;28108:26;;28180:9;28174:4;28170:20;28166:1;28155:9;28151:17;28144:47;28208:131;28334:4;28208:131;:::i;:::-;28200:139;;27927:419;;;:::o;28352:160::-;28492:12;28488:1;28480:6;28476:14;28469:36;28352:160;:::o;28518:366::-;28660:3;28681:67;28745:2;28740:3;28681:67;:::i;:::-;28674:74;;28757:93;28846:3;28757:93;:::i;:::-;28875:2;28870:3;28866:12;28859:19;;28518:366;;;:::o;28890:419::-;29056:4;29094:2;29083:9;29079:18;29071:26;;29143:9;29137:4;29133:20;29129:1;29118:9;29114:17;29107:47;29171:131;29297:4;29171:131;:::i;:::-;29163:139;;28890:419;;;:::o;29315:194::-;29355:4;29375:20;29393:1;29375:20;:::i;:::-;29370:25;;29409:20;29427:1;29409:20;:::i;:::-;29404:25;;29453:1;29450;29446:9;29438:17;;29477:1;29471:4;29468:11;29465:37;;;29482:18;;:::i;:::-;29465:37;29315:194;;;;:::o;29515:180::-;29563:77;29560:1;29553:88;29660:4;29657:1;29650:15;29684:4;29681:1;29674:15;29701:180;29749:77;29746:1;29739:88;29846:4;29843:1;29836:15;29870:4;29867:1;29860:15;29887:85;29932:7;29961:5;29950:16;;29887:85;;;:::o;29978:158::-;30036:9;30069:61;30087:42;30096:32;30122:5;30096:32;:::i;:::-;30087:42;:::i;:::-;30069:61;:::i;:::-;30056:74;;29978:158;;;:::o;30142:147::-;30237:45;30276:5;30237:45;:::i;:::-;30232:3;30225:58;30142:147;;:::o;30295:114::-;30362:6;30396:5;30390:12;30380:22;;30295:114;;;:::o;30415:184::-;30514:11;30548:6;30543:3;30536:19;30588:4;30583:3;30579:14;30564:29;;30415:184;;;;:::o;30605:132::-;30672:4;30695:3;30687:11;;30725:4;30720:3;30716:14;30708:22;;30605:132;;;:::o;30743:108::-;30820:24;30838:5;30820:24;:::i;:::-;30815:3;30808:37;30743:108;;:::o;30857:179::-;30926:10;30947:46;30989:3;30981:6;30947:46;:::i;:::-;31025:4;31020:3;31016:14;31002:28;;30857:179;;;;:::o;31042:113::-;31112:4;31144;31139:3;31135:14;31127:22;;31042:113;;;:::o;31191:732::-;31310:3;31339:54;31387:5;31339:54;:::i;:::-;31409:86;31488:6;31483:3;31409:86;:::i;:::-;31402:93;;31519:56;31569:5;31519:56;:::i;:::-;31598:7;31629:1;31614:284;31639:6;31636:1;31633:13;31614:284;;;31715:6;31709:13;31742:63;31801:3;31786:13;31742:63;:::i;:::-;31735:70;;31828:60;31881:6;31828:60;:::i;:::-;31818:70;;31674:224;31661:1;31658;31654:9;31649:14;;31614:284;;;31618:14;31914:3;31907:10;;31315:608;;;31191:732;;;;:::o;31929:831::-;32192:4;32230:3;32219:9;32215:19;32207:27;;32244:71;32312:1;32301:9;32297:17;32288:6;32244:71;:::i;:::-;32325:80;32401:2;32390:9;32386:18;32377:6;32325:80;:::i;:::-;32452:9;32446:4;32442:20;32437:2;32426:9;32422:18;32415:48;32480:108;32583:4;32574:6;32480:108;:::i;:::-;32472:116;;32598:72;32666:2;32655:9;32651:18;32642:6;32598:72;:::i;:::-;32680:73;32748:3;32737:9;32733:19;32724:6;32680:73;:::i;:::-;31929:831;;;;;;;;:::o;32766:483::-;32937:4;32975:2;32964:9;32960:18;32952:26;;32988:71;33056:1;33045:9;33041:17;33032:6;32988:71;:::i;:::-;33106:9;33100:4;33096:20;33091:2;33080:9;33076:18;33069:48;33134:108;33237:4;33228:6;33134:108;:::i;:::-;33126:116;;32766:483;;;;;:::o;33255:807::-;33504:4;33542:3;33531:9;33527:19;33519:27;;33556:71;33624:1;33613:9;33609:17;33600:6;33556:71;:::i;:::-;33637:72;33705:2;33694:9;33690:18;33681:6;33637:72;:::i;:::-;33719:80;33795:2;33784:9;33780:18;33771:6;33719:80;:::i;:::-;33809;33885:2;33874:9;33870:18;33861:6;33809:80;:::i;:::-;33899:73;33967:3;33956:9;33952:19;33943:6;33899:73;:::i;:::-;33982;34050:3;34039:9;34035:19;34026:6;33982:73;:::i;:::-;33255:807;;;;;;;;;:::o;34068:143::-;34125:5;34156:6;34150:13;34141:22;;34172:33;34199:5;34172:33;:::i;:::-;34068:143;;;;:::o;34217:663::-;34305:6;34313;34321;34370:2;34358:9;34349:7;34345:23;34341:32;34338:119;;;34376:79;;:::i;:::-;34338:119;34496:1;34521:64;34577:7;34568:6;34557:9;34553:22;34521:64;:::i;:::-;34511:74;;34467:128;34634:2;34660:64;34716:7;34707:6;34696:9;34692:22;34660:64;:::i;:::-;34650:74;;34605:129;34773:2;34799:64;34855:7;34846:6;34835:9;34831:22;34799:64;:::i;:::-;34789:74;;34744:129;34217:663;;;;;:::o
Swarm Source
ipfs://fec96ca6a3f92a62acce175364200aa02f83d5415db2b96e40565e0eb1c20e09
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.