ERC-20
Overview
Max Total Supply
1,000,000,000 Kraken
Holders
11
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.993056898 KrakenValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Kraken
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-02 */ /** */ /** The monster of Wall Street The Kraken, in Greek Mythology, is a sea monster of tremendous size and strength. It was born from the titans Oceanus and Ceto, both entities of the sea. Its tentacles are large enough to be able to pull entire ships under the water and destroy cities with relative ease. web - https://krakeneth.netlify.app/ Telegram - https://t.me/KrakenPortalOfficial */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.0; 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 Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function transferOwnership(address payable _ownerNew) external onlyOwner { owner = _ownerNew; emit OwnershipTransferred(_ownerNew); } event OwnershipTransferred(address _ownerNew); } interface IRouter { function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract Kraken is IERC20, Ownable { string public constant _name = "Kraken"; string public constant _symbol = "Kraken"; uint8 public constant _decimals = 9; uint256 public constant _totalSupply = 1_000_000_000 * (10 ** _decimals); mapping (address => uint256) public _balances; mapping (address => mapping (address => uint256)) public _allowances; mapping (address => bool) public noTax; mapping (address => bool) public noMax; mapping (address => bool) public dexPair; uint256 public buyFeeTeam = 2500; uint256 public buyFeeInsurance = 0; uint256 public buyFeeLiqExchange = 0; uint256 public buyFeeLiqToken = 0; uint256 public buyFee = 2500; uint256 public sellFeeTeam = 2500; uint256 public sellFeeInsurance = 0; uint256 public sellFeeLiqExchange = 0; uint256 public sellFeeLiqToken = 0; uint256 public sellFee = 2500; uint256 private _tokensTeam = 0; uint256 private _tokensInsurance = 0; uint256 private _tokensLiqExchange = 0; uint256 private _tokensLiqToken = 0; address public walletTeam = 0x0101023E66de461Cac7B197218BF69D0468Fb4a5; address public walletInsurance = 0x0101023E66de461Cac7B197218BF69D0468Fb4a5; address public walletLiqExchange = 0x0101023E66de461Cac7B197218BF69D0468Fb4a5; address public walletLiqToken = 0x0101023E66de461Cac7B197218BF69D0468Fb4a5; address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; IRouter public router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public pair; uint256 public maxWallet = 20_000_000 * (10 ** _decimals); uint256 public swapTrigger = 0; uint256 public swapThreshold = 25_000 * (10 ** _decimals); bool public tradingLive = false; bool private _swapping; modifier swapping() { _swapping = true; _; _swapping = false; } constructor () Ownable(msg.sender) { pair = IFactory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = _totalSupply; noTax[msg.sender] = true; noMax[msg.sender] = true; dexPair[pair] = true; approve(address(router), _totalSupply); approve(address(pair), _totalSupply); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _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 approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, _totalSupply); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != _totalSupply) { require(_allowances[sender][msg.sender] >= amount, "Insufficient allowance"); _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) private returns (bool) { if (_swapping) return _basicTransfer(sender, recipient, amount); require(tradingLive || sender == owner, "Trading not live"); address routerAddress = address(router); bool _sell = dexPair[recipient] || recipient == routerAddress; if (!_sell && !noMax[recipient]) require((_balances[recipient] + amount) < maxWallet, "Max wallet triggered"); if (_sell && amount >= swapTrigger) { if (!dexPair[msg.sender] && !_swapping && _balances[address(this)] >= swapThreshold) _sellTaxedTokens(); } require(_balances[sender] >= amount, "Insufficient balance"); _balances[sender] = _balances[sender] - amount; uint256 amountReceived = (((dexPair[sender] || sender == address(router)) || (dexPair[recipient]|| recipient == address(router))) ? !noTax[sender] && !noTax[recipient] : false) ? _collectTaxedTokens(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient] + amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) private returns (bool) { require(_balances[sender] >= amount, "Insufficient balance"); _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; return true; } function _collectTaxedTokens(address sender, address receiver, uint256 amount) private returns (uint256) { bool _sell = dexPair[receiver] || receiver == address(router); uint256 _fee = _sell ? sellFee : buyFee; uint256 _tax = amount * _fee / 10000; if (_fee > 0) { if (_sell) { if (sellFeeTeam > 0) _tokensTeam += _tax * sellFeeTeam / _fee; if (sellFeeInsurance > 0) _tokensInsurance += _tax * sellFeeInsurance / _fee; if (sellFeeLiqExchange > 0) _tokensLiqExchange += _tax * sellFeeLiqExchange / _fee; if (sellFeeLiqToken > 0) _tokensLiqToken += _tax * sellFeeLiqToken / _fee; } else { if (buyFeeTeam > 0) _tokensTeam += _tax * buyFeeTeam / _fee; if (buyFeeInsurance > 0) _tokensInsurance += _tax * buyFeeInsurance / _fee; if (buyFeeLiqExchange > 0) _tokensLiqExchange += _tax * buyFeeLiqExchange / _fee; if (buyFeeLiqToken > 0) _tokensLiqToken += _tax * buyFeeLiqToken / _fee; } } _balances[address(this)] = _balances[address(this)] + _tax; emit Transfer(sender, address(this), _tax); return amount - _tax; } function _sellTaxedTokens() private swapping { uint256 _tokens = _tokensTeam + _tokensInsurance + _tokensLiqExchange + _tokensLiqToken; uint256 _liquidityTokensToSwapHalf = _tokensLiqToken / 2; uint256 _swapInput = balanceOf(address(this)) - _liquidityTokensToSwapHalf; uint256 _balanceSnapshot = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens(_swapInput, 0, path, address(this), block.timestamp); uint256 _tax = address(this).balance - _balanceSnapshot; uint256 _taxTeam = _tax * _tokensTeam / _tokens / 2; uint256 _taxInsurance = _tax * _tokensInsurance / _tokens; uint256 _taxLiqExchange = _tax * _tokensLiqExchange / _tokens; uint256 _taxLiqToken = _tax * _tokensLiqToken / _tokens; _tokensTeam = 0; _tokensInsurance = 0; _tokensLiqExchange = 0; _tokensLiqToken = 0; if (_taxTeam > 0) payable(walletTeam).call{value: _taxTeam}(""); if (_taxInsurance > 0) payable(walletInsurance).call{value: _taxInsurance}(""); if (_taxLiqExchange > 0) payable(walletLiqExchange).call{value: _taxLiqExchange}(""); if (_taxLiqToken > 0) router.addLiquidityETH{value: _taxLiqToken}(address(this), _liquidityTokensToSwapHalf, 0, 0, walletLiqToken, block.timestamp); } function changeDexPair(address _pair, bool _value) external onlyOwner { dexPair[_pair] = _value; } function fetchDexPair(address _pair) external view returns (bool) { return dexPair[_pair]; } function changeNoTax(address _wallet, bool _value) external onlyOwner { noTax[_wallet] = _value; } function fetchNoTax(address _wallet) external view returns (bool) { return noTax[_wallet]; } function changeNoMax(address _wallet, bool _value) external onlyOwner { noMax[_wallet] = _value; } function fetchNoMax(address _wallet) external view onlyOwner returns (bool) { return noMax[_wallet]; } function changeMaxWallet(uint256 _maxWallet) external onlyOwner { maxWallet = _maxWallet; } function changeFees(uint256 _buyFeeTeam, uint256 _buyFeeInsurance, uint256 _buyFeeLiqExchange, uint256 _buyFeeLiqToken, uint256 _sellFeeTeam, uint256 _sellFeeInsurance, uint256 _sellFeeLiqExchange, uint256 _sellFeeLiqToken) external onlyOwner { buyFeeTeam = _buyFeeTeam; buyFeeInsurance = _buyFeeInsurance; buyFeeLiqExchange = _buyFeeLiqExchange; buyFeeLiqToken = _buyFeeLiqToken; buyFee = _buyFeeTeam + _buyFeeInsurance + _buyFeeLiqExchange + _buyFeeLiqToken; sellFeeTeam = _sellFeeTeam; sellFeeInsurance = _sellFeeInsurance; sellFeeLiqExchange = _sellFeeLiqExchange; sellFeeLiqToken = _sellFeeLiqToken; sellFee = _sellFeeTeam + _sellFeeInsurance + _sellFeeLiqExchange + _sellFeeLiqToken; } function changeWallets(address _walletTeam, address _walletInsurance, address _walletLiqExchange, address _walletLiqToken) external onlyOwner { walletTeam = _walletTeam; walletInsurance = _walletInsurance; walletLiqExchange = _walletLiqExchange; walletLiqToken = _walletLiqToken; } function enableTrading() external onlyOwner { tradingLive = true; } function changeSwapSettings(uint256 _swapTrigger, uint256 _swapThreshold) external onlyOwner { swapTrigger = _swapTrigger; swapThreshold = _swapThreshold; } function getCirculatingSupply() external view returns (uint256) { return _totalSupply - balanceOf(0x000000000000000000000000000000000000dEaD) - balanceOf(0x0000000000000000000000000000000000000000); } function Givememymoney() external onlyOwner { payable(msg.sender).call{value: address(this).balance}(""); } function Givememymoney(address _erc20Address) external onlyOwner { require(_erc20Address != address(this), "Can't withdraw Kraken"); IERC20 _erc20 = IERC20(_erc20Address); _erc20.transfer(msg.sender, _erc20.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_ownerNew","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Givememymoney","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_erc20Address","type":"address"}],"name":"Givememymoney","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeInsurance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeLiqExchange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeLiqToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeTeam","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"changeDexPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFeeTeam","type":"uint256"},{"internalType":"uint256","name":"_buyFeeInsurance","type":"uint256"},{"internalType":"uint256","name":"_buyFeeLiqExchange","type":"uint256"},{"internalType":"uint256","name":"_buyFeeLiqToken","type":"uint256"},{"internalType":"uint256","name":"_sellFeeTeam","type":"uint256"},{"internalType":"uint256","name":"_sellFeeInsurance","type":"uint256"},{"internalType":"uint256","name":"_sellFeeLiqExchange","type":"uint256"},{"internalType":"uint256","name":"_sellFeeLiqToken","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"changeNoMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"changeNoTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapTrigger","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"changeSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_walletTeam","type":"address"},{"internalType":"address","name":"_walletInsurance","type":"address"},{"internalType":"address","name":"_walletLiqExchange","type":"address"},{"internalType":"address","name":"_walletLiqToken","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dexPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"fetchDexPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"fetchNoMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"fetchNoTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeInsurance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeLiqExchange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeLiqToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeTeam","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTrigger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingLive","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":"_ownerNew","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletInsurance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletLiqExchange","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletLiqToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletTeam","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526109c46006556000600755600060085560006009556109c4600a556109c4600b556000600c556000600d556000600e556109c4600f556000601055600060115560006012556000601355730101023e66de461cac7b197218bf69d0468fb4a5601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730101023e66de461cac7b197218bf69d0468fb4a5601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730101023e66de461cac7b197218bf69d0468fb4a5601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730101023e66de461cac7b197218bf69d0468fb4a5601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000207919062000935565b6301312d0062000218919062000a72565b601a556000601b556009600a62000230919062000935565b6161a86200023f919062000a72565b601c556000601d60006101000a81548160ff0219169083151502179055503480156200026a57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663c9c6539673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2306040518363ffffffff1660e01b81526004016200031292919062000890565b602060405180830381600087803b1580156200032d57600080fd5b505af115801562000342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036891906200083c565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620003b8919062000935565b633b9aca00620003c9919062000a72565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005e9601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a620005cc919062000935565b633b9aca00620005dd919062000a72565b6200073160201b60201c565b506200063e601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a62000621919062000935565b633b9aca0062000632919062000a72565b6200073160201b60201c565b506009600a6200064f919062000935565b633b9aca0062000660919062000a72565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000703919062000935565b633b9aca0062000714919062000a72565b604051620007239190620008bd565b60405180910390a362000b79565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051620008139190620008bd565b60405180910390a36001905092915050565b600081519050620008368162000b5f565b92915050565b60006020828403121562000855576200085462000b4d565b5b6000620008658482850162000825565b91505092915050565b620008798162000ad3565b82525050565b6200088a8162000b07565b82525050565b6000604082019050620008a760008301856200086e565b620008b660208301846200086e565b9392505050565b6000602082019050620008d460008301846200087f565b92915050565b6000808291508390505b60018511156200092c5780860481111562000904576200090362000b1e565b5b6001851615620009145780820291505b8081029050620009248562000b52565b9450620008e4565b94509492505050565b6000620009428262000b07565b91506200094f8362000b11565b92506200097e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000986565b905092915050565b60008262000998576001905062000a6b565b81620009a8576000905062000a6b565b8160018114620009c15760028114620009cc5762000a02565b600191505062000a6b565b60ff841115620009e157620009e062000b1e565b5b8360020a915084821115620009fb57620009fa62000b1e565b5b5062000a6b565b5060208310610133831016604e8410600b841016171562000a3c5782820a90508381111562000a365762000a3562000b1e565b5b62000a6b565b62000a4b8484846001620008da565b9250905081840481111562000a655762000a6462000b1e565b5b81810290505b9392505050565b600062000a7f8262000b07565b915062000a8c8362000b07565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ac85762000ac762000b1e565b5b828202905092915050565b600062000ae08262000ae7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b60008160011c9050919050565b62000b6a8162000ad3565b811462000b7657600080fd5b50565b6141ba8062000b896000396000f3fe60806040526004361061037a5760003560e01c806370a08231116101d1578063b45bea5811610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610d31578063f8b45b0514610d5c578063fa0fcbb314610d87578063fef0006e14610db057610381565b8063dd62ed3e14610c51578063de2f477714610c8e578063f2bcf6a614610ccb578063f2fde38b14610d0857610381565b8063c0647dfb116100dc578063c0647dfb14610ba7578063d28d885214610bd0578063d4b4294e14610bfb578063d8670ac914610c2657610381565b8063b45bea5814610b28578063b4722ec514610b53578063b79b453314610b7c57610381565b806399115c5c1161016f578063a9059cbb11610149578063a9059cbb14610a6c578063ad5c464814610aa9578063b09f126614610ad4578063b12059e114610aff57610381565b806399115c5c146109d9578063a6a94c0114610a04578063a8aa1b3114610a4157610381565b80638a8c523c116101ab5780638a8c523c146109435780638c1a67841461095a57806393c173221461098557806395d89b41146109ae57610381565b806370a08231146108b057806371b962a4146108ed578063893d20e81461091857610381565b80632f54bf6e116102ab578063471ad90e11610249578063513e601911610223578063513e6019146107e0578063571ac8b01461080b578063688ba636146108485780636ebcf6071461087357610381565b8063471ad90e1461075f578063484dd5871461078a5780634b09d3b2146107b557610381565b806332424aa31161028557806332424aa3146106b55780633eaaf86b146106e0578063400343e71461070b578063470624021461073457610381565b80632f54bf6e1461062457806331275ad914610661578063313ce5671461068a57610381565b806312dcb1ca116103185780631d3f732c116102f25780631d3f732c1461057a57806323b872dd146105915780632b112e49146105ce5780632b14ca56146105f957610381565b806312dcb1ca146104d5578063151ebae61461051257806318160ddd1461054f57610381565b8063095ea7b311610354578063095ea7b3146104195780630b006d60146104565780630bda7cd71461047f57806311704f52146104aa57610381565b8063024c2ddd146103865780630445b667146103c357806306fdde03146103ee57610381565b3661038157005b600080fd5b34801561039257600080fd5b506103ad60048036038101906103a89190613393565b610ded565b6040516103ba9190613ae6565b60405180910390f35b3480156103cf57600080fd5b506103d8610e12565b6040516103e59190613ae6565b60405180910390f35b3480156103fa57600080fd5b50610403610e18565b6040516104109190613a04565b60405180910390f35b34801561042557600080fd5b50610440600480360381019061043b91906134cd565b610e55565b60405161044d91906139ce565b60405180910390f35b34801561046257600080fd5b5061047d6004803603810190610478919061353a565b610f47565b005b34801561048b57600080fd5b50610494610f99565b6040516104a19190613ae6565b60405180910390f35b3480156104b657600080fd5b506104bf610f9f565b6040516104cc91906139ce565b60405180910390f35b3480156104e157600080fd5b506104fc60048036038101906104f79190613339565b610fb2565b60405161050991906139ce565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613339565b611008565b60405161054691906139ce565b60405180910390f35b34801561055b57600080fd5b50610564611028565b6040516105719190613ae6565b60405180910390f35b34801561058657600080fd5b5061058f61104c565b005b34801561059d57600080fd5b506105b860048036038101906105b3919061343a565b6110ff565b6040516105c591906139ce565b60405180910390f35b3480156105da57600080fd5b506105e361137c565b6040516105f09190613ae6565b60405180910390f35b34801561060557600080fd5b5061060e6113c9565b60405161061b9190613ae6565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613339565b6113cf565b60405161065891906139ce565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613594565b611428565b005b34801561069657600080fd5b5061069f611482565b6040516106ac9190613b5b565b60405180910390f35b3480156106c157600080fd5b506106ca61148b565b6040516106d79190613b5b565b60405180910390f35b3480156106ec57600080fd5b506106f5611490565b6040516107029190613ae6565b60405180910390f35b34801561071757600080fd5b50610732600480360381019061072d9190613627565b6114b0565b005b34801561074057600080fd5b5061074961158a565b6040516107569190613ae6565b60405180910390f35b34801561076b57600080fd5b50610774611590565b6040516107819190613ae6565b60405180910390f35b34801561079657600080fd5b5061079f611596565b6040516107ac9190613ae6565b60405180910390f35b3480156107c157600080fd5b506107ca61159c565b6040516107d7919061390e565b60405180910390f35b3480156107ec57600080fd5b506107f56115c2565b604051610802919061390e565b60405180910390f35b34801561081757600080fd5b50610832600480360381019061082d9190613339565b6115e8565b60405161083f91906139ce565b60405180910390f35b34801561085457600080fd5b5061085d611617565b60405161086a919061390e565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613339565b61163d565b6040516108a79190613ae6565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d29190613339565b611655565b6040516108e49190613ae6565b60405180910390f35b3480156108f957600080fd5b5061090261169e565b60405161090f919061390e565b60405180910390f35b34801561092457600080fd5b5061092d6116c4565b60405161093a919061390e565b60405180910390f35b34801561094f57600080fd5b506109586116ed565b005b34801561096657600080fd5b5061096f611752565b60405161097c9190613ae6565b60405180910390f35b34801561099157600080fd5b506109ac60048036038101906109a791906133d3565b611758565b005b3480156109ba57600080fd5b506109c36118aa565b6040516109d09190613a04565b60405180910390f35b3480156109e557600080fd5b506109ee6118e7565b6040516109fb9190613ae6565b60405180910390f35b348015610a1057600080fd5b50610a2b6004803603810190610a269190613339565b6118ed565b604051610a3891906139ce565b60405180910390f35b348015610a4d57600080fd5b50610a5661190d565b604051610a63919061390e565b60405180910390f35b348015610a7857600080fd5b50610a936004803603810190610a8e91906134cd565b611933565b604051610aa091906139ce565b60405180910390f35b348015610ab557600080fd5b50610abe611948565b604051610acb919061390e565b60405180910390f35b348015610ae057600080fd5b50610ae9611960565b604051610af69190613a04565b60405180910390f35b348015610b0b57600080fd5b50610b266004803603810190610b21919061348d565b611999565b005b348015610b3457600080fd5b50610b3d611a3c565b604051610b4a9190613ae6565b60405180910390f35b348015610b5f57600080fd5b50610b7a6004803603810190610b759190613339565b611a42565b005b348015610b8857600080fd5b50610b91611c18565b604051610b9e9190613ae6565b60405180910390f35b348015610bb357600080fd5b50610bce6004803603810190610bc9919061348d565b611c1e565b005b348015610bdc57600080fd5b50610be5611cc1565b604051610bf29190613a04565b60405180910390f35b348015610c0757600080fd5b50610c10611cfa565b604051610c1d9190613ae6565b60405180910390f35b348015610c3257600080fd5b50610c3b611d00565b604051610c489190613ae6565b60405180910390f35b348015610c5d57600080fd5b50610c786004803603810190610c739190613393565b611d06565b604051610c859190613ae6565b60405180910390f35b348015610c9a57600080fd5b50610cb56004803603810190610cb09190613339565b611d8d565b604051610cc291906139ce565b60405180910390f35b348015610cd757600080fd5b50610cf26004803603810190610ced9190613339565b611de3565b604051610cff91906139ce565b60405180910390f35b348015610d1457600080fd5b50610d2f6004803603810190610d2a9190613366565b611e81565b005b348015610d3d57600080fd5b50610d46611f43565b604051610d5391906139e9565b60405180910390f35b348015610d6857600080fd5b50610d71611f69565b604051610d7e9190613ae6565b60405180910390f35b348015610d9357600080fd5b50610dae6004803603810190610da9919061348d565b611f6f565b005b348015610dbc57600080fd5b50610dd76004803603810190610dd29190613339565b612012565b604051610de491906139ce565b60405180910390f35b6002602052816000526040600020602052806000526040600020600091509150505481565b601c5481565b60606040518060400160405280600681526020017f4b72616b656e0000000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f359190613ae6565b60405180910390a36001905092915050565b610f50336113cf565b610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8690613ac6565b60405180910390fd5b80601a8190555050565b601b5481565b601d60009054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60036020528060005260406000206000915054906101000a900460ff1681565b60006009600a6110389190613cb0565b633b9aca006110479190613dce565b905090565b611055336113cf565b611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90613ac6565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16476040516110b8906138f9565b60006040518083038185875af1925050503d80600081146110f5576040519150601f19603f3d011682016040523d82523d6000602084013e6110fa565b606091505b505050565b60006009600a61110f9190613cb0565b633b9aca0061111e9190613dce565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113685781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125690613a46565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112e79190613e28565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611373848484612032565b90509392505050565b60006113886000611655565b61139361dead611655565b6009600a6113a19190613cb0565b633b9aca006113b09190613dce565b6113ba9190613e28565b6113c49190613e28565b905090565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b611431336113cf565b611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146790613ac6565b60405180910390fd5b81601b8190555080601c819055505050565b60006009905090565b600981565b6009600a61149e9190613cb0565b633b9aca006114ad9190613dce565b81565b6114b9336113cf565b6114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef90613ac6565b60405180910390fd5b876006819055508660078190555085600881905550846009819055508486888a6115229190613bd6565b61152c9190613bd6565b6115369190613bd6565b600a8190555083600b8190555082600c8190555081600d8190555080600e81905550808284866115669190613bd6565b6115709190613bd6565b61157a9190613bd6565b600f819055505050505050505050565b600a5481565b600c5481565b600d5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611610826009600a6115fc9190613cb0565b633b9aca0061160b9190613dce565b610e55565b9050919050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116f6336113cf565b611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c90613ac6565b60405180910390fd5b6001601d60006101000a81548160ff021916908315150217905550565b60065481565b611761336113cf565b6117a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179790613ac6565b60405180910390fd5b83601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60606040518060400160405280600681526020017f4b72616b656e0000000000000000000000000000000000000000000000000000815250905090565b600b5481565b60056020528060005260406000206000915054906101000a900460ff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611940338484612032565b905092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6040518060400160405280600681526020017f4b72616b656e000000000000000000000000000000000000000000000000000081525081565b6119a2336113cf565b6119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613ac6565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60075481565b611a4b336113cf565b611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8190613ac6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af090613a86565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b54919061390e565b60206040518083038186803b158015611b6c57600080fd5b505afa158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190613567565b6040518363ffffffff1660e01b8152600401611bc1929190613944565b602060405180830381600087803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c13919061350d565b505050565b60085481565b611c27336113cf565b611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90613ac6565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6040518060400160405280600681526020017f4b72616b656e000000000000000000000000000000000000000000000000000081525081565b60095481565b600e5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611dee336113cf565b611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2490613ac6565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611e8a336113cf565b611ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec090613ac6565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611f389190613929565b60405180910390a150565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b611f78336113cf565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90613ac6565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b6000601d60019054906101000a900460ff161561205b5761205484848461279e565b9050612797565b601d60009054906101000a900460ff16806120c1575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790613a26565b60405180910390fd5b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121ac57508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b9050801580156122065750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561229a57601a5484600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122599190613bd6565b10612299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229090613aa6565b60405180910390fd5b5b8080156122a95750601b548410155b1561237157600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123155750601d60019054906101000a900460ff16155b80156123625750601c54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156123705761236f612949565b5b5b83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea90613a66565b60405180910390fd5b83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243e9190613e28565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125285750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b806125d45750600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125d35750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b5b6125df576000612684565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126835750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b61268e578461269a565b612699878787612ed6565b5b905080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e79190613bd6565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127879190613ae6565b60405180910390a3600193505050505b9392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281990613a66565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286d9190613e28565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb9190613bd6565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b6001601d60016101000a81548160ff021916908315150217905550600060135460125460115460105461297c9190613bd6565b6129869190613bd6565b6129909190613bd6565b9050600060026013546129a39190613c2c565b90506000816129b130611655565b6129bb9190613e28565b905060004790506000600267ffffffffffffffff8111156129df576129de613fdd565b5b604051908082528060200260200182016040528015612a0d5781602001602082028036833780820191505090505b5090503081600081518110612a2557612a24613fae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110612a8857612a87613fae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401612b26959493929190613b01565b600060405180830381600087803b158015612b4057600080fd5b505af1158015612b54573d6000803e3d6000fd5b5050505060008247612b669190613e28565b9050600060028760105484612b7b9190613dce565b612b859190613c2c565b612b8f9190613c2c565b905060008760115484612ba29190613dce565b612bac9190613c2c565b905060008860125485612bbf9190613dce565b612bc99190613c2c565b905060008960135486612bdc9190613dce565b612be69190613c2c565b905060006010819055506000601181905550600060128190555060006013819055506000841115612c9d57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612c57906138f9565b60006040518083038185875af1925050503d8060008114612c94576040519150601f19603f3d011682016040523d82523d6000602084013e612c99565b606091505b5050505b6000831115612d3257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612cec906138f9565b60006040518083038185875af1925050503d8060008114612d29576040519150601f19603f3d011682016040523d82523d6000602084013e612d2e565b606091505b5050505b6000821115612dc757601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d81906138f9565b60006040518083038185875af1925050503d8060008114612dbe576040519150601f19603f3d011682016040523d82523d6000602084013e612dc3565b606091505b5050505b6000811115612eaf57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308c600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e599695949392919061396d565b6060604051808303818588803b158015612e7257600080fd5b505af1158015612e86573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612eab91906135d4565b5050505b505050505050505050506000601d60016101000a81548160ff021916908315150217905550565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f7e5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b9050600081612f8f57600a54612f93565b600f545b905060006127108286612fa69190613dce565b612fb09190613c2c565b905060008211156131b05782156130ba576000600b541115612ffe5781600b5482612fdb9190613dce565b612fe59190613c2c565b60106000828254612ff69190613bd6565b925050819055505b6000600c54111561303b5781600c54826130189190613dce565b6130229190613c2c565b601160008282546130339190613bd6565b925050819055505b6000600d5411156130785781600d54826130559190613dce565b61305f9190613c2c565b601260008282546130709190613bd6565b925050819055505b6000600e5411156130b55781600e54826130929190613dce565b61309c9190613c2c565b601360008282546130ad9190613bd6565b925050819055505b6131af565b600060065411156130f75781600654826130d49190613dce565b6130de9190613c2c565b601060008282546130ef9190613bd6565b925050819055505b600060075411156131345781600754826131119190613dce565b61311b9190613c2c565b6011600082825461312c9190613bd6565b925050819055505b6000600854111561317157816008548261314e9190613dce565b6131589190613c2c565b601260008282546131699190613bd6565b925050819055505b600060095411156131ae57816009548261318b9190613dce565b6131959190613c2c565b601360008282546131a69190613bd6565b925050819055505b5b5b80600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fb9190613bd6565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161329b9190613ae6565b60405180910390a380856132af9190613e28565b93505050509392505050565b6000813590506132ca81614128565b92915050565b6000813590506132df8161413f565b92915050565b6000813590506132f481614156565b92915050565b60008151905061330981614156565b92915050565b60008135905061331e8161416d565b92915050565b6000815190506133338161416d565b92915050565b60006020828403121561334f5761334e61400c565b5b600061335d848285016132bb565b91505092915050565b60006020828403121561337c5761337b61400c565b5b600061338a848285016132d0565b91505092915050565b600080604083850312156133aa576133a961400c565b5b60006133b8858286016132bb565b92505060206133c9858286016132bb565b9150509250929050565b600080600080608085870312156133ed576133ec61400c565b5b60006133fb878288016132bb565b945050602061340c878288016132bb565b935050604061341d878288016132bb565b925050606061342e878288016132bb565b91505092959194509250565b6000806000606084860312156134535761345261400c565b5b6000613461868287016132bb565b9350506020613472868287016132bb565b92505060406134838682870161330f565b9150509250925092565b600080604083850312156134a4576134a361400c565b5b60006134b2858286016132bb565b92505060206134c3858286016132e5565b9150509250929050565b600080604083850312156134e4576134e361400c565b5b60006134f2858286016132bb565b92505060206135038582860161330f565b9150509250929050565b6000602082840312156135235761352261400c565b5b6000613531848285016132fa565b91505092915050565b6000602082840312156135505761354f61400c565b5b600061355e8482850161330f565b91505092915050565b60006020828403121561357d5761357c61400c565b5b600061358b84828501613324565b91505092915050565b600080604083850312156135ab576135aa61400c565b5b60006135b98582860161330f565b92505060206135ca8582860161330f565b9150509250929050565b6000806000606084860312156135ed576135ec61400c565b5b60006135fb86828701613324565b935050602061360c86828701613324565b925050604061361d86828701613324565b9150509250925092565b600080600080600080600080610100898b0312156136485761364761400c565b5b60006136568b828c0161330f565b98505060206136678b828c0161330f565b97505060406136788b828c0161330f565b96505060606136898b828c0161330f565b955050608061369a8b828c0161330f565b94505060a06136ab8b828c0161330f565b93505060c06136bc8b828c0161330f565b92505060e06136cd8b828c0161330f565b9150509295985092959890939650565b60006136e98383613704565b60208301905092915050565b6136fe81613ec3565b82525050565b61370d81613e5c565b82525050565b61371c81613e5c565b82525050565b600061372d82613b86565b6137378185613ba9565b935061374283613b76565b8060005b8381101561377357815161375a88826136dd565b975061376583613b9c565b925050600181019050613746565b5085935050505092915050565b61378981613e80565b82525050565b61379881613ed5565b82525050565b6137a781613ee7565b82525050565b60006137b882613b91565b6137c28185613bc5565b93506137d2818560208601613f1d565b6137db81614011565b840191505092915050565b60006137f3601083613bc5565b91506137fe8261402f565b602082019050919050565b6000613816601683613bc5565b915061382182614058565b602082019050919050565b6000613839601483613bc5565b915061384482614081565b602082019050919050565b600061385c601583613bc5565b9150613867826140aa565b602082019050919050565b600061387f601483613bc5565b915061388a826140d3565b602082019050919050565b60006138a2600683613bc5565b91506138ad826140fc565b602082019050919050565b60006138c5600083613bba565b91506138d082614125565b600082019050919050565b6138e481613eac565b82525050565b6138f381613eb6565b82525050565b6000613904826138b8565b9150819050919050565b60006020820190506139236000830184613713565b92915050565b600060208201905061393e60008301846136f5565b92915050565b60006040820190506139596000830185613713565b61396660208301846138db565b9392505050565b600060c0820190506139826000830189613713565b61398f60208301886138db565b61399c604083018761379e565b6139a9606083018661379e565b6139b66080830185613713565b6139c360a08301846138db565b979650505050505050565b60006020820190506139e36000830184613780565b92915050565b60006020820190506139fe600083018461378f565b92915050565b60006020820190508181036000830152613a1e81846137ad565b905092915050565b60006020820190508181036000830152613a3f816137e6565b9050919050565b60006020820190508181036000830152613a5f81613809565b9050919050565b60006020820190508181036000830152613a7f8161382c565b9050919050565b60006020820190508181036000830152613a9f8161384f565b9050919050565b60006020820190508181036000830152613abf81613872565b9050919050565b60006020820190508181036000830152613adf81613895565b9050919050565b6000602082019050613afb60008301846138db565b92915050565b600060a082019050613b1660008301886138db565b613b23602083018761379e565b8181036040830152613b358186613722565b9050613b446060830185613713565b613b5160808301846138db565b9695505050505050565b6000602082019050613b7060008301846138ea565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613be182613eac565b9150613bec83613eac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c2157613c20613f50565b5b828201905092915050565b6000613c3782613eac565b9150613c4283613eac565b925082613c5257613c51613f7f565b5b828204905092915050565b6000808291508390505b6001851115613ca757808604811115613c8357613c82613f50565b5b6001851615613c925780820291505b8081029050613ca085614022565b9450613c67565b94509492505050565b6000613cbb82613eac565b9150613cc683613eb6565b9250613cf37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613cfb565b905092915050565b600082613d0b5760019050613dc7565b81613d195760009050613dc7565b8160018114613d2f5760028114613d3957613d68565b6001915050613dc7565b60ff841115613d4b57613d4a613f50565b5b8360020a915084821115613d6257613d61613f50565b5b50613dc7565b5060208310610133831016604e8410600b8410161715613d9d5782820a905083811115613d9857613d97613f50565b5b613dc7565b613daa8484846001613c5d565b92509050818404811115613dc157613dc0613f50565b5b81810290505b9392505050565b6000613dd982613eac565b9150613de483613eac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e1d57613e1c613f50565b5b828202905092915050565b6000613e3382613eac565b9150613e3e83613eac565b925082821015613e5157613e50613f50565b5b828203905092915050565b6000613e6782613e8c565b9050919050565b6000613e7982613e8c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ece82613ef9565b9050919050565b6000613ee082613ef9565b9050919050565b6000613ef282613eac565b9050919050565b6000613f0482613f0b565b9050919050565b6000613f1682613e8c565b9050919050565b60005b83811015613f3b578082015181840152602081019050613f20565b83811115613f4a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f54726164696e67206e6f74206c69766500000000000000000000000000000000600082015250565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616e2774207769746864726177204b72616b656e0000000000000000000000600082015250565b7f4d61782077616c6c657420747269676765726564000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b61413181613e5c565b811461413c57600080fd5b50565b61414881613e6e565b811461415357600080fd5b50565b61415f81613e80565b811461416a57600080fd5b50565b61417681613eac565b811461418157600080fd5b5056fea2646970667358221220586927b21098433bbe3ee9532d12379b365321ac70c562cd41bbdc495c42b1f664736f6c63430008070033
Deployed Bytecode
0x60806040526004361061037a5760003560e01c806370a08231116101d1578063b45bea5811610102578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610d31578063f8b45b0514610d5c578063fa0fcbb314610d87578063fef0006e14610db057610381565b8063dd62ed3e14610c51578063de2f477714610c8e578063f2bcf6a614610ccb578063f2fde38b14610d0857610381565b8063c0647dfb116100dc578063c0647dfb14610ba7578063d28d885214610bd0578063d4b4294e14610bfb578063d8670ac914610c2657610381565b8063b45bea5814610b28578063b4722ec514610b53578063b79b453314610b7c57610381565b806399115c5c1161016f578063a9059cbb11610149578063a9059cbb14610a6c578063ad5c464814610aa9578063b09f126614610ad4578063b12059e114610aff57610381565b806399115c5c146109d9578063a6a94c0114610a04578063a8aa1b3114610a4157610381565b80638a8c523c116101ab5780638a8c523c146109435780638c1a67841461095a57806393c173221461098557806395d89b41146109ae57610381565b806370a08231146108b057806371b962a4146108ed578063893d20e81461091857610381565b80632f54bf6e116102ab578063471ad90e11610249578063513e601911610223578063513e6019146107e0578063571ac8b01461080b578063688ba636146108485780636ebcf6071461087357610381565b8063471ad90e1461075f578063484dd5871461078a5780634b09d3b2146107b557610381565b806332424aa31161028557806332424aa3146106b55780633eaaf86b146106e0578063400343e71461070b578063470624021461073457610381565b80632f54bf6e1461062457806331275ad914610661578063313ce5671461068a57610381565b806312dcb1ca116103185780631d3f732c116102f25780631d3f732c1461057a57806323b872dd146105915780632b112e49146105ce5780632b14ca56146105f957610381565b806312dcb1ca146104d5578063151ebae61461051257806318160ddd1461054f57610381565b8063095ea7b311610354578063095ea7b3146104195780630b006d60146104565780630bda7cd71461047f57806311704f52146104aa57610381565b8063024c2ddd146103865780630445b667146103c357806306fdde03146103ee57610381565b3661038157005b600080fd5b34801561039257600080fd5b506103ad60048036038101906103a89190613393565b610ded565b6040516103ba9190613ae6565b60405180910390f35b3480156103cf57600080fd5b506103d8610e12565b6040516103e59190613ae6565b60405180910390f35b3480156103fa57600080fd5b50610403610e18565b6040516104109190613a04565b60405180910390f35b34801561042557600080fd5b50610440600480360381019061043b91906134cd565b610e55565b60405161044d91906139ce565b60405180910390f35b34801561046257600080fd5b5061047d6004803603810190610478919061353a565b610f47565b005b34801561048b57600080fd5b50610494610f99565b6040516104a19190613ae6565b60405180910390f35b3480156104b657600080fd5b506104bf610f9f565b6040516104cc91906139ce565b60405180910390f35b3480156104e157600080fd5b506104fc60048036038101906104f79190613339565b610fb2565b60405161050991906139ce565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613339565b611008565b60405161054691906139ce565b60405180910390f35b34801561055b57600080fd5b50610564611028565b6040516105719190613ae6565b60405180910390f35b34801561058657600080fd5b5061058f61104c565b005b34801561059d57600080fd5b506105b860048036038101906105b3919061343a565b6110ff565b6040516105c591906139ce565b60405180910390f35b3480156105da57600080fd5b506105e361137c565b6040516105f09190613ae6565b60405180910390f35b34801561060557600080fd5b5061060e6113c9565b60405161061b9190613ae6565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613339565b6113cf565b60405161065891906139ce565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613594565b611428565b005b34801561069657600080fd5b5061069f611482565b6040516106ac9190613b5b565b60405180910390f35b3480156106c157600080fd5b506106ca61148b565b6040516106d79190613b5b565b60405180910390f35b3480156106ec57600080fd5b506106f5611490565b6040516107029190613ae6565b60405180910390f35b34801561071757600080fd5b50610732600480360381019061072d9190613627565b6114b0565b005b34801561074057600080fd5b5061074961158a565b6040516107569190613ae6565b60405180910390f35b34801561076b57600080fd5b50610774611590565b6040516107819190613ae6565b60405180910390f35b34801561079657600080fd5b5061079f611596565b6040516107ac9190613ae6565b60405180910390f35b3480156107c157600080fd5b506107ca61159c565b6040516107d7919061390e565b60405180910390f35b3480156107ec57600080fd5b506107f56115c2565b604051610802919061390e565b60405180910390f35b34801561081757600080fd5b50610832600480360381019061082d9190613339565b6115e8565b60405161083f91906139ce565b60405180910390f35b34801561085457600080fd5b5061085d611617565b60405161086a919061390e565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190613339565b61163d565b6040516108a79190613ae6565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d29190613339565b611655565b6040516108e49190613ae6565b60405180910390f35b3480156108f957600080fd5b5061090261169e565b60405161090f919061390e565b60405180910390f35b34801561092457600080fd5b5061092d6116c4565b60405161093a919061390e565b60405180910390f35b34801561094f57600080fd5b506109586116ed565b005b34801561096657600080fd5b5061096f611752565b60405161097c9190613ae6565b60405180910390f35b34801561099157600080fd5b506109ac60048036038101906109a791906133d3565b611758565b005b3480156109ba57600080fd5b506109c36118aa565b6040516109d09190613a04565b60405180910390f35b3480156109e557600080fd5b506109ee6118e7565b6040516109fb9190613ae6565b60405180910390f35b348015610a1057600080fd5b50610a2b6004803603810190610a269190613339565b6118ed565b604051610a3891906139ce565b60405180910390f35b348015610a4d57600080fd5b50610a5661190d565b604051610a63919061390e565b60405180910390f35b348015610a7857600080fd5b50610a936004803603810190610a8e91906134cd565b611933565b604051610aa091906139ce565b60405180910390f35b348015610ab557600080fd5b50610abe611948565b604051610acb919061390e565b60405180910390f35b348015610ae057600080fd5b50610ae9611960565b604051610af69190613a04565b60405180910390f35b348015610b0b57600080fd5b50610b266004803603810190610b21919061348d565b611999565b005b348015610b3457600080fd5b50610b3d611a3c565b604051610b4a9190613ae6565b60405180910390f35b348015610b5f57600080fd5b50610b7a6004803603810190610b759190613339565b611a42565b005b348015610b8857600080fd5b50610b91611c18565b604051610b9e9190613ae6565b60405180910390f35b348015610bb357600080fd5b50610bce6004803603810190610bc9919061348d565b611c1e565b005b348015610bdc57600080fd5b50610be5611cc1565b604051610bf29190613a04565b60405180910390f35b348015610c0757600080fd5b50610c10611cfa565b604051610c1d9190613ae6565b60405180910390f35b348015610c3257600080fd5b50610c3b611d00565b604051610c489190613ae6565b60405180910390f35b348015610c5d57600080fd5b50610c786004803603810190610c739190613393565b611d06565b604051610c859190613ae6565b60405180910390f35b348015610c9a57600080fd5b50610cb56004803603810190610cb09190613339565b611d8d565b604051610cc291906139ce565b60405180910390f35b348015610cd757600080fd5b50610cf26004803603810190610ced9190613339565b611de3565b604051610cff91906139ce565b60405180910390f35b348015610d1457600080fd5b50610d2f6004803603810190610d2a9190613366565b611e81565b005b348015610d3d57600080fd5b50610d46611f43565b604051610d5391906139e9565b60405180910390f35b348015610d6857600080fd5b50610d71611f69565b604051610d7e9190613ae6565b60405180910390f35b348015610d9357600080fd5b50610dae6004803603810190610da9919061348d565b611f6f565b005b348015610dbc57600080fd5b50610dd76004803603810190610dd29190613339565b612012565b604051610de491906139ce565b60405180910390f35b6002602052816000526040600020602052806000526040600020600091509150505481565b601c5481565b60606040518060400160405280600681526020017f4b72616b656e0000000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f359190613ae6565b60405180910390a36001905092915050565b610f50336113cf565b610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8690613ac6565b60405180910390fd5b80601a8190555050565b601b5481565b601d60009054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60036020528060005260406000206000915054906101000a900460ff1681565b60006009600a6110389190613cb0565b633b9aca006110479190613dce565b905090565b611055336113cf565b611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90613ac6565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16476040516110b8906138f9565b60006040518083038185875af1925050503d80600081146110f5576040519150601f19603f3d011682016040523d82523d6000602084013e6110fa565b606091505b505050565b60006009600a61110f9190613cb0565b633b9aca0061111e9190613dce565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113685781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125690613a46565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112e79190613e28565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611373848484612032565b90509392505050565b60006113886000611655565b61139361dead611655565b6009600a6113a19190613cb0565b633b9aca006113b09190613dce565b6113ba9190613e28565b6113c49190613e28565b905090565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b611431336113cf565b611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146790613ac6565b60405180910390fd5b81601b8190555080601c819055505050565b60006009905090565b600981565b6009600a61149e9190613cb0565b633b9aca006114ad9190613dce565b81565b6114b9336113cf565b6114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef90613ac6565b60405180910390fd5b876006819055508660078190555085600881905550846009819055508486888a6115229190613bd6565b61152c9190613bd6565b6115369190613bd6565b600a8190555083600b8190555082600c8190555081600d8190555080600e81905550808284866115669190613bd6565b6115709190613bd6565b61157a9190613bd6565b600f819055505050505050505050565b600a5481565b600c5481565b600d5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611610826009600a6115fc9190613cb0565b633b9aca0061160b9190613dce565b610e55565b9050919050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915090505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116f6336113cf565b611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c90613ac6565b60405180910390fd5b6001601d60006101000a81548160ff021916908315150217905550565b60065481565b611761336113cf565b6117a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179790613ac6565b60405180910390fd5b83601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60606040518060400160405280600681526020017f4b72616b656e0000000000000000000000000000000000000000000000000000815250905090565b600b5481565b60056020528060005260406000206000915054906101000a900460ff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611940338484612032565b905092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6040518060400160405280600681526020017f4b72616b656e000000000000000000000000000000000000000000000000000081525081565b6119a2336113cf565b6119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613ac6565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60075481565b611a4b336113cf565b611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8190613ac6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af090613a86565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b54919061390e565b60206040518083038186803b158015611b6c57600080fd5b505afa158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190613567565b6040518363ffffffff1660e01b8152600401611bc1929190613944565b602060405180830381600087803b158015611bdb57600080fd5b505af1158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c13919061350d565b505050565b60085481565b611c27336113cf565b611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90613ac6565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6040518060400160405280600681526020017f4b72616b656e000000000000000000000000000000000000000000000000000081525081565b60095481565b600e5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611dee336113cf565b611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2490613ac6565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611e8a336113cf565b611ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec090613ac6565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611f389190613929565b60405180910390a150565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b611f78336113cf565b611fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fae90613ac6565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b6000601d60019054906101000a900460ff161561205b5761205484848461279e565b9050612797565b601d60009054906101000a900460ff16806120c1575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790613a26565b60405180910390fd5b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121ac57508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b9050801580156122065750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561229a57601a5484600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122599190613bd6565b10612299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229090613aa6565b60405180910390fd5b5b8080156122a95750601b548410155b1561237157600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123155750601d60019054906101000a900460ff16155b80156123625750601c54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156123705761236f612949565b5b5b83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea90613a66565b60405180910390fd5b83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243e9190613e28565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125285750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b806125d45750600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125d35750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b5b6125df576000612684565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126835750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b61268e578461269a565b612699878787612ed6565b5b905080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126e79190613bd6565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127879190613ae6565b60405180910390a3600193505050505b9392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281990613a66565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286d9190613e28565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128fb9190613bd6565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b6001601d60016101000a81548160ff021916908315150217905550600060135460125460115460105461297c9190613bd6565b6129869190613bd6565b6129909190613bd6565b9050600060026013546129a39190613c2c565b90506000816129b130611655565b6129bb9190613e28565b905060004790506000600267ffffffffffffffff8111156129df576129de613fdd565b5b604051908082528060200260200182016040528015612a0d5781602001602082028036833780820191505090505b5090503081600081518110612a2557612a24613fae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110612a8857612a87613fae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401612b26959493929190613b01565b600060405180830381600087803b158015612b4057600080fd5b505af1158015612b54573d6000803e3d6000fd5b5050505060008247612b669190613e28565b9050600060028760105484612b7b9190613dce565b612b859190613c2c565b612b8f9190613c2c565b905060008760115484612ba29190613dce565b612bac9190613c2c565b905060008860125485612bbf9190613dce565b612bc99190613c2c565b905060008960135486612bdc9190613dce565b612be69190613c2c565b905060006010819055506000601181905550600060128190555060006013819055506000841115612c9d57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612c57906138f9565b60006040518083038185875af1925050503d8060008114612c94576040519150601f19603f3d011682016040523d82523d6000602084013e612c99565b606091505b5050505b6000831115612d3257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612cec906138f9565b60006040518083038185875af1925050503d8060008114612d29576040519150601f19603f3d011682016040523d82523d6000602084013e612d2e565b606091505b5050505b6000821115612dc757601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d81906138f9565b60006040518083038185875af1925050503d8060008114612dbe576040519150601f19603f3d011682016040523d82523d6000602084013e612dc3565b606091505b5050505b6000811115612eaf57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308c600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e599695949392919061396d565b6060604051808303818588803b158015612e7257600080fd5b505af1158015612e86573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612eab91906135d4565b5050505b505050505050505050506000601d60016101000a81548160ff021916908315150217905550565b600080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f7e5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b9050600081612f8f57600a54612f93565b600f545b905060006127108286612fa69190613dce565b612fb09190613c2c565b905060008211156131b05782156130ba576000600b541115612ffe5781600b5482612fdb9190613dce565b612fe59190613c2c565b60106000828254612ff69190613bd6565b925050819055505b6000600c54111561303b5781600c54826130189190613dce565b6130229190613c2c565b601160008282546130339190613bd6565b925050819055505b6000600d5411156130785781600d54826130559190613dce565b61305f9190613c2c565b601260008282546130709190613bd6565b925050819055505b6000600e5411156130b55781600e54826130929190613dce565b61309c9190613c2c565b601360008282546130ad9190613bd6565b925050819055505b6131af565b600060065411156130f75781600654826130d49190613dce565b6130de9190613c2c565b601060008282546130ef9190613bd6565b925050819055505b600060075411156131345781600754826131119190613dce565b61311b9190613c2c565b6011600082825461312c9190613bd6565b925050819055505b6000600854111561317157816008548261314e9190613dce565b6131589190613c2c565b601260008282546131699190613bd6565b925050819055505b600060095411156131ae57816009548261318b9190613dce565b6131959190613c2c565b601360008282546131a69190613bd6565b925050819055505b5b5b80600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fb9190613bd6565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161329b9190613ae6565b60405180910390a380856132af9190613e28565b93505050509392505050565b6000813590506132ca81614128565b92915050565b6000813590506132df8161413f565b92915050565b6000813590506132f481614156565b92915050565b60008151905061330981614156565b92915050565b60008135905061331e8161416d565b92915050565b6000815190506133338161416d565b92915050565b60006020828403121561334f5761334e61400c565b5b600061335d848285016132bb565b91505092915050565b60006020828403121561337c5761337b61400c565b5b600061338a848285016132d0565b91505092915050565b600080604083850312156133aa576133a961400c565b5b60006133b8858286016132bb565b92505060206133c9858286016132bb565b9150509250929050565b600080600080608085870312156133ed576133ec61400c565b5b60006133fb878288016132bb565b945050602061340c878288016132bb565b935050604061341d878288016132bb565b925050606061342e878288016132bb565b91505092959194509250565b6000806000606084860312156134535761345261400c565b5b6000613461868287016132bb565b9350506020613472868287016132bb565b92505060406134838682870161330f565b9150509250925092565b600080604083850312156134a4576134a361400c565b5b60006134b2858286016132bb565b92505060206134c3858286016132e5565b9150509250929050565b600080604083850312156134e4576134e361400c565b5b60006134f2858286016132bb565b92505060206135038582860161330f565b9150509250929050565b6000602082840312156135235761352261400c565b5b6000613531848285016132fa565b91505092915050565b6000602082840312156135505761354f61400c565b5b600061355e8482850161330f565b91505092915050565b60006020828403121561357d5761357c61400c565b5b600061358b84828501613324565b91505092915050565b600080604083850312156135ab576135aa61400c565b5b60006135b98582860161330f565b92505060206135ca8582860161330f565b9150509250929050565b6000806000606084860312156135ed576135ec61400c565b5b60006135fb86828701613324565b935050602061360c86828701613324565b925050604061361d86828701613324565b9150509250925092565b600080600080600080600080610100898b0312156136485761364761400c565b5b60006136568b828c0161330f565b98505060206136678b828c0161330f565b97505060406136788b828c0161330f565b96505060606136898b828c0161330f565b955050608061369a8b828c0161330f565b94505060a06136ab8b828c0161330f565b93505060c06136bc8b828c0161330f565b92505060e06136cd8b828c0161330f565b9150509295985092959890939650565b60006136e98383613704565b60208301905092915050565b6136fe81613ec3565b82525050565b61370d81613e5c565b82525050565b61371c81613e5c565b82525050565b600061372d82613b86565b6137378185613ba9565b935061374283613b76565b8060005b8381101561377357815161375a88826136dd565b975061376583613b9c565b925050600181019050613746565b5085935050505092915050565b61378981613e80565b82525050565b61379881613ed5565b82525050565b6137a781613ee7565b82525050565b60006137b882613b91565b6137c28185613bc5565b93506137d2818560208601613f1d565b6137db81614011565b840191505092915050565b60006137f3601083613bc5565b91506137fe8261402f565b602082019050919050565b6000613816601683613bc5565b915061382182614058565b602082019050919050565b6000613839601483613bc5565b915061384482614081565b602082019050919050565b600061385c601583613bc5565b9150613867826140aa565b602082019050919050565b600061387f601483613bc5565b915061388a826140d3565b602082019050919050565b60006138a2600683613bc5565b91506138ad826140fc565b602082019050919050565b60006138c5600083613bba565b91506138d082614125565b600082019050919050565b6138e481613eac565b82525050565b6138f381613eb6565b82525050565b6000613904826138b8565b9150819050919050565b60006020820190506139236000830184613713565b92915050565b600060208201905061393e60008301846136f5565b92915050565b60006040820190506139596000830185613713565b61396660208301846138db565b9392505050565b600060c0820190506139826000830189613713565b61398f60208301886138db565b61399c604083018761379e565b6139a9606083018661379e565b6139b66080830185613713565b6139c360a08301846138db565b979650505050505050565b60006020820190506139e36000830184613780565b92915050565b60006020820190506139fe600083018461378f565b92915050565b60006020820190508181036000830152613a1e81846137ad565b905092915050565b60006020820190508181036000830152613a3f816137e6565b9050919050565b60006020820190508181036000830152613a5f81613809565b9050919050565b60006020820190508181036000830152613a7f8161382c565b9050919050565b60006020820190508181036000830152613a9f8161384f565b9050919050565b60006020820190508181036000830152613abf81613872565b9050919050565b60006020820190508181036000830152613adf81613895565b9050919050565b6000602082019050613afb60008301846138db565b92915050565b600060a082019050613b1660008301886138db565b613b23602083018761379e565b8181036040830152613b358186613722565b9050613b446060830185613713565b613b5160808301846138db565b9695505050505050565b6000602082019050613b7060008301846138ea565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613be182613eac565b9150613bec83613eac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c2157613c20613f50565b5b828201905092915050565b6000613c3782613eac565b9150613c4283613eac565b925082613c5257613c51613f7f565b5b828204905092915050565b6000808291508390505b6001851115613ca757808604811115613c8357613c82613f50565b5b6001851615613c925780820291505b8081029050613ca085614022565b9450613c67565b94509492505050565b6000613cbb82613eac565b9150613cc683613eb6565b9250613cf37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613cfb565b905092915050565b600082613d0b5760019050613dc7565b81613d195760009050613dc7565b8160018114613d2f5760028114613d3957613d68565b6001915050613dc7565b60ff841115613d4b57613d4a613f50565b5b8360020a915084821115613d6257613d61613f50565b5b50613dc7565b5060208310610133831016604e8410600b8410161715613d9d5782820a905083811115613d9857613d97613f50565b5b613dc7565b613daa8484846001613c5d565b92509050818404811115613dc157613dc0613f50565b5b81810290505b9392505050565b6000613dd982613eac565b9150613de483613eac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e1d57613e1c613f50565b5b828202905092915050565b6000613e3382613eac565b9150613e3e83613eac565b925082821015613e5157613e50613f50565b5b828203905092915050565b6000613e6782613e8c565b9050919050565b6000613e7982613e8c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ece82613ef9565b9050919050565b6000613ee082613ef9565b9050919050565b6000613ef282613eac565b9050919050565b6000613f0482613f0b565b9050919050565b6000613f1682613e8c565b9050919050565b60005b83811015613f3b578082015181840152602081019050613f20565b83811115613f4a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f54726164696e67206e6f74206c69766500000000000000000000000000000000600082015250565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616e2774207769746864726177204b72616b656e0000000000000000000000600082015250565b7f4d61782077616c6c657420747269676765726564000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b61413181613e5c565b811461413c57600080fd5b50565b61414881613e6e565b811461415357600080fd5b50565b61415f81613e80565b811461416a57600080fd5b50565b61417681613eac565b811461418157600080fd5b5056fea2646970667358221220586927b21098433bbe3ee9532d12379b365321ac70c562cd41bbdc495c42b1f664736f6c63430008070033
Deployed Bytecode Sourcemap
2468:11432:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2781:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4187:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5318:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5802:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11766:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4150:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4253:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2858:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5000:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13501:121;;;;;;;;;;;;;:::i;:::-;;6315:429;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13279:214;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3362:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1626:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13092:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5110:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2604:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2648:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11879:786;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3160:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3235:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3277:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3729:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3647:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6026:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3570:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2729:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5520:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3813:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5420:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13003:81;;;;;;;;;;;;;:::i;:::-;;2997:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12673:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5212:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3195:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2948:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4058:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6151:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3896:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2556:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11054:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3036:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13630:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3077:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11522:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2510:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3120:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3321:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5647:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11174:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11642:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1735:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3976:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4086:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11288:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2903:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2781:68;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4187:57::-;;;;:::o;5318:94::-;5366:13;5399:5;;;;;;;;;;;;;;;;;5392:12;;5318:94;:::o;5802:216::-;5877:4;5929:6;5894:11;:23;5906:10;5894:23;;;;;;;;;;;;;;;:32;5918:7;5894:32;;;;;;;;;;;;;;;:41;;;;5972:7;5951:37;;5960:10;5951:37;;;5981:6;5951:37;;;;;;:::i;:::-;;;;;;;;6006:4;5999:11;;5802:216;;;;:::o;11766:105::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11853:10:::1;11841:9;:22;;;;11766:105:::0;:::o;4150:30::-;;;;:::o;4253:31::-;;;;;;;;;;;;;:::o;11408:106::-;11468:4;11492:5;:14;11498:7;11492:14;;;;;;;;;;;;;;;;;;;;;;;;;11485:21;;11408:106;;;:::o;2858:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;5000:102::-;5055:7;2638:1;2704:2;:15;;;;:::i;:::-;2687:13;:33;;;;:::i;:::-;5075:19;;5000:102;:::o;13501:121::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13564:10:::1;13556:24;;13588:21;13556:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13501:121::o:0;6315:429::-;6415:4;2638:1;2704:2;:15;;;;:::i;:::-;2687:13;:33;;;;:::i;:::-;6436:11;:19;6448:6;6436:19;;;;;;;;;;;;;;;:31;6456:10;6436:31;;;;;;;;;;;;;;;;:47;6432:245;;6543:6;6508:11;:19;6520:6;6508:19;;;;;;;;;;;;;;;:31;6528:10;6508:31;;;;;;;;;;;;;;;;:41;;6500:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;6659:6;6625:11;:19;6637:6;6625:19;;;;;;;;;;;;;;;:31;6645:10;6625:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6591:11;:19;6603:6;6591:19;;;;;;;;;;;;;;;:31;6611:10;6591:31;;;;;;;;;;;;;;;:74;;;;6432:245;6696:40;6710:6;6718:9;6729:6;6696:13;:40::i;:::-;6689:47;;6315:429;;;;;:::o;13279:214::-;13334:7;13432:53;13442:42;13432:9;:53::i;:::-;13376;13386:42;13376:9;:53::i;:::-;2638:1;2704:2;:15;;;;:::i;:::-;2687:13;:33;;;;:::i;:::-;13361:68;;;;:::i;:::-;:124;;;;:::i;:::-;13354:131;;13279:214;:::o;3362:29::-;;;;:::o;1626:103::-;1681:4;1716:5;;;;;;;;;;;1705:16;;:7;:16;;;1698:23;;1626:103;;;:::o;13092:179::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13210:12:::1;13196:11;:26;;;;13249:14;13233:13;:30;;;;13092:179:::0;;:::o;5110:94::-;5162:5;2638:1;5180:16;;5110:94;:::o;2604:35::-;2638:1;2604:35;:::o;2648:72::-;2638:1;2704:2;:15;;;;:::i;:::-;2687:13;:33;;;;:::i;:::-;2648:72;:::o;11879:786::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12146:11:::1;12133:10;:24;;;;12186:16;12168:15;:34;;;;12233:18;12213:17;:38;;;;12279:15;12262:14;:32;;;;12368:15;12347:18;12328:16;12314:11;:30;;;;:::i;:::-;:51;;;;:::i;:::-;:69;;;;:::i;:::-;12305:6;:78;;;;12408:12;12394:11;:26;;;;12450:17;12431:16;:36;;;;12499:19;12478:18;:40;;;;12547:16;12529:15;:34;;;;12641:16;12619:19;12599:17;12584:12;:32;;;;:::i;:::-;:54;;;;:::i;:::-;:73;;;;:::i;:::-;12574:7;:83;;;;11879:786:::0;;;;;;;;:::o;3160:28::-;;;;:::o;3235:35::-;;;;:::o;3277:37::-;;;;:::o;3729:77::-;;;;;;;;;;;;;:::o;3647:75::-;;;;;;;;;;;;;:::o;6026:117::-;6081:4;6105:30;6113:7;2638:1;2704:2;:15;;;;:::i;:::-;2687:13;:33;;;;:::i;:::-;6105:7;:30::i;:::-;6098:37;;6026:117;;;:::o;3570:70::-;;;;;;;;;;;;;:::o;2729:45::-;;;;;;;;;;;;;;;;;:::o;5520:119::-;5586:7;5613:9;:18;5623:7;5613:18;;;;;;;;;;;;;;;;5606:25;;5520:119;;;:::o;3813:74::-;;;;;;;;;;;;;:::o;5420:92::-;5472:7;5499:5;;;;;;;;;;;5492:12;;5420:92;:::o;13003:81::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13072:4:::1;13058:11;;:18;;;;;;;;;;;;;;;;;;13003:81::o:0;2997:32::-;;;;:::o;12673:322::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12839:11:::1;12826:10;;:24;;;;;;;;;;;;;;;;;;12879:16;12861:15;;:34;;;;;;;;;;;;;;;;;;12926:18;12906:17;;:38;;;;;;;;;;;;;;;;;;12972:15;12955:14;;:32;;;;;;;;;;;;;;;;;;12673:322:::0;;;;:::o;5212:98::-;5262:13;5295:7;;;;;;;;;;;;;;;;;5288:14;;5212:98;:::o;3195:33::-;;;;:::o;2948:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;4058:19::-;;;;;;;;;;;;;:::o;6151:156::-;6231:4;6255:44;6269:10;6281:9;6292:6;6255:13;:44::i;:::-;6248:51;;6151:156;;;;:::o;3896:73::-;3927:42;3896:73;:::o;2556:41::-;;;;;;;;;;;;;;;;;;;:::o;11054:112::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11152:6:::1;11135:7;:14;11143:5;11135:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11054:112:::0;;:::o;3036:34::-;;;;:::o;13630:267::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13739:4:::1;13714:30;;:13;:30;;;;13706:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13781:13;13804;13781:37;;13829:6;:15;;;13845:10;13857:6;:16;;;13882:4;13857:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13829:60;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13695:202;13630:267:::0;:::o;3077:36::-;;;;:::o;11522:112::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11620:6:::1;11603:5;:14;11609:7;11603:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11522:112:::0;;:::o;2510:39::-;;;;;;;;;;;;;;;;;;;:::o;3120:33::-;;;;:::o;3321:34::-;;;;:::o;5647:147::-;5731:7;5758:11;:19;5770:6;5758:19;;;;;;;;;;;;;;;:28;5778:7;5758:28;;;;;;;;;;;;;;;;5751:35;;5647:147;;;;:::o;11174:106::-;11234:4;11258:7;:14;11266:5;11258:14;;;;;;;;;;;;;;;;;;;;;;;;;11251:21;;11174:106;;;:::o;11642:116::-;11712:4;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11736:5:::1;:14;11742:7;11736:14;;;;;;;;;;;;;;;;;;;;;;;;;11729:21;;11642:116:::0;;;:::o;1735:156::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1827:9:::1;1819:5;::::0;:17:::1;;;;;;;;;;;;;;;;;;1852:31;1873:9;1852:31;;;;;;:::i;:::-;;;;;;;;1735:156:::0;:::o;3976:75::-;;;;;;;;;;;;;:::o;4086:57::-;;;;:::o;11288:112::-;1570:19;1578:10;1570:7;:19::i;:::-;1562:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11386:6:::1;11369:5;:14;11375:7;11369:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11288:112:::0;;:::o;2903:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;6752:1206::-;6843:4;6864:9;;;;;;;;;;;6860:63;;;6882:41;6897:6;6905:9;6916:6;6882:14;:41::i;:::-;6875:48;;;;6860:63;6942:11;;;;;;;;;;;:30;;;;6967:5;;;;;;;;;;6957:15;;:6;:15;;;6942:30;6934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7006:21;7038:6;;;;;;;;;;;7006:39;;7056:10;7069:7;:18;7077:9;7069:18;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;7104:13;7091:26;;:9;:26;;;7069:48;7056:61;;7135:5;7134:6;:27;;;;;7145:5;:16;7151:9;7145:16;;;;;;;;;;;;;;;;;;;;;;;;;7144:17;7134:27;7130:109;;;7205:9;;7195:6;7172:9;:20;7182:9;7172:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;7171:43;7163:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;7130:109;7256:5;:30;;;;;7275:11;;7265:6;:21;;7256:30;7252:166;;;7308:7;:19;7316:10;7308:19;;;;;;;;;;;;;;;;;;;;;;;;;7307:20;:34;;;;;7332:9;;;;;;;;;;;7331:10;7307:34;:79;;;;;7373:13;;7345:9;:24;7363:4;7345:24;;;;;;;;;;;;;;;;:41;;7307:79;7303:103;;;7388:18;:16;:18::i;:::-;7303:103;7252:166;7459:6;7438:9;:17;7448:6;7438:17;;;;;;;;;;;;;;;;:27;;7430:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7541:6;7521:9;:17;7531:6;7521:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;7501:9;:17;7511:6;7501:17;;;;;;;;;;;;;;;:46;;;;7560:22;7588:7;:15;7596:6;7588:15;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;7625:6;;;;;;;;;;;7607:25;;:6;:25;;;7588:44;7587:101;;;;7638:7;:18;7646:9;7638:18;;;;;;;;;;;;;;;;;;;;;;;;;:49;;;;7680:6;;;;;;;;;;;7659:28;;:9;:28;;;7638:49;7587:101;7586:149;;7730:5;7586:149;;;7693:5;:13;7699:6;7693:13;;;;;;;;;;;;;;;;;;;;;;;;;7692:14;:35;;;;;7711:5;:16;7717:9;7711:16;;;;;;;;;;;;;;;;;;;;;;;;;7710:17;7692:35;7586:149;7585:209;;7788:6;7585:209;;;7739:46;7759:6;7767:9;7778:6;7739:19;:46::i;:::-;7585:209;7560:234;;7853:14;7830:9;:20;7840:9;7830:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;7807:9;:20;7817:9;7807:20;;;;;;;;;;;;;;;:60;;;;7902:9;7885:43;;7894:6;7885:43;;;7913:14;7885:43;;;;;;:::i;:::-;;;;;;;;7946:4;7939:11;;;;;6752:1206;;;;;;:::o;7966:319::-;8058:4;8104:6;8083:9;:17;8093:6;8083:17;;;;;;;;;;;;;;;;:27;;8075:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8186:6;8166:9;:17;8176:6;8166:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;8146:9;:17;8156:6;8146:17;;;;;;;;;;;;;;;:46;;;;8249:6;8226:9;:20;8236:9;8226:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;8203:9;:20;8213:9;8203:20;;;;;;;;;;;;;;;:52;;;;8273:4;8266:11;;7966:319;;;;;:::o;9569:1477::-;4367:4;4355:9;;:16;;;;;;;;;;;;;;;;;;9625:15:::1;9697;;9676:18;;9657:16;;9643:11;;:30;;;;:::i;:::-;:51;;;;:::i;:::-;:69;;;;:::i;:::-;9625:87;;9725:34;9780:1;9762:15;;:19;;;;:::i;:::-;9725:56;;9792:18;9840:26;9813:24;9831:4;9813:9;:24::i;:::-;:53;;;;:::i;:::-;9792:74;;9879:24;9906:21;9879:48;;9940:21;9978:1;9964:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9940:40;;10009:4;9991;9996:1;9991:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;3927:42;10025:4;10030:1;10025:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;10050:6;;;;;;;;;;;:57;;;10108:10;10120:1;10123:4;10137;10144:15;10050:110;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10173:12;10212:16;10188:21;:40;;;;:::i;:::-;10173:55;;10241:16;10291:1;10281:7;10267:11;;10260:4;:18;;;;:::i;:::-;:28;;;;:::i;:::-;:32;;;;:::i;:::-;10241:51;;10303:21;10353:7;10334:16;;10327:4;:23;;;;:::i;:::-;:33;;;;:::i;:::-;10303:57;;10371:23;10425:7;10404:18;;10397:4;:25;;;;:::i;:::-;:35;;;;:::i;:::-;10371:61;;10443:20;10491:7;10473:15;;10466:4;:22;;;;:::i;:::-;:32;;;;:::i;:::-;10443:55;;10525:1;10511:11;:15;;;;10556:1;10537:16;:20;;;;10589:1;10568:18;:22;;;;10619:1;10601:15;:19;;;;10648:1;10637:8;:12;10633:63;;;10659:10;;;;;;;;;;;10651:24;;10683:8;10651:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10633:63;10727:1;10711:13;:17;10707:78;;;10738:15;;;;;;;;;;;10730:29;;10767:13;10730:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10707:78;10818:1;10800:15;:19;10796:84;;;10829:17;;;;;;;;;;;10821:31;;10860:15;10821:59;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10796:84;10910:1;10895:12;:16;10891:147;;;10913:6;;;;;;;;;;;:22;;;10943:12;10965:4;10972:26;11000:1;11003::::0;11006:14:::1;;;;;;;;;;;11022:15;10913:125;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10891:147;9614:1432;;;;;;;;;;4406:5:::0;4394:9;;:17;;;;;;;;;;;;;;;;;;9569:1477::o;8293:1268::-;8389:7;8409:10;8422:7;:17;8430:8;8422:17;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;8463:6;;;;;;;;;;;8443:27;;:8;:27;;;8422:48;8409:61;;8481:12;8496:5;:24;;8514:6;;8496:24;;;8504:7;;8496:24;8481:39;;8531:12;8562:5;8555:4;8546:6;:13;;;;:::i;:::-;:21;;;;:::i;:::-;8531:36;;8591:1;8584:4;:8;8580:817;;;8613:5;8609:777;;;8657:1;8643:11;;:15;8639:61;;;8696:4;8682:11;;8675:4;:18;;;;:::i;:::-;:25;;;;:::i;:::-;8660:11;;:40;;;;;;;:::i;:::-;;;;;;;;8639:61;8742:1;8723:16;;:20;8719:76;;;8791:4;8772:16;;8765:4;:23;;;;:::i;:::-;:30;;;;:::i;:::-;8745:16;;:50;;;;;;;:::i;:::-;;;;;;;;8719:76;8839:1;8818:18;;:22;8814:82;;;8892:4;8871:18;;8864:4;:25;;;;:::i;:::-;:32;;;;:::i;:::-;8842:18;;:54;;;;;;;:::i;:::-;;;;;;;;8814:82;8937:1;8919:15;;:19;8915:73;;;8984:4;8966:15;;8959:4;:22;;;;:::i;:::-;:29;;;;:::i;:::-;8940:15;;:48;;;;;;;:::i;:::-;;;;;;;;8915:73;8609:777;;;9046:1;9033:10;;:14;9029:59;;;9084:4;9071:10;;9064:4;:17;;;;:::i;:::-;:24;;;;:::i;:::-;9049:11;;:39;;;;;;;:::i;:::-;;;;;;;;9029:59;9129:1;9111:15;;:19;9107:74;;;9177:4;9159:15;;9152:4;:22;;;;:::i;:::-;:29;;;;:::i;:::-;9132:16;;:49;;;;;;;:::i;:::-;;;;;;;;9107:74;9224:1;9204:17;;:21;9200:80;;;9276:4;9256:17;;9249:4;:24;;;;:::i;:::-;:31;;;;:::i;:::-;9227:18;;:53;;;;;;;:::i;:::-;;;;;;;;9200:80;9320:1;9303:14;;:18;9299:71;;;9366:4;9349:14;;9342:4;:21;;;;:::i;:::-;:28;;;;:::i;:::-;9323:15;;:47;;;;;;;:::i;:::-;;;;;;;;9299:71;8609:777;8580:817;9463:4;9436:9;:24;9454:4;9436:24;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;9409:9;:24;9427:4;9409:24;;;;;;;;;;;;;;;:58;;;;9508:4;9483:37;;9492:6;9483:37;;;9515:4;9483:37;;;;;;:::i;:::-;;;;;;;;9549:4;9540:6;:13;;;;:::i;:::-;9533:20;;;;;8293:1268;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;313:133;;;;:::o;452:137::-;506:5;537:6;531:13;522:22;;553:30;577:5;553:30;:::i;:::-;452:137;;;;:::o;595:139::-;641:5;679:6;666:20;657:29;;695:33;722:5;695:33;:::i;:::-;595:139;;;;:::o;740:143::-;797:5;828:6;822:13;813:22;;844:33;871:5;844:33;:::i;:::-;740:143;;;;:::o;889:329::-;948:6;997:2;985:9;976:7;972:23;968:32;965:119;;;1003:79;;:::i;:::-;965:119;1123:1;1148:53;1193:7;1184:6;1173:9;1169:22;1148:53;:::i;:::-;1138:63;;1094:117;889:329;;;;:::o;1224:345::-;1291:6;1340:2;1328:9;1319:7;1315:23;1311:32;1308:119;;;1346:79;;:::i;:::-;1308:119;1466:1;1491:61;1544:7;1535:6;1524:9;1520:22;1491:61;:::i;:::-;1481:71;;1437:125;1224:345;;;;:::o;1575:474::-;1643:6;1651;1700:2;1688:9;1679:7;1675:23;1671:32;1668:119;;;1706:79;;:::i;:::-;1668:119;1826:1;1851:53;1896:7;1887:6;1876:9;1872:22;1851:53;:::i;:::-;1841:63;;1797:117;1953:2;1979:53;2024:7;2015:6;2004:9;2000:22;1979:53;:::i;:::-;1969:63;;1924:118;1575:474;;;;;:::o;2055:765::-;2141:6;2149;2157;2165;2214:3;2202:9;2193:7;2189:23;2185:33;2182:120;;;2221:79;;:::i;:::-;2182:120;2341:1;2366:53;2411:7;2402:6;2391:9;2387:22;2366:53;:::i;:::-;2356:63;;2312:117;2468:2;2494:53;2539:7;2530:6;2519:9;2515:22;2494:53;:::i;:::-;2484:63;;2439:118;2596:2;2622:53;2667:7;2658:6;2647:9;2643:22;2622:53;:::i;:::-;2612:63;;2567:118;2724:2;2750:53;2795:7;2786:6;2775:9;2771:22;2750:53;:::i;:::-;2740:63;;2695:118;2055:765;;;;;;;:::o;2826:619::-;2903:6;2911;2919;2968:2;2956:9;2947:7;2943:23;2939:32;2936:119;;;2974:79;;:::i;:::-;2936:119;3094:1;3119:53;3164:7;3155:6;3144:9;3140:22;3119:53;:::i;:::-;3109:63;;3065:117;3221:2;3247:53;3292:7;3283:6;3272:9;3268:22;3247:53;:::i;:::-;3237:63;;3192:118;3349:2;3375:53;3420:7;3411:6;3400:9;3396:22;3375:53;:::i;:::-;3365:63;;3320:118;2826:619;;;;;:::o;3451:468::-;3516:6;3524;3573:2;3561:9;3552:7;3548:23;3544:32;3541:119;;;3579:79;;:::i;:::-;3541:119;3699:1;3724:53;3769:7;3760:6;3749:9;3745:22;3724:53;:::i;:::-;3714:63;;3670:117;3826:2;3852:50;3894:7;3885:6;3874:9;3870:22;3852:50;:::i;:::-;3842:60;;3797:115;3451:468;;;;;:::o;3925:474::-;3993:6;4001;4050:2;4038:9;4029:7;4025:23;4021:32;4018:119;;;4056:79;;:::i;:::-;4018:119;4176:1;4201:53;4246:7;4237:6;4226:9;4222:22;4201:53;:::i;:::-;4191:63;;4147:117;4303:2;4329:53;4374:7;4365:6;4354:9;4350:22;4329:53;:::i;:::-;4319:63;;4274:118;3925:474;;;;;:::o;4405:345::-;4472:6;4521:2;4509:9;4500:7;4496:23;4492:32;4489:119;;;4527:79;;:::i;:::-;4489:119;4647:1;4672:61;4725:7;4716:6;4705:9;4701:22;4672:61;:::i;:::-;4662:71;;4618:125;4405:345;;;;:::o;4756:329::-;4815:6;4864:2;4852:9;4843:7;4839:23;4835:32;4832:119;;;4870:79;;:::i;:::-;4832:119;4990:1;5015:53;5060:7;5051:6;5040:9;5036:22;5015:53;:::i;:::-;5005:63;;4961:117;4756:329;;;;:::o;5091:351::-;5161:6;5210:2;5198:9;5189:7;5185:23;5181:32;5178:119;;;5216:79;;:::i;:::-;5178:119;5336:1;5361:64;5417:7;5408:6;5397:9;5393:22;5361:64;:::i;:::-;5351:74;;5307:128;5091:351;;;;:::o;5448:474::-;5516:6;5524;5573:2;5561:9;5552:7;5548:23;5544:32;5541:119;;;5579:79;;:::i;:::-;5541:119;5699:1;5724:53;5769:7;5760:6;5749:9;5745:22;5724:53;:::i;:::-;5714:63;;5670:117;5826:2;5852:53;5897:7;5888:6;5877:9;5873:22;5852:53;:::i;:::-;5842:63;;5797:118;5448:474;;;;;:::o;5928:663::-;6016:6;6024;6032;6081:2;6069:9;6060:7;6056:23;6052:32;6049:119;;;6087:79;;:::i;:::-;6049:119;6207:1;6232:64;6288:7;6279:6;6268:9;6264:22;6232:64;:::i;:::-;6222:74;;6178:128;6345:2;6371:64;6427:7;6418:6;6407:9;6403:22;6371:64;:::i;:::-;6361:74;;6316:129;6484:2;6510:64;6566:7;6557:6;6546:9;6542:22;6510:64;:::i;:::-;6500:74;;6455:129;5928:663;;;;;:::o;6597:1349::-;6719:6;6727;6735;6743;6751;6759;6767;6775;6824:3;6812:9;6803:7;6799:23;6795:33;6792:120;;;6831:79;;:::i;:::-;6792:120;6951:1;6976:53;7021:7;7012:6;7001:9;6997:22;6976:53;:::i;:::-;6966:63;;6922:117;7078:2;7104:53;7149:7;7140:6;7129:9;7125:22;7104:53;:::i;:::-;7094:63;;7049:118;7206:2;7232:53;7277:7;7268:6;7257:9;7253:22;7232:53;:::i;:::-;7222:63;;7177:118;7334:2;7360:53;7405:7;7396:6;7385:9;7381:22;7360:53;:::i;:::-;7350:63;;7305:118;7462:3;7489:53;7534:7;7525:6;7514:9;7510:22;7489:53;:::i;:::-;7479:63;;7433:119;7591:3;7618:53;7663:7;7654:6;7643:9;7639:22;7618:53;:::i;:::-;7608:63;;7562:119;7720:3;7747:53;7792:7;7783:6;7772:9;7768:22;7747:53;:::i;:::-;7737:63;;7691:119;7849:3;7876:53;7921:7;7912:6;7901:9;7897:22;7876:53;:::i;:::-;7866:63;;7820:119;6597:1349;;;;;;;;;;;:::o;7952:179::-;8021:10;8042:46;8084:3;8076:6;8042:46;:::i;:::-;8120:4;8115:3;8111:14;8097:28;;7952:179;;;;:::o;8137:147::-;8232:45;8271:5;8232:45;:::i;:::-;8227:3;8220:58;8137:147;;:::o;8290:108::-;8367:24;8385:5;8367:24;:::i;:::-;8362:3;8355:37;8290:108;;:::o;8404:118::-;8491:24;8509:5;8491:24;:::i;:::-;8486:3;8479:37;8404:118;;:::o;8558:732::-;8677:3;8706:54;8754:5;8706:54;:::i;:::-;8776:86;8855:6;8850:3;8776:86;:::i;:::-;8769:93;;8886:56;8936:5;8886:56;:::i;:::-;8965:7;8996:1;8981:284;9006:6;9003:1;9000:13;8981:284;;;9082:6;9076:13;9109:63;9168:3;9153:13;9109:63;:::i;:::-;9102:70;;9195:60;9248:6;9195:60;:::i;:::-;9185:70;;9041:224;9028:1;9025;9021:9;9016:14;;8981:284;;;8985:14;9281:3;9274:10;;8682:608;;;8558:732;;;;:::o;9296:109::-;9377:21;9392:5;9377:21;:::i;:::-;9372:3;9365:34;9296:109;;:::o;9411:161::-;9513:52;9559:5;9513:52;:::i;:::-;9508:3;9501:65;9411:161;;:::o;9578:147::-;9673:45;9712:5;9673:45;:::i;:::-;9668:3;9661:58;9578:147;;:::o;9731:364::-;9819:3;9847:39;9880:5;9847:39;:::i;:::-;9902:71;9966:6;9961:3;9902:71;:::i;:::-;9895:78;;9982:52;10027:6;10022:3;10015:4;10008:5;10004:16;9982:52;:::i;:::-;10059:29;10081:6;10059:29;:::i;:::-;10054:3;10050:39;10043:46;;9823:272;9731:364;;;;:::o;10101:366::-;10243:3;10264:67;10328:2;10323:3;10264:67;:::i;:::-;10257:74;;10340:93;10429:3;10340:93;:::i;:::-;10458:2;10453:3;10449:12;10442:19;;10101:366;;;:::o;10473:::-;10615:3;10636:67;10700:2;10695:3;10636:67;:::i;:::-;10629:74;;10712:93;10801:3;10712:93;:::i;:::-;10830:2;10825:3;10821:12;10814:19;;10473:366;;;:::o;10845:::-;10987:3;11008:67;11072:2;11067:3;11008:67;:::i;:::-;11001:74;;11084:93;11173:3;11084:93;:::i;:::-;11202:2;11197:3;11193:12;11186:19;;10845:366;;;:::o;11217:::-;11359:3;11380:67;11444:2;11439:3;11380:67;:::i;:::-;11373:74;;11456:93;11545:3;11456:93;:::i;:::-;11574:2;11569:3;11565:12;11558:19;;11217:366;;;:::o;11589:::-;11731:3;11752:67;11816:2;11811:3;11752:67;:::i;:::-;11745:74;;11828:93;11917:3;11828:93;:::i;:::-;11946:2;11941:3;11937:12;11930:19;;11589:366;;;:::o;11961:365::-;12103:3;12124:66;12188:1;12183:3;12124:66;:::i;:::-;12117:73;;12199:93;12288:3;12199:93;:::i;:::-;12317:2;12312:3;12308:12;12301:19;;11961:365;;;:::o;12332:398::-;12491:3;12512:83;12593:1;12588:3;12512:83;:::i;:::-;12505:90;;12604:93;12693:3;12604:93;:::i;:::-;12722:1;12717:3;12713:11;12706:18;;12332:398;;;:::o;12736:118::-;12823:24;12841:5;12823:24;:::i;:::-;12818:3;12811:37;12736:118;;:::o;12860:112::-;12943:22;12959:5;12943:22;:::i;:::-;12938:3;12931:35;12860:112;;:::o;12978:379::-;13162:3;13184:147;13327:3;13184:147;:::i;:::-;13177:154;;13348:3;13341:10;;12978:379;;;:::o;13363:222::-;13456:4;13494:2;13483:9;13479:18;13471:26;;13507:71;13575:1;13564:9;13560:17;13551:6;13507:71;:::i;:::-;13363:222;;;;:::o;13591:238::-;13692:4;13730:2;13719:9;13715:18;13707:26;;13743:79;13819:1;13808:9;13804:17;13795:6;13743:79;:::i;:::-;13591:238;;;;:::o;13835:332::-;13956:4;13994:2;13983:9;13979:18;13971:26;;14007:71;14075:1;14064:9;14060:17;14051:6;14007:71;:::i;:::-;14088:72;14156:2;14145:9;14141:18;14132:6;14088:72;:::i;:::-;13835:332;;;;;:::o;14173:807::-;14422:4;14460:3;14449:9;14445:19;14437:27;;14474:71;14542:1;14531:9;14527:17;14518:6;14474:71;:::i;:::-;14555:72;14623:2;14612:9;14608:18;14599:6;14555:72;:::i;:::-;14637:80;14713:2;14702:9;14698:18;14689:6;14637:80;:::i;:::-;14727;14803:2;14792:9;14788:18;14779:6;14727:80;:::i;:::-;14817:73;14885:3;14874:9;14870:19;14861:6;14817:73;:::i;:::-;14900;14968:3;14957:9;14953:19;14944:6;14900:73;:::i;:::-;14173:807;;;;;;;;;:::o;14986:210::-;15073:4;15111:2;15100:9;15096:18;15088:26;;15124:65;15186:1;15175:9;15171:17;15162:6;15124:65;:::i;:::-;14986:210;;;;:::o;15202:252::-;15310:4;15348:2;15337:9;15333:18;15325:26;;15361:86;15444:1;15433:9;15429:17;15420:6;15361:86;:::i;:::-;15202:252;;;;:::o;15460:313::-;15573:4;15611:2;15600:9;15596:18;15588:26;;15660:9;15654:4;15650:20;15646:1;15635:9;15631:17;15624:47;15688:78;15761:4;15752:6;15688:78;:::i;:::-;15680:86;;15460:313;;;;:::o;15779:419::-;15945:4;15983:2;15972:9;15968:18;15960:26;;16032:9;16026:4;16022:20;16018:1;16007:9;16003:17;15996:47;16060:131;16186:4;16060:131;:::i;:::-;16052:139;;15779:419;;;:::o;16204:::-;16370:4;16408:2;16397:9;16393:18;16385:26;;16457:9;16451:4;16447:20;16443:1;16432:9;16428:17;16421:47;16485:131;16611:4;16485:131;:::i;:::-;16477:139;;16204:419;;;:::o;16629:::-;16795:4;16833:2;16822:9;16818:18;16810:26;;16882:9;16876:4;16872:20;16868:1;16857:9;16853:17;16846:47;16910:131;17036:4;16910:131;:::i;:::-;16902:139;;16629:419;;;:::o;17054:::-;17220:4;17258:2;17247:9;17243:18;17235:26;;17307:9;17301:4;17297:20;17293:1;17282:9;17278:17;17271:47;17335:131;17461:4;17335:131;:::i;:::-;17327:139;;17054:419;;;:::o;17479:::-;17645:4;17683:2;17672:9;17668:18;17660:26;;17732:9;17726:4;17722:20;17718:1;17707:9;17703:17;17696:47;17760:131;17886:4;17760:131;:::i;:::-;17752:139;;17479:419;;;:::o;17904:::-;18070:4;18108:2;18097:9;18093:18;18085:26;;18157:9;18151:4;18147:20;18143:1;18132:9;18128:17;18121:47;18185:131;18311:4;18185:131;:::i;:::-;18177:139;;17904:419;;;:::o;18329:222::-;18422:4;18460:2;18449:9;18445:18;18437:26;;18473:71;18541:1;18530:9;18526:17;18517:6;18473:71;:::i;:::-;18329:222;;;;:::o;18557:831::-;18820:4;18858:3;18847:9;18843:19;18835:27;;18872:71;18940:1;18929:9;18925:17;18916:6;18872:71;:::i;:::-;18953:80;19029:2;19018:9;19014:18;19005:6;18953:80;:::i;:::-;19080:9;19074:4;19070:20;19065:2;19054:9;19050:18;19043:48;19108:108;19211:4;19202:6;19108:108;:::i;:::-;19100:116;;19226:72;19294:2;19283:9;19279:18;19270:6;19226:72;:::i;:::-;19308:73;19376:3;19365:9;19361:19;19352:6;19308:73;:::i;:::-;18557:831;;;;;;;;:::o;19394:214::-;19483:4;19521:2;19510:9;19506:18;19498:26;;19534:67;19598:1;19587:9;19583:17;19574:6;19534:67;:::i;:::-;19394:214;;;;:::o;19695:132::-;19762:4;19785:3;19777:11;;19815:4;19810:3;19806:14;19798:22;;19695:132;;;:::o;19833:114::-;19900:6;19934:5;19928:12;19918:22;;19833:114;;;:::o;19953:99::-;20005:6;20039:5;20033:12;20023:22;;19953:99;;;:::o;20058:113::-;20128:4;20160;20155:3;20151:14;20143:22;;20058:113;;;:::o;20177:184::-;20276:11;20310:6;20305:3;20298:19;20350:4;20345:3;20341:14;20326:29;;20177:184;;;;:::o;20367:147::-;20468:11;20505:3;20490:18;;20367:147;;;;:::o;20520:169::-;20604:11;20638:6;20633:3;20626:19;20678:4;20673:3;20669:14;20654:29;;20520:169;;;;:::o;20695:305::-;20735:3;20754:20;20772:1;20754:20;:::i;:::-;20749:25;;20788:20;20806:1;20788:20;:::i;:::-;20783:25;;20942:1;20874:66;20870:74;20867:1;20864:81;20861:107;;;20948:18;;:::i;:::-;20861:107;20992:1;20989;20985:9;20978:16;;20695:305;;;;:::o;21006:185::-;21046:1;21063:20;21081:1;21063:20;:::i;:::-;21058:25;;21097:20;21115:1;21097:20;:::i;:::-;21092:25;;21136:1;21126:35;;21141:18;;:::i;:::-;21126:35;21183:1;21180;21176:9;21171:14;;21006:185;;;;:::o;21197:848::-;21258:5;21265:4;21289:6;21280:15;;21313:5;21304:14;;21327:712;21348:1;21338:8;21335:15;21327:712;;;21443:4;21438:3;21434:14;21428:4;21425:24;21422:50;;;21452:18;;:::i;:::-;21422:50;21502:1;21492:8;21488:16;21485:451;;;21917:4;21910:5;21906:16;21897:25;;21485:451;21967:4;21961;21957:15;21949:23;;21997:32;22020:8;21997:32;:::i;:::-;21985:44;;21327:712;;;21197:848;;;;;;;:::o;22051:281::-;22109:5;22133:23;22151:4;22133:23;:::i;:::-;22125:31;;22177:25;22193:8;22177:25;:::i;:::-;22165:37;;22221:104;22258:66;22248:8;22242:4;22221:104;:::i;:::-;22212:113;;22051:281;;;;:::o;22338:1073::-;22392:5;22583:8;22573:40;;22604:1;22595:10;;22606:5;;22573:40;22632:4;22622:36;;22649:1;22640:10;;22651:5;;22622:36;22718:4;22766:1;22761:27;;;;22802:1;22797:191;;;;22711:277;;22761:27;22779:1;22770:10;;22781:5;;;22797:191;22842:3;22832:8;22829:17;22826:43;;;22849:18;;:::i;:::-;22826:43;22898:8;22895:1;22891:16;22882:25;;22933:3;22926:5;22923:14;22920:40;;;22940:18;;:::i;:::-;22920:40;22973:5;;;22711:277;;23097:2;23087:8;23084:16;23078:3;23072:4;23069:13;23065:36;23047:2;23037:8;23034:16;23029:2;23023:4;23020:12;23016:35;23000:111;22997:246;;;23153:8;23147:4;23143:19;23134:28;;23188:3;23181:5;23178:14;23175:40;;;23195:18;;:::i;:::-;23175:40;23228:5;;22997:246;23268:42;23306:3;23296:8;23290:4;23287:1;23268:42;:::i;:::-;23253:57;;;;23342:4;23337:3;23333:14;23326:5;23323:25;23320:51;;;23351:18;;:::i;:::-;23320:51;23400:4;23393:5;23389:16;23380:25;;22338:1073;;;;;;:::o;23417:348::-;23457:7;23480:20;23498:1;23480:20;:::i;:::-;23475:25;;23514:20;23532:1;23514:20;:::i;:::-;23509:25;;23702:1;23634:66;23630:74;23627:1;23624:81;23619:1;23612:9;23605:17;23601:105;23598:131;;;23709:18;;:::i;:::-;23598:131;23757:1;23754;23750:9;23739:20;;23417:348;;;;:::o;23771:191::-;23811:4;23831:20;23849:1;23831:20;:::i;:::-;23826:25;;23865:20;23883:1;23865:20;:::i;:::-;23860:25;;23904:1;23901;23898:8;23895:34;;;23909:18;;:::i;:::-;23895:34;23954:1;23951;23947:9;23939:17;;23771:191;;;;:::o;23968:96::-;24005:7;24034:24;24052:5;24034:24;:::i;:::-;24023:35;;23968:96;;;:::o;24070:104::-;24115:7;24144:24;24162:5;24144:24;:::i;:::-;24133:35;;24070:104;;;:::o;24180:90::-;24214:7;24257:5;24250:13;24243:21;24232:32;;24180:90;;;:::o;24276:126::-;24313:7;24353:42;24346:5;24342:54;24331:65;;24276:126;;;:::o;24408:77::-;24445:7;24474:5;24463:16;;24408:77;;;:::o;24491:86::-;24526:7;24566:4;24559:5;24555:16;24544:27;;24491:86;;;:::o;24583:134::-;24641:9;24674:37;24705:5;24674:37;:::i;:::-;24661:50;;24583:134;;;:::o;24723:141::-;24788:9;24821:37;24852:5;24821:37;:::i;:::-;24808:50;;24723:141;;;:::o;24870:121::-;24928:9;24961:24;24979:5;24961:24;:::i;:::-;24948:37;;24870:121;;;:::o;24997:126::-;25047:9;25080:37;25111:5;25080:37;:::i;:::-;25067:50;;24997:126;;;:::o;25129:113::-;25179:9;25212:24;25230:5;25212:24;:::i;:::-;25199:37;;25129:113;;;:::o;25248:307::-;25316:1;25326:113;25340:6;25337:1;25334:13;25326:113;;;25425:1;25420:3;25416:11;25410:18;25406:1;25401:3;25397:11;25390:39;25362:2;25359:1;25355:10;25350:15;;25326:113;;;25457:6;25454:1;25451:13;25448:101;;;25537:1;25528:6;25523:3;25519:16;25512:27;25448:101;25297:258;25248:307;;;:::o;25561:180::-;25609:77;25606:1;25599:88;25706:4;25703:1;25696:15;25730:4;25727:1;25720:15;25747:180;25795:77;25792:1;25785:88;25892:4;25889:1;25882:15;25916:4;25913:1;25906:15;25933:180;25981:77;25978:1;25971:88;26078:4;26075:1;26068:15;26102:4;26099:1;26092:15;26119:180;26167:77;26164:1;26157:88;26264:4;26261:1;26254:15;26288:4;26285:1;26278:15;26428:117;26537:1;26534;26527:12;26551:102;26592:6;26643:2;26639:7;26634:2;26627:5;26623:14;26619:28;26609:38;;26551:102;;;:::o;26659:::-;26701:8;26748:5;26745:1;26741:13;26720:34;;26659:102;;;:::o;26767:166::-;26907:18;26903:1;26895:6;26891:14;26884:42;26767:166;:::o;26939:172::-;27079:24;27075:1;27067:6;27063:14;27056:48;26939:172;:::o;27117:170::-;27257:22;27253:1;27245:6;27241:14;27234:46;27117:170;:::o;27293:171::-;27433:23;27429:1;27421:6;27417:14;27410:47;27293:171;:::o;27470:170::-;27610:22;27606:1;27598:6;27594:14;27587:46;27470:170;:::o;27646:156::-;27786:8;27782:1;27774:6;27770:14;27763:32;27646:156;:::o;27808:114::-;;:::o;27928:122::-;28001:24;28019:5;28001:24;:::i;:::-;27994:5;27991:35;27981:63;;28040:1;28037;28030:12;27981:63;27928:122;:::o;28056:138::-;28137:32;28163:5;28137:32;:::i;:::-;28130:5;28127:43;28117:71;;28184:1;28181;28174:12;28117:71;28056:138;:::o;28200:116::-;28270:21;28285:5;28270:21;:::i;:::-;28263:5;28260:32;28250:60;;28306:1;28303;28296:12;28250:60;28200:116;:::o;28322:122::-;28395:24;28413:5;28395:24;:::i;:::-;28388:5;28385:35;28375:63;;28434:1;28431;28424:12;28375:63;28322:122;:::o
Swarm Source
ipfs://586927b21098433bbe3ee9532d12379b365321ac70c562cd41bbdc495c42b1f6
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.