Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 VOYAGER
Holders
14
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
14,511,203.669808677 VOYAGERValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VOYAGERINU
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-01 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract VOYAGERINU is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Voyager Inu";// string private constant _symbol = "VOYAGER";// uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public launchBlock; //Buy Fee uint256 private _redisFeeOnBuy = 2;// uint256 private _taxFeeOnBuy = 3;// //Sell Fee uint256 private _redisFeeOnSell = 2;// uint256 private _taxFeeOnSell = 3;// //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xFf5A101851a4929CE50896Ff8935EFB226f9DDe6); address payable private _marketingAddress = payable(0xFf5A101851a4929CE50896Ff8935EFB226f9DDe6); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 15000000 * 10**9; // uint256 public _maxSellTxAmount = 5000000 * 10**9; // uint256 public _maxBuyTxAmount = 15000000 * 10**9; // uint256 public _maxWalletSize = 30000000 * 10**9; // uint256 public _swapTokensAtAmount = 10000 * 10**9; // event MaxTxAmountUpdated(uint256 _maxTxAmount); event MaxBuyTxAmountUpdated(uint256 _maxBuyTxAmount); event MaxSellTxAmountUpdated(uint256 _maxSellTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee and max limit for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; require(amount <= _maxBuyTxAmount, "TOKEN: Max Buy Transaction Limit"); } //Set Fee and limit for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; require(amount <= _maxSellTxAmount, "TOKEN: Max Sell Transaction Limit"); if(block.number <= launchBlock+10){ _taxFee = 45; } } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; launchBlock = block.number; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 2%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 10, "Buy tax must be between 0% and 12%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 2%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 10, "Sell tax must be between 0% and 12%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmounts(uint256 maxBuyTxAmount, uint256 maxSellTxAmount) public onlyOwner { require(maxBuyTxAmount >= 5000000, "Buy Tx Limit must be high enough to not honeypot"); require(maxSellTxAmount >= 5000000, "Sell Tx Limit must be high enough to not honeypot"); _maxBuyTxAmount = maxBuyTxAmount * 10**9; _maxSellTxAmount = maxSellTxAmount * 10**9; _maxTxAmount = maxBuyTxAmount * 10**9; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize * 10**9; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
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":"uint256","name":"_maxBuyTxAmount","type":"uint256"}],"name":"MaxBuyTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellTxAmount","type":"uint256"}],"name":"MaxSellTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxBuyTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSellTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuyTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxSellTxAmount","type":"uint256"}],"name":"setMaxTxnAmounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c919062000724565b6000196200002b91906200078b565b60065560026009556003600a556002600b556003600c55600b54600d55600c54600e55600d54600f55600e5460105573ff5a101851a4929ce50896ff8935efb226f9dde6601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ff5a101851a4929ce50896ff8935efb226f9dde6601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff02191690831515021790555066354a6ba7a180006017556611c37937e0800060185566354a6ba7a18000601955666a94d74f430000601a556509184e72a000601b553480156200017c57600080fd5b5060006200018f620006ba60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000244620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e919062000830565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003dc919062000830565b6040518363ffffffff1660e01b8152600401620003fb92919062000873565b6020604051808303816000875af11580156200041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000441919062000830565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000497620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000644620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006ab9190620008b1565b60405180910390a350620008ce565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073182620006eb565b91506200073e83620006eb565b925082620007515762000750620006f5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079882620006eb565b9150620007a583620006eb565b925082821015620007bb57620007ba6200075c565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f882620007cb565b9050919050565b6200080a81620007eb565b81146200081657600080fd5b50565b6000815190506200082a81620007ff565b92915050565b600060208284031215620008495762000848620007c6565b5b6000620008598482850162000819565b91505092915050565b6200086d81620007eb565b82525050565b60006040820190506200088a600083018562000862565b62000899602083018462000862565b9392505050565b620008ab81620006eb565b82525050565b6000602082019050620008c86000830184620008a0565b92915050565b6144dc80620008de6000396000f3fe6080604052600436106101e65760003560e01c80638da5cb5b11610102578063c3c8cd8011610095578063dd62ed3e11610064578063dd62ed3e146106b6578063ea1644d5146106f3578063f2fde38b1461071c578063fe70373014610745576101ed565b8063c3c8cd8014610620578063c492f04614610637578063cf4be39414610660578063d00efb2f1461068b576101ed565b806398a5c315116100d157806398a5c31514610554578063a2a957bb1461057d578063a9059cbb146105a6578063bfd79284146105e3576101ed565b80638da5cb5b146104aa5780638f70ccf7146104d55780638f9a55c0146104fe57806395d89b4114610529576101ed565b8063334773271161017a5780636fc3eaec116101495780636fc3eaec1461041457806370a082311461042b578063715018a6146104685780637d1db4a51461047f576101ed565b8063334773271461036c57806349bd5a5e146103975780636b999053146103c25780636d8aa8f8146103eb576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b506102196004803603810190610214919061302b565b61076e565b005b34801561022757600080fd5b50610230610898565b60405161023d91906130fc565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613154565b6108d5565b60405161027a91906131af565b60405180910390f35b34801561028f57600080fd5b506102986108f3565b6040516102a59190613229565b60405180910390f35b3480156102ba57600080fd5b506102c3610919565b6040516102d09190613253565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061326e565b610929565b60405161030d91906131af565b60405180910390f35b34801561032257600080fd5b5061032b610a02565b6040516103389190613253565b60405180910390f35b34801561034d57600080fd5b50610356610a08565b60405161036391906132dd565b60405180910390f35b34801561037857600080fd5b50610381610a11565b60405161038e9190613253565b60405180910390f35b3480156103a357600080fd5b506103ac610a17565b6040516103b99190613307565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190613322565b610a3d565b005b3480156103f757600080fd5b50610412600480360381019061040d919061337b565b610b2d565b005b34801561042057600080fd5b50610429610bde565b005b34801561043757600080fd5b50610452600480360381019061044d9190613322565b610caf565b60405161045f9190613253565b60405180910390f35b34801561047457600080fd5b5061047d610d00565b005b34801561048b57600080fd5b50610494610e53565b6040516104a19190613253565b60405180910390f35b3480156104b657600080fd5b506104bf610e59565b6040516104cc9190613307565b60405180910390f35b3480156104e157600080fd5b506104fc60048036038101906104f7919061337b565b610e82565b005b34801561050a57600080fd5b50610513610f3b565b6040516105209190613253565b60405180910390f35b34801561053557600080fd5b5061053e610f41565b60405161054b91906130fc565b60405180910390f35b34801561056057600080fd5b5061057b600480360381019061057691906133a8565b610f7e565b005b34801561058957600080fd5b506105a4600480360381019061059f91906133d5565b61101d565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190613154565b611218565b6040516105da91906131af565b60405180910390f35b3480156105ef57600080fd5b5061060a60048036038101906106059190613322565b611236565b60405161061791906131af565b60405180910390f35b34801561062c57600080fd5b50610635611256565b005b34801561064357600080fd5b5061065e60048036038101906106599190613497565b61132f565b005b34801561066c57600080fd5b50610675611469565b6040516106829190613253565b60405180910390f35b34801561069757600080fd5b506106a061146f565b6040516106ad9190613253565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d891906134f7565b611475565b6040516106ea9190613253565b60405180910390f35b3480156106ff57600080fd5b5061071a600480360381019061071591906133a8565b6114fc565b005b34801561072857600080fd5b50610743600480360381019061073e9190613322565b6115aa565b005b34801561075157600080fd5b5061076c60048036038101906107679190613537565b61176b565b005b6107766118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa906135c3565b60405180910390fd5b60005b815181101561089457600160116000848481518110610828576108276135e3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088c90613641565b915050610806565b5050565b60606040518060400160405280600b81526020017f566f796167657220496e75000000000000000000000000000000000000000000815250905090565b60006108e96108e26118d2565b84846118da565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610936848484611aa3565b6109f7846109426118d2565b6109f28560405180606001604052806028815260200161447f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a86118d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123899092919063ffffffff16565b6118da565b600190509392505050565b601b5481565b60006009905090565b60195481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a456118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906135c3565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b356118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb9906135c3565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1f6118d2565b73ffffffffffffffffffffffffffffffffffffffff161480610c955750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d6118d2565b73ffffffffffffffffffffffffffffffffffffffff16145b610c9e57600080fd5b6000479050610cac816123ed565b50565b6000610cf9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612459565b9050919050565b610d086118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c906135c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e8a6118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e906135c3565b60405180910390fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b601a5481565b60606040518060400160405280600781526020017f564f594147455200000000000000000000000000000000000000000000000000815250905090565b610f866118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a906135c3565b60405180910390fd5b80601b8190555050565b6110256118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a9906135c3565b60405180910390fd5b600084101580156110c4575060048411155b611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa906136fb565b60405180910390fd5b600082101580156111155750600a8211155b611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b9061378d565b60405180910390fd5b60008310158015611166575060048311155b6111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c9061381f565b60405180910390fd5b600081101580156111b75750600a8111155b6111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906138b1565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061122c6112256118d2565b8484611aa3565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112976118d2565b73ffffffffffffffffffffffffffffffffffffffff16148061130d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f56118d2565b73ffffffffffffffffffffffffffffffffffffffff16145b61131657600080fd5b600061132130610caf565b905061132c816124c7565b50565b6113376118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb906135c3565b60405180910390fd5b60005b838390508110156114635781600560008686858181106113ea576113e96135e3565b5b90506020020160208101906113ff9190613322565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145b90613641565b9150506113c7565b50505050565b60185481565b60085481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115046118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611588906135c3565b60405180910390fd5b633b9aca00816115a191906138d1565b601a8190555050565b6115b26118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611636906135c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a59061399d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117736118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f7906135c3565b60405180910390fd5b624c4b40821015611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d90613a2f565b60405180910390fd5b624c4b4081101561188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188390613ac1565b60405180910390fd5b633b9aca008261189c91906138d1565b601981905550633b9aca00816118b291906138d1565b601881905550633b9aca00826118c891906138d1565b6017819055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194090613b53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119af90613be5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a969190613253565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0990613c77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7890613d09565b60405180910390fd5b60008111611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb90613d9b565b60405180910390fd5b611bcc610e59565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c3a5750611c0a610e59565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fe057601660149054906101000a900460ff16611cc957611c5b610e59565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf90613e2d565b60405180910390fd5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d6d5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da390613ebf565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e5957601a5481611e0e84610caf565b611e189190613edf565b10611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f90613fa7565b60405180910390fd5b5b6000611e6430610caf565b90506000601b5482101590506017548210611e7f5760175491505b808015611e995750601660159054906101000a900460ff16155b8015611ef35750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f09575060168054906101000a900460ff165b8015611f5f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fb55750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fdd57611fc3826124c7565b60004790506000811115611fdb57611fda476123ed565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120875750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061213a5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121395750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121485760009050612377565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121f35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561225057600954600d81905550600a54600e8190555060195482111561224f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224690614013565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122fb5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561237657600b54600d81905550600c54600e81905550601854821115612357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234e906140a5565b60405180910390fd5b600a6008546123669190613edf565b431161237557602d600e819055505b5b5b61238384848484612740565b50505050565b60008383111582906123d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c891906130fc565b60405180910390fd5b50600083856123e091906140c5565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612455573d6000803e3d6000fd5b5050565b60006006548211156124a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124979061416b565b60405180910390fd5b60006124aa61276d565b90506124bf818461279890919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124ff576124fe612e8a565b5b60405190808252806020026020018201604052801561252d5781602001602082028036833780820191505090505b5090503081600081518110612545576125446135e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261091906141a0565b81600181518110612624576126236135e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061268b30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118da565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126ef9594939291906142c6565b600060405180830381600087803b15801561270957600080fd5b505af115801561271d573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061274e5761274d6127e2565b5b61275984848461281f565b80612767576127666129ea565b5b50505050565b600080600061277a6129fe565b91509150612791818361279890919063ffffffff16565b9250505090565b60006127da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a5d565b905092915050565b6000600d541480156127f657506000600e54145b61281d57600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061283187612ac0565b95509550955095509550955061288f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297081612bd0565b61297a8483612c8d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129d79190613253565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060065490506000670de0b6b3a76400009050612a32670de0b6b3a764000060065461279890919063ffffffff16565b821015612a5057600654670de0b6b3a7640000935093505050612a59565b81819350935050505b9091565b60008083118290612aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9b91906130fc565b60405180910390fd5b5060008385612ab3919061434f565b9050809150509392505050565b6000806000806000806000806000612add8a600d54600e54612cc7565b9250925092506000612aed61276d565b90506000806000612b008e878787612d5d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612389565b905092915050565b6000808284612b819190613edf565b905083811015612bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbd906143cc565b60405180910390fd5b8091505092915050565b6000612bda61276d565b90506000612bf18284612de690919063ffffffff16565b9050612c4581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ca282600654612b2890919063ffffffff16565b600681905550612cbd81600754612b7290919063ffffffff16565b6007819055505050565b600080600080612cf36064612ce5888a612de690919063ffffffff16565b61279890919063ffffffff16565b90506000612d1d6064612d0f888b612de690919063ffffffff16565b61279890919063ffffffff16565b90506000612d4682612d38858c612b2890919063ffffffff16565b612b2890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d768589612de690919063ffffffff16565b90506000612d8d8689612de690919063ffffffff16565b90506000612da48789612de690919063ffffffff16565b90506000612dcd82612dbf8587612b2890919063ffffffff16565b612b2890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612df85760009050612e5a565b60008284612e0691906138d1565b9050828482612e15919061434f565b14612e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4c9061445e565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ec282612e79565b810181811067ffffffffffffffff82111715612ee157612ee0612e8a565b5b80604052505050565b6000612ef4612e60565b9050612f008282612eb9565b919050565b600067ffffffffffffffff821115612f2057612f1f612e8a565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f6182612f36565b9050919050565b612f7181612f56565b8114612f7c57600080fd5b50565b600081359050612f8e81612f68565b92915050565b6000612fa7612fa284612f05565b612eea565b90508083825260208201905060208402830185811115612fca57612fc9612f31565b5b835b81811015612ff35780612fdf8882612f7f565b845260208401935050602081019050612fcc565b5050509392505050565b600082601f83011261301257613011612e74565b5b8135613022848260208601612f94565b91505092915050565b60006020828403121561304157613040612e6a565b5b600082013567ffffffffffffffff81111561305f5761305e612e6f565b5b61306b84828501612ffd565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130ae578082015181840152602081019050613093565b838111156130bd576000848401525b50505050565b60006130ce82613074565b6130d8818561307f565b93506130e8818560208601613090565b6130f181612e79565b840191505092915050565b6000602082019050818103600083015261311681846130c3565b905092915050565b6000819050919050565b6131318161311e565b811461313c57600080fd5b50565b60008135905061314e81613128565b92915050565b6000806040838503121561316b5761316a612e6a565b5b600061317985828601612f7f565b925050602061318a8582860161313f565b9150509250929050565b60008115159050919050565b6131a981613194565b82525050565b60006020820190506131c460008301846131a0565b92915050565b6000819050919050565b60006131ef6131ea6131e584612f36565b6131ca565b612f36565b9050919050565b6000613201826131d4565b9050919050565b6000613213826131f6565b9050919050565b61322381613208565b82525050565b600060208201905061323e600083018461321a565b92915050565b61324d8161311e565b82525050565b60006020820190506132686000830184613244565b92915050565b60008060006060848603121561328757613286612e6a565b5b600061329586828701612f7f565b93505060206132a686828701612f7f565b92505060406132b78682870161313f565b9150509250925092565b600060ff82169050919050565b6132d7816132c1565b82525050565b60006020820190506132f260008301846132ce565b92915050565b61330181612f56565b82525050565b600060208201905061331c60008301846132f8565b92915050565b60006020828403121561333857613337612e6a565b5b600061334684828501612f7f565b91505092915050565b61335881613194565b811461336357600080fd5b50565b6000813590506133758161334f565b92915050565b60006020828403121561339157613390612e6a565b5b600061339f84828501613366565b91505092915050565b6000602082840312156133be576133bd612e6a565b5b60006133cc8482850161313f565b91505092915050565b600080600080608085870312156133ef576133ee612e6a565b5b60006133fd8782880161313f565b945050602061340e8782880161313f565b935050604061341f8782880161313f565b92505060606134308782880161313f565b91505092959194509250565b600080fd5b60008083601f84011261345757613456612e74565b5b8235905067ffffffffffffffff8111156134745761347361343c565b5b6020830191508360208202830111156134905761348f612f31565b5b9250929050565b6000806000604084860312156134b0576134af612e6a565b5b600084013567ffffffffffffffff8111156134ce576134cd612e6f565b5b6134da86828701613441565b935093505060206134ed86828701613366565b9150509250925092565b6000806040838503121561350e5761350d612e6a565b5b600061351c85828601612f7f565b925050602061352d85828601612f7f565b9150509250929050565b6000806040838503121561354e5761354d612e6a565b5b600061355c8582860161313f565b925050602061356d8582860161313f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135ad60208361307f565b91506135b882613577565b602082019050919050565b600060208201905081810360008301526135dc816135a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061364c8261311e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361367e5761367d613612565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203225000000000000000000000000000000000000000000000000000000602082015250565b60006136e560258361307f565b91506136f082613689565b604082019050919050565b60006020820190508181036000830152613714816136d8565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203160008201527f3225000000000000000000000000000000000000000000000000000000000000602082015250565b600061377760228361307f565b91506137828261371b565b604082019050919050565b600060208201905081810360008301526137a68161376a565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642032250000000000000000000000000000000000000000000000000000602082015250565b600061380960268361307f565b9150613814826137ad565b604082019050919050565b60006020820190508181036000830152613838816137fc565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3132250000000000000000000000000000000000000000000000000000000000602082015250565b600061389b60238361307f565b91506138a68261383f565b604082019050919050565b600060208201905081810360008301526138ca8161388e565b9050919050565b60006138dc8261311e565b91506138e78361311e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139205761391f613612565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061398760268361307f565b91506139928261392b565b604082019050919050565b600060208201905081810360008301526139b68161397a565b9050919050565b7f427579205478204c696d6974206d757374206265206869676820656e6f75676860008201527f20746f206e6f7420686f6e6579706f7400000000000000000000000000000000602082015250565b6000613a1960308361307f565b9150613a24826139bd565b604082019050919050565b60006020820190508181036000830152613a4881613a0c565b9050919050565b7f53656c6c205478204c696d6974206d757374206265206869676820656e6f756760008201527f6820746f206e6f7420686f6e6579706f74000000000000000000000000000000602082015250565b6000613aab60318361307f565b9150613ab682613a4f565b604082019050919050565b60006020820190508181036000830152613ada81613a9e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b3d60248361307f565b9150613b4882613ae1565b604082019050919050565b60006020820190508181036000830152613b6c81613b30565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bcf60228361307f565b9150613bda82613b73565b604082019050919050565b60006020820190508181036000830152613bfe81613bc2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c6160258361307f565b9150613c6c82613c05565b604082019050919050565b60006020820190508181036000830152613c9081613c54565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf360238361307f565b9150613cfe82613c97565b604082019050919050565b60006020820190508181036000830152613d2281613ce6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d8560298361307f565b9150613d9082613d29565b604082019050919050565b60006020820190508181036000830152613db481613d78565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e17603f8361307f565b9150613e2282613dbb565b604082019050919050565b60006020820190508181036000830152613e4681613e0a565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ea960238361307f565b9150613eb482613e4d565b604082019050919050565b60006020820190508181036000830152613ed881613e9c565b9050919050565b6000613eea8261311e565b9150613ef58361311e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f2a57613f29613612565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9160238361307f565b9150613f9c82613f35565b604082019050919050565b60006020820190508181036000830152613fc081613f84565b9050919050565b7f544f4b454e3a204d617820427579205472616e73616374696f6e204c696d6974600082015250565b6000613ffd60208361307f565b915061400882613fc7565b602082019050919050565b6000602082019050818103600083015261402c81613ff0565b9050919050565b7f544f4b454e3a204d61782053656c6c205472616e73616374696f6e204c696d6960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061408f60218361307f565b915061409a82614033565b604082019050919050565b600060208201905081810360008301526140be81614082565b9050919050565b60006140d08261311e565b91506140db8361311e565b9250828210156140ee576140ed613612565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614155602a8361307f565b9150614160826140f9565b604082019050919050565b6000602082019050818103600083015261418481614148565b9050919050565b60008151905061419a81612f68565b92915050565b6000602082840312156141b6576141b5612e6a565b5b60006141c48482850161418b565b91505092915050565b6000819050919050565b60006141f26141ed6141e8846141cd565b6131ca565b61311e565b9050919050565b614202816141d7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61423d81612f56565b82525050565b600061424f8383614234565b60208301905092915050565b6000602082019050919050565b600061427382614208565b61427d8185614213565b935061428883614224565b8060005b838110156142b95781516142a08882614243565b97506142ab8361425b565b92505060018101905061428c565b5085935050505092915050565b600060a0820190506142db6000830188613244565b6142e860208301876141f9565b81810360408301526142fa8186614268565b905061430960608301856132f8565b6143166080830184613244565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061435a8261311e565b91506143658361311e565b92508261437557614374614320565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143b6601b8361307f565b91506143c182614380565b602082019050919050565b600060208201905081810360008301526143e5816143a9565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061444860218361307f565b9150614453826143ec565b604082019050919050565b600060208201905081810360008301526144778161443b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200fee8a865127946f38085305aab88a562a43107b11ec4cc834c13024c94c109064736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106101e65760003560e01c80638da5cb5b11610102578063c3c8cd8011610095578063dd62ed3e11610064578063dd62ed3e146106b6578063ea1644d5146106f3578063f2fde38b1461071c578063fe70373014610745576101ed565b8063c3c8cd8014610620578063c492f04614610637578063cf4be39414610660578063d00efb2f1461068b576101ed565b806398a5c315116100d157806398a5c31514610554578063a2a957bb1461057d578063a9059cbb146105a6578063bfd79284146105e3576101ed565b80638da5cb5b146104aa5780638f70ccf7146104d55780638f9a55c0146104fe57806395d89b4114610529576101ed565b8063334773271161017a5780636fc3eaec116101495780636fc3eaec1461041457806370a082311461042b578063715018a6146104685780637d1db4a51461047f576101ed565b8063334773271461036c57806349bd5a5e146103975780636b999053146103c25780636d8aa8f8146103eb576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632fd689e314610316578063313ce56714610341576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b506102196004803603810190610214919061302b565b61076e565b005b34801561022757600080fd5b50610230610898565b60405161023d91906130fc565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613154565b6108d5565b60405161027a91906131af565b60405180910390f35b34801561028f57600080fd5b506102986108f3565b6040516102a59190613229565b60405180910390f35b3480156102ba57600080fd5b506102c3610919565b6040516102d09190613253565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061326e565b610929565b60405161030d91906131af565b60405180910390f35b34801561032257600080fd5b5061032b610a02565b6040516103389190613253565b60405180910390f35b34801561034d57600080fd5b50610356610a08565b60405161036391906132dd565b60405180910390f35b34801561037857600080fd5b50610381610a11565b60405161038e9190613253565b60405180910390f35b3480156103a357600080fd5b506103ac610a17565b6040516103b99190613307565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190613322565b610a3d565b005b3480156103f757600080fd5b50610412600480360381019061040d919061337b565b610b2d565b005b34801561042057600080fd5b50610429610bde565b005b34801561043757600080fd5b50610452600480360381019061044d9190613322565b610caf565b60405161045f9190613253565b60405180910390f35b34801561047457600080fd5b5061047d610d00565b005b34801561048b57600080fd5b50610494610e53565b6040516104a19190613253565b60405180910390f35b3480156104b657600080fd5b506104bf610e59565b6040516104cc9190613307565b60405180910390f35b3480156104e157600080fd5b506104fc60048036038101906104f7919061337b565b610e82565b005b34801561050a57600080fd5b50610513610f3b565b6040516105209190613253565b60405180910390f35b34801561053557600080fd5b5061053e610f41565b60405161054b91906130fc565b60405180910390f35b34801561056057600080fd5b5061057b600480360381019061057691906133a8565b610f7e565b005b34801561058957600080fd5b506105a4600480360381019061059f91906133d5565b61101d565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190613154565b611218565b6040516105da91906131af565b60405180910390f35b3480156105ef57600080fd5b5061060a60048036038101906106059190613322565b611236565b60405161061791906131af565b60405180910390f35b34801561062c57600080fd5b50610635611256565b005b34801561064357600080fd5b5061065e60048036038101906106599190613497565b61132f565b005b34801561066c57600080fd5b50610675611469565b6040516106829190613253565b60405180910390f35b34801561069757600080fd5b506106a061146f565b6040516106ad9190613253565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d891906134f7565b611475565b6040516106ea9190613253565b60405180910390f35b3480156106ff57600080fd5b5061071a600480360381019061071591906133a8565b6114fc565b005b34801561072857600080fd5b50610743600480360381019061073e9190613322565b6115aa565b005b34801561075157600080fd5b5061076c60048036038101906107679190613537565b61176b565b005b6107766118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa906135c3565b60405180910390fd5b60005b815181101561089457600160116000848481518110610828576108276135e3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088c90613641565b915050610806565b5050565b60606040518060400160405280600b81526020017f566f796167657220496e75000000000000000000000000000000000000000000815250905090565b60006108e96108e26118d2565b84846118da565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610936848484611aa3565b6109f7846109426118d2565b6109f28560405180606001604052806028815260200161447f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a86118d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123899092919063ffffffff16565b6118da565b600190509392505050565b601b5481565b60006009905090565b60195481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a456118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906135c3565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b356118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb9906135c3565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1f6118d2565b73ffffffffffffffffffffffffffffffffffffffff161480610c955750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d6118d2565b73ffffffffffffffffffffffffffffffffffffffff16145b610c9e57600080fd5b6000479050610cac816123ed565b50565b6000610cf9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612459565b9050919050565b610d086118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c906135c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e8a6118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e906135c3565b60405180910390fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b601a5481565b60606040518060400160405280600781526020017f564f594147455200000000000000000000000000000000000000000000000000815250905090565b610f866118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a906135c3565b60405180910390fd5b80601b8190555050565b6110256118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a9906135c3565b60405180910390fd5b600084101580156110c4575060048411155b611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa906136fb565b60405180910390fd5b600082101580156111155750600a8211155b611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b9061378d565b60405180910390fd5b60008310158015611166575060048311155b6111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c9061381f565b60405180910390fd5b600081101580156111b75750600a8111155b6111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906138b1565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b600061122c6112256118d2565b8484611aa3565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112976118d2565b73ffffffffffffffffffffffffffffffffffffffff16148061130d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f56118d2565b73ffffffffffffffffffffffffffffffffffffffff16145b61131657600080fd5b600061132130610caf565b905061132c816124c7565b50565b6113376118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb906135c3565b60405180910390fd5b60005b838390508110156114635781600560008686858181106113ea576113e96135e3565b5b90506020020160208101906113ff9190613322565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145b90613641565b9150506113c7565b50505050565b60185481565b60085481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115046118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611591576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611588906135c3565b60405180910390fd5b633b9aca00816115a191906138d1565b601a8190555050565b6115b26118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611636906135c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a59061399d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117736118d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f7906135c3565b60405180910390fd5b624c4b40821015611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d90613a2f565b60405180910390fd5b624c4b4081101561188c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188390613ac1565b60405180910390fd5b633b9aca008261189c91906138d1565b601981905550633b9aca00816118b291906138d1565b601881905550633b9aca00826118c891906138d1565b6017819055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194090613b53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119af90613be5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a969190613253565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0990613c77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7890613d09565b60405180910390fd5b60008111611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb90613d9b565b60405180910390fd5b611bcc610e59565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c3a5750611c0a610e59565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fe057601660149054906101000a900460ff16611cc957611c5b610e59565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf90613e2d565b60405180910390fd5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d6d5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da390613ebf565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e5957601a5481611e0e84610caf565b611e189190613edf565b10611e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4f90613fa7565b60405180910390fd5b5b6000611e6430610caf565b90506000601b5482101590506017548210611e7f5760175491505b808015611e995750601660159054906101000a900460ff16155b8015611ef35750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f09575060168054906101000a900460ff165b8015611f5f5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fb55750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fdd57611fc3826124c7565b60004790506000811115611fdb57611fda476123ed565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120875750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061213a5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121395750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121485760009050612377565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121f35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561225057600954600d81905550600a54600e8190555060195482111561224f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224690614013565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122fb5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561237657600b54600d81905550600c54600e81905550601854821115612357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234e906140a5565b60405180910390fd5b600a6008546123669190613edf565b431161237557602d600e819055505b5b5b61238384848484612740565b50505050565b60008383111582906123d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c891906130fc565b60405180910390fd5b50600083856123e091906140c5565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612455573d6000803e3d6000fd5b5050565b60006006548211156124a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124979061416b565b60405180910390fd5b60006124aa61276d565b90506124bf818461279890919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124ff576124fe612e8a565b5b60405190808252806020026020018201604052801561252d5781602001602082028036833780820191505090505b5090503081600081518110612545576125446135e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261091906141a0565b81600181518110612624576126236135e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061268b30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118da565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126ef9594939291906142c6565b600060405180830381600087803b15801561270957600080fd5b505af115801561271d573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061274e5761274d6127e2565b5b61275984848461281f565b80612767576127666129ea565b5b50505050565b600080600061277a6129fe565b91509150612791818361279890919063ffffffff16565b9250505090565b60006127da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a5d565b905092915050565b6000600d541480156127f657506000600e54145b61281d57600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061283187612ac0565b95509550955095509550955061288f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297081612bd0565b61297a8483612c8d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129d79190613253565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060065490506000670de0b6b3a76400009050612a32670de0b6b3a764000060065461279890919063ffffffff16565b821015612a5057600654670de0b6b3a7640000935093505050612a59565b81819350935050505b9091565b60008083118290612aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9b91906130fc565b60405180910390fd5b5060008385612ab3919061434f565b9050809150509392505050565b6000806000806000806000806000612add8a600d54600e54612cc7565b9250925092506000612aed61276d565b90506000806000612b008e878787612d5d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b6a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612389565b905092915050565b6000808284612b819190613edf565b905083811015612bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbd906143cc565b60405180910390fd5b8091505092915050565b6000612bda61276d565b90506000612bf18284612de690919063ffffffff16565b9050612c4581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ca282600654612b2890919063ffffffff16565b600681905550612cbd81600754612b7290919063ffffffff16565b6007819055505050565b600080600080612cf36064612ce5888a612de690919063ffffffff16565b61279890919063ffffffff16565b90506000612d1d6064612d0f888b612de690919063ffffffff16565b61279890919063ffffffff16565b90506000612d4682612d38858c612b2890919063ffffffff16565b612b2890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d768589612de690919063ffffffff16565b90506000612d8d8689612de690919063ffffffff16565b90506000612da48789612de690919063ffffffff16565b90506000612dcd82612dbf8587612b2890919063ffffffff16565b612b2890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612df85760009050612e5a565b60008284612e0691906138d1565b9050828482612e15919061434f565b14612e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4c9061445e565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ec282612e79565b810181811067ffffffffffffffff82111715612ee157612ee0612e8a565b5b80604052505050565b6000612ef4612e60565b9050612f008282612eb9565b919050565b600067ffffffffffffffff821115612f2057612f1f612e8a565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f6182612f36565b9050919050565b612f7181612f56565b8114612f7c57600080fd5b50565b600081359050612f8e81612f68565b92915050565b6000612fa7612fa284612f05565b612eea565b90508083825260208201905060208402830185811115612fca57612fc9612f31565b5b835b81811015612ff35780612fdf8882612f7f565b845260208401935050602081019050612fcc565b5050509392505050565b600082601f83011261301257613011612e74565b5b8135613022848260208601612f94565b91505092915050565b60006020828403121561304157613040612e6a565b5b600082013567ffffffffffffffff81111561305f5761305e612e6f565b5b61306b84828501612ffd565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130ae578082015181840152602081019050613093565b838111156130bd576000848401525b50505050565b60006130ce82613074565b6130d8818561307f565b93506130e8818560208601613090565b6130f181612e79565b840191505092915050565b6000602082019050818103600083015261311681846130c3565b905092915050565b6000819050919050565b6131318161311e565b811461313c57600080fd5b50565b60008135905061314e81613128565b92915050565b6000806040838503121561316b5761316a612e6a565b5b600061317985828601612f7f565b925050602061318a8582860161313f565b9150509250929050565b60008115159050919050565b6131a981613194565b82525050565b60006020820190506131c460008301846131a0565b92915050565b6000819050919050565b60006131ef6131ea6131e584612f36565b6131ca565b612f36565b9050919050565b6000613201826131d4565b9050919050565b6000613213826131f6565b9050919050565b61322381613208565b82525050565b600060208201905061323e600083018461321a565b92915050565b61324d8161311e565b82525050565b60006020820190506132686000830184613244565b92915050565b60008060006060848603121561328757613286612e6a565b5b600061329586828701612f7f565b93505060206132a686828701612f7f565b92505060406132b78682870161313f565b9150509250925092565b600060ff82169050919050565b6132d7816132c1565b82525050565b60006020820190506132f260008301846132ce565b92915050565b61330181612f56565b82525050565b600060208201905061331c60008301846132f8565b92915050565b60006020828403121561333857613337612e6a565b5b600061334684828501612f7f565b91505092915050565b61335881613194565b811461336357600080fd5b50565b6000813590506133758161334f565b92915050565b60006020828403121561339157613390612e6a565b5b600061339f84828501613366565b91505092915050565b6000602082840312156133be576133bd612e6a565b5b60006133cc8482850161313f565b91505092915050565b600080600080608085870312156133ef576133ee612e6a565b5b60006133fd8782880161313f565b945050602061340e8782880161313f565b935050604061341f8782880161313f565b92505060606134308782880161313f565b91505092959194509250565b600080fd5b60008083601f84011261345757613456612e74565b5b8235905067ffffffffffffffff8111156134745761347361343c565b5b6020830191508360208202830111156134905761348f612f31565b5b9250929050565b6000806000604084860312156134b0576134af612e6a565b5b600084013567ffffffffffffffff8111156134ce576134cd612e6f565b5b6134da86828701613441565b935093505060206134ed86828701613366565b9150509250925092565b6000806040838503121561350e5761350d612e6a565b5b600061351c85828601612f7f565b925050602061352d85828601612f7f565b9150509250929050565b6000806040838503121561354e5761354d612e6a565b5b600061355c8582860161313f565b925050602061356d8582860161313f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135ad60208361307f565b91506135b882613577565b602082019050919050565b600060208201905081810360008301526135dc816135a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061364c8261311e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361367e5761367d613612565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203225000000000000000000000000000000000000000000000000000000602082015250565b60006136e560258361307f565b91506136f082613689565b604082019050919050565b60006020820190508181036000830152613714816136d8565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203160008201527f3225000000000000000000000000000000000000000000000000000000000000602082015250565b600061377760228361307f565b91506137828261371b565b604082019050919050565b600060208201905081810360008301526137a68161376a565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642032250000000000000000000000000000000000000000000000000000602082015250565b600061380960268361307f565b9150613814826137ad565b604082019050919050565b60006020820190508181036000830152613838816137fc565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3132250000000000000000000000000000000000000000000000000000000000602082015250565b600061389b60238361307f565b91506138a68261383f565b604082019050919050565b600060208201905081810360008301526138ca8161388e565b9050919050565b60006138dc8261311e565b91506138e78361311e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139205761391f613612565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061398760268361307f565b91506139928261392b565b604082019050919050565b600060208201905081810360008301526139b68161397a565b9050919050565b7f427579205478204c696d6974206d757374206265206869676820656e6f75676860008201527f20746f206e6f7420686f6e6579706f7400000000000000000000000000000000602082015250565b6000613a1960308361307f565b9150613a24826139bd565b604082019050919050565b60006020820190508181036000830152613a4881613a0c565b9050919050565b7f53656c6c205478204c696d6974206d757374206265206869676820656e6f756760008201527f6820746f206e6f7420686f6e6579706f74000000000000000000000000000000602082015250565b6000613aab60318361307f565b9150613ab682613a4f565b604082019050919050565b60006020820190508181036000830152613ada81613a9e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b3d60248361307f565b9150613b4882613ae1565b604082019050919050565b60006020820190508181036000830152613b6c81613b30565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bcf60228361307f565b9150613bda82613b73565b604082019050919050565b60006020820190508181036000830152613bfe81613bc2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c6160258361307f565b9150613c6c82613c05565b604082019050919050565b60006020820190508181036000830152613c9081613c54565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf360238361307f565b9150613cfe82613c97565b604082019050919050565b60006020820190508181036000830152613d2281613ce6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d8560298361307f565b9150613d9082613d29565b604082019050919050565b60006020820190508181036000830152613db481613d78565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e17603f8361307f565b9150613e2282613dbb565b604082019050919050565b60006020820190508181036000830152613e4681613e0a565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ea960238361307f565b9150613eb482613e4d565b604082019050919050565b60006020820190508181036000830152613ed881613e9c565b9050919050565b6000613eea8261311e565b9150613ef58361311e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f2a57613f29613612565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9160238361307f565b9150613f9c82613f35565b604082019050919050565b60006020820190508181036000830152613fc081613f84565b9050919050565b7f544f4b454e3a204d617820427579205472616e73616374696f6e204c696d6974600082015250565b6000613ffd60208361307f565b915061400882613fc7565b602082019050919050565b6000602082019050818103600083015261402c81613ff0565b9050919050565b7f544f4b454e3a204d61782053656c6c205472616e73616374696f6e204c696d6960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061408f60218361307f565b915061409a82614033565b604082019050919050565b600060208201905081810360008301526140be81614082565b9050919050565b60006140d08261311e565b91506140db8361311e565b9250828210156140ee576140ed613612565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614155602a8361307f565b9150614160826140f9565b604082019050919050565b6000602082019050818103600083015261418481614148565b9050919050565b60008151905061419a81612f68565b92915050565b6000602082840312156141b6576141b5612e6a565b5b60006141c48482850161418b565b91505092915050565b6000819050919050565b60006141f26141ed6141e8846141cd565b6131ca565b61311e565b9050919050565b614202816141d7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61423d81612f56565b82525050565b600061424f8383614234565b60208301905092915050565b6000602082019050919050565b600061427382614208565b61427d8185614213565b935061428883614224565b8060005b838110156142b95781516142a08882614243565b97506142ab8361425b565b92505060018101905061428c565b5085935050505092915050565b600060a0820190506142db6000830188613244565b6142e860208301876141f9565b81810360408301526142fa8186614268565b905061430960608301856132f8565b6143166080830184613244565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061435a8261311e565b91506143658361311e565b92508261437557614374614320565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143b6601b8361307f565b91506143c182614380565b602082019050919050565b600060208201905081810360008301526143e5816143a9565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061444860218361307f565b9150614453826143ec565b604082019050919050565b600060208201905081810360008301526144778161443b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200fee8a865127946f38085305aab88a562a43107b11ec4cc834c13024c94c109064736f6c634300080f0033
Deployed Bytecode Sourcemap
4095:15003:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13476:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6964:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7896:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5544:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7244:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8098:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5970:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7152:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5853:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5592:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13654:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18112:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13232:235;;;;;;;;;;;;;:::i;:::-;;7348:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1568:148;;;;;;;;;;;;;:::i;:::-;;5736:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1352:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12840:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5912:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7056:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17920:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17178:689;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7495:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5236:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12987:236;;;;;;;;;;;;;:::i;:::-;;18861:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5794:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4771:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7703:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18729:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1725:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18254:466;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13476:169;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13552:9:::1;13547:91;13571:5;:12;13567:1;:16;13547:91;;;13622:4;13605;:14;13610:5;13616:1;13610:8;;;;;;;;:::i;:::-;;;;;;;;13605:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13585:3;;;;;:::i;:::-;;;;13547:91;;;;13476:169:::0;:::o;6964:83::-;7001:13;7034:5;;;;;;;;;;;;;;;;;7027:12;;6964:83;:::o;7896:193::-;7998:4;8020:39;8029:12;:10;:12::i;:::-;8043:7;8052:6;8020:8;:39::i;:::-;8077:4;8070:11;;7896:193;;;;:::o;5544:41::-;;;;;;;;;;;;;:::o;7244:95::-;7297:7;4657:18;7317:14;;7244:95;:::o;8098:446::-;8230:4;8247:36;8257:6;8265:9;8276:6;8247:9;:36::i;:::-;8294:220;8317:6;8338:12;:10;:12::i;:::-;8365:138;8421:6;8365:138;;;;;;;;;;;;;;;;;:11;:19;8377:6;8365:19;;;;;;;;;;;;;;;:33;8385:12;:10;:12::i;:::-;8365:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8294:8;:220::i;:::-;8532:4;8525:11;;8098:446;;;;;:::o;5970:50::-;;;;:::o;7152:83::-;7193:5;4330:1;7211:16;;7152:83;:::o;5853:49::-;;;;:::o;5592:28::-;;;;;;;;;;;;;:::o;13654:92::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13733:5:::1;13718:4;:12;13723:6;13718:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13654:92:::0;:::o;18112:101::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18193:12:::1;18179:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;18112:101:::0;:::o;13232:235::-;13298:19;;;;;;;;;;;13282:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13337:17;;;;;;;;;;;13321:33;;:12;:10;:12::i;:::-;:33;;;13282:72;13274:81;;;;;;13366:26;13395:21;13366:50;;13427:32;13440:18;13427:12;:32::i;:::-;13263:204;13232:235::o;7348:138::-;7414:7;7441:37;7461:7;:16;7469:7;7461:16;;;;;;;;;;;;;;;;7441:19;:37::i;:::-;7434:44;;7348:138;;;:::o;1568:148::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1675:1:::1;1638:40;;1659:6;::::0;::::1;;;;;;;;1638:40;;;;;;;;;;;;1706:1;1689:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1568:148::o:0;5736:46::-;;;;:::o;1352:79::-;1390:7;1417:6;;;;;;;;;;;1410:13;;1352:79;:::o;12840:138::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12921:12:::1;12907:11;;:26;;;;;;;;;;;;;;;;;;12958:12;12944:11;:26;;;;12840:138:::0;:::o;5912:48::-;;;;:::o;7056:87::-;7095:13;7128:7;;;;;;;;;;;;;;;;;7121:14;;7056:87;:::o;17920:139::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18033:18:::1;18011:19;:40;;;;17920:139:::0;:::o;17178:689::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17337:1:::1;17320:13;:18;;:40;;;;;17359:1;17342:13;:18;;17320:40;17312:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17436:1;17421:11;:16;;:37;;;;;17456:2;17441:11;:17;;17421:37;17413:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17534:1;17516:14;:19;;:42;;;;;17557:1;17539:14;:19;;17516:42;17508:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17636:1;17620:12;:17;;:39;;;;;17657:2;17641:12;:18;;17620:39;17612:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17727:13;17710:14;:30;;;;17769:14;17751:15;:32;;;;17809:11;17794:12;:26;;;;17847:12;17831:13;:28;;;;17178:689:::0;;;;:::o;7495:199::-;7600:4;7622:42;7632:12;:10;:12::i;:::-;7646:9;7657:6;7622:9;:42::i;:::-;7682:4;7675:11;;7495:199;;;;:::o;5236:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12987:236::-;13053:19;;;;;;;;;;;13037:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13092:17;;;;;;;;;;;13076:33;;:12;:10;:12::i;:::-;:33;;;13037:72;13029:81;;;;;;13121:23;13147:24;13165:4;13147:9;:24::i;:::-;13121:50;;13182:33;13199:15;13182:16;:33::i;:::-;13018:205;12987:236::o;18861:234::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18978:9:::1;18974:114;18997:8;;:15;;18993:1;:19;18974:114;;;19068:8;19034:18;:31;19053:8;;19062:1;19053:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19034:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19014:3;;;;;:::i;:::-;;;;18974:114;;;;18861:234:::0;;;:::o;5794:49::-;;;;:::o;4771:26::-;;;;:::o;7703:184::-;7820:7;7852:11;:18;7864:5;7852:18;;;;;;;;;;;;;;;:27;7871:7;7852:27;;;;;;;;;;;;;;;;7845:34;;7703:184;;;;:::o;18729:123::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18839:5:::1;18823:13;:21;;;;:::i;:::-;18806:14;:38;;;;18729:123:::0;:::o;1725:244::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1834:1:::1;1814:22;;:8;:22;;::::0;1806:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1924:8;1895:38;;1916:6;::::0;::::1;;;;;;;;1895:38;;;;;;;;;;;;1953:8;1944:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1725:244:::0;:::o;18254:466::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18383:7:::1;18365:14;:25;;18357:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;18481:7;18462:15;:26;;18454:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;18588:5;18571:14;:22;;;;:::i;:::-;18553:15;:40;;;;18641:5;18623:15;:23;;;;:::i;:::-;18604:16;:42;;;;18689:5;18672:14;:22;;;;:::i;:::-;18657:12;:37;;;;18254:466:::0;;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;9241:369::-;9385:1;9368:19;;:5;:19;;;9360:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9466:1;9447:21;;:7;:21;;;9439:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9548:6;9518:11;:18;9530:5;9518:18;;;;;;;;;;;;;;;:27;9537:7;9518:27;;;;;;;;;;;;;;;:36;;;;9586:7;9570:32;;9579:5;9570:32;;;9595:6;9570:32;;;;;;:::i;:::-;;;;;;;;9241:369;;;:::o;9619:2602::-;9757:1;9741:18;;:4;:18;;;9733:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9834:1;9820:16;;:2;:16;;;9812:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9904:1;9895:6;:10;9887:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9977:7;:5;:7::i;:::-;9969:15;;:4;:15;;;;:32;;;;;9994:7;:5;:7::i;:::-;9988:13;;:2;:13;;;;9969:32;9965:1204;;;10059:11;;;;;;;;;;;10054:144;;10107:7;:5;:7::i;:::-;10099:15;;:4;:15;;;10091:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10054:144;10236:4;:10;10241:4;10236:10;;;;;;;;;;;;;;;;;;;;;;;;;10235:11;:24;;;;;10251:4;:8;10256:2;10251:8;;;;;;;;;;;;;;;;;;;;;;;;;10250:9;10235:24;10227:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10326:13;;;;;;;;;;;10320:19;;:2;:19;;;10317:146;;10393:14;;10384:6;10368:13;10378:2;10368:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10360:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10317:146;10485:28;10516:24;10534:4;10516:9;:24::i;:::-;10485:55;;10555:12;10594:19;;10570:20;:43;;10555:58;;10658:12;;10634:20;:36;10631:124;;10727:12;;10704:35;;10631:124;10776:7;:18;;;;;10788:6;;;;;;;;;;;10787:7;10776:18;:43;;;;;10806:13;;;;;;;;;;;10798:21;;:4;:21;;;;10776:43;:58;;;;;10823:11;;;;;;;;;;10776:58;:87;;;;;10839:18;:24;10858:4;10839:24;;;;;;;;;;;;;;;;;;;;;;;;;10838:25;10776:87;:114;;;;;10868:18;:22;10887:2;10868:22;;;;;;;;;;;;;;;;;;;;;;;;;10867:23;10776:114;10772:386;;;10911:38;10928:20;10911:16;:38::i;:::-;10968:26;10997:21;10968:50;;11062:1;11041:18;:22;11037:106;;;11088:35;11101:21;11088:12;:35::i;:::-;11037:106;10892:266;10772:386;10003:1166;;9965:1204;11182:12;11197:4;11182:19;;11247:18;:24;11266:4;11247:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11275:18;:22;11294:2;11275:22;;;;;;;;;;;;;;;;;;;;;;;;;11247:50;11246:102;;;;11311:13;;;;;;;;;;;11303:21;;:4;:21;;;;:44;;;;;11334:13;;;;;;;;;;;11328:19;;:2;:19;;;;11303:44;11246:102;11242:917;;;11375:5;11365:15;;11242:917;;;11473:13;;;;;;;;;;;11465:21;;:4;:21;;;:55;;;;;11504:15;;;;;;;;;;;11490:30;;:2;:30;;;;11465:55;11462:251;;;11553:14;;11541:9;:26;;;;11596:12;;11586:7;:22;;;;11645:15;;11635:6;:25;;11627:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11462:251;11783:13;;;;;;;;;;;11777:19;;:2;:19;;;:55;;;;;11816:15;;;;;;;;;;;11800:32;;:4;:32;;;;11777:55;11773:372;;;11865:15;;11853:9;:27;;;;11909:13;;11899:7;:23;;;;11959:16;;11949:6;:26;;11941:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12068:2;12056:11;;:14;;;;:::i;:::-;12040:12;:30;12037:92;;12107:2;12097:7;:12;;;;12037:92;11773:372;11242:917;12172:41;12187:4;12193:2;12197:6;12205:7;12172:14;:41::i;:::-;9722:2499;9619:2602;;;:::o;2337:224::-;2457:7;2490:1;2485;:6;;2493:12;2477:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2517:9;2533:1;2529;:5;;;;:::i;:::-;2517:17;;2552:1;2545:8;;;2337:224;;;;;:::o;12722:109::-;12779:17;;;;;;;;;;;:26;;:34;12806:6;12779:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12722:109;:::o;8553:323::-;8648:7;8706;;8695;:18;;8673:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8794:19;8816:10;:8;:10::i;:::-;8794:32;;8844:24;8856:11;8844:7;:11;;:24;;;;:::i;:::-;8837:31;;;8553:323;;;:::o;12230:483::-;6247:4;6238:6;;:13;;;;;;;;;;;;;;;;;;12308:21:::1;12346:1;12332:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12308:40;;12377:4;12359;12364:1;12359:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12403:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12393:4;12398:1;12393:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12436:62;12453:4;12468:15;;;;;;;;;;;12486:11;12436:8;:62::i;:::-;12509:15;;;;;;;;;;;:66;;;12590:11;12616:1;12632:4;12659;12679:15;12509:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12297:416;6283:5:::0;6274:6;;:14;;;;;;;;;;;;;;;;;;12230:483;:::o;13755:282::-;13911:7;13906:28;;13920:14;:12;:14::i;:::-;13906:28;13945:44;13963:6;13971:9;13982:6;13945:17;:44::i;:::-;14005:7;14000:29;;14014:15;:13;:15::i;:::-;14000:29;13755:282;;;;:::o;16733:167::-;16775:7;16796:15;16813;16832:19;:17;:19::i;:::-;16795:56;;;;16872:20;16884:7;16872;:11;;:20;;;;:::i;:::-;16865:27;;;;16733:167;:::o;2825:132::-;2883:7;2910:39;2914:1;2917;2910:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2903:46;;2825:132;;;;:::o;8885:221::-;8945:1;8932:9;;:14;:30;;;;;8961:1;8950:7;;:12;8932:30;8964:7;8928:43;9004:9;;8984:17;:29;;;;9042:7;;9024:15;:25;;;;9075:1;9063:9;:13;;;;9097:1;9087:7;:11;;;;8885:221;:::o;14046:610::-;14193:15;14223:23;14261:12;14288:23;14326:12;14353:13;14380:19;14391:7;14380:10;:19::i;:::-;14178:221;;;;;;;;;;;;14428:28;14448:7;14428;:15;14436:6;14428:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14410:7;:15;14418:6;14410:15;;;;;;;;;;;;;;;:46;;;;14488:39;14511:15;14488:7;:18;14496:9;14488:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14467:7;:18;14475:9;14467:18;;;;;;;;;;;;;;;:60;;;;14538:16;14548:5;14538:9;:16::i;:::-;14565:23;14577:4;14583;14565:11;:23::i;:::-;14621:9;14604:44;;14613:6;14604:44;;;14632:15;14604:44;;;;;;:::i;:::-;;;;;;;;14167:489;;;;;;14046:610;;;:::o;9115:117::-;9171:17;;9159:9;:29;;;;9209:15;;9199:7;:25;;;;9115:117::o;16909:260::-;16960:7;16969;16989:15;17007:7;;16989:25;;17025:15;4657:18;17025:25;;17075:20;4657:18;17075:7;;:11;;:20;;;;:::i;:::-;17065:7;:30;17061:61;;;17105:7;;4657:18;17097:25;;;;;;;;17061:61;17144:7;17153;17136:25;;;;;;16909:260;;;:::o;2966:223::-;3086:7;3118:1;3114;:5;3121:12;3106:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3145:9;3161:1;3157;:5;;;;:::i;:::-;3145:17;;3180:1;3173:8;;;2966:223;;;;;:::o;15079:618::-;15179:7;15201;15223;15245;15267;15289;15325:23;15350:12;15364:13;15394:40;15406:7;15415:9;;15426:7;;15394:11;:40::i;:::-;15324:110;;;;;;15445:19;15467:10;:8;:10::i;:::-;15445:32;;15489:15;15506:23;15531:12;15560:46;15572:7;15581:4;15587:5;15594:11;15560;:46::i;:::-;15488:118;;;;;;15628:7;15637:15;15654:4;15660:15;15677:4;15683:5;15620:69;;;;;;;;;;;;;;;;;;;15079:618;;;;;;;:::o;2192:136::-;2250:7;2277:43;2281:1;2284;2277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2270:50;;2192:136;;;;:::o;2004:179::-;2062:7;2082:9;2098:1;2094;:5;;;;:::i;:::-;2082:17;;2123:1;2118;:6;;2110:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2174:1;2167:8;;;2004:179;;;;:::o;14665:211::-;14718:19;14740:10;:8;:10::i;:::-;14718:32;;14761:13;14777:22;14787:11;14777:5;:9;;:22;;;;:::i;:::-;14761:38;;14835:33;14862:5;14835:7;:22;14851:4;14835:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14810:7;:22;14826:4;14810:22;;;;;;;;;;;;;;;:58;;;;14707:169;;14665:211;:::o;14885:147::-;14963:17;14975:4;14963:7;;:11;;:17;;;;:::i;:::-;14953:7;:27;;;;15004:20;15019:4;15004:10;;:14;;:20;;;;:::i;:::-;14991:10;:33;;;;14885:147;;:::o;15706:472::-;15875:7;15897;15919;15954:12;15969:30;15995:3;15969:21;15981:8;15969:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15954:45;;16010:13;16026:28;16050:3;16026:19;16038:6;16026:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16010:44;;16065:23;16091:28;16113:5;16091:17;16103:4;16091:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16065:54;;16141:15;16158:4;16164:5;16133:37;;;;;;;;;15706:472;;;;;;;:::o;16187:537::-;16381:7;16403;16425;16460:15;16478:24;16490:11;16478:7;:11;;:24;;;;:::i;:::-;16460:42;;16513:12;16528:21;16537:11;16528:4;:8;;:21;;;;:::i;:::-;16513:36;;16560:13;16576:22;16586:11;16576:5;:9;;:22;;;;:::i;:::-;16560:38;;16609:23;16635:28;16657:5;16635:17;16647:4;16635:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16609:54;;16685:7;16694:15;16711:4;16677:39;;;;;;;;;;16187:537;;;;;;;;:::o;2570:246::-;2628:7;2657:1;2652;:6;2648:47;;2682:1;2675:8;;;;2648:47;2705:9;2721:1;2717;:5;;;;:::i;:::-;2705:17;;2750:1;2745;2741;:5;;;;:::i;:::-;:10;2733:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:1;2800:8;;;2570:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:329::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:765::-;10414:6;10422;10430;10438;10487:3;10475:9;10466:7;10462:23;10458:33;10455:120;;;10494:79;;:::i;:::-;10455:120;10614:1;10639:53;10684:7;10675:6;10664:9;10660:22;10639:53;:::i;:::-;10629:63;;10585:117;10741:2;10767:53;10812:7;10803:6;10792:9;10788:22;10767:53;:::i;:::-;10757:63;;10712:118;10869:2;10895:53;10940:7;10931:6;10920:9;10916:22;10895:53;:::i;:::-;10885:63;;10840:118;10997:2;11023:53;11068:7;11059:6;11048:9;11044:22;11023:53;:::i;:::-;11013:63;;10968:118;10328:765;;;;;;;:::o;11099:117::-;11208:1;11205;11198:12;11239:568;11312:8;11322:6;11372:3;11365:4;11357:6;11353:17;11349:27;11339:122;;11380:79;;:::i;:::-;11339:122;11493:6;11480:20;11470:30;;11523:18;11515:6;11512:30;11509:117;;;11545:79;;:::i;:::-;11509:117;11659:4;11651:6;11647:17;11635:29;;11713:3;11705:4;11697:6;11693:17;11683:8;11679:32;11676:41;11673:128;;;11720:79;;:::i;:::-;11673:128;11239:568;;;;;:::o;11813:698::-;11905:6;11913;11921;11970:2;11958:9;11949:7;11945:23;11941:32;11938:119;;;11976:79;;:::i;:::-;11938:119;12124:1;12113:9;12109:17;12096:31;12154:18;12146:6;12143:30;12140:117;;;12176:79;;:::i;:::-;12140:117;12289:80;12361:7;12352:6;12341:9;12337:22;12289:80;:::i;:::-;12271:98;;;;12067:312;12418:2;12444:50;12486:7;12477:6;12466:9;12462:22;12444:50;:::i;:::-;12434:60;;12389:115;11813:698;;;;;:::o;12517:474::-;12585:6;12593;12642:2;12630:9;12621:7;12617:23;12613:32;12610:119;;;12648:79;;:::i;:::-;12610:119;12768:1;12793:53;12838:7;12829:6;12818:9;12814:22;12793:53;:::i;:::-;12783:63;;12739:117;12895:2;12921:53;12966:7;12957:6;12946:9;12942:22;12921:53;:::i;:::-;12911:63;;12866:118;12517:474;;;;;:::o;12997:::-;13065:6;13073;13122:2;13110:9;13101:7;13097:23;13093:32;13090:119;;;13128:79;;:::i;:::-;13090:119;13248:1;13273:53;13318:7;13309:6;13298:9;13294:22;13273:53;:::i;:::-;13263:63;;13219:117;13375:2;13401:53;13446:7;13437:6;13426:9;13422:22;13401:53;:::i;:::-;13391:63;;13346:118;12997:474;;;;;:::o;13477:182::-;13617:34;13613:1;13605:6;13601:14;13594:58;13477:182;:::o;13665:366::-;13807:3;13828:67;13892:2;13887:3;13828:67;:::i;:::-;13821:74;;13904:93;13993:3;13904:93;:::i;:::-;14022:2;14017:3;14013:12;14006:19;;13665:366;;;:::o;14037:419::-;14203:4;14241:2;14230:9;14226:18;14218:26;;14290:9;14284:4;14280:20;14276:1;14265:9;14261:17;14254:47;14318:131;14444:4;14318:131;:::i;:::-;14310:139;;14037:419;;;:::o;14462:180::-;14510:77;14507:1;14500:88;14607:4;14604:1;14597:15;14631:4;14628:1;14621:15;14648:180;14696:77;14693:1;14686:88;14793:4;14790:1;14783:15;14817:4;14814:1;14807:15;14834:233;14873:3;14896:24;14914:5;14896:24;:::i;:::-;14887:33;;14942:66;14935:5;14932:77;14929:103;;15012:18;;:::i;:::-;14929:103;15059:1;15052:5;15048:13;15041:20;;14834:233;;;:::o;15073:224::-;15213:34;15209:1;15201:6;15197:14;15190:58;15282:7;15277:2;15269:6;15265:15;15258:32;15073:224;:::o;15303:366::-;15445:3;15466:67;15530:2;15525:3;15466:67;:::i;:::-;15459:74;;15542:93;15631:3;15542:93;:::i;:::-;15660:2;15655:3;15651:12;15644:19;;15303:366;;;:::o;15675:419::-;15841:4;15879:2;15868:9;15864:18;15856:26;;15928:9;15922:4;15918:20;15914:1;15903:9;15899:17;15892:47;15956:131;16082:4;15956:131;:::i;:::-;15948:139;;15675:419;;;:::o;16100:221::-;16240:34;16236:1;16228:6;16224:14;16217:58;16309:4;16304:2;16296:6;16292:15;16285:29;16100:221;:::o;16327:366::-;16469:3;16490:67;16554:2;16549:3;16490:67;:::i;:::-;16483:74;;16566:93;16655:3;16566:93;:::i;:::-;16684:2;16679:3;16675:12;16668:19;;16327:366;;;:::o;16699:419::-;16865:4;16903:2;16892:9;16888:18;16880:26;;16952:9;16946:4;16942:20;16938:1;16927:9;16923:17;16916:47;16980:131;17106:4;16980:131;:::i;:::-;16972:139;;16699:419;;;:::o;17124:225::-;17264:34;17260:1;17252:6;17248:14;17241:58;17333:8;17328:2;17320:6;17316:15;17309:33;17124:225;:::o;17355:366::-;17497:3;17518:67;17582:2;17577:3;17518:67;:::i;:::-;17511:74;;17594:93;17683:3;17594:93;:::i;:::-;17712:2;17707:3;17703:12;17696:19;;17355:366;;;:::o;17727:419::-;17893:4;17931:2;17920:9;17916:18;17908:26;;17980:9;17974:4;17970:20;17966:1;17955:9;17951:17;17944:47;18008:131;18134:4;18008:131;:::i;:::-;18000:139;;17727:419;;;:::o;18152:222::-;18292:34;18288:1;18280:6;18276:14;18269:58;18361:5;18356:2;18348:6;18344:15;18337:30;18152:222;:::o;18380:366::-;18522:3;18543:67;18607:2;18602:3;18543:67;:::i;:::-;18536:74;;18619:93;18708:3;18619:93;:::i;:::-;18737:2;18732:3;18728:12;18721:19;;18380:366;;;:::o;18752:419::-;18918:4;18956:2;18945:9;18941:18;18933:26;;19005:9;18999:4;18995:20;18991:1;18980:9;18976:17;18969:47;19033:131;19159:4;19033:131;:::i;:::-;19025:139;;18752:419;;;:::o;19177:348::-;19217:7;19240:20;19258:1;19240:20;:::i;:::-;19235:25;;19274:20;19292:1;19274:20;:::i;:::-;19269:25;;19462:1;19394:66;19390:74;19387:1;19384:81;19379:1;19372:9;19365:17;19361:105;19358:131;;;19469:18;;:::i;:::-;19358:131;19517:1;19514;19510:9;19499:20;;19177:348;;;;:::o;19531:225::-;19671:34;19667:1;19659:6;19655:14;19648:58;19740:8;19735:2;19727:6;19723:15;19716:33;19531:225;:::o;19762:366::-;19904:3;19925:67;19989:2;19984:3;19925:67;:::i;:::-;19918:74;;20001:93;20090:3;20001:93;:::i;:::-;20119:2;20114:3;20110:12;20103:19;;19762:366;;;:::o;20134:419::-;20300:4;20338:2;20327:9;20323:18;20315:26;;20387:9;20381:4;20377:20;20373:1;20362:9;20358:17;20351:47;20415:131;20541:4;20415:131;:::i;:::-;20407:139;;20134:419;;;:::o;20559:235::-;20699:34;20695:1;20687:6;20683:14;20676:58;20768:18;20763:2;20755:6;20751:15;20744:43;20559:235;:::o;20800:366::-;20942:3;20963:67;21027:2;21022:3;20963:67;:::i;:::-;20956:74;;21039:93;21128:3;21039:93;:::i;:::-;21157:2;21152:3;21148:12;21141:19;;20800:366;;;:::o;21172:419::-;21338:4;21376:2;21365:9;21361:18;21353:26;;21425:9;21419:4;21415:20;21411:1;21400:9;21396:17;21389:47;21453:131;21579:4;21453:131;:::i;:::-;21445:139;;21172:419;;;:::o;21597:236::-;21737:34;21733:1;21725:6;21721:14;21714:58;21806:19;21801:2;21793:6;21789:15;21782:44;21597:236;:::o;21839:366::-;21981:3;22002:67;22066:2;22061:3;22002:67;:::i;:::-;21995:74;;22078:93;22167:3;22078:93;:::i;:::-;22196:2;22191:3;22187:12;22180:19;;21839:366;;;:::o;22211:419::-;22377:4;22415:2;22404:9;22400:18;22392:26;;22464:9;22458:4;22454:20;22450:1;22439:9;22435:17;22428:47;22492:131;22618:4;22492:131;:::i;:::-;22484:139;;22211:419;;;:::o;22636:223::-;22776:34;22772:1;22764:6;22760:14;22753:58;22845:6;22840:2;22832:6;22828:15;22821:31;22636:223;:::o;22865:366::-;23007:3;23028:67;23092:2;23087:3;23028:67;:::i;:::-;23021:74;;23104:93;23193:3;23104:93;:::i;:::-;23222:2;23217:3;23213:12;23206:19;;22865:366;;;:::o;23237:419::-;23403:4;23441:2;23430:9;23426:18;23418:26;;23490:9;23484:4;23480:20;23476:1;23465:9;23461:17;23454:47;23518:131;23644:4;23518:131;:::i;:::-;23510:139;;23237:419;;;:::o;23662:221::-;23802:34;23798:1;23790:6;23786:14;23779:58;23871:4;23866:2;23858:6;23854:15;23847:29;23662:221;:::o;23889:366::-;24031:3;24052:67;24116:2;24111:3;24052:67;:::i;:::-;24045:74;;24128:93;24217:3;24128:93;:::i;:::-;24246:2;24241:3;24237:12;24230:19;;23889:366;;;:::o;24261:419::-;24427:4;24465:2;24454:9;24450:18;24442:26;;24514:9;24508:4;24504:20;24500:1;24489:9;24485:17;24478:47;24542:131;24668:4;24542:131;:::i;:::-;24534:139;;24261:419;;;:::o;24686:224::-;24826:34;24822:1;24814:6;24810:14;24803:58;24895:7;24890:2;24882:6;24878:15;24871:32;24686:224;:::o;24916:366::-;25058:3;25079:67;25143:2;25138:3;25079:67;:::i;:::-;25072:74;;25155:93;25244:3;25155:93;:::i;:::-;25273:2;25268:3;25264:12;25257:19;;24916:366;;;:::o;25288:419::-;25454:4;25492:2;25481:9;25477:18;25469:26;;25541:9;25535:4;25531:20;25527:1;25516:9;25512:17;25505:47;25569:131;25695:4;25569:131;:::i;:::-;25561:139;;25288:419;;;:::o;25713:222::-;25853:34;25849:1;25841:6;25837:14;25830:58;25922:5;25917:2;25909:6;25905:15;25898:30;25713:222;:::o;25941:366::-;26083:3;26104:67;26168:2;26163:3;26104:67;:::i;:::-;26097:74;;26180:93;26269:3;26180:93;:::i;:::-;26298:2;26293:3;26289:12;26282:19;;25941:366;;;:::o;26313:419::-;26479:4;26517:2;26506:9;26502:18;26494:26;;26566:9;26560:4;26556:20;26552:1;26541:9;26537:17;26530:47;26594:131;26720:4;26594:131;:::i;:::-;26586:139;;26313:419;;;:::o;26738:228::-;26878:34;26874:1;26866:6;26862:14;26855:58;26947:11;26942:2;26934:6;26930:15;26923:36;26738:228;:::o;26972:366::-;27114:3;27135:67;27199:2;27194:3;27135:67;:::i;:::-;27128:74;;27211:93;27300:3;27211:93;:::i;:::-;27329:2;27324:3;27320:12;27313:19;;26972:366;;;:::o;27344:419::-;27510:4;27548:2;27537:9;27533:18;27525:26;;27597:9;27591:4;27587:20;27583:1;27572:9;27568:17;27561:47;27625:131;27751:4;27625:131;:::i;:::-;27617:139;;27344:419;;;:::o;27769:250::-;27909:34;27905:1;27897:6;27893:14;27886:58;27978:33;27973:2;27965:6;27961:15;27954:58;27769:250;:::o;28025:366::-;28167:3;28188:67;28252:2;28247:3;28188:67;:::i;:::-;28181:74;;28264:93;28353:3;28264:93;:::i;:::-;28382:2;28377:3;28373:12;28366:19;;28025:366;;;:::o;28397:419::-;28563:4;28601:2;28590:9;28586:18;28578:26;;28650:9;28644:4;28640:20;28636:1;28625:9;28621:17;28614:47;28678:131;28804:4;28678:131;:::i;:::-;28670:139;;28397:419;;;:::o;28822:222::-;28962:34;28958:1;28950:6;28946:14;28939:58;29031:5;29026:2;29018:6;29014:15;29007:30;28822:222;:::o;29050:366::-;29192:3;29213:67;29277:2;29272:3;29213:67;:::i;:::-;29206:74;;29289:93;29378:3;29289:93;:::i;:::-;29407:2;29402:3;29398:12;29391:19;;29050:366;;;:::o;29422:419::-;29588:4;29626:2;29615:9;29611:18;29603:26;;29675:9;29669:4;29665:20;29661:1;29650:9;29646:17;29639:47;29703:131;29829:4;29703:131;:::i;:::-;29695:139;;29422:419;;;:::o;29847:305::-;29887:3;29906:20;29924:1;29906:20;:::i;:::-;29901:25;;29940:20;29958:1;29940:20;:::i;:::-;29935:25;;30094:1;30026:66;30022:74;30019:1;30016:81;30013:107;;;30100:18;;:::i;:::-;30013:107;30144:1;30141;30137:9;30130:16;;29847:305;;;;:::o;30158:222::-;30298:34;30294:1;30286:6;30282:14;30275:58;30367:5;30362:2;30354:6;30350:15;30343:30;30158:222;:::o;30386:366::-;30528:3;30549:67;30613:2;30608:3;30549:67;:::i;:::-;30542:74;;30625:93;30714:3;30625:93;:::i;:::-;30743:2;30738:3;30734:12;30727:19;;30386:366;;;:::o;30758:419::-;30924:4;30962:2;30951:9;30947:18;30939:26;;31011:9;31005:4;31001:20;30997:1;30986:9;30982:17;30975:47;31039:131;31165:4;31039:131;:::i;:::-;31031:139;;30758:419;;;:::o;31183:182::-;31323:34;31319:1;31311:6;31307:14;31300:58;31183:182;:::o;31371:366::-;31513:3;31534:67;31598:2;31593:3;31534:67;:::i;:::-;31527:74;;31610:93;31699:3;31610:93;:::i;:::-;31728:2;31723:3;31719:12;31712:19;;31371:366;;;:::o;31743:419::-;31909:4;31947:2;31936:9;31932:18;31924:26;;31996:9;31990:4;31986:20;31982:1;31971:9;31967:17;31960:47;32024:131;32150:4;32024:131;:::i;:::-;32016:139;;31743:419;;;:::o;32168:220::-;32308:34;32304:1;32296:6;32292:14;32285:58;32377:3;32372:2;32364:6;32360:15;32353:28;32168:220;:::o;32394:366::-;32536:3;32557:67;32621:2;32616:3;32557:67;:::i;:::-;32550:74;;32633:93;32722:3;32633:93;:::i;:::-;32751:2;32746:3;32742:12;32735:19;;32394:366;;;:::o;32766:419::-;32932:4;32970:2;32959:9;32955:18;32947:26;;33019:9;33013:4;33009:20;33005:1;32994:9;32990:17;32983:47;33047:131;33173:4;33047:131;:::i;:::-;33039:139;;32766:419;;;:::o;33191:191::-;33231:4;33251:20;33269:1;33251:20;:::i;:::-;33246:25;;33285:20;33303:1;33285:20;:::i;:::-;33280:25;;33324:1;33321;33318:8;33315:34;;;33329:18;;:::i;:::-;33315:34;33374:1;33371;33367:9;33359:17;;33191:191;;;;:::o;33388:229::-;33528:34;33524:1;33516:6;33512:14;33505:58;33597:12;33592:2;33584:6;33580:15;33573:37;33388:229;:::o;33623:366::-;33765:3;33786:67;33850:2;33845:3;33786:67;:::i;:::-;33779:74;;33862:93;33951:3;33862:93;:::i;:::-;33980:2;33975:3;33971:12;33964:19;;33623:366;;;:::o;33995:419::-;34161:4;34199:2;34188:9;34184:18;34176:26;;34248:9;34242:4;34238:20;34234:1;34223:9;34219:17;34212:47;34276:131;34402:4;34276:131;:::i;:::-;34268:139;;33995:419;;;:::o;34420:143::-;34477:5;34508:6;34502:13;34493:22;;34524:33;34551:5;34524:33;:::i;:::-;34420:143;;;;:::o;34569:351::-;34639:6;34688:2;34676:9;34667:7;34663:23;34659:32;34656:119;;;34694:79;;:::i;:::-;34656:119;34814:1;34839:64;34895:7;34886:6;34875:9;34871:22;34839:64;:::i;:::-;34829:74;;34785:128;34569:351;;;;:::o;34926:85::-;34971:7;35000:5;34989:16;;34926:85;;;:::o;35017:158::-;35075:9;35108:61;35126:42;35135:32;35161:5;35135:32;:::i;:::-;35126:42;:::i;:::-;35108:61;:::i;:::-;35095:74;;35017:158;;;:::o;35181:147::-;35276:45;35315:5;35276:45;:::i;:::-;35271:3;35264:58;35181:147;;:::o;35334:114::-;35401:6;35435:5;35429:12;35419:22;;35334:114;;;:::o;35454:184::-;35553:11;35587:6;35582:3;35575:19;35627:4;35622:3;35618:14;35603:29;;35454:184;;;;:::o;35644:132::-;35711:4;35734:3;35726:11;;35764:4;35759:3;35755:14;35747:22;;35644:132;;;:::o;35782:108::-;35859:24;35877:5;35859:24;:::i;:::-;35854:3;35847:37;35782:108;;:::o;35896:179::-;35965:10;35986:46;36028:3;36020:6;35986:46;:::i;:::-;36064:4;36059:3;36055:14;36041:28;;35896:179;;;;:::o;36081:113::-;36151:4;36183;36178:3;36174:14;36166:22;;36081:113;;;:::o;36230:732::-;36349:3;36378:54;36426:5;36378:54;:::i;:::-;36448:86;36527:6;36522:3;36448:86;:::i;:::-;36441:93;;36558:56;36608:5;36558:56;:::i;:::-;36637:7;36668:1;36653:284;36678:6;36675:1;36672:13;36653:284;;;36754:6;36748:13;36781:63;36840:3;36825:13;36781:63;:::i;:::-;36774:70;;36867:60;36920:6;36867:60;:::i;:::-;36857:70;;36713:224;36700:1;36697;36693:9;36688:14;;36653:284;;;36657:14;36953:3;36946:10;;36354:608;;;36230:732;;;;:::o;36968:831::-;37231:4;37269:3;37258:9;37254:19;37246:27;;37283:71;37351:1;37340:9;37336:17;37327:6;37283:71;:::i;:::-;37364:80;37440:2;37429:9;37425:18;37416:6;37364:80;:::i;:::-;37491:9;37485:4;37481:20;37476:2;37465:9;37461:18;37454:48;37519:108;37622:4;37613:6;37519:108;:::i;:::-;37511:116;;37637:72;37705:2;37694:9;37690:18;37681:6;37637:72;:::i;:::-;37719:73;37787:3;37776:9;37772:19;37763:6;37719:73;:::i;:::-;36968:831;;;;;;;;:::o;37805:180::-;37853:77;37850:1;37843:88;37950:4;37947:1;37940:15;37974:4;37971:1;37964:15;37991:185;38031:1;38048:20;38066:1;38048:20;:::i;:::-;38043:25;;38082:20;38100:1;38082:20;:::i;:::-;38077:25;;38121:1;38111:35;;38126:18;;:::i;:::-;38111:35;38168:1;38165;38161:9;38156:14;;37991:185;;;;:::o;38182:177::-;38322:29;38318:1;38310:6;38306:14;38299:53;38182:177;:::o;38365:366::-;38507:3;38528:67;38592:2;38587:3;38528:67;:::i;:::-;38521:74;;38604:93;38693:3;38604:93;:::i;:::-;38722:2;38717:3;38713:12;38706:19;;38365:366;;;:::o;38737:419::-;38903:4;38941:2;38930:9;38926:18;38918:26;;38990:9;38984:4;38980:20;38976:1;38965:9;38961:17;38954:47;39018:131;39144:4;39018:131;:::i;:::-;39010:139;;38737:419;;;:::o;39162:220::-;39302:34;39298:1;39290:6;39286:14;39279:58;39371:3;39366:2;39358:6;39354:15;39347:28;39162:220;:::o;39388:366::-;39530:3;39551:67;39615:2;39610:3;39551:67;:::i;:::-;39544:74;;39627:93;39716:3;39627:93;:::i;:::-;39745:2;39740:3;39736:12;39729:19;;39388:366;;;:::o;39760:419::-;39926:4;39964:2;39953:9;39949:18;39941:26;;40013:9;40007:4;40003:20;39999:1;39988:9;39984:17;39977:47;40041:131;40167:4;40041:131;:::i;:::-;40033:139;;39760:419;;;:::o
Swarm Source
ipfs://0fee8a865127946f38085305aab88a562a43107b11ec4cc834c13024c94c1090
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.