Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 YE24
Holders
20
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,912,082,078.617334945623935848 YE24Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KanyeWest
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-30 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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); } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract KanyeWest is Context,IERC20, Ownable{ using Address for address; string private _name = "Kanye West"; string private _symbol = "YE24"; uint8 private _decimals = 18; uint256 totalFeeFortx = 0; uint256 maxWalletTreshold = 2; uint256 maxTxTreshold = 1; uint256 private swapTreshold =1; uint256 private currentThreshold = 10; //Once the token value goes up this number can be decreased (To reduce price impact on asset) uint256 private _totalSupply = (10000000 * 10**4) * 10**_decimals; // uint256 public requiredTokensToSwap = _totalSupply * swapTreshold /1000; mapping (address => uint256) private _balances; mapping (address => bool) private _excludedFromFees; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public automatedMarketMakerPairs; address _owner; address payable public marketingAddress = payable(0x56449E4421e1826A3FcD5Dfeb9e4c00891bd5b3f); uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/200; // starting 2% uint256 maxTxAmount = _totalSupply*maxTxTreshold/100; mapping (address => bool) botWallets; bool botTradeEnabled = false; bool checkWalletSize = true; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private presaleAddresses; uint256 private buyliqFee = 4; //1 uint256 private buyprevLiqFee = 0; uint256 private buymktFee = 1;//4 uint256 private buyPrevmktFee = 0; bool private tradeEnabled = false; uint256 private sellliqFee = 4; uint256 private sellprevLiqFee = 0; uint256 private sellmktFee = 1; uint256 private sellPrevmktFee = 0; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 private mktTokens = 0; uint256 private liqTokens = 0; event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event tokensSwappedDuringTokenomics(uint256 amount); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); // 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D IUniswapV2Router02 _router; address public uniswapV2Pair; //Balances tracker modifier lockTheSwap{ inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(){ _balances[_msgSender()] = _totalSupply; //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D mainnet and all networks IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniRouter.factory()) .createPair(address(this), _uniRouter.WETH()); _excludedFromFees[owner()] = true; _excludedFromFees[address(this)] = true;// exclude owner and contract instance from fees _router = _uniRouter; _liquidityHolders[address(_router)] = true; _liquidityHolders[owner()] = true; _liquidityHolders[address(this)] = true; _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); emit Transfer(address(0),_msgSender(),_totalSupply); } receive() external payable{} //general token data and tracking of balances to be swapped. function getOwner()external view returns(address){ return owner(); } function currentmktTokens() external view returns (uint256){ return mktTokens; } function currentLiqTokens() external view returns (uint256){ return liqTokens; } function totalSupply() external view override returns (uint256){ return _totalSupply; } function balanceOf(address account) public view override returns (uint256){ return _balances[account]; } function transfer(address recipient, uint256 amount) external override returns (bool){ _transfer(_msgSender(),recipient,amount); return true; } function allowance(address owner, address spender) external view override returns (uint256){ return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external override returns (bool){ _approve(_msgSender(),spender,amount); return true; } function decimals()external view returns(uint256){ return _decimals; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory){ return _symbol; } function updateMaxTxTreshold(uint256 newVal) public onlyOwner{ maxTxTreshold = newVal; maxTxAmount = _totalSupply*maxTxTreshold/100;// 1% } function updateMaxWalletTreshold(uint256 newVal) public onlyOwner{ maxWalletTreshold = newVal; maxWalletAmount = _totalSupply*maxWalletTreshold/100; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool){ require(amount <= _allowances[sender][_msgSender()], "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } //Tokenomics related functions function addBotWallet (address payable detectedBot, bool isBot) public onlyOwner{ botWallets[detectedBot] = isBot; } function currentbuyliqFee() public view returns (uint256){ return buyliqFee; } function currentbuymktfee() public view returns (uint256){ return buymktFee; } function currentsellLiqFee() public view returns (uint256){ return sellliqFee; } function currentsellmktfee() public view returns (uint256){ return sellmktFee; } function currentThresholdInt()public view returns (uint256){ return currentThreshold; } function isExcluded(address toCheck)public view returns (bool){ return _excludedFromFees[toCheck]; } function _transfer(address from, address to, uint256 amount) internal{ require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0,"ERC20: transfered amount must be greater than zero"); uint256 senderBalance = _balances[from]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); if(tradeEnabled == false){ require(_liquidityHolders[to] || _liquidityHolders[from],"Cant trade, trade is disabled"); } if(_liquidityHolders[to]==false && _liquidityHolders[from]==false){ require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount."); if(from == uniswapV2Pair){ require(balanceOf(to)+amount <= maxWalletAmount); } } uint256 inContractBalance = balanceOf(address(this)); if(inContractBalance >=requiredTokensToSwap && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled){ if(inContractBalance >= requiredTokensToSwap ){ inContractBalance = requiredTokensToSwap; swapForTokenomics(inContractBalance); } } bool takeFees = true; if(_excludedFromFees[from] || _excludedFromFees[to]) { totalFeeFortx = 0; takeFees = false; } uint256 mktAmount = 0; uint256 liqAmount = 0; // Amount to be added to liquidity. if(takeFees){ //bot fees if(botWallets[from] == true||botWallets[to]==true){ revert("No bots can trade"); } //Selling fees if (automatedMarketMakerPairs[to] && to != address(_router) ){ totalFeeFortx = 0; mktAmount = amount * sellmktFee/100; liqAmount = amount * sellliqFee/100; totalFeeFortx = mktAmount + liqAmount; } //Buy Fees else if(automatedMarketMakerPairs[from] && from != address(_router)) { totalFeeFortx = 0; mktAmount = amount * buymktFee/100; liqAmount = amount * buyliqFee/100; totalFeeFortx = mktAmount + liqAmount ; } } _balances[from] = senderBalance - amount; _balances[to] += amount - mktAmount - liqAmount; if(liqAmount != 0) { _balances[address(this)] += totalFeeFortx; //tLiqTotal += liqAmount; liqTokens += liqAmount; mktTokens += mktAmount; emit Transfer(from, address(this), totalFeeFortx); } emit Transfer(from, to,amount-totalFeeFortx); } function swapForTokenomics(uint256 balanceToswap) private lockTheSwap{ swapAndLiquify(liqTokens); swapTokensForETHmkt(mktTokens); emit tokensSwappedDuringTokenomics(balanceToswap); mktTokens = 0; liqTokens = 0; } function addLimitExempt(address newAddress)external onlyOwner{ _liquidityHolders[newAddress] = true; } function swapTokensForETHmkt(uint256 amount)private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), amount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, // Accept any amount of ETH. path, marketingAddress, block.timestamp ); } function unstuckETH(address payable destination) public onlyOwner{ uint256 ethBalance = address(this).balance; payable(destination).transfer(ethBalance); } function tradeStatus(bool status) public onlyOwner{ tradeEnabled = status; } function swapAndLiquify(uint256 liqTokensPassed) private { uint256 half = liqTokensPassed / 2; uint256 otherHalf = liqTokensPassed - half; uint256 initialBalance = address(this).balance; swapTokensForETH(half); uint256 newBalance = address(this).balance - (initialBalance); addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half,newBalance,otherHalf); } function swapTokensForETH(uint256 tokenAmount) private{ address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), tokenAmount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // Accept any amount of ETH. path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount,uint256 ethAmount) private{ _approve(address(this), address(_router), tokenAmount); _router.addLiquidityETH{value:ethAmount}( address(this), tokenAmount, 0, 0, deadAddress,// tr block.timestamp ); } function _approve(address owner,address spender, uint256 amount) internal{ 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); } //Fees related functions function addToExcluded(address toExclude) public onlyOwner{ _excludedFromFees[toExclude] = true; } function removeFromExcluded(address toRemove) public onlyOwner{ _excludedFromFees[toRemove] = false; } function updateThreshold(uint newThreshold) public onlyOwner{ currentThreshold = newThreshold; } function setSwapAndLiquify(bool _enabled) public onlyOwner{ swapAndLiquifyEnabled = _enabled; } //Marketing related function setMktAddress(address newAddress) external onlyOwner{ marketingAddress = payable(newAddress); } function transferAssetsETH(address payable to, uint256 amount) internal{ to.transfer(amount); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function setPair(uint256 newAmount)public onlyOwner{ sellmktFee= newAmount; } function currentMaxWallet() public view returns(uint256){ return maxWalletAmount; } function currentMaxTx() public view returns(uint256){ return maxTxAmount; } function updateSwapTreshold(uint256 newVal) public onlyOwner{ swapTreshold = newVal; requiredTokensToSwap = _totalSupply*swapTreshold/1000; } function currentTradeStatus() public view returns (bool){ return tradeEnabled; } function currentSwapTreshold() public view returns(uint256){ return swapTreshold; } function currentTokensToSwap() public view returns(uint256){ return requiredTokensToSwap; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } 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 IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSwappedDuringTokenomics","type":"event"},{"inputs":[{"internalType":"address payable","name":"detectedBot","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"addLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toExclude","type":"address"}],"name":"addToExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentLiqTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSwapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentThresholdInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTradeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyliqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuymktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentmktTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellmktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"removeFromExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMktAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"tradeStatus","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address payable","name":"destination","type":"address"}],"name":"unstuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxTxTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxWalletTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600a81526020017f4b616e7965205765737400000000000000000000000000000000000000000000815250600190805190602001906200005192919062000992565b506040518060400160405280600481526020017f5945323400000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000992565b506012600360006101000a81548160ff021916908360ff1602179055506000600455600260055560016006556001600755600a600855600360009054906101000a900460ff16600a620000f3919062000b84565b64174876e80062000105919062000cc1565b6009556103e86007546009546200011d919062000cc1565b62000129919062000af1565b600a557356449e4421e1826a3fcd5dfeb9e4c00891bd5b3f601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c860055460095462000195919062000cc1565b620001a1919062000af1565b6011556064600654600954620001b8919062000cc1565b620001c4919062000af1565b6012556000601460006101000a81548160ff0219169083151502179055506001601460016101000a81548160ff0219169083151502179055506004601755600060185560016019556000601a556000601b60006101000a81548160ff0219169083151502179055506004601c556000601d556001601e556000601f556001602060016101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525060006021556000602255348015620002aa57600080fd5b50620002cb620002bf620007fc60201b60201c565b6200080460201b60201c565b600954600b6000620002e2620007fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038057600080fd5b505afa15801562000395573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bb919062000a59565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041e57600080fd5b505afa15801562000433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000459919062000a59565b6040518363ffffffff1660e01b81526004016200047892919062000aa7565b602060405180830381600087803b1580156200049357600080fd5b505af1158015620004a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ce919062000a59565b602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c600062000524620008c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160156000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560006200069e620008c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200077c602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008f160201b60201c565b6200078c620007fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620007ed919062000ad4565b60405180910390a35062000e57565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b828054620009a09062000d6d565b90600052602060002090601f016020900481019282620009c4576000855562000a10565b82601f10620009df57805160ff191683800117855562000a10565b8280016001018555821562000a10579182015b8281111562000a0f578251825591602001919060010190620009f2565b5b50905062000a1f919062000a23565b5090565b5b8082111562000a3e57600081600090555060010162000a24565b5090565b60008151905062000a538162000e3d565b92915050565b60006020828403121562000a6c57600080fd5b600062000a7c8482850162000a42565b91505092915050565b62000a908162000d22565b82525050565b62000aa18162000d56565b82525050565b600060408201905062000abe600083018562000a85565b62000acd602083018462000a85565b9392505050565b600060208201905062000aeb600083018462000a96565b92915050565b600062000afe8262000d56565b915062000b0b8362000d56565b92508262000b1e5762000b1d62000dd2565b5b828204905092915050565b6000808291508390505b600185111562000b7b5780860481111562000b535762000b5262000da3565b5b600185161562000b635780820291505b808102905062000b738562000e30565b945062000b33565b94509492505050565b600062000b918262000d56565b915062000b9e8362000d60565b925062000bcd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bd5565b905092915050565b60008262000be7576001905062000cba565b8162000bf7576000905062000cba565b816001811462000c10576002811462000c1b5762000c51565b600191505062000cba565b60ff84111562000c305762000c2f62000da3565b5b8360020a91508482111562000c4a5762000c4962000da3565b5b5062000cba565b5060208310610133831016604e8410600b841016171562000c8b5782820a90508381111562000c855762000c8462000da3565b5b62000cba565b62000c9a848484600162000b29565b9250905081840481111562000cb45762000cb362000da3565b5b81810290505b9392505050565b600062000cce8262000d56565b915062000cdb8362000d56565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d175762000d1662000da3565b5b828202905092915050565b600062000d2f8262000d36565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000d8657607f821691505b6020821081141562000d9d5762000d9c62000e01565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000e488162000d22565b811462000e5457600080fd5b50565b60805160601c6141b962000e7d60003960008181610d20015261315701526141b96000f3fe60806040526004361061028c5760003560e01c8063893d20e81161015a578063b62496f5116100c1578063d15bcf0f1161007a578063d15bcf0f146109b9578063d7d7442f146109e4578063dd62ed3e14610a0d578063ddcf9b9814610a4a578063e1370dd314610a75578063f2fde38b14610aa057610293565b8063b62496f514610899578063bf9b0159146108d6578063bf9eb54014610901578063cb6645341461092a578063cba0e99614610953578063d1294d4c1461099057610293565b8063a04bdc8111610113578063a04bdc811461078b578063a5ece941146107b6578063a6c38f59146107e1578063a7a074521461080a578063a9059cbb14610833578063b4d95a931461087057610293565b8063893d20e81461068b5780638da5cb5b146106b657806390f50283146106e157806395d89b411461070c5780639a7a23d6146107375780639b136da41461076057610293565b80634a0e963c116101fe57806364c16163116101b757806364c161631461058f5780636573c4df146105ba5780636df3333a146105e357806370a082311461060e578063715018a61461064b578063801527ce1461066257610293565b80634a0e963c146104935780634a74bb02146104bc5780634bd7ace5146104e75780635297defd146105125780635be76f111461053d57806362bb73241461056657610293565b806323b872dd1161025057806323b872dd1461038157806327c8f835146103be5780632d03420b146103e9578063313ce56714610412578063487a69051461043d57806349bd5a5e1461046857610293565b806306fdde0314610298578063095ea7b3146102c357806318160ddd14610300578063220f66961461032b57806322788f861461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610ac9565b6040516102ba9190613b50565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906133ed565b610b5b565b6040516102f79190613b35565b60405180910390f35b34801561030c57600080fd5b50610315610b79565b6040516103229190613d12565b60405180910390f35b34801561033757600080fd5b50610340610b83565b60405161034d9190613b35565b60405180910390f35b34801561036257600080fd5b5061036b610b96565b6040516103789190613d12565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190613362565b610ba0565b6040516103b59190613b35565b60405180910390f35b3480156103ca57600080fd5b506103d3610d1e565b6040516103e09190613a9e565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b9190613429565b610d42565b005b34801561041e57600080fd5b50610427610ddb565b6040516104349190613d12565b60405180910390f35b34801561044957600080fd5b50610452610df5565b60405161045f9190613d12565b60405180910390f35b34801561047457600080fd5b5061047d610dff565b60405161048a9190613a9e565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b5919061326f565b610e25565b005b3480156104c857600080fd5b506104d1610efc565b6040516104de9190613b35565b60405180910390f35b3480156104f357600080fd5b506104fc610f0f565b6040516105099190613d12565b60405180910390f35b34801561051e57600080fd5b50610527610f19565b6040516105349190613d12565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906132c1565b610f23565b005b34801561057257600080fd5b5061058d60048036038101906105889190613452565b610fef565b005b34801561059b57600080fd5b506105a4611075565b6040516105b19190613d12565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190613452565b61107f565b005b3480156105ef57600080fd5b506105f8611127565b6040516106059190613d12565b60405180910390f35b34801561061a57600080fd5b506106356004803603810190610630919061326f565b611131565b6040516106429190613d12565b60405180910390f35b34801561065757600080fd5b5061066061117a565b005b34801561066e57600080fd5b5061068960048036038101906106849190613429565b611202565b005b34801561069757600080fd5b506106a061129b565b6040516106ad9190613a9e565b60405180910390f35b3480156106c257600080fd5b506106cb6112aa565b6040516106d89190613a9e565b60405180910390f35b3480156106ed57600080fd5b506106f66112d3565b6040516107039190613d12565b60405180910390f35b34801561071857600080fd5b506107216112dd565b60405161072e9190613b50565b60405180910390f35b34801561074357600080fd5b5061075e600480360381019061075991906133b1565b61136f565b005b34801561076c57600080fd5b5061077561148a565b6040516107829190613d12565b60405180910390f35b34801561079757600080fd5b506107a0611494565b6040516107ad9190613d12565b60405180910390f35b3480156107c257600080fd5b506107cb61149a565b6040516107d89190613ab9565b60405180910390f35b3480156107ed57600080fd5b50610808600480360381019061080391906132ea565b6114c0565b005b34801561081657600080fd5b50610831600480360381019061082c9190613452565b611597565b005b34801561083f57600080fd5b5061085a600480360381019061085591906133ed565b61163f565b6040516108679190613b35565b60405180910390f35b34801561087c57600080fd5b506108976004803603810190610892919061326f565b61165d565b005b3480156108a557600080fd5b506108c060048036038101906108bb919061326f565b611734565b6040516108cd9190613b35565b60405180910390f35b3480156108e257600080fd5b506108eb611754565b6040516108f89190613d12565b60405180910390f35b34801561090d57600080fd5b506109286004803603810190610923919061326f565b61175e565b005b34801561093657600080fd5b50610951600480360381019061094c919061326f565b61181e565b005b34801561095f57600080fd5b5061097a6004803603810190610975919061326f565b6118f5565b6040516109879190613b35565b60405180910390f35b34801561099c57600080fd5b506109b760048036038101906109b29190613452565b61194b565b005b3480156109c557600080fd5b506109ce6119f4565b6040516109db9190613b35565b60405180910390f35b3480156109f057600080fd5b50610a0b6004803603810190610a069190613452565b611a0b565b005b348015610a1957600080fd5b50610a346004803603810190610a2f9190613326565b611a91565b604051610a419190613d12565b60405180910390f35b348015610a5657600080fd5b50610a5f611b18565b604051610a6c9190613d12565b60405180910390f35b348015610a8157600080fd5b50610a8a611b22565b604051610a979190613d12565b60405180910390f35b348015610aac57600080fd5b50610ac76004803603810190610ac2919061326f565b611b2c565b005b606060018054610ad890614057565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0490614057565b8015610b515780601f10610b2657610100808354040283529160200191610b51565b820191906000526020600020905b815481529060010190602001808311610b3457829003601f168201915b5050505050905090565b6000610b6f610b68611c24565b8484611c2c565b6001905092915050565b6000600954905090565b602060009054906101000a900460ff1681565b6000600854905090565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610beb611c24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5f90613c72565b60405180910390fd5b610c73848484611df7565b610d1384610c7f611c24565b84600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc9611c24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0e9190613f4e565b611c2c565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610d4a611c24565b73ffffffffffffffffffffffffffffffffffffffff16610d686112aa565b73ffffffffffffffffffffffffffffffffffffffff1614610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590613c92565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600a54905090565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e2d611c24565b73ffffffffffffffffffffffffffffffffffffffff16610e4b6112aa565b73ffffffffffffffffffffffffffffffffffffffff1614610ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9890613c92565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900460ff1681565b6000601754905090565b6000601e54905090565b610f2b611c24565b73ffffffffffffffffffffffffffffffffffffffff16610f496112aa565b73ffffffffffffffffffffffffffffffffffffffff1614610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690613c92565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fea573d6000803e3d6000fd5b505050565b610ff7611c24565b73ffffffffffffffffffffffffffffffffffffffff166110156112aa565b73ffffffffffffffffffffffffffffffffffffffff161461106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290613c92565b60405180910390fd5b80601e8190555050565b6000602254905090565b611087611c24565b73ffffffffffffffffffffffffffffffffffffffff166110a56112aa565b73ffffffffffffffffffffffffffffffffffffffff16146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290613c92565b60405180910390fd5b8060058190555060646005546009546111149190613ef4565b61111e9190613ec3565b60118190555050565b6000600754905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611182611c24565b73ffffffffffffffffffffffffffffffffffffffff166111a06112aa565b73ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed90613c92565b60405180910390fd5b61120060006128b4565b565b61120a611c24565b73ffffffffffffffffffffffffffffffffffffffff166112286112aa565b73ffffffffffffffffffffffffffffffffffffffff161461127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590613c92565b60405180910390fd5b80602060016101000a81548160ff02191690831515021790555050565b60006112a56112aa565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601c54905090565b6060600280546112ec90614057565b80601f016020809104026020016040519081016040528092919081815260200182805461131890614057565b80156113655780601f1061133a57610100808354040283529160200191611365565b820191906000526020600020905b81548152906001019060200180831161134857829003601f168201915b5050505050905090565b611377611c24565b73ffffffffffffffffffffffffffffffffffffffff166113956112aa565b73ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290613c92565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613bd2565b60405180910390fd5b6114868282612978565b5050565b6000601954905090565b600a5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114c8611c24565b73ffffffffffffffffffffffffffffffffffffffff166114e66112aa565b73ffffffffffffffffffffffffffffffffffffffff161461153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390613c92565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61159f611c24565b73ffffffffffffffffffffffffffffffffffffffff166115bd6112aa565b73ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90613c92565b60405180910390fd5b80600681905550606460065460095461162c9190613ef4565b6116369190613ec3565b60128190555050565b600061165361164c611c24565b8484611df7565b6001905092915050565b611665611c24565b73ffffffffffffffffffffffffffffffffffffffff166116836112aa565b73ffffffffffffffffffffffffffffffffffffffff16146116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613c92565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000601254905090565b611766611c24565b73ffffffffffffffffffffffffffffffffffffffff166117846112aa565b73ffffffffffffffffffffffffffffffffffffffff16146117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d190613c92565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611826611c24565b73ffffffffffffffffffffffffffffffffffffffff166118446112aa565b73ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613c92565b60405180910390fd5b6001601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611953611c24565b73ffffffffffffffffffffffffffffffffffffffff166119716112aa565b73ffffffffffffffffffffffffffffffffffffffff16146119c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119be90613c92565b60405180910390fd5b806007819055506103e86007546009546119e19190613ef4565b6119eb9190613ec3565b600a8190555050565b6000601b60009054906101000a900460ff16905090565b611a13611c24565b73ffffffffffffffffffffffffffffffffffffffff16611a316112aa565b73ffffffffffffffffffffffffffffffffffffffff1614611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90613c92565b60405180910390fd5b8060088190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602154905090565b6000601154905090565b611b34611c24565b73ffffffffffffffffffffffffffffffffffffffff16611b526112aa565b73ffffffffffffffffffffffffffffffffffffffff1614611ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9f90613c92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f90613b92565b60405180910390fd5b611c21816128b4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9390613cd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0390613bb2565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dea9190613d12565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613cb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90613b72565b60405180910390fd5b60008111611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1190613c32565b60405180910390fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613bf2565b60405180910390fd5b60001515601b60009054906101000a900460ff161515141561209e57601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061205e5750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61209d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209490613c52565b60405180910390fd5b5b60001515601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561214e575060001515601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1561221257601254821115612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f90613c12565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561221157601154826121fb85611131565b6122059190613e6d565b111561221057600080fd5b5b5b600061221d30611131565b9050600a54811015801561223e5750602060009054906101000a900460ff16155b80156122985750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122b05750602060019054906101000a900460ff165b156122ce57600a5481106122cd57600a5490506122cc81612a19565b5b5b600060019050600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123755750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612387576000600481905550600090505b60008082156126835760011515601360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148061243f575060011515601360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1561247f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247690613cf2565b60405180910390fd5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125265750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156125825760006004819055506064601e54876125439190613ef4565b61254d9190613ec3565b91506064601c548761255f9190613ef4565b6125699190613ec3565b905080826125779190613e6d565b600481905550612682565b600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126295750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156126815760006004819055506064601954876126469190613ef4565b6126509190613ec3565b91506064601754876126629190613ef4565b61266c9190613ec3565b9050808261267a9190613e6d565b6004819055505b5b5b858561268f9190613f4e565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508082876126df9190613f4e565b6126e99190613f4e565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127379190613e6d565b925050819055506000811461283857600454600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127979190613e6d565b9250508190555080602260008282546127b09190613e6d565b9250508190555081602160008282546127c99190613e6d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405161282f9190613d12565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454896128959190613f4e565b6040516128a29190613d12565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001602060006101000a81548160ff021916908315150217905550612a3f602254612aaf565b612a4a602154612b3a565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f0190481604051612a799190613d12565b60405180910390a1600060218190555060006022819055506000602060006101000a81548160ff02191690831515021790555050565b6000600282612abe9190613ec3565b905060008183612ace9190613f4e565b90506000479050612ade83612e20565b60008147612aec9190613f4e565b9050612af883826130e4565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612b2b93929190613de1565b60405180910390a15050505050565b6000600267ffffffffffffffff811115612b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612bab5781602001602082028036833780820191505090505b5090503081600081518110612be9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612c8b57600080fd5b505afa158015612c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc39190613298565b81600181518110612cfd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d6430602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2c565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612dea959493929190613d2d565b600060405180830381600087803b158015612e0457600080fd5b505af1158015612e18573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff811115612e63577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612e915781602001602082028036833780820191505090505b5090503081600081518110612ecf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f7157600080fd5b505afa158015612f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa99190613298565b81600181518110612fe3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061304a30602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2c565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130ae959493929190613d87565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b505050505050565b61311130602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2c565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f0000000000000000000000000000000000000000000000000000000000000000426040518863ffffffff1660e01b815260040161319896959493929190613ad4565b6060604051808303818588803b1580156131b157600080fd5b505af11580156131c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131ea919061347b565b5050505050565b60008135905061320081614127565b92915050565b60008151905061321581614127565b92915050565b60008135905061322a8161413e565b92915050565b60008135905061323f81614155565b92915050565b6000813590506132548161416c565b92915050565b6000815190506132698161416c565b92915050565b60006020828403121561328157600080fd5b600061328f848285016131f1565b91505092915050565b6000602082840312156132aa57600080fd5b60006132b884828501613206565b91505092915050565b6000602082840312156132d357600080fd5b60006132e18482850161321b565b91505092915050565b600080604083850312156132fd57600080fd5b600061330b8582860161321b565b925050602061331c85828601613230565b9150509250929050565b6000806040838503121561333957600080fd5b6000613347858286016131f1565b9250506020613358858286016131f1565b9150509250929050565b60008060006060848603121561337757600080fd5b6000613385868287016131f1565b9350506020613396868287016131f1565b92505060406133a786828701613245565b9150509250925092565b600080604083850312156133c457600080fd5b60006133d2858286016131f1565b92505060206133e385828601613230565b9150509250929050565b6000806040838503121561340057600080fd5b600061340e858286016131f1565b925050602061341f85828601613245565b9150509250929050565b60006020828403121561343b57600080fd5b600061344984828501613230565b91505092915050565b60006020828403121561346457600080fd5b600061347284828501613245565b91505092915050565b60008060006060848603121561349057600080fd5b600061349e8682870161325a565b93505060206134af8682870161325a565b92505060406134c08682870161325a565b9150509250925092565b60006134d68383613500565b60208301905092915050565b6134eb81613fdc565b82525050565b6134fa81613f94565b82525050565b61350981613f82565b82525050565b61351881613f82565b82525050565b600061352982613e28565b6135338185613e4b565b935061353e83613e18565b8060005b8381101561356f57815161355688826134ca565b975061356183613e3e565b925050600181019050613542565b5085935050505092915050565b61358581613fa6565b82525050565b61359481613fee565b82525050565b60006135a582613e33565b6135af8185613e5c565b93506135bf818560208601614024565b6135c881614116565b840191505092915050565b60006135e0602383613e5c565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613646602683613e5c565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136ac602283613e5c565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613712603983613e5c565b91507f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008301527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006020830152604082019050919050565b6000613778602683613e5c565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137de602883613e5c565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008301527f78416d6f756e742e0000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613844603283613e5c565b91507f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008301527f2067726561746572207468616e207a65726f00000000000000000000000000006020830152604082019050919050565b60006138aa601d83613e5c565b91507f43616e742074726164652c2074726164652069732064697361626c65640000006000830152602082019050919050565b60006138ea602883613e5c565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613950602083613e5c565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613990602583613e5c565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139f6602483613e5c565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a5c601183613e5c565b91507f4e6f20626f74732063616e2074726164650000000000000000000000000000006000830152602082019050919050565b613a9881613fd2565b82525050565b6000602082019050613ab3600083018461350f565b92915050565b6000602082019050613ace60008301846134f1565b92915050565b600060c082019050613ae9600083018961350f565b613af66020830188613a8f565b613b03604083018761358b565b613b10606083018661358b565b613b1d608083018561350f565b613b2a60a0830184613a8f565b979650505050505050565b6000602082019050613b4a600083018461357c565b92915050565b60006020820190508181036000830152613b6a818461359a565b905092915050565b60006020820190508181036000830152613b8b816135d3565b9050919050565b60006020820190508181036000830152613bab81613639565b9050919050565b60006020820190508181036000830152613bcb8161369f565b9050919050565b60006020820190508181036000830152613beb81613705565b9050919050565b60006020820190508181036000830152613c0b8161376b565b9050919050565b60006020820190508181036000830152613c2b816137d1565b9050919050565b60006020820190508181036000830152613c4b81613837565b9050919050565b60006020820190508181036000830152613c6b8161389d565b9050919050565b60006020820190508181036000830152613c8b816138dd565b9050919050565b60006020820190508181036000830152613cab81613943565b9050919050565b60006020820190508181036000830152613ccb81613983565b9050919050565b60006020820190508181036000830152613ceb816139e9565b9050919050565b60006020820190508181036000830152613d0b81613a4f565b9050919050565b6000602082019050613d276000830184613a8f565b92915050565b600060a082019050613d426000830188613a8f565b613d4f602083018761358b565b8181036040830152613d61818661351e565b9050613d7060608301856134e2565b613d7d6080830184613a8f565b9695505050505050565b600060a082019050613d9c6000830188613a8f565b613da9602083018761358b565b8181036040830152613dbb818661351e565b9050613dca606083018561350f565b613dd76080830184613a8f565b9695505050505050565b6000606082019050613df66000830186613a8f565b613e036020830185613a8f565b613e106040830184613a8f565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e7882613fd2565b9150613e8383613fd2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613eb857613eb7614089565b5b828201905092915050565b6000613ece82613fd2565b9150613ed983613fd2565b925082613ee957613ee86140b8565b5b828204905092915050565b6000613eff82613fd2565b9150613f0a83613fd2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f4357613f42614089565b5b828202905092915050565b6000613f5982613fd2565b9150613f6483613fd2565b925082821015613f7757613f76614089565b5b828203905092915050565b6000613f8d82613fb2565b9050919050565b6000613f9f82613fb2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613fe782614000565b9050919050565b6000613ff982613fd2565b9050919050565b600061400b82614012565b9050919050565b600061401d82613fb2565b9050919050565b60005b83811015614042578082015181840152602081019050614027565b83811115614051576000848401525b50505050565b6000600282049050600182168061406f57607f821691505b60208210811415614083576140826140e7565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61413081613f82565b811461413b57600080fd5b50565b61414781613f94565b811461415257600080fd5b50565b61415e81613fa6565b811461416957600080fd5b50565b61417581613fd2565b811461418057600080fd5b5056fea26469706673582212206f2eea91a439204a0df511857c5d4a7554878f52fc973fb57dc5c57bcf1c7c3164736f6c63430008000033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c8063893d20e81161015a578063b62496f5116100c1578063d15bcf0f1161007a578063d15bcf0f146109b9578063d7d7442f146109e4578063dd62ed3e14610a0d578063ddcf9b9814610a4a578063e1370dd314610a75578063f2fde38b14610aa057610293565b8063b62496f514610899578063bf9b0159146108d6578063bf9eb54014610901578063cb6645341461092a578063cba0e99614610953578063d1294d4c1461099057610293565b8063a04bdc8111610113578063a04bdc811461078b578063a5ece941146107b6578063a6c38f59146107e1578063a7a074521461080a578063a9059cbb14610833578063b4d95a931461087057610293565b8063893d20e81461068b5780638da5cb5b146106b657806390f50283146106e157806395d89b411461070c5780639a7a23d6146107375780639b136da41461076057610293565b80634a0e963c116101fe57806364c16163116101b757806364c161631461058f5780636573c4df146105ba5780636df3333a146105e357806370a082311461060e578063715018a61461064b578063801527ce1461066257610293565b80634a0e963c146104935780634a74bb02146104bc5780634bd7ace5146104e75780635297defd146105125780635be76f111461053d57806362bb73241461056657610293565b806323b872dd1161025057806323b872dd1461038157806327c8f835146103be5780632d03420b146103e9578063313ce56714610412578063487a69051461043d57806349bd5a5e1461046857610293565b806306fdde0314610298578063095ea7b3146102c357806318160ddd14610300578063220f66961461032b57806322788f861461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610ac9565b6040516102ba9190613b50565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906133ed565b610b5b565b6040516102f79190613b35565b60405180910390f35b34801561030c57600080fd5b50610315610b79565b6040516103229190613d12565b60405180910390f35b34801561033757600080fd5b50610340610b83565b60405161034d9190613b35565b60405180910390f35b34801561036257600080fd5b5061036b610b96565b6040516103789190613d12565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190613362565b610ba0565b6040516103b59190613b35565b60405180910390f35b3480156103ca57600080fd5b506103d3610d1e565b6040516103e09190613a9e565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b9190613429565b610d42565b005b34801561041e57600080fd5b50610427610ddb565b6040516104349190613d12565b60405180910390f35b34801561044957600080fd5b50610452610df5565b60405161045f9190613d12565b60405180910390f35b34801561047457600080fd5b5061047d610dff565b60405161048a9190613a9e565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b5919061326f565b610e25565b005b3480156104c857600080fd5b506104d1610efc565b6040516104de9190613b35565b60405180910390f35b3480156104f357600080fd5b506104fc610f0f565b6040516105099190613d12565b60405180910390f35b34801561051e57600080fd5b50610527610f19565b6040516105349190613d12565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906132c1565b610f23565b005b34801561057257600080fd5b5061058d60048036038101906105889190613452565b610fef565b005b34801561059b57600080fd5b506105a4611075565b6040516105b19190613d12565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190613452565b61107f565b005b3480156105ef57600080fd5b506105f8611127565b6040516106059190613d12565b60405180910390f35b34801561061a57600080fd5b506106356004803603810190610630919061326f565b611131565b6040516106429190613d12565b60405180910390f35b34801561065757600080fd5b5061066061117a565b005b34801561066e57600080fd5b5061068960048036038101906106849190613429565b611202565b005b34801561069757600080fd5b506106a061129b565b6040516106ad9190613a9e565b60405180910390f35b3480156106c257600080fd5b506106cb6112aa565b6040516106d89190613a9e565b60405180910390f35b3480156106ed57600080fd5b506106f66112d3565b6040516107039190613d12565b60405180910390f35b34801561071857600080fd5b506107216112dd565b60405161072e9190613b50565b60405180910390f35b34801561074357600080fd5b5061075e600480360381019061075991906133b1565b61136f565b005b34801561076c57600080fd5b5061077561148a565b6040516107829190613d12565b60405180910390f35b34801561079757600080fd5b506107a0611494565b6040516107ad9190613d12565b60405180910390f35b3480156107c257600080fd5b506107cb61149a565b6040516107d89190613ab9565b60405180910390f35b3480156107ed57600080fd5b50610808600480360381019061080391906132ea565b6114c0565b005b34801561081657600080fd5b50610831600480360381019061082c9190613452565b611597565b005b34801561083f57600080fd5b5061085a600480360381019061085591906133ed565b61163f565b6040516108679190613b35565b60405180910390f35b34801561087c57600080fd5b506108976004803603810190610892919061326f565b61165d565b005b3480156108a557600080fd5b506108c060048036038101906108bb919061326f565b611734565b6040516108cd9190613b35565b60405180910390f35b3480156108e257600080fd5b506108eb611754565b6040516108f89190613d12565b60405180910390f35b34801561090d57600080fd5b506109286004803603810190610923919061326f565b61175e565b005b34801561093657600080fd5b50610951600480360381019061094c919061326f565b61181e565b005b34801561095f57600080fd5b5061097a6004803603810190610975919061326f565b6118f5565b6040516109879190613b35565b60405180910390f35b34801561099c57600080fd5b506109b760048036038101906109b29190613452565b61194b565b005b3480156109c557600080fd5b506109ce6119f4565b6040516109db9190613b35565b60405180910390f35b3480156109f057600080fd5b50610a0b6004803603810190610a069190613452565b611a0b565b005b348015610a1957600080fd5b50610a346004803603810190610a2f9190613326565b611a91565b604051610a419190613d12565b60405180910390f35b348015610a5657600080fd5b50610a5f611b18565b604051610a6c9190613d12565b60405180910390f35b348015610a8157600080fd5b50610a8a611b22565b604051610a979190613d12565b60405180910390f35b348015610aac57600080fd5b50610ac76004803603810190610ac2919061326f565b611b2c565b005b606060018054610ad890614057565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0490614057565b8015610b515780601f10610b2657610100808354040283529160200191610b51565b820191906000526020600020905b815481529060010190602001808311610b3457829003601f168201915b5050505050905090565b6000610b6f610b68611c24565b8484611c2c565b6001905092915050565b6000600954905090565b602060009054906101000a900460ff1681565b6000600854905090565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610beb611c24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5f90613c72565b60405180910390fd5b610c73848484611df7565b610d1384610c7f611c24565b84600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc9611c24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0e9190613f4e565b611c2c565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610d4a611c24565b73ffffffffffffffffffffffffffffffffffffffff16610d686112aa565b73ffffffffffffffffffffffffffffffffffffffff1614610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590613c92565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600a54905090565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e2d611c24565b73ffffffffffffffffffffffffffffffffffffffff16610e4b6112aa565b73ffffffffffffffffffffffffffffffffffffffff1614610ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9890613c92565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900460ff1681565b6000601754905090565b6000601e54905090565b610f2b611c24565b73ffffffffffffffffffffffffffffffffffffffff16610f496112aa565b73ffffffffffffffffffffffffffffffffffffffff1614610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690613c92565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fea573d6000803e3d6000fd5b505050565b610ff7611c24565b73ffffffffffffffffffffffffffffffffffffffff166110156112aa565b73ffffffffffffffffffffffffffffffffffffffff161461106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290613c92565b60405180910390fd5b80601e8190555050565b6000602254905090565b611087611c24565b73ffffffffffffffffffffffffffffffffffffffff166110a56112aa565b73ffffffffffffffffffffffffffffffffffffffff16146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290613c92565b60405180910390fd5b8060058190555060646005546009546111149190613ef4565b61111e9190613ec3565b60118190555050565b6000600754905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611182611c24565b73ffffffffffffffffffffffffffffffffffffffff166111a06112aa565b73ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed90613c92565b60405180910390fd5b61120060006128b4565b565b61120a611c24565b73ffffffffffffffffffffffffffffffffffffffff166112286112aa565b73ffffffffffffffffffffffffffffffffffffffff161461127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127590613c92565b60405180910390fd5b80602060016101000a81548160ff02191690831515021790555050565b60006112a56112aa565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601c54905090565b6060600280546112ec90614057565b80601f016020809104026020016040519081016040528092919081815260200182805461131890614057565b80156113655780601f1061133a57610100808354040283529160200191611365565b820191906000526020600020905b81548152906001019060200180831161134857829003601f168201915b5050505050905090565b611377611c24565b73ffffffffffffffffffffffffffffffffffffffff166113956112aa565b73ffffffffffffffffffffffffffffffffffffffff16146113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290613c92565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613bd2565b60405180910390fd5b6114868282612978565b5050565b6000601954905090565b600a5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114c8611c24565b73ffffffffffffffffffffffffffffffffffffffff166114e66112aa565b73ffffffffffffffffffffffffffffffffffffffff161461153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390613c92565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61159f611c24565b73ffffffffffffffffffffffffffffffffffffffff166115bd6112aa565b73ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90613c92565b60405180910390fd5b80600681905550606460065460095461162c9190613ef4565b6116369190613ec3565b60128190555050565b600061165361164c611c24565b8484611df7565b6001905092915050565b611665611c24565b73ffffffffffffffffffffffffffffffffffffffff166116836112aa565b73ffffffffffffffffffffffffffffffffffffffff16146116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613c92565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000601254905090565b611766611c24565b73ffffffffffffffffffffffffffffffffffffffff166117846112aa565b73ffffffffffffffffffffffffffffffffffffffff16146117da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d190613c92565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611826611c24565b73ffffffffffffffffffffffffffffffffffffffff166118446112aa565b73ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613c92565b60405180910390fd5b6001601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611953611c24565b73ffffffffffffffffffffffffffffffffffffffff166119716112aa565b73ffffffffffffffffffffffffffffffffffffffff16146119c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119be90613c92565b60405180910390fd5b806007819055506103e86007546009546119e19190613ef4565b6119eb9190613ec3565b600a8190555050565b6000601b60009054906101000a900460ff16905090565b611a13611c24565b73ffffffffffffffffffffffffffffffffffffffff16611a316112aa565b73ffffffffffffffffffffffffffffffffffffffff1614611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90613c92565b60405180910390fd5b8060088190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602154905090565b6000601154905090565b611b34611c24565b73ffffffffffffffffffffffffffffffffffffffff16611b526112aa565b73ffffffffffffffffffffffffffffffffffffffff1614611ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9f90613c92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f90613b92565b60405180910390fd5b611c21816128b4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9390613cd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0390613bb2565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dea9190613d12565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e90613cb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90613b72565b60405180910390fd5b60008111611f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1190613c32565b60405180910390fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613bf2565b60405180910390fd5b60001515601b60009054906101000a900460ff161515141561209e57601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061205e5750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61209d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209490613c52565b60405180910390fd5b5b60001515601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561214e575060001515601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1561221257601254821115612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f90613c12565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561221157601154826121fb85611131565b6122059190613e6d565b111561221057600080fd5b5b5b600061221d30611131565b9050600a54811015801561223e5750602060009054906101000a900460ff16155b80156122985750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122b05750602060019054906101000a900460ff165b156122ce57600a5481106122cd57600a5490506122cc81612a19565b5b5b600060019050600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123755750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612387576000600481905550600090505b60008082156126835760011515601360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148061243f575060011515601360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1561247f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247690613cf2565b60405180910390fd5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125265750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156125825760006004819055506064601e54876125439190613ef4565b61254d9190613ec3565b91506064601c548761255f9190613ef4565b6125699190613ec3565b905080826125779190613e6d565b600481905550612682565b600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126295750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156126815760006004819055506064601954876126469190613ef4565b6126509190613ec3565b91506064601754876126629190613ef4565b61266c9190613ec3565b9050808261267a9190613e6d565b6004819055505b5b5b858561268f9190613f4e565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508082876126df9190613f4e565b6126e99190613f4e565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127379190613e6d565b925050819055506000811461283857600454600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127979190613e6d565b9250508190555080602260008282546127b09190613e6d565b9250508190555081602160008282546127c99190613e6d565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405161282f9190613d12565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454896128959190613f4e565b6040516128a29190613d12565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001602060006101000a81548160ff021916908315150217905550612a3f602254612aaf565b612a4a602154612b3a565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f0190481604051612a799190613d12565b60405180910390a1600060218190555060006022819055506000602060006101000a81548160ff02191690831515021790555050565b6000600282612abe9190613ec3565b905060008183612ace9190613f4e565b90506000479050612ade83612e20565b60008147612aec9190613f4e565b9050612af883826130e4565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612b2b93929190613de1565b60405180910390a15050505050565b6000600267ffffffffffffffff811115612b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612bab5781602001602082028036833780820191505090505b5090503081600081518110612be9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612c8b57600080fd5b505afa158015612c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc39190613298565b81600181518110612cfd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d6430602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2c565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612dea959493929190613d2d565b600060405180830381600087803b158015612e0457600080fd5b505af1158015612e18573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff811115612e63577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612e915781602001602082028036833780820191505090505b5090503081600081518110612ecf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f7157600080fd5b505afa158015612f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa99190613298565b81600181518110612fe3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061304a30602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2c565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130ae959493929190613d87565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b505050505050565b61311130602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2c565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f000000000000000000000000000000000000000000000000000000000000dead426040518863ffffffff1660e01b815260040161319896959493929190613ad4565b6060604051808303818588803b1580156131b157600080fd5b505af11580156131c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131ea919061347b565b5050505050565b60008135905061320081614127565b92915050565b60008151905061321581614127565b92915050565b60008135905061322a8161413e565b92915050565b60008135905061323f81614155565b92915050565b6000813590506132548161416c565b92915050565b6000815190506132698161416c565b92915050565b60006020828403121561328157600080fd5b600061328f848285016131f1565b91505092915050565b6000602082840312156132aa57600080fd5b60006132b884828501613206565b91505092915050565b6000602082840312156132d357600080fd5b60006132e18482850161321b565b91505092915050565b600080604083850312156132fd57600080fd5b600061330b8582860161321b565b925050602061331c85828601613230565b9150509250929050565b6000806040838503121561333957600080fd5b6000613347858286016131f1565b9250506020613358858286016131f1565b9150509250929050565b60008060006060848603121561337757600080fd5b6000613385868287016131f1565b9350506020613396868287016131f1565b92505060406133a786828701613245565b9150509250925092565b600080604083850312156133c457600080fd5b60006133d2858286016131f1565b92505060206133e385828601613230565b9150509250929050565b6000806040838503121561340057600080fd5b600061340e858286016131f1565b925050602061341f85828601613245565b9150509250929050565b60006020828403121561343b57600080fd5b600061344984828501613230565b91505092915050565b60006020828403121561346457600080fd5b600061347284828501613245565b91505092915050565b60008060006060848603121561349057600080fd5b600061349e8682870161325a565b93505060206134af8682870161325a565b92505060406134c08682870161325a565b9150509250925092565b60006134d68383613500565b60208301905092915050565b6134eb81613fdc565b82525050565b6134fa81613f94565b82525050565b61350981613f82565b82525050565b61351881613f82565b82525050565b600061352982613e28565b6135338185613e4b565b935061353e83613e18565b8060005b8381101561356f57815161355688826134ca565b975061356183613e3e565b925050600181019050613542565b5085935050505092915050565b61358581613fa6565b82525050565b61359481613fee565b82525050565b60006135a582613e33565b6135af8185613e5c565b93506135bf818560208601614024565b6135c881614116565b840191505092915050565b60006135e0602383613e5c565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613646602683613e5c565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136ac602283613e5c565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613712603983613e5c565b91507f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008301527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006020830152604082019050919050565b6000613778602683613e5c565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137de602883613e5c565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008301527f78416d6f756e742e0000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613844603283613e5c565b91507f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008301527f2067726561746572207468616e207a65726f00000000000000000000000000006020830152604082019050919050565b60006138aa601d83613e5c565b91507f43616e742074726164652c2074726164652069732064697361626c65640000006000830152602082019050919050565b60006138ea602883613e5c565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613950602083613e5c565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613990602583613e5c565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139f6602483613e5c565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a5c601183613e5c565b91507f4e6f20626f74732063616e2074726164650000000000000000000000000000006000830152602082019050919050565b613a9881613fd2565b82525050565b6000602082019050613ab3600083018461350f565b92915050565b6000602082019050613ace60008301846134f1565b92915050565b600060c082019050613ae9600083018961350f565b613af66020830188613a8f565b613b03604083018761358b565b613b10606083018661358b565b613b1d608083018561350f565b613b2a60a0830184613a8f565b979650505050505050565b6000602082019050613b4a600083018461357c565b92915050565b60006020820190508181036000830152613b6a818461359a565b905092915050565b60006020820190508181036000830152613b8b816135d3565b9050919050565b60006020820190508181036000830152613bab81613639565b9050919050565b60006020820190508181036000830152613bcb8161369f565b9050919050565b60006020820190508181036000830152613beb81613705565b9050919050565b60006020820190508181036000830152613c0b8161376b565b9050919050565b60006020820190508181036000830152613c2b816137d1565b9050919050565b60006020820190508181036000830152613c4b81613837565b9050919050565b60006020820190508181036000830152613c6b8161389d565b9050919050565b60006020820190508181036000830152613c8b816138dd565b9050919050565b60006020820190508181036000830152613cab81613943565b9050919050565b60006020820190508181036000830152613ccb81613983565b9050919050565b60006020820190508181036000830152613ceb816139e9565b9050919050565b60006020820190508181036000830152613d0b81613a4f565b9050919050565b6000602082019050613d276000830184613a8f565b92915050565b600060a082019050613d426000830188613a8f565b613d4f602083018761358b565b8181036040830152613d61818661351e565b9050613d7060608301856134e2565b613d7d6080830184613a8f565b9695505050505050565b600060a082019050613d9c6000830188613a8f565b613da9602083018761358b565b8181036040830152613dbb818661351e565b9050613dca606083018561350f565b613dd76080830184613a8f565b9695505050505050565b6000606082019050613df66000830186613a8f565b613e036020830185613a8f565b613e106040830184613a8f565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e7882613fd2565b9150613e8383613fd2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613eb857613eb7614089565b5b828201905092915050565b6000613ece82613fd2565b9150613ed983613fd2565b925082613ee957613ee86140b8565b5b828204905092915050565b6000613eff82613fd2565b9150613f0a83613fd2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f4357613f42614089565b5b828202905092915050565b6000613f5982613fd2565b9150613f6483613fd2565b925082821015613f7757613f76614089565b5b828203905092915050565b6000613f8d82613fb2565b9050919050565b6000613f9f82613fb2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613fe782614000565b9050919050565b6000613ff982613fd2565b9050919050565b600061400b82614012565b9050919050565b600061401d82613fb2565b9050919050565b60005b83811015614042578082015181840152602081019050614027565b83811115614051576000848401525b50505050565b6000600282049050600182168061406f57607f821691505b60208210811415614083576140826140e7565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61413081613f82565b811461413b57600080fd5b50565b61414781613f94565b811461415257600080fd5b50565b61415e81613fa6565b811461416957600080fd5b50565b61417581613fd2565b811461418057600080fd5b5056fea26469706673582212206f2eea91a439204a0df511857c5d4a7554878f52fc973fb57dc5c57bcf1c7c3164736f6c63430008000033
Deployed Bytecode Sourcemap
4854:12669:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8989:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8756:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8244:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6443:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10345:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9462:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6517:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8912:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17424:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6979:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15769:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6474:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9984:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10254:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14069:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16834:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8153:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9301:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17334:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8342:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4300:85;;;;;;;;;;;;;:::i;:::-;;16086:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7983:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3732:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10163:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9067:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16430:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10073:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5361:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5688:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9861:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9151:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8453:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15874:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5610:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17013:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16213:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13550:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10439:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17095:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17247:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15983:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8615:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8062:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16923:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4515:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8989:76;9028:13;9056:5;9049:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8989:76;:::o;8756:154::-;8833:4;8848:37;8857:12;:10;:12::i;:::-;8870:7;8878:6;8848:8;:37::i;:::-;8902:4;8895:11;;8756:154;;;;:::o;8244:96::-;8299:7;8324:12;;8317:19;;8244:96;:::o;6443:28::-;;;;;;;;;;;;;:::o;10345:92::-;10396:7;10417:16;;10410:23;;10345:92;:::o;9462:363::-;9575:4;9604:11;:19;9616:6;9604:19;;;;;;;;;;;;;;;:33;9624:12;:10;:12::i;:::-;9604:33;;;;;;;;;;;;;;;;9594:6;:43;;9586:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;9688:36;9698:6;9706:9;9717:6;9688:9;:36::i;:::-;9730:74;9739:6;9747:12;:10;:12::i;:::-;9797:6;9761:11;:19;9773:6;9761:19;;;;;;;;;;;;;;;:33;9781:12;:10;:12::i;:::-;9761:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;9730:8;:74::i;:::-;9817:4;9810:11;;9462:363;;;;;:::o;6517:81::-;;;:::o;14235:::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14306:6:::1;14291:12;;:21;;;;;;;;;;;;;;;;;;14235:81:::0;:::o;8912:75::-;8953:7;8974:9;;;;;;;;;;;8967:16;;;;8912:75;:::o;17424:96::-;17475:7;17496:20;;17489:27;;17424:96;:::o;6979:28::-;;;;;;;;;;;;;:::o;15769:103::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15864:4:::1;15833:17;:28;15851:9;15833:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;15769:103:::0;:::o;6474:40::-;;;;;;;;;;;;;:::o;9984:87::-;10033:7;10058:9;;10051:16;;9984:87;:::o;10254:89::-;10304:7;10329:10;;10322:17;;10254:89;:::o;14069:164::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14140:18:::1;14161:21;14140:42;;14196:11;14188:29;;:41;14218:10;14188:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;3984:1;14069:164:::0;:::o;16834:87::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16908:9:::1;16896:10;:21;;;;16834:87:::0;:::o;8153:89::-;8204:7;8229:9;;8222:16;;8153:89;:::o;9301:159::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9392:6:::1;9372:17;:26;;;;9453:3;9435:17;;9422:12;;:30;;;;:::i;:::-;:34;;;;:::i;:::-;9404:15;:52;;;;9301:159:::0;:::o;17334:88::-;17385:7;17406:12;;17399:19;;17334:88;:::o;8342:109::-;8408:7;8429:9;:18;8439:7;8429:18;;;;;;;;;;;;;;;;8422:25;;8342:109;;;:::o;4300:85::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4360:21:::1;4378:1;4360:9;:21::i;:::-;4300:85::o:0;16086:104::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16178:8:::1;16154:21;;:32;;;;;;;;;;;;;;;;;;16086:104:::0;:::o;7983:77::-;8024:7;8049;:5;:7::i;:::-;8042:14;;7983:77;:::o;3732:78::-;3778:7;3800:6;;;;;;;;;;;3793:13;;3732:78;:::o;10163:89::-;10213:7;10238:10;;10231:17;;10163:89;:::o;9067:79::-;9108:13;9135:7;9128:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9067:79;:::o;16430:228::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16532:13:::1;;;;;;;;;;;16524:21;;:4;:21;;;;16516:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;16613:41;16642:4;16648:5;16613:28;:41::i;:::-;16430:228:::0;;:::o;10073:87::-;10122:7;10147:9;;10140:16;;10073:87;:::o;5361:71::-;;;;:::o;5688:93::-;;;;;;;;;;;;;:::o;9861:121::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9973:5:::1;9947:10;:23;9958:11;9947:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;9861:121:::0;;:::o;9151:148::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9234:6:::1;9218:13;:22;;;;9287:3;9273:13;;9260:12;;:26;;;;:::i;:::-;:30;;;;:::i;:::-;9246:11;:44;;;;9151:148:::0;:::o;8453:160::-;8533:4;8548:40;8558:12;:10;:12::i;:::-;8571:9;8581:6;8548:9;:40::i;:::-;8605:4;8598:11;;8453:160;;;;:::o;15874:107::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15972:5:::1;15942:17;:27;15960:8;15942:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;15874:107:::0;:::o;5610:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;17013:80::-;17057:7;17078:11;;17071:18;;17013:80;:::o;16213:109::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16307:10:::1;16280:16;;:38;;;;;;;;;;;;;;;;;;16213:109:::0;:::o;13550:107::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13649:4:::1;13617:17;:29;13635:10;13617:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13550:107:::0;:::o;10439:109::-;10496:4;10518:17;:26;10536:7;10518:26;;;;;;;;;;;;;;;;;;;;;;;;;10511:33;;10439:109;;;:::o;17095:150::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17176:6:::1;17161:12;:21;;;;17237:4;17224:12;;17211;;:25;;;;:::i;:::-;:30;;;;:::i;:::-;17188:20;:53;;;;17095:150:::0;:::o;17247:85::-;17298:4;17316:12;;;;;;;;;;;17309:19;;17247:85;:::o;15983:101::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16068:12:::1;16049:16;:31;;;;15983:101:::0;:::o;8615:139::-;8698:7;8723:11;:18;8735:5;8723:18;;;;;;;;;;;;;;;:27;8742:7;8723:27;;;;;;;;;;;;;;;;8716:34;;8615:139;;;;:::o;8062:89::-;8113:7;8138:9;;8131:16;;8062:89;:::o;16923:88::-;16971:7;16992:15;;16985:22;;16923:88;:::o;4515:178::-;3929:12;:10;:12::i;:::-;3918:23;;:7;:5;:7::i;:::-;:23;;;3910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4619:1:::1;4599:22;;:8;:22;;;;4591:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4670:19;4680:8;4670:9;:19::i;:::-;4515:178:::0;:::o;87:89::-;140:7;162:10;155:17;;87:89;:::o;15431:310::-;15535:1;15518:19;;:5;:19;;;;15510:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15611:1;15592:21;;:7;:21;;;;15584:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15688:6;15658:11;:18;15670:5;15658:18;;;;;;;;;;;;;;;:27;15677:7;15658:27;;;;;;;;;;;;;;;:36;;;;15721:7;15705:32;;15714:5;15705:32;;;15730:6;15705:32;;;;;;:::i;:::-;;;;;;;;15431:310;;;:::o;10550:2763::-;10650:1;10634:18;;:4;:18;;;;10626:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10722:1;10708:16;;:2;:16;;;;10700:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10787:1;10778:6;:10;10770:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10848:21;10872:9;:15;10882:4;10872:15;;;;;;;;;;;;;;;;10848:39;;10918:6;10901:13;:23;;10893:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10992:5;10976:21;;:12;;;;;;;;;;;:21;;;10973:131;;;11016:17;:21;11034:2;11016:21;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;11041:17;:23;11059:4;11041:23;;;;;;;;;;;;;;;;;;;;;;;;;11016:48;11008:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10973:131;11135:5;11112:28;;:17;:21;11130:2;11112:21;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;:62;;;;;11169:5;11144:30;;:17;:23;11162:4;11144:23;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;11112:62;11109:257;;;11199:11;;11189:6;:21;;11181:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11273:13;;;;;;;;;;;11265:21;;:4;:21;;;11262:98;;;11333:15;;11323:6;11309:13;11319:2;11309:9;:13::i;:::-;:20;;;;:::i;:::-;:39;;11301:48;;;;;;11262:98;11109:257;11371:25;11399:24;11417:4;11399:9;:24::i;:::-;11371:52;;11452:20;;11432:17;:40;;:69;;;;;11485:16;;;;;;;;;;;11484:17;11432:69;:102;;;;;11521:13;;;;;;;;;;;11513:21;;:4;:21;;;;11432:102;:135;;;;;11546:21;;;;;;;;;;;11432:135;11429:336;;;11606:20;;11585:17;:41;11582:173;;11666:20;;11646:40;;11704:36;11722:17;11704;:36::i;:::-;11582:173;11429:336;11774:13;11790:4;11774:20;;11815:17;:23;11833:4;11815:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;11842:17;:21;11860:2;11842:21;;;;;;;;;;;;;;;;;;;;;;;;;11815:48;11812:132;;;11895:1;11879:13;:17;;;;11921:5;11910:16;;11812:132;11953:17;11984;12055:8;12052:844;;;12140:4;12120:24;;:10;:16;12131:4;12120:16;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;:46;;;;12162:4;12146:20;;:10;:14;12157:2;12146:14;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;12120:46;12117:110;;;12185:27;;;;;;;;;;:::i;:::-;;;;;;;;12117:110;12271:25;:29;12297:2;12271:29;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;;12318:7;;;;;;;;;;;12304:22;;:2;:22;;;;12271:55;12267:611;;;12366:1;12350:13;:17;;;;12421:3;12410:10;;12401:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;12389:35;;12478:3;12467:10;;12458:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;12446:35;;12531:9;12519;:21;;;;:::i;:::-;12503:13;:37;;;;12267:611;;;12599:25;:31;12625:4;12599:31;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;12650:7;;;;;;;;;;;12634:24;;:4;:24;;;;12599:59;12596:282;;;12702:1;12686:13;:17;;;;12752:3;12742:9;;12733:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;12721:34;;12804:3;12794:9;;12785:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;12773:34;;12853:9;12841;:21;;;;:::i;:::-;12825:13;:37;;;;12596:282;12267:611;12052:844;12939:6;12923:13;:22;;;;:::i;:::-;12905:9;:15;12915:4;12905:15;;;;;;;;;;;;;;;:40;;;;12993:9;12981;12972:6;:18;;;;:::i;:::-;:30;;;;:::i;:::-;12955:9;:13;12965:2;12955:13;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;13026:1;13013:9;:14;13010:242;;13067:13;;13039:9;:24;13057:4;13039:24;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;13137:9;13124;;:22;;;;;;;:::i;:::-;;;;;;;;13169:9;13156;;:22;;;;;;;:::i;:::-;;;;;;;;13216:4;13193:44;;13202:4;13193:44;;;13223:13;;13193:44;;;;;;:::i;:::-;;;;;;;;13010:242;13281:2;13266:39;;13275:4;13266:39;;;13291:13;;13284:6;:20;;;;:::i;:::-;13266:39;;;;;;:::i;:::-;;;;;;;;10550:2763;;;;;;;;:::o;4695:154::-;4746:16;4765:6;;;;;;;;;;;4746:25;;4786:8;4777:6;;:17;;;;;;;;;;;;;;;;;;4836:8;4805:40;;4826:8;4805:40;;;;;;;;;;;;4695:154;;:::o;16660:172::-;16772:5;16738:25;:31;16764:4;16738:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16822:5;16788:40;;16816:4;16788:40;;;;;;;;;;;;16660:172;;:::o;13315:233::-;7075:4;7056:16;;:23;;;;;;;;;;;;;;;;;;13390:25:::1;13405:9;;13390:14;:25::i;:::-;13421:30;13441:9;;13421:19;:30::i;:::-;13462:44;13492:13;13462:44;;;;;;:::i;:::-;;;;;;;;13524:1;13512:9;:13;;;;13543:1;13531:9;:13;;;;7111:5:::0;7092:16;;:24;;;;;;;;;;;;;;;;;;13315:233;:::o;14318:389::-;14381:12;14414:1;14396:15;:19;;;;:::i;:::-;14381:34;;14421:17;14459:4;14441:15;:22;;;;:::i;:::-;14421:42;;14469:22;14494:21;14469:46;;14521:22;14538:4;14521:16;:22::i;:::-;14549:18;14595:14;14570:21;:40;;;;:::i;:::-;14549:61;;14616:35;14629:9;14640:10;14616:12;:35::i;:::-;14662:41;14677:4;14682:10;14693:9;14662:41;;;;;;;;:::i;:::-;;;;;;;;14318:389;;;;;:::o;13659:408::-;13717:21;13755:1;13741:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13717:40;;13781:4;13763;13768:1;13763:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13802:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13792:4;13797:1;13792:7;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;13822:49;13839:4;13854:7;;;;;;;;;;;13864:6;13822:8;:49::i;:::-;13878:7;;;;;;;;;;;:58;;;13946:6;13962:1;14002:4;14016:16;;;;;;;;;;;14042:15;13878:185;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13659:408;;:::o;14709:417::-;14769:21;14807:1;14793:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14769:40;;14833:4;14815;14820:1;14815:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;14854:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14844:4;14849:1;14844:7;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;14874:54;14891:4;14906:7;;;;;;;;;;;14916:11;14874:8;:54::i;:::-;14935:7;;;;;;;;;;;:58;;;15003:11;15024:1;15064:4;15086;15101:15;14935:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14709:417;;:::o;15128:301::-;15202:54;15219:4;15234:7;;;;;;;;;;;15244:11;15202:8;:54::i;:::-;15262:7;;;;;;;;;;;:23;;;15292:9;15320:4;15335:11;15356:1;15367;15378:11;15404:15;15262:163;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15128:301;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:133::-;;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;511:84;;;;:::o;601:139::-;;685:6;672:20;663:29;;701:33;728:5;701:33;:::i;:::-;653:87;;;;:::o;746:143::-;;834:6;828:13;819:22;;850:33;877:5;850:33;:::i;:::-;809:80;;;;:::o;895:262::-;;1003:2;991:9;982:7;978:23;974:32;971:2;;;1019:1;1016;1009:12;971:2;1062:1;1087:53;1132:7;1123:6;1112:9;1108:22;1087:53;:::i;:::-;1077:63;;1033:117;961:196;;;;:::o;1163:284::-;;1282:2;1270:9;1261:7;1257:23;1253:32;1250:2;;;1298:1;1295;1288:12;1250:2;1341:1;1366:64;1422:7;1413:6;1402:9;1398:22;1366:64;:::i;:::-;1356:74;;1312:128;1240:207;;;;:::o;1453:278::-;;1569:2;1557:9;1548:7;1544:23;1540:32;1537:2;;;1585:1;1582;1575:12;1537:2;1628:1;1653:61;1706:7;1697:6;1686:9;1682:22;1653:61;:::i;:::-;1643:71;;1599:125;1527:204;;;;:::o;1737:417::-;;;1867:2;1855:9;1846:7;1842:23;1838:32;1835:2;;;1883:1;1880;1873:12;1835:2;1926:1;1951:61;2004:7;1995:6;1984:9;1980:22;1951:61;:::i;:::-;1941:71;;1897:125;2061:2;2087:50;2129:7;2120:6;2109:9;2105:22;2087:50;:::i;:::-;2077:60;;2032:115;1825:329;;;;;:::o;2160:407::-;;;2285:2;2273:9;2264:7;2260:23;2256:32;2253:2;;;2301:1;2298;2291:12;2253:2;2344:1;2369:53;2414:7;2405:6;2394:9;2390:22;2369:53;:::i;:::-;2359:63;;2315:117;2471:2;2497:53;2542:7;2533:6;2522:9;2518:22;2497:53;:::i;:::-;2487:63;;2442:118;2243:324;;;;;:::o;2573:552::-;;;;2715:2;2703:9;2694:7;2690:23;2686:32;2683:2;;;2731:1;2728;2721:12;2683:2;2774:1;2799:53;2844:7;2835:6;2824:9;2820:22;2799:53;:::i;:::-;2789:63;;2745:117;2901:2;2927:53;2972:7;2963:6;2952:9;2948:22;2927:53;:::i;:::-;2917:63;;2872:118;3029:2;3055:53;3100:7;3091:6;3080:9;3076:22;3055:53;:::i;:::-;3045:63;;3000:118;2673:452;;;;;:::o;3131:401::-;;;3253:2;3241:9;3232:7;3228:23;3224:32;3221:2;;;3269:1;3266;3259:12;3221:2;3312:1;3337:53;3382:7;3373:6;3362:9;3358:22;3337:53;:::i;:::-;3327:63;;3283:117;3439:2;3465:50;3507:7;3498:6;3487:9;3483:22;3465:50;:::i;:::-;3455:60;;3410:115;3211:321;;;;;:::o;3538:407::-;;;3663:2;3651:9;3642:7;3638:23;3634:32;3631:2;;;3679:1;3676;3669:12;3631:2;3722:1;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3693:117;3849:2;3875:53;3920:7;3911:6;3900:9;3896:22;3875:53;:::i;:::-;3865:63;;3820:118;3621:324;;;;;:::o;3951:256::-;;4056:2;4044:9;4035:7;4031:23;4027:32;4024:2;;;4072:1;4069;4062:12;4024:2;4115:1;4140:50;4182:7;4173:6;4162:9;4158:22;4140:50;:::i;:::-;4130:60;;4086:114;4014:193;;;;:::o;4213:262::-;;4321:2;4309:9;4300:7;4296:23;4292:32;4289:2;;;4337:1;4334;4327:12;4289:2;4380:1;4405:53;4450:7;4441:6;4430:9;4426:22;4405:53;:::i;:::-;4395:63;;4351:117;4279:196;;;;:::o;4481:596::-;;;;4634:2;4622:9;4613:7;4609:23;4605:32;4602:2;;;4650:1;4647;4640:12;4602:2;4693:1;4718:64;4774:7;4765:6;4754:9;4750:22;4718:64;:::i;:::-;4708:74;;4664:128;4831:2;4857:64;4913:7;4904:6;4893:9;4889:22;4857:64;:::i;:::-;4847:74;;4802:129;4970:2;4996:64;5052:7;5043:6;5032:9;5028:22;4996:64;:::i;:::-;4986:74;;4941:129;4592:485;;;;;:::o;5083:179::-;;5173:46;5215:3;5207:6;5173:46;:::i;:::-;5251:4;5246:3;5242:14;5228:28;;5163:99;;;;:::o;5268:147::-;5363:45;5402:5;5363:45;:::i;:::-;5358:3;5351:58;5341:74;;:::o;5421:142::-;5524:32;5550:5;5524:32;:::i;:::-;5519:3;5512:45;5502:61;;:::o;5569:108::-;5646:24;5664:5;5646:24;:::i;:::-;5641:3;5634:37;5624:53;;:::o;5683:118::-;5770:24;5788:5;5770:24;:::i;:::-;5765:3;5758:37;5748:53;;:::o;5837:732::-;;5985:54;6033:5;5985:54;:::i;:::-;6055:86;6134:6;6129:3;6055:86;:::i;:::-;6048:93;;6165:56;6215:5;6165:56;:::i;:::-;6244:7;6275:1;6260:284;6285:6;6282:1;6279:13;6260:284;;;6361:6;6355:13;6388:63;6447:3;6432:13;6388:63;:::i;:::-;6381:70;;6474:60;6527:6;6474:60;:::i;:::-;6464:70;;6320:224;6307:1;6304;6300:9;6295:14;;6260:284;;;6264:14;6560:3;6553:10;;5961:608;;;;;;;:::o;6575:109::-;6656:21;6671:5;6656:21;:::i;:::-;6651:3;6644:34;6634:50;;:::o;6690:147::-;6785:45;6824:5;6785:45;:::i;:::-;6780:3;6773:58;6763:74;;:::o;6843:364::-;;6959:39;6992:5;6959:39;:::i;:::-;7014:71;7078:6;7073:3;7014:71;:::i;:::-;7007:78;;7094:52;7139:6;7134:3;7127:4;7120:5;7116:16;7094:52;:::i;:::-;7171:29;7193:6;7171:29;:::i;:::-;7166:3;7162:39;7155:46;;6935:272;;;;;:::o;7213:367::-;;7376:67;7440:2;7435:3;7376:67;:::i;:::-;7369:74;;7473:34;7469:1;7464:3;7460:11;7453:55;7539:5;7534:2;7529:3;7525:12;7518:27;7571:2;7566:3;7562:12;7555:19;;7359:221;;;:::o;7586:370::-;;7749:67;7813:2;7808:3;7749:67;:::i;:::-;7742:74;;7846:34;7842:1;7837:3;7833:11;7826:55;7912:8;7907:2;7902:3;7898:12;7891:30;7947:2;7942:3;7938:12;7931:19;;7732:224;;;:::o;7962:366::-;;8125:67;8189:2;8184:3;8125:67;:::i;:::-;8118:74;;8222:34;8218:1;8213:3;8209:11;8202:55;8288:4;8283:2;8278:3;8274:12;8267:26;8319:2;8314:3;8310:12;8303:19;;8108:220;;;:::o;8334:389::-;;8497:67;8561:2;8556:3;8497:67;:::i;:::-;8490:74;;8594:34;8590:1;8585:3;8581:11;8574:55;8660:27;8655:2;8650:3;8646:12;8639:49;8714:2;8709:3;8705:12;8698:19;;8480:243;;;:::o;8729:370::-;;8892:67;8956:2;8951:3;8892:67;:::i;:::-;8885:74;;8989:34;8985:1;8980:3;8976:11;8969:55;9055:8;9050:2;9045:3;9041:12;9034:30;9090:2;9085:3;9081:12;9074:19;;8875:224;;;:::o;9105:372::-;;9268:67;9332:2;9327:3;9268:67;:::i;:::-;9261:74;;9365:34;9361:1;9356:3;9352:11;9345:55;9431:10;9426:2;9421:3;9417:12;9410:32;9468:2;9463:3;9459:12;9452:19;;9251:226;;;:::o;9483:382::-;;9646:67;9710:2;9705:3;9646:67;:::i;:::-;9639:74;;9743:34;9739:1;9734:3;9730:11;9723:55;9809:20;9804:2;9799:3;9795:12;9788:42;9856:2;9851:3;9847:12;9840:19;;9629:236;;;:::o;9871:327::-;;10034:67;10098:2;10093:3;10034:67;:::i;:::-;10027:74;;10131:31;10127:1;10122:3;10118:11;10111:52;10189:2;10184:3;10180:12;10173:19;;10017:181;;;:::o;10204:372::-;;10367:67;10431:2;10426:3;10367:67;:::i;:::-;10360:74;;10464:34;10460:1;10455:3;10451:11;10444:55;10530:10;10525:2;10520:3;10516:12;10509:32;10567:2;10562:3;10558:12;10551:19;;10350:226;;;:::o;10582:330::-;;10745:67;10809:2;10804:3;10745:67;:::i;:::-;10738:74;;10842:34;10838:1;10833:3;10829:11;10822:55;10903:2;10898:3;10894:12;10887:19;;10728:184;;;:::o;10918:369::-;;11081:67;11145:2;11140:3;11081:67;:::i;:::-;11074:74;;11178:34;11174:1;11169:3;11165:11;11158:55;11244:7;11239:2;11234:3;11230:12;11223:29;11278:2;11273:3;11269:12;11262:19;;11064:223;;;:::o;11293:368::-;;11456:67;11520:2;11515:3;11456:67;:::i;:::-;11449:74;;11553:34;11549:1;11544:3;11540:11;11533:55;11619:6;11614:2;11609:3;11605:12;11598:28;11652:2;11647:3;11643:12;11636:19;;11439:222;;;:::o;11667:315::-;;11830:67;11894:2;11889:3;11830:67;:::i;:::-;11823:74;;11927:19;11923:1;11918:3;11914:11;11907:40;11973:2;11968:3;11964:12;11957:19;;11813:169;;;:::o;11988:118::-;12075:24;12093:5;12075:24;:::i;:::-;12070:3;12063:37;12053:53;;:::o;12112:222::-;;12243:2;12232:9;12228:18;12220:26;;12256:71;12324:1;12313:9;12309:17;12300:6;12256:71;:::i;:::-;12210:124;;;;:::o;12340:254::-;;12487:2;12476:9;12472:18;12464:26;;12500:87;12584:1;12573:9;12569:17;12560:6;12500:87;:::i;:::-;12454:140;;;;:::o;12600:807::-;;12887:3;12876:9;12872:19;12864:27;;12901:71;12969:1;12958:9;12954:17;12945:6;12901:71;:::i;:::-;12982:72;13050:2;13039:9;13035:18;13026:6;12982:72;:::i;:::-;13064:80;13140:2;13129:9;13125:18;13116:6;13064:80;:::i;:::-;13154;13230:2;13219:9;13215:18;13206:6;13154:80;:::i;:::-;13244:73;13312:3;13301:9;13297:19;13288:6;13244:73;:::i;:::-;13327;13395:3;13384:9;13380:19;13371:6;13327:73;:::i;:::-;12854:553;;;;;;;;;:::o;13413:210::-;;13538:2;13527:9;13523:18;13515:26;;13551:65;13613:1;13602:9;13598:17;13589:6;13551:65;:::i;:::-;13505:118;;;;:::o;13629:313::-;;13780:2;13769:9;13765:18;13757:26;;13829:9;13823:4;13819:20;13815:1;13804:9;13800:17;13793:47;13857:78;13930:4;13921:6;13857:78;:::i;:::-;13849:86;;13747:195;;;;:::o;13948:419::-;;14152:2;14141:9;14137:18;14129:26;;14201:9;14195:4;14191:20;14187:1;14176:9;14172:17;14165:47;14229:131;14355:4;14229:131;:::i;:::-;14221:139;;14119:248;;;:::o;14373:419::-;;14577:2;14566:9;14562:18;14554:26;;14626:9;14620:4;14616:20;14612:1;14601:9;14597:17;14590:47;14654:131;14780:4;14654:131;:::i;:::-;14646:139;;14544:248;;;:::o;14798:419::-;;15002:2;14991:9;14987:18;14979:26;;15051:9;15045:4;15041:20;15037:1;15026:9;15022:17;15015:47;15079:131;15205:4;15079:131;:::i;:::-;15071:139;;14969:248;;;:::o;15223:419::-;;15427:2;15416:9;15412:18;15404:26;;15476:9;15470:4;15466:20;15462:1;15451:9;15447:17;15440:47;15504:131;15630:4;15504:131;:::i;:::-;15496:139;;15394:248;;;:::o;15648:419::-;;15852:2;15841:9;15837:18;15829:26;;15901:9;15895:4;15891:20;15887:1;15876:9;15872:17;15865:47;15929:131;16055:4;15929:131;:::i;:::-;15921:139;;15819:248;;;:::o;16073:419::-;;16277:2;16266:9;16262:18;16254:26;;16326:9;16320:4;16316:20;16312:1;16301:9;16297:17;16290:47;16354:131;16480:4;16354:131;:::i;:::-;16346:139;;16244:248;;;:::o;16498:419::-;;16702:2;16691:9;16687:18;16679:26;;16751:9;16745:4;16741:20;16737:1;16726:9;16722:17;16715:47;16779:131;16905:4;16779:131;:::i;:::-;16771:139;;16669:248;;;:::o;16923:419::-;;17127:2;17116:9;17112:18;17104:26;;17176:9;17170:4;17166:20;17162:1;17151:9;17147:17;17140:47;17204:131;17330:4;17204:131;:::i;:::-;17196:139;;17094:248;;;:::o;17348:419::-;;17552:2;17541:9;17537:18;17529:26;;17601:9;17595:4;17591:20;17587:1;17576:9;17572:17;17565:47;17629:131;17755:4;17629:131;:::i;:::-;17621:139;;17519:248;;;:::o;17773:419::-;;17977:2;17966:9;17962:18;17954:26;;18026:9;18020:4;18016:20;18012:1;18001:9;17997:17;17990:47;18054:131;18180:4;18054:131;:::i;:::-;18046:139;;17944:248;;;:::o;18198:419::-;;18402:2;18391:9;18387:18;18379:26;;18451:9;18445:4;18441:20;18437:1;18426:9;18422:17;18415:47;18479:131;18605:4;18479:131;:::i;:::-;18471:139;;18369:248;;;:::o;18623:419::-;;18827:2;18816:9;18812:18;18804:26;;18876:9;18870:4;18866:20;18862:1;18851:9;18847:17;18840:47;18904:131;19030:4;18904:131;:::i;:::-;18896:139;;18794:248;;;:::o;19048:419::-;;19252:2;19241:9;19237:18;19229:26;;19301:9;19295:4;19291:20;19287:1;19276:9;19272:17;19265:47;19329:131;19455:4;19329:131;:::i;:::-;19321:139;;19219:248;;;:::o;19473:222::-;;19604:2;19593:9;19589:18;19581:26;;19617:71;19685:1;19674:9;19670:17;19661:6;19617:71;:::i;:::-;19571:124;;;;:::o;19701:847::-;;20010:3;19999:9;19995:19;19987:27;;20024:71;20092:1;20081:9;20077:17;20068:6;20024:71;:::i;:::-;20105:80;20181:2;20170:9;20166:18;20157:6;20105:80;:::i;:::-;20232:9;20226:4;20222:20;20217:2;20206:9;20202:18;20195:48;20260:108;20363:4;20354:6;20260:108;:::i;:::-;20252:116;;20378:80;20454:2;20443:9;20439:18;20430:6;20378:80;:::i;:::-;20468:73;20536:3;20525:9;20521:19;20512:6;20468:73;:::i;:::-;19977:571;;;;;;;;:::o;20554:831::-;;20855:3;20844:9;20840:19;20832:27;;20869:71;20937:1;20926:9;20922:17;20913:6;20869:71;:::i;:::-;20950:80;21026:2;21015:9;21011:18;21002:6;20950:80;:::i;:::-;21077:9;21071:4;21067:20;21062:2;21051:9;21047:18;21040:48;21105:108;21208:4;21199:6;21105:108;:::i;:::-;21097:116;;21223:72;21291:2;21280:9;21276:18;21267:6;21223:72;:::i;:::-;21305:73;21373:3;21362:9;21358:19;21349:6;21305:73;:::i;:::-;20822:563;;;;;;;;:::o;21391:442::-;;21578:2;21567:9;21563:18;21555:26;;21591:71;21659:1;21648:9;21644:17;21635:6;21591:71;:::i;:::-;21672:72;21740:2;21729:9;21725:18;21716:6;21672:72;:::i;:::-;21754;21822:2;21811:9;21807:18;21798:6;21754:72;:::i;:::-;21545:288;;;;;;:::o;21839:132::-;;21929:3;21921:11;;21959:4;21954:3;21950:14;21942:22;;21911:60;;;:::o;21977:114::-;;22078:5;22072:12;22062:22;;22051:40;;;:::o;22097:99::-;;22183:5;22177:12;22167:22;;22156:40;;;:::o;22202:113::-;;22304:4;22299:3;22295:14;22287:22;;22277:38;;;:::o;22321:184::-;;22454:6;22449:3;22442:19;22494:4;22489:3;22485:14;22470:29;;22432:73;;;;:::o;22511:169::-;;22629:6;22624:3;22617:19;22669:4;22664:3;22660:14;22645:29;;22607:73;;;;:::o;22686:305::-;;22745:20;22763:1;22745:20;:::i;:::-;22740:25;;22779:20;22797:1;22779:20;:::i;:::-;22774:25;;22933:1;22865:66;22861:74;22858:1;22855:81;22852:2;;;22939:18;;:::i;:::-;22852:2;22983:1;22980;22976:9;22969:16;;22730:261;;;;:::o;22997:185::-;;23054:20;23072:1;23054:20;:::i;:::-;23049:25;;23088:20;23106:1;23088:20;:::i;:::-;23083:25;;23127:1;23117:2;;23132:18;;:::i;:::-;23117:2;23174:1;23171;23167:9;23162:14;;23039:143;;;;:::o;23188:348::-;;23251:20;23269:1;23251:20;:::i;:::-;23246:25;;23285:20;23303:1;23285:20;:::i;:::-;23280:25;;23473:1;23405:66;23401:74;23398:1;23395:81;23390:1;23383:9;23376:17;23372:105;23369:2;;;23480:18;;:::i;:::-;23369:2;23528:1;23525;23521:9;23510:20;;23236:300;;;;:::o;23542:191::-;;23602:20;23620:1;23602:20;:::i;:::-;23597:25;;23636:20;23654:1;23636:20;:::i;:::-;23631:25;;23675:1;23672;23669:8;23666:2;;;23680:18;;:::i;:::-;23666:2;23725:1;23722;23718:9;23710:17;;23587:146;;;;:::o;23739:96::-;;23805:24;23823:5;23805:24;:::i;:::-;23794:35;;23784:51;;;:::o;23841:104::-;;23915:24;23933:5;23915:24;:::i;:::-;23904:35;;23894:51;;;:::o;23951:90::-;;24028:5;24021:13;24014:21;24003:32;;23993:48;;;:::o;24047:126::-;;24124:42;24117:5;24113:54;24102:65;;24092:81;;;:::o;24179:77::-;;24245:5;24234:16;;24224:32;;;:::o;24262:134::-;;24353:37;24384:5;24353:37;:::i;:::-;24340:50;;24330:66;;;:::o;24402:121::-;;24493:24;24511:5;24493:24;:::i;:::-;24480:37;;24470:53;;;:::o;24529:126::-;;24612:37;24643:5;24612:37;:::i;:::-;24599:50;;24589:66;;;:::o;24661:113::-;;24744:24;24762:5;24744:24;:::i;:::-;24731:37;;24721:53;;;:::o;24780:307::-;24848:1;24858:113;24872:6;24869:1;24866:13;24858:113;;;24957:1;24952:3;24948:11;24942:18;24938:1;24933:3;24929:11;24922:39;24894:2;24891:1;24887:10;24882:15;;24858:113;;;24989:6;24986:1;24983:13;24980:2;;;25069:1;25060:6;25055:3;25051:16;25044:27;24980:2;24829:258;;;;:::o;25093:320::-;;25174:1;25168:4;25164:12;25154:22;;25221:1;25215:4;25211:12;25242:18;25232:2;;25298:4;25290:6;25286:17;25276:27;;25232:2;25360;25352:6;25349:14;25329:18;25326:38;25323:2;;;25379:18;;:::i;:::-;25323:2;25144:269;;;;:::o;25419:180::-;25467:77;25464:1;25457:88;25564:4;25561:1;25554:15;25588:4;25585:1;25578:15;25605:180;25653:77;25650:1;25643:88;25750:4;25747:1;25740:15;25774:4;25771:1;25764:15;25791:180;25839:77;25836:1;25829:88;25936:4;25933:1;25926:15;25960:4;25957:1;25950:15;25977:102;;26069:2;26065:7;26060:2;26053:5;26049:14;26045:28;26035:38;;26025:54;;;:::o;26085:122::-;26158:24;26176:5;26158:24;:::i;:::-;26151:5;26148:35;26138:2;;26197:1;26194;26187:12;26138:2;26128:79;:::o;26213:138::-;26294:32;26320:5;26294:32;:::i;:::-;26287:5;26284:43;26274:2;;26341:1;26338;26331:12;26274:2;26264:87;:::o;26357:116::-;26427:21;26442:5;26427:21;:::i;:::-;26420:5;26417:32;26407:2;;26463:1;26460;26453:12;26407:2;26397:76;:::o;26479:122::-;26552:24;26570:5;26552:24;:::i;:::-;26545:5;26542:35;26532:2;;26591:1;26588;26581:12;26532:2;26522:79;:::o
Swarm Source
ipfs://6f2eea91a439204a0df511857c5d4a7554878f52fc973fb57dc5c57bcf1c7c31
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.