ERC-20
Overview
Max Total Supply
100,000 EOE
Holders
47
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
41.432478012 EOEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ELEGY
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-16 */ // // Elegy Of Existence $EOE is a cryptocurrency that was created due to the current state of the world. // A world that is being broken down by economic crisis, war and pandemic. Year 2020 marked the beginning of a disastrous period in the history of humanity. // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.17; library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract ELEGY is Context, IERC20, Ownable { using Address for address payable; IRouter public router; address public pair; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; mapping (address => bool) public _isExcludedFromMaxBalance; mapping (address => bool) public _isBlacklisted; mapping (address => uint) public _degenSellTime; uint public _fTimer; uint private _wDuration = 180; uint private _degenSellTimeOffset = 3; uint8 private constant _decimals = 9; uint256 private _tTotal = 100_000 * (10**_decimals); uint256 private _swapThreshold = 200 * (10**_decimals); uint256 public maxTxAmount = 2_000 * (10**_decimals); uint256 public maxWallet = 2_000 * (10**_decimals); string private constant _name = "Elegy Of Existence"; string private constant _symbol = "EOE"; struct Tax{ uint8 operationTax; uint8 marketingTax; uint8 devTax; uint8 lpTax; } struct TokensFromTax{ uint operationTokens; uint marketingTokens; uint devTokens; uint lpTokens; } TokensFromTax public totalTokensFromTax; Tax public buyTax = Tax(1,1,1,1); Tax public sellTax = Tax(1,1,1,1); address private operationWallet = 0x6398944CB4bDc0dcC59Cbf329D9cC37d4f84E0e1; address private marketingWallet = 0x6701e3D1aA2d6De36e1C9c672E4F91a9eA5aE0e2; address private devWallet = 0x32b5ca9018c5e335796C2E6b15783ee422fF5E0e; bool private swapping; uint private _swapCooldown = 5; uint private _lastSwap; modifier lockTheSwap { swapping = true; _; swapping = false; } constructor () { _tOwned[_msgSender()] = _tTotal; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; _approve(address(this), address(router), ~uint256(0)); _approve(owner(), address(router), ~uint256(0)); //exclude owner and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromFee[devWallet] = true; _isExcludedFromMaxBalance[owner()] = true; _isExcludedFromMaxBalance[address(this)] = true; _isExcludedFromMaxBalance[pair] = true; _isExcludedFromMaxBalance[marketingWallet] = true; _isExcludedFromMaxBalance[devWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } // ================= ERC20 =============== // function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); 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); } receive() external payable {} // ========================================== // // ============ View Functions ============== // function taxWallets() public view returns(address operation,address marketing,address developer){ return(operationWallet,marketingWallet,devWallet); } //======================================// //============== Owner Functions ===========// function owner_setExcludedFromFee(address account,bool isExcluded) public onlyOwner { _isExcludedFromFee[account] = isExcluded; } function owner_setExcludedFromMaxBalance(address account,bool isExcluded) public onlyOwner { _isExcludedFromMaxBalance[account] = isExcluded; } function owner_setBlacklisted(address account, bool isBlacklisted) public onlyOwner{ _isBlacklisted[account] = isBlacklisted; } function owner_setBulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i =0; i < accounts.length; i++){ _isBlacklisted[accounts[i]] = state; } } function owner_setBuyTaxes(uint8 operationTax, uint8 marketingTax, uint8 devTax, uint8 lpTax) external onlyOwner{ uint tTax = operationTax + marketingTax + devTax + lpTax; require(tTax <= 20, "Can't set tax too high"); buyTax = Tax(operationTax,marketingTax,devTax,lpTax); emit TaxesChanged(); } function owner_setSellTaxes(uint8 operationTax, uint8 marketingTax, uint8 devTax, uint8 lpTax) external onlyOwner{ uint tTax = operationTax + marketingTax + devTax + lpTax; require(tTax <= 30, "Can't set tax too high"); sellTax = Tax(operationTax,marketingTax,devTax,lpTax); emit TaxesChanged(); } function owner_setTransferMaxes(uint maxTX_EXACT, uint maxWallet_EXACT) public onlyOwner{ uint pointFiveSupply = (_tTotal * 5 / 1000) / (10**_decimals); require(maxTX_EXACT >= pointFiveSupply && maxWallet_EXACT >= pointFiveSupply, "Invalid Settings"); maxTxAmount = maxTX_EXACT * (10**_decimals); maxWallet = maxWallet_EXACT * (10**_decimals); } function owner_setSwapAndLiquifySettings(uint swapthreshold_EXACT, uint swapCooldown_) public onlyOwner{ _swapThreshold = swapthreshold_EXACT * (10**_decimals); _swapCooldown = swapCooldown_; } function owner_rescueBNB(uint256 weiAmount) public onlyOwner{ require(address(this).balance >= weiAmount, "Insufficient ETH balance"); payable(msg.sender).transfer(weiAmount); } function owner_rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount_EXACT, uint _decimal) public onlyOwner { IERC20(_tokenAddr).transfer(_to, _amount_EXACT *10**_decimal); } function owner_setWallets( address newOperationWallet,address newMarketingWallet, address newDevWallet) public onlyOwner{ operationWallet = newOperationWallet; marketingWallet = newMarketingWallet; devWallet = newDevWallet; } function owner_initializeWatchDog() external onlyOwner{ _fTimer = block.timestamp + _wDuration; } function owner_setDegenSellTimeForAddress(address holder, uint dTime) external onlyOwner{ _degenSellTime[holder] = block.timestamp + dTime; } // ========================================// function _getTaxValues(uint amount, address from, bool isSell) private returns(uint256){ Tax memory tmpTaxes = buyTax; if (isSell){ tmpTaxes = sellTax; } uint tokensForOperation = amount * tmpTaxes.operationTax / 100; uint tokensForMarketing = amount * tmpTaxes.marketingTax / 100; uint tokensForDev = amount * tmpTaxes.devTax / 100; uint tokensForLP = amount * tmpTaxes.lpTax / 100; if(tokensForOperation > 0) totalTokensFromTax.operationTokens += tokensForOperation; if(tokensForMarketing > 0) totalTokensFromTax.marketingTokens += tokensForMarketing; if(tokensForDev > 0) totalTokensFromTax.devTokens += tokensForDev; if(tokensForLP > 0) totalTokensFromTax.lpTokens += tokensForLP; uint totalTaxedTokens = tokensForOperation + tokensForMarketing + tokensForDev + tokensForLP; _tOwned[address(this)] += totalTaxedTokens; if(totalTaxedTokens > 0) emit Transfer (from, address(this), totalTaxedTokens); return (amount - totalTaxedTokens); } function _transfer(address from,address to,uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= maxTxAmount || _isExcludedFromMaxBalance[from], "Transfer amount exceeds the _maxTxAmount."); require(!_isBlacklisted[from] && !_isBlacklisted[to], "Blacklisted, can't trade"); if(!_isExcludedFromMaxBalance[to]) require(balanceOf(to) + amount <= maxWallet, "Transfer amount exceeds the maxWallet."); if (balanceOf(address(this)) >= _swapThreshold && block.timestamp >= (_lastSwap + _swapCooldown) && !swapping && from != pair && from != owner() && to != owner()) swapAndLiquify(); _tOwned[from] -= amount; uint256 transferAmount = amount; if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ transferAmount = _getTaxValues(amount, from, to == pair); if (from == pair && _fTimer >= block.timestamp){ _degenSellTime[to] = block.timestamp + _degenSellTimeOffset; }else{ if (_degenSellTime[from] != 0) require(block.timestamp < _degenSellTime[from]); } } _tOwned[to] += transferAmount; emit Transfer(from, to, transferAmount); } function swapAndLiquify() private lockTheSwap{ uint256 totalTokensForSwap = totalTokensFromTax.operationTokens+totalTokensFromTax.marketingTokens+totalTokensFromTax.devTokens; if(totalTokensForSwap > 0){ uint256 bnbSwapped = swapTokensForBNB(totalTokensForSwap); uint256 bnbForOperation = bnbSwapped * totalTokensFromTax.operationTokens / totalTokensForSwap; uint256 bnbForMarketing = bnbSwapped * totalTokensFromTax.marketingTokens / totalTokensForSwap; uint256 bnbForDev = bnbSwapped * totalTokensFromTax.devTokens / totalTokensForSwap; if(bnbForOperation > 0){ payable(operationWallet).transfer(bnbForOperation); totalTokensFromTax.operationTokens = 0; } if(bnbForMarketing > 0){ payable(marketingWallet).transfer(bnbForMarketing); totalTokensFromTax.marketingTokens = 0; } if(bnbForDev > 0){ payable(devWallet).transfer(bnbForDev); totalTokensFromTax.devTokens = 0; } } if(totalTokensFromTax.lpTokens > 0){ uint half = totalTokensFromTax.lpTokens / 2; uint otherHalf = totalTokensFromTax.lpTokens - half; uint balAutoLP = swapTokensForBNB(half); if (balAutoLP > 0) addLiquidity(otherHalf, balAutoLP); totalTokensFromTax.lpTokens = 0; } emit SwapAndLiquify(); _lastSwap = block.timestamp; } function swapTokensForBNB(uint256 tokenAmount) private returns (uint256) { uint256 initialBalance = address(this).balance; // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); return (address(this).balance - initialBalance); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity (,uint256 ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} ( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); if (ethAmount - ethFromLiquidity > 0) payable(marketingWallet).sendValue (ethAmount - ethFromLiquidity); } event SwapAndLiquify(); event TaxesChanged(); }
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":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","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":"","type":"address"}],"name":"_degenSellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"operationTax","type":"uint8"},{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"devTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner_initializeWatchDog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount_EXACT","type":"uint256"},{"internalType":"uint256","name":"_decimal","type":"uint256"}],"name":"owner_rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"owner_rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"owner_setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"owner_setBulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"operationTax","type":"uint8"},{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"devTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"name":"owner_setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"dTime","type":"uint256"}],"name":"owner_setDegenSellTimeForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"owner_setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"owner_setExcludedFromMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"operationTax","type":"uint8"},{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"devTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"name":"owner_setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapthreshold_EXACT","type":"uint256"},{"internalType":"uint256","name":"swapCooldown_","type":"uint256"}],"name":"owner_setSwapAndLiquifySettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTX_EXACT","type":"uint256"},{"internalType":"uint256","name":"maxWallet_EXACT","type":"uint256"}],"name":"owner_setTransferMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperationWallet","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"owner_setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"operationTax","type":"uint8"},{"internalType":"uint8","name":"marketingTax","type":"uint8"},{"internalType":"uint8","name":"devTax","type":"uint8"},{"internalType":"uint8","name":"lpTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxWallets","outputs":[{"internalType":"address","name":"operation","type":"address"},{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"developer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensFromTax","outputs":[{"internalType":"uint256","name":"operationTokens","type":"uint256"},{"internalType":"uint256","name":"marketingTokens","type":"uint256"},{"internalType":"uint256","name":"devTokens","type":"uint256"},{"internalType":"uint256","name":"lpTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260b4600a556003600b556009600a6200001e919062000ed1565b620186a06200002e919062000f22565b600c556009600a62000041919062000ed1565b60c86200004f919062000f22565b600d556009600a62000062919062000ed1565b6107d062000071919062000f22565b600e556009600a62000084919062000ed1565b6107d062000093919062000f22565b600f556040518060800160405280600160ff168152602001600160ff168152602001600160ff168152602001600160ff16815250601460008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555050506040518060800160405280600160ff168152602001600160ff168152602001600160ff168152602001600160ff16815250601560008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff1602179055505050736398944cb4bdc0dcc59cbf329d9cc37d4f84e0e1601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736701e3d1aa2d6de36e1c9c672e4f91a9ea5ae0e2601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507332b5ca9018c5e335796c2e6b15783ee422ff5e0e601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060056019553480156200031957600080fd5b506200033a6200032e62000a7160201b60201c565b62000a7960201b60201c565b600c54600360006200035162000a7160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041c919062000fd7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000484573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004aa919062000fd7565b6040518363ffffffff1660e01b8152600401620004c99291906200101a565b6020604051808303816000875af1158015620004e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050f919062000fd7565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005ca30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660001962000b3d60201b60201c565b62000610620005de62000d0e60201b60201c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660001962000b3d60201b60201c565b6001600560006200062662000d0e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620007d962000d0e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000a0062000a7160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c5460405162000a61919062001058565b60405180910390a35050620011b6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000baf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ba690620010fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c189062001194565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d01919062001058565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000dc55780860481111562000d9d5762000d9c62000d37565b5b600185161562000dad5780820291505b808102905062000dbd8562000d66565b945062000d7d565b94509492505050565b60008262000de0576001905062000eb3565b8162000df0576000905062000eb3565b816001811462000e09576002811462000e145762000e4a565b600191505062000eb3565b60ff84111562000e295762000e2862000d37565b5b8360020a91508482111562000e435762000e4262000d37565b5b5062000eb3565b5060208310610133831016604e8410600b841016171562000e845782820a90508381111562000e7e5762000e7d62000d37565b5b62000eb3565b62000e93848484600162000d73565b9250905081840481111562000ead5762000eac62000d37565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ede8262000eba565b915062000eeb8362000ec4565b925062000f1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dce565b905092915050565b600062000f2f8262000eba565b915062000f3c8362000eba565b925082820262000f4c8162000eba565b9150828204841483151762000f665762000f6562000d37565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f9f8262000f72565b9050919050565b62000fb18162000f92565b811462000fbd57600080fd5b50565b60008151905062000fd18162000fa6565b92915050565b60006020828403121562000ff05762000fef62000f6d565b5b6000620010008482850162000fc0565b91505092915050565b620010148162000f92565b82525050565b600060408201905062001031600083018562001009565b62001040602083018462001009565b9392505050565b620010528162000eba565b82525050565b60006020820190506200106f600083018462001047565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620010e460248362001075565b9150620010f18262001086565b604082019050919050565b600060208201905081810360008301526200111781620010d5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200117c60228362001075565b915062001189826200111e565b604082019050919050565b60006020820190508181036000830152620011af816200116d565b9050919050565b614ae280620011c66000396000f3fe60806040526004361061023f5760003560e01c80638da5cb5b1161012e578063cfe9dde0116100ab578063f2fde38b1161006f578063f2fde38b146108bc578063f837ae07146108e5578063f887ea401461090e578063f8b45b0514610939578063f9d0ee941461096457610246565b8063cfe9dde0146107db578063d14aae6614610804578063dd62ed3e1461082d578063e27e65881461086a578063e4b994091461089357610246565b8063a9059cbb116100f2578063a9059cbb146106df578063b72a47341461071c578063ca1c81ae14610745578063cc1776d314610782578063cdcfa74a146107b057610246565b80638da5cb5b146105f8578063921cacef1461062357806395d89b411461064c578063a457c2d714610677578063a8aa1b31146106b457610246565b80634f7041a5116101bc57806370d8da531161018057806370d8da5314610527578063715018a614610550578063768dc710146105675780638305e2e3146105a45780638c0b5e22146105cd57610246565b80634f7041a51461044f578063610ec8231461047d578063698f6983146104aa5780636a49ccbb146104c157806370a08231146104ea57610246565b806323b872dd1161020357806323b872dd1461034457806328c61f4114610381578063313ce567146103be57806339509351146103e95780634ba422bc1461042657610246565b806306fdde031461024b578063095ea7b31461027657806318160ddd146102b35780631cdd3be3146102de5780631e17989e1461031b57610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610992565b60405161026d91906134b5565b60405180910390f35b34801561028257600080fd5b5061029d6004803603810190610298919061357f565b6109cf565b6040516102aa91906135da565b60405180910390f35b3480156102bf57600080fd5b506102c86109ed565b6040516102d59190613604565b60405180910390f35b3480156102ea57600080fd5b506103056004803603810190610300919061361f565b6109f7565b60405161031291906135da565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d9190613678565b610a17565b005b34801561035057600080fd5b5061036b600480360381019061036691906136b8565b610aee565b60405161037891906135da565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a3919061361f565b610ba6565b6040516103b591906135da565b60405180910390f35b3480156103ca57600080fd5b506103d3610bc6565b6040516103e09190613727565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b919061357f565b610bcf565b60405161041d91906135da565b60405180910390f35b34801561043257600080fd5b5061044d60048036038101906104489190613742565b610c7b565b005b34801561045b57600080fd5b50610464610dc1565b6040516104749493929190613782565b60405180910390f35b34801561048957600080fd5b50610492610e13565b6040516104a1939291906137d6565b60405180910390f35b3480156104b657600080fd5b506104bf610e8c565b005b3480156104cd57600080fd5b506104e860048036038101906104e39190613839565b610f1e565b005b3480156104f657600080fd5b50610511600480360381019061050c919061361f565b6110f0565b60405161051e9190613604565b60405180910390f35b34801561053357600080fd5b5061054e60048036038101906105499190613742565b611139565b005b34801561055c57600080fd5b506105656111df565b005b34801561057357600080fd5b5061058e6004803603810190610589919061361f565b611267565b60405161059b91906135da565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c691906138a0565b611287565b005b3480156105d957600080fd5b506105e2611390565b6040516105ef9190613604565b60405180910390f35b34801561060457600080fd5b5061060d611396565b60405161061a91906138cd565b60405180910390f35b34801561062f57600080fd5b5061064a600480360381019061064591906138e8565b6113bf565b005b34801561065857600080fd5b50610661611503565b60405161066e91906134b5565b60405180910390f35b34801561068357600080fd5b5061069e6004803603810190610699919061357f565b611540565b6040516106ab91906135da565b60405180910390f35b3480156106c057600080fd5b506106c96115ec565b6040516106d691906138cd565b60405180910390f35b3480156106eb57600080fd5b506107066004803603810190610701919061357f565b611612565b60405161071391906135da565b60405180910390f35b34801561072857600080fd5b50610743600480360381019061073e9190613678565b611630565b005b34801561075157600080fd5b5061076c6004803603810190610767919061361f565b611707565b6040516107799190613604565b60405180910390f35b34801561078e57600080fd5b5061079761171f565b6040516107a79493929190613782565b60405180910390f35b3480156107bc57600080fd5b506107c5611771565b6040516107d29190613604565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd9190613a83565b611777565b005b34801561081057600080fd5b5061082b60048036038101906108269190613839565b611888565b005b34801561083957600080fd5b50610854600480360381019061084f9190613adf565b611a5a565b6040516108619190613604565b60405180910390f35b34801561087657600080fd5b50610891600480360381019061088c919061357f565b611ae1565b005b34801561089f57600080fd5b506108ba60048036038101906108b59190613b1f565b611bb0565b005b3480156108c857600080fd5b506108e360048036038101906108de919061361f565b611cc8565b005b3480156108f157600080fd5b5061090c60048036038101906109079190613678565b611dbf565b005b34801561091a57600080fd5b50610923611e96565b6040516109309190613be5565b60405180910390f35b34801561094557600080fd5b5061094e611ebc565b60405161095b9190613604565b60405180910390f35b34801561097057600080fd5b50610979611ec2565b6040516109899493929190613c00565b60405180910390f35b60606040518060400160405280601281526020017f456c656779204f66204578697374656e63650000000000000000000000000000815250905090565b60006109e36109dc611ee0565b8484611ee8565b6001905092915050565b6000600c54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b610a1f611ee0565b73ffffffffffffffffffffffffffffffffffffffff16610a3d611396565b73ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90613c91565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610afb8484846120b1565b610b9b84610b07611ee0565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b51611ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b969190613ce0565b611ee8565b600190509392505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b6000610c71610bdc611ee0565b848460046000610bea611ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6c9190613d14565b611ee8565b6001905092915050565b610c83611ee0565b73ffffffffffffffffffffffffffffffffffffffff16610ca1611396565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90613c91565b60405180910390fd5b60006009600a610d079190613e7b565b6103e86005600c54610d199190613ec6565b610d239190613f37565b610d2d9190613f37565b9050808310158015610d3f5750808210155b610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590613fb4565b60405180910390fd5b6009600a610d8c9190613e7b565b83610d979190613ec6565b600e819055506009600a610dab9190613e7b565b82610db69190613ec6565b600f81905550505050565b60148060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16905084565b6000806000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925092509250909192565b610e94611ee0565b73ffffffffffffffffffffffffffffffffffffffff16610eb2611396565b73ffffffffffffffffffffffffffffffffffffffff1614610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff90613c91565b60405180910390fd5b600a5442610f169190613d14565b600981905550565b610f26611ee0565b73ffffffffffffffffffffffffffffffffffffffff16610f44611396565b73ffffffffffffffffffffffffffffffffffffffff1614610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9190613c91565b60405180910390fd5b600081838587610faa9190613fd4565b610fb49190613fd4565b610fbe9190613fd4565b60ff1690506014811115611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90614055565b60405180910390fd5b60405180608001604052808660ff1681526020018560ff1681526020018460ff1681526020018360ff16815250601460008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a15050505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611141611ee0565b73ffffffffffffffffffffffffffffffffffffffff1661115f611396565b73ffffffffffffffffffffffffffffffffffffffff16146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac90613c91565b60405180910390fd5b6009600a6111c39190613e7b565b826111ce9190613ec6565b600d81905550806019819055505050565b6111e7611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611205611396565b73ffffffffffffffffffffffffffffffffffffffff161461125b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125290613c91565b60405180910390fd5b6112656000612891565b565b60056020528060005260406000206000915054906101000a900460ff1681565b61128f611ee0565b73ffffffffffffffffffffffffffffffffffffffff166112ad611396565b73ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90613c91565b60405180910390fd5b80471015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d906140c1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561138c573d6000803e3d6000fd5b5050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113c7611ee0565b73ffffffffffffffffffffffffffffffffffffffff166113e5611396565b73ffffffffffffffffffffffffffffffffffffffff161461143b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143290613c91565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60606040518060400160405280600381526020017f454f450000000000000000000000000000000000000000000000000000000000815250905090565b60006115e261154d611ee0565b84846004600061155b611ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115dd9190613ce0565b611ee8565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061162661161f611ee0565b84846120b1565b6001905092915050565b611638611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611656611396565b73ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390613c91565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60086020528060005260406000206000915090505481565b60158060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16905084565b60095481565b61177f611ee0565b73ffffffffffffffffffffffffffffffffffffffff1661179d611396565b73ffffffffffffffffffffffffffffffffffffffff16146117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea90613c91565b60405180910390fd5b60005b8251811015611883578160076000858481518110611817576118166140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061187b90614110565b9150506117f6565b505050565b611890611ee0565b73ffffffffffffffffffffffffffffffffffffffff166118ae611396565b73ffffffffffffffffffffffffffffffffffffffff1614611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb90613c91565b60405180910390fd5b6000818385876119149190613fd4565b61191e9190613fd4565b6119289190613fd4565b60ff169050601e811115611971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196890614055565b60405180910390fd5b60405180608001604052808660ff1681526020018560ff1681526020018460ff1681526020018360ff16815250601560008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a15050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ae9611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611b07611396565b73ffffffffffffffffffffffffffffffffffffffff1614611b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5490613c91565b60405180910390fd5b8042611b699190613d14565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611bb8611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611bd6611396565b73ffffffffffffffffffffffffffffffffffffffff1614611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2390613c91565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8483600a611c569190614158565b85611c619190613ec6565b6040518363ffffffff1660e01b8152600401611c7e9291906141a3565b6020604051808303816000875af1158015611c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc191906141e1565b5050505050565b611cd0611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611cee611396565b73ffffffffffffffffffffffffffffffffffffffff1614611d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3b90613c91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa90614280565b60405180910390fd5b611dbc81612891565b50565b611dc7611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611de5611396565b73ffffffffffffffffffffffffffffffffffffffff1614611e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3290613c91565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60108060000154908060010154908060020154908060030154905084565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4e90614312565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd906143a4565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120a49190613604565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211790614436565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612186906144c8565b60405180910390fd5b600081116121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c99061455a565b60405180910390fd5b600e548111158061222c5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61226b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612262906145ec565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561230f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61234e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234590614658565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123f857600f54816123ac846110f0565b6123b69190613d14565b11156123f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ee906146ea565b60405180910390fd5b5b600d54612404306110f0565b101580156124215750601954601a5461241d9190613d14565b4210155b801561243a5750601860149054906101000a900460ff16155b80156124945750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124d357506124a3611396565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561251257506124e2611396565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125205761251f612955565b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461256f9190613ce0565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561261f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d05761267f8285600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612c49565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126e057504260095410155b1561273b57600b54426126f39190613d14565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127cf565b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146127ce57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442106127cd57600080fd5b5b5b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461281f9190613d14565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128839190613604565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601860146101000a81548160ff021916908315150217905550600060106002015460106001015460106000015461298e9190613d14565b6129989190613d14565b90506000811115612b8f5760006129ae82612f83565b9050600082601060000154836129c49190613ec6565b6129ce9190613f37565b9050600083601060010154846129e49190613ec6565b6129ee9190613f37565b905060008460106002015485612a049190613ec6565b612a0e9190613f37565b90506000831115612a8e57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612a81573d6000803e3d6000fd5b5060006010600001819055505b6000821115612b0c57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612aff573d6000803e3d6000fd5b5060006010600101819055505b6000811115612b8a57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b7d573d6000803e3d6000fd5b5060006010600201819055505b505050505b60006010600301541115612bf85760006002601060030154612bb19190613f37565b9050600081601060030154612bc69190613ce0565b90506000612bd383612f83565b90506000811115612be957612be882826131dd565b5b60006010600301819055505050505b7fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003060405160405180910390a142601a81905550506000601860146101000a81548160ff021916908315150217905550565b60008060146040518060800160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff168152505090508215612d595760156040518060800160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff168152505090505b60006064826000015160ff1687612d709190613ec6565b612d7a9190613f37565b905060006064836020015160ff1688612d939190613ec6565b612d9d9190613f37565b905060006064846040015160ff1689612db69190613ec6565b612dc09190613f37565b905060006064856060015160ff168a612dd99190613ec6565b612de39190613f37565b90506000841115612e0b578360106000016000828254612e039190613d14565b925050819055505b6000831115612e31578260106001016000828254612e299190613d14565b925050819055505b6000821115612e57578160106002016000828254612e4f9190613d14565b925050819055505b6000811115612e7d578060106003016000828254612e759190613d14565b925050819055505b600081838587612e8d9190613d14565b612e979190613d14565b612ea19190613d14565b905080600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ef29190613d14565b925050819055506000811115612f68573073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f5f9190613604565b60405180910390a35b808a612f749190613ce0565b96505050505050509392505050565b6000804790506000600267ffffffffffffffff811115612fa657612fa5613940565b5b604051908082528060200260200182016040528015612fd45781602001602082028036833780820191505090505b5090503081600081518110612fec57612feb6140e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b7919061471f565b816001815181106130cb576130ca6140e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061313230600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611ee8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401613196959493929190614845565b600060405180830381600087803b1580156131b057600080fd5b505af11580156131c4573d6000803e3d6000fd5b5050505081476131d49190613ce0565b92505050919050565b61320a30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ee8565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833086600080613258611396565b426040518863ffffffff1660e01b815260040161327a9695949392919061489f565b60606040518083038185885af1158015613298573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132bd9190614915565b50915050600081836132cf9190613ce0565b111561332c5761332b81836132e49190613ce0565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661333190919063ffffffff16565b5b505050565b80471015613374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336b906149b4565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161339a90614a05565b60006040518083038185875af1925050503d80600081146133d7576040519150601f19603f3d011682016040523d82523d6000602084013e6133dc565b606091505b5050905080613420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341790614a8c565b60405180910390fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561345f578082015181840152602081019050613444565b60008484015250505050565b6000601f19601f8301169050919050565b600061348782613425565b6134918185613430565b93506134a1818560208601613441565b6134aa8161346b565b840191505092915050565b600060208201905081810360008301526134cf818461347c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613516826134eb565b9050919050565b6135268161350b565b811461353157600080fd5b50565b6000813590506135438161351d565b92915050565b6000819050919050565b61355c81613549565b811461356757600080fd5b50565b60008135905061357981613553565b92915050565b60008060408385031215613596576135956134e1565b5b60006135a485828601613534565b92505060206135b58582860161356a565b9150509250929050565b60008115159050919050565b6135d4816135bf565b82525050565b60006020820190506135ef60008301846135cb565b92915050565b6135fe81613549565b82525050565b600060208201905061361960008301846135f5565b92915050565b600060208284031215613635576136346134e1565b5b600061364384828501613534565b91505092915050565b613655816135bf565b811461366057600080fd5b50565b6000813590506136728161364c565b92915050565b6000806040838503121561368f5761368e6134e1565b5b600061369d85828601613534565b92505060206136ae85828601613663565b9150509250929050565b6000806000606084860312156136d1576136d06134e1565b5b60006136df86828701613534565b93505060206136f086828701613534565b92505060406137018682870161356a565b9150509250925092565b600060ff82169050919050565b6137218161370b565b82525050565b600060208201905061373c6000830184613718565b92915050565b60008060408385031215613759576137586134e1565b5b60006137678582860161356a565b92505060206137788582860161356a565b9150509250929050565b60006080820190506137976000830187613718565b6137a46020830186613718565b6137b16040830185613718565b6137be6060830184613718565b95945050505050565b6137d08161350b565b82525050565b60006060820190506137eb60008301866137c7565b6137f860208301856137c7565b61380560408301846137c7565b949350505050565b6138168161370b565b811461382157600080fd5b50565b6000813590506138338161380d565b92915050565b60008060008060808587031215613853576138526134e1565b5b600061386187828801613824565b945050602061387287828801613824565b935050604061388387828801613824565b925050606061389487828801613824565b91505092959194509250565b6000602082840312156138b6576138b56134e1565b5b60006138c48482850161356a565b91505092915050565b60006020820190506138e260008301846137c7565b92915050565b600080600060608486031215613901576139006134e1565b5b600061390f86828701613534565b935050602061392086828701613534565b925050604061393186828701613534565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139788261346b565b810181811067ffffffffffffffff8211171561399757613996613940565b5b80604052505050565b60006139aa6134d7565b90506139b6828261396f565b919050565b600067ffffffffffffffff8211156139d6576139d5613940565b5b602082029050602081019050919050565b600080fd5b60006139ff6139fa846139bb565b6139a0565b90508083825260208201905060208402830185811115613a2257613a216139e7565b5b835b81811015613a4b5780613a378882613534565b845260208401935050602081019050613a24565b5050509392505050565b600082601f830112613a6a57613a6961393b565b5b8135613a7a8482602086016139ec565b91505092915050565b60008060408385031215613a9a57613a996134e1565b5b600083013567ffffffffffffffff811115613ab857613ab76134e6565b5b613ac485828601613a55565b9250506020613ad585828601613663565b9150509250929050565b60008060408385031215613af657613af56134e1565b5b6000613b0485828601613534565b9250506020613b1585828601613534565b9150509250929050565b60008060008060808587031215613b3957613b386134e1565b5b6000613b4787828801613534565b9450506020613b5887828801613534565b9350506040613b698782880161356a565b9250506060613b7a8782880161356a565b91505092959194509250565b6000819050919050565b6000613bab613ba6613ba1846134eb565b613b86565b6134eb565b9050919050565b6000613bbd82613b90565b9050919050565b6000613bcf82613bb2565b9050919050565b613bdf81613bc4565b82525050565b6000602082019050613bfa6000830184613bd6565b92915050565b6000608082019050613c1560008301876135f5565b613c2260208301866135f5565b613c2f60408301856135f5565b613c3c60608301846135f5565b95945050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c7b602083613430565b9150613c8682613c45565b602082019050919050565b60006020820190508181036000830152613caa81613c6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ceb82613549565b9150613cf683613549565b9250828203905081811115613d0e57613d0d613cb1565b5b92915050565b6000613d1f82613549565b9150613d2a83613549565b9250828201905080821115613d4257613d41613cb1565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613d9f57808604811115613d7b57613d7a613cb1565b5b6001851615613d8a5780820291505b8081029050613d9885613d48565b9450613d5f565b94509492505050565b600082613db85760019050613e74565b81613dc65760009050613e74565b8160018114613ddc5760028114613de657613e15565b6001915050613e74565b60ff841115613df857613df7613cb1565b5b8360020a915084821115613e0f57613e0e613cb1565b5b50613e74565b5060208310610133831016604e8410600b8410161715613e4a5782820a905083811115613e4557613e44613cb1565b5b613e74565b613e578484846001613d55565b92509050818404811115613e6e57613e6d613cb1565b5b81810290505b9392505050565b6000613e8682613549565b9150613e918361370b565b9250613ebe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613da8565b905092915050565b6000613ed182613549565b9150613edc83613549565b9250828202613eea81613549565b91508282048414831517613f0157613f00613cb1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f4282613549565b9150613f4d83613549565b925082613f5d57613f5c613f08565b5b828204905092915050565b7f496e76616c69642053657474696e677300000000000000000000000000000000600082015250565b6000613f9e601083613430565b9150613fa982613f68565b602082019050919050565b60006020820190508181036000830152613fcd81613f91565b9050919050565b6000613fdf8261370b565b9150613fea8361370b565b9250828201905060ff81111561400357614002613cb1565b5b92915050565b7f43616e2774207365742074617820746f6f206869676800000000000000000000600082015250565b600061403f601683613430565b915061404a82614009565b602082019050919050565b6000602082019050818103600083015261406e81614032565b9050919050565b7f496e73756666696369656e74204554482062616c616e63650000000000000000600082015250565b60006140ab601883613430565b91506140b682614075565b602082019050919050565b600060208201905081810360008301526140da8161409e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061411b82613549565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361414d5761414c613cb1565b5b600182019050919050565b600061416382613549565b915061416e83613549565b925061419b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613da8565b905092915050565b60006040820190506141b860008301856137c7565b6141c560208301846135f5565b9392505050565b6000815190506141db8161364c565b92915050565b6000602082840312156141f7576141f66134e1565b5b6000614205848285016141cc565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061426a602683613430565b91506142758261420e565b604082019050919050565b600060208201905081810360008301526142998161425d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142fc602483613430565b9150614307826142a0565b604082019050919050565b6000602082019050818103600083015261432b816142ef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061438e602283613430565b915061439982614332565b604082019050919050565b600060208201905081810360008301526143bd81614381565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614420602583613430565b915061442b826143c4565b604082019050919050565b6000602082019050818103600083015261444f81614413565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144b2602383613430565b91506144bd82614456565b604082019050919050565b600060208201905081810360008301526144e1816144a5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614544602983613430565b915061454f826144e8565b604082019050919050565b6000602082019050818103600083015261457381614537565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d617860008201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b60006145d6602983613430565b91506145e18261457a565b604082019050919050565b60006020820190508181036000830152614605816145c9565b9050919050565b7f426c61636b6c69737465642c2063616e27742074726164650000000000000000600082015250565b6000614642601883613430565b915061464d8261460c565b602082019050919050565b6000602082019050818103600083015261467181614635565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c65742e0000000000000000000000000000000000000000000000000000602082015250565b60006146d4602683613430565b91506146df82614678565b604082019050919050565b60006020820190508181036000830152614703816146c7565b9050919050565b6000815190506147198161351d565b92915050565b600060208284031215614735576147346134e1565b5b60006147438482850161470a565b91505092915050565b6000819050919050565b600061477161476c6147678461474c565b613b86565b613549565b9050919050565b61478181614756565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147bc8161350b565b82525050565b60006147ce83836147b3565b60208301905092915050565b6000602082019050919050565b60006147f282614787565b6147fc8185614792565b9350614807836147a3565b8060005b8381101561483857815161481f88826147c2565b975061482a836147da565b92505060018101905061480b565b5085935050505092915050565b600060a08201905061485a60008301886135f5565b6148676020830187614778565b818103604083015261487981866147e7565b905061488860608301856137c7565b61489560808301846135f5565b9695505050505050565b600060c0820190506148b460008301896137c7565b6148c160208301886135f5565b6148ce6040830187614778565b6148db6060830186614778565b6148e860808301856137c7565b6148f560a08301846135f5565b979650505050505050565b60008151905061490f81613553565b92915050565b60008060006060848603121561492e5761492d6134e1565b5b600061493c86828701614900565b935050602061494d86828701614900565b925050604061495e86828701614900565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061499e601d83613430565b91506149a982614968565b602082019050919050565b600060208201905081810360008301526149cd81614991565b9050919050565b600081905092915050565b50565b60006149ef6000836149d4565b91506149fa826149df565b600082019050919050565b6000614a10826149e2565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614a76603a83613430565b9150614a8182614a1a565b604082019050919050565b60006020820190508181036000830152614aa581614a69565b905091905056fea2646970667358221220471ce82c0973ab14050e6af370bdf98842fcfa7eac2d1d036f4c9acd1fa401a064736f6c63430008110033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c80638da5cb5b1161012e578063cfe9dde0116100ab578063f2fde38b1161006f578063f2fde38b146108bc578063f837ae07146108e5578063f887ea401461090e578063f8b45b0514610939578063f9d0ee941461096457610246565b8063cfe9dde0146107db578063d14aae6614610804578063dd62ed3e1461082d578063e27e65881461086a578063e4b994091461089357610246565b8063a9059cbb116100f2578063a9059cbb146106df578063b72a47341461071c578063ca1c81ae14610745578063cc1776d314610782578063cdcfa74a146107b057610246565b80638da5cb5b146105f8578063921cacef1461062357806395d89b411461064c578063a457c2d714610677578063a8aa1b31146106b457610246565b80634f7041a5116101bc57806370d8da531161018057806370d8da5314610527578063715018a614610550578063768dc710146105675780638305e2e3146105a45780638c0b5e22146105cd57610246565b80634f7041a51461044f578063610ec8231461047d578063698f6983146104aa5780636a49ccbb146104c157806370a08231146104ea57610246565b806323b872dd1161020357806323b872dd1461034457806328c61f4114610381578063313ce567146103be57806339509351146103e95780634ba422bc1461042657610246565b806306fdde031461024b578063095ea7b31461027657806318160ddd146102b35780631cdd3be3146102de5780631e17989e1461031b57610246565b3661024657005b600080fd5b34801561025757600080fd5b50610260610992565b60405161026d91906134b5565b60405180910390f35b34801561028257600080fd5b5061029d6004803603810190610298919061357f565b6109cf565b6040516102aa91906135da565b60405180910390f35b3480156102bf57600080fd5b506102c86109ed565b6040516102d59190613604565b60405180910390f35b3480156102ea57600080fd5b506103056004803603810190610300919061361f565b6109f7565b60405161031291906135da565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d9190613678565b610a17565b005b34801561035057600080fd5b5061036b600480360381019061036691906136b8565b610aee565b60405161037891906135da565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a3919061361f565b610ba6565b6040516103b591906135da565b60405180910390f35b3480156103ca57600080fd5b506103d3610bc6565b6040516103e09190613727565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b919061357f565b610bcf565b60405161041d91906135da565b60405180910390f35b34801561043257600080fd5b5061044d60048036038101906104489190613742565b610c7b565b005b34801561045b57600080fd5b50610464610dc1565b6040516104749493929190613782565b60405180910390f35b34801561048957600080fd5b50610492610e13565b6040516104a1939291906137d6565b60405180910390f35b3480156104b657600080fd5b506104bf610e8c565b005b3480156104cd57600080fd5b506104e860048036038101906104e39190613839565b610f1e565b005b3480156104f657600080fd5b50610511600480360381019061050c919061361f565b6110f0565b60405161051e9190613604565b60405180910390f35b34801561053357600080fd5b5061054e60048036038101906105499190613742565b611139565b005b34801561055c57600080fd5b506105656111df565b005b34801561057357600080fd5b5061058e6004803603810190610589919061361f565b611267565b60405161059b91906135da565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c691906138a0565b611287565b005b3480156105d957600080fd5b506105e2611390565b6040516105ef9190613604565b60405180910390f35b34801561060457600080fd5b5061060d611396565b60405161061a91906138cd565b60405180910390f35b34801561062f57600080fd5b5061064a600480360381019061064591906138e8565b6113bf565b005b34801561065857600080fd5b50610661611503565b60405161066e91906134b5565b60405180910390f35b34801561068357600080fd5b5061069e6004803603810190610699919061357f565b611540565b6040516106ab91906135da565b60405180910390f35b3480156106c057600080fd5b506106c96115ec565b6040516106d691906138cd565b60405180910390f35b3480156106eb57600080fd5b506107066004803603810190610701919061357f565b611612565b60405161071391906135da565b60405180910390f35b34801561072857600080fd5b50610743600480360381019061073e9190613678565b611630565b005b34801561075157600080fd5b5061076c6004803603810190610767919061361f565b611707565b6040516107799190613604565b60405180910390f35b34801561078e57600080fd5b5061079761171f565b6040516107a79493929190613782565b60405180910390f35b3480156107bc57600080fd5b506107c5611771565b6040516107d29190613604565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd9190613a83565b611777565b005b34801561081057600080fd5b5061082b60048036038101906108269190613839565b611888565b005b34801561083957600080fd5b50610854600480360381019061084f9190613adf565b611a5a565b6040516108619190613604565b60405180910390f35b34801561087657600080fd5b50610891600480360381019061088c919061357f565b611ae1565b005b34801561089f57600080fd5b506108ba60048036038101906108b59190613b1f565b611bb0565b005b3480156108c857600080fd5b506108e360048036038101906108de919061361f565b611cc8565b005b3480156108f157600080fd5b5061090c60048036038101906109079190613678565b611dbf565b005b34801561091a57600080fd5b50610923611e96565b6040516109309190613be5565b60405180910390f35b34801561094557600080fd5b5061094e611ebc565b60405161095b9190613604565b60405180910390f35b34801561097057600080fd5b50610979611ec2565b6040516109899493929190613c00565b60405180910390f35b60606040518060400160405280601281526020017f456c656779204f66204578697374656e63650000000000000000000000000000815250905090565b60006109e36109dc611ee0565b8484611ee8565b6001905092915050565b6000600c54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b610a1f611ee0565b73ffffffffffffffffffffffffffffffffffffffff16610a3d611396565b73ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90613c91565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610afb8484846120b1565b610b9b84610b07611ee0565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b51611ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b969190613ce0565b611ee8565b600190509392505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b6000610c71610bdc611ee0565b848460046000610bea611ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6c9190613d14565b611ee8565b6001905092915050565b610c83611ee0565b73ffffffffffffffffffffffffffffffffffffffff16610ca1611396565b73ffffffffffffffffffffffffffffffffffffffff1614610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90613c91565b60405180910390fd5b60006009600a610d079190613e7b565b6103e86005600c54610d199190613ec6565b610d239190613f37565b610d2d9190613f37565b9050808310158015610d3f5750808210155b610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590613fb4565b60405180910390fd5b6009600a610d8c9190613e7b565b83610d979190613ec6565b600e819055506009600a610dab9190613e7b565b82610db69190613ec6565b600f81905550505050565b60148060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16905084565b6000806000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925092509250909192565b610e94611ee0565b73ffffffffffffffffffffffffffffffffffffffff16610eb2611396565b73ffffffffffffffffffffffffffffffffffffffff1614610f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eff90613c91565b60405180910390fd5b600a5442610f169190613d14565b600981905550565b610f26611ee0565b73ffffffffffffffffffffffffffffffffffffffff16610f44611396565b73ffffffffffffffffffffffffffffffffffffffff1614610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9190613c91565b60405180910390fd5b600081838587610faa9190613fd4565b610fb49190613fd4565b610fbe9190613fd4565b60ff1690506014811115611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90614055565b60405180910390fd5b60405180608001604052808660ff1681526020018560ff1681526020018460ff1681526020018360ff16815250601460008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a15050505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611141611ee0565b73ffffffffffffffffffffffffffffffffffffffff1661115f611396565b73ffffffffffffffffffffffffffffffffffffffff16146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac90613c91565b60405180910390fd5b6009600a6111c39190613e7b565b826111ce9190613ec6565b600d81905550806019819055505050565b6111e7611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611205611396565b73ffffffffffffffffffffffffffffffffffffffff161461125b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125290613c91565b60405180910390fd5b6112656000612891565b565b60056020528060005260406000206000915054906101000a900460ff1681565b61128f611ee0565b73ffffffffffffffffffffffffffffffffffffffff166112ad611396565b73ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90613c91565b60405180910390fd5b80471015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d906140c1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561138c573d6000803e3d6000fd5b5050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113c7611ee0565b73ffffffffffffffffffffffffffffffffffffffff166113e5611396565b73ffffffffffffffffffffffffffffffffffffffff161461143b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143290613c91565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60606040518060400160405280600381526020017f454f450000000000000000000000000000000000000000000000000000000000815250905090565b60006115e261154d611ee0565b84846004600061155b611ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115dd9190613ce0565b611ee8565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061162661161f611ee0565b84846120b1565b6001905092915050565b611638611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611656611396565b73ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390613c91565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60086020528060005260406000206000915090505481565b60158060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16905084565b60095481565b61177f611ee0565b73ffffffffffffffffffffffffffffffffffffffff1661179d611396565b73ffffffffffffffffffffffffffffffffffffffff16146117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea90613c91565b60405180910390fd5b60005b8251811015611883578160076000858481518110611817576118166140e1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061187b90614110565b9150506117f6565b505050565b611890611ee0565b73ffffffffffffffffffffffffffffffffffffffff166118ae611396565b73ffffffffffffffffffffffffffffffffffffffff1614611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb90613c91565b60405180910390fd5b6000818385876119149190613fd4565b61191e9190613fd4565b6119289190613fd4565b60ff169050601e811115611971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196890614055565b60405180910390fd5b60405180608001604052808660ff1681526020018560ff1681526020018460ff1681526020018360ff16815250601560008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff1602179055509050507ff305e997be174eb1fbb444c89b9f4089de693e9b3b40486accc62ae99885e48060405160405180910390a15050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ae9611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611b07611396565b73ffffffffffffffffffffffffffffffffffffffff1614611b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5490613c91565b60405180910390fd5b8042611b699190613d14565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611bb8611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611bd6611396565b73ffffffffffffffffffffffffffffffffffffffff1614611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2390613c91565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8483600a611c569190614158565b85611c619190613ec6565b6040518363ffffffff1660e01b8152600401611c7e9291906141a3565b6020604051808303816000875af1158015611c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc191906141e1565b5050505050565b611cd0611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611cee611396565b73ffffffffffffffffffffffffffffffffffffffff1614611d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3b90613c91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa90614280565b60405180910390fd5b611dbc81612891565b50565b611dc7611ee0565b73ffffffffffffffffffffffffffffffffffffffff16611de5611396565b73ffffffffffffffffffffffffffffffffffffffff1614611e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3290613c91565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60108060000154908060010154908060020154908060030154905084565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4e90614312565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd906143a4565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120a49190613604565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211790614436565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612186906144c8565b60405180910390fd5b600081116121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c99061455a565b60405180910390fd5b600e548111158061222c5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61226b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612262906145ec565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561230f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61234e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234590614658565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123f857600f54816123ac846110f0565b6123b69190613d14565b11156123f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ee906146ea565b60405180910390fd5b5b600d54612404306110f0565b101580156124215750601954601a5461241d9190613d14565b4210155b801561243a5750601860149054906101000a900460ff16155b80156124945750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124d357506124a3611396565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561251257506124e2611396565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125205761251f612955565b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461256f9190613ce0565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561261f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127d05761267f8285600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612c49565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126e057504260095410155b1561273b57600b54426126f39190613d14565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127cf565b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146127ce57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442106127cd57600080fd5b5b5b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461281f9190613d14565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128839190613604565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601860146101000a81548160ff021916908315150217905550600060106002015460106001015460106000015461298e9190613d14565b6129989190613d14565b90506000811115612b8f5760006129ae82612f83565b9050600082601060000154836129c49190613ec6565b6129ce9190613f37565b9050600083601060010154846129e49190613ec6565b6129ee9190613f37565b905060008460106002015485612a049190613ec6565b612a0e9190613f37565b90506000831115612a8e57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612a81573d6000803e3d6000fd5b5060006010600001819055505b6000821115612b0c57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612aff573d6000803e3d6000fd5b5060006010600101819055505b6000811115612b8a57601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b7d573d6000803e3d6000fd5b5060006010600201819055505b505050505b60006010600301541115612bf85760006002601060030154612bb19190613f37565b9050600081601060030154612bc69190613ce0565b90506000612bd383612f83565b90506000811115612be957612be882826131dd565b5b60006010600301819055505050505b7fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003060405160405180910390a142601a81905550506000601860146101000a81548160ff021916908315150217905550565b60008060146040518060800160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff168152505090508215612d595760156040518060800160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff168152505090505b60006064826000015160ff1687612d709190613ec6565b612d7a9190613f37565b905060006064836020015160ff1688612d939190613ec6565b612d9d9190613f37565b905060006064846040015160ff1689612db69190613ec6565b612dc09190613f37565b905060006064856060015160ff168a612dd99190613ec6565b612de39190613f37565b90506000841115612e0b578360106000016000828254612e039190613d14565b925050819055505b6000831115612e31578260106001016000828254612e299190613d14565b925050819055505b6000821115612e57578160106002016000828254612e4f9190613d14565b925050819055505b6000811115612e7d578060106003016000828254612e759190613d14565b925050819055505b600081838587612e8d9190613d14565b612e979190613d14565b612ea19190613d14565b905080600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ef29190613d14565b925050819055506000811115612f68573073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f5f9190613604565b60405180910390a35b808a612f749190613ce0565b96505050505050509392505050565b6000804790506000600267ffffffffffffffff811115612fa657612fa5613940565b5b604051908082528060200260200182016040528015612fd45781602001602082028036833780820191505090505b5090503081600081518110612fec57612feb6140e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b7919061471f565b816001815181106130cb576130ca6140e1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061313230600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611ee8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401613196959493929190614845565b600060405180830381600087803b1580156131b057600080fd5b505af11580156131c4573d6000803e3d6000fd5b5050505081476131d49190613ce0565b92505050919050565b61320a30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ee8565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833086600080613258611396565b426040518863ffffffff1660e01b815260040161327a9695949392919061489f565b60606040518083038185885af1158015613298573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132bd9190614915565b50915050600081836132cf9190613ce0565b111561332c5761332b81836132e49190613ce0565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661333190919063ffffffff16565b5b505050565b80471015613374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336b906149b4565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161339a90614a05565b60006040518083038185875af1925050503d80600081146133d7576040519150601f19603f3d011682016040523d82523d6000602084013e6133dc565b606091505b5050905080613420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341790614a8c565b60405180910390fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561345f578082015181840152602081019050613444565b60008484015250505050565b6000601f19601f8301169050919050565b600061348782613425565b6134918185613430565b93506134a1818560208601613441565b6134aa8161346b565b840191505092915050565b600060208201905081810360008301526134cf818461347c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613516826134eb565b9050919050565b6135268161350b565b811461353157600080fd5b50565b6000813590506135438161351d565b92915050565b6000819050919050565b61355c81613549565b811461356757600080fd5b50565b60008135905061357981613553565b92915050565b60008060408385031215613596576135956134e1565b5b60006135a485828601613534565b92505060206135b58582860161356a565b9150509250929050565b60008115159050919050565b6135d4816135bf565b82525050565b60006020820190506135ef60008301846135cb565b92915050565b6135fe81613549565b82525050565b600060208201905061361960008301846135f5565b92915050565b600060208284031215613635576136346134e1565b5b600061364384828501613534565b91505092915050565b613655816135bf565b811461366057600080fd5b50565b6000813590506136728161364c565b92915050565b6000806040838503121561368f5761368e6134e1565b5b600061369d85828601613534565b92505060206136ae85828601613663565b9150509250929050565b6000806000606084860312156136d1576136d06134e1565b5b60006136df86828701613534565b93505060206136f086828701613534565b92505060406137018682870161356a565b9150509250925092565b600060ff82169050919050565b6137218161370b565b82525050565b600060208201905061373c6000830184613718565b92915050565b60008060408385031215613759576137586134e1565b5b60006137678582860161356a565b92505060206137788582860161356a565b9150509250929050565b60006080820190506137976000830187613718565b6137a46020830186613718565b6137b16040830185613718565b6137be6060830184613718565b95945050505050565b6137d08161350b565b82525050565b60006060820190506137eb60008301866137c7565b6137f860208301856137c7565b61380560408301846137c7565b949350505050565b6138168161370b565b811461382157600080fd5b50565b6000813590506138338161380d565b92915050565b60008060008060808587031215613853576138526134e1565b5b600061386187828801613824565b945050602061387287828801613824565b935050604061388387828801613824565b925050606061389487828801613824565b91505092959194509250565b6000602082840312156138b6576138b56134e1565b5b60006138c48482850161356a565b91505092915050565b60006020820190506138e260008301846137c7565b92915050565b600080600060608486031215613901576139006134e1565b5b600061390f86828701613534565b935050602061392086828701613534565b925050604061393186828701613534565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139788261346b565b810181811067ffffffffffffffff8211171561399757613996613940565b5b80604052505050565b60006139aa6134d7565b90506139b6828261396f565b919050565b600067ffffffffffffffff8211156139d6576139d5613940565b5b602082029050602081019050919050565b600080fd5b60006139ff6139fa846139bb565b6139a0565b90508083825260208201905060208402830185811115613a2257613a216139e7565b5b835b81811015613a4b5780613a378882613534565b845260208401935050602081019050613a24565b5050509392505050565b600082601f830112613a6a57613a6961393b565b5b8135613a7a8482602086016139ec565b91505092915050565b60008060408385031215613a9a57613a996134e1565b5b600083013567ffffffffffffffff811115613ab857613ab76134e6565b5b613ac485828601613a55565b9250506020613ad585828601613663565b9150509250929050565b60008060408385031215613af657613af56134e1565b5b6000613b0485828601613534565b9250506020613b1585828601613534565b9150509250929050565b60008060008060808587031215613b3957613b386134e1565b5b6000613b4787828801613534565b9450506020613b5887828801613534565b9350506040613b698782880161356a565b9250506060613b7a8782880161356a565b91505092959194509250565b6000819050919050565b6000613bab613ba6613ba1846134eb565b613b86565b6134eb565b9050919050565b6000613bbd82613b90565b9050919050565b6000613bcf82613bb2565b9050919050565b613bdf81613bc4565b82525050565b6000602082019050613bfa6000830184613bd6565b92915050565b6000608082019050613c1560008301876135f5565b613c2260208301866135f5565b613c2f60408301856135f5565b613c3c60608301846135f5565b95945050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c7b602083613430565b9150613c8682613c45565b602082019050919050565b60006020820190508181036000830152613caa81613c6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ceb82613549565b9150613cf683613549565b9250828203905081811115613d0e57613d0d613cb1565b5b92915050565b6000613d1f82613549565b9150613d2a83613549565b9250828201905080821115613d4257613d41613cb1565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613d9f57808604811115613d7b57613d7a613cb1565b5b6001851615613d8a5780820291505b8081029050613d9885613d48565b9450613d5f565b94509492505050565b600082613db85760019050613e74565b81613dc65760009050613e74565b8160018114613ddc5760028114613de657613e15565b6001915050613e74565b60ff841115613df857613df7613cb1565b5b8360020a915084821115613e0f57613e0e613cb1565b5b50613e74565b5060208310610133831016604e8410600b8410161715613e4a5782820a905083811115613e4557613e44613cb1565b5b613e74565b613e578484846001613d55565b92509050818404811115613e6e57613e6d613cb1565b5b81810290505b9392505050565b6000613e8682613549565b9150613e918361370b565b9250613ebe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613da8565b905092915050565b6000613ed182613549565b9150613edc83613549565b9250828202613eea81613549565b91508282048414831517613f0157613f00613cb1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f4282613549565b9150613f4d83613549565b925082613f5d57613f5c613f08565b5b828204905092915050565b7f496e76616c69642053657474696e677300000000000000000000000000000000600082015250565b6000613f9e601083613430565b9150613fa982613f68565b602082019050919050565b60006020820190508181036000830152613fcd81613f91565b9050919050565b6000613fdf8261370b565b9150613fea8361370b565b9250828201905060ff81111561400357614002613cb1565b5b92915050565b7f43616e2774207365742074617820746f6f206869676800000000000000000000600082015250565b600061403f601683613430565b915061404a82614009565b602082019050919050565b6000602082019050818103600083015261406e81614032565b9050919050565b7f496e73756666696369656e74204554482062616c616e63650000000000000000600082015250565b60006140ab601883613430565b91506140b682614075565b602082019050919050565b600060208201905081810360008301526140da8161409e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061411b82613549565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361414d5761414c613cb1565b5b600182019050919050565b600061416382613549565b915061416e83613549565b925061419b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613da8565b905092915050565b60006040820190506141b860008301856137c7565b6141c560208301846135f5565b9392505050565b6000815190506141db8161364c565b92915050565b6000602082840312156141f7576141f66134e1565b5b6000614205848285016141cc565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061426a602683613430565b91506142758261420e565b604082019050919050565b600060208201905081810360008301526142998161425d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142fc602483613430565b9150614307826142a0565b604082019050919050565b6000602082019050818103600083015261432b816142ef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061438e602283613430565b915061439982614332565b604082019050919050565b600060208201905081810360008301526143bd81614381565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614420602583613430565b915061442b826143c4565b604082019050919050565b6000602082019050818103600083015261444f81614413565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144b2602383613430565b91506144bd82614456565b604082019050919050565b600060208201905081810360008301526144e1816144a5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614544602983613430565b915061454f826144e8565b604082019050919050565b6000602082019050818103600083015261457381614537565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d617860008201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b60006145d6602983613430565b91506145e18261457a565b604082019050919050565b60006020820190508181036000830152614605816145c9565b9050919050565b7f426c61636b6c69737465642c2063616e27742074726164650000000000000000600082015250565b6000614642601883613430565b915061464d8261460c565b602082019050919050565b6000602082019050818103600083015261467181614635565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c65742e0000000000000000000000000000000000000000000000000000602082015250565b60006146d4602683613430565b91506146df82614678565b604082019050919050565b60006020820190508181036000830152614703816146c7565b9050919050565b6000815190506147198161351d565b92915050565b600060208284031215614735576147346134e1565b5b60006147438482850161470a565b91505092915050565b6000819050919050565b600061477161476c6147678461474c565b613b86565b613549565b9050919050565b61478181614756565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147bc8161350b565b82525050565b60006147ce83836147b3565b60208301905092915050565b6000602082019050919050565b60006147f282614787565b6147fc8185614792565b9350614807836147a3565b8060005b8381101561483857815161481f88826147c2565b975061482a836147da565b92505060018101905061480b565b5085935050505092915050565b600060a08201905061485a60008301886135f5565b6148676020830187614778565b818103604083015261487981866147e7565b905061488860608301856137c7565b61489560808301846135f5565b9695505050505050565b600060c0820190506148b460008301896137c7565b6148c160208301886135f5565b6148ce6040830187614778565b6148db6060830186614778565b6148e860808301856137c7565b6148f560a08301846135f5565b979650505050505050565b60008151905061490f81613553565b92915050565b60008060006060848603121561492e5761492d6134e1565b5b600061493c86828701614900565b935050602061494d86828701614900565b925050604061495e86828701614900565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061499e601d83613430565b91506149a982614968565b602082019050919050565b600060208201905081810360008301526149cd81614991565b9050919050565b600081905092915050565b50565b60006149ef6000836149d4565b91506149fa826149df565b600082019050919050565b6000614a10826149e2565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614a76603a83613430565b9150614a8182614a1a565b604082019050919050565b60006020820190508181036000830152614aa581614a69565b905091905056fea2646970667358221220471ce82c0973ab14050e6af370bdf98842fcfa7eac2d1d036f4c9acd1fa401a064736f6c63430008110033
Deployed Bytecode Sourcemap
3550:14215:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6496:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7327:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6773:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3956:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8983:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7496:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3891:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6682:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7770:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10370:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4895:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;8712:164;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;11680:111;;;;;;;;;;;;;:::i;:::-;;9676:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6876:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10764:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1537:94;;;;;;;;;;;;;:::i;:::-;;3833:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10988:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4340:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1314:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11409:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6587:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7993:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3672:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7001:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9134:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4010:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4934:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4066:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9452:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10020:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7176:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11799:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11200:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1639:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9299:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3644:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4399:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4847:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;6496:83;6533:13;6566:5;;;;;;;;;;;;;;;;;6559:12;;6496:83;:::o;7327:161::-;7402:4;7419:39;7428:12;:10;:12::i;:::-;7442:7;7451:6;7419:8;:39::i;:::-;7476:4;7469:11;;7327:161;;;;:::o;6773:95::-;6826:7;6853;;6846:14;;6773:95;:::o;3956:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;8983:143::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9108:10:::1;9078:18;:27;9097:7;9078:27;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;8983:143:::0;;:::o;7496:266::-;7594:4;7611:36;7621:6;7629:9;7640:6;7611:9;:36::i;:::-;7658:74;7667:6;7675:12;:10;:12::i;:::-;7725:6;7689:11;:19;7701:6;7689:19;;;;;;;;;;;;;;;:33;7709:12;:10;:12::i;:::-;7689:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;7658:8;:74::i;:::-;7750:4;7743:11;;7496:266;;;;;:::o;3891:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;6682:83::-;6723:5;4211:1;6741:16;;6682:83;:::o;7770:215::-;7858:4;7875:80;7884:12;:10;:12::i;:::-;7898:7;7944:10;7907:11;:25;7919:12;:10;:12::i;:::-;7907:25;;;;;;;;;;;;;;;:34;7933:7;7907:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7875:8;:80::i;:::-;7973:4;7966:11;;7770:215;;;;:::o;10370:386::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10469:20:::1;4211:1;10516:2;:13;;;;:::i;:::-;10507:4;10503:1;10493:7;;:11;;;;:::i;:::-;:18;;;;:::i;:::-;10492:38;;;;:::i;:::-;10469:61;;10564:15;10549:11;:30;;:68;;;;;10602:15;10583;:34;;10549:68;10541:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4211:1;10678:2;:13;;;;:::i;:::-;10663:11;:29;;;;:::i;:::-;10649:11;:43;;;;4211:1;10734:2;:13;;;;:::i;:::-;10715:15;:33;;;;:::i;:::-;10703:9;:45;;;;10458:298;10370:386:::0;;:::o;4895:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8712:164::-;8754:17;8772;8790;8826:15;;;;;;;;;;;8842;;;;;;;;;;;8858:9;;;;;;;;;;;8819:49;;;;;;8712:164;;;:::o;11680:111::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11773:10:::1;;11755:15;:28;;;;:::i;:::-;11745:7;:38;;;;11680:111::o:0;9676:336::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9799:9:::1;9850:5;9841:6;9826:12;9811;:27;;;;:::i;:::-;:36;;;;:::i;:::-;:44;;;;:::i;:::-;9799:56;;;;9882:2;9874:4;:10;;9866:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;9931:43;;;;;;;;9935:12;9931:43;;;;;;9948:12;9931:43;;;;;;9961:6;9931:43;;;;;;9968:5;9931:43;;;;::::0;9922:6:::1;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9990:14;;;;;;;;;;9788:224;9676:336:::0;;;;:::o;6876:117::-;6942:7;6969;:16;6977:7;6969:16;;;;;;;;;;;;;;;;6962:23;;6876:117;;;:::o;10764:216::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4211:1:::1;10918:2;:13;;;;:::i;:::-;10895:19;:37;;;;:::i;:::-;10878:14;:54;;;;10959:13;10943;:29;;;;10764:216:::0;;:::o;1537:94::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1602:21:::1;1620:1;1602:9;:21::i;:::-;1537:94::o:0;3833:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;10988:200::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11092:9:::1;11067:21;:34;;11059:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11149:10;11141:28;;:39;11170:9;11141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10988:200:::0;:::o;4340:52::-;;;;:::o;1314:87::-;1360:7;1387:6;;;;;;;;;;;1380:13;;1314:87;:::o;11409:257::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11558:18:::1;11540:15;;:36;;;;;;;;;;;;;;;;;;11605:18;11587:15;;:36;;;;;;;;;;;;;;;;;;11646:12;11634:9;;:24;;;;;;;;;;;;;;;;;;11409:257:::0;;;:::o;6587:87::-;6626:13;6659:7;;;;;;;;;;;;;;;;;6652:14;;6587:87;:::o;7993:225::-;8086:4;8103:85;8112:12;:10;:12::i;:::-;8126:7;8172:15;8135:11;:25;8147:12;:10;:12::i;:::-;8135:25;;;;;;;;;;;;;;;:34;8161:7;8135:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;8103:8;:85::i;:::-;8206:4;8199:11;;7993:225;;;;:::o;3672:19::-;;;;;;;;;;;;;:::o;7001:167::-;7079:4;7096:42;7106:12;:10;:12::i;:::-;7120:9;7131:6;7096:9;:42::i;:::-;7156:4;7149:11;;7001:167;;;;:::o;9134:157::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9273:10:::1;9236:25;:34;9262:7;9236:34;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;9134:157:::0;;:::o;4010:47::-;;;;;;;;;;;;;;;;;:::o;4934:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4066:19::-;;;;:::o;9452:216::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9560:9:::1;9556:105;9578:8;:15;9574:1;:19;9556:105;;;9644:5;9614:14;:27;9629:8;9638:1;9629:11;;;;;;;;:::i;:::-;;;;;;;;9614:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;9595:3;;;;;:::i;:::-;;;;9556:105;;;;9452:216:::0;;:::o;10020:338::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10144:9:::1;10195:5;10186:6;10171:12;10156;:27;;;;:::i;:::-;:36;;;;:::i;:::-;:44;;;;:::i;:::-;10144:56;;;;10227:2;10219:4;:10;;10211:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;10277:43;;;;;;;;10281:12;10277:43;;;;;;10294:12;10277:43;;;;;;10307:6;10277:43;;;;;;10314:5;10277:43;;;;::::0;10267:7:::1;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10336:14;;;;;;;;;;10133:225;10020:338:::0;;;;:::o;7176:143::-;7257:7;7284:11;:18;7296:5;7284:18;;;;;;;;;;;;;;;:27;7303:7;7284:27;;;;;;;;;;;;;;;;7277:34;;7176:143;;;;:::o;11799:155::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11941:5:::1;11923:15;:23;;;;:::i;:::-;11898:14;:22;11913:6;11898:22;;;;;;;;;;;;;;;:48;;;;11799:155:::0;;:::o;11200:201::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11339:10:::1;11332:27;;;11360:3;11384:8;11380:2;:12;;;;:::i;:::-;11365:13;:27;;;;:::i;:::-;11332:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11200:201:::0;;;;:::o;1639:192::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1748:1:::1;1728:22;;:8;:22;;::::0;1720:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1804:19;1814:8;1804:9;:19::i;:::-;1639:192:::0;:::o;9299:141::-;1460:12;:10;:12::i;:::-;1449:23;;:7;:5;:7::i;:::-;:23;;;1441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9419:13:::1;9393:14;:23;9408:7;9393:23;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;9299:141:::0;;:::o;3644:21::-;;;;;;;;;;;;;:::o;4399:51::-;;;;:::o;4847:39::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;720:115::-;773:15;816:10;801:26;;720:115;:::o;8226:335::-;8336:1;8319:19;;:5;:19;;;8311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8417:1;8398:21;;:7;:21;;;8390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8499:6;8469:11;:18;8481:5;8469:18;;;;;;;;;;;;;;;:27;8488:7;8469:27;;;;;;;;;;;;;;;:36;;;;8537:7;8521:32;;8530:5;8521:32;;;8546:6;8521:32;;;;;;:::i;:::-;;;;;;;;8226:335;;;:::o;13209:1513::-;13311:1;13295:18;;:4;:18;;;13287:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13388:1;13374:16;;:2;:16;;;13366:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13458:1;13449:6;:10;13441:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13534:11;;13524:6;:21;;:56;;;;13549:25;:31;13575:4;13549:31;;;;;;;;;;;;;;;;;;;;;;;;;13524:56;13516:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;13646:14;:20;13661:4;13646:20;;;;;;;;;;;;;;;;;;;;;;;;;13645:21;:44;;;;;13671:14;:18;13686:2;13671:18;;;;;;;;;;;;;;;;;;;;;;;;;13670:19;13645:44;13637:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13735:25;:29;13761:2;13735:29;;;;;;;;;;;;;;;;;;;;;;;;;13731:134;;13813:9;;13803:6;13787:13;13797:2;13787:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;13779:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;13731:134;13918:14;;13890:24;13908:4;13890:9;:24::i;:::-;:42;;:92;;;;;13968:13;;13956:9;;:25;;;;:::i;:::-;13936:15;:46;;13890:92;:105;;;;;13987:8;;;;;;;;;;;13986:9;13890:105;:121;;;;;14007:4;;;;;;;;;;;13999:12;;:4;:12;;;;13890:121;:140;;;;;14023:7;:5;:7::i;:::-;14015:15;;:4;:15;;;;13890:140;:157;;;;;14040:7;:5;:7::i;:::-;14034:13;;:2;:13;;;;13890:157;13886:192;;;14062:16;:14;:16::i;:::-;13886:192;14118:6;14101:7;:13;14109:4;14101:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;14135:22;14160:6;14135:31;;14191:18;:24;14210:4;14191:24;;;;;;;;;;;;;;;;;;;;;;;;;14190:25;:52;;;;;14220:18;:22;14239:2;14220:22;;;;;;;;;;;;;;;;;;;;;;;;;14219:23;14190:52;14187:436;;;14275:39;14289:6;14297:4;14309;;;;;;;;;;;14303:10;;:2;:10;;;14275:13;:39::i;:::-;14258:56;;14341:4;;;;;;;;;;;14333:12;;:4;:12;;;:42;;;;;14360:15;14349:7;;:26;;14333:42;14329:283;;;14434:20;;14416:15;:38;;;;:::i;:::-;14395:14;:18;14410:2;14395:18;;;;;;;;;;;;;;;:59;;;;14329:283;;;14521:1;14497:14;:20;14512:4;14497:20;;;;;;;;;;;;;;;;:25;14493:99;;14571:14;:20;14586:4;14571:20;;;;;;;;;;;;;;;;14553:15;:38;14545:47;;;;;;14493:99;14329:283;14187:436;14650:14;14635:7;:11;14643:2;14635:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;14695:2;14680:34;;14689:4;14680:34;;;14699:14;14680:34;;;;;;:::i;:::-;;;;;;;;13276:1446;13209:1513;;;:::o;1839:173::-;1895:16;1914:6;;;;;;;;;;;1895:25;;1940:8;1931:6;;:17;;;;;;;;;;;;;;;;;;1995:8;1964:40;;1985:8;1964:40;;;;;;;;;;;;1884:128;1839:173;:::o;14730:1596::-;5367:4;5356:8;;:15;;;;;;;;;;;;;;;;;;14796:26:::1;14895:18;:28;;;14860:18;:34;;;14825:18;:34;;;:69;;;;:::i;:::-;:98;;;;:::i;:::-;14796:127;;14960:1;14939:18;:22;14936:938;;;14977:18;14998:36;15015:18;14998:16;:36::i;:::-;14977:57;;15049:23;15125:18;15088;:34;;;15075:10;:47;;;;:::i;:::-;:68;;;;:::i;:::-;15049:94;;15158:23;15234:18;15197;:34;;;15184:10;:47;;;;:::i;:::-;:68;;;;:::i;:::-;15158:94;;15267:17;15331:18;15300;:28;;;15287:10;:41;;;;:::i;:::-;:62;;;;:::i;:::-;15267:82;;15385:1;15367:15;:19;15364:165;;;15414:15;;;;;;;;;;;15406:33;;:50;15440:15;15406:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15512:1;15475:18;:34;;:38;;;;15364:165;15564:1;15546:15;:19;15543:165;;;15593:15;;;;;;;;;;;15585:33;;:50;15619:15;15585:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15691:1;15654:18;:34;;:38;;;;15543:165;15737:1;15725:9;:13;15722:141;;;15766:9;;;;;;;;;;;15758:27;;:38;15786:9;15758:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15846:1;15815:18;:28;;:32;;;;15722:141;14962:912;;;;14936:938;15922:1;15892:18;:27;;;:31;15889:356;;;15939:9;15981:1;15951:18;:27;;;:31;;;;:::i;:::-;15939:43;;15997:14;16044:4;16014:18;:27;;;:34;;;;:::i;:::-;15997:51;;16063:14;16080:22;16097:4;16080:16;:22::i;:::-;16063:39;;16133:1;16121:9;:13;16117:70;;;16153:34;16166:9;16177;16153:12;:34::i;:::-;16117:70;16232:1;16202:18;:27;;:31;;;;15924:321;;;15889:356;16262:16;;;;;;;;;;16303:15;16291:9;:27;;;;14775:1551;5405:5:::0;5394:8;;:16;;;;;;;;;;;;;;;;;;14730:1596::o;12015:1186::-;12094:7;12113:19;12135:6;12113:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12156:6;12152:56;;;12189:7;12178:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12152:56;12220:23;12279:3;12255:8;:21;;;12246:30;;:6;:30;;;;:::i;:::-;:36;;;;:::i;:::-;12220:62;;12293:23;12352:3;12328:8;:21;;;12319:30;;:6;:30;;;;:::i;:::-;:36;;;;:::i;:::-;12293:62;;12366:17;12413:3;12395:8;:15;;;12386:24;;:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;12366:50;;12427:16;12472:3;12455:8;:14;;;12446:23;;:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;12427:48;;12512:1;12491:18;:22;12488:96;;;12566:18;12528;:34;;;:56;;;;;;;:::i;:::-;;;;;;;;12488:96;12621:1;12600:18;:22;12597:96;;;12675:18;12637;:34;;;:56;;;;;;;:::i;:::-;;;;;;;;12597:96;12724:1;12709:12;:16;12706:78;;;12772:12;12740:18;:28;;;:44;;;;;;;:::i;:::-;;;;;;;;12706:78;12814:1;12800:11;:15;12797:75;;;12861:11;12830:18;:27;;;:42;;;;;;;:::i;:::-;;;;;;;;12797:75;12885:21;12966:11;12951:12;12930:18;12909;:39;;;;:::i;:::-;:54;;;;:::i;:::-;:68;;;;:::i;:::-;12885:92;;13016:16;12990:7;:22;13006:4;12990:22;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;13065:1;13046:16;:20;13043:91;;;13110:4;13086:48;;13096:4;13086:48;;;13117:16;13086:48;;;;;;:::i;:::-;;;;;;;;13043:91;13176:16;13167:6;:25;;;;:::i;:::-;13159:34;;;;;;;;12015:1186;;;;;:::o;16334:695::-;16398:7;16418:22;16443:21;16418:46;;16535:21;16573:1;16559:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16535:40;;16604:4;16586;16591:1;16586:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16630:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16620:4;16625:1;16620:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16656:53;16673:4;16688:6;;;;;;;;;;;16697:11;16656:8;:53::i;:::-;16748:6;;;;;;;;;;;:57;;;16820:11;16846:1;16890:4;16917;16937:15;16748:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17006:14;16982:21;:38;;;;:::i;:::-;16974:47;;;;16334:695;;;:::o;17037:665::-;17185:53;17202:4;17217:6;;;;;;;;;;;17226:11;17185:8;:53::i;:::-;17283:24;17312:6;;;;;;;;;;;:22;;;17343:9;17377:4;17397:11;17423:1;17466;17509:7;:5;:7::i;:::-;17531:15;17312:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17281:276;;;;17613:1;17594:16;17582:9;:28;;;;:::i;:::-;:32;17578:116;;;17629:65;17677:16;17665:9;:28;;;;:::i;:::-;17637:15;;;;;;;;;;;17629:34;;;;:65;;;;:::i;:::-;17578:116;17107:595;17037:665;;:::o;363:317::-;478:6;453:21;:31;;445:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;532:12;550:9;:14;;572:6;550:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;531:52;;;602:7;594:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;434:246;363:317;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:116::-;4203:21;4218:5;4203:21;:::i;:::-;4196:5;4193:32;4183:60;;4239:1;4236;4229:12;4183:60;4133:116;:::o;4255:133::-;4298:5;4336:6;4323:20;4314:29;;4352:30;4376:5;4352:30;:::i;:::-;4255:133;;;;:::o;4394:468::-;4459:6;4467;4516:2;4504:9;4495:7;4491:23;4487:32;4484:119;;;4522:79;;:::i;:::-;4484:119;4642:1;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4613:117;4769:2;4795:50;4837:7;4828:6;4817:9;4813:22;4795:50;:::i;:::-;4785:60;;4740:115;4394:468;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:521::-;6564:4;6602:3;6591:9;6587:19;6579:27;;6616:67;6680:1;6669:9;6665:17;6656:6;6616:67;:::i;:::-;6693:68;6757:2;6746:9;6742:18;6733:6;6693:68;:::i;:::-;6771;6835:2;6824:9;6820:18;6811:6;6771:68;:::i;:::-;6849;6913:2;6902:9;6898:18;6889:6;6849:68;:::i;:::-;6403:521;;;;;;;:::o;6930:118::-;7017:24;7035:5;7017:24;:::i;:::-;7012:3;7005:37;6930:118;;:::o;7054:442::-;7203:4;7241:2;7230:9;7226:18;7218:26;;7254:71;7322:1;7311:9;7307:17;7298:6;7254:71;:::i;:::-;7335:72;7403:2;7392:9;7388:18;7379:6;7335:72;:::i;:::-;7417;7485:2;7474:9;7470:18;7461:6;7417:72;:::i;:::-;7054:442;;;;;;:::o;7502:118::-;7573:22;7589:5;7573:22;:::i;:::-;7566:5;7563:33;7553:61;;7610:1;7607;7600:12;7553:61;7502:118;:::o;7626:135::-;7670:5;7708:6;7695:20;7686:29;;7724:31;7749:5;7724:31;:::i;:::-;7626:135;;;;:::o;7767:749::-;7845:6;7853;7861;7869;7918:3;7906:9;7897:7;7893:23;7889:33;7886:120;;;7925:79;;:::i;:::-;7886:120;8045:1;8070:51;8113:7;8104:6;8093:9;8089:22;8070:51;:::i;:::-;8060:61;;8016:115;8170:2;8196:51;8239:7;8230:6;8219:9;8215:22;8196:51;:::i;:::-;8186:61;;8141:116;8296:2;8322:51;8365:7;8356:6;8345:9;8341:22;8322:51;:::i;:::-;8312:61;;8267:116;8422:2;8448:51;8491:7;8482:6;8471:9;8467:22;8448:51;:::i;:::-;8438:61;;8393:116;7767:749;;;;;;;:::o;8522:329::-;8581:6;8630:2;8618:9;8609:7;8605:23;8601:32;8598:119;;;8636:79;;:::i;:::-;8598:119;8756:1;8781:53;8826:7;8817:6;8806:9;8802:22;8781:53;:::i;:::-;8771:63;;8727:117;8522:329;;;;:::o;8857:222::-;8950:4;8988:2;8977:9;8973:18;8965:26;;9001:71;9069:1;9058:9;9054:17;9045:6;9001:71;:::i;:::-;8857:222;;;;:::o;9085:619::-;9162:6;9170;9178;9227:2;9215:9;9206:7;9202:23;9198:32;9195:119;;;9233:79;;:::i;:::-;9195:119;9353:1;9378:53;9423:7;9414:6;9403:9;9399:22;9378:53;:::i;:::-;9368:63;;9324:117;9480:2;9506:53;9551:7;9542:6;9531:9;9527:22;9506:53;:::i;:::-;9496:63;;9451:118;9608:2;9634:53;9679:7;9670:6;9659:9;9655:22;9634:53;:::i;:::-;9624:63;;9579:118;9085:619;;;;;:::o;9710:117::-;9819:1;9816;9809:12;9833:180;9881:77;9878:1;9871:88;9978:4;9975:1;9968:15;10002:4;9999:1;9992:15;10019:281;10102:27;10124:4;10102:27;:::i;:::-;10094:6;10090:40;10232:6;10220:10;10217:22;10196:18;10184:10;10181:34;10178:62;10175:88;;;10243:18;;:::i;:::-;10175:88;10283:10;10279:2;10272:22;10062:238;10019:281;;:::o;10306:129::-;10340:6;10367:20;;:::i;:::-;10357:30;;10396:33;10424:4;10416:6;10396:33;:::i;:::-;10306:129;;;:::o;10441:311::-;10518:4;10608:18;10600:6;10597:30;10594:56;;;10630:18;;:::i;:::-;10594:56;10680:4;10672:6;10668:17;10660:25;;10740:4;10734;10730:15;10722:23;;10441:311;;;:::o;10758:117::-;10867:1;10864;10857:12;10898:710;10994:5;11019:81;11035:64;11092:6;11035:64;:::i;:::-;11019:81;:::i;:::-;11010:90;;11120:5;11149:6;11142:5;11135:21;11183:4;11176:5;11172:16;11165:23;;11236:4;11228:6;11224:17;11216:6;11212:30;11265:3;11257:6;11254:15;11251:122;;;11284:79;;:::i;:::-;11251:122;11399:6;11382:220;11416:6;11411:3;11408:15;11382:220;;;11491:3;11520:37;11553:3;11541:10;11520:37;:::i;:::-;11515:3;11508:50;11587:4;11582:3;11578:14;11571:21;;11458:144;11442:4;11437:3;11433:14;11426:21;;11382:220;;;11386:21;11000:608;;10898:710;;;;;:::o;11631:370::-;11702:5;11751:3;11744:4;11736:6;11732:17;11728:27;11718:122;;11759:79;;:::i;:::-;11718:122;11876:6;11863:20;11901:94;11991:3;11983:6;11976:4;11968:6;11964:17;11901:94;:::i;:::-;11892:103;;11708:293;11631:370;;;;:::o;12007:678::-;12097:6;12105;12154:2;12142:9;12133:7;12129:23;12125:32;12122:119;;;12160:79;;:::i;:::-;12122:119;12308:1;12297:9;12293:17;12280:31;12338:18;12330:6;12327:30;12324:117;;;12360:79;;:::i;:::-;12324:117;12465:78;12535:7;12526:6;12515:9;12511:22;12465:78;:::i;:::-;12455:88;;12251:302;12592:2;12618:50;12660:7;12651:6;12640:9;12636:22;12618:50;:::i;:::-;12608:60;;12563:115;12007:678;;;;;:::o;12691:474::-;12759:6;12767;12816:2;12804:9;12795:7;12791:23;12787:32;12784:119;;;12822:79;;:::i;:::-;12784:119;12942:1;12967:53;13012:7;13003:6;12992:9;12988:22;12967:53;:::i;:::-;12957:63;;12913:117;13069:2;13095:53;13140:7;13131:6;13120:9;13116:22;13095:53;:::i;:::-;13085:63;;13040:118;12691:474;;;;;:::o;13171:765::-;13257:6;13265;13273;13281;13330:3;13318:9;13309:7;13305:23;13301:33;13298:120;;;13337:79;;:::i;:::-;13298:120;13457:1;13482:53;13527:7;13518:6;13507:9;13503:22;13482:53;:::i;:::-;13472:63;;13428:117;13584:2;13610:53;13655:7;13646:6;13635:9;13631:22;13610:53;:::i;:::-;13600:63;;13555:118;13712:2;13738:53;13783:7;13774:6;13763:9;13759:22;13738:53;:::i;:::-;13728:63;;13683:118;13840:2;13866:53;13911:7;13902:6;13891:9;13887:22;13866:53;:::i;:::-;13856:63;;13811:118;13171:765;;;;;;;:::o;13942:60::-;13970:3;13991:5;13984:12;;13942:60;;;:::o;14008:142::-;14058:9;14091:53;14109:34;14118:24;14136:5;14118:24;:::i;:::-;14109:34;:::i;:::-;14091:53;:::i;:::-;14078:66;;14008:142;;;:::o;14156:126::-;14206:9;14239:37;14270:5;14239:37;:::i;:::-;14226:50;;14156:126;;;:::o;14288:141::-;14353:9;14386:37;14417:5;14386:37;:::i;:::-;14373:50;;14288:141;;;:::o;14435:161::-;14537:52;14583:5;14537:52;:::i;:::-;14532:3;14525:65;14435:161;;:::o;14602:252::-;14710:4;14748:2;14737:9;14733:18;14725:26;;14761:86;14844:1;14833:9;14829:17;14820:6;14761:86;:::i;:::-;14602:252;;;;:::o;14860:553::-;15037:4;15075:3;15064:9;15060:19;15052:27;;15089:71;15157:1;15146:9;15142:17;15133:6;15089:71;:::i;:::-;15170:72;15238:2;15227:9;15223:18;15214:6;15170:72;:::i;:::-;15252;15320:2;15309:9;15305:18;15296:6;15252:72;:::i;:::-;15334;15402:2;15391:9;15387:18;15378:6;15334:72;:::i;:::-;14860:553;;;;;;;:::o;15419:182::-;15559:34;15555:1;15547:6;15543:14;15536:58;15419:182;:::o;15607:366::-;15749:3;15770:67;15834:2;15829:3;15770:67;:::i;:::-;15763:74;;15846:93;15935:3;15846:93;:::i;:::-;15964:2;15959:3;15955:12;15948:19;;15607:366;;;:::o;15979:419::-;16145:4;16183:2;16172:9;16168:18;16160:26;;16232:9;16226:4;16222:20;16218:1;16207:9;16203:17;16196:47;16260:131;16386:4;16260:131;:::i;:::-;16252:139;;15979:419;;;:::o;16404:180::-;16452:77;16449:1;16442:88;16549:4;16546:1;16539:15;16573:4;16570:1;16563:15;16590:194;16630:4;16650:20;16668:1;16650:20;:::i;:::-;16645:25;;16684:20;16702:1;16684:20;:::i;:::-;16679:25;;16728:1;16725;16721:9;16713:17;;16752:1;16746:4;16743:11;16740:37;;;16757:18;;:::i;:::-;16740:37;16590:194;;;;:::o;16790:191::-;16830:3;16849:20;16867:1;16849:20;:::i;:::-;16844:25;;16883:20;16901:1;16883:20;:::i;:::-;16878:25;;16926:1;16923;16919:9;16912:16;;16947:3;16944:1;16941:10;16938:36;;;16954:18;;:::i;:::-;16938:36;16790:191;;;;:::o;16987:102::-;17029:8;17076:5;17073:1;17069:13;17048:34;;16987:102;;;:::o;17095:848::-;17156:5;17163:4;17187:6;17178:15;;17211:5;17202:14;;17225:712;17246:1;17236:8;17233:15;17225:712;;;17341:4;17336:3;17332:14;17326:4;17323:24;17320:50;;;17350:18;;:::i;:::-;17320:50;17400:1;17390:8;17386:16;17383:451;;;17815:4;17808:5;17804:16;17795:25;;17383:451;17865:4;17859;17855:15;17847:23;;17895:32;17918:8;17895:32;:::i;:::-;17883:44;;17225:712;;;17095:848;;;;;;;:::o;17949:1073::-;18003:5;18194:8;18184:40;;18215:1;18206:10;;18217:5;;18184:40;18243:4;18233:36;;18260:1;18251:10;;18262:5;;18233:36;18329:4;18377:1;18372:27;;;;18413:1;18408:191;;;;18322:277;;18372:27;18390:1;18381:10;;18392:5;;;18408:191;18453:3;18443:8;18440:17;18437:43;;;18460:18;;:::i;:::-;18437:43;18509:8;18506:1;18502:16;18493:25;;18544:3;18537:5;18534:14;18531:40;;;18551:18;;:::i;:::-;18531:40;18584:5;;;18322:277;;18708:2;18698:8;18695:16;18689:3;18683:4;18680:13;18676:36;18658:2;18648:8;18645:16;18640:2;18634:4;18631:12;18627:35;18611:111;18608:246;;;18764:8;18758:4;18754:19;18745:28;;18799:3;18792:5;18789:14;18786:40;;;18806:18;;:::i;:::-;18786:40;18839:5;;18608:246;18879:42;18917:3;18907:8;18901:4;18898:1;18879:42;:::i;:::-;18864:57;;;;18953:4;18948:3;18944:14;18937:5;18934:25;18931:51;;;18962:18;;:::i;:::-;18931:51;19011:4;19004:5;19000:16;18991:25;;17949:1073;;;;;;:::o;19028:281::-;19086:5;19110:23;19128:4;19110:23;:::i;:::-;19102:31;;19154:25;19170:8;19154:25;:::i;:::-;19142:37;;19198:104;19235:66;19225:8;19219:4;19198:104;:::i;:::-;19189:113;;19028:281;;;;:::o;19315:410::-;19355:7;19378:20;19396:1;19378:20;:::i;:::-;19373:25;;19412:20;19430:1;19412:20;:::i;:::-;19407:25;;19467:1;19464;19460:9;19489:30;19507:11;19489:30;:::i;:::-;19478:41;;19668:1;19659:7;19655:15;19652:1;19649:22;19629:1;19622:9;19602:83;19579:139;;19698:18;;:::i;:::-;19579:139;19363:362;19315:410;;;;:::o;19731:180::-;19779:77;19776:1;19769:88;19876:4;19873:1;19866:15;19900:4;19897:1;19890:15;19917:185;19957:1;19974:20;19992:1;19974:20;:::i;:::-;19969:25;;20008:20;20026:1;20008:20;:::i;:::-;20003:25;;20047:1;20037:35;;20052:18;;:::i;:::-;20037:35;20094:1;20091;20087:9;20082:14;;19917:185;;;;:::o;20108:166::-;20248:18;20244:1;20236:6;20232:14;20225:42;20108:166;:::o;20280:366::-;20422:3;20443:67;20507:2;20502:3;20443:67;:::i;:::-;20436:74;;20519:93;20608:3;20519:93;:::i;:::-;20637:2;20632:3;20628:12;20621:19;;20280:366;;;:::o;20652:419::-;20818:4;20856:2;20845:9;20841:18;20833:26;;20905:9;20899:4;20895:20;20891:1;20880:9;20876:17;20869:47;20933:131;21059:4;20933:131;:::i;:::-;20925:139;;20652:419;;;:::o;21077:188::-;21115:3;21134:18;21150:1;21134:18;:::i;:::-;21129:23;;21166:18;21182:1;21166:18;:::i;:::-;21161:23;;21207:1;21204;21200:9;21193:16;;21230:4;21225:3;21222:13;21219:39;;;21238:18;;:::i;:::-;21219:39;21077:188;;;;:::o;21271:172::-;21411:24;21407:1;21399:6;21395:14;21388:48;21271:172;:::o;21449:366::-;21591:3;21612:67;21676:2;21671:3;21612:67;:::i;:::-;21605:74;;21688:93;21777:3;21688:93;:::i;:::-;21806:2;21801:3;21797:12;21790:19;;21449:366;;;:::o;21821:419::-;21987:4;22025:2;22014:9;22010:18;22002:26;;22074:9;22068:4;22064:20;22060:1;22049:9;22045:17;22038:47;22102:131;22228:4;22102:131;:::i;:::-;22094:139;;21821:419;;;:::o;22246:174::-;22386:26;22382:1;22374:6;22370:14;22363:50;22246:174;:::o;22426:366::-;22568:3;22589:67;22653:2;22648:3;22589:67;:::i;:::-;22582:74;;22665:93;22754:3;22665:93;:::i;:::-;22783:2;22778:3;22774:12;22767:19;;22426:366;;;:::o;22798:419::-;22964:4;23002:2;22991:9;22987:18;22979:26;;23051:9;23045:4;23041:20;23037:1;23026:9;23022:17;23015:47;23079:131;23205:4;23079:131;:::i;:::-;23071:139;;22798:419;;;:::o;23223:180::-;23271:77;23268:1;23261:88;23368:4;23365:1;23358:15;23392:4;23389:1;23382:15;23409:233;23448:3;23471:24;23489:5;23471:24;:::i;:::-;23462:33;;23517:66;23510:5;23507:77;23504:103;;23587:18;;:::i;:::-;23504:103;23634:1;23627:5;23623:13;23616:20;;23409:233;;;:::o;23648:285::-;23708:5;23732:23;23750:4;23732:23;:::i;:::-;23724:31;;23776:27;23794:8;23776:27;:::i;:::-;23764:39;;23822:104;23859:66;23849:8;23843:4;23822:104;:::i;:::-;23813:113;;23648:285;;;;:::o;23939:332::-;24060:4;24098:2;24087:9;24083:18;24075:26;;24111:71;24179:1;24168:9;24164:17;24155:6;24111:71;:::i;:::-;24192:72;24260:2;24249:9;24245:18;24236:6;24192:72;:::i;:::-;23939:332;;;;;:::o;24277:137::-;24331:5;24362:6;24356:13;24347:22;;24378:30;24402:5;24378:30;:::i;:::-;24277:137;;;;:::o;24420:345::-;24487:6;24536:2;24524:9;24515:7;24511:23;24507:32;24504:119;;;24542:79;;:::i;:::-;24504:119;24662:1;24687:61;24740:7;24731:6;24720:9;24716:22;24687:61;:::i;:::-;24677:71;;24633:125;24420:345;;;;:::o;24771:225::-;24911:34;24907:1;24899:6;24895:14;24888:58;24980:8;24975:2;24967:6;24963:15;24956:33;24771:225;:::o;25002:366::-;25144:3;25165:67;25229:2;25224:3;25165:67;:::i;:::-;25158:74;;25241:93;25330:3;25241:93;:::i;:::-;25359:2;25354:3;25350:12;25343:19;;25002:366;;;:::o;25374:419::-;25540:4;25578:2;25567:9;25563:18;25555:26;;25627:9;25621:4;25617:20;25613:1;25602:9;25598:17;25591:47;25655:131;25781:4;25655:131;:::i;:::-;25647:139;;25374:419;;;:::o;25799:223::-;25939:34;25935:1;25927:6;25923:14;25916:58;26008:6;26003:2;25995:6;25991:15;25984:31;25799:223;:::o;26028:366::-;26170:3;26191:67;26255:2;26250:3;26191:67;:::i;:::-;26184:74;;26267:93;26356:3;26267:93;:::i;:::-;26385:2;26380:3;26376:12;26369:19;;26028:366;;;:::o;26400:419::-;26566:4;26604:2;26593:9;26589:18;26581:26;;26653:9;26647:4;26643:20;26639:1;26628:9;26624:17;26617:47;26681:131;26807:4;26681:131;:::i;:::-;26673:139;;26400:419;;;:::o;26825:221::-;26965:34;26961:1;26953:6;26949:14;26942:58;27034:4;27029:2;27021:6;27017:15;27010:29;26825:221;:::o;27052:366::-;27194:3;27215:67;27279:2;27274:3;27215:67;:::i;:::-;27208:74;;27291:93;27380:3;27291:93;:::i;:::-;27409:2;27404:3;27400:12;27393:19;;27052:366;;;:::o;27424:419::-;27590:4;27628:2;27617:9;27613:18;27605:26;;27677:9;27671:4;27667:20;27663:1;27652:9;27648:17;27641:47;27705:131;27831:4;27705:131;:::i;:::-;27697:139;;27424:419;;;:::o;27849:224::-;27989:34;27985:1;27977:6;27973:14;27966:58;28058:7;28053:2;28045:6;28041:15;28034:32;27849:224;:::o;28079:366::-;28221:3;28242:67;28306:2;28301:3;28242:67;:::i;:::-;28235:74;;28318:93;28407:3;28318:93;:::i;:::-;28436:2;28431:3;28427:12;28420:19;;28079:366;;;:::o;28451:419::-;28617:4;28655:2;28644:9;28640:18;28632:26;;28704:9;28698:4;28694:20;28690:1;28679:9;28675:17;28668:47;28732:131;28858:4;28732:131;:::i;:::-;28724:139;;28451:419;;;:::o;28876:222::-;29016:34;29012:1;29004:6;29000:14;28993:58;29085:5;29080:2;29072:6;29068:15;29061:30;28876:222;:::o;29104:366::-;29246:3;29267:67;29331:2;29326:3;29267:67;:::i;:::-;29260:74;;29343:93;29432:3;29343:93;:::i;:::-;29461:2;29456:3;29452:12;29445:19;;29104:366;;;:::o;29476:419::-;29642:4;29680:2;29669:9;29665:18;29657:26;;29729:9;29723:4;29719:20;29715:1;29704:9;29700:17;29693:47;29757:131;29883:4;29757:131;:::i;:::-;29749:139;;29476:419;;;:::o;29901:228::-;30041:34;30037:1;30029:6;30025:14;30018:58;30110:11;30105:2;30097:6;30093:15;30086:36;29901:228;:::o;30135:366::-;30277:3;30298:67;30362:2;30357:3;30298:67;:::i;:::-;30291:74;;30374:93;30463:3;30374:93;:::i;:::-;30492:2;30487:3;30483:12;30476:19;;30135:366;;;:::o;30507:419::-;30673:4;30711:2;30700:9;30696:18;30688:26;;30760:9;30754:4;30750:20;30746:1;30735:9;30731:17;30724:47;30788:131;30914:4;30788:131;:::i;:::-;30780:139;;30507:419;;;:::o;30932:228::-;31072:34;31068:1;31060:6;31056:14;31049:58;31141:11;31136:2;31128:6;31124:15;31117:36;30932:228;:::o;31166:366::-;31308:3;31329:67;31393:2;31388:3;31329:67;:::i;:::-;31322:74;;31405:93;31494:3;31405:93;:::i;:::-;31523:2;31518:3;31514:12;31507:19;;31166:366;;;:::o;31538:419::-;31704:4;31742:2;31731:9;31727:18;31719:26;;31791:9;31785:4;31781:20;31777:1;31766:9;31762:17;31755:47;31819:131;31945:4;31819:131;:::i;:::-;31811:139;;31538:419;;;:::o;31963:174::-;32103:26;32099:1;32091:6;32087:14;32080:50;31963:174;:::o;32143:366::-;32285:3;32306:67;32370:2;32365:3;32306:67;:::i;:::-;32299:74;;32382:93;32471:3;32382:93;:::i;:::-;32500:2;32495:3;32491:12;32484:19;;32143:366;;;:::o;32515:419::-;32681:4;32719:2;32708:9;32704:18;32696:26;;32768:9;32762:4;32758:20;32754:1;32743:9;32739:17;32732:47;32796:131;32922:4;32796:131;:::i;:::-;32788:139;;32515:419;;;:::o;32940:225::-;33080:34;33076:1;33068:6;33064:14;33057:58;33149:8;33144:2;33136:6;33132:15;33125:33;32940:225;:::o;33171:366::-;33313:3;33334:67;33398:2;33393:3;33334:67;:::i;:::-;33327:74;;33410:93;33499:3;33410:93;:::i;:::-;33528:2;33523:3;33519:12;33512:19;;33171:366;;;:::o;33543:419::-;33709:4;33747:2;33736:9;33732:18;33724:26;;33796:9;33790:4;33786:20;33782:1;33771:9;33767:17;33760:47;33824:131;33950:4;33824:131;:::i;:::-;33816:139;;33543:419;;;:::o;33968:143::-;34025:5;34056:6;34050:13;34041:22;;34072:33;34099:5;34072:33;:::i;:::-;33968:143;;;;:::o;34117:351::-;34187:6;34236:2;34224:9;34215:7;34211:23;34207:32;34204:119;;;34242:79;;:::i;:::-;34204:119;34362:1;34387:64;34443:7;34434:6;34423:9;34419:22;34387:64;:::i;:::-;34377:74;;34333:128;34117:351;;;;:::o;34474:85::-;34519:7;34548:5;34537:16;;34474:85;;;:::o;34565:158::-;34623:9;34656:61;34674:42;34683:32;34709:5;34683:32;:::i;:::-;34674:42;:::i;:::-;34656:61;:::i;:::-;34643:74;;34565:158;;;:::o;34729:147::-;34824:45;34863:5;34824:45;:::i;:::-;34819:3;34812:58;34729:147;;:::o;34882:114::-;34949:6;34983:5;34977:12;34967:22;;34882:114;;;:::o;35002:184::-;35101:11;35135:6;35130:3;35123:19;35175:4;35170:3;35166:14;35151:29;;35002:184;;;;:::o;35192:132::-;35259:4;35282:3;35274:11;;35312:4;35307:3;35303:14;35295:22;;35192:132;;;:::o;35330:108::-;35407:24;35425:5;35407:24;:::i;:::-;35402:3;35395:37;35330:108;;:::o;35444:179::-;35513:10;35534:46;35576:3;35568:6;35534:46;:::i;:::-;35612:4;35607:3;35603:14;35589:28;;35444:179;;;;:::o;35629:113::-;35699:4;35731;35726:3;35722:14;35714:22;;35629:113;;;:::o;35778:732::-;35897:3;35926:54;35974:5;35926:54;:::i;:::-;35996:86;36075:6;36070:3;35996:86;:::i;:::-;35989:93;;36106:56;36156:5;36106:56;:::i;:::-;36185:7;36216:1;36201:284;36226:6;36223:1;36220:13;36201:284;;;36302:6;36296:13;36329:63;36388:3;36373:13;36329:63;:::i;:::-;36322:70;;36415:60;36468:6;36415:60;:::i;:::-;36405:70;;36261:224;36248:1;36245;36241:9;36236:14;;36201:284;;;36205:14;36501:3;36494:10;;35902:608;;;35778:732;;;;:::o;36516:831::-;36779:4;36817:3;36806:9;36802:19;36794:27;;36831:71;36899:1;36888:9;36884:17;36875:6;36831:71;:::i;:::-;36912:80;36988:2;36977:9;36973:18;36964:6;36912:80;:::i;:::-;37039:9;37033:4;37029:20;37024:2;37013:9;37009:18;37002:48;37067:108;37170:4;37161:6;37067:108;:::i;:::-;37059:116;;37185:72;37253:2;37242:9;37238:18;37229:6;37185:72;:::i;:::-;37267:73;37335:3;37324:9;37320:19;37311:6;37267:73;:::i;:::-;36516:831;;;;;;;;:::o;37353:807::-;37602:4;37640:3;37629:9;37625:19;37617:27;;37654:71;37722:1;37711:9;37707:17;37698:6;37654:71;:::i;:::-;37735:72;37803:2;37792:9;37788:18;37779:6;37735:72;:::i;:::-;37817:80;37893:2;37882:9;37878:18;37869:6;37817:80;:::i;:::-;37907;37983:2;37972:9;37968:18;37959:6;37907:80;:::i;:::-;37997:73;38065:3;38054:9;38050:19;38041:6;37997:73;:::i;:::-;38080;38148:3;38137:9;38133:19;38124:6;38080:73;:::i;:::-;37353:807;;;;;;;;;:::o;38166:143::-;38223:5;38254:6;38248:13;38239:22;;38270:33;38297:5;38270:33;:::i;:::-;38166:143;;;;:::o;38315:663::-;38403:6;38411;38419;38468:2;38456:9;38447:7;38443:23;38439:32;38436:119;;;38474:79;;:::i;:::-;38436:119;38594:1;38619:64;38675:7;38666:6;38655:9;38651:22;38619:64;:::i;:::-;38609:74;;38565:128;38732:2;38758:64;38814:7;38805:6;38794:9;38790:22;38758:64;:::i;:::-;38748:74;;38703:129;38871:2;38897:64;38953:7;38944:6;38933:9;38929:22;38897:64;:::i;:::-;38887:74;;38842:129;38315:663;;;;;:::o;38984:179::-;39124:31;39120:1;39112:6;39108:14;39101:55;38984:179;:::o;39169:366::-;39311:3;39332:67;39396:2;39391:3;39332:67;:::i;:::-;39325:74;;39408:93;39497:3;39408:93;:::i;:::-;39526:2;39521:3;39517:12;39510:19;;39169:366;;;:::o;39541:419::-;39707:4;39745:2;39734:9;39730:18;39722:26;;39794:9;39788:4;39784:20;39780:1;39769:9;39765:17;39758:47;39822:131;39948:4;39822:131;:::i;:::-;39814:139;;39541:419;;;:::o;39966:147::-;40067:11;40104:3;40089:18;;39966:147;;;;:::o;40119:114::-;;:::o;40239:398::-;40398:3;40419:83;40500:1;40495:3;40419:83;:::i;:::-;40412:90;;40511:93;40600:3;40511:93;:::i;:::-;40629:1;40624:3;40620:11;40613:18;;40239:398;;;:::o;40643:379::-;40827:3;40849:147;40992:3;40849:147;:::i;:::-;40842:154;;41013:3;41006:10;;40643:379;;;:::o;41028:245::-;41168:34;41164:1;41156:6;41152:14;41145:58;41237:28;41232:2;41224:6;41220:15;41213:53;41028:245;:::o;41279:366::-;41421:3;41442:67;41506:2;41501:3;41442:67;:::i;:::-;41435:74;;41518:93;41607:3;41518:93;:::i;:::-;41636:2;41631:3;41627:12;41620:19;;41279:366;;;:::o;41651:419::-;41817:4;41855:2;41844:9;41840:18;41832:26;;41904:9;41898:4;41894:20;41890:1;41879:9;41875:17;41868:47;41932:131;42058:4;41932:131;:::i;:::-;41924:139;;41651:419;;;:::o
Swarm Source
ipfs://471ce82c0973ab14050e6af370bdf98842fcfa7eac2d1d036f4c9acd1fa401a0
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.