ERC-20
Overview
Max Total Supply
10,000,000 BINU
Holders
35
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
104,184.119075120679290637 BINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BitcoinInu
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-14 */ /** */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.18; 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 transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } 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 addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function factory() external pure returns (address); function WETH() external pure returns (address); } contract BitcoinInu is Context, IERC20, Ownable { uint256 private constant _totalSupply = 10_000_000e18; uint256 private constant onePercent = 100_000e18; uint256 private constant tenthPercent = 10_000e18; uint256 private minSwap = 25_000e18; uint256 private maxSwap = onePercent; uint8 private constant _decimals = 18; IUniswapV2Router02 immutable uniswapV2Router; address public immutable uniswapV2Pair; address immutable WETH; address payable immutable marketingWallet; uint256 public buyTax; uint256 public sellTax; uint public lpTax; uint8 private launch; uint8 private inSwapAndLiquify; uint256 private launchBlock; uint256 public maxTxAmount = onePercent * 2; //max Tx for first mins after launch uint256 public maxWalletAmount = onePercent * 2; //max Tx for first mins after launch string private constant _name = "Bitcoin Inu"; string private constant _symbol = "BINU"; mapping(address => uint256) private _balance; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFeeWallet; mapping(address => bool) private _isExcludedFromMaxWallet; constructor() { uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); WETH = uniswapV2Router.WETH(); buyTax = 40; sellTax = 60; lpTax = 0; uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), WETH ); marketingWallet = payable(msg.sender); _balance[msg.sender] = _totalSupply; _isExcludedFromFeeWallet[marketingWallet] = true; _isExcludedFromFeeWallet[msg.sender] = true; _isExcludedFromFeeWallet[address(this)] = true; _isExcludedFromMaxWallet[address(this)] = true; _isExcludedFromMaxWallet[address(uniswapV2Router)] = true; _isExcludedFromMaxWallet[address(uniswapV2Pair)] = true; _isExcludedFromMaxWallet[address(0)] = true; _isExcludedFromMaxWallet[address(0xDEAD)] = true; _isExcludedFromMaxWallet[msg.sender] = true; _allowances[address(this)][address(uniswapV2Router)] = type(uint256) .max; _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max; _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256) .max; emit Transfer(address(0), _msgSender(), _totalSupply); } // modifier checkMaxWallet(address sender, address recipient, uint256 amount) { // _; // } function name() public pure returns (string memory) { return _name; } function getContractBalance() public view returns (uint256) { return address(this).balance; } function withdrawMax() external onlyOwner { require(getContractBalance() > 0, "No balance to withdraw"); uint256 amountToWithdraw = getContractBalance(); payable(owner()).transfer(amountToWithdraw); } 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 _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balance[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()] - amount ); return true; } 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 openTrading() external onlyOwner { launch = 1; launchBlock = block.number; } function addExcludedWallet(address wallet) external onlyOwner { _isExcludedFromFeeWallet[wallet] = true; _isExcludedFromMaxWallet[wallet] = true; } function removeLimits() external onlyOwner { maxTxAmount = _totalSupply; maxWalletAmount = _totalSupply; } function changeTax(uint256 newBuyTax, uint256 newSellTax, uint newLpTax) external onlyOwner { require(newBuyTax < 90 || newSellTax < 90 || newLpTax < 90 || (newBuyTax + newSellTax + newLpTax) < 90, "Cannot set taxes above 90%"); buyTax = newBuyTax; sellTax = newSellTax; lpTax = newLpTax; } function manage_blacklist(address[] calldata addresses) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { _balance[addresses[i]] = 0; } } function changeMaxWallet(uint256 newMaxWallet) public onlyOwner { require(newMaxWallet < 99, "Max wallet cannot be above 99%"); maxWalletAmount = newMaxWallet * tenthPercent; } function changeMaxTx(uint256 newMaxTx) public onlyOwner { require(newMaxTx < 99, "Max Tx cannot be above 99%"); maxTxAmount = newMaxTx * tenthPercent; } function changeMaxSwapThreshold(uint256 newMaxSwapThreshold) external onlyOwner { require(newMaxSwapThreshold < 999, "Max Swap cannot be greater than 99%"); require(newMaxSwapThreshold > minSwap, "Max Swap cannot be less than min swap"); maxSwap = newMaxSwapThreshold * tenthPercent; } function changeMinSwapThreshold(uint256 newMinSwapThreshold) external onlyOwner { require(newMinSwapThreshold < 999, "Min Swap cannot be greater than 99%"); require(newMinSwapThreshold < maxSwap, "Min Swap cannot be greater than max swap"); minSwap = newMinSwapThreshold * tenthPercent; } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 1e9, "Min transfer amt"); uint256 _tax; if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) { _tax = 0; } else { require( launch != 0 && amount <= maxTxAmount, "Launch / Max TxAmount 1% at launch" ); if ( !_isExcludedFromMaxWallet[to] ) { require( _balance[to] + amount <= maxWalletAmount, "Exceeds max wallet balance" ); } if (inSwapAndLiquify == 1) { //No tax transfer _balance[from] -= amount; _balance[to] += amount; emit Transfer(from, to, amount); return; } if (from == uniswapV2Pair) { _tax = buyTax + lpTax; } else if (to == uniswapV2Pair) { uint256 tokensToSwap = _balance[address(this)]; if (tokensToSwap > minSwap && inSwapAndLiquify == 0) { if (tokensToSwap > maxSwap) { tokensToSwap = maxSwap; } uint liqidityToken = (tokensToSwap * lpTax) / (((buyTax + sellTax) / 2 ) + lpTax ); uint tokensTosell = tokensToSwap - liqidityToken; inSwapAndLiquify = 1; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uniswapV2Router .swapExactTokensForETHSupportingFeeOnTransferTokens( tokensTosell, 0, path, marketingWallet, block.timestamp ); if ( liqidityToken > 0) { uniswapV2Router .swapExactTokensForETHSupportingFeeOnTransferTokens( liqidityToken / 2, 0, path, address(this), block.timestamp ); uint newBal = address(this).balance; uniswapV2Router .addLiquidityETH{value : newBal}(address(this), liqidityToken / 2, 0, 0, owner(), block.timestamp ); } inSwapAndLiquify = 0; } _tax = sellTax + lpTax; } else { _tax = 0; } } //Is there tax for sender|receiver? if (_tax != 0) { //Tax transfer uint256 taxTokens = (amount * _tax) / 100; uint256 transferAmount = amount - taxTokens; _balance[from] -= amount; _balance[to] += transferAmount; _balance[address(this)] += taxTokens; emit Transfer(from, address(this), taxTokens); emit Transfer(from, to, transferAmount); } else { //No tax transfer _balance[from] -= amount; _balance[to] += amount; emit Transfer(from, to, amount); } } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"addExcludedWallet","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":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSwapThreshold","type":"uint256"}],"name":"changeMaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"changeMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinSwapThreshold","type":"uint256"}],"name":"changeMinSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"},{"internalType":"uint256","name":"newLpTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
61010060405269054b40b1f852bda0000060025569152d02c7e14af6800000600355600269152d02c7e14af68000006200003a9190620009a0565b600955600269152d02c7e14af6800000620000569190620009a0565b600a553480156200006657600080fd5b506000620000796200095f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d3919062000a55565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506028600481905550603c600581905550600060068190555060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000292919062000a55565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060c0516040518363ffffffff1660e01b8152600401620002d092919062000a98565b6020604051808303816000875af1158015620002f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000316919062000a55565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506a084595161401484a000000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d600060e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c600060e05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620008e76200095f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a00000060405162000951919062000ad6565b60405180910390a362000af3565b600033905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009ad8262000967565b9150620009ba8362000967565b9250828202620009ca8162000967565b91508282048414831517620009e457620009e362000971565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a1d82620009f0565b9050919050565b62000a2f8162000a10565b811462000a3b57600080fd5b50565b60008151905062000a4f8162000a24565b92915050565b60006020828403121562000a6e5762000a6d620009eb565b5b600062000a7e8482850162000a3e565b91505092915050565b62000a928162000a10565b82525050565b600060408201905062000aaf600083018562000a87565b62000abe602083018462000a87565b9392505050565b62000ad08162000967565b82525050565b600060208201905062000aed600083018462000ac5565b92915050565b60805160a05160c05160e05161366c62000b496000396000611ebe01526000611e0f015260008181610a1501528181611bc80152611c32015260008181611e7e01528181611f3b0152611fe0015261366c6000f3fe6080604052600436106101c65760003560e01c8063751039fc116100f7578063aa4bde2811610095578063dba9d42011610064578063dba9d42014610605578063dd62ed3e1461062e578063e5cd8b6a1461066b578063f2fde38b14610682576101cd565b8063aa4bde281461056f578063aca1f1571461059a578063c9567bf9146105c3578063cc1776d3146105da576101cd565b80638da5cb5b116100d15780638da5cb5b146104b357806395d89b41146104de578063974ea01e14610509578063a9059cbb14610532576101cd565b8063751039fc14610448578063778c61521461045f5780638c0b5e2214610488576101cd565b806341e1259d1161016457806355811acc1161013e57806355811acc146103a05780636f9fb98a146103c957806370a08231146103f4578063715018a614610431576101cd565b806341e1259d1461032157806349bd5a5e1461034a5780634f7041a514610375576101cd565b806318160ddd116101a057806318160ddd146102635780631de3b4501461028e57806323b872dd146102b9578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630b006d601461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ab565b6040516101f491906125b9565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612679565b6106e8565b60405161023191906126d4565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c91906126ef565b610706565b005b34801561026f57600080fd5b506102786107fd565b604051610285919061272b565b60405180910390f35b34801561029a57600080fd5b506102a3610810565b6040516102b0919061272b565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190612746565b610816565b6040516102ed91906126d4565b60405180910390f35b34801561030257600080fd5b5061030b6108ce565b60405161031891906127b5565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906126ef565b6108d7565b005b34801561035657600080fd5b5061035f610a13565b60405161036c91906127df565b60405180910390f35b34801561038157600080fd5b5061038a610a37565b604051610397919061272b565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906126ef565b610a3d565b005b3480156103d557600080fd5b506103de610b79565b6040516103eb919061272b565b60405180910390f35b34801561040057600080fd5b5061041b600480360381019061041691906127fa565b610b81565b604051610428919061272b565b60405180910390f35b34801561043d57600080fd5b50610446610bca565b005b34801561045457600080fd5b5061045d610d1d565b005b34801561046b57600080fd5b50610486600480360381019061048191906126ef565b610dd8565b005b34801561049457600080fd5b5061049d610ecf565b6040516104aa919061272b565b60405180910390f35b3480156104bf57600080fd5b506104c8610ed5565b6040516104d591906127df565b60405180910390f35b3480156104ea57600080fd5b506104f3610efe565b60405161050091906125b9565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b9190612827565b610f3b565b005b34801561053e57600080fd5b5061055960048036038101906105549190612679565b611064565b60405161056691906126d4565b60405180910390f35b34801561057b57600080fd5b50610584611082565b604051610591919061272b565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906128df565b611088565b005b3480156105cf57600080fd5b506105d86111ad565b005b3480156105e657600080fd5b506105ef611267565b6040516105fc919061272b565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906127fa565b61126d565b005b34801561063a57600080fd5b506106556004803603810190610650919061292c565b6113b5565b604051610662919061272b565b60405180910390f35b34801561067757600080fd5b5061068061143c565b005b34801561068e57600080fd5b506106a960048036038101906106a491906127fa565b611578565b005b60606040518060400160405280600b81526020017f426974636f696e20496e75000000000000000000000000000000000000000000815250905090565b60006106fc6106f5611619565b8484611621565b6001905092915050565b61070e611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906129b8565b60405180910390fd5b606381106107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612a24565b60405180910390fd5b69021e19e0c9bab2400000816107f49190612a73565b600a8190555050565b60006a084595161401484a000000905090565b60065481565b60006108238484846117ea565b6108c38461082f611619565b84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610879611619565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108be9190612ab5565b611621565b600190509392505050565b60006012905090565b6108df611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610963906129b8565b60405180910390fd5b6103e781106109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612b5b565b60405180910390fd5b60035481106109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612bed565b60405180910390fd5b69021e19e0c9bab240000081610a0a9190612a73565b60028190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60045481565b610a45611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906129b8565b60405180910390fd5b6103e78110610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90612c7f565b60405180910390fd5b6002548111610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5190612d11565b60405180910390fd5b69021e19e0c9bab240000081610b709190612a73565b60038190555050565b600047905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd2611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906129b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d25611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da9906129b8565b60405180910390fd5b6a084595161401484a0000006009819055506a084595161401484a000000600a81905550565b610de0611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e64906129b8565b60405180910390fd5b60638110610eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea790612d7d565b60405180910390fd5b69021e19e0c9bab240000081610ec69190612a73565b60098190555050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f42494e5500000000000000000000000000000000000000000000000000000000815250905090565b610f43611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906129b8565b60405180910390fd5b605a831080610fdf5750605a82105b80610fea5750605a81105b8061100b5750605a818385610fff9190612d9d565b6110099190612d9d565b105b61104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612e1d565b60405180910390fd5b826004819055508160058190555080600681905550505050565b6000611078611071611619565b84846117ea565b6001905092915050565b600a5481565b611090611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611114906129b8565b60405180910390fd5b60005b828290508110156111a8576000600b600085858581811061114457611143612e3d565b5b905060200201602081019061115991906127fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806111a190612e6c565b9050611120565b505050565b6111b5611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906129b8565b60405180910390fd5b6001600760006101000a81548160ff021916908360ff16021790555043600881905550565b60055481565b611275611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f9906129b8565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611444611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c8906129b8565b60405180910390fd5b60006114db610b79565b1161151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612f00565b60405180910390fd5b6000611525610b79565b905061152f610ed5565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611574573d6000803e3d6000fd5b5050565b611580611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611604906129b8565b60405180910390fd5b611616816123fd565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790612f92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f690613024565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117dd919061272b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906130b6565b60405180910390fd5b633b9aca00811161189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690613122565b60405180910390fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119425750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561195057600090506120dd565b6000600760009054906101000a900460ff1660ff161415801561197557506009548211155b6119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab906131b4565b60405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a9557600a5482600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a539190612d9d565b1115611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90613220565b60405180910390fd5b5b6001600760019054906101000a900460ff1660ff1603611bc65781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611afe9190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b549190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb8919061272b565b60405180910390a3506123f8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c3057600654600454611c299190612d9d565b90506120dc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120d6576000600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060025481118015611cea57506000600760019054906101000a900460ff1660ff16145b156120be57600354811115611cff5760035490505b60006006546002600554600454611d169190612d9d565b611d20919061326f565b611d2a9190612d9d565b60065483611d389190612a73565b611d42919061326f565b905060008183611d529190612ab5565b90506001600760016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff811115611d8d57611d8c6132a0565b5b604051908082528060200260200182016040528015611dbb5781602001602082028036833780820191505090505b5090503081600081518110611dd357611dd2612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611e4257611e41612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b8152600401611efe959493929190613427565b600060405180830381600087803b158015611f1857600080fd5b505af1158015611f2c573d6000803e3d6000fd5b50505050600083111561209e577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947600285611f82919061326f565b60008430426040518663ffffffff1660e01b8152600401611fa7959493929190613481565b600060405180830381600087803b158015611fc157600080fd5b505af1158015611fd5573d6000803e3d6000fd5b5050505060004790507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230600288612029919061326f565b600080612034610ed5565b426040518863ffffffff1660e01b8152600401612056969594939291906134db565b60606040518083038185885af1158015612074573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120999190613551565b505050505b6000600760016101000a81548160ff021916908360ff1602179055505050505b6006546005546120ce9190612d9d565b9150506120db565b600090505b5b5b600081146122e4576000606482846120f59190612a73565b6120ff919061326f565b90506000818461210f9190612ab5565b905083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121609190612ab5565b9250508190555080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b69190612d9d565b9250508190555081600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220c9190612d9d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612270919061272b565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d5919061272b565b60405180910390a350506123f6565b81600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123339190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123899190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed919061272b565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246390613616565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612563578082015181840152602081019050612548565b60008484015250505050565b6000601f19601f8301169050919050565b600061258b82612529565b6125958185612534565b93506125a5818560208601612545565b6125ae8161256f565b840191505092915050565b600060208201905081810360008301526125d38184612580565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612610826125e5565b9050919050565b61262081612605565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000819050919050565b61265681612643565b811461266157600080fd5b50565b6000813590506126738161264d565b92915050565b600080604083850312156126905761268f6125db565b5b600061269e8582860161262e565b92505060206126af85828601612664565b9150509250929050565b60008115159050919050565b6126ce816126b9565b82525050565b60006020820190506126e960008301846126c5565b92915050565b600060208284031215612705576127046125db565b5b600061271384828501612664565b91505092915050565b61272581612643565b82525050565b6000602082019050612740600083018461271c565b92915050565b60008060006060848603121561275f5761275e6125db565b5b600061276d8682870161262e565b935050602061277e8682870161262e565b925050604061278f86828701612664565b9150509250925092565b600060ff82169050919050565b6127af81612799565b82525050565b60006020820190506127ca60008301846127a6565b92915050565b6127d981612605565b82525050565b60006020820190506127f460008301846127d0565b92915050565b6000602082840312156128105761280f6125db565b5b600061281e8482850161262e565b91505092915050565b6000806000606084860312156128405761283f6125db565b5b600061284e86828701612664565b935050602061285f86828701612664565b925050604061287086828701612664565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261289f5761289e61287a565b5b8235905067ffffffffffffffff8111156128bc576128bb61287f565b5b6020830191508360208202830111156128d8576128d7612884565b5b9250929050565b600080602083850312156128f6576128f56125db565b5b600083013567ffffffffffffffff811115612914576129136125e0565b5b61292085828601612889565b92509250509250929050565b60008060408385031215612943576129426125db565b5b60006129518582860161262e565b92505060206129628582860161262e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a2602083612534565b91506129ad8261296c565b602082019050919050565b600060208201905081810360008301526129d181612995565b9050919050565b7f4d61782077616c6c65742063616e6e6f742062652061626f7665203939250000600082015250565b6000612a0e601e83612534565b9150612a19826129d8565b602082019050919050565b60006020820190508181036000830152612a3d81612a01565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7e82612643565b9150612a8983612643565b9250828202612a9781612643565b91508282048414831517612aae57612aad612a44565b5b5092915050565b6000612ac082612643565b9150612acb83612643565b9250828203905081811115612ae357612ae2612a44565b5b92915050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612b45602383612534565b9150612b5082612ae9565b604082019050919050565b60006020820190508181036000830152612b7481612b38565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f6d61782073776170000000000000000000000000000000000000000000000000602082015250565b6000612bd7602883612534565b9150612be282612b7b565b604082019050919050565b60006020820190508181036000830152612c0681612bca565b9050919050565b7f4d617820537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612c69602383612534565b9150612c7482612c0d565b604082019050919050565b60006020820190508181036000830152612c9881612c5c565b9050919050565b7f4d617820537761702063616e6e6f74206265206c657373207468616e206d696e60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b6000612cfb602583612534565b9150612d0682612c9f565b604082019050919050565b60006020820190508181036000830152612d2a81612cee565b9050919050565b7f4d61782054782063616e6e6f742062652061626f766520393925000000000000600082015250565b6000612d67601a83612534565b9150612d7282612d31565b602082019050919050565b60006020820190508181036000830152612d9681612d5a565b9050919050565b6000612da882612643565b9150612db383612643565b9250828201905080821115612dcb57612dca612a44565b5b92915050565b7f43616e6e6f74207365742074617865732061626f766520393025000000000000600082015250565b6000612e07601a83612534565b9150612e1282612dd1565b602082019050919050565b60006020820190508181036000830152612e3681612dfa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e7782612643565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ea957612ea8612a44565b5b600182019050919050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b6000612eea601683612534565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f7c602483612534565b9150612f8782612f20565b604082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061300e602283612534565b915061301982612fb2565b604082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130a0602583612534565b91506130ab82613044565b604082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b600061310c601083612534565b9150613117826130d6565b602082019050919050565b6000602082019050818103600083015261313b816130ff565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60008201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b600061319e602283612534565b91506131a982613142565b604082019050919050565b600060208201905081810360008301526131cd81613191565b9050919050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b600061320a601a83612534565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327a82612643565b915061328583612643565b92508261329557613294613240565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006132fe6132f96132f4846132cf565b6132d9565b612643565b9050919050565b61330e816132e3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334981612605565b82525050565b600061335b8383613340565b60208301905092915050565b6000602082019050919050565b600061337f82613314565b613389818561331f565b935061339483613330565b8060005b838110156133c55781516133ac888261334f565b97506133b783613367565b925050600181019050613398565b5085935050505092915050565b60006133ed6133e86133e3846125e5565b6132d9565b6125e5565b9050919050565b60006133ff826133d2565b9050919050565b6000613411826133f4565b9050919050565b61342181613406565b82525050565b600060a08201905061343c600083018861271c565b6134496020830187613305565b818103604083015261345b8186613374565b905061346a6060830185613418565b613477608083018461271c565b9695505050505050565b600060a082019050613496600083018861271c565b6134a36020830187613305565b81810360408301526134b58186613374565b90506134c460608301856127d0565b6134d1608083018461271c565b9695505050505050565b600060c0820190506134f060008301896127d0565b6134fd602083018861271c565b61350a6040830187613305565b6135176060830186613305565b61352460808301856127d0565b61353160a083018461271c565b979650505050505050565b60008151905061354b8161264d565b92915050565b60008060006060848603121561356a576135696125db565b5b60006135788682870161353c565b93505060206135898682870161353c565b925050604061359a8682870161353c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613600602683612534565b915061360b826135a4565b604082019050919050565b6000602082019050818103600083015261362f816135f3565b905091905056fea26469706673582212203401db7bf6814e868fb7696a9f57972b17b7fa2be8eaf62bcb198d02955a1bcf64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c8063751039fc116100f7578063aa4bde2811610095578063dba9d42011610064578063dba9d42014610605578063dd62ed3e1461062e578063e5cd8b6a1461066b578063f2fde38b14610682576101cd565b8063aa4bde281461056f578063aca1f1571461059a578063c9567bf9146105c3578063cc1776d3146105da576101cd565b80638da5cb5b116100d15780638da5cb5b146104b357806395d89b41146104de578063974ea01e14610509578063a9059cbb14610532576101cd565b8063751039fc14610448578063778c61521461045f5780638c0b5e2214610488576101cd565b806341e1259d1161016457806355811acc1161013e57806355811acc146103a05780636f9fb98a146103c957806370a08231146103f4578063715018a614610431576101cd565b806341e1259d1461032157806349bd5a5e1461034a5780634f7041a514610375576101cd565b806318160ddd116101a057806318160ddd146102635780631de3b4501461028e57806323b872dd146102b9578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630b006d601461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ab565b6040516101f491906125b9565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612679565b6106e8565b60405161023191906126d4565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c91906126ef565b610706565b005b34801561026f57600080fd5b506102786107fd565b604051610285919061272b565b60405180910390f35b34801561029a57600080fd5b506102a3610810565b6040516102b0919061272b565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190612746565b610816565b6040516102ed91906126d4565b60405180910390f35b34801561030257600080fd5b5061030b6108ce565b60405161031891906127b5565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906126ef565b6108d7565b005b34801561035657600080fd5b5061035f610a13565b60405161036c91906127df565b60405180910390f35b34801561038157600080fd5b5061038a610a37565b604051610397919061272b565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906126ef565b610a3d565b005b3480156103d557600080fd5b506103de610b79565b6040516103eb919061272b565b60405180910390f35b34801561040057600080fd5b5061041b600480360381019061041691906127fa565b610b81565b604051610428919061272b565b60405180910390f35b34801561043d57600080fd5b50610446610bca565b005b34801561045457600080fd5b5061045d610d1d565b005b34801561046b57600080fd5b50610486600480360381019061048191906126ef565b610dd8565b005b34801561049457600080fd5b5061049d610ecf565b6040516104aa919061272b565b60405180910390f35b3480156104bf57600080fd5b506104c8610ed5565b6040516104d591906127df565b60405180910390f35b3480156104ea57600080fd5b506104f3610efe565b60405161050091906125b9565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b9190612827565b610f3b565b005b34801561053e57600080fd5b5061055960048036038101906105549190612679565b611064565b60405161056691906126d4565b60405180910390f35b34801561057b57600080fd5b50610584611082565b604051610591919061272b565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906128df565b611088565b005b3480156105cf57600080fd5b506105d86111ad565b005b3480156105e657600080fd5b506105ef611267565b6040516105fc919061272b565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906127fa565b61126d565b005b34801561063a57600080fd5b506106556004803603810190610650919061292c565b6113b5565b604051610662919061272b565b60405180910390f35b34801561067757600080fd5b5061068061143c565b005b34801561068e57600080fd5b506106a960048036038101906106a491906127fa565b611578565b005b60606040518060400160405280600b81526020017f426974636f696e20496e75000000000000000000000000000000000000000000815250905090565b60006106fc6106f5611619565b8484611621565b6001905092915050565b61070e611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906129b8565b60405180910390fd5b606381106107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590612a24565b60405180910390fd5b69021e19e0c9bab2400000816107f49190612a73565b600a8190555050565b60006a084595161401484a000000905090565b60065481565b60006108238484846117ea565b6108c38461082f611619565b84600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610879611619565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108be9190612ab5565b611621565b600190509392505050565b60006012905090565b6108df611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610963906129b8565b60405180910390fd5b6103e781106109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612b5b565b60405180910390fd5b60035481106109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb90612bed565b60405180910390fd5b69021e19e0c9bab240000081610a0a9190612a73565b60028190555050565b7f00000000000000000000000046e7290f78b0c5b2573170fc51047eaebd94ac0681565b60045481565b610a45611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906129b8565b60405180910390fd5b6103e78110610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0d90612c7f565b60405180910390fd5b6002548111610b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5190612d11565b60405180910390fd5b69021e19e0c9bab240000081610b709190612a73565b60038190555050565b600047905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd2611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906129b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d25611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da9906129b8565b60405180910390fd5b6a084595161401484a0000006009819055506a084595161401484a000000600a81905550565b610de0611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e64906129b8565b60405180910390fd5b60638110610eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea790612d7d565b60405180910390fd5b69021e19e0c9bab240000081610ec69190612a73565b60098190555050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f42494e5500000000000000000000000000000000000000000000000000000000815250905090565b610f43611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc7906129b8565b60405180910390fd5b605a831080610fdf5750605a82105b80610fea5750605a81105b8061100b5750605a818385610fff9190612d9d565b6110099190612d9d565b105b61104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190612e1d565b60405180910390fd5b826004819055508160058190555080600681905550505050565b6000611078611071611619565b84846117ea565b6001905092915050565b600a5481565b611090611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611114906129b8565b60405180910390fd5b60005b828290508110156111a8576000600b600085858581811061114457611143612e3d565b5b905060200201602081019061115991906127fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806111a190612e6c565b9050611120565b505050565b6111b5611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906129b8565b60405180910390fd5b6001600760006101000a81548160ff021916908360ff16021790555043600881905550565b60055481565b611275611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f9906129b8565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611444611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c8906129b8565b60405180910390fd5b60006114db610b79565b1161151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612f00565b60405180910390fd5b6000611525610b79565b905061152f610ed5565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611574573d6000803e3d6000fd5b5050565b611580611619565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611604906129b8565b60405180910390fd5b611616816123fd565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790612f92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f690613024565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117dd919061272b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906130b6565b60405180910390fd5b633b9aca00811161189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690613122565b60405180910390fd5b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119425750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561195057600090506120dd565b6000600760009054906101000a900460ff1660ff161415801561197557506009548211155b6119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab906131b4565b60405180910390fd5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a9557600a5482600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a539190612d9d565b1115611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90613220565b60405180910390fd5b5b6001600760019054906101000a900460ff1660ff1603611bc65781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611afe9190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b549190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb8919061272b565b60405180910390a3506123f8565b7f00000000000000000000000046e7290f78b0c5b2573170fc51047eaebd94ac0673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c3057600654600454611c299190612d9d565b90506120dc565b7f00000000000000000000000046e7290f78b0c5b2573170fc51047eaebd94ac0673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120d6576000600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060025481118015611cea57506000600760019054906101000a900460ff1660ff16145b156120be57600354811115611cff5760035490505b60006006546002600554600454611d169190612d9d565b611d20919061326f565b611d2a9190612d9d565b60065483611d389190612a73565b611d42919061326f565b905060008183611d529190612ab5565b90506001600760016101000a81548160ff021916908360ff1602179055506000600267ffffffffffffffff811115611d8d57611d8c6132a0565b5b604051908082528060200260200182016040528015611dbb5781602001602082028036833780820191505090505b5090503081600081518110611dd357611dd2612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611e4257611e41612e3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f000000000000000000000000266766a94a314eb11389f9d8ec1eb25b976db538426040518663ffffffff1660e01b8152600401611efe959493929190613427565b600060405180830381600087803b158015611f1857600080fd5b505af1158015611f2c573d6000803e3d6000fd5b50505050600083111561209e577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947600285611f82919061326f565b60008430426040518663ffffffff1660e01b8152600401611fa7959493929190613481565b600060405180830381600087803b158015611fc157600080fd5b505af1158015611fd5573d6000803e3d6000fd5b5050505060004790507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230600288612029919061326f565b600080612034610ed5565b426040518863ffffffff1660e01b8152600401612056969594939291906134db565b60606040518083038185885af1158015612074573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120999190613551565b505050505b6000600760016101000a81548160ff021916908360ff1602179055505050505b6006546005546120ce9190612d9d565b9150506120db565b600090505b5b5b600081146122e4576000606482846120f59190612a73565b6120ff919061326f565b90506000818461210f9190612ab5565b905083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121609190612ab5565b9250508190555080600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b69190612d9d565b9250508190555081600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220c9190612d9d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612270919061272b565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d5919061272b565b60405180910390a350506123f6565b81600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123339190612ab5565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123899190612d9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed919061272b565b60405180910390a35b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246390613616565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612563578082015181840152602081019050612548565b60008484015250505050565b6000601f19601f8301169050919050565b600061258b82612529565b6125958185612534565b93506125a5818560208601612545565b6125ae8161256f565b840191505092915050565b600060208201905081810360008301526125d38184612580565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612610826125e5565b9050919050565b61262081612605565b811461262b57600080fd5b50565b60008135905061263d81612617565b92915050565b6000819050919050565b61265681612643565b811461266157600080fd5b50565b6000813590506126738161264d565b92915050565b600080604083850312156126905761268f6125db565b5b600061269e8582860161262e565b92505060206126af85828601612664565b9150509250929050565b60008115159050919050565b6126ce816126b9565b82525050565b60006020820190506126e960008301846126c5565b92915050565b600060208284031215612705576127046125db565b5b600061271384828501612664565b91505092915050565b61272581612643565b82525050565b6000602082019050612740600083018461271c565b92915050565b60008060006060848603121561275f5761275e6125db565b5b600061276d8682870161262e565b935050602061277e8682870161262e565b925050604061278f86828701612664565b9150509250925092565b600060ff82169050919050565b6127af81612799565b82525050565b60006020820190506127ca60008301846127a6565b92915050565b6127d981612605565b82525050565b60006020820190506127f460008301846127d0565b92915050565b6000602082840312156128105761280f6125db565b5b600061281e8482850161262e565b91505092915050565b6000806000606084860312156128405761283f6125db565b5b600061284e86828701612664565b935050602061285f86828701612664565b925050604061287086828701612664565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261289f5761289e61287a565b5b8235905067ffffffffffffffff8111156128bc576128bb61287f565b5b6020830191508360208202830111156128d8576128d7612884565b5b9250929050565b600080602083850312156128f6576128f56125db565b5b600083013567ffffffffffffffff811115612914576129136125e0565b5b61292085828601612889565b92509250509250929050565b60008060408385031215612943576129426125db565b5b60006129518582860161262e565b92505060206129628582860161262e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a2602083612534565b91506129ad8261296c565b602082019050919050565b600060208201905081810360008301526129d181612995565b9050919050565b7f4d61782077616c6c65742063616e6e6f742062652061626f7665203939250000600082015250565b6000612a0e601e83612534565b9150612a19826129d8565b602082019050919050565b60006020820190508181036000830152612a3d81612a01565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7e82612643565b9150612a8983612643565b9250828202612a9781612643565b91508282048414831517612aae57612aad612a44565b5b5092915050565b6000612ac082612643565b9150612acb83612643565b9250828203905081811115612ae357612ae2612a44565b5b92915050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612b45602383612534565b9150612b5082612ae9565b604082019050919050565b60006020820190508181036000830152612b7481612b38565b9050919050565b7f4d696e20537761702063616e6e6f742062652067726561746572207468616e2060008201527f6d61782073776170000000000000000000000000000000000000000000000000602082015250565b6000612bd7602883612534565b9150612be282612b7b565b604082019050919050565b60006020820190508181036000830152612c0681612bca565b9050919050565b7f4d617820537761702063616e6e6f742062652067726561746572207468616e2060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000612c69602383612534565b9150612c7482612c0d565b604082019050919050565b60006020820190508181036000830152612c9881612c5c565b9050919050565b7f4d617820537761702063616e6e6f74206265206c657373207468616e206d696e60008201527f2073776170000000000000000000000000000000000000000000000000000000602082015250565b6000612cfb602583612534565b9150612d0682612c9f565b604082019050919050565b60006020820190508181036000830152612d2a81612cee565b9050919050565b7f4d61782054782063616e6e6f742062652061626f766520393925000000000000600082015250565b6000612d67601a83612534565b9150612d7282612d31565b602082019050919050565b60006020820190508181036000830152612d9681612d5a565b9050919050565b6000612da882612643565b9150612db383612643565b9250828201905080821115612dcb57612dca612a44565b5b92915050565b7f43616e6e6f74207365742074617865732061626f766520393025000000000000600082015250565b6000612e07601a83612534565b9150612e1282612dd1565b602082019050919050565b60006020820190508181036000830152612e3681612dfa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e7782612643565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ea957612ea8612a44565b5b600182019050919050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b6000612eea601683612534565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f7c602483612534565b9150612f8782612f20565b604082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061300e602283612534565b915061301982612fb2565b604082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130a0602583612534565b91506130ab82613044565b604082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b7f4d696e207472616e7366657220616d7400000000000000000000000000000000600082015250565b600061310c601083612534565b9150613117826130d6565b602082019050919050565b6000602082019050818103600083015261313b816130ff565b9050919050565b7f4c61756e6368202f204d6178205478416d6f756e74203125206174206c61756e60008201527f6368000000000000000000000000000000000000000000000000000000000000602082015250565b600061319e602283612534565b91506131a982613142565b604082019050919050565b600060208201905081810360008301526131cd81613191565b9050919050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b600061320a601a83612534565b9150613215826131d4565b602082019050919050565b60006020820190508181036000830152613239816131fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327a82612643565b915061328583612643565b92508261329557613294613240565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006132fe6132f96132f4846132cf565b6132d9565b612643565b9050919050565b61330e816132e3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334981612605565b82525050565b600061335b8383613340565b60208301905092915050565b6000602082019050919050565b600061337f82613314565b613389818561331f565b935061339483613330565b8060005b838110156133c55781516133ac888261334f565b97506133b783613367565b925050600181019050613398565b5085935050505092915050565b60006133ed6133e86133e3846125e5565b6132d9565b6125e5565b9050919050565b60006133ff826133d2565b9050919050565b6000613411826133f4565b9050919050565b61342181613406565b82525050565b600060a08201905061343c600083018861271c565b6134496020830187613305565b818103604083015261345b8186613374565b905061346a6060830185613418565b613477608083018461271c565b9695505050505050565b600060a082019050613496600083018861271c565b6134a36020830187613305565b81810360408301526134b58186613374565b90506134c460608301856127d0565b6134d1608083018461271c565b9695505050505050565b600060c0820190506134f060008301896127d0565b6134fd602083018861271c565b61350a6040830187613305565b6135176060830186613305565b61352460808301856127d0565b61353160a083018461271c565b979650505050505050565b60008151905061354b8161264d565b92915050565b60008060006060848603121561356a576135696125db565b5b60006135788682870161353c565b93505060206135898682870161353c565b925050604061359a8682870161353c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613600602683612534565b915061360b826135a4565b604082019050919050565b6000602082019050818103600083015261362f816135f3565b905091905056fea26469706673582212203401db7bf6814e868fb7696a9f57972b17b7fa2be8eaf62bcb198d02955a1bcf64736f6c63430008120033
Deployed Bytecode Sourcemap
2958:10997:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5703:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6996:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8897:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6353:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3547:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7197:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6262:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9612:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3366:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3490:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9287:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5792:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6461:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2008:148;;;;;;;;;;;;;:::i;:::-;;8226:129;;;;;;;;;;;;;:::i;:::-;;9104:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3677:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1403:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6167:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8363:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6587:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3764:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8702:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7932:108;;;;;;;;;;;;;:::i;:::-;;3518:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8048:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6804:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5907:252;;;;;;;;;;;;;:::i;:::-;;1617:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5703:83;5740:13;5773:5;;;;;;;;;;;;;;;;;5766:12;;5703:83;:::o;6996:193::-;7098:4;7120:39;7129:12;:10;:12::i;:::-;7143:7;7152:6;7120:8;:39::i;:::-;7177:4;7170:11;;6996:193;;;;:::o;8897:199::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8995:2:::1;8980:12;:17;8972:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3168:9;9061:12;:27;;;;:::i;:::-;9043:15;:45;;;;8897:199:::0;:::o;6353:100::-;6406:7;3053:13;6426:19;;6353:100;:::o;3547:17::-;;;;:::o;7197:350::-;7329:4;7346:36;7356:6;7364:9;7375:6;7346:9;:36::i;:::-;7393:124;7416:6;7437:12;:10;:12::i;:::-;7500:6;7464:11;:19;7476:6;7464:19;;;;;;;;;;;;;;;:33;7484:12;:10;:12::i;:::-;7464:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;7393:8;:124::i;:::-;7535:4;7528:11;;7197:350;;;;;:::o;6262:83::-;6303:5;3304:2;6321:16;;6262:83;:::o;9612:320::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9733:3:::1;9711:19;:25;9703:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9817:7;;9795:19;:29;9787:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;3168:9;9890:19;:34;;;;:::i;:::-;9880:7;:44;;;;9612:320:::0;:::o;3366:38::-;;;:::o;3490:21::-;;;;:::o;9287:317::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9408:3:::1;9386:19;:25;9378:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9492:7;;9470:19;:29;9462:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3168:9;9562:19;:34;;;;:::i;:::-;9552:7;:44;;;;9287:317:::0;:::o;5792:107::-;5843:7;5870:21;5863:28;;5792:107;:::o;6461:118::-;6527:7;6554:8;:17;6563:7;6554:17;;;;;;;;;;;;;;;;6547:24;;6461:118;;;:::o;2008:148::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2115:1:::1;2078:40;;2099:6;::::0;::::1;;;;;;;;2078:40;;;;;;;;;;;;2146:1;2129:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2008:148::o:0;8226:129::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3053:13:::1;8280:11;:26;;;;3053:13;8317:15;:30;;;;8226:129::o:0;9104:175::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9190:2:::1;9179:8;:13;9171:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;3168:9;9248:8;:23;;;;:::i;:::-;9234:11;:37;;;;9104:175:::0;:::o;3677:43::-;;;;:::o;1403:79::-;1441:7;1468:6;;;;;;;;;;;1461:13;;1403:79;:::o;6167:87::-;6206:13;6239:7;;;;;;;;;;;;;;;;;6232:14;;6167:87;:::o;8363:331::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8486:2:::1;8474:9;:14;:33;;;;8505:2;8492:10;:15;8474:33;:50;;;;8522:2;8511:8;:13;8474:50;:94;;;;8566:2;8554:8;8541:10;8529:9;:22;;;;:::i;:::-;:33;;;;:::i;:::-;8528:40;8474:94;8466:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;8619:9;8610:6;:18;;;;8649:10;8639:7;:20;;;;8678:8;8670:5;:16;;;;8363:331:::0;;;:::o;6587:209::-;6692:4;6724:42;6734:12;:10;:12::i;:::-;6748:9;6759:6;6724:9;:42::i;:::-;6784:4;6777:11;;6587:209;;;;:::o;3764:47::-;;;;:::o;8702:187::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8791:9:::1;8786:96;8806:9;;:16;;8802:1;:20;8786:96;;;8869:1;8844:8;:22;8853:9;;8863:1;8853:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8844:22;;;;;;;;;;;;;;;:26;;;;8824:3;;;;:::i;:::-;;;8786:96;;;;8702:187:::0;;:::o;7932:108::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7994:1:::1;7985:6;;:10;;;;;;;;;;;;;;;;;;8020:12;8006:11;:26;;;;7932:108::o:0;3518:22::-;;;;:::o;8048:170::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8156:4:::1;8121:24;:32;8146:6;8121:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8206:4;8171:24;:32;8196:6;8171:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8048:170:::0;:::o;6804:184::-;6921:7;6953:11;:18;6965:5;6953:18;;;;;;;;;;;;;;;:27;6972:7;6953:27;;;;;;;;;;;;;;;;6946:34;;6804:184;;;;:::o;5907:252::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5991:1:::1;5968:20;:18;:20::i;:::-;:24;5960:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6040:24;6067:20;:18;:20::i;:::-;6040:47;;6116:7;:5;:7::i;:::-;6108:25;;:43;6134:16;6108:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5949:210;5907:252::o:0;1617:109::-;1540:12;:10;:12::i;:::-;1530:22;;:6;;;;;;;;;;:22;;;1522:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1690:28:::1;1709:8;1690:18;:28::i;:::-;1617:109:::0;:::o;117:98::-;170:7;197:10;190:17;;117:98;:::o;7555:369::-;7699:1;7682:19;;:5;:19;;;7674:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7780:1;7761:21;;:7;:21;;;7753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7862:6;7832:11;:18;7844:5;7832:18;;;;;;;;;;;;;;;:27;7851:7;7832:27;;;;;;;;;;;;;;;:36;;;;7900:7;7884:32;;7893:5;7884:32;;;7909:6;7884:32;;;;;;:::i;:::-;;;;;;;;7555:369;;;:::o;9940:3975::-;10078:1;10062:18;;:4;:18;;;10054:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10150:3;10141:6;:12;10133:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;10187:12;10214:24;:30;10239:4;10214:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;10248:24;:28;10273:2;10248:28;;;;;;;;;;;;;;;;;;;;;;;;;10214:62;10210:3048;;;10300:1;10293:8;;10210:3048;;;10370:1;10360:6;;;;;;;;;;;:11;;;;:36;;;;;10385:11;;10375:6;:21;;10360:36;10334:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;10504:24;:28;10529:2;10504:28;;;;;;;;;;;;;;;;;;;;;;;;;10481:242;;10622:15;;10612:6;10597:8;:12;10606:2;10597:12;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;:40;;10567:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;10481:242;10763:1;10743:16;;;;;;;;;;;:21;;;10739:239;;10838:6;10820:8;:14;10829:4;10820:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;10879:6;10863:8;:12;10872:2;10863:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;10926:2;10911:26;;10920:4;10911:26;;;10930:6;10911:26;;;;;;:::i;:::-;;;;;;;;10956:7;;;10739:239;11006:13;10998:21;;:4;:21;;;10994:2253;;11056:5;;11047:6;;:14;;;;:::i;:::-;11040:21;;10994:2253;;;11093:13;11087:19;;:2;:19;;;11083:2164;;11127:20;11150:8;:23;11167:4;11150:23;;;;;;;;;;;;;;;;11127:46;;11211:7;;11196:12;:22;:47;;;;;11242:1;11222:16;;;;;;;;;;;:21;;;11196:47;11192:1932;;;11287:7;;11272:12;:22;11268:101;;;11338:7;;11323:22;;11268:101;11413:18;11488:5;;11482:1;11471:7;;11462:6;;:16;;;;:::i;:::-;11461:22;;;;:::i;:::-;11460:33;;;;:::i;:::-;11450:5;;11435:12;:20;;;;:::i;:::-;11434:61;;;;:::i;:::-;11413:82;;11518:17;11553:13;11538:12;:28;;;;:::i;:::-;11518:48;;11610:1;11591:16;;:20;;;;;;;;;;;;;;;;;;11634:21;11672:1;11658:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11634:40;;11715:4;11697;11702:1;11697:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11753:4;11743;11748:1;11743:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;11802:15;:92;;;11925:12;11968:1;12000:4;12035:15;12081;11802:321;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12211:1;12195:13;:17;12190:850;;;12267:15;:92;;;12406:1;12390:13;:17;;;;:::i;:::-;12438:1;12470:4;12513;12549:15;12267:324;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12644:11;12658:21;12644:35;;12706:15;:57;;;12772:6;12788:4;12840:1;12824:13;:17;;;;:::i;:::-;12872:1;12904;12936:7;:5;:7::i;:::-;12974:15;12706:310;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12214:826;12190:850;13081:1;13062:16;;:20;;;;;;;;;;;;;;;;;;11245:1879;;;11192:1932;13177:5;;13167:7;;:15;;;;:::i;:::-;13160:22;;11108:2090;11083:2164;;;13230:1;13223:8;;11083:2164;10994:2253;10210:3048;13327:1;13319:4;:9;13315:593;;13373:17;13411:3;13403:4;13394:6;:13;;;;:::i;:::-;13393:21;;;;:::i;:::-;13373:41;;13429:22;13463:9;13454:6;:18;;;;:::i;:::-;13429:43;;13507:6;13489:8;:14;13498:4;13489:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13544:14;13528:8;:12;13537:2;13528:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13600:9;13573:8;:23;13590:4;13573:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;13652:4;13629:40;;13638:4;13629:40;;;13659:9;13629:40;;;;;;:::i;:::-;;;;;;;;13704:2;13689:34;;13698:4;13689:34;;;13708:14;13689:34;;;;;;:::i;:::-;;;;;;;;13330:405;;13315:593;;;13805:6;13787:8;:14;13796:4;13787:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;13842:6;13826:8;:12;13835:2;13826:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;13885:2;13870:26;;13879:4;13870:26;;;13889:6;13870:26;;;;;;:::i;:::-;;;;;;;;13315:593;10043:3872;9940:3975;;;;:::o;1734:266::-;1842:1;1822:22;;:8;:22;;;1800:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;1955:8;1926:38;;1947:6;;;;;;;;;;1926:38;;;;;;;;;;;;1984:8;1975:6;;:17;;;;;;;;;;;;;;;;;;1734:266;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:619::-;5952:6;5960;5968;6017:2;6005:9;5996:7;5992:23;5988:32;5985:119;;;6023:79;;:::i;:::-;5985:119;6143:1;6168:53;6213:7;6204:6;6193:9;6189:22;6168:53;:::i;:::-;6158:63;;6114:117;6270:2;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6241:118;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;5875:619;;;;;:::o;6500:117::-;6609:1;6606;6599:12;6623:117;6732:1;6729;6722:12;6746:117;6855:1;6852;6845:12;6886:568;6959:8;6969:6;7019:3;7012:4;7004:6;7000:17;6996:27;6986:122;;7027:79;;:::i;:::-;6986:122;7140:6;7127:20;7117:30;;7170:18;7162:6;7159:30;7156:117;;;7192:79;;:::i;:::-;7156:117;7306:4;7298:6;7294:17;7282:29;;7360:3;7352:4;7344:6;7340:17;7330:8;7326:32;7323:41;7320:128;;;7367:79;;:::i;:::-;7320:128;6886:568;;;;;:::o;7460:559::-;7546:6;7554;7603:2;7591:9;7582:7;7578:23;7574:32;7571:119;;;7609:79;;:::i;:::-;7571:119;7757:1;7746:9;7742:17;7729:31;7787:18;7779:6;7776:30;7773:117;;;7809:79;;:::i;:::-;7773:117;7922:80;7994:7;7985:6;7974:9;7970:22;7922:80;:::i;:::-;7904:98;;;;7700:312;7460:559;;;;;:::o;8025:474::-;8093:6;8101;8150:2;8138:9;8129:7;8125:23;8121:32;8118:119;;;8156:79;;:::i;:::-;8118:119;8276:1;8301:53;8346:7;8337:6;8326:9;8322:22;8301:53;:::i;:::-;8291:63;;8247:117;8403:2;8429:53;8474:7;8465:6;8454:9;8450:22;8429:53;:::i;:::-;8419:63;;8374:118;8025:474;;;;;:::o;8505:182::-;8645:34;8641:1;8633:6;8629:14;8622:58;8505:182;:::o;8693:366::-;8835:3;8856:67;8920:2;8915:3;8856:67;:::i;:::-;8849:74;;8932:93;9021:3;8932:93;:::i;:::-;9050:2;9045:3;9041:12;9034:19;;8693:366;;;:::o;9065:419::-;9231:4;9269:2;9258:9;9254:18;9246:26;;9318:9;9312:4;9308:20;9304:1;9293:9;9289:17;9282:47;9346:131;9472:4;9346:131;:::i;:::-;9338:139;;9065:419;;;:::o;9490:180::-;9630:32;9626:1;9618:6;9614:14;9607:56;9490:180;:::o;9676:366::-;9818:3;9839:67;9903:2;9898:3;9839:67;:::i;:::-;9832:74;;9915:93;10004:3;9915:93;:::i;:::-;10033:2;10028:3;10024:12;10017:19;;9676:366;;;:::o;10048:419::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10301:9;10295:4;10291:20;10287:1;10276:9;10272:17;10265:47;10329:131;10455:4;10329:131;:::i;:::-;10321:139;;10048:419;;;:::o;10473:180::-;10521:77;10518:1;10511:88;10618:4;10615:1;10608:15;10642:4;10639:1;10632:15;10659:410;10699:7;10722:20;10740:1;10722:20;:::i;:::-;10717:25;;10756:20;10774:1;10756:20;:::i;:::-;10751:25;;10811:1;10808;10804:9;10833:30;10851:11;10833:30;:::i;:::-;10822:41;;11012:1;11003:7;10999:15;10996:1;10993:22;10973:1;10966:9;10946:83;10923:139;;11042:18;;:::i;:::-;10923:139;10707:362;10659:410;;;;:::o;11075:194::-;11115:4;11135:20;11153:1;11135:20;:::i;:::-;11130:25;;11169:20;11187:1;11169:20;:::i;:::-;11164:25;;11213:1;11210;11206:9;11198:17;;11237:1;11231:4;11228:11;11225:37;;;11242:18;;:::i;:::-;11225:37;11075:194;;;;:::o;11275:222::-;11415:34;11411:1;11403:6;11399:14;11392:58;11484:5;11479:2;11471:6;11467:15;11460:30;11275:222;:::o;11503:366::-;11645:3;11666:67;11730:2;11725:3;11666:67;:::i;:::-;11659:74;;11742:93;11831:3;11742:93;:::i;:::-;11860:2;11855:3;11851:12;11844:19;;11503:366;;;:::o;11875:419::-;12041:4;12079:2;12068:9;12064:18;12056:26;;12128:9;12122:4;12118:20;12114:1;12103:9;12099:17;12092:47;12156:131;12282:4;12156:131;:::i;:::-;12148:139;;11875:419;;;:::o;12300:227::-;12440:34;12436:1;12428:6;12424:14;12417:58;12509:10;12504:2;12496:6;12492:15;12485:35;12300:227;:::o;12533:366::-;12675:3;12696:67;12760:2;12755:3;12696:67;:::i;:::-;12689:74;;12772:93;12861:3;12772:93;:::i;:::-;12890:2;12885:3;12881:12;12874:19;;12533:366;;;:::o;12905:419::-;13071:4;13109:2;13098:9;13094:18;13086:26;;13158:9;13152:4;13148:20;13144:1;13133:9;13129:17;13122:47;13186:131;13312:4;13186:131;:::i;:::-;13178:139;;12905:419;;;:::o;13330:222::-;13470:34;13466:1;13458:6;13454:14;13447:58;13539:5;13534:2;13526:6;13522:15;13515:30;13330:222;:::o;13558:366::-;13700:3;13721:67;13785:2;13780:3;13721:67;:::i;:::-;13714:74;;13797:93;13886:3;13797:93;:::i;:::-;13915:2;13910:3;13906:12;13899:19;;13558:366;;;:::o;13930:419::-;14096:4;14134:2;14123:9;14119:18;14111:26;;14183:9;14177:4;14173:20;14169:1;14158:9;14154:17;14147:47;14211:131;14337:4;14211:131;:::i;:::-;14203:139;;13930:419;;;:::o;14355:224::-;14495:34;14491:1;14483:6;14479:14;14472:58;14564:7;14559:2;14551:6;14547:15;14540:32;14355:224;:::o;14585:366::-;14727:3;14748:67;14812:2;14807:3;14748:67;:::i;:::-;14741:74;;14824:93;14913:3;14824:93;:::i;:::-;14942:2;14937:3;14933:12;14926:19;;14585:366;;;:::o;14957:419::-;15123:4;15161:2;15150:9;15146:18;15138:26;;15210:9;15204:4;15200:20;15196:1;15185:9;15181:17;15174:47;15238:131;15364:4;15238:131;:::i;:::-;15230:139;;14957:419;;;:::o;15382:176::-;15522:28;15518:1;15510:6;15506:14;15499:52;15382:176;:::o;15564:366::-;15706:3;15727:67;15791:2;15786:3;15727:67;:::i;:::-;15720:74;;15803:93;15892:3;15803:93;:::i;:::-;15921:2;15916:3;15912:12;15905:19;;15564:366;;;:::o;15936:419::-;16102:4;16140:2;16129:9;16125:18;16117:26;;16189:9;16183:4;16179:20;16175:1;16164:9;16160:17;16153:47;16217:131;16343:4;16217:131;:::i;:::-;16209:139;;15936:419;;;:::o;16361:191::-;16401:3;16420:20;16438:1;16420:20;:::i;:::-;16415:25;;16454:20;16472:1;16454:20;:::i;:::-;16449:25;;16497:1;16494;16490:9;16483:16;;16518:3;16515:1;16512:10;16509:36;;;16525:18;;:::i;:::-;16509:36;16361:191;;;;:::o;16558:176::-;16698:28;16694:1;16686:6;16682:14;16675:52;16558:176;:::o;16740:366::-;16882:3;16903:67;16967:2;16962:3;16903:67;:::i;:::-;16896:74;;16979:93;17068:3;16979:93;:::i;:::-;17097:2;17092:3;17088:12;17081:19;;16740:366;;;:::o;17112:419::-;17278:4;17316:2;17305:9;17301:18;17293:26;;17365:9;17359:4;17355:20;17351:1;17340:9;17336:17;17329:47;17393:131;17519:4;17393:131;:::i;:::-;17385:139;;17112:419;;;:::o;17537:180::-;17585:77;17582:1;17575:88;17682:4;17679:1;17672:15;17706:4;17703:1;17696:15;17723:233;17762:3;17785:24;17803:5;17785:24;:::i;:::-;17776:33;;17831:66;17824:5;17821:77;17818:103;;17901:18;;:::i;:::-;17818:103;17948:1;17941:5;17937:13;17930:20;;17723:233;;;:::o;17962:172::-;18102:24;18098:1;18090:6;18086:14;18079:48;17962:172;:::o;18140:366::-;18282:3;18303:67;18367:2;18362:3;18303:67;:::i;:::-;18296:74;;18379:93;18468:3;18379:93;:::i;:::-;18497:2;18492:3;18488:12;18481:19;;18140:366;;;:::o;18512:419::-;18678:4;18716:2;18705:9;18701:18;18693:26;;18765:9;18759:4;18755:20;18751:1;18740:9;18736:17;18729:47;18793:131;18919:4;18793:131;:::i;:::-;18785:139;;18512:419;;;:::o;18937:223::-;19077:34;19073:1;19065:6;19061:14;19054:58;19146:6;19141:2;19133:6;19129:15;19122:31;18937:223;:::o;19166:366::-;19308:3;19329:67;19393:2;19388:3;19329:67;:::i;:::-;19322:74;;19405:93;19494:3;19405:93;:::i;:::-;19523:2;19518:3;19514:12;19507:19;;19166:366;;;:::o;19538:419::-;19704:4;19742:2;19731:9;19727:18;19719:26;;19791:9;19785:4;19781:20;19777:1;19766:9;19762:17;19755:47;19819:131;19945:4;19819:131;:::i;:::-;19811:139;;19538:419;;;:::o;19963:221::-;20103:34;20099:1;20091:6;20087:14;20080:58;20172:4;20167:2;20159:6;20155:15;20148:29;19963:221;:::o;20190:366::-;20332:3;20353:67;20417:2;20412:3;20353:67;:::i;:::-;20346:74;;20429:93;20518:3;20429:93;:::i;:::-;20547:2;20542:3;20538:12;20531:19;;20190:366;;;:::o;20562:419::-;20728:4;20766:2;20755:9;20751:18;20743:26;;20815:9;20809:4;20805:20;20801:1;20790:9;20786:17;20779:47;20843:131;20969:4;20843:131;:::i;:::-;20835:139;;20562:419;;;:::o;20987:224::-;21127:34;21123:1;21115:6;21111:14;21104:58;21196:7;21191:2;21183:6;21179:15;21172:32;20987:224;:::o;21217:366::-;21359:3;21380:67;21444:2;21439:3;21380:67;:::i;:::-;21373:74;;21456:93;21545:3;21456:93;:::i;:::-;21574:2;21569:3;21565:12;21558:19;;21217:366;;;:::o;21589:419::-;21755:4;21793:2;21782:9;21778:18;21770:26;;21842:9;21836:4;21832:20;21828:1;21817:9;21813:17;21806:47;21870:131;21996:4;21870:131;:::i;:::-;21862:139;;21589:419;;;:::o;22014:166::-;22154:18;22150:1;22142:6;22138:14;22131:42;22014:166;:::o;22186:366::-;22328:3;22349:67;22413:2;22408:3;22349:67;:::i;:::-;22342:74;;22425:93;22514:3;22425:93;:::i;:::-;22543:2;22538:3;22534:12;22527:19;;22186:366;;;:::o;22558:419::-;22724:4;22762:2;22751:9;22747:18;22739:26;;22811:9;22805:4;22801:20;22797:1;22786:9;22782:17;22775:47;22839:131;22965:4;22839:131;:::i;:::-;22831:139;;22558:419;;;:::o;22983:221::-;23123:34;23119:1;23111:6;23107:14;23100:58;23192:4;23187:2;23179:6;23175:15;23168:29;22983:221;:::o;23210:366::-;23352:3;23373:67;23437:2;23432:3;23373:67;:::i;:::-;23366:74;;23449:93;23538:3;23449:93;:::i;:::-;23567:2;23562:3;23558:12;23551:19;;23210:366;;;:::o;23582:419::-;23748:4;23786:2;23775:9;23771:18;23763:26;;23835:9;23829:4;23825:20;23821:1;23810:9;23806:17;23799:47;23863:131;23989:4;23863:131;:::i;:::-;23855:139;;23582:419;;;:::o;24007:176::-;24147:28;24143:1;24135:6;24131:14;24124:52;24007:176;:::o;24189:366::-;24331:3;24352:67;24416:2;24411:3;24352:67;:::i;:::-;24345:74;;24428:93;24517:3;24428:93;:::i;:::-;24546:2;24541:3;24537:12;24530:19;;24189:366;;;:::o;24561:419::-;24727:4;24765:2;24754:9;24750:18;24742:26;;24814:9;24808:4;24804:20;24800:1;24789:9;24785:17;24778:47;24842:131;24968:4;24842:131;:::i;:::-;24834:139;;24561:419;;;:::o;24986:180::-;25034:77;25031:1;25024:88;25131:4;25128:1;25121:15;25155:4;25152:1;25145:15;25172:185;25212:1;25229:20;25247:1;25229:20;:::i;:::-;25224:25;;25263:20;25281:1;25263:20;:::i;:::-;25258:25;;25302:1;25292:35;;25307:18;;:::i;:::-;25292:35;25349:1;25346;25342:9;25337:14;;25172:185;;;;:::o;25363:180::-;25411:77;25408:1;25401:88;25508:4;25505:1;25498:15;25532:4;25529:1;25522:15;25549:85;25594:7;25623:5;25612:16;;25549:85;;;:::o;25640:60::-;25668:3;25689:5;25682:12;;25640:60;;;:::o;25706:158::-;25764:9;25797:61;25815:42;25824:32;25850:5;25824:32;:::i;:::-;25815:42;:::i;:::-;25797:61;:::i;:::-;25784:74;;25706:158;;;:::o;25870:147::-;25965:45;26004:5;25965:45;:::i;:::-;25960:3;25953:58;25870:147;;:::o;26023:114::-;26090:6;26124:5;26118:12;26108:22;;26023:114;;;:::o;26143:184::-;26242:11;26276:6;26271:3;26264:19;26316:4;26311:3;26307:14;26292:29;;26143:184;;;;:::o;26333:132::-;26400:4;26423:3;26415:11;;26453:4;26448:3;26444:14;26436:22;;26333:132;;;:::o;26471:108::-;26548:24;26566:5;26548:24;:::i;:::-;26543:3;26536:37;26471:108;;:::o;26585:179::-;26654:10;26675:46;26717:3;26709:6;26675:46;:::i;:::-;26753:4;26748:3;26744:14;26730:28;;26585:179;;;;:::o;26770:113::-;26840:4;26872;26867:3;26863:14;26855:22;;26770:113;;;:::o;26919:732::-;27038:3;27067:54;27115:5;27067:54;:::i;:::-;27137:86;27216:6;27211:3;27137:86;:::i;:::-;27130:93;;27247:56;27297:5;27247:56;:::i;:::-;27326:7;27357:1;27342:284;27367:6;27364:1;27361:13;27342:284;;;27443:6;27437:13;27470:63;27529:3;27514:13;27470:63;:::i;:::-;27463:70;;27556:60;27609:6;27556:60;:::i;:::-;27546:70;;27402:224;27389:1;27386;27382:9;27377:14;;27342:284;;;27346:14;27642:3;27635:10;;27043:608;;;26919:732;;;;:::o;27657:142::-;27707:9;27740:53;27758:34;27767:24;27785:5;27767:24;:::i;:::-;27758:34;:::i;:::-;27740:53;:::i;:::-;27727:66;;27657:142;;;:::o;27805:126::-;27855:9;27888:37;27919:5;27888:37;:::i;:::-;27875:50;;27805:126;;;:::o;27937:134::-;27995:9;28028:37;28059:5;28028:37;:::i;:::-;28015:50;;27937:134;;;:::o;28077:147::-;28172:45;28211:5;28172:45;:::i;:::-;28167:3;28160:58;28077:147;;:::o;28230:847::-;28501:4;28539:3;28528:9;28524:19;28516:27;;28553:71;28621:1;28610:9;28606:17;28597:6;28553:71;:::i;:::-;28634:80;28710:2;28699:9;28695:18;28686:6;28634:80;:::i;:::-;28761:9;28755:4;28751:20;28746:2;28735:9;28731:18;28724:48;28789:108;28892:4;28883:6;28789:108;:::i;:::-;28781:116;;28907:80;28983:2;28972:9;28968:18;28959:6;28907:80;:::i;:::-;28997:73;29065:3;29054:9;29050:19;29041:6;28997:73;:::i;:::-;28230:847;;;;;;;;:::o;29083:831::-;29346:4;29384:3;29373:9;29369:19;29361:27;;29398:71;29466:1;29455:9;29451:17;29442:6;29398:71;:::i;:::-;29479:80;29555:2;29544:9;29540:18;29531:6;29479:80;:::i;:::-;29606:9;29600:4;29596:20;29591:2;29580:9;29576:18;29569:48;29634:108;29737:4;29728:6;29634:108;:::i;:::-;29626:116;;29752:72;29820:2;29809:9;29805:18;29796:6;29752:72;:::i;:::-;29834:73;29902:3;29891:9;29887:19;29878:6;29834:73;:::i;:::-;29083:831;;;;;;;;:::o;29920:807::-;30169:4;30207:3;30196:9;30192:19;30184:27;;30221:71;30289:1;30278:9;30274:17;30265:6;30221:71;:::i;:::-;30302:72;30370:2;30359:9;30355:18;30346:6;30302:72;:::i;:::-;30384:80;30460:2;30449:9;30445:18;30436:6;30384:80;:::i;:::-;30474;30550:2;30539:9;30535:18;30526:6;30474:80;:::i;:::-;30564:73;30632:3;30621:9;30617:19;30608:6;30564:73;:::i;:::-;30647;30715:3;30704:9;30700:19;30691:6;30647:73;:::i;:::-;29920:807;;;;;;;;;:::o;30733:143::-;30790:5;30821:6;30815:13;30806:22;;30837:33;30864:5;30837:33;:::i;:::-;30733:143;;;;:::o;30882:663::-;30970:6;30978;30986;31035:2;31023:9;31014:7;31010:23;31006:32;31003:119;;;31041:79;;:::i;:::-;31003:119;31161:1;31186:64;31242:7;31233:6;31222:9;31218:22;31186:64;:::i;:::-;31176:74;;31132:128;31299:2;31325:64;31381:7;31372:6;31361:9;31357:22;31325:64;:::i;:::-;31315:74;;31270:129;31438:2;31464:64;31520:7;31511:6;31500:9;31496:22;31464:64;:::i;:::-;31454:74;;31409:129;30882:663;;;;;:::o;31551:225::-;31691:34;31687:1;31679:6;31675:14;31668:58;31760:8;31755:2;31747:6;31743:15;31736:33;31551:225;:::o;31782:366::-;31924:3;31945:67;32009:2;32004:3;31945:67;:::i;:::-;31938:74;;32021:93;32110:3;32021:93;:::i;:::-;32139:2;32134:3;32130:12;32123:19;;31782:366;;;:::o;32154:419::-;32320:4;32358:2;32347:9;32343:18;32335:26;;32407:9;32401:4;32397:20;32393:1;32382:9;32378:17;32371:47;32435:131;32561:4;32435:131;:::i;:::-;32427:139;;32154:419;;;:::o
Swarm Source
ipfs://3401db7bf6814e868fb7696a9f57972b17b7fa2be8eaf62bcb198d02955a1bcf
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.