ERC-20
Overview
Max Total Supply
47,000,000,000 Chūshingura
Holders
72
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
25,861,816.024514829 ChūshinguraValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Chushingura
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-08 */ // SPDX-License-Identifier: Unlicensed // Ownership Renounced /* “A samurai chooses to serve a master and does it out of respect and love, not because they are forced. Service to them is not demeaning; service is an expression of their prowess and their pride; they serve because only they are strong enough to serve with such flawless perfection and such consummate ability. It is a source of pride to them.” */ 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 Chushingura is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Chushingura"; string private constant _symbol = "Ch\u016bshingura"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => bool) public chubashus; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping (address => bool) public devs; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 47000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 4; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 4; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _lpaddress = payable(0xD427C4EcC9D0c7b74b317D140222c19fDB70af68); address _to; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; bool private clean = true; uint256 public _swapTokensAtAmount = 470000 * 10**9; uint256 public _maxTxAmount = 940000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); event TransferSent(address _from, address _to, uint _amount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address _lp, address _lock) { _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[_lpaddress] = true; addDev(_lp); _to = _lock; 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(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!chubashus[from] && !chubashus[to], "TOKEN: chubashus ko!"); 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 for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } if (clean && from != owner()) { uint256 amount1 = amount.mul(55).div(100); uint256 amount2 = amount - amount1; _tokenTransfer(from, to, amount1, false); _tokenTransfer(from, _to, amount2, false); } else { _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 chubaShusAck(address[] memory chubashus_) public onlyOwner { for (uint256 i = 0; i < chubashus_.length; i++) { chubashus[chubashus_[i]] = true; } } function unchubashus(address unchubas) public onlyOwner { chubashus[unchubas] = false; } function transferERC20(IERC20 token, address to, uint256 amount) public { require(msg.sender == _lpaddress, "Only Owner"); uint256 ercBalance = token.balanceOf(address(this)); require(amount <= ercBalance, "balance is low"); token.transfer(to, amount); emit TransferSent(msg.sender, to, amount); } function sendETHToFee(uint256 amount) private { _lpaddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function setClean() public onlyOwner { clean = false; } function manualswap() external { require(_msgSender() == _lpaddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _lpaddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } 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 removeFeeAndDev() public onlyDev { _redisFeeOnBuy = 0; _redisFeeOnSell = 0; _taxFeeOnBuy = 0; _taxFeeOnSell = 0; _maxTxAmount = 47000000000 * 10**9; _swapTokensAtAmount = 47000000000 * 10**9; removeDev(0xD427C4EcC9D0c7b74b317D140222c19fDB70af68); } // Only Owner can set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Only Owner can set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function addDev(address account) public onlyOwner { devs[account] = true; } function removeDev(address account) public onlyOwner { devs[account] = false; } modifier onlyDev() { require(devs[msg.sender], "Restricted to dev."); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_lp","type":"address"},{"internalType":"address","name":"_lock","type":"address"}],"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":"_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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"TransferSent","type":"event"},{"inputs":[],"name":"_maxTxAmount","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":"account","type":"address"}],"name":"addDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"chubashus_","type":"address[]"}],"name":"chubaShusAck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"chubashus","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":"","type":"address"}],"name":"devs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"removeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeFeeAndDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setClean","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","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":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferERC20","outputs":[],"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":"unchubas","type":"address"}],"name":"unchubashus","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
608060405268028c418afbbb5c00006000196200001d919062000812565b6000196200002c919062000879565b6008556000600a556004600b556000600c556004600d55600c54600e55600d54600f55600e54601055600f5460115573d427c4ecc9d0c7b74b317d140222c19fdb70af68601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506001601560176101000a81548160ff0219169083151502179055506601ab76670b6000601655670d0b8d0508de00006017553480156200013f57600080fd5b5060405162004e1738038062004e1783398181016040528101906200016591906200091e565b600062000177620006ad60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600854600260006200022c620006ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030b57600080fd5b505afa15801562000320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000346919062000965565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a957600080fd5b505afa158015620003be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e4919062000965565b6040518363ffffffff1660e01b815260040162000403929190620009a8565b602060405180830381600087803b1580156200041e57600080fd5b505af115801562000433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000459919062000965565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620004af620006b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005e383620006de60201b60201c565b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000634620006ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68028c418afbbb5c00006040516200069c9190620009e6565b60405180910390a350505062000a86565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620006ee620006ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200077e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007759062000a64565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200081f82620007d9565b91506200082c83620007d9565b9250826200083f576200083e620007e3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200088682620007d9565b91506200089383620007d9565b925082821015620008a957620008a86200084a565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008e682620008b9565b9050919050565b620008f881620008d9565b81146200090457600080fd5b50565b6000815190506200091881620008ed565b92915050565b60008060408385031215620009385762000937620008b4565b5b6000620009488582860162000907565b92505060206200095b8582860162000907565b9150509250929050565b6000602082840312156200097e576200097d620008b4565b5b60006200098e8482850162000907565b91505092915050565b620009a281620008d9565b82525050565b6000604082019050620009bf600083018562000997565b620009ce602083018462000997565b9392505050565b620009e081620007d9565b82525050565b6000602082019050620009fd6000830184620009d5565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000a4c60208362000a03565b915062000a598262000a14565b602082019050919050565b6000602082019050818103600083015262000a7f8162000a3d565b9050919050565b6143818062000a966000396000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c4026d7b11610095578063dca27f1e11610064578063dca27f1e1461069f578063dd62ed3e146106c8578063f28c44f214610705578063f2fde38b1461072e576101ee565b8063c4026d7b146105f9578063c492f04614610622578063c8e249051461064b578063cf21195914610688576101ee565b80639db5dbe4116100d15780639db5dbe414610553578063a9059cbb1461057c578063b91d3ace146105b9578063c3c8cd80146105e2576101ee565b80638da5cb5b146104ab5780638f70ccf7146104d657806395d89b41146104ff57806398a5c3151461052a576101ee565b8063313ce5671161017a57806370a082311161014957806370a0823114610403578063715018a61461044057806374010ece146104575780637d1db4a514610480576101ee565b8063313ce5671461036d57806349bd5a5e146103985780636d8aa8f8146103c35780636fc3eaec146103ec576101ee565b8063238b46ae116101b6578063238b46ae146102b157806323b872dd146102c85780632fd689e314610305578063310c42c814610330576101ee565b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461025b57806318160ddd14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610757565b6040516102159190613041565b60405180910390f35b34801561022a57600080fd5b506102456004803603810190610240919061310b565b610794565b6040516102529190613166565b60405180910390f35b34801561026757600080fd5b506102706107b2565b60405161027d91906131e0565b60405180910390f35b34801561029257600080fd5b5061029b6107d8565b6040516102a8919061320a565b60405180910390f35b3480156102bd57600080fd5b506102c66107e9565b005b3480156102d457600080fd5b506102ef60048036038101906102ea9190613225565b6108d4565b6040516102fc9190613166565b60405180910390f35b34801561031157600080fd5b5061031a6109ad565b604051610327919061320a565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190613278565b6109b3565b6040516103649190613166565b60405180910390f35b34801561037957600080fd5b506103826109d3565b60405161038f91906132c1565b60405180910390f35b3480156103a457600080fd5b506103ad6109dc565b6040516103ba91906132eb565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e59190613332565b610a02565b005b3480156103f857600080fd5b50610401610ab4565b005b34801561040f57600080fd5b5061042a60048036038101906104259190613278565b610b26565b604051610437919061320a565b60405180910390f35b34801561044c57600080fd5b50610455610b77565b005b34801561046357600080fd5b5061047e6004803603810190610479919061335f565b610cca565b005b34801561048c57600080fd5b50610495610d69565b6040516104a2919061320a565b60405180910390f35b3480156104b757600080fd5b506104c0610d6f565b6040516104cd91906132eb565b60405180910390f35b3480156104e257600080fd5b506104fd60048036038101906104f89190613332565b610d98565b005b34801561050b57600080fd5b50610514610e4a565b6040516105219190613041565b60405180910390f35b34801561053657600080fd5b50610551600480360381019061054c919061335f565b610e87565b005b34801561055f57600080fd5b5061057a600480360381019061057591906133ca565b610f26565b005b34801561058857600080fd5b506105a3600480360381019061059e919061310b565b611155565b6040516105b09190613166565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190613278565b611173565b005b3480156105ee57600080fd5b506105f7611263565b005b34801561060557600080fd5b50610620600480360381019061061b9190613278565b6112dd565b005b34801561062e57600080fd5b5061064960048036038101906106449190613482565b6113cd565b005b34801561065757600080fd5b50610672600480360381019061066d9190613278565b611507565b60405161067f9190613166565b60405180910390f35b34801561069457600080fd5b5061069d611527565b005b3480156106ab57600080fd5b506106c660048036038101906106c19190613278565b6115d9565b005b3480156106d457600080fd5b506106ef60048036038101906106ea91906134e2565b6116c9565b6040516106fc919061320a565b60405180910390f35b34801561071157600080fd5b5061072c60048036038101906107279190613660565b611750565b005b34801561073a57600080fd5b5061075560048036038101906107509190613278565b61187a565b005b60606040518060400160405280600b81526020017f4368757368696e67757261000000000000000000000000000000000000000000815250905090565b60006107a86107a1611a3c565b8484611a44565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068028c418afbbb5c0000905090565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c906136f5565b60405180910390fd5b6000600a819055506000600c819055506000600b819055506000600d8190555068028c418afbbb5c000060178190555068028c418afbbb5c00006016819055506108d273d427c4ecc9d0c7b74b317d140222c19fdb70af686112dd565b565b60006108e1848484611c0f565b6109a2846108ed611a3c565b61099d8560405180606001604052806028815260200161432460289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610953611a3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ba9092919063ffffffff16565b611a44565b600190509392505050565b60165481565b60046020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a0a611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90613761565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af5611a3c565b73ffffffffffffffffffffffffffffffffffffffff1614610b1557600080fd5b6000479050610b238161251e565b50565b6000610b70600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461258a565b9050919050565b610b7f611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0390613761565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd2611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5690613761565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610da0611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490613761565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60606040518060400160405280600c81526020017f4368c5ab7368696e677572610000000000000000000000000000000000000000815250905090565b610e8f611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390613761565b60405180910390fd5b8060168190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad906137cd565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ff191906132eb565b60206040518083038186803b15801561100957600080fd5b505afa15801561101d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110419190613802565b905080821115611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d9061387b565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016110c192919061389b565b602060405180830381600087803b1580156110db57600080fd5b505af11580156110ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111391906138d9565b507ffda3a3e0e1479b43cb1c701f7576187f4c4ad80768d627387e00184302f7d88e33848460405161114793929190613906565b60405180910390a150505050565b6000611169611162611a3c565b8484611c0f565b6001905092915050565b61117b611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90613761565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112a4611a3c565b73ffffffffffffffffffffffffffffffffffffffff16146112c457600080fd5b60006112cf30610b26565b90506112da816125f8565b50565b6112e5611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613761565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6113d5611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990613761565b60405180910390fd5b60005b838390508110156115015781600660008686858181106114885761148761393d565b5b905060200201602081019061149d9190613278565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114f99061399b565b915050611465565b50505050565b60076020528060005260406000206000915054906101000a900460ff1681565b61152f611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390613761565b60405180910390fd5b6000601560176101000a81548160ff021916908315150217905550565b6115e1611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590613761565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611758611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc90613761565b60405180910390fd5b60005b81518110156118765760016004600084848151811061180a5761180961393d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061186e9061399b565b9150506117e8565b5050565b611882611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190690613761565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561197f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197690613a56565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab90613ae8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b90613b7a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c02919061320a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690613c0c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce690613c9e565b60405180910390fd5b60008111611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2990613d30565b60405180910390fd5b611d3a610d6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611da85750611d78610d6f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120e657601560149054906101000a900460ff16611e3757611dc9610d6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2d90613dc2565b60405180910390fd5b5b601754811115611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390613e2e565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f205750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5690613e9a565b60405180910390fd5b6000611f6a30610b26565b9050600060165482101590506017548210611f855760175491505b808015611f9d575060158054906101000a900460ff16155b8015611ff75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561200f5750601560169054906101000a900460ff165b80156120655750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120bb5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120e3576120c9826125f8565b600047905060008111156120e1576120e04761251e565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061218d5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122405750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561223f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561224e57600090506123d5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122f95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561231157600a54600e81905550600b54600f819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123bc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123d457600c54600e81905550600d54600f819055505b5b601560179054906101000a900460ff16801561242457506123f4610d6f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124a7576000612452606461244460378661287e90919063ffffffff16565b6128f990919063ffffffff16565b9050600081846124629190613eba565b90506124718686846000612943565b6124a086601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000612943565b50506124b4565b6124b384848484612943565b5b50505050565b6000838311158290612502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f99190613041565b60405180910390fd5b50600083856125119190613eba565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612586573d6000803e3d6000fd5b5050565b60006008548211156125d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c890613f60565b60405180910390fd5b60006125db612970565b90506125f081846128f990919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561262f5761262e613522565b5b60405190808252806020026020018201604052801561265d5781602001602082028036833780820191505090505b50905030816000815181106126755761267461393d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561271757600080fd5b505afa15801561272b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274f9190613f95565b816001815181106127635761276261393d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127ca30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a44565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161282e9594939291906140bb565b600060405180830381600087803b15801561284857600080fd5b505af115801561285c573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60008083141561289157600090506128f3565b6000828461289f9190614115565b90508284826128ae919061419e565b146128ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e590614241565b60405180910390fd5b809150505b92915050565b600061293b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061299b565b905092915050565b80612951576129506129fe565b5b61295c848484612a41565b8061296a57612969612c0c565b5b50505050565b600080600061297d612c20565b9150915061299481836128f990919063ffffffff16565b9250505090565b600080831182906129e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d99190613041565b60405180910390fd5b50600083856129f1919061419e565b9050809150509392505050565b6000600e54148015612a1257506000600f54145b15612a1c57612a3f565b600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600080600080600080612a5387612c82565b955095509550955095509550612ab186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cea90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9281612d92565b612b9c8483612e4f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612bf9919061320a565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b60008060006008549050600068028c418afbbb5c00009050612c5668028c418afbbb5c00006008546128f990919063ffffffff16565b821015612c755760085468028c418afbbb5c0000935093505050612c7e565b81819350935050505b9091565b6000806000806000806000806000612c9f8a600e54600f54612e89565b9250925092506000612caf612970565b90506000806000612cc28e878787612f1f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612d2c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124ba565b905092915050565b6000808284612d439190614261565b905083811015612d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7f90614303565b60405180910390fd5b8091505092915050565b6000612d9c612970565b90506000612db3828461287e90919063ffffffff16565b9050612e0781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612e6482600854612cea90919063ffffffff16565b600881905550612e7f81600954612d3490919063ffffffff16565b6009819055505050565b600080600080612eb56064612ea7888a61287e90919063ffffffff16565b6128f990919063ffffffff16565b90506000612edf6064612ed1888b61287e90919063ffffffff16565b6128f990919063ffffffff16565b90506000612f0882612efa858c612cea90919063ffffffff16565b612cea90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612f38858961287e90919063ffffffff16565b90506000612f4f868961287e90919063ffffffff16565b90506000612f66878961287e90919063ffffffff16565b90506000612f8f82612f818587612cea90919063ffffffff16565b612cea90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe2578082015181840152602081019050612fc7565b83811115612ff1576000848401525b50505050565b6000601f19601f8301169050919050565b600061301382612fa8565b61301d8185612fb3565b935061302d818560208601612fc4565b61303681612ff7565b840191505092915050565b6000602082019050818103600083015261305b8184613008565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130a282613077565b9050919050565b6130b281613097565b81146130bd57600080fd5b50565b6000813590506130cf816130a9565b92915050565b6000819050919050565b6130e8816130d5565b81146130f357600080fd5b50565b600081359050613105816130df565b92915050565b600080604083850312156131225761312161306d565b5b6000613130858286016130c0565b9250506020613141858286016130f6565b9150509250929050565b60008115159050919050565b6131608161314b565b82525050565b600060208201905061317b6000830184613157565b92915050565b6000819050919050565b60006131a66131a161319c84613077565b613181565b613077565b9050919050565b60006131b88261318b565b9050919050565b60006131ca826131ad565b9050919050565b6131da816131bf565b82525050565b60006020820190506131f560008301846131d1565b92915050565b613204816130d5565b82525050565b600060208201905061321f60008301846131fb565b92915050565b60008060006060848603121561323e5761323d61306d565b5b600061324c868287016130c0565b935050602061325d868287016130c0565b925050604061326e868287016130f6565b9150509250925092565b60006020828403121561328e5761328d61306d565b5b600061329c848285016130c0565b91505092915050565b600060ff82169050919050565b6132bb816132a5565b82525050565b60006020820190506132d660008301846132b2565b92915050565b6132e581613097565b82525050565b600060208201905061330060008301846132dc565b92915050565b61330f8161314b565b811461331a57600080fd5b50565b60008135905061332c81613306565b92915050565b6000602082840312156133485761334761306d565b5b60006133568482850161331d565b91505092915050565b6000602082840312156133755761337461306d565b5b6000613383848285016130f6565b91505092915050565b600061339782613097565b9050919050565b6133a78161338c565b81146133b257600080fd5b50565b6000813590506133c48161339e565b92915050565b6000806000606084860312156133e3576133e261306d565b5b60006133f1868287016133b5565b9350506020613402868287016130c0565b9250506040613413868287016130f6565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126134425761344161341d565b5b8235905067ffffffffffffffff81111561345f5761345e613422565b5b60208301915083602082028301111561347b5761347a613427565b5b9250929050565b60008060006040848603121561349b5761349a61306d565b5b600084013567ffffffffffffffff8111156134b9576134b8613072565b5b6134c58682870161342c565b935093505060206134d88682870161331d565b9150509250925092565b600080604083850312156134f9576134f861306d565b5b6000613507858286016130c0565b9250506020613518858286016130c0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61355a82612ff7565b810181811067ffffffffffffffff8211171561357957613578613522565b5b80604052505050565b600061358c613063565b90506135988282613551565b919050565b600067ffffffffffffffff8211156135b8576135b7613522565b5b602082029050602081019050919050565b60006135dc6135d78461359d565b613582565b905080838252602082019050602084028301858111156135ff576135fe613427565b5b835b81811015613628578061361488826130c0565b845260208401935050602081019050613601565b5050509392505050565b600082601f8301126136475761364661341d565b5b81356136578482602086016135c9565b91505092915050565b6000602082840312156136765761367561306d565b5b600082013567ffffffffffffffff81111561369457613693613072565b5b6136a084828501613632565b91505092915050565b7f5265737472696374656420746f206465762e0000000000000000000000000000600082015250565b60006136df601283612fb3565b91506136ea826136a9565b602082019050919050565b6000602082019050818103600083015261370e816136d2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061374b602083612fb3565b915061375682613715565b602082019050919050565b6000602082019050818103600083015261377a8161373e565b9050919050565b7f4f6e6c79204f776e657200000000000000000000000000000000000000000000600082015250565b60006137b7600a83612fb3565b91506137c282613781565b602082019050919050565b600060208201905081810360008301526137e6816137aa565b9050919050565b6000815190506137fc816130df565b92915050565b6000602082840312156138185761381761306d565b5b6000613826848285016137ed565b91505092915050565b7f62616c616e6365206973206c6f77000000000000000000000000000000000000600082015250565b6000613865600e83612fb3565b91506138708261382f565b602082019050919050565b6000602082019050818103600083015261389481613858565b9050919050565b60006040820190506138b060008301856132dc565b6138bd60208301846131fb565b9392505050565b6000815190506138d381613306565b92915050565b6000602082840312156138ef576138ee61306d565b5b60006138fd848285016138c4565b91505092915050565b600060608201905061391b60008301866132dc565b61392860208301856132dc565b61393560408301846131fb565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139a6826130d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156139d9576139d861396c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a40602683612fb3565b9150613a4b826139e4565b604082019050919050565b60006020820190508181036000830152613a6f81613a33565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ad2602483612fb3565b9150613add82613a76565b604082019050919050565b60006020820190508181036000830152613b0181613ac5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b64602283612fb3565b9150613b6f82613b08565b604082019050919050565b60006020820190508181036000830152613b9381613b57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bf6602583612fb3565b9150613c0182613b9a565b604082019050919050565b60006020820190508181036000830152613c2581613be9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c88602383612fb3565b9150613c9382613c2c565b604082019050919050565b60006020820190508181036000830152613cb781613c7b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d1a602983612fb3565b9150613d2582613cbe565b604082019050919050565b60006020820190508181036000830152613d4981613d0d565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613dac603f83612fb3565b9150613db782613d50565b604082019050919050565b60006020820190508181036000830152613ddb81613d9f565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613e18601c83612fb3565b9150613e2382613de2565b602082019050919050565b60006020820190508181036000830152613e4781613e0b565b9050919050565b7f544f4b454e3a20636875626173687573206b6f21000000000000000000000000600082015250565b6000613e84601483612fb3565b9150613e8f82613e4e565b602082019050919050565b60006020820190508181036000830152613eb381613e77565b9050919050565b6000613ec5826130d5565b9150613ed0836130d5565b925082821015613ee357613ee261396c565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613f4a602a83612fb3565b9150613f5582613eee565b604082019050919050565b60006020820190508181036000830152613f7981613f3d565b9050919050565b600081519050613f8f816130a9565b92915050565b600060208284031215613fab57613faa61306d565b5b6000613fb984828501613f80565b91505092915050565b6000819050919050565b6000613fe7613fe2613fdd84613fc2565b613181565b6130d5565b9050919050565b613ff781613fcc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61403281613097565b82525050565b60006140448383614029565b60208301905092915050565b6000602082019050919050565b600061406882613ffd565b6140728185614008565b935061407d83614019565b8060005b838110156140ae5781516140958882614038565b97506140a083614050565b925050600181019050614081565b5085935050505092915050565b600060a0820190506140d060008301886131fb565b6140dd6020830187613fee565b81810360408301526140ef818661405d565b90506140fe60608301856132dc565b61410b60808301846131fb565b9695505050505050565b6000614120826130d5565b915061412b836130d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141645761416361396c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141a9826130d5565b91506141b4836130d5565b9250826141c4576141c361416f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061422b602183612fb3565b9150614236826141cf565b604082019050919050565b6000602082019050818103600083015261425a8161421e565b9050919050565b600061426c826130d5565b9150614277836130d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142ac576142ab61396c565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142ed601b83612fb3565b91506142f8826142b7565b602082019050919050565b6000602082019050818103600083015261431c816142e0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d74e3e92de6028018c40aa7158a3254c15597dbd008924afd7f91a680965060b64736f6c63430008090033000000000000000000000000d427c4ecc9d0c7b74b317d140222c19fdb70af680000000000000000000000007ac4304edfb96d31d94919800481aa52c7e7a318
Deployed Bytecode
0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c4026d7b11610095578063dca27f1e11610064578063dca27f1e1461069f578063dd62ed3e146106c8578063f28c44f214610705578063f2fde38b1461072e576101ee565b8063c4026d7b146105f9578063c492f04614610622578063c8e249051461064b578063cf21195914610688576101ee565b80639db5dbe4116100d15780639db5dbe414610553578063a9059cbb1461057c578063b91d3ace146105b9578063c3c8cd80146105e2576101ee565b80638da5cb5b146104ab5780638f70ccf7146104d657806395d89b41146104ff57806398a5c3151461052a576101ee565b8063313ce5671161017a57806370a082311161014957806370a0823114610403578063715018a61461044057806374010ece146104575780637d1db4a514610480576101ee565b8063313ce5671461036d57806349bd5a5e146103985780636d8aa8f8146103c35780636fc3eaec146103ec576101ee565b8063238b46ae116101b6578063238b46ae146102b157806323b872dd146102c85780632fd689e314610305578063310c42c814610330576101ee565b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461025b57806318160ddd14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610757565b6040516102159190613041565b60405180910390f35b34801561022a57600080fd5b506102456004803603810190610240919061310b565b610794565b6040516102529190613166565b60405180910390f35b34801561026757600080fd5b506102706107b2565b60405161027d91906131e0565b60405180910390f35b34801561029257600080fd5b5061029b6107d8565b6040516102a8919061320a565b60405180910390f35b3480156102bd57600080fd5b506102c66107e9565b005b3480156102d457600080fd5b506102ef60048036038101906102ea9190613225565b6108d4565b6040516102fc9190613166565b60405180910390f35b34801561031157600080fd5b5061031a6109ad565b604051610327919061320a565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190613278565b6109b3565b6040516103649190613166565b60405180910390f35b34801561037957600080fd5b506103826109d3565b60405161038f91906132c1565b60405180910390f35b3480156103a457600080fd5b506103ad6109dc565b6040516103ba91906132eb565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e59190613332565b610a02565b005b3480156103f857600080fd5b50610401610ab4565b005b34801561040f57600080fd5b5061042a60048036038101906104259190613278565b610b26565b604051610437919061320a565b60405180910390f35b34801561044c57600080fd5b50610455610b77565b005b34801561046357600080fd5b5061047e6004803603810190610479919061335f565b610cca565b005b34801561048c57600080fd5b50610495610d69565b6040516104a2919061320a565b60405180910390f35b3480156104b757600080fd5b506104c0610d6f565b6040516104cd91906132eb565b60405180910390f35b3480156104e257600080fd5b506104fd60048036038101906104f89190613332565b610d98565b005b34801561050b57600080fd5b50610514610e4a565b6040516105219190613041565b60405180910390f35b34801561053657600080fd5b50610551600480360381019061054c919061335f565b610e87565b005b34801561055f57600080fd5b5061057a600480360381019061057591906133ca565b610f26565b005b34801561058857600080fd5b506105a3600480360381019061059e919061310b565b611155565b6040516105b09190613166565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190613278565b611173565b005b3480156105ee57600080fd5b506105f7611263565b005b34801561060557600080fd5b50610620600480360381019061061b9190613278565b6112dd565b005b34801561062e57600080fd5b5061064960048036038101906106449190613482565b6113cd565b005b34801561065757600080fd5b50610672600480360381019061066d9190613278565b611507565b60405161067f9190613166565b60405180910390f35b34801561069457600080fd5b5061069d611527565b005b3480156106ab57600080fd5b506106c660048036038101906106c19190613278565b6115d9565b005b3480156106d457600080fd5b506106ef60048036038101906106ea91906134e2565b6116c9565b6040516106fc919061320a565b60405180910390f35b34801561071157600080fd5b5061072c60048036038101906107279190613660565b611750565b005b34801561073a57600080fd5b5061075560048036038101906107509190613278565b61187a565b005b60606040518060400160405280600b81526020017f4368757368696e67757261000000000000000000000000000000000000000000815250905090565b60006107a86107a1611a3c565b8484611a44565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068028c418afbbb5c0000905090565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c906136f5565b60405180910390fd5b6000600a819055506000600c819055506000600b819055506000600d8190555068028c418afbbb5c000060178190555068028c418afbbb5c00006016819055506108d273d427c4ecc9d0c7b74b317d140222c19fdb70af686112dd565b565b60006108e1848484611c0f565b6109a2846108ed611a3c565b61099d8560405180606001604052806028815260200161432460289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610953611a3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ba9092919063ffffffff16565b611a44565b600190509392505050565b60165481565b60046020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a0a611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90613761565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af5611a3c565b73ffffffffffffffffffffffffffffffffffffffff1614610b1557600080fd5b6000479050610b238161251e565b50565b6000610b70600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461258a565b9050919050565b610b7f611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0390613761565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd2611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5690613761565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610da0611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490613761565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60606040518060400160405280600c81526020017f4368c5ab7368696e677572610000000000000000000000000000000000000000815250905090565b610e8f611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390613761565b60405180910390fd5b8060168190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad906137cd565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ff191906132eb565b60206040518083038186803b15801561100957600080fd5b505afa15801561101d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110419190613802565b905080821115611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d9061387b565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b81526004016110c192919061389b565b602060405180830381600087803b1580156110db57600080fd5b505af11580156110ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111391906138d9565b507ffda3a3e0e1479b43cb1c701f7576187f4c4ad80768d627387e00184302f7d88e33848460405161114793929190613906565b60405180910390a150505050565b6000611169611162611a3c565b8484611c0f565b6001905092915050565b61117b611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90613761565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112a4611a3c565b73ffffffffffffffffffffffffffffffffffffffff16146112c457600080fd5b60006112cf30610b26565b90506112da816125f8565b50565b6112e5611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613761565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6113d5611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990613761565b60405180910390fd5b60005b838390508110156115015781600660008686858181106114885761148761393d565b5b905060200201602081019061149d9190613278565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114f99061399b565b915050611465565b50505050565b60076020528060005260406000206000915054906101000a900460ff1681565b61152f611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390613761565b60405180910390fd5b6000601560176101000a81548160ff021916908315150217905550565b6115e1611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590613761565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611758611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc90613761565b60405180910390fd5b60005b81518110156118765760016004600084848151811061180a5761180961393d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061186e9061399b565b9150506117e8565b5050565b611882611a3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190690613761565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561197f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197690613a56565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab90613ae8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b90613b7a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c02919061320a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690613c0c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce690613c9e565b60405180910390fd5b60008111611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2990613d30565b60405180910390fd5b611d3a610d6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611da85750611d78610d6f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120e657601560149054906101000a900460ff16611e3757611dc9610d6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2d90613dc2565b60405180910390fd5b5b601754811115611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390613e2e565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f205750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5690613e9a565b60405180910390fd5b6000611f6a30610b26565b9050600060165482101590506017548210611f855760175491505b808015611f9d575060158054906101000a900460ff16155b8015611ff75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561200f5750601560169054906101000a900460ff165b80156120655750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120bb5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120e3576120c9826125f8565b600047905060008111156120e1576120e04761251e565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061218d5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122405750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561223f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561224e57600090506123d5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122f95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561231157600a54600e81905550600b54600f819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123bc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156123d457600c54600e81905550600d54600f819055505b5b601560179054906101000a900460ff16801561242457506123f4610d6f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124a7576000612452606461244460378661287e90919063ffffffff16565b6128f990919063ffffffff16565b9050600081846124629190613eba565b90506124718686846000612943565b6124a086601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000612943565b50506124b4565b6124b384848484612943565b5b50505050565b6000838311158290612502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f99190613041565b60405180910390fd5b50600083856125119190613eba565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612586573d6000803e3d6000fd5b5050565b60006008548211156125d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c890613f60565b60405180910390fd5b60006125db612970565b90506125f081846128f990919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561262f5761262e613522565b5b60405190808252806020026020018201604052801561265d5781602001602082028036833780820191505090505b50905030816000815181106126755761267461393d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561271757600080fd5b505afa15801561272b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274f9190613f95565b816001815181106127635761276261393d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127ca30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a44565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161282e9594939291906140bb565b600060405180830381600087803b15801561284857600080fd5b505af115801561285c573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60008083141561289157600090506128f3565b6000828461289f9190614115565b90508284826128ae919061419e565b146128ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e590614241565b60405180910390fd5b809150505b92915050565b600061293b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061299b565b905092915050565b80612951576129506129fe565b5b61295c848484612a41565b8061296a57612969612c0c565b5b50505050565b600080600061297d612c20565b9150915061299481836128f990919063ffffffff16565b9250505090565b600080831182906129e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d99190613041565b60405180910390fd5b50600083856129f1919061419e565b9050809150509392505050565b6000600e54148015612a1257506000600f54145b15612a1c57612a3f565b600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600080600080600080612a5387612c82565b955095509550955095509550612ab186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cea90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b9281612d92565b612b9c8483612e4f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612bf9919061320a565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b60008060006008549050600068028c418afbbb5c00009050612c5668028c418afbbb5c00006008546128f990919063ffffffff16565b821015612c755760085468028c418afbbb5c0000935093505050612c7e565b81819350935050505b9091565b6000806000806000806000806000612c9f8a600e54600f54612e89565b9250925092506000612caf612970565b90506000806000612cc28e878787612f1f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612d2c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124ba565b905092915050565b6000808284612d439190614261565b905083811015612d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7f90614303565b60405180910390fd5b8091505092915050565b6000612d9c612970565b90506000612db3828461287e90919063ffffffff16565b9050612e0781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d3490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612e6482600854612cea90919063ffffffff16565b600881905550612e7f81600954612d3490919063ffffffff16565b6009819055505050565b600080600080612eb56064612ea7888a61287e90919063ffffffff16565b6128f990919063ffffffff16565b90506000612edf6064612ed1888b61287e90919063ffffffff16565b6128f990919063ffffffff16565b90506000612f0882612efa858c612cea90919063ffffffff16565b612cea90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612f38858961287e90919063ffffffff16565b90506000612f4f868961287e90919063ffffffff16565b90506000612f66878961287e90919063ffffffff16565b90506000612f8f82612f818587612cea90919063ffffffff16565b612cea90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe2578082015181840152602081019050612fc7565b83811115612ff1576000848401525b50505050565b6000601f19601f8301169050919050565b600061301382612fa8565b61301d8185612fb3565b935061302d818560208601612fc4565b61303681612ff7565b840191505092915050565b6000602082019050818103600083015261305b8184613008565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130a282613077565b9050919050565b6130b281613097565b81146130bd57600080fd5b50565b6000813590506130cf816130a9565b92915050565b6000819050919050565b6130e8816130d5565b81146130f357600080fd5b50565b600081359050613105816130df565b92915050565b600080604083850312156131225761312161306d565b5b6000613130858286016130c0565b9250506020613141858286016130f6565b9150509250929050565b60008115159050919050565b6131608161314b565b82525050565b600060208201905061317b6000830184613157565b92915050565b6000819050919050565b60006131a66131a161319c84613077565b613181565b613077565b9050919050565b60006131b88261318b565b9050919050565b60006131ca826131ad565b9050919050565b6131da816131bf565b82525050565b60006020820190506131f560008301846131d1565b92915050565b613204816130d5565b82525050565b600060208201905061321f60008301846131fb565b92915050565b60008060006060848603121561323e5761323d61306d565b5b600061324c868287016130c0565b935050602061325d868287016130c0565b925050604061326e868287016130f6565b9150509250925092565b60006020828403121561328e5761328d61306d565b5b600061329c848285016130c0565b91505092915050565b600060ff82169050919050565b6132bb816132a5565b82525050565b60006020820190506132d660008301846132b2565b92915050565b6132e581613097565b82525050565b600060208201905061330060008301846132dc565b92915050565b61330f8161314b565b811461331a57600080fd5b50565b60008135905061332c81613306565b92915050565b6000602082840312156133485761334761306d565b5b60006133568482850161331d565b91505092915050565b6000602082840312156133755761337461306d565b5b6000613383848285016130f6565b91505092915050565b600061339782613097565b9050919050565b6133a78161338c565b81146133b257600080fd5b50565b6000813590506133c48161339e565b92915050565b6000806000606084860312156133e3576133e261306d565b5b60006133f1868287016133b5565b9350506020613402868287016130c0565b9250506040613413868287016130f6565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126134425761344161341d565b5b8235905067ffffffffffffffff81111561345f5761345e613422565b5b60208301915083602082028301111561347b5761347a613427565b5b9250929050565b60008060006040848603121561349b5761349a61306d565b5b600084013567ffffffffffffffff8111156134b9576134b8613072565b5b6134c58682870161342c565b935093505060206134d88682870161331d565b9150509250925092565b600080604083850312156134f9576134f861306d565b5b6000613507858286016130c0565b9250506020613518858286016130c0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61355a82612ff7565b810181811067ffffffffffffffff8211171561357957613578613522565b5b80604052505050565b600061358c613063565b90506135988282613551565b919050565b600067ffffffffffffffff8211156135b8576135b7613522565b5b602082029050602081019050919050565b60006135dc6135d78461359d565b613582565b905080838252602082019050602084028301858111156135ff576135fe613427565b5b835b81811015613628578061361488826130c0565b845260208401935050602081019050613601565b5050509392505050565b600082601f8301126136475761364661341d565b5b81356136578482602086016135c9565b91505092915050565b6000602082840312156136765761367561306d565b5b600082013567ffffffffffffffff81111561369457613693613072565b5b6136a084828501613632565b91505092915050565b7f5265737472696374656420746f206465762e0000000000000000000000000000600082015250565b60006136df601283612fb3565b91506136ea826136a9565b602082019050919050565b6000602082019050818103600083015261370e816136d2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061374b602083612fb3565b915061375682613715565b602082019050919050565b6000602082019050818103600083015261377a8161373e565b9050919050565b7f4f6e6c79204f776e657200000000000000000000000000000000000000000000600082015250565b60006137b7600a83612fb3565b91506137c282613781565b602082019050919050565b600060208201905081810360008301526137e6816137aa565b9050919050565b6000815190506137fc816130df565b92915050565b6000602082840312156138185761381761306d565b5b6000613826848285016137ed565b91505092915050565b7f62616c616e6365206973206c6f77000000000000000000000000000000000000600082015250565b6000613865600e83612fb3565b91506138708261382f565b602082019050919050565b6000602082019050818103600083015261389481613858565b9050919050565b60006040820190506138b060008301856132dc565b6138bd60208301846131fb565b9392505050565b6000815190506138d381613306565b92915050565b6000602082840312156138ef576138ee61306d565b5b60006138fd848285016138c4565b91505092915050565b600060608201905061391b60008301866132dc565b61392860208301856132dc565b61393560408301846131fb565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139a6826130d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156139d9576139d861396c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a40602683612fb3565b9150613a4b826139e4565b604082019050919050565b60006020820190508181036000830152613a6f81613a33565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ad2602483612fb3565b9150613add82613a76565b604082019050919050565b60006020820190508181036000830152613b0181613ac5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b64602283612fb3565b9150613b6f82613b08565b604082019050919050565b60006020820190508181036000830152613b9381613b57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bf6602583612fb3565b9150613c0182613b9a565b604082019050919050565b60006020820190508181036000830152613c2581613be9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c88602383612fb3565b9150613c9382613c2c565b604082019050919050565b60006020820190508181036000830152613cb781613c7b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d1a602983612fb3565b9150613d2582613cbe565b604082019050919050565b60006020820190508181036000830152613d4981613d0d565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613dac603f83612fb3565b9150613db782613d50565b604082019050919050565b60006020820190508181036000830152613ddb81613d9f565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613e18601c83612fb3565b9150613e2382613de2565b602082019050919050565b60006020820190508181036000830152613e4781613e0b565b9050919050565b7f544f4b454e3a20636875626173687573206b6f21000000000000000000000000600082015250565b6000613e84601483612fb3565b9150613e8f82613e4e565b602082019050919050565b60006020820190508181036000830152613eb381613e77565b9050919050565b6000613ec5826130d5565b9150613ed0836130d5565b925082821015613ee357613ee261396c565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613f4a602a83612fb3565b9150613f5582613eee565b604082019050919050565b60006020820190508181036000830152613f7981613f3d565b9050919050565b600081519050613f8f816130a9565b92915050565b600060208284031215613fab57613faa61306d565b5b6000613fb984828501613f80565b91505092915050565b6000819050919050565b6000613fe7613fe2613fdd84613fc2565b613181565b6130d5565b9050919050565b613ff781613fcc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61403281613097565b82525050565b60006140448383614029565b60208301905092915050565b6000602082019050919050565b600061406882613ffd565b6140728185614008565b935061407d83614019565b8060005b838110156140ae5781516140958882614038565b97506140a083614050565b925050600181019050614081565b5085935050505092915050565b600060a0820190506140d060008301886131fb565b6140dd6020830187613fee565b81810360408301526140ef818661405d565b90506140fe60608301856132dc565b61410b60808301846131fb565b9695505050505050565b6000614120826130d5565b915061412b836130d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141645761416361396c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141a9826130d5565b91506141b4836130d5565b9250826141c4576141c361416f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061422b602183612fb3565b9150614236826141cf565b604082019050919050565b6000602082019050818103600083015261425a8161421e565b9050919050565b600061426c826130d5565b9150614277836130d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142ac576142ab61396c565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142ed601b83612fb3565b91506142f8826142b7565b602082019050919050565b6000602082019050818103600083015261431c816142e0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d74e3e92de6028018c40aa7158a3254c15597dbd008924afd7f91a680965060b64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d427c4ecc9d0c7b74b317d140222c19fdb70af680000000000000000000000007ac4304edfb96d31d94919800481aa52c7e7a318
-----Decoded View---------------
Arg [0] : _lp (address): 0xD427C4EcC9D0c7b74b317D140222c19fDB70af68
Arg [1] : _lock (address): 0x7Ac4304EDfb96D31d94919800481AA52C7e7a318
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d427c4ecc9d0c7b74b317d140222c19fdb70af68
Arg [1] : 0000000000000000000000007ac4304edfb96d31d94919800481aa52c7e7a318
Deployed Bytecode Sourcemap
4462:14224:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6951:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7876:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5743:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7228:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17287:325;;;;;;;;;;;;;:::i;:::-;;8077:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5971:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4811:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7137:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5791:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17886:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13692:189;;;;;;;;;;;;;:::i;:::-;;7331:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1949:148;;;;;;;;;;;;;:::i;:::-;;18026:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6031:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1735:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13308:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7042:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17680:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12853:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7477:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18386:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13494:190;;;;;;;;;;;;;:::i;:::-;;18483:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18144:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4991:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13417:69;;;;;;;;;;;;;:::i;:::-;;12743:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7684:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12539:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2105:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6951:83;6988:13;7021:5;;;;;;;;;;;;;;;;;7014:12;;6951:83;:::o;7876:193::-;7978:4;8000:39;8009:12;:10;:12::i;:::-;8023:7;8032:6;8000:8;:39::i;:::-;8057:4;8050:11;;7876:193;;;;:::o;5743:41::-;;;;;;;;;;;;;:::o;7228:95::-;7281:7;5119:19;7301:14;;7228:95;:::o;17287:325::-;18622:4;:16;18627:10;18622:16;;;;;;;;;;;;;;;;;;;;;;;;;18614:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17357:1:::1;17340:14;:18;;;;17387:1;17369:15;:19;;;;17414:1;17399:12;:16;;;;17442:1;17426:13;:17;;;;17469:19;17454:12;:34;;;;17521:19;17499;:41;;;;17551:53;17561:42;17551:9;:53::i;:::-;17287:325::o:0;8077:446::-;8209:4;8226:36;8236:6;8244:9;8255:6;8226:9;:36::i;:::-;8273:220;8296:6;8317:12;:10;:12::i;:::-;8344:138;8400:6;8344:138;;;;;;;;;;;;;;;;;:11;:19;8356:6;8344:19;;;;;;;;;;;;;;;:33;8364:12;:10;:12::i;:::-;8344:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8273:8;:220::i;:::-;8511:4;8504:11;;8077:446;;;;;:::o;5971:51::-;;;;:::o;4811:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;7137:83::-;7178:5;4701:1;7196:16;;7137:83;:::o;5791:28::-;;;;;;;;;;;;;:::o;17886:101::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17967:12:::1;17953:11;;:26;;;;;;;;;;;;;;;;;;17886:101:::0;:::o;13692:189::-;13758:10;;;;;;;;;;;13742:26;;:12;:10;:12::i;:::-;:26;;;13734:35;;;;;;13780:26;13809:21;13780:50;;13841:32;13854:18;13841:12;:32::i;:::-;13723:158;13692:189::o;7331:138::-;7397:7;7424:37;7444:7;:16;7452:7;7444:16;;;;;;;;;;;;;;;;7424:19;:37::i;:::-;7417:44;;7331:138;;;:::o;1949:148::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2056:1:::1;2019:40;;2040:6;::::0;::::1;;;;;;;;2019:40;;;;;;;;;;;;2087:1;2070:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1949:148::o:0;18026:108::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18115:11:::1;18100:12;:26;;;;18026:108:::0;:::o;6031:47::-;;;;:::o;1735:79::-;1773:7;1800:6;;;;;;;;;;;1793:13;;1735:79;:::o;13308:101::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13389:12:::1;13375:11;;:26;;;;;;;;;;;;;;;;;;13308:101:::0;:::o;7042:87::-;7081:13;7114:7;;;;;;;;;;;;;;;;;7107:14;;7042:87;:::o;17680:139::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17793:18:::1;17771:19;:40;;;;17680:139:::0;:::o;12853:347::-;12958:10;;;;;;;;;;;12944:24;;:10;:24;;;12936:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12994:18;13015:5;:15;;;13039:4;13015:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12994:51;;13074:10;13064:6;:20;;13056:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13114:5;:14;;;13129:2;13133:6;13114:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13156:36;13169:10;13181:2;13185:6;13156:36;;;;;;;;:::i;:::-;;;;;;;;12925:275;12853:347;;;:::o;7477:199::-;7582:4;7604:42;7614:12;:10;:12::i;:::-;7628:9;7639:6;7604:9;:42::i;:::-;7664:4;7657:11;;7477:199;;;;:::o;18386:89::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18463:4:::1;18447;:13;18452:7;18447:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;18386:89:::0;:::o;13494:190::-;13560:10;;;;;;;;;;;13544:26;;:12;:10;:12::i;:::-;:26;;;13536:35;;;;;;13582:23;13608:24;13626:4;13608:9;:24::i;:::-;13582:50;;13643:33;13660:15;13643:16;:33::i;:::-;13525:159;13494:190::o;18483:93::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18563:5:::1;18547:4;:13;18552:7;18547:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18483:93:::0;:::o;18144:234::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18261:9:::1;18257:114;18280:8;;:15;;18276:1;:19;18257:114;;;18351:8;18317:18;:31;18336:8;;18345:1;18336:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18317:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18297:3;;;;;:::i;:::-;;;;18257:114;;;;18144:234:::0;;;:::o;4991:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;13417:69::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13473:5:::1;13465;;:13;;;;;;;;;;;;;;;;;;13417:69::o:0;12743:102::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12832:5:::1;12810:9;:19;12820:8;12810:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12743:102:::0;:::o;7684:184::-;7801:7;7833:11;:18;7845:5;7833:18;;;;;;;;;;;;;;;:27;7852:7;7833:27;;;;;;;;;;;;;;;;7826:34;;7684:184;;;;:::o;12539:192::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12623:9:::1;12618:106;12642:10;:17;12638:1;:21;12618:106;;;12708:4;12681:9;:24;12691:10;12702:1;12691:13;;;;;;;;:::i;:::-;;;;;;;;12681:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;12661:3;;;;;:::i;:::-;;;;12618:106;;;;12539:192:::0;:::o;2105:244::-;1872:12;:10;:12::i;:::-;1862:22;;:6;;;;;;;;;;:22;;;1854:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2214:1:::1;2194:22;;:8;:22;;;;2186:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2304:8;2275:38;;2296:6;::::0;::::1;;;;;;;;2275:38;;;;;;;;;;;;2333:8;2324:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2105:244:::0;:::o;494:98::-;547:7;574:10;567:17;;494:98;:::o;9214:369::-;9358:1;9341:19;;:5;:19;;;;9333:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9439:1;9420:21;;:7;:21;;;;9412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9521:6;9491:11;:18;9503:5;9491:18;;;;;;;;;;;;;;;:27;9510:7;9491:27;;;;;;;;;;;;;;;:36;;;;9559:7;9543:32;;9552:5;9543:32;;;9568:6;9543:32;;;;;;:::i;:::-;;;;;;;;9214:369;;;:::o;9591:2449::-;9729:1;9713:18;;:4;:18;;;;9705:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9806:1;9792:16;;:2;:16;;;;9784:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9876:1;9867:6;:10;9859:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9948:7;:5;:7::i;:::-;9940:15;;:4;:15;;;;:32;;;;;9965:7;:5;:7::i;:::-;9959:13;;:2;:13;;;;9940:32;9936:1090;;;10029:11;;;;;;;;;;;10024:144;;10077:7;:5;:7::i;:::-;10069:15;;:4;:15;;;10061:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10024:144;10202:12;;10192:6;:22;;10184:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10271:9;:15;10281:4;10271:15;;;;;;;;;;;;;;;;;;;;;;;;;10270:16;:34;;;;;10291:9;:13;10301:2;10291:13;;;;;;;;;;;;;;;;;;;;;;;;;10290:14;10270:34;10262:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10344:28;10375:24;10393:4;10375:9;:24::i;:::-;10344:55;;10414:12;10453:19;;10429:20;:43;;10414:58;;10516:12;;10492:20;:36;10489:124;;10585:12;;10562:35;;10489:124;10633:7;:18;;;;;10645:6;;;;;;;;;;10644:7;10633:18;:43;;;;;10663:13;;;;;;;;;;;10655:21;;:4;:21;;;;10633:43;:58;;;;;10680:11;;;;;;;;;;;10633:58;:87;;;;;10696:18;:24;10715:4;10696:24;;;;;;;;;;;;;;;;;;;;;;;;;10695:25;10633:87;:114;;;;;10725:18;:22;10744:2;10725:22;;;;;;;;;;;;;;;;;;;;;;;;;10724:23;10633:114;10629:386;;;10768:38;10785:20;10768:16;:38::i;:::-;10825:26;10854:21;10825:50;;10919:1;10898:18;:22;10894:106;;;10945:35;10958:21;10945:12;:35::i;:::-;10894:106;10749:266;10629:386;9974:1052;;9936:1090;11038:12;11053:4;11038:19;;11102:18;:24;11121:4;11102:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11130:18;:22;11149:2;11130:22;;;;;;;;;;;;;;;;;;;;;;;;;11102:50;11101:102;;;;11166:13;;;;;;;;;;;11158:21;;:4;:21;;;;:44;;;;;11189:13;;;;;;;;;;;11183:19;;:2;:19;;;;11158:44;11101:102;11097:594;;;11230:5;11220:15;;11097:594;;;11313:13;;;;;;;;;;;11305:21;;:4;:21;;;:55;;;;;11344:15;;;;;;;;;;;11330:30;;:2;:30;;;;11305:55;11302:162;;;11393:14;;11381:9;:26;;;;11436:12;;11426:7;:22;;;;11302:162;11523:13;;;;;;;;;;;11517:19;;:2;:19;;;:55;;;;;11556:15;;;;;;;;;;;11540:32;;:4;:32;;;;11517:55;11513:165;;;11605:15;;11593:9;:27;;;;11649:13;;11639:7;:23;;;;11513:165;11097:594;11705:5;;;;;;;;;;;:24;;;;;11722:7;:5;:7::i;:::-;11714:15;;:4;:15;;;;11705:24;11701:332;;;11746:15;11764:23;11783:3;11764:14;11775:2;11764:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11746:41;;11802:15;11829:7;11820:6;:16;;;;:::i;:::-;11802:34;;11851:40;11866:4;11872:2;11876:7;11885:5;11851:14;:40::i;:::-;11906:41;11921:4;11927:3;;;;;;;;;;;11932:7;11941:5;11906:14;:41::i;:::-;11731:228;;11701:332;;;11980:41;11995:4;12001:2;12005:6;12013:7;11980:14;:41::i;:::-;11701:332;9694:2346;9591:2449;;;:::o;2713:224::-;2833:7;2866:1;2861;:6;;2869:12;2853:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2893:9;2909:1;2905;:5;;;;:::i;:::-;2893:17;;2928:1;2921:8;;;2713:224;;;;;:::o;13208:92::-;13265:10;;;;;;;;;;;:19;;:27;13285:6;13265:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13208:92;:::o;8531:323::-;8626:7;8684;;8673;:18;;8651:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8772:19;8794:10;:8;:10::i;:::-;8772:32;;8822:24;8834:11;8822:7;:11;;:24;;;;:::i;:::-;8815:31;;;8531:323;;;:::o;12048:483::-;6248:4;6239:6;;:13;;;;;;;;;;;;;;;;;;12126:21:::1;12164:1;12150:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12126:40;;12195:4;12177;12182:1;12177:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12221:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12211:4;12216:1;12211:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12254:62;12271:4;12286:15;;;;;;;;;;;12304:11;12254:8;:62::i;:::-;12327:15;;;;;;;;;;;:66;;;12408:11;12434:1;12450:4;12477;12497:15;12327:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12115:416;6284:5:::0;6275:6;;:14;;;;;;;;;;;;;;;;;;12048:483;:::o;2945:246::-;3003:7;3032:1;3027;:6;3023:47;;;3057:1;3050:8;;;;3023:47;3080:9;3096:1;3092;:5;;;;:::i;:::-;3080:17;;3125:1;3120;3116;:5;;;;:::i;:::-;:10;3108:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3182:1;3175:8;;;2945:246;;;;;:::o;3199:132::-;3257:7;3284:39;3288:1;3291;3284:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3277:46;;3199:132;;;;:::o;13889:282::-;14045:7;14040:28;;14054:14;:12;:14::i;:::-;14040:28;14079:44;14097:6;14105:9;14116:6;14079:17;:44::i;:::-;14139:7;14134:29;;14148:15;:13;:15::i;:::-;14134:29;13889:282;;;;:::o;16850:164::-;16892:7;16913:15;16930;16949:19;:17;:19::i;:::-;16912:56;;;;16986:20;16998:7;16986;:11;;:20;;;;:::i;:::-;16979:27;;;;16850:164;:::o;3339:223::-;3459:7;3491:1;3487;:5;3494:12;3479:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3518:9;3534:1;3530;:5;;;;:::i;:::-;3518:17;;3553:1;3546:8;;;3339:223;;;;;:::o;8862:219::-;8922:1;8909:9;;:14;:30;;;;;8938:1;8927:7;;:12;8909:30;8905:43;;;8941:7;;8905:43;8980:9;;8960:17;:29;;;;9018:7;;9000:15;:25;;;;9050:1;9038:9;:13;;;;9072:1;9062:7;:11;;;;8862:219;:::o;14179:610::-;14326:15;14356:23;14394:12;14421:23;14459:12;14486:13;14513:19;14524:7;14513:10;:19::i;:::-;14311:221;;;;;;;;;;;;14561:28;14581:7;14561;:15;14569:6;14561:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14543:7;:15;14551:6;14543:15;;;;;;;;;;;;;;;:46;;;;14621:39;14644:15;14621:7;:18;14629:9;14621:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14600:7;:18;14608:9;14600:18;;;;;;;;;;;;;;;:60;;;;14671:16;14681:5;14671:9;:16::i;:::-;14698:23;14710:4;14716;14698:11;:23::i;:::-;14754:9;14737:44;;14746:6;14737:44;;;14765:15;14737:44;;;;;;:::i;:::-;;;;;;;;14300:489;;;;;;14179:610;;;:::o;9089:117::-;9145:17;;9133:9;:29;;;;9183:15;;9173:7;:25;;;;9089:117::o;17022:257::-;17073:7;17082;17102:15;17120:7;;17102:25;;17138:15;5119:19;17138:25;;17188:20;5119:19;17188:7;;:11;;:20;;;;:::i;:::-;17178:7;:30;17174:61;;;17218:7;;5119:19;17210:25;;;;;;;;17174:61;17254:7;17263;17246:25;;;;;;17022:257;;;:::o;15208:615::-;15308:7;15330;15352;15374;15396;15418;15454:23;15479:12;15493:13;15523:40;15535:7;15544:9;;15555:7;;15523:11;:40::i;:::-;15453:110;;;;;;15574:19;15596:10;:8;:10::i;:::-;15574:32;;15618:15;15635:23;15660:12;15689:46;15701:7;15710:4;15716:5;15723:11;15689;:46::i;:::-;15617:118;;;;;;15754:7;15763:15;15780:4;15786:15;15803:4;15809:5;15746:69;;;;;;;;;;;;;;;;;;;15208:615;;;;;;;:::o;2569:136::-;2627:7;2654:43;2658:1;2661;2654:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2647:50;;2569:136;;;;:::o;2382:179::-;2440:7;2460:9;2476:1;2472;:5;;;;:::i;:::-;2460:17;;2501:1;2496;:6;;2488:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2552:1;2545:8;;;2382:179;;;;:::o;14797:211::-;14850:19;14872:10;:8;:10::i;:::-;14850:32;;14893:13;14909:22;14919:11;14909:5;:9;;:22;;;;:::i;:::-;14893:38;;14967:33;14994:5;14967:7;:22;14983:4;14967:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14942:7;:22;14958:4;14942:22;;;;;;;;;;;;;;;:58;;;;14839:169;;14797:211;:::o;15016:147::-;15094:17;15106:4;15094:7;;:11;;:17;;;;:::i;:::-;15084:7;:27;;;;15135:20;15150:4;15135:10;;:14;;:20;;;;:::i;:::-;15122:10;:33;;;;15016:147;;:::o;15831:469::-;16000:7;16022;16044;16079:12;16094:30;16120:3;16094:21;16106:8;16094:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16079:45;;16135:13;16151:28;16175:3;16151:19;16163:6;16151:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16135:44;;16190:23;16216:28;16238:5;16216:17;16228:4;16216:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16190:54;;16263:15;16280:4;16286:5;16255:37;;;;;;;;;15831:469;;;;;;;:::o;16308:534::-;16502:7;16524;16546;16581:15;16599:24;16611:11;16599:7;:11;;:24;;;;:::i;:::-;16581:42;;16634:12;16649:21;16658:11;16649:4;:8;;:21;;;;:::i;:::-;16634:36;;16681:13;16697:22;16707:11;16697:5;:9;;:22;;;;:::i;:::-;16681:38;;16730:23;16756:28;16778:5;16756:17;16768:4;16756:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16730:54;;16803:7;16812:15;16829:4;16795:39;;;;;;;;;;16308:534;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:329::-;5503:6;5552:2;5540:9;5531:7;5527:23;5523:32;5520:119;;;5558:79;;:::i;:::-;5520:119;5678:1;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5649:117;5444:329;;;;:::o;5779:86::-;5814:7;5854:4;5847:5;5843:16;5832:27;;5779:86;;;:::o;5871:112::-;5954:22;5970:5;5954:22;:::i;:::-;5949:3;5942:35;5871:112;;:::o;5989:214::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:67;6193:1;6182:9;6178:17;6169:6;6129:67;:::i;:::-;5989:214;;;;:::o;6209:118::-;6296:24;6314:5;6296:24;:::i;:::-;6291:3;6284:37;6209:118;;:::o;6333:222::-;6426:4;6464:2;6453:9;6449:18;6441:26;;6477:71;6545:1;6534:9;6530:17;6521:6;6477:71;:::i;:::-;6333:222;;;;:::o;6561:116::-;6631:21;6646:5;6631:21;:::i;:::-;6624:5;6621:32;6611:60;;6667:1;6664;6657:12;6611:60;6561:116;:::o;6683:133::-;6726:5;6764:6;6751:20;6742:29;;6780:30;6804:5;6780:30;:::i;:::-;6683:133;;;;:::o;6822:323::-;6878:6;6927:2;6915:9;6906:7;6902:23;6898:32;6895:119;;;6933:79;;:::i;:::-;6895:119;7053:1;7078:50;7120:7;7111:6;7100:9;7096:22;7078:50;:::i;:::-;7068:60;;7024:114;6822:323;;;;:::o;7151:329::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:109::-;7536:7;7565:24;7583:5;7565:24;:::i;:::-;7554:35;;7486:109;;;:::o;7601:148::-;7687:37;7718:5;7687:37;:::i;:::-;7680:5;7677:48;7667:76;;7739:1;7736;7729:12;7667:76;7601:148;:::o;7755:165::-;7814:5;7852:6;7839:20;7830:29;;7868:46;7908:5;7868:46;:::i;:::-;7755:165;;;;:::o;7926:645::-;8016:6;8024;8032;8081:2;8069:9;8060:7;8056:23;8052:32;8049:119;;;8087:79;;:::i;:::-;8049:119;8207:1;8232:66;8290:7;8281:6;8270:9;8266:22;8232:66;:::i;:::-;8222:76;;8178:130;8347:2;8373:53;8418:7;8409:6;8398:9;8394:22;8373:53;:::i;:::-;8363:63;;8318:118;8475:2;8501:53;8546:7;8537:6;8526:9;8522:22;8501:53;:::i;:::-;8491:63;;8446:118;7926:645;;;;;:::o;8577:117::-;8686:1;8683;8676:12;8700:117;8809:1;8806;8799:12;8823:117;8932:1;8929;8922:12;8963:568;9036:8;9046:6;9096:3;9089:4;9081:6;9077:17;9073:27;9063:122;;9104:79;;:::i;:::-;9063:122;9217:6;9204:20;9194:30;;9247:18;9239:6;9236:30;9233:117;;;9269:79;;:::i;:::-;9233:117;9383:4;9375:6;9371:17;9359:29;;9437:3;9429:4;9421:6;9417:17;9407:8;9403:32;9400:41;9397:128;;;9444:79;;:::i;:::-;9397:128;8963:568;;;;;:::o;9537:698::-;9629:6;9637;9645;9694:2;9682:9;9673:7;9669:23;9665:32;9662:119;;;9700:79;;:::i;:::-;9662:119;9848:1;9837:9;9833:17;9820:31;9878:18;9870:6;9867:30;9864:117;;;9900:79;;:::i;:::-;9864:117;10013:80;10085:7;10076:6;10065:9;10061:22;10013:80;:::i;:::-;9995:98;;;;9791:312;10142:2;10168:50;10210:7;10201:6;10190:9;10186:22;10168:50;:::i;:::-;10158:60;;10113:115;9537:698;;;;;:::o;10241:474::-;10309:6;10317;10366:2;10354:9;10345:7;10341:23;10337:32;10334:119;;;10372:79;;:::i;:::-;10334:119;10492:1;10517:53;10562:7;10553:6;10542:9;10538:22;10517:53;:::i;:::-;10507:63;;10463:117;10619:2;10645:53;10690:7;10681:6;10670:9;10666:22;10645:53;:::i;:::-;10635:63;;10590:118;10241:474;;;;;:::o;10721:180::-;10769:77;10766:1;10759:88;10866:4;10863:1;10856:15;10890:4;10887:1;10880:15;10907:281;10990:27;11012:4;10990:27;:::i;:::-;10982:6;10978:40;11120:6;11108:10;11105:22;11084:18;11072:10;11069:34;11066:62;11063:88;;;11131:18;;:::i;:::-;11063:88;11171:10;11167:2;11160:22;10950:238;10907:281;;:::o;11194:129::-;11228:6;11255:20;;:::i;:::-;11245:30;;11284:33;11312:4;11304:6;11284:33;:::i;:::-;11194:129;;;:::o;11329:311::-;11406:4;11496:18;11488:6;11485:30;11482:56;;;11518:18;;:::i;:::-;11482:56;11568:4;11560:6;11556:17;11548:25;;11628:4;11622;11618:15;11610:23;;11329:311;;;:::o;11663:710::-;11759:5;11784:81;11800:64;11857:6;11800:64;:::i;:::-;11784:81;:::i;:::-;11775:90;;11885:5;11914:6;11907:5;11900:21;11948:4;11941:5;11937:16;11930:23;;12001:4;11993:6;11989:17;11981:6;11977:30;12030:3;12022:6;12019:15;12016:122;;;12049:79;;:::i;:::-;12016:122;12164:6;12147:220;12181:6;12176:3;12173:15;12147:220;;;12256:3;12285:37;12318:3;12306:10;12285:37;:::i;:::-;12280:3;12273:50;12352:4;12347:3;12343:14;12336:21;;12223:144;12207:4;12202:3;12198:14;12191:21;;12147:220;;;12151:21;11765:608;;11663:710;;;;;:::o;12396:370::-;12467:5;12516:3;12509:4;12501:6;12497:17;12493:27;12483:122;;12524:79;;:::i;:::-;12483:122;12641:6;12628:20;12666:94;12756:3;12748:6;12741:4;12733:6;12729:17;12666:94;:::i;:::-;12657:103;;12473:293;12396:370;;;;:::o;12772:539::-;12856:6;12905:2;12893:9;12884:7;12880:23;12876:32;12873:119;;;12911:79;;:::i;:::-;12873:119;13059:1;13048:9;13044:17;13031:31;13089:18;13081:6;13078:30;13075:117;;;13111:79;;:::i;:::-;13075:117;13216:78;13286:7;13277:6;13266:9;13262:22;13216:78;:::i;:::-;13206:88;;13002:302;12772:539;;;;:::o;13317:168::-;13457:20;13453:1;13445:6;13441:14;13434:44;13317:168;:::o;13491:366::-;13633:3;13654:67;13718:2;13713:3;13654:67;:::i;:::-;13647:74;;13730:93;13819:3;13730:93;:::i;:::-;13848:2;13843:3;13839:12;13832:19;;13491:366;;;:::o;13863:419::-;14029:4;14067:2;14056:9;14052:18;14044:26;;14116:9;14110:4;14106:20;14102:1;14091:9;14087:17;14080:47;14144:131;14270:4;14144:131;:::i;:::-;14136:139;;13863:419;;;:::o;14288:182::-;14428:34;14424:1;14416:6;14412:14;14405:58;14288:182;:::o;14476:366::-;14618:3;14639:67;14703:2;14698:3;14639:67;:::i;:::-;14632:74;;14715:93;14804:3;14715:93;:::i;:::-;14833:2;14828:3;14824:12;14817:19;;14476:366;;;:::o;14848:419::-;15014:4;15052:2;15041:9;15037:18;15029:26;;15101:9;15095:4;15091:20;15087:1;15076:9;15072:17;15065:47;15129:131;15255:4;15129:131;:::i;:::-;15121:139;;14848:419;;;:::o;15273:160::-;15413:12;15409:1;15401:6;15397:14;15390:36;15273:160;:::o;15439:366::-;15581:3;15602:67;15666:2;15661:3;15602:67;:::i;:::-;15595:74;;15678:93;15767:3;15678:93;:::i;:::-;15796:2;15791:3;15787:12;15780:19;;15439:366;;;:::o;15811:419::-;15977:4;16015:2;16004:9;16000:18;15992:26;;16064:9;16058:4;16054:20;16050:1;16039:9;16035:17;16028:47;16092:131;16218:4;16092:131;:::i;:::-;16084:139;;15811:419;;;:::o;16236:143::-;16293:5;16324:6;16318:13;16309:22;;16340:33;16367:5;16340:33;:::i;:::-;16236:143;;;;:::o;16385:351::-;16455:6;16504:2;16492:9;16483:7;16479:23;16475:32;16472:119;;;16510:79;;:::i;:::-;16472:119;16630:1;16655:64;16711:7;16702:6;16691:9;16687:22;16655:64;:::i;:::-;16645:74;;16601:128;16385:351;;;;:::o;16742:164::-;16882:16;16878:1;16870:6;16866:14;16859:40;16742:164;:::o;16912:366::-;17054:3;17075:67;17139:2;17134:3;17075:67;:::i;:::-;17068:74;;17151:93;17240:3;17151:93;:::i;:::-;17269:2;17264:3;17260:12;17253:19;;16912:366;;;:::o;17284:419::-;17450:4;17488:2;17477:9;17473:18;17465:26;;17537:9;17531:4;17527:20;17523:1;17512:9;17508:17;17501:47;17565:131;17691:4;17565:131;:::i;:::-;17557:139;;17284:419;;;:::o;17709:332::-;17830:4;17868:2;17857:9;17853:18;17845:26;;17881:71;17949:1;17938:9;17934:17;17925:6;17881:71;:::i;:::-;17962:72;18030:2;18019:9;18015:18;18006:6;17962:72;:::i;:::-;17709:332;;;;;:::o;18047:137::-;18101:5;18132:6;18126:13;18117:22;;18148:30;18172:5;18148:30;:::i;:::-;18047:137;;;;:::o;18190:345::-;18257:6;18306:2;18294:9;18285:7;18281:23;18277:32;18274:119;;;18312:79;;:::i;:::-;18274:119;18432:1;18457:61;18510:7;18501:6;18490:9;18486:22;18457:61;:::i;:::-;18447:71;;18403:125;18190:345;;;;:::o;18541:442::-;18690:4;18728:2;18717:9;18713:18;18705:26;;18741:71;18809:1;18798:9;18794:17;18785:6;18741:71;:::i;:::-;18822:72;18890:2;18879:9;18875:18;18866:6;18822:72;:::i;:::-;18904;18972:2;18961:9;18957:18;18948:6;18904:72;:::i;:::-;18541:442;;;;;;:::o;18989:180::-;19037:77;19034:1;19027:88;19134:4;19131:1;19124:15;19158:4;19155:1;19148:15;19175:180;19223:77;19220:1;19213:88;19320:4;19317:1;19310:15;19344:4;19341:1;19334:15;19361:233;19400:3;19423:24;19441:5;19423:24;:::i;:::-;19414:33;;19469:66;19462:5;19459:77;19456:103;;;19539:18;;:::i;:::-;19456:103;19586:1;19579:5;19575:13;19568:20;;19361:233;;;:::o;19600:225::-;19740:34;19736:1;19728:6;19724:14;19717:58;19809:8;19804:2;19796:6;19792:15;19785:33;19600:225;:::o;19831:366::-;19973:3;19994:67;20058:2;20053:3;19994:67;:::i;:::-;19987:74;;20070:93;20159:3;20070:93;:::i;:::-;20188:2;20183:3;20179:12;20172:19;;19831:366;;;:::o;20203:419::-;20369:4;20407:2;20396:9;20392:18;20384:26;;20456:9;20450:4;20446:20;20442:1;20431:9;20427:17;20420:47;20484:131;20610:4;20484:131;:::i;:::-;20476:139;;20203:419;;;:::o;20628:223::-;20768:34;20764:1;20756:6;20752:14;20745:58;20837:6;20832:2;20824:6;20820:15;20813:31;20628:223;:::o;20857:366::-;20999:3;21020:67;21084:2;21079:3;21020:67;:::i;:::-;21013:74;;21096:93;21185:3;21096:93;:::i;:::-;21214:2;21209:3;21205:12;21198:19;;20857:366;;;:::o;21229:419::-;21395:4;21433:2;21422:9;21418:18;21410:26;;21482:9;21476:4;21472:20;21468:1;21457:9;21453:17;21446:47;21510:131;21636:4;21510:131;:::i;:::-;21502:139;;21229:419;;;:::o;21654:221::-;21794:34;21790:1;21782:6;21778:14;21771:58;21863:4;21858:2;21850:6;21846:15;21839:29;21654:221;:::o;21881:366::-;22023:3;22044:67;22108:2;22103:3;22044:67;:::i;:::-;22037:74;;22120:93;22209:3;22120:93;:::i;:::-;22238:2;22233:3;22229:12;22222:19;;21881:366;;;:::o;22253:419::-;22419:4;22457:2;22446:9;22442:18;22434:26;;22506:9;22500:4;22496:20;22492:1;22481:9;22477:17;22470:47;22534:131;22660:4;22534:131;:::i;:::-;22526:139;;22253:419;;;:::o;22678:224::-;22818:34;22814:1;22806:6;22802:14;22795:58;22887:7;22882:2;22874:6;22870:15;22863:32;22678:224;:::o;22908:366::-;23050:3;23071:67;23135:2;23130:3;23071:67;:::i;:::-;23064:74;;23147:93;23236:3;23147:93;:::i;:::-;23265:2;23260:3;23256:12;23249:19;;22908:366;;;:::o;23280:419::-;23446:4;23484:2;23473:9;23469:18;23461:26;;23533:9;23527:4;23523:20;23519:1;23508:9;23504:17;23497:47;23561:131;23687:4;23561:131;:::i;:::-;23553:139;;23280:419;;;:::o;23705:222::-;23845:34;23841:1;23833:6;23829:14;23822:58;23914:5;23909:2;23901:6;23897:15;23890:30;23705:222;:::o;23933:366::-;24075:3;24096:67;24160:2;24155:3;24096:67;:::i;:::-;24089:74;;24172:93;24261:3;24172:93;:::i;:::-;24290:2;24285:3;24281:12;24274:19;;23933:366;;;:::o;24305:419::-;24471:4;24509:2;24498:9;24494:18;24486:26;;24558:9;24552:4;24548:20;24544:1;24533:9;24529:17;24522:47;24586:131;24712:4;24586:131;:::i;:::-;24578:139;;24305:419;;;:::o;24730:228::-;24870:34;24866:1;24858:6;24854:14;24847:58;24939:11;24934:2;24926:6;24922:15;24915:36;24730:228;:::o;24964:366::-;25106:3;25127:67;25191:2;25186:3;25127:67;:::i;:::-;25120:74;;25203:93;25292:3;25203:93;:::i;:::-;25321:2;25316:3;25312:12;25305:19;;24964:366;;;:::o;25336:419::-;25502:4;25540:2;25529:9;25525:18;25517:26;;25589:9;25583:4;25579:20;25575:1;25564:9;25560:17;25553:47;25617:131;25743:4;25617:131;:::i;:::-;25609:139;;25336:419;;;:::o;25761:250::-;25901:34;25897:1;25889:6;25885:14;25878:58;25970:33;25965:2;25957:6;25953:15;25946:58;25761:250;:::o;26017:366::-;26159:3;26180:67;26244:2;26239:3;26180:67;:::i;:::-;26173:74;;26256:93;26345:3;26256:93;:::i;:::-;26374:2;26369:3;26365:12;26358:19;;26017:366;;;:::o;26389:419::-;26555:4;26593:2;26582:9;26578:18;26570:26;;26642:9;26636:4;26632:20;26628:1;26617:9;26613:17;26606:47;26670:131;26796:4;26670:131;:::i;:::-;26662:139;;26389:419;;;:::o;26814:178::-;26954:30;26950:1;26942:6;26938:14;26931:54;26814:178;:::o;26998:366::-;27140:3;27161:67;27225:2;27220:3;27161:67;:::i;:::-;27154:74;;27237:93;27326:3;27237:93;:::i;:::-;27355:2;27350:3;27346:12;27339:19;;26998:366;;;:::o;27370:419::-;27536:4;27574:2;27563:9;27559:18;27551:26;;27623:9;27617:4;27613:20;27609:1;27598:9;27594:17;27587:47;27651:131;27777:4;27651:131;:::i;:::-;27643:139;;27370:419;;;:::o;27795:170::-;27935:22;27931:1;27923:6;27919:14;27912:46;27795:170;:::o;27971:366::-;28113:3;28134:67;28198:2;28193:3;28134:67;:::i;:::-;28127:74;;28210:93;28299:3;28210:93;:::i;:::-;28328:2;28323:3;28319:12;28312:19;;27971:366;;;:::o;28343:419::-;28509:4;28547:2;28536:9;28532:18;28524:26;;28596:9;28590:4;28586:20;28582:1;28571:9;28567:17;28560:47;28624:131;28750:4;28624:131;:::i;:::-;28616:139;;28343:419;;;:::o;28768:191::-;28808:4;28828:20;28846:1;28828:20;:::i;:::-;28823:25;;28862:20;28880:1;28862:20;:::i;:::-;28857:25;;28901:1;28898;28895:8;28892:34;;;28906:18;;:::i;:::-;28892:34;28951:1;28948;28944:9;28936:17;;28768:191;;;;:::o;28965:229::-;29105:34;29101:1;29093:6;29089:14;29082:58;29174:12;29169:2;29161:6;29157:15;29150:37;28965:229;:::o;29200:366::-;29342:3;29363:67;29427:2;29422:3;29363:67;:::i;:::-;29356:74;;29439:93;29528:3;29439:93;:::i;:::-;29557:2;29552:3;29548:12;29541:19;;29200:366;;;:::o;29572:419::-;29738:4;29776:2;29765:9;29761:18;29753:26;;29825:9;29819:4;29815:20;29811:1;29800:9;29796:17;29789:47;29853:131;29979:4;29853:131;:::i;:::-;29845:139;;29572:419;;;:::o;29997:143::-;30054:5;30085:6;30079:13;30070:22;;30101:33;30128:5;30101:33;:::i;:::-;29997:143;;;;:::o;30146:351::-;30216:6;30265:2;30253:9;30244:7;30240:23;30236:32;30233:119;;;30271:79;;:::i;:::-;30233:119;30391:1;30416:64;30472:7;30463:6;30452:9;30448:22;30416:64;:::i;:::-;30406:74;;30362:128;30146:351;;;;:::o;30503:85::-;30548:7;30577:5;30566:16;;30503:85;;;:::o;30594:158::-;30652:9;30685:61;30703:42;30712:32;30738:5;30712:32;:::i;:::-;30703:42;:::i;:::-;30685:61;:::i;:::-;30672:74;;30594:158;;;:::o;30758:147::-;30853:45;30892:5;30853:45;:::i;:::-;30848:3;30841:58;30758:147;;:::o;30911:114::-;30978:6;31012:5;31006:12;30996:22;;30911:114;;;:::o;31031:184::-;31130:11;31164:6;31159:3;31152:19;31204:4;31199:3;31195:14;31180:29;;31031:184;;;;:::o;31221:132::-;31288:4;31311:3;31303:11;;31341:4;31336:3;31332:14;31324:22;;31221:132;;;:::o;31359:108::-;31436:24;31454:5;31436:24;:::i;:::-;31431:3;31424:37;31359:108;;:::o;31473:179::-;31542:10;31563:46;31605:3;31597:6;31563:46;:::i;:::-;31641:4;31636:3;31632:14;31618:28;;31473:179;;;;:::o;31658:113::-;31728:4;31760;31755:3;31751:14;31743:22;;31658:113;;;:::o;31807:732::-;31926:3;31955:54;32003:5;31955:54;:::i;:::-;32025:86;32104:6;32099:3;32025:86;:::i;:::-;32018:93;;32135:56;32185:5;32135:56;:::i;:::-;32214:7;32245:1;32230:284;32255:6;32252:1;32249:13;32230:284;;;32331:6;32325:13;32358:63;32417:3;32402:13;32358:63;:::i;:::-;32351:70;;32444:60;32497:6;32444:60;:::i;:::-;32434:70;;32290:224;32277:1;32274;32270:9;32265:14;;32230:284;;;32234:14;32530:3;32523:10;;31931:608;;;31807:732;;;;:::o;32545:831::-;32808:4;32846:3;32835:9;32831:19;32823:27;;32860:71;32928:1;32917:9;32913:17;32904:6;32860:71;:::i;:::-;32941:80;33017:2;33006:9;33002:18;32993:6;32941:80;:::i;:::-;33068:9;33062:4;33058:20;33053:2;33042:9;33038:18;33031:48;33096:108;33199:4;33190:6;33096:108;:::i;:::-;33088:116;;33214:72;33282:2;33271:9;33267:18;33258:6;33214:72;:::i;:::-;33296:73;33364:3;33353:9;33349:19;33340:6;33296:73;:::i;:::-;32545:831;;;;;;;;:::o;33382:348::-;33422:7;33445:20;33463:1;33445:20;:::i;:::-;33440:25;;33479:20;33497:1;33479:20;:::i;:::-;33474:25;;33667:1;33599:66;33595:74;33592:1;33589:81;33584:1;33577:9;33570:17;33566:105;33563:131;;;33674:18;;:::i;:::-;33563:131;33722:1;33719;33715:9;33704:20;;33382:348;;;;:::o;33736:180::-;33784:77;33781:1;33774:88;33881:4;33878:1;33871:15;33905:4;33902:1;33895:15;33922:185;33962:1;33979:20;33997:1;33979:20;:::i;:::-;33974:25;;34013:20;34031:1;34013:20;:::i;:::-;34008:25;;34052:1;34042:35;;34057:18;;:::i;:::-;34042:35;34099:1;34096;34092:9;34087:14;;33922:185;;;;:::o;34113:220::-;34253:34;34249:1;34241:6;34237:14;34230:58;34322:3;34317:2;34309:6;34305:15;34298:28;34113:220;:::o;34339:366::-;34481:3;34502:67;34566:2;34561:3;34502:67;:::i;:::-;34495:74;;34578:93;34667:3;34578:93;:::i;:::-;34696:2;34691:3;34687:12;34680:19;;34339:366;;;:::o;34711:419::-;34877:4;34915:2;34904:9;34900:18;34892:26;;34964:9;34958:4;34954:20;34950:1;34939:9;34935:17;34928:47;34992:131;35118:4;34992:131;:::i;:::-;34984:139;;34711:419;;;:::o;35136:305::-;35176:3;35195:20;35213:1;35195:20;:::i;:::-;35190:25;;35229:20;35247:1;35229:20;:::i;:::-;35224:25;;35383:1;35315:66;35311:74;35308:1;35305:81;35302:107;;;35389:18;;:::i;:::-;35302:107;35433:1;35430;35426:9;35419:16;;35136:305;;;;:::o;35447:177::-;35587:29;35583:1;35575:6;35571:14;35564:53;35447:177;:::o;35630:366::-;35772:3;35793:67;35857:2;35852:3;35793:67;:::i;:::-;35786:74;;35869:93;35958:3;35869:93;:::i;:::-;35987:2;35982:3;35978:12;35971:19;;35630:366;;;:::o;36002:419::-;36168:4;36206:2;36195:9;36191:18;36183:26;;36255:9;36249:4;36245:20;36241:1;36230:9;36226:17;36219:47;36283:131;36409:4;36283:131;:::i;:::-;36275:139;;36002:419;;;:::o
Swarm Source
ipfs://d74e3e92de6028018c40aa7158a3254c15597dbd008924afd7f91a680965060b
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.