ERC-20
Overview
Max Total Supply
50,000,000 GOAT
Holders
67
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PHILOCTETES
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-26 */ /** *Submitted for verification at Etherscan.io on 2022-06-17 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; /* https://www.philoctetes.one/ https://t.me/philoctecesportal https://twitter.com/Philoctetes_ETH */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract PHILOCTETES is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "PHILOCTETES";// string private constant _symbol = "GOAT";// uint8 private constant _decimals = 18; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedFromTx; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 50_000_000 * 10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public percentForLPBurn = 25; // 25 = .25% bool public lpBurnEnabled = false; uint256 public lpBurnFrequency = 3600 seconds; uint256 public lastLpBurnTime; uint256 public manualBurnFrequency = 30 minutes; uint256 public lastManualLpBurnTime; //Buy Fee uint256 private _redisFeeOnBuy = 0;// uint256 private _taxFeeOnBuy = 10;// //Sell Fee uint256 private _redisFeeOnSell = 0;// uint256 private _taxFeeOnSell = 15;// //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _developmentAddress = payable(0x1Bfcd6DB0F55DfB2DFEf63Ff71D10d26E0664243); address payable private _marketingAddress = payable(0x1Bfcd6DB0F55DfB2DFEf63Ff71D10d26E0664243); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool public tradingOpen; bool private inSwap = false; bool private swapEnabled = true; bool private limitedTransfer = true; uint256 public _maxTxAmount = 500_000 * 1e18; // uint256 public _maxWalletSize = 500_000 * 1e18; // uint256 private _swapTokensAtAmount = 100_000 * 1e18; // event MaxTxAmountUpdated(uint256 _maxTxAmount); event AutoNukeLP(); event ManualNukeLP(); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[address(uniswapV2Router)] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[address(0xdead)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check require(tradingOpen, "TOKEN: This account cannot send tokens until trading is enabled"); if (limitedTransfer) { if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } if (!inSwap && to == uniswapV2Pair && block.timestamp >= lastLpBurnTime + lpBurnFrequency && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { autoBurnLiquidityPairTokens(); } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function removeLimits() external onlyOwner { limitedTransfer = false; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function enableTrading() public onlyOwner { if (!tradingOpen) { tradingOpen = true; swapEnabled = true; lastLpBurnTime = block.timestamp; } } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function setAutoLPBurnSettings( uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled ) external onlyOwner { require( _frequencyInSeconds >= 600, "cannot set buyback more often than every 10 minutes" ); require( _percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%" ); lpBurnFrequency = _frequencyInSeconds; percentForLPBurn = _percent; lpBurnEnabled = _Enabled; } function autoBurnLiquidityPairTokens() internal returns (bool) { lastLpBurnTime = block.timestamp; // get balance of liquidity pair uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair); // calculate amount to burn uint256 amountToBurn = liquidityPairBalance.mul(percentForLPBurn).div( 10000 ); // pull tokens from pancakePair liquidity and move to dead address permanently if (amountToBurn > 0) { _transfer(uniswapV2Pair, address(0xdead), amountToBurn); } //sync price since this is not in a swap transaction! IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair); pair.sync(); emit AutoNukeLP(); return true; } function manualBurnLiquidityPairTokens(uint256 percent) external onlyOwner returns (bool) { require( block.timestamp > lastManualLpBurnTime + manualBurnFrequency, "Must wait for cooldown to finish" ); require(percent <= 1000, "May not nuke more than 10% of tokens in LP"); lastManualLpBurnTime = block.timestamp; // get balance of liquidity pair uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair); // calculate amount to burn uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000); // pull tokens from pancakePair liquidity and move to dead address permanently if (amountToBurn > 0) { _transfer(uniswapV2Pair, address(0xdead), amountToBurn); } //sync price since this is not in a swap transaction! IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair); pair.sync(); emit ManualNukeLP(); return true; } }
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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526a295be96e640669720000006000196200001f91906200083a565b6000196200002e9190620008a1565b60075560196009556000600a60006101000a81548160ff021916908315150217905550610e10600b55610708600d556000600f55600a6010556000601155600f601255601154601355601254601455601354601555601454601655731bfcd6db0f55dfb2dfef63ff71d10d26e0664243601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731bfcd6db0f55dfb2dfef63ff71d10d26e0664243601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601a60156101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff0219169083151502179055506001601a60176101000a81548160ff0219169083151502179055506969e10de76676d0800000601b556969e10de76676d0800000601c5569152d02c7e14af6800000601d55348015620001bb57600080fd5b506000620001ce620007d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506007546002600062000283620007d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000367573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038d919062000946565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041b919062000946565b6040518363ffffffff1660e01b81526004016200043a92919062000989565b6020604051808303816000875af11580156200045a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000480919062000946565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600062000550620007d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000757620007d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a295be96e64066972000000604051620007c19190620009c7565b60405180910390a350620009e4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008478262000801565b9150620008548362000801565b9250826200086757620008666200080b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008ae8262000801565b9150620008bb8362000801565b925082821015620008d157620008d062000872565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200090e82620008e1565b9050919050565b620009208162000901565b81146200092c57600080fd5b50565b600081519050620009408162000915565b92915050565b6000602082840312156200095f576200095e620008dc565b5b60006200096f848285016200092f565b91505092915050565b620009838162000901565b82525050565b6000604082019050620009a0600083018562000978565b620009af602083018462000978565b9392505050565b620009c18162000801565b82525050565b6000602082019050620009de6000830184620009b6565b92915050565b6145d280620009f46000396000f3fe6080604052600436106102085760003560e01c8063751039fc11610118578063a4c82a00116100a0578063dd62ed3e1161006f578063dd62ed3e146106f6578063ea1644d514610733578063f2fde38b1461075c578063fe72b27a14610785578063ffb54a99146107c25761020f565b8063a4c82a001461064e578063a9059cbb14610679578063c3c8cd80146106b6578063c492f046146106cd5761020f565b80638f9a55c0116100e75780638f9a55c01461057b57806395d89b41146105a657806398a5c315146105d15780639ec22c0e146105fa578063a2a957bb146106255761020f565b8063751039fc146104f75780637d1db4a51461050e5780638a8c523c146105395780638da5cb5b146105505761020f565b80632e82f1a01161019b5780636fc3eaec1161016a5780636fc3eaec1461043a57806370a0823114610451578063715018a61461048e578063730c1888146104a557806374010ece146104ce5761020f565b80632e82f1a014610390578063313ce567146103bb57806349bd5a5e146103e65780636d8aa8f8146104115761020f565b8063184c16c5116101d7578063184c16c5146102d2578063199ffc72146102fd57806323b872dd146103285780632c3e486c146103655761020f565b806306fdde0314610214578063095ea7b31461023f5780631694505e1461027c57806318160ddd146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b506102296107ed565b604051610236919061336a565b60405180910390f35b34801561024b57600080fd5b506102666004803603810190610261919061342a565b61082a565b6040516102739190613485565b60405180910390f35b34801561028857600080fd5b50610291610848565b60405161029e91906134ff565b60405180910390f35b3480156102b357600080fd5b506102bc61086e565b6040516102c99190613529565b60405180910390f35b3480156102de57600080fd5b506102e7610881565b6040516102f49190613529565b60405180910390f35b34801561030957600080fd5b50610312610887565b60405161031f9190613529565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190613544565b61088d565b60405161035c9190613485565b60405180910390f35b34801561037157600080fd5b5061037a610966565b6040516103879190613529565b60405180910390f35b34801561039c57600080fd5b506103a561096c565b6040516103b29190613485565b60405180910390f35b3480156103c757600080fd5b506103d061097f565b6040516103dd91906135b3565b60405180910390f35b3480156103f257600080fd5b506103fb610988565b60405161040891906135dd565b60405180910390f35b34801561041d57600080fd5b5061043860048036038101906104339190613624565b6109ae565b005b34801561044657600080fd5b5061044f610a60565b005b34801561045d57600080fd5b5061047860048036038101906104739190613651565b610b31565b6040516104859190613529565b60405180910390f35b34801561049a57600080fd5b506104a3610b82565b005b3480156104b157600080fd5b506104cc60048036038101906104c7919061367e565b610cd5565b005b3480156104da57600080fd5b506104f560048036038101906104f091906136d1565b610e2e565b005b34801561050357600080fd5b5061050c610ecd565b005b34801561051a57600080fd5b50610523610f7f565b6040516105309190613529565b60405180910390f35b34801561054557600080fd5b5061054e610f85565b005b34801561055c57600080fd5b5061056561106e565b60405161057291906135dd565b60405180910390f35b34801561058757600080fd5b50610590611097565b60405161059d9190613529565b60405180910390f35b3480156105b257600080fd5b506105bb61109d565b6040516105c8919061336a565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f391906136d1565b6110da565b005b34801561060657600080fd5b5061060f611179565b60405161061c9190613529565b60405180910390f35b34801561063157600080fd5b5061064c600480360381019061064791906136fe565b61117f565b005b34801561065a57600080fd5b50610663611236565b6040516106709190613529565b60405180910390f35b34801561068557600080fd5b506106a0600480360381019061069b919061342a565b61123c565b6040516106ad9190613485565b60405180910390f35b3480156106c257600080fd5b506106cb61125a565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906137ca565b611333565b005b34801561070257600080fd5b5061071d6004803603810190610718919061382a565b61146d565b60405161072a9190613529565b60405180910390f35b34801561073f57600080fd5b5061075a600480360381019061075591906136d1565b6114f4565b005b34801561076857600080fd5b50610783600480360381019061077e9190613651565b611593565b005b34801561079157600080fd5b506107ac60048036038101906107a791906136d1565b611754565b6040516107b99190613485565b60405180910390f35b3480156107ce57600080fd5b506107d7611a4b565b6040516107e49190613485565b60405180910390f35b60606040518060400160405280600b81526020017f5048494c4f435445544553000000000000000000000000000000000000000000815250905090565b600061083e610837611a5e565b8484611a66565b6001905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006a295be96e64066972000000905090565b600d5481565b60095481565b600061089a848484611c2f565b61095b846108a6611a5e565b6109568560405180606001604052806028815260200161457560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061090c611a5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125969092919063ffffffff16565b611a66565b600190509392505050565b600b5481565b600a60009054906101000a900460ff1681565b60006012905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b6611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a906138b6565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa1611a5e565b73ffffffffffffffffffffffffffffffffffffffff161480610b175750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aff611a5e565b73ffffffffffffffffffffffffffffffffffffffff16145b610b2057600080fd5b6000479050610b2e816125fa565b50565b6000610b7b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f5565b9050919050565b610b8a611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e906138b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cdd611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d61906138b6565b60405180910390fd5b610258831015610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690613948565b60405180910390fd5b6103e88211158015610dc2575060008210155b610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df8906139da565b60405180910390fd5b82600b819055508160098190555080600a60006101000a81548160ff021916908315150217905550505050565b610e36611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba906138b6565b60405180910390fd5b80601b8190555050565b610ed5611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f59906138b6565b60405180910390fd5b6000601a60176101000a81548160ff021916908315150217905550565b601b5481565b610f8d611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611011906138b6565b60405180910390fd5b601a60149054906101000a900460ff1661106c576001601a60146101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff02191690831515021790555042600c819055505b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601c5481565b60606040518060400160405280600481526020017f474f415400000000000000000000000000000000000000000000000000000000815250905090565b6110e2611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611166906138b6565b60405180910390fd5b80601d8190555050565b600e5481565b611187611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b906138b6565b60405180910390fd5b83600f8190555082601181905550816010819055508060128190555050505050565b600c5481565b6000611250611249611a5e565b8484611c2f565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661129b611a5e565b73ffffffffffffffffffffffffffffffffffffffff1614806113115750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f9611a5e565b73ffffffffffffffffffffffffffffffffffffffff16145b61131a57600080fd5b600061132530610b31565b905061133081612763565b50565b61133b611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906138b6565b60405180910390fd5b60005b838390508110156114675781600560008686858181106113ee576113ed6139fa565b5b90506020020160208101906114039190613651565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145f90613a58565b9150506113cb565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114fc611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611580906138b6565b60405180910390fd5b80601c8190555050565b61159b611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f906138b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90613b12565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061175e611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e2906138b6565b60405180910390fd5b600d54600e546117fb9190613b32565b421161183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390613bd4565b60405180910390fd5b6103e8821115611881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187890613c66565b60405180910390fd5b42600e8190555060003073ffffffffffffffffffffffffffffffffffffffff166370a08231601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016118e591906135dd565b602060405180830381865afa158015611902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119269190613c9b565b9050600061195161271061194386856129dc90919063ffffffff16565b612a5690919063ffffffff16565b9050600081111561198c5761198b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead83611c2f565b5b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156119fb57600080fd5b505af1158015611a0f573d6000803e3d6000fd5b505050507f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb60405160405180910390a160019350505050919050565b601a60149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613d3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b90613dcc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c229190613529565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9590613e5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0490613ef0565b60405180910390fd5b60008111611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4790613f82565b60405180910390fd5b611d5861106e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dc65750611d9661106e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561229557601a60149054906101000a900460ff16611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190614014565b60405180910390fd5b601a60179054906101000a900460ff1615611fcc57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fcb57601b54811115611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1490614080565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fca57601c5481611f7f84610b31565b611f899190613b32565b10611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc090614112565b60405180910390fd5b5b5b5b6000611fd730610b31565b90506000601d548210159050601b548210611ff257601b5491505b80801561200c5750601a60159054906101000a900460ff16155b80156120665750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561207e5750601a60169054906101000a900460ff165b80156120d45750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561212a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121525761213882612763565b600047905060008111156121505761214f476125fa565b5b505b601a60159054906101000a900460ff161580156121bc5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156121d75750600b54600c546121d39190613b32565b4210155b801561222d5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122835750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561229257612290612aa0565b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061233c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123ef5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123ee5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156123fd5760009050612584565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124a85750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124c057600f546013819055506010546014819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561256b5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612583576011546013819055506012546014819055505b5b61259084848484612c6c565b50505050565b60008383111582906125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d5919061336a565b60405180910390fd5b50600083856125ed9190614132565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61264a600284612a5690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612675573d6000803e3d6000fd5b50601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6126c6600284612a5690919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126f1573d6000803e3d6000fd5b5050565b600060075482111561273c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612733906141d8565b60405180910390fd5b6000612746612c99565b905061275b8184612a5690919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561279b5761279a6141f8565b5b6040519080825280602002602001820160405280156127c95781602001602082028036833780820191505090505b50905030816000815181106127e1576127e06139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ac919061423c565b816001815181106128c0576128bf6139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061292730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a66565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161298b959493929190614362565b600060405180830381600087803b1580156129a557600080fd5b505af11580156129b9573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b60008083036129ee5760009050612a50565b600082846129fc91906143bc565b9050828482612a0b9190614445565b14612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a42906144e8565b60405180910390fd5b809150505b92915050565b6000612a9883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cc4565b905092915050565b600042600c8190555060003073ffffffffffffffffffffffffffffffffffffffff166370a08231601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612b0691906135dd565b602060405180830381865afa158015612b23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b479190613c9b565b90506000612b74612710612b66600954856129dc90919063ffffffff16565b612a5690919063ffffffff16565b90506000811115612baf57612bae601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead83611c2f565b5b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c1e57600080fd5b505af1158015612c32573d6000803e3d6000fd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a16001935050505090565b80612c7a57612c79612d27565b5b612c85848484612d64565b80612c9357612c92612f2f565b5b50505050565b6000806000612ca6612f43565b91509150612cbd8183612a5690919063ffffffff16565b9250505090565b60008083118290612d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d02919061336a565b60405180910390fd5b5060008385612d1a9190614445565b9050809150509392505050565b6000601354148015612d3b57506000601454145b612d6257601354601581905550601454601681905550600060138190555060006014819055505b565b600080600080600080612d7687612fab565b955095509550955095509550612dd486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e6985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb5816130bb565b612ebf8483613178565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f1c9190613529565b60405180910390a3505050505050505050565b601554601381905550601654601481905550565b6000806000600754905060006a295be96e640669720000009050612f7d6a295be96e64066972000000600754612a5690919063ffffffff16565b821015612f9e576007546a295be96e64066972000000935093505050612fa7565b81819350935050505b9091565b6000806000806000806000806000612fc88a6013546014546131b2565b9250925092506000612fd8612c99565b90506000806000612feb8e878787613248565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061305583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612596565b905092915050565b600080828461306c9190613b32565b9050838110156130b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a890614554565b60405180910390fd5b8091505092915050565b60006130c5612c99565b905060006130dc82846129dc90919063ffffffff16565b905061313081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61318d8260075461301390919063ffffffff16565b6007819055506131a88160085461305d90919063ffffffff16565b6008819055505050565b6000806000806131de60646131d0888a6129dc90919063ffffffff16565b612a5690919063ffffffff16565b9050600061320860646131fa888b6129dc90919063ffffffff16565b612a5690919063ffffffff16565b9050600061323182613223858c61301390919063ffffffff16565b61301390919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061326185896129dc90919063ffffffff16565b9050600061327886896129dc90919063ffffffff16565b9050600061328f87896129dc90919063ffffffff16565b905060006132b8826132aa858761301390919063ffffffff16565b61301390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561330b5780820151818401526020810190506132f0565b8381111561331a576000848401525b50505050565b6000601f19601f8301169050919050565b600061333c826132d1565b61334681856132dc565b93506133568185602086016132ed565b61335f81613320565b840191505092915050565b600060208201905081810360008301526133848184613331565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133c182613396565b9050919050565b6133d1816133b6565b81146133dc57600080fd5b50565b6000813590506133ee816133c8565b92915050565b6000819050919050565b613407816133f4565b811461341257600080fd5b50565b600081359050613424816133fe565b92915050565b600080604083850312156134415761344061338c565b5b600061344f858286016133df565b925050602061346085828601613415565b9150509250929050565b60008115159050919050565b61347f8161346a565b82525050565b600060208201905061349a6000830184613476565b92915050565b6000819050919050565b60006134c56134c06134bb84613396565b6134a0565b613396565b9050919050565b60006134d7826134aa565b9050919050565b60006134e9826134cc565b9050919050565b6134f9816134de565b82525050565b600060208201905061351460008301846134f0565b92915050565b613523816133f4565b82525050565b600060208201905061353e600083018461351a565b92915050565b60008060006060848603121561355d5761355c61338c565b5b600061356b868287016133df565b935050602061357c868287016133df565b925050604061358d86828701613415565b9150509250925092565b600060ff82169050919050565b6135ad81613597565b82525050565b60006020820190506135c860008301846135a4565b92915050565b6135d7816133b6565b82525050565b60006020820190506135f260008301846135ce565b92915050565b6136018161346a565b811461360c57600080fd5b50565b60008135905061361e816135f8565b92915050565b60006020828403121561363a5761363961338c565b5b60006136488482850161360f565b91505092915050565b6000602082840312156136675761366661338c565b5b6000613675848285016133df565b91505092915050565b6000806000606084860312156136975761369661338c565b5b60006136a586828701613415565b93505060206136b686828701613415565b92505060406136c78682870161360f565b9150509250925092565b6000602082840312156136e7576136e661338c565b5b60006136f584828501613415565b91505092915050565b600080600080608085870312156137185761371761338c565b5b600061372687828801613415565b945050602061373787828801613415565b935050604061374887828801613415565b925050606061375987828801613415565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f84011261378a57613789613765565b5b8235905067ffffffffffffffff8111156137a7576137a661376a565b5b6020830191508360208202830111156137c3576137c261376f565b5b9250929050565b6000806000604084860312156137e3576137e261338c565b5b600084013567ffffffffffffffff81111561380157613800613391565b5b61380d86828701613774565b935093505060206138208682870161360f565b9150509250925092565b600080604083850312156138415761384061338c565b5b600061384f858286016133df565b9250506020613860858286016133df565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138a06020836132dc565b91506138ab8261386a565b602082019050919050565b600060208201905081810360008301526138cf81613893565b9050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b60006139326033836132dc565b915061393d826138d6565b604082019050919050565b6000602082019050818103600083015261396181613925565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b60006139c46030836132dc565b91506139cf82613968565b604082019050919050565b600060208201905081810360008301526139f3816139b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a63826133f4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a9557613a94613a29565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613afc6026836132dc565b9150613b0782613aa0565b604082019050919050565b60006020820190508181036000830152613b2b81613aef565b9050919050565b6000613b3d826133f4565b9150613b48836133f4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b7d57613b7c613a29565b5b828201905092915050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000613bbe6020836132dc565b9150613bc982613b88565b602082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000613c50602a836132dc565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b600081519050613c95816133fe565b92915050565b600060208284031215613cb157613cb061338c565b5b6000613cbf84828501613c86565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d246024836132dc565b9150613d2f82613cc8565b604082019050919050565b60006020820190508181036000830152613d5381613d17565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613db66022836132dc565b9150613dc182613d5a565b604082019050919050565b60006020820190508181036000830152613de581613da9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e486025836132dc565b9150613e5382613dec565b604082019050919050565b60006020820190508181036000830152613e7781613e3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613eda6023836132dc565b9150613ee582613e7e565b604082019050919050565b60006020820190508181036000830152613f0981613ecd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f6c6029836132dc565b9150613f7782613f10565b604082019050919050565b60006020820190508181036000830152613f9b81613f5f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613ffe603f836132dc565b915061400982613fa2565b604082019050919050565b6000602082019050818103600083015261402d81613ff1565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061406a601c836132dc565b915061407582614034565b602082019050919050565b600060208201905081810360008301526140998161405d565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006140fc6023836132dc565b9150614107826140a0565b604082019050919050565b6000602082019050818103600083015261412b816140ef565b9050919050565b600061413d826133f4565b9150614148836133f4565b92508282101561415b5761415a613a29565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006141c2602a836132dc565b91506141cd82614166565b604082019050919050565b600060208201905081810360008301526141f1816141b5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614236816133c8565b92915050565b6000602082840312156142525761425161338c565b5b600061426084828501614227565b91505092915050565b6000819050919050565b600061428e61428961428484614269565b6134a0565b6133f4565b9050919050565b61429e81614273565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142d9816133b6565b82525050565b60006142eb83836142d0565b60208301905092915050565b6000602082019050919050565b600061430f826142a4565b61431981856142af565b9350614324836142c0565b8060005b8381101561435557815161433c88826142df565b9750614347836142f7565b925050600181019050614328565b5085935050505092915050565b600060a082019050614377600083018861351a565b6143846020830187614295565b81810360408301526143968186614304565b90506143a560608301856135ce565b6143b2608083018461351a565b9695505050505050565b60006143c7826133f4565b91506143d2836133f4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561440b5761440a613a29565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614450826133f4565b915061445b836133f4565b92508261446b5761446a614416565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144d26021836132dc565b91506144dd82614476565b604082019050919050565b60006020820190508181036000830152614501816144c5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061453e601b836132dc565b915061454982614508565b602082019050919050565b6000602082019050818103600083015261456d81614531565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122013218b81e0091a955ecb7baf2ad3f3c30d6a96fc08d61dd4f1cb35b07547faf364736f6c634300080d0033
Deployed Bytecode
0x6080604052600436106102085760003560e01c8063751039fc11610118578063a4c82a00116100a0578063dd62ed3e1161006f578063dd62ed3e146106f6578063ea1644d514610733578063f2fde38b1461075c578063fe72b27a14610785578063ffb54a99146107c25761020f565b8063a4c82a001461064e578063a9059cbb14610679578063c3c8cd80146106b6578063c492f046146106cd5761020f565b80638f9a55c0116100e75780638f9a55c01461057b57806395d89b41146105a657806398a5c315146105d15780639ec22c0e146105fa578063a2a957bb146106255761020f565b8063751039fc146104f75780637d1db4a51461050e5780638a8c523c146105395780638da5cb5b146105505761020f565b80632e82f1a01161019b5780636fc3eaec1161016a5780636fc3eaec1461043a57806370a0823114610451578063715018a61461048e578063730c1888146104a557806374010ece146104ce5761020f565b80632e82f1a014610390578063313ce567146103bb57806349bd5a5e146103e65780636d8aa8f8146104115761020f565b8063184c16c5116101d7578063184c16c5146102d2578063199ffc72146102fd57806323b872dd146103285780632c3e486c146103655761020f565b806306fdde0314610214578063095ea7b31461023f5780631694505e1461027c57806318160ddd146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b506102296107ed565b604051610236919061336a565b60405180910390f35b34801561024b57600080fd5b506102666004803603810190610261919061342a565b61082a565b6040516102739190613485565b60405180910390f35b34801561028857600080fd5b50610291610848565b60405161029e91906134ff565b60405180910390f35b3480156102b357600080fd5b506102bc61086e565b6040516102c99190613529565b60405180910390f35b3480156102de57600080fd5b506102e7610881565b6040516102f49190613529565b60405180910390f35b34801561030957600080fd5b50610312610887565b60405161031f9190613529565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190613544565b61088d565b60405161035c9190613485565b60405180910390f35b34801561037157600080fd5b5061037a610966565b6040516103879190613529565b60405180910390f35b34801561039c57600080fd5b506103a561096c565b6040516103b29190613485565b60405180910390f35b3480156103c757600080fd5b506103d061097f565b6040516103dd91906135b3565b60405180910390f35b3480156103f257600080fd5b506103fb610988565b60405161040891906135dd565b60405180910390f35b34801561041d57600080fd5b5061043860048036038101906104339190613624565b6109ae565b005b34801561044657600080fd5b5061044f610a60565b005b34801561045d57600080fd5b5061047860048036038101906104739190613651565b610b31565b6040516104859190613529565b60405180910390f35b34801561049a57600080fd5b506104a3610b82565b005b3480156104b157600080fd5b506104cc60048036038101906104c7919061367e565b610cd5565b005b3480156104da57600080fd5b506104f560048036038101906104f091906136d1565b610e2e565b005b34801561050357600080fd5b5061050c610ecd565b005b34801561051a57600080fd5b50610523610f7f565b6040516105309190613529565b60405180910390f35b34801561054557600080fd5b5061054e610f85565b005b34801561055c57600080fd5b5061056561106e565b60405161057291906135dd565b60405180910390f35b34801561058757600080fd5b50610590611097565b60405161059d9190613529565b60405180910390f35b3480156105b257600080fd5b506105bb61109d565b6040516105c8919061336a565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f391906136d1565b6110da565b005b34801561060657600080fd5b5061060f611179565b60405161061c9190613529565b60405180910390f35b34801561063157600080fd5b5061064c600480360381019061064791906136fe565b61117f565b005b34801561065a57600080fd5b50610663611236565b6040516106709190613529565b60405180910390f35b34801561068557600080fd5b506106a0600480360381019061069b919061342a565b61123c565b6040516106ad9190613485565b60405180910390f35b3480156106c257600080fd5b506106cb61125a565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906137ca565b611333565b005b34801561070257600080fd5b5061071d6004803603810190610718919061382a565b61146d565b60405161072a9190613529565b60405180910390f35b34801561073f57600080fd5b5061075a600480360381019061075591906136d1565b6114f4565b005b34801561076857600080fd5b50610783600480360381019061077e9190613651565b611593565b005b34801561079157600080fd5b506107ac60048036038101906107a791906136d1565b611754565b6040516107b99190613485565b60405180910390f35b3480156107ce57600080fd5b506107d7611a4b565b6040516107e49190613485565b60405180910390f35b60606040518060400160405280600b81526020017f5048494c4f435445544553000000000000000000000000000000000000000000815250905090565b600061083e610837611a5e565b8484611a66565b6001905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006a295be96e64066972000000905090565b600d5481565b60095481565b600061089a848484611c2f565b61095b846108a6611a5e565b6109568560405180606001604052806028815260200161457560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061090c611a5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125969092919063ffffffff16565b611a66565b600190509392505050565b600b5481565b600a60009054906101000a900460ff1681565b60006012905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b6611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a906138b6565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa1611a5e565b73ffffffffffffffffffffffffffffffffffffffff161480610b175750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aff611a5e565b73ffffffffffffffffffffffffffffffffffffffff16145b610b2057600080fd5b6000479050610b2e816125fa565b50565b6000610b7b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f5565b9050919050565b610b8a611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e906138b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cdd611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d61906138b6565b60405180910390fd5b610258831015610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690613948565b60405180910390fd5b6103e88211158015610dc2575060008210155b610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df8906139da565b60405180910390fd5b82600b819055508160098190555080600a60006101000a81548160ff021916908315150217905550505050565b610e36611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba906138b6565b60405180910390fd5b80601b8190555050565b610ed5611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f59906138b6565b60405180910390fd5b6000601a60176101000a81548160ff021916908315150217905550565b601b5481565b610f8d611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611011906138b6565b60405180910390fd5b601a60149054906101000a900460ff1661106c576001601a60146101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff02191690831515021790555042600c819055505b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601c5481565b60606040518060400160405280600481526020017f474f415400000000000000000000000000000000000000000000000000000000815250905090565b6110e2611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611166906138b6565b60405180910390fd5b80601d8190555050565b600e5481565b611187611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b906138b6565b60405180910390fd5b83600f8190555082601181905550816010819055508060128190555050505050565b600c5481565b6000611250611249611a5e565b8484611c2f565b6001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661129b611a5e565b73ffffffffffffffffffffffffffffffffffffffff1614806113115750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f9611a5e565b73ffffffffffffffffffffffffffffffffffffffff16145b61131a57600080fd5b600061132530610b31565b905061133081612763565b50565b61133b611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906138b6565b60405180910390fd5b60005b838390508110156114675781600560008686858181106113ee576113ed6139fa565b5b90506020020160208101906114039190613651565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145f90613a58565b9150506113cb565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114fc611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611580906138b6565b60405180910390fd5b80601c8190555050565b61159b611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f906138b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90613b12565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061175e611a5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e2906138b6565b60405180910390fd5b600d54600e546117fb9190613b32565b421161183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390613bd4565b60405180910390fd5b6103e8821115611881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187890613c66565b60405180910390fd5b42600e8190555060003073ffffffffffffffffffffffffffffffffffffffff166370a08231601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016118e591906135dd565b602060405180830381865afa158015611902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119269190613c9b565b9050600061195161271061194386856129dc90919063ffffffff16565b612a5690919063ffffffff16565b9050600081111561198c5761198b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead83611c2f565b5b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156119fb57600080fd5b505af1158015611a0f573d6000803e3d6000fd5b505050507f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb60405160405180910390a160019350505050919050565b601a60149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613d3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b90613dcc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c229190613529565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9590613e5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0490613ef0565b60405180910390fd5b60008111611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4790613f82565b60405180910390fd5b611d5861106e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dc65750611d9661106e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561229557601a60149054906101000a900460ff16611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1190614014565b60405180910390fd5b601a60179054906101000a900460ff1615611fcc57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fcb57601b54811115611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1490614080565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fca57601c5481611f7f84610b31565b611f899190613b32565b10611fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc090614112565b60405180910390fd5b5b5b5b6000611fd730610b31565b90506000601d548210159050601b548210611ff257601b5491505b80801561200c5750601a60159054906101000a900460ff16155b80156120665750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561207e5750601a60169054906101000a900460ff165b80156120d45750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561212a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121525761213882612763565b600047905060008111156121505761214f476125fa565b5b505b601a60159054906101000a900460ff161580156121bc5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156121d75750600b54600c546121d39190613b32565b4210155b801561222d5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122835750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561229257612290612aa0565b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061233c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123ef5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123ee5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156123fd5760009050612584565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124a85750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124c057600f546013819055506010546014819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561256b5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612583576011546013819055506012546014819055505b5b61259084848484612c6c565b50505050565b60008383111582906125de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d5919061336a565b60405180910390fd5b50600083856125ed9190614132565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61264a600284612a5690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612675573d6000803e3d6000fd5b50601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6126c6600284612a5690919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126f1573d6000803e3d6000fd5b5050565b600060075482111561273c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612733906141d8565b60405180910390fd5b6000612746612c99565b905061275b8184612a5690919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561279b5761279a6141f8565b5b6040519080825280602002602001820160405280156127c95781602001602082028036833780820191505090505b50905030816000815181106127e1576127e06139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ac919061423c565b816001815181106128c0576128bf6139fa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061292730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a66565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161298b959493929190614362565b600060405180830381600087803b1580156129a557600080fd5b505af11580156129b9573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b60008083036129ee5760009050612a50565b600082846129fc91906143bc565b9050828482612a0b9190614445565b14612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a42906144e8565b60405180910390fd5b809150505b92915050565b6000612a9883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cc4565b905092915050565b600042600c8190555060003073ffffffffffffffffffffffffffffffffffffffff166370a08231601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612b0691906135dd565b602060405180830381865afa158015612b23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b479190613c9b565b90506000612b74612710612b66600954856129dc90919063ffffffff16565b612a5690919063ffffffff16565b90506000811115612baf57612bae601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead83611c2f565b5b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c1e57600080fd5b505af1158015612c32573d6000803e3d6000fd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a16001935050505090565b80612c7a57612c79612d27565b5b612c85848484612d64565b80612c9357612c92612f2f565b5b50505050565b6000806000612ca6612f43565b91509150612cbd8183612a5690919063ffffffff16565b9250505090565b60008083118290612d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d02919061336a565b60405180910390fd5b5060008385612d1a9190614445565b9050809150509392505050565b6000601354148015612d3b57506000601454145b612d6257601354601581905550601454601681905550600060138190555060006014819055505b565b600080600080600080612d7687612fab565b955095509550955095509550612dd486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e6985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb5816130bb565b612ebf8483613178565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f1c9190613529565b60405180910390a3505050505050505050565b601554601381905550601654601481905550565b6000806000600754905060006a295be96e640669720000009050612f7d6a295be96e64066972000000600754612a5690919063ffffffff16565b821015612f9e576007546a295be96e64066972000000935093505050612fa7565b81819350935050505b9091565b6000806000806000806000806000612fc88a6013546014546131b2565b9250925092506000612fd8612c99565b90506000806000612feb8e878787613248565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061305583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612596565b905092915050565b600080828461306c9190613b32565b9050838110156130b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a890614554565b60405180910390fd5b8091505092915050565b60006130c5612c99565b905060006130dc82846129dc90919063ffffffff16565b905061313081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61318d8260075461301390919063ffffffff16565b6007819055506131a88160085461305d90919063ffffffff16565b6008819055505050565b6000806000806131de60646131d0888a6129dc90919063ffffffff16565b612a5690919063ffffffff16565b9050600061320860646131fa888b6129dc90919063ffffffff16565b612a5690919063ffffffff16565b9050600061323182613223858c61301390919063ffffffff16565b61301390919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061326185896129dc90919063ffffffff16565b9050600061327886896129dc90919063ffffffff16565b9050600061328f87896129dc90919063ffffffff16565b905060006132b8826132aa858761301390919063ffffffff16565b61301390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561330b5780820151818401526020810190506132f0565b8381111561331a576000848401525b50505050565b6000601f19601f8301169050919050565b600061333c826132d1565b61334681856132dc565b93506133568185602086016132ed565b61335f81613320565b840191505092915050565b600060208201905081810360008301526133848184613331565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133c182613396565b9050919050565b6133d1816133b6565b81146133dc57600080fd5b50565b6000813590506133ee816133c8565b92915050565b6000819050919050565b613407816133f4565b811461341257600080fd5b50565b600081359050613424816133fe565b92915050565b600080604083850312156134415761344061338c565b5b600061344f858286016133df565b925050602061346085828601613415565b9150509250929050565b60008115159050919050565b61347f8161346a565b82525050565b600060208201905061349a6000830184613476565b92915050565b6000819050919050565b60006134c56134c06134bb84613396565b6134a0565b613396565b9050919050565b60006134d7826134aa565b9050919050565b60006134e9826134cc565b9050919050565b6134f9816134de565b82525050565b600060208201905061351460008301846134f0565b92915050565b613523816133f4565b82525050565b600060208201905061353e600083018461351a565b92915050565b60008060006060848603121561355d5761355c61338c565b5b600061356b868287016133df565b935050602061357c868287016133df565b925050604061358d86828701613415565b9150509250925092565b600060ff82169050919050565b6135ad81613597565b82525050565b60006020820190506135c860008301846135a4565b92915050565b6135d7816133b6565b82525050565b60006020820190506135f260008301846135ce565b92915050565b6136018161346a565b811461360c57600080fd5b50565b60008135905061361e816135f8565b92915050565b60006020828403121561363a5761363961338c565b5b60006136488482850161360f565b91505092915050565b6000602082840312156136675761366661338c565b5b6000613675848285016133df565b91505092915050565b6000806000606084860312156136975761369661338c565b5b60006136a586828701613415565b93505060206136b686828701613415565b92505060406136c78682870161360f565b9150509250925092565b6000602082840312156136e7576136e661338c565b5b60006136f584828501613415565b91505092915050565b600080600080608085870312156137185761371761338c565b5b600061372687828801613415565b945050602061373787828801613415565b935050604061374887828801613415565b925050606061375987828801613415565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f84011261378a57613789613765565b5b8235905067ffffffffffffffff8111156137a7576137a661376a565b5b6020830191508360208202830111156137c3576137c261376f565b5b9250929050565b6000806000604084860312156137e3576137e261338c565b5b600084013567ffffffffffffffff81111561380157613800613391565b5b61380d86828701613774565b935093505060206138208682870161360f565b9150509250925092565b600080604083850312156138415761384061338c565b5b600061384f858286016133df565b9250506020613860858286016133df565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138a06020836132dc565b91506138ab8261386a565b602082019050919050565b600060208201905081810360008301526138cf81613893565b9050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b60006139326033836132dc565b915061393d826138d6565b604082019050919050565b6000602082019050818103600083015261396181613925565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b60006139c46030836132dc565b91506139cf82613968565b604082019050919050565b600060208201905081810360008301526139f3816139b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a63826133f4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a9557613a94613a29565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613afc6026836132dc565b9150613b0782613aa0565b604082019050919050565b60006020820190508181036000830152613b2b81613aef565b9050919050565b6000613b3d826133f4565b9150613b48836133f4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b7d57613b7c613a29565b5b828201905092915050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000613bbe6020836132dc565b9150613bc982613b88565b602082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000613c50602a836132dc565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b600081519050613c95816133fe565b92915050565b600060208284031215613cb157613cb061338c565b5b6000613cbf84828501613c86565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d246024836132dc565b9150613d2f82613cc8565b604082019050919050565b60006020820190508181036000830152613d5381613d17565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613db66022836132dc565b9150613dc182613d5a565b604082019050919050565b60006020820190508181036000830152613de581613da9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e486025836132dc565b9150613e5382613dec565b604082019050919050565b60006020820190508181036000830152613e7781613e3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613eda6023836132dc565b9150613ee582613e7e565b604082019050919050565b60006020820190508181036000830152613f0981613ecd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f6c6029836132dc565b9150613f7782613f10565b604082019050919050565b60006020820190508181036000830152613f9b81613f5f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613ffe603f836132dc565b915061400982613fa2565b604082019050919050565b6000602082019050818103600083015261402d81613ff1565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061406a601c836132dc565b915061407582614034565b602082019050919050565b600060208201905081810360008301526140998161405d565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006140fc6023836132dc565b9150614107826140a0565b604082019050919050565b6000602082019050818103600083015261412b816140ef565b9050919050565b600061413d826133f4565b9150614148836133f4565b92508282101561415b5761415a613a29565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006141c2602a836132dc565b91506141cd82614166565b604082019050919050565b600060208201905081810360008301526141f1816141b5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614236816133c8565b92915050565b6000602082840312156142525761425161338c565b5b600061426084828501614227565b91505092915050565b6000819050919050565b600061428e61428961428484614269565b6134a0565b6133f4565b9050919050565b61429e81614273565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142d9816133b6565b82525050565b60006142eb83836142d0565b60208301905092915050565b6000602082019050919050565b600061430f826142a4565b61431981856142af565b9350614324836142c0565b8060005b8381101561435557815161433c88826142df565b9750614347836142f7565b925050600181019050614328565b5085935050505092915050565b600060a082019050614377600083018861351a565b6143846020830187614295565b81810360408301526143968186614304565b90506143a560608301856135ce565b6143b2608083018461351a565b9695505050505050565b60006143c7826133f4565b91506143d2836133f4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561440b5761440a613a29565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614450826133f4565b915061445b836133f4565b92508261446b5761446a614416565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144d26021836132dc565b91506144dd82614476565b604082019050919050565b60006020820190508181036000830152614501816144c5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061453e601b836132dc565b915061454982614508565b602082019050919050565b6000602082019050818103600083015261456d81614531565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122013218b81e0091a955ecb7baf2ad3f3c30d6a96fc08d61dd4f1cb35b07547faf364736f6c634300080d0033
Deployed Bytecode Sourcemap
6728:16755:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9770:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10701:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8392:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10050:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7651:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7465:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10903:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7561:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7521:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9958:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8440:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20450:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16244:235;;;;;;;;;;;;;:::i;:::-;;10154:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1752:148;;;;;;;;;;;;;:::i;:::-;;21077:555;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20594:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15033:85;;;;;;;;;;;;;:::i;:::-;;8628:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15788:203;;;;;;;;;;;;;:::i;:::-;;1536:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8682:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9862:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20258:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7705:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19911:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7613:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10301:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16000:236;;;;;;;;;;;;;:::i;:::-;;20835:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10508:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20711:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1909:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22430:1050;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8481:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9770:83;9807:13;9840:5;;;;;;;;;;;;;;;;;9833:12;;9770:83;:::o;10701:193::-;10803:4;10825:39;10834:12;:10;:12::i;:::-;10848:7;10857:6;10825:8;:39::i;:::-;10882:4;10875:11;;10701:193;;;;:::o;8392:41::-;;;;;;;;;;;;;:::o;10050:95::-;10103:7;7348:19;10123:14;;10050:95;:::o;7651:47::-;;;;:::o;7465:36::-;;;;:::o;10903:446::-;11035:4;11052:36;11062:6;11070:9;11081:6;11052:9;:36::i;:::-;11099:220;11122:6;11143:12;:10;:12::i;:::-;11170:138;11226:6;11170:138;;;;;;;;;;;;;;;;;:11;:19;11182:6;11170:19;;;;;;;;;;;;;;;:33;11190:12;:10;:12::i;:::-;11170:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;11099:8;:220::i;:::-;11337:4;11330:11;;10903:446;;;;;:::o;7561:45::-;;;;:::o;7521:33::-;;;;;;;;;;;;;:::o;9958:83::-;9999:5;6961:2;10017:16;;9958:83;:::o;8440:28::-;;;;;;;;;;;;;:::o;20450:101::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20531:12:::1;20517:11;;:26;;;;;;;;;;;;;;;;;;20450:101:::0;:::o;16244:235::-;16310:19;;;;;;;;;;;16294:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;16349:17;;;;;;;;;;;16333:33;;:12;:10;:12::i;:::-;:33;;;16294:72;16286:81;;;;;;16378:26;16407:21;16378:50;;16439:32;16452:18;16439:12;:32::i;:::-;16275:204;16244:235::o;10154:138::-;10220:7;10247:37;10267:7;:16;10275:7;10267:16;;;;;;;;;;;;;;;;10247:19;:37::i;:::-;10240:44;;10154:138;;;:::o;1752:148::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1859:1:::1;1822:40;;1843:6;::::0;::::1;;;;;;;;1822:40;;;;;;;;;;;;1890:1;1873:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1752:148::o:0;21077:555::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21279:3:::1;21256:19;:26;;21234:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;21406:4;21394:8;:16;;:33;;;;;21426:1;21414:8;:13;;21394:33;21372:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;21532:19;21514:15;:37;;;;21581:8;21562:16;:27;;;;21616:8;21600:13;;:24;;;;;;;;;;;;;;;;;;21077:555:::0;;;:::o;20594:108::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20683:11:::1;20668:12;:26;;;;20594:108:::0;:::o;15033:85::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15105:5:::1;15087:15;;:23;;;;;;;;;;;;;;;;;;15033:85::o:0;8628:44::-;;;;:::o;15788:203::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15846:11:::1;;;;;;;;;;;15841:143;;15888:4;15874:11;;:18;;;;;;;;;;;;;;;;;;15921:4;15907:11;;:18;;;;;;;;;;;;;;;;;;15957:15;15940:14;:32;;;;15841:143;15788:203::o:0;1536:79::-;1574:7;1601:6;;;;;;;;;;;1594:13;;1536:79;:::o;8682:46::-;;;;:::o;9862:87::-;9901:13;9934:7;;;;;;;;;;;;;;;;;9927:14;;9862:87;:::o;20258:139::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20371:18:::1;20349:19;:40;;;;20258:139:::0;:::o;7705:35::-;;;;:::o;19911:294::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20062:13:::1;20045:14;:30;;;;20104:14;20086:15;:32;;;;20147:11;20132:12;:26;;;;20185:12;20169:13;:28;;;;19911:294:::0;;;;:::o;7613:29::-;;;;:::o;10301:199::-;10406:4;10428:42;10438:12;:10;:12::i;:::-;10452:9;10463:6;10428:9;:42::i;:::-;10488:4;10481:11;;10301:199;;;;:::o;16000:236::-;16066:19;;;;;;;;;;;16050:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;16105:17;;;;;;;;;;;16089:33;;:12;:10;:12::i;:::-;:33;;;16050:72;16042:81;;;;;;16134:23;16160:24;16178:4;16160:9;:24::i;:::-;16134:50;;16195:33;16212:15;16195:16;:33::i;:::-;16031:205;16000:236::o;20835:234::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20952:9:::1;20948:114;20971:8;;:15;;20967:1;:19;20948:114;;;21042:8;21008:18;:31;21027:8;;21036:1;21027:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21008:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;20988:3;;;;;:::i;:::-;;;;20948:114;;;;20835:234:::0;;;:::o;10508:184::-;10625:7;10657:11;:18;10669:5;10657:18;;;;;;;;;;;;;;;:27;10676:7;10657:27;;;;;;;;;;;;;;;;10650:34;;10508:184;;;;:::o;20711:115::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20805:13:::1;20788:14;:30;;;;20711:115:::0;:::o;1909:244::-;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2018:1:::1;1998:22;;:8;:22;;::::0;1990:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2108:8;2079:38;;2100:6;::::0;::::1;;;;;;;;2079:38;;;;;;;;;;;;2137:8;2128:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1909:244:::0;:::o;22430:1050::-;22541:4;1674:12;:10;:12::i;:::-;1664:22;;:6;;;;;;;;;;:22;;;1656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22626:19:::1;;22603:20;;:42;;;;:::i;:::-;22585:15;:60;22563:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;22735:4;22724:7;:15;;22716:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22820:15;22797:20;:38;;;;22890:28;22921:4;:14;;;22936:13;;;;;;;;;;;22921:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22890:60;;23000:20;23023:44;23061:5;23023:33;23048:7;23023:20;:24;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;23000:67;;23187:1;23172:12;:16;23168:104;;;23205:55;23215:13;;;;;;;;;;;23238:6;23247:12;23205:9;:55::i;:::-;23168:104;23347:19;23384:13;;;;;;;;;;;23347:51;;23409:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23436:14;;;;;;;;;;23468:4;23461:11;;;;;22430:1050:::0;;;:::o;8481:23::-;;;;;;;;;;;;;:::o;286:98::-;339:7;366:10;359:17;;286:98;:::o;12046:369::-;12190:1;12173:19;;:5;:19;;;12165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12271:1;12252:21;;:7;:21;;;12244:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12353:6;12323:11;:18;12335:5;12323:18;;;;;;;;;;;;;;;:27;12342:7;12323:27;;;;;;;;;;;;;;;:36;;;;12391:7;12375:32;;12384:5;12375:32;;;12400:6;12375:32;;;;;;:::i;:::-;;;;;;;;12046:369;;;:::o;12424:2601::-;12562:1;12546:18;;:4;:18;;;12538:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12639:1;12625:16;;:2;:16;;;12617:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12709:1;12700:6;:10;12692:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12782:7;:5;:7::i;:::-;12774:15;;:4;:15;;;;:32;;;;;12799:7;:5;:7::i;:::-;12793:13;;:2;:13;;;;12774:32;12770:1523;;;12864:11;;;;;;;;;;;12856:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12964:15;;;;;;;;;;;12960:405;;;13005:18;:24;13024:4;13005:24;;;;;;;;;;;;;;;;;;;;;;;;;13004:25;:52;;;;;13034:18;:22;13053:2;13034:22;;;;;;;;;;;;;;;;;;;;;;;;;13033:23;13004:52;13000:350;;;13099:12;;13089:6;:22;;13081:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13178:13;;;;;;;;;;;13172:19;;:2;:19;;;13169:162;;13253:14;;13244:6;13228:13;13238:2;13228:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13220:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;13169:162;13000:350;12960:405;13382:28;13413:24;13431:4;13413:9;:24::i;:::-;13382:55;;13452:12;13491:19;;13467:20;:43;;13452:58;;13555:12;;13531:20;:36;13528:124;;13624:12;;13601:35;;13528:124;13673:7;:18;;;;;13685:6;;;;;;;;;;;13684:7;13673:18;:43;;;;;13703:13;;;;;;;;;;;13695:21;;:4;:21;;;;13673:43;:58;;;;;13720:11;;;;;;;;;;;13673:58;:87;;;;;13736:18;:24;13755:4;13736:24;;;;;;;;;;;;;;;;;;;;;;;;;13735:25;13673:87;:114;;;;;13765:18;:22;13784:2;13765:22;;;;;;;;;;;;;;;;;;;;;;;;;13764:23;13673:114;13669:386;;;13808:38;13825:20;13808:16;:38::i;:::-;13865:26;13894:21;13865:50;;13959:1;13938:18;:22;13934:106;;;13985:35;13998:21;13985:12;:35::i;:::-;13934:106;13789:266;13669:386;14076:6;;;;;;;;;;;14075:7;:30;;;;;14092:13;;;;;;;;;;;14086:19;;:2;:19;;;14075:30;:85;;;;;14145:15;;14128:14;;:32;;;;:::i;:::-;14109:15;:51;;14075:85;:114;;;;;14165:18;:24;14184:4;14165:24;;;;;;;;;;;;;;;;;;;;;;;;;14164:25;14075:114;:141;;;;;14194:18;:22;14213:2;14194:22;;;;;;;;;;;;;;;;;;;;;;;;;14193:23;14075:141;14071:211;;;14237:29;:27;:29::i;:::-;;14071:211;12808:1485;;12770:1523;14306:12;14321:4;14306:19;;14371:18;:24;14390:4;14371:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;14399:18;:22;14418:2;14399:22;;;;;;;;;;;;;;;;;;;;;;;;;14371:50;14370:102;;;;14435:13;;;;;;;;;;;14427:21;;:4;:21;;;;:44;;;;;14458:13;;;;;;;;;;;14452:19;;:2;:19;;;;14427:44;14370:102;14366:597;;;14499:5;14489:15;;14366:597;;;14583:13;;;;;;;;;;;14575:21;;:4;:21;;;:55;;;;;14614:15;;;;;;;;;;;14600:30;;:2;:30;;;;14575:55;14572:162;;;14663:14;;14651:9;:26;;;;14706:12;;14696:7;:22;;;;14572:162;14794:13;;;;;;;;;;;14788:19;;:2;:19;;;:55;;;;;14827:15;;;;;;;;;;;14811:32;;:4;:32;;;;14788:55;14784:165;;;14876:15;;14864:9;:27;;;;14920:13;;14910:7;:23;;;;14784:165;14366:597;14976:41;14991:4;14997:2;15001:6;15009:7;14976:14;:41::i;:::-;12527:2498;12424:2601;;;:::o;2521:224::-;2641:7;2674:1;2669;:6;;2677:12;2661:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2701:9;2717:1;2713;:5;;;;:::i;:::-;2701:17;;2736:1;2729:8;;;2521:224;;;;;:::o;15619:160::-;15676:19;;;;;;;;;;;:28;;:43;15705:13;15716:1;15705:6;:10;;:13;;;;:::i;:::-;15676:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15730:17;;;;;;;;;;;:26;;:41;15757:13;15768:1;15757:6;:10;;:13;;;;:::i;:::-;15730:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15619:160;:::o;11358:323::-;11453:7;11511;;11500;:18;;11478:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11599:19;11621:10;:8;:10::i;:::-;11599:32;;11649:24;11661:11;11649:7;:11;;:24;;;;:::i;:::-;11642:31;;;11358:323;;;:::o;15127:483::-;8951:4;8942:6;;:13;;;;;;;;;;;;;;;;;;15205:21:::1;15243:1;15229:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15205:40;;15274:4;15256;15261:1;15256:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15300:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15290:4;15295:1;15290:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15333:62;15350:4;15365:15;;;;;;;;;;;15383:11;15333:8;:62::i;:::-;15406:15;;;;;;;;;;;:66;;;15487:11;15513:1;15529:4;15556;15576:15;15406:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15194:416;8987:5:::0;8978:6;;:14;;;;;;;;;;;;;;;;;;15127:483;:::o;2754:246::-;2812:7;2841:1;2836;:6;2832:47;;2866:1;2859:8;;;;2832:47;2889:9;2905:1;2901;:5;;;;:::i;:::-;2889:17;;2934:1;2929;2925;:5;;;;:::i;:::-;:10;2917:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2991:1;2984:8;;;2754:246;;;;;:::o;3009:132::-;3067:7;3094:39;3098:1;3101;3094:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3087:46;;3009:132;;;;:::o;21640:782::-;21697:4;21731:15;21714:14;:32;;;;21801:28;21832:4;:14;;;21847:13;;;;;;;;;;;21832:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21801:60;;21911:20;21934:77;21995:5;21934:42;21959:16;;21934:20;:24;;:42;;;;:::i;:::-;:46;;:77;;;;:::i;:::-;21911:100;;22131:1;22116:12;:16;22112:104;;;22149:55;22159:13;;;;;;;;;;;22182:6;22191:12;22149:9;:55::i;:::-;22112:104;22291:19;22328:13;;;;;;;;;;;22291:51;;22353:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22380:12;;;;;;;;;;22410:4;22403:11;;;;;21640:782;:::o;16488:282::-;16644:7;16639:28;;16653:14;:12;:14::i;:::-;16639:28;16678:44;16696:6;16704:9;16715:6;16678:17;:44::i;:::-;16738:7;16733:29;;16747:15;:13;:15::i;:::-;16733:29;16488:282;;;;:::o;19466:167::-;19508:7;19529:15;19546;19565:19;:17;:19::i;:::-;19528:56;;;;19605:20;19617:7;19605;:11;;:20;;;;:::i;:::-;19598:27;;;;19466:167;:::o;3150:223::-;3270:7;3302:1;3298;:5;3305:12;3290:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3329:9;3345:1;3341;:5;;;;:::i;:::-;3329:17;;3364:1;3357:8;;;3150:223;;;;;:::o;11690:221::-;11750:1;11737:9;;:14;:30;;;;;11766:1;11755:7;;:12;11737:30;11769:7;11733:43;11809:9;;11789:17;:29;;;;11847:7;;11829:15;:25;;;;11880:1;11868:9;:13;;;;11902:1;11892:7;:11;;;;11690:221;:::o;16779:610::-;16926:15;16956:23;16994:12;17021:23;17059:12;17086:13;17113:19;17124:7;17113:10;:19::i;:::-;16911:221;;;;;;;;;;;;17161:28;17181:7;17161;:15;17169:6;17161:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;17143:7;:15;17151:6;17143:15;;;;;;;;;;;;;;;:46;;;;17221:39;17244:15;17221:7;:18;17229:9;17221:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;17200:7;:18;17208:9;17200:18;;;;;;;;;;;;;;;:60;;;;17271:16;17281:5;17271:9;:16::i;:::-;17298:23;17310:4;17316;17298:11;:23::i;:::-;17354:9;17337:44;;17346:6;17337:44;;;17365:15;17337:44;;;;;;:::i;:::-;;;;;;;;16900:489;;;;;;16779:610;;;:::o;11920:117::-;11976:17;;11964:9;:29;;;;12014:15;;12004:7;:25;;;;11920:117::o;19642:260::-;19693:7;19702;19722:15;19740:7;;19722:25;;19758:15;7348:19;19758:25;;19808:20;7348:19;19808:7;;:11;;:20;;;;:::i;:::-;19798:7;:30;19794:61;;;19838:7;;7348:19;19830:25;;;;;;;;19794:61;19877:7;19886;19869:25;;;;;;19642:260;;;:::o;17812:618::-;17912:7;17934;17956;17978;18000;18022;18058:23;18083:12;18097:13;18127:40;18139:7;18148:9;;18159:7;;18127:11;:40::i;:::-;18057:110;;;;;;18178:19;18200:10;:8;:10::i;:::-;18178:32;;18222:15;18239:23;18264:12;18293:46;18305:7;18314:4;18320:5;18327:11;18293;:46::i;:::-;18221:118;;;;;;18361:7;18370:15;18387:4;18393:15;18410:4;18416:5;18353:69;;;;;;;;;;;;;;;;;;;17812:618;;;;;;;:::o;2376:136::-;2434:7;2461:43;2465:1;2468;2461:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2454:50;;2376:136;;;;:::o;2188:179::-;2246:7;2266:9;2282:1;2278;:5;;;;:::i;:::-;2266:17;;2307:1;2302;:6;;2294:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2358:1;2351:8;;;2188:179;;;;:::o;17398:211::-;17451:19;17473:10;:8;:10::i;:::-;17451:32;;17494:13;17510:22;17520:11;17510:5;:9;;:22;;;;:::i;:::-;17494:38;;17568:33;17595:5;17568:7;:22;17584:4;17568:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17543:7;:22;17559:4;17543:22;;;;;;;;;;;;;;;:58;;;;17440:169;;17398:211;:::o;17618:147::-;17696:17;17708:4;17696:7;;:11;;:17;;;;:::i;:::-;17686:7;:27;;;;17737:20;17752:4;17737:10;;:14;;:20;;;;:::i;:::-;17724:10;:33;;;;17618:147;;:::o;18439:472::-;18608:7;18630;18652;18687:12;18702:30;18728:3;18702:21;18714:8;18702:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;18687:45;;18743:13;18759:28;18783:3;18759:19;18771:6;18759:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18743:44;;18798:23;18824:28;18846:5;18824:17;18836:4;18824:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18798:54;;18874:15;18891:4;18897:5;18866:37;;;;;;;;;18439:472;;;;;;;:::o;18920:537::-;19114:7;19136;19158;19193:15;19211:24;19223:11;19211:7;:11;;:24;;;;:::i;:::-;19193:42;;19246:12;19261:21;19270:11;19261:4;:8;;:21;;;;:::i;:::-;19246:36;;19293:13;19309:22;19319:11;19309:5;:9;;:22;;;;:::i;:::-;19293:38;;19342:23;19368:28;19390:5;19368:17;19380:4;19368:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;19342:54;;19418:7;19427:15;19444:4;19410:39;;;;;;;;;;18920:537;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:116::-;6296:21;6311:5;6296:21;:::i;:::-;6289:5;6286:32;6276:60;;6332:1;6329;6322:12;6276:60;6226:116;:::o;6348:133::-;6391:5;6429:6;6416:20;6407:29;;6445:30;6469:5;6445:30;:::i;:::-;6348:133;;;;:::o;6487:323::-;6543:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:119;;;6598:79;;:::i;:::-;6560:119;6718:1;6743:50;6785:7;6776:6;6765:9;6761:22;6743:50;:::i;:::-;6733:60;;6689:114;6487:323;;;;:::o;6816:329::-;6875:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:119;;;6930:79;;:::i;:::-;6892:119;7050:1;7075:53;7120:7;7111:6;7100:9;7096:22;7075:53;:::i;:::-;7065:63;;7021:117;6816:329;;;;:::o;7151:613::-;7225:6;7233;7241;7290:2;7278:9;7269:7;7265:23;7261:32;7258:119;;;7296:79;;:::i;:::-;7258:119;7416:1;7441:53;7486:7;7477:6;7466:9;7462:22;7441:53;:::i;:::-;7431:63;;7387:117;7543:2;7569:53;7614:7;7605:6;7594:9;7590:22;7569:53;:::i;:::-;7559:63;;7514:118;7671:2;7697:50;7739:7;7730:6;7719:9;7715:22;7697:50;:::i;:::-;7687:60;;7642:115;7151:613;;;;;:::o;7770:329::-;7829:6;7878:2;7866:9;7857:7;7853:23;7849:32;7846:119;;;7884:79;;:::i;:::-;7846:119;8004:1;8029:53;8074:7;8065:6;8054:9;8050:22;8029:53;:::i;:::-;8019:63;;7975:117;7770:329;;;;:::o;8105:765::-;8191:6;8199;8207;8215;8264:3;8252:9;8243:7;8239:23;8235:33;8232:120;;;8271:79;;:::i;:::-;8232:120;8391:1;8416:53;8461:7;8452:6;8441:9;8437:22;8416:53;:::i;:::-;8406:63;;8362:117;8518:2;8544:53;8589:7;8580:6;8569:9;8565:22;8544:53;:::i;:::-;8534:63;;8489:118;8646:2;8672:53;8717:7;8708:6;8697:9;8693:22;8672:53;:::i;:::-;8662:63;;8617:118;8774:2;8800:53;8845:7;8836:6;8825:9;8821:22;8800:53;:::i;:::-;8790:63;;8745:118;8105:765;;;;;;;:::o;8876:117::-;8985:1;8982;8975:12;8999:117;9108:1;9105;9098:12;9122:117;9231:1;9228;9221:12;9262:568;9335:8;9345:6;9395:3;9388:4;9380:6;9376:17;9372:27;9362:122;;9403:79;;:::i;:::-;9362:122;9516:6;9503:20;9493:30;;9546:18;9538:6;9535:30;9532:117;;;9568:79;;:::i;:::-;9532:117;9682:4;9674:6;9670:17;9658:29;;9736:3;9728:4;9720:6;9716:17;9706:8;9702:32;9699:41;9696:128;;;9743:79;;:::i;:::-;9696:128;9262:568;;;;;:::o;9836:698::-;9928:6;9936;9944;9993:2;9981:9;9972:7;9968:23;9964:32;9961:119;;;9999:79;;:::i;:::-;9961:119;10147:1;10136:9;10132:17;10119:31;10177:18;10169:6;10166:30;10163:117;;;10199:79;;:::i;:::-;10163:117;10312:80;10384:7;10375:6;10364:9;10360:22;10312:80;:::i;:::-;10294:98;;;;10090:312;10441:2;10467:50;10509:7;10500:6;10489:9;10485:22;10467:50;:::i;:::-;10457:60;;10412:115;9836:698;;;;;:::o;10540:474::-;10608:6;10616;10665:2;10653:9;10644:7;10640:23;10636:32;10633:119;;;10671:79;;:::i;:::-;10633:119;10791:1;10816:53;10861:7;10852:6;10841:9;10837:22;10816:53;:::i;:::-;10806:63;;10762:117;10918:2;10944:53;10989:7;10980:6;10969:9;10965:22;10944:53;:::i;:::-;10934:63;;10889:118;10540:474;;;;;:::o;11020:182::-;11160:34;11156:1;11148:6;11144:14;11137:58;11020:182;:::o;11208:366::-;11350:3;11371:67;11435:2;11430:3;11371:67;:::i;:::-;11364:74;;11447:93;11536:3;11447:93;:::i;:::-;11565:2;11560:3;11556:12;11549:19;;11208:366;;;:::o;11580:419::-;11746:4;11784:2;11773:9;11769:18;11761:26;;11833:9;11827:4;11823:20;11819:1;11808:9;11804:17;11797:47;11861:131;11987:4;11861:131;:::i;:::-;11853:139;;11580:419;;;:::o;12005:238::-;12145:34;12141:1;12133:6;12129:14;12122:58;12214:21;12209:2;12201:6;12197:15;12190:46;12005:238;:::o;12249:366::-;12391:3;12412:67;12476:2;12471:3;12412:67;:::i;:::-;12405:74;;12488:93;12577:3;12488:93;:::i;:::-;12606:2;12601:3;12597:12;12590:19;;12249:366;;;:::o;12621:419::-;12787:4;12825:2;12814:9;12810:18;12802:26;;12874:9;12868:4;12864:20;12860:1;12849:9;12845:17;12838:47;12902:131;13028:4;12902:131;:::i;:::-;12894:139;;12621:419;;;:::o;13046:235::-;13186:34;13182:1;13174:6;13170:14;13163:58;13255:18;13250:2;13242:6;13238:15;13231:43;13046:235;:::o;13287:366::-;13429:3;13450:67;13514:2;13509:3;13450:67;:::i;:::-;13443:74;;13526:93;13615:3;13526:93;:::i;:::-;13644:2;13639:3;13635:12;13628:19;;13287:366;;;:::o;13659:419::-;13825:4;13863:2;13852:9;13848:18;13840:26;;13912:9;13906:4;13902:20;13898:1;13887:9;13883:17;13876:47;13940:131;14066:4;13940:131;:::i;:::-;13932:139;;13659:419;;;:::o;14084:180::-;14132:77;14129:1;14122:88;14229:4;14226:1;14219:15;14253:4;14250:1;14243:15;14270:180;14318:77;14315:1;14308:88;14415:4;14412:1;14405:15;14439:4;14436:1;14429:15;14456:233;14495:3;14518:24;14536:5;14518:24;:::i;:::-;14509:33;;14564:66;14557:5;14554:77;14551:103;;14634:18;;:::i;:::-;14551:103;14681:1;14674:5;14670:13;14663:20;;14456:233;;;:::o;14695:225::-;14835:34;14831:1;14823:6;14819:14;14812:58;14904:8;14899:2;14891:6;14887:15;14880:33;14695:225;:::o;14926:366::-;15068:3;15089:67;15153:2;15148:3;15089:67;:::i;:::-;15082:74;;15165:93;15254:3;15165:93;:::i;:::-;15283:2;15278:3;15274:12;15267:19;;14926:366;;;:::o;15298:419::-;15464:4;15502:2;15491:9;15487:18;15479:26;;15551:9;15545:4;15541:20;15537:1;15526:9;15522:17;15515:47;15579:131;15705:4;15579:131;:::i;:::-;15571:139;;15298:419;;;:::o;15723:305::-;15763:3;15782:20;15800:1;15782:20;:::i;:::-;15777:25;;15816:20;15834:1;15816:20;:::i;:::-;15811:25;;15970:1;15902:66;15898:74;15895:1;15892:81;15889:107;;;15976:18;;:::i;:::-;15889:107;16020:1;16017;16013:9;16006:16;;15723:305;;;;:::o;16034:182::-;16174:34;16170:1;16162:6;16158:14;16151:58;16034:182;:::o;16222:366::-;16364:3;16385:67;16449:2;16444:3;16385:67;:::i;:::-;16378:74;;16461:93;16550:3;16461:93;:::i;:::-;16579:2;16574:3;16570:12;16563:19;;16222:366;;;:::o;16594:419::-;16760:4;16798:2;16787:9;16783:18;16775:26;;16847:9;16841:4;16837:20;16833:1;16822:9;16818:17;16811:47;16875:131;17001:4;16875:131;:::i;:::-;16867:139;;16594:419;;;:::o;17019:229::-;17159:34;17155:1;17147:6;17143:14;17136:58;17228:12;17223:2;17215:6;17211:15;17204:37;17019:229;:::o;17254:366::-;17396:3;17417:67;17481:2;17476:3;17417:67;:::i;:::-;17410:74;;17493:93;17582:3;17493:93;:::i;:::-;17611:2;17606:3;17602:12;17595:19;;17254:366;;;:::o;17626:419::-;17792:4;17830:2;17819:9;17815:18;17807:26;;17879:9;17873:4;17869:20;17865:1;17854:9;17850:17;17843:47;17907:131;18033:4;17907:131;:::i;:::-;17899:139;;17626:419;;;:::o;18051:143::-;18108:5;18139:6;18133:13;18124:22;;18155:33;18182:5;18155:33;:::i;:::-;18051:143;;;;:::o;18200:351::-;18270:6;18319:2;18307:9;18298:7;18294:23;18290:32;18287:119;;;18325:79;;:::i;:::-;18287:119;18445:1;18470:64;18526:7;18517:6;18506:9;18502:22;18470:64;:::i;:::-;18460:74;;18416:128;18200:351;;;;:::o;18557:223::-;18697:34;18693:1;18685:6;18681:14;18674:58;18766:6;18761:2;18753:6;18749:15;18742:31;18557:223;:::o;18786:366::-;18928:3;18949:67;19013:2;19008:3;18949:67;:::i;:::-;18942:74;;19025:93;19114:3;19025:93;:::i;:::-;19143:2;19138:3;19134:12;19127:19;;18786:366;;;:::o;19158:419::-;19324:4;19362:2;19351:9;19347:18;19339:26;;19411:9;19405:4;19401:20;19397:1;19386:9;19382:17;19375:47;19439:131;19565:4;19439:131;:::i;:::-;19431:139;;19158:419;;;:::o;19583:221::-;19723:34;19719:1;19711:6;19707:14;19700:58;19792:4;19787:2;19779:6;19775:15;19768:29;19583:221;:::o;19810:366::-;19952:3;19973:67;20037:2;20032:3;19973:67;:::i;:::-;19966:74;;20049:93;20138:3;20049:93;:::i;:::-;20167:2;20162:3;20158:12;20151:19;;19810:366;;;:::o;20182:419::-;20348:4;20386:2;20375:9;20371:18;20363:26;;20435:9;20429:4;20425:20;20421:1;20410:9;20406:17;20399:47;20463:131;20589:4;20463:131;:::i;:::-;20455:139;;20182:419;;;:::o;20607:224::-;20747:34;20743:1;20735:6;20731:14;20724:58;20816:7;20811:2;20803:6;20799:15;20792:32;20607:224;:::o;20837:366::-;20979:3;21000:67;21064:2;21059:3;21000:67;:::i;:::-;20993:74;;21076:93;21165:3;21076:93;:::i;:::-;21194:2;21189:3;21185:12;21178:19;;20837:366;;;:::o;21209:419::-;21375:4;21413:2;21402:9;21398:18;21390:26;;21462:9;21456:4;21452:20;21448:1;21437:9;21433:17;21426:47;21490:131;21616:4;21490:131;:::i;:::-;21482:139;;21209:419;;;:::o;21634:222::-;21774:34;21770:1;21762:6;21758:14;21751:58;21843:5;21838:2;21830:6;21826:15;21819:30;21634:222;:::o;21862:366::-;22004:3;22025:67;22089:2;22084:3;22025:67;:::i;:::-;22018:74;;22101:93;22190:3;22101:93;:::i;:::-;22219:2;22214:3;22210:12;22203:19;;21862:366;;;:::o;22234:419::-;22400:4;22438:2;22427:9;22423:18;22415:26;;22487:9;22481:4;22477:20;22473:1;22462:9;22458:17;22451:47;22515:131;22641:4;22515:131;:::i;:::-;22507:139;;22234:419;;;:::o;22659:228::-;22799:34;22795:1;22787:6;22783:14;22776:58;22868:11;22863:2;22855:6;22851:15;22844:36;22659:228;:::o;22893:366::-;23035:3;23056:67;23120:2;23115:3;23056:67;:::i;:::-;23049:74;;23132:93;23221:3;23132:93;:::i;:::-;23250:2;23245:3;23241:12;23234:19;;22893:366;;;:::o;23265:419::-;23431:4;23469:2;23458:9;23454:18;23446:26;;23518:9;23512:4;23508:20;23504:1;23493:9;23489:17;23482:47;23546:131;23672:4;23546:131;:::i;:::-;23538:139;;23265:419;;;:::o;23690:250::-;23830:34;23826:1;23818:6;23814:14;23807:58;23899:33;23894:2;23886:6;23882:15;23875:58;23690:250;:::o;23946:366::-;24088:3;24109:67;24173:2;24168:3;24109:67;:::i;:::-;24102:74;;24185:93;24274:3;24185:93;:::i;:::-;24303:2;24298:3;24294:12;24287:19;;23946:366;;;:::o;24318:419::-;24484:4;24522:2;24511:9;24507:18;24499:26;;24571:9;24565:4;24561:20;24557:1;24546:9;24542:17;24535:47;24599:131;24725:4;24599:131;:::i;:::-;24591:139;;24318:419;;;:::o;24743:178::-;24883:30;24879:1;24871:6;24867:14;24860:54;24743:178;:::o;24927:366::-;25069:3;25090:67;25154:2;25149:3;25090:67;:::i;:::-;25083:74;;25166:93;25255:3;25166:93;:::i;:::-;25284:2;25279:3;25275:12;25268:19;;24927:366;;;:::o;25299:419::-;25465:4;25503:2;25492:9;25488:18;25480:26;;25552:9;25546:4;25542:20;25538:1;25527:9;25523:17;25516:47;25580:131;25706:4;25580:131;:::i;:::-;25572:139;;25299:419;;;:::o;25724:222::-;25864:34;25860:1;25852:6;25848:14;25841:58;25933:5;25928:2;25920:6;25916:15;25909:30;25724:222;:::o;25952:366::-;26094:3;26115:67;26179:2;26174:3;26115:67;:::i;:::-;26108:74;;26191:93;26280:3;26191:93;:::i;:::-;26309:2;26304:3;26300:12;26293:19;;25952:366;;;:::o;26324:419::-;26490:4;26528:2;26517:9;26513:18;26505:26;;26577:9;26571:4;26567:20;26563:1;26552:9;26548:17;26541:47;26605:131;26731:4;26605:131;:::i;:::-;26597:139;;26324:419;;;:::o;26749:191::-;26789:4;26809:20;26827:1;26809:20;:::i;:::-;26804:25;;26843:20;26861:1;26843:20;:::i;:::-;26838:25;;26882:1;26879;26876:8;26873:34;;;26887:18;;:::i;:::-;26873:34;26932:1;26929;26925:9;26917:17;;26749:191;;;;:::o;26946:229::-;27086:34;27082:1;27074:6;27070:14;27063:58;27155:12;27150:2;27142:6;27138:15;27131:37;26946:229;:::o;27181:366::-;27323:3;27344:67;27408:2;27403:3;27344:67;:::i;:::-;27337:74;;27420:93;27509:3;27420:93;:::i;:::-;27538:2;27533:3;27529:12;27522:19;;27181:366;;;:::o;27553:419::-;27719:4;27757:2;27746:9;27742:18;27734:26;;27806:9;27800:4;27796:20;27792:1;27781:9;27777:17;27770:47;27834:131;27960:4;27834:131;:::i;:::-;27826:139;;27553:419;;;:::o;27978:180::-;28026:77;28023:1;28016:88;28123:4;28120:1;28113:15;28147:4;28144:1;28137:15;28164:143;28221:5;28252:6;28246:13;28237:22;;28268:33;28295:5;28268:33;:::i;:::-;28164:143;;;;:::o;28313:351::-;28383:6;28432:2;28420:9;28411:7;28407:23;28403:32;28400:119;;;28438:79;;:::i;:::-;28400:119;28558:1;28583:64;28639:7;28630:6;28619:9;28615:22;28583:64;:::i;:::-;28573:74;;28529:128;28313:351;;;;:::o;28670:85::-;28715:7;28744:5;28733:16;;28670:85;;;:::o;28761:158::-;28819:9;28852:61;28870:42;28879:32;28905:5;28879:32;:::i;:::-;28870:42;:::i;:::-;28852:61;:::i;:::-;28839:74;;28761:158;;;:::o;28925:147::-;29020:45;29059:5;29020:45;:::i;:::-;29015:3;29008:58;28925:147;;:::o;29078:114::-;29145:6;29179:5;29173:12;29163:22;;29078:114;;;:::o;29198:184::-;29297:11;29331:6;29326:3;29319:19;29371:4;29366:3;29362:14;29347:29;;29198:184;;;;:::o;29388:132::-;29455:4;29478:3;29470:11;;29508:4;29503:3;29499:14;29491:22;;29388:132;;;:::o;29526:108::-;29603:24;29621:5;29603:24;:::i;:::-;29598:3;29591:37;29526:108;;:::o;29640:179::-;29709:10;29730:46;29772:3;29764:6;29730:46;:::i;:::-;29808:4;29803:3;29799:14;29785:28;;29640:179;;;;:::o;29825:113::-;29895:4;29927;29922:3;29918:14;29910:22;;29825:113;;;:::o;29974:732::-;30093:3;30122:54;30170:5;30122:54;:::i;:::-;30192:86;30271:6;30266:3;30192:86;:::i;:::-;30185:93;;30302:56;30352:5;30302:56;:::i;:::-;30381:7;30412:1;30397:284;30422:6;30419:1;30416:13;30397:284;;;30498:6;30492:13;30525:63;30584:3;30569:13;30525:63;:::i;:::-;30518:70;;30611:60;30664:6;30611:60;:::i;:::-;30601:70;;30457:224;30444:1;30441;30437:9;30432:14;;30397:284;;;30401:14;30697:3;30690:10;;30098:608;;;29974:732;;;;:::o;30712:831::-;30975:4;31013:3;31002:9;30998:19;30990:27;;31027:71;31095:1;31084:9;31080:17;31071:6;31027:71;:::i;:::-;31108:80;31184:2;31173:9;31169:18;31160:6;31108:80;:::i;:::-;31235:9;31229:4;31225:20;31220:2;31209:9;31205:18;31198:48;31263:108;31366:4;31357:6;31263:108;:::i;:::-;31255:116;;31381:72;31449:2;31438:9;31434:18;31425:6;31381:72;:::i;:::-;31463:73;31531:3;31520:9;31516:19;31507:6;31463:73;:::i;:::-;30712:831;;;;;;;;:::o;31549:348::-;31589:7;31612:20;31630:1;31612:20;:::i;:::-;31607:25;;31646:20;31664:1;31646:20;:::i;:::-;31641:25;;31834:1;31766:66;31762:74;31759:1;31756:81;31751:1;31744:9;31737:17;31733:105;31730:131;;;31841:18;;:::i;:::-;31730:131;31889:1;31886;31882:9;31871:20;;31549:348;;;;:::o;31903:180::-;31951:77;31948:1;31941:88;32048:4;32045:1;32038:15;32072:4;32069:1;32062:15;32089:185;32129:1;32146:20;32164:1;32146:20;:::i;:::-;32141:25;;32180:20;32198:1;32180:20;:::i;:::-;32175:25;;32219:1;32209:35;;32224:18;;:::i;:::-;32209:35;32266:1;32263;32259:9;32254:14;;32089:185;;;;:::o;32280:220::-;32420:34;32416:1;32408:6;32404:14;32397:58;32489:3;32484:2;32476:6;32472:15;32465:28;32280:220;:::o;32506:366::-;32648:3;32669:67;32733:2;32728:3;32669:67;:::i;:::-;32662:74;;32745:93;32834:3;32745:93;:::i;:::-;32863:2;32858:3;32854:12;32847:19;;32506:366;;;:::o;32878:419::-;33044:4;33082:2;33071:9;33067:18;33059:26;;33131:9;33125:4;33121:20;33117:1;33106:9;33102:17;33095:47;33159:131;33285:4;33159:131;:::i;:::-;33151:139;;32878:419;;;:::o;33303:177::-;33443:29;33439:1;33431:6;33427:14;33420:53;33303:177;:::o;33486:366::-;33628:3;33649:67;33713:2;33708:3;33649:67;:::i;:::-;33642:74;;33725:93;33814:3;33725:93;:::i;:::-;33843:2;33838:3;33834:12;33827:19;;33486:366;;;:::o;33858:419::-;34024:4;34062:2;34051:9;34047:18;34039:26;;34111:9;34105:4;34101:20;34097:1;34086:9;34082:17;34075:47;34139:131;34265:4;34139:131;:::i;:::-;34131:139;;33858:419;;;:::o
Swarm Source
ipfs://13218b81e0091a955ecb7baf2ad3f3c30d6a96fc08d61dd4f1cb35b07547faf3
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.