More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 9 from a total of 9 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18062951 | 364 days ago | IN | 0 ETH | 0.00062442 | ||||
Approve | 18062950 | 364 days ago | IN | 0 ETH | 0.00072547 | ||||
Remove Limits | 18062947 | 364 days ago | IN | 0 ETH | 0.00029438 | ||||
Approve | 18062947 | 364 days ago | IN | 0 ETH | 0.00061864 | ||||
Approve | 18062945 | 364 days ago | IN | 0 ETH | 0.00072889 | ||||
Approve | 18062945 | 364 days ago | IN | 0 ETH | 0.00072889 | ||||
Enable Trading | 18062940 | 364 days ago | IN | 0 ETH | 0.00031265 | ||||
Approve | 18062928 | 364 days ago | IN | 0 ETH | 0.00054866 | ||||
0x60806040 | 18062906 | 364 days ago | IN | 0 ETH | 0.10842844 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Token
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-04 */ // 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 = "SHIBA OF WALLSTREET"; string private _symbol = unicode"$SOW"; 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 = 450; uint256 _sellbuybackFee = 0; uint256 totalBuy; uint256 totalSell; uint256 constant denominator = 1000; uint256 private _totalSupply = 1_000_000_000 * 10 ** _decimals; uint256 public minimumTokensBeforeSwap = 3000 * 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 = 0x335ce74B078964C49759beD298e2c7F6e0A42a0B; 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
60806040526040518060400160405280601381526020017f5348494241204f462057414c4c53545245455400000000000000000000000000815250600190816200004a9190620010b2565b506040518060400160405280600481526020017f24534f570000000000000000000000000000000000000000000000000000000081525060029081620000919190620010b2565b506008600360006101000a81548160ff021916908360ff1602179055507365e6adb66cca018ece8bca4852efffdd611a18ae600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507365e6adb66cca018ece8bca4852efffdd611a18ae600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c5561012c600d556000600e556000600f556101c26010556000601155600360009054906101000a900460ff16600a62000196919062001329565b633b9aca00620001a791906200137a565b601455600360009054906101000a900460ff16600a620001c8919062001329565b610bb8620001d791906200137a565b601555620002116103e8620001fd6014805462000ac160201b62002f1c1790919060201c565b62000b4460201b62002f961790919060201c565b6016556200024b6103e8620002376014805462000ac160201b62002f1c1790919060201c565b62000b4460201b62002f961790919060201c565b6017556001601860006101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055506000601860026101000a81548160ff0219169083151502179055506001601960156101000a81548160ff021916908315150217905550348015620002c757600080fd5b506000620002da62000b9660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600073335ce74b078964c49759bed298e2c7f6e0a42a0b90506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041c91906200142f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000484573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004aa91906200142f565b6040518363ffffffff1660e01b8152600401620004c992919062001472565b6020604051808303816000875af1158015620004e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050f91906200142f565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009b3600e546200099f600d54600c5462000b9e60201b62002fe01790919060201c565b62000b9e60201b62002fe01790919060201c565b601281905550620009f2601154620009de601054600f5462000b9e60201b62002fe01790919060201c565b62000b9e60201b62002fe01790919060201c565b60138190555062000a098262000c0160201b60201c565b601454600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60145460405162000ab19190620014b0565b60405180910390a3505062001836565b600080830362000ad5576000905062000b3e565b6000828462000ae591906200137a565b905082848262000af69190620014fc565b1462000b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b3090620015bb565b60405180910390fd5b809150505b92915050565b600062000b8e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000dd060201b60201c565b905092915050565b600033905090565b600080828462000baf9190620015dd565b90508381101562000bf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bee9062001668565b60405180910390fd5b8091505092915050565b62000c1162000b9660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000ca1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9890620016da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000d13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d0a9062001772565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808311829062000e1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e11919062001812565b60405180910390fd5b506000838562000e2b9190620014fc565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000eba57607f821691505b60208210810362000ed05762000ecf62000e72565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000efb565b62000f46868362000efb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f9362000f8d62000f878462000f5e565b62000f68565b62000f5e565b9050919050565b6000819050919050565b62000faf8362000f72565b62000fc762000fbe8262000f9a565b84845462000f08565b825550505050565b600090565b62000fde62000fcf565b62000feb81848462000fa4565b505050565b5b8181101562001013576200100760008262000fd4565b60018101905062000ff1565b5050565b601f82111562001062576200102c8162000ed6565b620010378462000eeb565b8101602085101562001047578190505b6200105f620010568562000eeb565b83018262000ff0565b50505b505050565b600082821c905092915050565b6000620010876000198460080262001067565b1980831691505092915050565b6000620010a2838362001074565b9150826002028217905092915050565b620010bd8262000e38565b67ffffffffffffffff811115620010d957620010d862000e43565b5b620010e5825462000ea1565b620010f282828562001017565b600060209050601f8311600181146200112a576000841562001115578287015190505b62001121858262001094565b86555062001191565b601f1984166200113a8662000ed6565b60005b8281101562001164578489015182556001820191506020850194506020810190506200113d565b8683101562001184578489015162001180601f89168262001074565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200122757808604811115620011ff57620011fe62001199565b5b60018516156200120f5780820291505b80810290506200121f85620011c8565b9450620011df565b94509492505050565b60008262001242576001905062001315565b8162001252576000905062001315565b81600181146200126b57600281146200127657620012ac565b600191505062001315565b60ff8411156200128b576200128a62001199565b5b8360020a915084821115620012a557620012a462001199565b5b5062001315565b5060208310610133831016604e8410600b8410161715620012e65782820a905083811115620012e057620012df62001199565b5b62001315565b620012f58484846001620011d5565b925090508184048111156200130f576200130e62001199565b5b81810290505b9392505050565b600060ff82169050919050565b6000620013368262000f5e565b915062001343836200131c565b9250620013727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001230565b905092915050565b6000620013878262000f5e565b9150620013948362000f5e565b9250828202620013a48162000f5e565b91508282048414831517620013be57620013bd62001199565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013f782620013ca565b9050919050565b6200140981620013ea565b81146200141557600080fd5b50565b6000815190506200142981620013fe565b92915050565b600060208284031215620014485762001447620013c5565b5b6000620014588482850162001418565b91505092915050565b6200146c81620013ea565b82525050565b600060408201905062001489600083018562001461565b62001498602083018462001461565b9392505050565b620014aa8162000f5e565b82525050565b6000602082019050620014c760008301846200149f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015098262000f5e565b9150620015168362000f5e565b925082620015295762001528620014cd565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620015a360218362001534565b9150620015b08262001545565b604082019050919050565b60006020820190508181036000830152620015d68162001594565b9050919050565b6000620015ea8262000f5e565b9150620015f78362000f5e565b925082820190508082111562001612576200161162001199565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001650601b8362001534565b91506200165d8262001618565b602082019050919050565b60006020820190508181036000830152620016838162001641565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620016c260208362001534565b9150620016cf826200168a565b602082019050919050565b60006020820190508181036000830152620016f581620016b3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200175a60268362001534565b91506200176782620016fc565b604082019050919050565b600060208201905081810360008301526200178d816200174b565b9050919050565b60005b83811015620017b457808201518184015260208101905062001797565b60008484015250505050565b6000601f19601f8301169050919050565b6000620017de8262000e38565b620017ea818562001534565b9350620017fc81856020860162001794565b6200180781620017c0565b840191505092915050565b600060208201905081810360008301526200182e8184620017d1565b905092915050565b61577c80620018466000396000f3fe6080604052600436106103545760003560e01c8063728d41c9116101c6578063c16dd4a4116100f7578063dd62ed3e11610095578063f275f64b1161006f578063f275f64b14610c5b578063f2fde38b14610c84578063f872858a14610cad578063ffc0a03114610cd85761035b565b8063dd62ed3e14610bde578063e6b2603b14610c1b578063ee828db314610c325761035b565b8063c867d60b116100d1578063c867d60b14610b24578063cb917be614610b61578063cea9d26f14610b8a578063d2d7ad8314610bb35761035b565b8063c16dd4a414610aa7578063c49b9a8014610ad0578063c816841b14610af95761035b565b80638f32d59b11610164578063a457c2d71161013e578063a457c2d7146109db578063a9059cbb14610a18578063af9549e014610a55578063c0b4d19914610a7e5761035b565b80638f32d59b1461095a57806395d89b411461098557806398e944c8146109b05761035b565b80637d1db4a5116101a05780637d1db4a51461089c578063807c2d9c146108c75780638b42507f146108f25780638da5cb5b1461092f5761035b565b8063728d41c914610831578063751039fc1461085a57806375f0a874146108715761035b565b80633187c304116102a05780635342acb41161023e5780635e42358c116102185780635e42358c146107875780636902ca61146107b25780636e94312d146107c957806370a08231146107f45761035b565b80635342acb4146106e45780635881f3ef146107215780635c85974f1461075e5761035b565b80633b97084a1161027a5780633b97084a1461062a5780633ecad271146106535780634974d88f146106905780634a74bb02146106b95761035b565b80633187c3041461059957806338ec0b11146105c457806339509351146105ed5761035b565b80631d865c301161030d57806325519cf2116102e757806325519cf2146104ef57806327c8f835146105185780632b112e4914610543578063313ce5671461056e5761035b565b80631d865c301461047257806320365d5f1461049b57806323b872dd146104b25761035b565b806306fdde03146103605780630930907b1461038b578063095ea7b3146103b657806313ea1d89146103f35780631694505e1461041c57806318160ddd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d01565b604051610382919061460e565b60405180910390f35b34801561039757600080fd5b506103a0610d93565b6040516103ad9190614671565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906146f3565b610d98565b6040516103ea919061474e565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614795565b610db6565b005b34801561042857600080fd5b50610431610f38565b60405161043e9190614834565b60405180910390f35b34801561045357600080fd5b5061045c610f5e565b604051610469919061485e565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190614879565b610f68565b005b3480156104a757600080fd5b506104b0611048565b005b3480156104be57600080fd5b506104d960048036038101906104d491906148cc565b61119d565b6040516104e6919061474e565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190614879565b611277565b005b34801561052457600080fd5b5061052d611357565b60405161053a9190614671565b60405180910390f35b34801561054f57600080fd5b5061055861135d565b604051610565919061485e565b60405180910390f35b34801561057a57600080fd5b5061058361139e565b604051610590919061493b565b60405180910390f35b3480156105a557600080fd5b506105ae6113b5565b6040516105bb919061474e565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190614795565b6113c8565b005b3480156105f957600080fd5b50610614600480360381019061060f91906146f3565b61154a565b604051610621919061474e565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190614956565b6115fd565b005b34801561065f57600080fd5b5061067a60048036038101906106759190614983565b61169c565b604051610687919061474e565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b291906149b0565b6116bc565b005b3480156106c557600080fd5b506106ce61176e565b6040516106db919061474e565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190614983565b611781565b604051610718919061474e565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190614983565b6117a1565b6040516107559190614671565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190614956565b611ca4565b005b34801561079357600080fd5b5061079c611d43565b6040516107a9919061474e565b60405180910390f35b3480156107be57600080fd5b506107c7611d56565b005b3480156107d557600080fd5b506107de611e23565b6040516107eb9190614671565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190614983565b611e49565b604051610828919061485e565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614956565b611e92565b005b34801561086657600080fd5b5061086f611f31565b005b34801561087d57600080fd5b50610886611ffe565b6040516108939190614671565b60405180910390f35b3480156108a857600080fd5b506108b1612024565b6040516108be919061485e565b60405180910390f35b3480156108d357600080fd5b506108dc61202a565b6040516108e9919061485e565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190614983565b612030565b604051610926919061474e565b60405180910390f35b34801561093b57600080fd5b50610944612050565b6040516109519190614671565b60405180910390f35b34801561096657600080fd5b5061096f612079565b60405161097c919061474e565b60405180910390f35b34801561099157600080fd5b5061099a6120d0565b6040516109a7919061460e565b60405180910390f35b3480156109bc57600080fd5b506109c5612162565b6040516109d29190614671565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd91906146f3565b612188565b604051610a0f919061474e565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a91906146f3565b612255565b604051610a4c919061474e565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614795565b612274565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190614983565b6123f6565b005b348015610ab357600080fd5b50610ace6004803603810190610ac99190614795565b6124cf565b005b348015610adc57600080fd5b50610af76004803603810190610af291906149b0565b61261e565b005b348015610b0557600080fd5b50610b0e612702565b604051610b1b9190614671565b60405180910390f35b348015610b3057600080fd5b50610b4b6004803603810190610b469190614983565b612728565b604051610b58919061474e565b60405180910390f35b348015610b6d57600080fd5b50610b886004803603810190610b839190614983565b612748565b005b348015610b9657600080fd5b50610bb16004803603810190610bac9190614a1b565b612821565b005b348015610bbf57600080fd5b50610bc861293a565b604051610bd5919061485e565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c009190614a6e565b612940565b604051610c12919061485e565b60405180910390f35b348015610c2757600080fd5b50610c306129c7565b005b348015610c3e57600080fd5b50610c596004803603810190610c5491906149b0565b612b0b565b005b348015610c6757600080fd5b50610c826004803603810190610c7d91906149b0565b612bbd565b005b348015610c9057600080fd5b50610cab6004803603810190610ca69190614983565b612c6f565b005b348015610cb957600080fd5b50610cc2612e30565b604051610ccf919061474e565b60405180910390f35b348015610ce457600080fd5b50610cff6004803603810190610cfa9190614983565b612e43565b005b606060018054610d1090614add565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c90614add565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b600081565b6000610dac610da561303e565b8484613046565b6001905092915050565b610dbe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290614b5a565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490614bc6565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b610f7061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490614b5a565b60405180910390fd5b82600f81905550816010819055508060118190555061103d60115461102f601054600f54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601381905550505050565b61105061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490614b5a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006111aa84848461320f565b5061126c846111b761303e565b611267856040518060600160405280602881526020016156fa60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061121d61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b600190509392505050565b61127f61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390614b5a565b60405180910390fd5b82600c8190555081600d8190555080600e8190555061134c600e5461133e600d54600c54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601281905550505050565b61dead81565b600061139961136c6000611e49565b61138b61137a61dead611e49565b60145461392990919063ffffffff16565b61392990919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601860029054906101000a900460ff1681565b6113d061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490614b5a565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690614bc6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f361155761303e565b846115ee856007600061156861303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b613046565b6001905092915050565b61160561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614b5a565b60405180910390fd5b8060158190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116c461303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890614b5a565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b601960159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117ab61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90614b5a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119379190614bfb565b6040518363ffffffff1660e01b8152600401611954929190614c28565b602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190614bfb565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190614bfb565b6040518363ffffffff1660e01b8152600401611ae2929190614c28565b6020604051808303816000875af1158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190614bfb565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cac61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090614b5a565b60405180910390fd5b8060168190555050565b601860009054906101000a900460ff1681565b611d5e61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614b5a565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e9a61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614b5a565b60405180910390fd5b8060178190555050565b611f3961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90614b5a565b60405180910390fd5b6000601860016101000a81548160ff0219169083151502179055506000601860006101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060600280546120df90614add565b80601f016020809104026020016040519081016040528092919081815260200182805461210b90614add565b80156121585780601f1061212d57610100808354040283529160200191612158565b820191906000526020600020905b81548152906001019060200180831161213b57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061224b61219561303e565b846122468560405180606001604052806025815260200161572260259139600760006121bf61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b6001905092915050565b600061226961226261303e565b848461320f565b506001905092915050565b61227c61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614b5a565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290614bc6565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123fe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290614b5a565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124d761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90614b5a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561261a576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a590614c9d565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f7919061474e565b60405180910390a150565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61275061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d490614b5a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61282961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad90614b5a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016128f1929190614cbd565b6020604051808303816000875af1158015612910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129349190614cfb565b50505050565b60155481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129cf61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614b5a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a8290614d59565b60006040518083038185875af1925050503d8060008114612abf576040519150601f19603f3d011682016040523d82523d6000602084013e612ac4565b606091505b5050905080612b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aff90614dba565b60405180910390fd5b50565b612b1361303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9790614b5a565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b612bc561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614b5a565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b612c7761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614b5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614e4c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860019054906101000a900460ff1681565b612e4b61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf90614b5a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612f2e5760009050612f90565b60008284612f3c9190614e9b565b9050828482612f4b9190614f0c565b14612f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8290614faf565b60405180910390fd5b809150505b92915050565b6000612fd883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613973565b905092915050565b6000808284612fef9190614fcf565b905083811015613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302b9061504f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ac906150e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311b90615173565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613202919061485e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361327f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613276906151df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59061524b565b60405180910390fd5b60008211613331576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613328906152b7565b60405180910390fd5b601860029054906101000a900460ff1661342657600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806133e65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341c90615323565b60405180910390fd5b5b601960149054906101000a900460ff161561344d576134468484846139d6565b90506138be565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134f15750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135095750601860009054906101000a900460ff165b1561355457601654821115613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a9061538f565b60405180910390fd5b5b600061355f30611e49565b9050600060155482101590508080156135855750601960149054906101000a900460ff16155b80156135db5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135f35750601960159054906101000a900460ff165b1561360157613600613ba9565b5b61368a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006136d98787613e27565b6136ed576136e8878787613f92565b6136ef565b845b9050601860019054906101000a900460ff1680156137575750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137bc5760175461377a8261376c89611e49565b612fe090919063ffffffff16565b11156137bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b2906153fb565b60405180910390fd5b5b61380e81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ae919061485e565b60405180910390a3600193505050505b9392505050565b600083831115829061390d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613904919061460e565b60405180910390fd5b506000838561391c919061541b565b9050809150509392505050565b600061396b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506138c5565b905092915050565b600080831182906139ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139b1919061460e565b60405180910390fd5b50600083856139c99190614f0c565b9050809150509392505050565b6000613a61826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b96919061485e565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613bcf30611e49565b905060008103613bdf5750613e0a565b6000613bf8600f54600c54612fe090919063ffffffff16565b90506000613c13601054600d54612fe090919063ffffffff16565b90506000613c2e601354601254612fe090919063ffffffff16565b905060008103613c415750505050613e0a565b6000613c7b6002613c6d84613c5f888a612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613c92828761392990919063ffffffff16565b90506000479050613ca2826141b7565b6000613cb7824761392990919063ffffffff16565b90506000613ce1613cd260028a612f9690919063ffffffff16565b8761392990919063ffffffff16565b90506000613d1d6002613d0f84613d018d88612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613d4683613d388b87612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90506000613d6f82613d61858861392990919063ffffffff16565b61392990919063ffffffff16565b90506000821115613da757613da6600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614433565b5b6000811115613ddd57613ddc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614433565b5b600083118015613ded5750600088115b15613dfd57613dfc888461447e565b5b5050505050505050505050505b6000601960146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613eca5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613ed85760019050613f8c565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613f795750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f875760009050613f8c565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614017576140106103e861400260125486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b9050614096565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614095576140926103e861408460135486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90505b5b600081111561419a576140f181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614191919061485e565b60405180910390a35b6141ad818461392990919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156141d4576141d361544f565b5b6040519080825280602002602001820160405280156142025781602001602082028036833780820191505090505b509050308160008151811061421a5761421961547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e59190614bfb565b816001815181106142f9576142f861547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061436030601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016143c49594939291906155a6565b600060405180830381600087803b1580156143de57600080fd5b505af11580156143f2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614427929190615600565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614479573d6000803e3d6000fd5b505050565b6144ab30601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161453496959493929190615630565b60606040518083038185885af1158015614552573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061457791906156a6565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156145b857808201518184015260208101905061459d565b60008484015250505050565b6000601f19601f8301169050919050565b60006145e08261457e565b6145ea8185614589565b93506145fa81856020860161459a565b614603816145c4565b840191505092915050565b6000602082019050818103600083015261462881846145d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061465b82614630565b9050919050565b61466b81614650565b82525050565b60006020820190506146866000830184614662565b92915050565b600080fd5b61469a81614650565b81146146a557600080fd5b50565b6000813590506146b781614691565b92915050565b6000819050919050565b6146d0816146bd565b81146146db57600080fd5b50565b6000813590506146ed816146c7565b92915050565b6000806040838503121561470a5761470961468c565b5b6000614718858286016146a8565b9250506020614729858286016146de565b9150509250929050565b60008115159050919050565b61474881614733565b82525050565b6000602082019050614763600083018461473f565b92915050565b61477281614733565b811461477d57600080fd5b50565b60008135905061478f81614769565b92915050565b600080604083850312156147ac576147ab61468c565b5b60006147ba858286016146a8565b92505060206147cb85828601614780565b9150509250929050565b6000819050919050565b60006147fa6147f56147f084614630565b6147d5565b614630565b9050919050565b600061480c826147df565b9050919050565b600061481e82614801565b9050919050565b61482e81614813565b82525050565b60006020820190506148496000830184614825565b92915050565b614858816146bd565b82525050565b6000602082019050614873600083018461484f565b92915050565b6000806000606084860312156148925761489161468c565b5b60006148a0868287016146de565b93505060206148b1868287016146de565b92505060406148c2868287016146de565b9150509250925092565b6000806000606084860312156148e5576148e461468c565b5b60006148f3868287016146a8565b9350506020614904868287016146a8565b9250506040614915868287016146de565b9150509250925092565b600060ff82169050919050565b6149358161491f565b82525050565b6000602082019050614950600083018461492c565b92915050565b60006020828403121561496c5761496b61468c565b5b600061497a848285016146de565b91505092915050565b6000602082840312156149995761499861468c565b5b60006149a7848285016146a8565b91505092915050565b6000602082840312156149c6576149c561468c565b5b60006149d484828501614780565b91505092915050565b60006149e882614650565b9050919050565b6149f8816149dd565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b600080600060608486031215614a3457614a3361468c565b5b6000614a4286828701614a06565b9350506020614a53868287016146a8565b9250506040614a64868287016146de565b9150509250925092565b60008060408385031215614a8557614a8461468c565b5b6000614a93858286016146a8565b9250506020614aa4858286016146a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614af557607f821691505b602082108103614b0857614b07614aae565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614b44602083614589565b9150614b4f82614b0e565b602082019050919050565b60006020820190508181036000830152614b7381614b37565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b6000614bb0600d83614589565b9150614bbb82614b7a565b602082019050919050565b60006020820190508181036000830152614bdf81614ba3565b9050919050565b600081519050614bf581614691565b92915050565b600060208284031215614c1157614c1061468c565b5b6000614c1f84828501614be6565b91505092915050565b6000604082019050614c3d6000830185614662565b614c4a6020830184614662565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865204465760000600082015250565b6000614c87601e83614589565b9150614c9282614c51565b602082019050919050565b60006020820190508181036000830152614cb681614c7a565b9050919050565b6000604082019050614cd26000830185614662565b614cdf602083018461484f565b9392505050565b600081519050614cf581614769565b92915050565b600060208284031215614d1157614d1061468c565b5b6000614d1f84828501614ce6565b91505092915050565b600081905092915050565b50565b6000614d43600083614d28565b9150614d4e82614d33565b600082019050919050565b6000614d6482614d36565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614da4601483614589565b9150614daf82614d6e565b602082019050919050565b60006020820190508181036000830152614dd381614d97565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e36602683614589565b9150614e4182614dda565b604082019050919050565b60006020820190508181036000830152614e6581614e29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ea6826146bd565b9150614eb1836146bd565b9250828202614ebf816146bd565b91508282048414831517614ed657614ed5614e6c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f17826146bd565b9150614f22836146bd565b925082614f3257614f31614edd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f99602183614589565b9150614fa482614f3d565b604082019050919050565b60006020820190508181036000830152614fc881614f8c565b9050919050565b6000614fda826146bd565b9150614fe5836146bd565b9250828201905080821115614ffd57614ffc614e6c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615039601b83614589565b915061504482615003565b602082019050919050565b600060208201905081810360008301526150688161502c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150cb602483614589565b91506150d68261506f565b604082019050919050565b600060208201905081810360008301526150fa816150be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061515d602283614589565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b60006151c9600f83614589565b91506151d482615193565b602082019050919050565b600060208201905081810360008301526151f8816151bc565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000615235600d83614589565b9150615240826151ff565b602082019050919050565b6000602082019050818103600083015261526481615228565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006152a1600e83614589565b91506152ac8261526b565b602082019050919050565b600060208201905081810360008301526152d081615294565b9050919050565b7f54726164696e6720697320506175736564210000000000000000000000000000600082015250565b600061530d601283614589565b9150615318826152d7565b602082019050919050565b6000602082019050818103600083015261533c81615300565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b6000615379600683614589565b915061538482615343565b602082019050919050565b600060208201905081810360008301526153a88161536c565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006153e5600a83614589565b91506153f0826153af565b602082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b6000615426826146bd565b9150615431836146bd565b925082820390508181111561544957615448614e6c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006154d26154cd6154c8846154ad565b6147d5565b6146bd565b9050919050565b6154e2816154b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61551d81614650565b82525050565b600061552f8383615514565b60208301905092915050565b6000602082019050919050565b6000615553826154e8565b61555d81856154f3565b935061556883615504565b8060005b838110156155995781516155808882615523565b975061558b8361553b565b92505060018101905061556c565b5085935050505092915050565b600060a0820190506155bb600083018861484f565b6155c860208301876154d9565b81810360408301526155da8186615548565b90506155e96060830185614662565b6155f6608083018461484f565b9695505050505050565b6000604082019050615615600083018561484f565b81810360208301526156278184615548565b90509392505050565b600060c0820190506156456000830189614662565b615652602083018861484f565b61565f60408301876154d9565b61566c60608301866154d9565b6156796080830185614662565b61568660a083018461484f565b979650505050505050565b6000815190506156a0816146c7565b92915050565b6000806000606084860312156156bf576156be61468c565b5b60006156cd86828701615691565b93505060206156de86828701615691565b92505060406156ef86828701615691565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ca7154d25a7ad2c44a75f127ae9e2f3144af9d8583d4fe6df7e3d4b35c5e52f164736f6c63430008120033
Deployed Bytecode
0x6080604052600436106103545760003560e01c8063728d41c9116101c6578063c16dd4a4116100f7578063dd62ed3e11610095578063f275f64b1161006f578063f275f64b14610c5b578063f2fde38b14610c84578063f872858a14610cad578063ffc0a03114610cd85761035b565b8063dd62ed3e14610bde578063e6b2603b14610c1b578063ee828db314610c325761035b565b8063c867d60b116100d1578063c867d60b14610b24578063cb917be614610b61578063cea9d26f14610b8a578063d2d7ad8314610bb35761035b565b8063c16dd4a414610aa7578063c49b9a8014610ad0578063c816841b14610af95761035b565b80638f32d59b11610164578063a457c2d71161013e578063a457c2d7146109db578063a9059cbb14610a18578063af9549e014610a55578063c0b4d19914610a7e5761035b565b80638f32d59b1461095a57806395d89b411461098557806398e944c8146109b05761035b565b80637d1db4a5116101a05780637d1db4a51461089c578063807c2d9c146108c75780638b42507f146108f25780638da5cb5b1461092f5761035b565b8063728d41c914610831578063751039fc1461085a57806375f0a874146108715761035b565b80633187c304116102a05780635342acb41161023e5780635e42358c116102185780635e42358c146107875780636902ca61146107b25780636e94312d146107c957806370a08231146107f45761035b565b80635342acb4146106e45780635881f3ef146107215780635c85974f1461075e5761035b565b80633b97084a1161027a5780633b97084a1461062a5780633ecad271146106535780634974d88f146106905780634a74bb02146106b95761035b565b80633187c3041461059957806338ec0b11146105c457806339509351146105ed5761035b565b80631d865c301161030d57806325519cf2116102e757806325519cf2146104ef57806327c8f835146105185780632b112e4914610543578063313ce5671461056e5761035b565b80631d865c301461047257806320365d5f1461049b57806323b872dd146104b25761035b565b806306fdde03146103605780630930907b1461038b578063095ea7b3146103b657806313ea1d89146103f35780631694505e1461041c57806318160ddd146104475761035b565b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610d01565b604051610382919061460e565b60405180910390f35b34801561039757600080fd5b506103a0610d93565b6040516103ad9190614671565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906146f3565b610d98565b6040516103ea919061474e565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614795565b610db6565b005b34801561042857600080fd5b50610431610f38565b60405161043e9190614834565b60405180910390f35b34801561045357600080fd5b5061045c610f5e565b604051610469919061485e565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190614879565b610f68565b005b3480156104a757600080fd5b506104b0611048565b005b3480156104be57600080fd5b506104d960048036038101906104d491906148cc565b61119d565b6040516104e6919061474e565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190614879565b611277565b005b34801561052457600080fd5b5061052d611357565b60405161053a9190614671565b60405180910390f35b34801561054f57600080fd5b5061055861135d565b604051610565919061485e565b60405180910390f35b34801561057a57600080fd5b5061058361139e565b604051610590919061493b565b60405180910390f35b3480156105a557600080fd5b506105ae6113b5565b6040516105bb919061474e565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190614795565b6113c8565b005b3480156105f957600080fd5b50610614600480360381019061060f91906146f3565b61154a565b604051610621919061474e565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190614956565b6115fd565b005b34801561065f57600080fd5b5061067a60048036038101906106759190614983565b61169c565b604051610687919061474e565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b291906149b0565b6116bc565b005b3480156106c557600080fd5b506106ce61176e565b6040516106db919061474e565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190614983565b611781565b604051610718919061474e565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190614983565b6117a1565b6040516107559190614671565b60405180910390f35b34801561076a57600080fd5b5061078560048036038101906107809190614956565b611ca4565b005b34801561079357600080fd5b5061079c611d43565b6040516107a9919061474e565b60405180910390f35b3480156107be57600080fd5b506107c7611d56565b005b3480156107d557600080fd5b506107de611e23565b6040516107eb9190614671565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190614983565b611e49565b604051610828919061485e565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614956565b611e92565b005b34801561086657600080fd5b5061086f611f31565b005b34801561087d57600080fd5b50610886611ffe565b6040516108939190614671565b60405180910390f35b3480156108a857600080fd5b506108b1612024565b6040516108be919061485e565b60405180910390f35b3480156108d357600080fd5b506108dc61202a565b6040516108e9919061485e565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190614983565b612030565b604051610926919061474e565b60405180910390f35b34801561093b57600080fd5b50610944612050565b6040516109519190614671565b60405180910390f35b34801561096657600080fd5b5061096f612079565b60405161097c919061474e565b60405180910390f35b34801561099157600080fd5b5061099a6120d0565b6040516109a7919061460e565b60405180910390f35b3480156109bc57600080fd5b506109c5612162565b6040516109d29190614671565b60405180910390f35b3480156109e757600080fd5b50610a0260048036038101906109fd91906146f3565b612188565b604051610a0f919061474e565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a91906146f3565b612255565b604051610a4c919061474e565b60405180910390f35b348015610a6157600080fd5b50610a7c6004803603810190610a779190614795565b612274565b005b348015610a8a57600080fd5b50610aa56004803603810190610aa09190614983565b6123f6565b005b348015610ab357600080fd5b50610ace6004803603810190610ac99190614795565b6124cf565b005b348015610adc57600080fd5b50610af76004803603810190610af291906149b0565b61261e565b005b348015610b0557600080fd5b50610b0e612702565b604051610b1b9190614671565b60405180910390f35b348015610b3057600080fd5b50610b4b6004803603810190610b469190614983565b612728565b604051610b58919061474e565b60405180910390f35b348015610b6d57600080fd5b50610b886004803603810190610b839190614983565b612748565b005b348015610b9657600080fd5b50610bb16004803603810190610bac9190614a1b565b612821565b005b348015610bbf57600080fd5b50610bc861293a565b604051610bd5919061485e565b60405180910390f35b348015610bea57600080fd5b50610c056004803603810190610c009190614a6e565b612940565b604051610c12919061485e565b60405180910390f35b348015610c2757600080fd5b50610c306129c7565b005b348015610c3e57600080fd5b50610c596004803603810190610c5491906149b0565b612b0b565b005b348015610c6757600080fd5b50610c826004803603810190610c7d91906149b0565b612bbd565b005b348015610c9057600080fd5b50610cab6004803603810190610ca69190614983565b612c6f565b005b348015610cb957600080fd5b50610cc2612e30565b604051610ccf919061474e565b60405180910390f35b348015610ce457600080fd5b50610cff6004803603810190610cfa9190614983565b612e43565b005b606060018054610d1090614add565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3c90614add565b8015610d895780601f10610d5e57610100808354040283529160200191610d89565b820191906000526020600020905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b600081565b6000610dac610da561303e565b8484613046565b6001905092915050565b610dbe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290614b5a565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490614bc6565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601454905090565b610f7061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490614b5a565b60405180910390fd5b82600f81905550816010819055508060118190555061103d60115461102f601054600f54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601381905550505050565b61105061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490614b5a565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006111aa84848461320f565b5061126c846111b761303e565b611267856040518060600160405280602881526020016156fa60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061121d61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b600190509392505050565b61127f61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390614b5a565b60405180910390fd5b82600c8190555081600d8190555080600e8190555061134c600e5461133e600d54600c54612fe090919063ffffffff16565b612fe090919063ffffffff16565b601281905550505050565b61dead81565b600061139961136c6000611e49565b61138b61137a61dead611e49565b60145461392990919063ffffffff16565b61392990919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b601860029054906101000a900460ff1681565b6113d061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490614b5a565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690614bc6565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006115f361155761303e565b846115ee856007600061156861303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b613046565b6001905092915050565b61160561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990614b5a565b60405180910390fd5b8060158190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6116c461303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890614b5a565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b601960159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006117ab61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90614b5a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119379190614bfb565b6040518363ffffffff1660e01b8152600401611954929190614c28565b602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190614bfb565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190614bfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190614bfb565b6040518363ffffffff1660e01b8152600401611ae2929190614c28565b6020604051808303816000875af1158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190614bfb565b91505b81601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611cac61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090614b5a565b60405180910390fd5b8060168190555050565b601860009054906101000a900460ff1681565b611d5e61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614b5a565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e9a61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90614b5a565b60405180910390fd5b8060178190555050565b611f3961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90614b5a565b60405180910390fd5b6000601860016101000a81548160ff0219169083151502179055506000601860006101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b60175481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060600280546120df90614add565b80601f016020809104026020016040519081016040528092919081815260200182805461210b90614add565b80156121585780601f1061212d57610100808354040283529160200191612158565b820191906000526020600020905b81548152906001019060200180831161213b57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061224b61219561303e565b846122468560405180606001604052806025815260200161572260259139600760006121bf61303e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b613046565b6001905092915050565b600061226961226261303e565b848461320f565b506001905092915050565b61227c61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230090614b5a565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290614bc6565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6123fe61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290614b5a565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6124d761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90614b5a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561261a576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a590614c9d565b60405180910390fd5b80601960156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516126f7919061474e565b60405180910390a150565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61275061303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d490614b5a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61282961303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad90614b5a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016128f1929190614cbd565b6020604051808303816000875af1158015612910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129349190614cfb565b50505050565b60155481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6129cf61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390614b5a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a8290614d59565b60006040518083038185875af1925050503d8060008114612abf576040519150601f19603f3d011682016040523d82523d6000602084013e612ac4565b606091505b5050905080612b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aff90614dba565b60405180910390fd5b50565b612b1361303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9790614b5a565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b612bc561303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4990614b5a565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b612c7761303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfb90614b5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614e4c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860019054906101000a900460ff1681565b612e4b61303e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecf90614b5a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612f2e5760009050612f90565b60008284612f3c9190614e9b565b9050828482612f4b9190614f0c565b14612f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8290614faf565b60405180910390fd5b809150505b92915050565b6000612fd883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613973565b905092915050565b6000808284612fef9190614fcf565b905083811015613034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302b9061504f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ac906150e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311b90615173565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613202919061485e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361327f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613276906151df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036132ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e59061524b565b60405180910390fd5b60008211613331576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613328906152b7565b60405180910390fd5b601860029054906101000a900460ff1661342657600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806133e65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341c90615323565b60405180910390fd5b5b601960149054906101000a900460ff161561344d576134468484846139d6565b90506138be565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134f15750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135095750601860009054906101000a900460ff165b1561355457601654821115613553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354a9061538f565b60405180910390fd5b5b600061355f30611e49565b9050600060155482101590508080156135855750601960149054906101000a900460ff16155b80156135db5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135f35750601960159054906101000a900460ff165b1561360157613600613ba9565b5b61368a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006136d98787613e27565b6136ed576136e8878787613f92565b6136ef565b845b9050601860019054906101000a900460ff1680156137575750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156137bc5760175461377a8261376c89611e49565b612fe090919063ffffffff16565b11156137bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b2906153fb565b60405180910390fd5b5b61380e81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138ae919061485e565b60405180910390a3600193505050505b9392505050565b600083831115829061390d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613904919061460e565b60405180910390fd5b506000838561391c919061541b565b9050809150509392505050565b600061396b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506138c5565b905092915050565b600080831182906139ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139b1919061460e565b60405180910390fd5b50600083856139c99190614f0c565b9050809150509392505050565b6000613a61826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546138c59092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613af682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613b96919061485e565b60405180910390a3600190509392505050565b6001601960146101000a81548160ff0219169083151502179055506000613bcf30611e49565b905060008103613bdf5750613e0a565b6000613bf8600f54600c54612fe090919063ffffffff16565b90506000613c13601054600d54612fe090919063ffffffff16565b90506000613c2e601354601254612fe090919063ffffffff16565b905060008103613c415750505050613e0a565b6000613c7b6002613c6d84613c5f888a612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613c92828761392990919063ffffffff16565b90506000479050613ca2826141b7565b6000613cb7824761392990919063ffffffff16565b90506000613ce1613cd260028a612f9690919063ffffffff16565b8761392990919063ffffffff16565b90506000613d1d6002613d0f84613d018d88612f1c90919063ffffffff16565b612f9690919063ffffffff16565b612f9690919063ffffffff16565b90506000613d4683613d388b87612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90506000613d6f82613d61858861392990919063ffffffff16565b61392990919063ffffffff16565b90506000821115613da757613da6600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614433565b5b6000811115613ddd57613ddc600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614433565b5b600083118015613ded5750600088115b15613dfd57613dfc888461447e565b5b5050505050505050505050505b6000601960146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613eca5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613ed85760019050613f8c565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613f795750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613f875760009050613f8c565b600090505b92915050565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614017576140106103e861400260125486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b9050614096565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614095576140926103e861408460135486612f1c90919063ffffffff16565b612f9690919063ffffffff16565b90505b5b600081111561419a576140f181600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fe090919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614191919061485e565b60405180910390a35b6141ad818461392990919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156141d4576141d361544f565b5b6040519080825280602002602001820160405280156142025781602001602082028036833780820191505090505b509050308160008151811061421a5761421961547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e59190614bfb565b816001815181106142f9576142f861547e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061436030601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016143c49594939291906155a6565b600060405180830381600087803b1580156143de57600080fd5b505af11580156143f2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614427929190615600565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614479573d6000803e3d6000fd5b505050565b6144ab30601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613046565b601860039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161453496959493929190615630565b60606040518083038185885af1158015614552573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061457791906156a6565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156145b857808201518184015260208101905061459d565b60008484015250505050565b6000601f19601f8301169050919050565b60006145e08261457e565b6145ea8185614589565b93506145fa81856020860161459a565b614603816145c4565b840191505092915050565b6000602082019050818103600083015261462881846145d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061465b82614630565b9050919050565b61466b81614650565b82525050565b60006020820190506146866000830184614662565b92915050565b600080fd5b61469a81614650565b81146146a557600080fd5b50565b6000813590506146b781614691565b92915050565b6000819050919050565b6146d0816146bd565b81146146db57600080fd5b50565b6000813590506146ed816146c7565b92915050565b6000806040838503121561470a5761470961468c565b5b6000614718858286016146a8565b9250506020614729858286016146de565b9150509250929050565b60008115159050919050565b61474881614733565b82525050565b6000602082019050614763600083018461473f565b92915050565b61477281614733565b811461477d57600080fd5b50565b60008135905061478f81614769565b92915050565b600080604083850312156147ac576147ab61468c565b5b60006147ba858286016146a8565b92505060206147cb85828601614780565b9150509250929050565b6000819050919050565b60006147fa6147f56147f084614630565b6147d5565b614630565b9050919050565b600061480c826147df565b9050919050565b600061481e82614801565b9050919050565b61482e81614813565b82525050565b60006020820190506148496000830184614825565b92915050565b614858816146bd565b82525050565b6000602082019050614873600083018461484f565b92915050565b6000806000606084860312156148925761489161468c565b5b60006148a0868287016146de565b93505060206148b1868287016146de565b92505060406148c2868287016146de565b9150509250925092565b6000806000606084860312156148e5576148e461468c565b5b60006148f3868287016146a8565b9350506020614904868287016146a8565b9250506040614915868287016146de565b9150509250925092565b600060ff82169050919050565b6149358161491f565b82525050565b6000602082019050614950600083018461492c565b92915050565b60006020828403121561496c5761496b61468c565b5b600061497a848285016146de565b91505092915050565b6000602082840312156149995761499861468c565b5b60006149a7848285016146a8565b91505092915050565b6000602082840312156149c6576149c561468c565b5b60006149d484828501614780565b91505092915050565b60006149e882614650565b9050919050565b6149f8816149dd565b8114614a0357600080fd5b50565b600081359050614a15816149ef565b92915050565b600080600060608486031215614a3457614a3361468c565b5b6000614a4286828701614a06565b9350506020614a53868287016146a8565b9250506040614a64868287016146de565b9150509250925092565b60008060408385031215614a8557614a8461468c565b5b6000614a93858286016146a8565b9250506020614aa4858286016146a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614af557607f821691505b602082108103614b0857614b07614aae565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614b44602083614589565b9150614b4f82614b0e565b602082019050919050565b60006020820190508181036000830152614b7381614b37565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b6000614bb0600d83614589565b9150614bbb82614b7a565b602082019050919050565b60006020820190508181036000830152614bdf81614ba3565b9050919050565b600081519050614bf581614691565b92915050565b600060208284031215614c1157614c1061468c565b5b6000614c1f84828501614be6565b91505092915050565b6000604082019050614c3d6000830185614662565b614c4a6020830184614662565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865204465760000600082015250565b6000614c87601e83614589565b9150614c9282614c51565b602082019050919050565b60006020820190508181036000830152614cb681614c7a565b9050919050565b6000604082019050614cd26000830185614662565b614cdf602083018461484f565b9392505050565b600081519050614cf581614769565b92915050565b600060208284031215614d1157614d1061468c565b5b6000614d1f84828501614ce6565b91505092915050565b600081905092915050565b50565b6000614d43600083614d28565b9150614d4e82614d33565b600082019050919050565b6000614d6482614d36565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614da4601483614589565b9150614daf82614d6e565b602082019050919050565b60006020820190508181036000830152614dd381614d97565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614e36602683614589565b9150614e4182614dda565b604082019050919050565b60006020820190508181036000830152614e6581614e29565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ea6826146bd565b9150614eb1836146bd565b9250828202614ebf816146bd565b91508282048414831517614ed657614ed5614e6c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f17826146bd565b9150614f22836146bd565b925082614f3257614f31614edd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f99602183614589565b9150614fa482614f3d565b604082019050919050565b60006020820190508181036000830152614fc881614f8c565b9050919050565b6000614fda826146bd565b9150614fe5836146bd565b9250828201905080821115614ffd57614ffc614e6c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615039601b83614589565b915061504482615003565b602082019050919050565b600060208201905081810360008301526150688161502c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006150cb602483614589565b91506150d68261506f565b604082019050919050565b600060208201905081810360008301526150fa816150be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061515d602283614589565b915061516882615101565b604082019050919050565b6000602082019050818103600083015261518c81615150565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b60006151c9600f83614589565b91506151d482615193565b602082019050919050565b600060208201905081810360008301526151f8816151bc565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000615235600d83614589565b9150615240826151ff565b602082019050919050565b6000602082019050818103600083015261526481615228565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006152a1600e83614589565b91506152ac8261526b565b602082019050919050565b600060208201905081810360008301526152d081615294565b9050919050565b7f54726164696e6720697320506175736564210000000000000000000000000000600082015250565b600061530d601283614589565b9150615318826152d7565b602082019050919050565b6000602082019050818103600083015261533c81615300565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b6000615379600683614589565b915061538482615343565b602082019050919050565b600060208201905081810360008301526153a88161536c565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006153e5600a83614589565b91506153f0826153af565b602082019050919050565b60006020820190508181036000830152615414816153d8565b9050919050565b6000615426826146bd565b9150615431836146bd565b925082820390508181111561544957615448614e6c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006154d26154cd6154c8846154ad565b6147d5565b6146bd565b9050919050565b6154e2816154b7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61551d81614650565b82525050565b600061552f8383615514565b60208301905092915050565b6000602082019050919050565b6000615553826154e8565b61555d81856154f3565b935061556883615504565b8060005b838110156155995781516155808882615523565b975061558b8361553b565b92505060018101905061556c565b5085935050505092915050565b600060a0820190506155bb600083018861484f565b6155c860208301876154d9565b81810360408301526155da8186615548565b90506155e96060830185614662565b6155f6608083018461484f565b9695505050505050565b6000604082019050615615600083018561484f565b81810360208301526156278184615548565b90509392505050565b600060c0820190506156456000830189614662565b615652602083018861484f565b61565f60408301876154d9565b61566c60608301866154d9565b6156796080830185614662565b61568660a083018461484f565b979650505050505050565b6000815190506156a0816146c7565b92915050565b6000806000606084860312156156bf576156be61468c565b5b60006156cd86828701615691565b93505060206156de86828701615691565b92505060406156ef86828701615691565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ca7154d25a7ad2c44a75f127ae9e2f3144af9d8583d4fe6df7e3d4b35c5e52f164736f6c63430008120033
Deployed Bytecode Sourcemap
4411:16297:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8149:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4928:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9319:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18946:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6120:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8426:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17856:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2914:231;;;;;;;;;;;;;:::i;:::-;;10270:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17562:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4841:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9837:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8335:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6080:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18738:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8816:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19142:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5205:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17196:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6235:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5148:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19894:809;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19388:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5999:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17435:119;;;;;;;;;;;;;:::i;:::-;;4720:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8534:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19274:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17309:118;;;;;;;;;;;;;:::i;:::-;;4638:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5833:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5917:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5316:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2589:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2814:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8240:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4800:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9042:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10095:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18535:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18161:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19676:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19497:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6168:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5257:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18412:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16846:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5761:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8665:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16628:178;;;;;;;;;;;;;:::i;:::-;;17090:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16986:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3153:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6038:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18284:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8149:83;8186:13;8219:5;8212:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8149:83;:::o;4928:80::-;4966:42;4928:80;:::o;9319:161::-;9394:4;9411:39;9420:12;:10;:12::i;:::-;9434:7;9443:6;9411:8;:39::i;:::-;9468:4;9461:11;;9319:161;;;;:::o;18946:188::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19060:7:::1;19035:32;;:15;:21;19051:4;19035:21;;;;;;;;;;;;;;;;;;;;;;;;;:32;;::::0;19027:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19119:7;19095:15;:21;19111:4;19095:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18946:188:::0;;:::o;6120:41::-;;;;;;;;;;;;;:::o;8426:100::-;8479:7;8506:12;;8499:19;;8426:100;:::o;17856:297::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17979:6:::1;17959:17;:26;;;;18016:10;17996:17;:30;;;;18055:6;18037:15;:24;;;;18084:61;18129:15;;18084:40;18106:17;;18084;;:21;;:40;;;;:::i;:::-;:44;;:61;;;;:::i;:::-;18072:9;:73;;;;17856:297:::0;;;:::o;2914:231::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3022:42:::1;2985:81;;3006:6;::::0;::::1;;;;;;;;2985:81;;;;;;;;;;;;3094:42;3077:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;2914:231::o:0;10270:313::-;10368:4;10385:36;10395:6;10403:9;10414:6;10385:9;:36::i;:::-;;10432:121;10441:6;10449:12;:10;:12::i;:::-;10463:89;10501:6;10463:89;;;;;;;;;;;;;;;;;:11;:19;10475:6;10463:19;;;;;;;;;;;;;;;:33;10483:12;:10;:12::i;:::-;10463:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10432:8;:121::i;:::-;10571:4;10564:11;;10270:313;;;;;:::o;17562:286::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17680:6:::1;17661:16;:25;;;;17716:10;17697:16;:29;;;;17754:6;17737:14;:23;;;;17782:58;17825:14;;17782:38;17803:16;;17782;;:20;;:38;;;;:::i;:::-;:42;;:58;;;;:::i;:::-;17771:8;:69;;;;17562:286:::0;;;:::o;4841:80::-;4879:42;4841:80;:::o;9837:156::-;9890:7;9917:68;9962:22;4966:42;9962:9;:22::i;:::-;9917:40;9934:22;4879:42;9934:9;:22::i;:::-;9917:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;9910:75;;9837:156;:::o;8335:83::-;8376:5;8401:9;;;;;;;;;;;8394:16;;8335:83;:::o;6080:31::-;;;;;;;;;;;;;:::o;18738:200::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18860:7:::1;18831:36;;:19;:25;18851:4;18831:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;::::0;18823:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18923:7;18895:19;:25;18915:4;18895:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18738:200:::0;;:::o;8816:218::-;8904:4;8921:83;8930:12;:10;:12::i;:::-;8944:7;8953:50;8992:10;8953:11;:25;8965:12;:10;:12::i;:::-;8953:25;;;;;;;;;;;;;;;:34;8979:7;8953:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8921:8;:83::i;:::-;9022:4;9015:11;;8816:218;;;;:::o;19142:124::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19250:8:::1;19224:23;:34;;;;19142:124:::0;:::o;5205:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17196:105::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17286:7:::1;17267:16;;:26;;;;;;;;;;;;;;;;;;17196:105:::0;:::o;6235:40::-;;;;;;;;;;;;;:::o;5148:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;19894:809::-;19976:22;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20013:35:::1;20070:16;20013:74;;20136:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20118:53;;;20180:4;20187:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20118:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20101:110;;20253:1;20227:28;;:14;:28;;::::0;20224:225:::1;;20341:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20323:74;;;20406:4;20413:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20323:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20306:131;;20224:225;20475:14;20461:11;;:28;;;;;;;;;;;;;;;;;;20541:16;20523:15;;:34;;;;;;;;;;;;;;;;;;20632:4;20595:12;:34;20616:11;;;;;;;;;;;20595:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20691:4;20647:19;:41;20675:11;;;;;;;;;;;20647:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;20000:703;19894:809:::0;;;:::o;19388:101::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19473:8:::1;19458:12;:23;;;;19388:101:::0;:::o;5999:32::-;;;;;;;;;;;;;:::o;17435:119::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17508:4:::1;17489:16;;:23;;;;;;;;;;;;;;;;;;17539:4;17523:13;;:20;;;;;;;;;;;;;;;;;;17435:119::o:0;4720:73::-;;;;;;;;;;;;;:::o;8534:123::-;8600:7;8626:9;:18;8636:7;8626:18;;;;;;;;;;;;;;;;8619:25;;8534:123;;;:::o;19274:106::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19364:8:::1;19351:10;:21;;;;19274:106:::0;:::o;17309:118::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17382:5:::1;17363:16;;:24;;;;;;;;;;;;;;;;;;17414:5;17398:13;;:21;;;;;;;;;;;;;;;;;;17309:118::o:0;4638:75::-;;;;;;;;;;;;;:::o;5833:68::-;;;;:::o;5917:65::-;;;;:::o;5316:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2589:79::-;2627:7;2654:6;;;;;;;;;;;2647:13;;2589:79;:::o;2814:92::-;2854:4;2892:6;;;;;;;;;;;2878:20;;:10;:20;;;2871:27;;2814:92;:::o;8240:87::-;8279:13;8312:7;8305:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8240:87;:::o;4800:32::-;;;;;;;;;;;;;:::o;9042:269::-;9135:4;9152:129;9161:12;:10;:12::i;:::-;9175:7;9184:96;9223:15;9184:96;;;;;;;;;;;;;;;;;:11;:25;9196:12;:10;:12::i;:::-;9184:25;;;;;;;;;;;;;;;:34;9210:7;9184:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9152:8;:129::i;:::-;9299:4;9292:11;;9042:269;;;;:::o;10095:167::-;10173:4;10190:42;10200:12;:10;:12::i;:::-;10214:9;10225:6;10190:9;:42::i;:::-;;10250:4;10243:11;;10095:167;;;;:::o;18535:195::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18654:7:::1;18627:34;;:17;:23;18645:4;18627:23;;;;;;;;;;;;;;;;;;;;;;;;;:34;;::::0;18619:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18715:7;18689:17;:23;18707:4;18689:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18535:195:::0;;:::o;18161:115::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18258:10:::1;18240:15;;:28;;;;;;;;;;;;;;;;;;18161:115:::0;:::o;19676:210::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19780:7:::1;19758:12;:19;19771:5;19758:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19801:7;19798:81;;;19863:4;19825:19;:35;19853:5;19825:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19798:81;19676:210:::0;;:::o;19497:171::-;6530:17;;;;;;;;;;;6516:31;;:10;:31;;;6508:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19598:8:::1;19574:21;;:32;;;;;;;;;;;;;;;;;;19622:38;19651:8;19622:38;;;;;;:::i;:::-;;;;;;;;19497:171:::0;:::o;6168:26::-;;;;;;;;;;;;;:::o;5257:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18412:111::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18505:10:::1;18489:13;;:26;;;;;;;;;;;;;;;;;;18412:111:::0;:::o;16846:132::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16940:3:::1;:12;;;16953:9;16963:6;16940:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16846:132:::0;;;:::o;5761:63::-;;;;:::o;8665:143::-;8746:7;8773:11;:18;8785:5;8773:18;;;;;;;;;;;;;;;:27;8792:7;8773:27;;;;;;;;;;;;;;;;8766:34;;8665:143;;;;:::o;16628:178::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16683:7:::1;16703:10;16695:24;;16727:21;16695:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16682:71;;;16772:2;16764:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;16670:136;16628:178::o:0;17090:98::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17173:7:::1;17157:13;;:23;;;;;;;;;;;;;;;;;;17090:98:::0;:::o;16986:96::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17067:7:::1;17053:11;;:21;;;;;;;;;;;;;;;;;;16986:96:::0;:::o;3153:244::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3262:1:::1;3242:22;;:8;:22;;::::0;3234:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3352:8;3323:38;;3344:6;::::0;::::1;;;;;;;;3323:38;;;;;;;;;;;;3381:8;3372:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3153:244:::0;:::o;6038:35::-;;;;;;;;;;;;;:::o;18284:117::-;2733:12;:10;:12::i;:::-;2723:22;;:6;;;;;;;;;;:22;;;2715:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18383:10:::1;18363:17;;:30;;;;;;;;;;;;;;;;;;18284:117:::0;:::o;1582:250::-;1640:7;1669:1;1664;:6;1660:47;;1694:1;1687:8;;;;1660:47;1719:9;1735:1;1731;:5;;;;:::i;:::-;1719:17;;1764:1;1759;1755;:5;;;;:::i;:::-;:10;1747:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1823:1;1816:8;;;1582:250;;;;;:::o;1840:132::-;1898:7;1925:39;1929:1;1932;1925:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1918:46;;1840:132;;;;:::o;1049:181::-;1107:7;1127:9;1143:1;1139;:5;;;;:::i;:::-;1127:17;;1168:1;1163;:6;;1155:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1221:1;1214:8;;;1049:181;;;;:::o;97:115::-;150:15;193:10;178:26;;97:115;:::o;9488:337::-;9598:1;9581:19;;:5;:19;;;9573:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9679:1;9660:21;;:7;:21;;;9652:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9763:6;9733:11;:18;9745:5;9733:18;;;;;;;;;;;;;;;:27;9752:7;9733:27;;;;;;;;;;;;;;;:36;;;;9801:7;9785:32;;9794:5;9785:32;;;9810:6;9785:32;;;;;;:::i;:::-;;;;;;;;9488:337;;;:::o;10591:1645::-;10678:4;10723:1;10705:20;;:6;:20;;;10697:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10785:1;10764:23;;:9;:23;;;10756:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10833:1;10824:6;:10;10816:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;10870:11;;;;;;;;;;;10866:130;;10905:17;:25;10923:6;10905:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;10934:17;:28;10952:9;10934:28;;;;;;;;;;;;;;;;;;;;;;;;;10905:57;10897:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10866:130;11011:16;;;;;;;;;;;11008:1221;;;11061:41;11076:6;11084:9;11095:6;11061:14;:41::i;:::-;11054:48;;;;11008:1221;11160:15;:23;11176:6;11160:23;;;;;;;;;;;;;;;;;;;;;;;;;11159:24;:55;;;;;11188:15;:26;11204:9;11188:26;;;;;;;;;;;;;;;;;;;;;;;;;11187:27;11159:55;:72;;;;;11218:13;;;;;;;;;;;11159:72;11156:152;;;11270:12;;11260:6;:22;;11252:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;11156:152;11325:28;11356:24;11374:4;11356:9;:24::i;:::-;11325:55;;11395:28;11450:23;;11426:20;:47;;11395:78;;11506:23;:44;;;;;11534:16;;;;;;;;;;;11533:17;11506:44;:69;;;;;11555:12;:20;11568:6;11555:20;;;;;;;;;;;;;;;;;;;;;;;;;11554:21;11506:69;:94;;;;;11579:21;;;;;;;;;;;11506:94;11502:165;;;11635:16;:14;:16::i;:::-;11502:165;11703:53;11725:6;11703:53;;;;;;;;;;;;;;;;;:9;:17;11713:6;11703:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11683:9;:17;11693:6;11683:17;;;;;;;;;;;;;;;:73;;;;11773:19;11795:31;11809:6;11816:9;11795:13;:31::i;:::-;:77;;11838:34;11846:6;11854:9;11865:6;11838:7;:34::i;:::-;11795:77;;;11829:6;11795:77;11773:99;;11892:16;;;;;;;;;;;:51;;;;;11913:19;:30;11933:9;11913:30;;;;;;;;;;;;;;;;;;;;;;;;;11912:31;11892:51;11889:164;;;12013:10;;11972:37;11997:11;11972:20;11982:9;11972;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;11964:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11889:164;12092:37;12117:11;12092:9;:20;12102:9;12092:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;12069:9;:20;12079:9;12069:20;;;;;;;;;;;;;;;:60;;;;12168:9;12151:40;;12160:6;12151:40;;;12179:11;12151:40;;;;;;:::i;:::-;;;;;;;;12213:4;12206:11;;;;;10591:1645;;;;;;:::o;1382:192::-;1468:7;1501:1;1496;:6;;1504:12;1488:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1528:9;1544:1;1540;:5;;;;:::i;:::-;1528:17;;1565:1;1558:8;;;1382:192;;;;;:::o;1238:136::-;1296:7;1323:43;1327:1;1330;1323:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1316:50;;1238:136;;;;:::o;1980:278::-;2066:7;2098:1;2094;:5;2101:12;2086:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2125:9;2141:1;2137;:5;;;;:::i;:::-;2125:17;;2249:1;2242:8;;;1980:278;;;;;:::o;12244:330::-;12337:4;12374:53;12396:6;12374:53;;;;;;;;;;;;;;;;;:9;:17;12384:6;12374:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12354:9;:17;12364:6;12354:17;;;;;;;;;;;;;;;:73;;;;12461:32;12486:6;12461:9;:20;12471:9;12461:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12438:9;:20;12448:9;12438:20;;;;;;;;;;;;;;;:55;;;;12526:9;12509:35;;12518:6;12509:35;;;12537:6;12509:35;;;;;;:::i;:::-;;;;;;;;12562:4;12555:11;;12244:330;;;;;:::o;12582:1529::-;6756:4;6737:16;;:23;;;;;;;;;;;;;;;;;;12649::::1;12675:24;12693:4;12675:9;:24::i;:::-;12649:50;;12734:1;12715:15;:20:::0;12712:32:::1;;12737:7;;;12712:32;12756:23;12782:39;12803:17;;12782:16;;:20;;:39;;;;:::i;:::-;12756:65;;12832:23;12858:39;12879:17;;12858:16;;:20;;:39;;;;:::i;:::-;12832:65;;12983:16;13002:23;13015:9;;13002:8;;:12;;:23;;;;:::i;:::-;12983:42;;13054:1;13039:11;:16:::0;13036:28:::1;;13057:7;;;;;;13036:28;13076:19;13098:60;13156:1;13098:53;13139:11;13098:36;13118:15;13098;:19;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;13076:82;;13169:21;13193:32;13213:11;13193:15;:19;;:32;;;;:::i;:::-;13169:56;;13238:22;13263:21;13238:46;;13295:31;13312:13;13295:16;:31::i;:::-;13337:22;13362:41;13388:14;13362:21;:25;;:41;;;;:::i;:::-;13337:66;;13416:19;13438:39;13454:22;13474:1;13454:15;:19;;:22;;;;:::i;:::-;13438:11;:15;;:39;;;;:::i;:::-;13416:61;;13490:26;13519:59;13576:1;13519:52;13559:11;13519:35;13538:15;13519:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;13490:88;;13589:26;13618:52;13658:11;13618:35;13637:15;13618:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;13589:81;;13681:24;13708:62;13751:18;13708:38;13727:18;13708:14;:18;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;13681:89;;13807:1;13786:18;:22;13783:97;;;13824:56;13845:15;;;;;;;;;;;13861:18;13824:20;:56::i;:::-;13783:97;13915:1;13896:16;:20;13893:91;;;13932:52;13953:13;;;;;;;;;;;13967:16;13932:20;:52::i;:::-;13893:91;14021:1;14000:18;:22;:41;;;;;14040:1;14026:11;:15;14000:41;13997:104;;;14056:45;14069:11;14082:18;14056:12;:45::i;:::-;13997:104;12628:1483;;;;;;;;;;;;6771:1;6802:5:::0;6783:16;;:24;;;;;;;;;;;;;;;;;;12582:1529::o;15463:366::-;15544:4;15564:17;:25;15582:6;15564:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15593:17;:28;15611:9;15593:28;;;;;;;;;;;;;;;;;;;;;;;;;15564:57;15561:261;;;15645:4;15638:11;;;;15561:261;15680:12;:20;15693:6;15680:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15704:12;:23;15717:9;15704:23;;;;;;;;;;;;;;;;;;;;;;;;;15680:47;15676:146;;;15751:5;15744:12;;;;15676:146;15805:5;15798:12;;15463:366;;;;;:::o;15837:750::-;15923:7;15953:14;16018:12;:20;16031:6;16018:20;;;;;;;;;;;;;;;;;;;;;;;;;16015:293;;;16073:37;5674:4;16073:20;16084:8;;16073:6;:10;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;16061:49;;16015:293;;;16162:12;:23;16175:9;16162:23;;;;;;;;;;;;;;;;;;;;;;;;;16159:149;;;16236:38;5674:4;16236:21;16247:9;;16236:6;:10;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16224:50;;16159:149;16015:293;16344:1;16332:9;:13;16329:185;;;16393:39;16422:9;16393;:24;16411:4;16393:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16366:9;:24;16384:4;16366:24;;;;;;;;;;;;;;;:66;;;;16481:4;16456:42;;16465:6;16456:42;;;16488:9;16456:42;;;;;;:::i;:::-;;;;;;;;16329:185;16537:21;16548:9;16537:6;:10;;:21;;;;:::i;:::-;16530:28;;;15837:750;;;;;:::o;14258:666::-;14384:21;14422:1;14408:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14384:40;;14453:4;14435;14440:1;14435:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14479:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14469:4;14474:1;14469:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;14514:62;14531:4;14546:15;;;;;;;;;;;14564:11;14514:8;:62::i;:::-;14615:15;;;;;;;;;;;:66;;;14696:11;14722:1;14766:4;14793;14829:15;14615:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14881:35;14898:11;14911:4;14881:35;;;;;;;:::i;:::-;;;;;;;;14313:611;14258:666;:::o;14119:127::-;14211:9;14203:27;;:35;14231:6;14203:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14119:127;;:::o;14932:523::-;15080:62;15097:4;15112:15;;;;;;;;;;;15130:11;15080:8;:62::i;:::-;15185:15;;;;;;;;;;;:31;;;15224:9;15257:4;15277:11;15303:1;15346;15389:17;;;;;;;;;;;15421:15;15185:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14932: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://ca7154d25a7ad2c44a75f127ae9e2f3144af9d8583d4fe6df7e3d4b35c5e52f1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.