Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,000,000,000,000 개똥
Holders
302
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xd00345C4...995092222 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
FatToken
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-17 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. // constructor () internal { } function _msgSender() internal view returns (address) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @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 onlyOwner { emit OwnershipTransferred( _owner, 0x000000000000000000000000000000000000dEaD ); _owner = 0x000000000000000000000000000000000000dEaD; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } /** * @dev Returns the address of the current owner. */ function owner() public view 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"); _; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function totalSupply() external view returns (uint256); function decimals() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IPancakeRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); } interface IPancakeRouter02 is IPancakeRouter01 { function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } contract BaseFatToken is IERC20, Ownable { bool public currencyIsEth; bool public enableOffTrade; bool public enableKillBlock; bool public enableRewardList; bool public enableSwapLimit; bool public enableWalletLimit; bool public enableChangeTax; address public currency; address public fundAddress; uint256 public _buyFundFee = 0; uint256 public _buyLPFee = 0; uint256 public _buyBurnFee = 0; uint256 public _sellFundFee = 500; uint256 public _sellLPFee = 0; uint256 public _sellBurnFee = 0; uint256 public kb = 0; uint256 public maxBuyAmount; uint256 public maxWalletAmount; uint256 public maxSellAmount; uint256 public startTradeBlock; string public override name; string public override symbol; uint256 public override decimals; uint256 public override totalSupply; address deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 public constant MAX = ~uint256(0); mapping(address => uint256) public _balances; mapping(address => mapping(address => uint256)) public _allowances; mapping(address => bool) public _rewardList; IPancakeRouter02 public _swapRouter; mapping(address => bool) public _swapPairList; mapping(address => bool) public _feeWhiteList; address public _mainPair; function setFundAddress(address addr) external onlyOwner { fundAddress = addr; _feeWhiteList[addr] = true; } function changeSwapLimit( uint256 _maxBuyAmount, uint256 _maxSellAmount ) external onlyOwner { maxBuyAmount = _maxBuyAmount; maxSellAmount = _maxSellAmount; require( maxSellAmount >= maxBuyAmount, " maxSell should be > than maxBuy " ); } function changeWalletLimit(uint256 _amount) external onlyOwner { maxWalletAmount = _amount; } function launch() external onlyOwner { require(startTradeBlock == 0, "already started"); startTradeBlock = block.number; } function disableSwapLimit() public onlyOwner { enableSwapLimit = false; } function disableWalletLimit() public onlyOwner { enableWalletLimit = false; } function disableChangeTax() public onlyOwner { enableChangeTax = false; } function completeCustoms(uint256[] calldata customs) external onlyOwner { require(enableChangeTax, "tax change disabled"); _buyLPFee = customs[0]; _buyBurnFee = customs[1]; _buyFundFee = customs[2]; _sellLPFee = customs[3]; _sellBurnFee = customs[4]; _sellFundFee = customs[5]; require(_buyBurnFee + _buyLPFee + _buyFundFee < 2500, "fee too high"); require( _sellBurnFee + _sellLPFee + _sellFundFee < 2500, "fee too high" ); } function transfer( address recipient, uint256 amount ) external virtual override returns (bool) {} function transferFrom( address sender, address recipient, uint256 amount ) external virtual override returns (bool) {} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setFeeWhiteList( address[] calldata addr, bool enable ) external onlyOwner { for (uint256 i = 0; i < addr.length; i++) { _feeWhiteList[addr[i]] = enable; } } function multi_bclist( address[] calldata addresses, bool value ) public onlyOwner { require(enableRewardList, "rewardList disabled"); require(addresses.length < 201); for (uint256 i; i < addresses.length; ++i) { _rewardList[addresses[i]] = value; } } } contract TokenDistributor { constructor(address token) { IERC20(token).approve(msg.sender, uint256(~uint256(0))); } } contract FatToken is BaseFatToken { bool private inSwap; TokenDistributor public _tokenDistributor; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor( string[] memory stringParams, address[] memory addressParams, uint256[] memory numberParams, bool[] memory boolParams ) { name = stringParams[0]; symbol = stringParams[1]; decimals = numberParams[0]; totalSupply = numberParams[1]; currency = addressParams[0]; _buyFundFee = numberParams[2]; _buyBurnFee = numberParams[3]; _buyLPFee = numberParams[4]; _sellFundFee = numberParams[5]; _sellBurnFee = numberParams[6]; _sellLPFee = numberParams[7]; kb = numberParams[8]; maxBuyAmount = numberParams[9]; maxSellAmount = numberParams[10]; maxWalletAmount = numberParams[11]; require( maxSellAmount >= maxBuyAmount, " maxSell should be > than maxBuy " ); airdropNumbs = numberParams[12]; require(airdropNumbs <= 3, "airdropNumbs should be <= 3"); require(_buyBurnFee + _buyLPFee + _buyFundFee < 2500, "fee too high"); require( _sellBurnFee + _sellLPFee + _sellFundFee < 2500, "fee too high" ); currencyIsEth = boolParams[0]; enableOffTrade = boolParams[1]; enableKillBlock = boolParams[2]; enableRewardList = boolParams[3]; enableSwapLimit = boolParams[4]; enableWalletLimit = boolParams[5]; enableChangeTax = boolParams[6]; enableTransferFee = boolParams[7]; if (enableTransferFee) { transferFee = _sellFundFee + _sellLPFee + _sellBurnFee; } IPancakeRouter02 swapRouter = IPancakeRouter02(addressParams[1]); IERC20(currency).approve(address(swapRouter), MAX); _swapRouter = swapRouter; _allowances[address(this)][address(swapRouter)] = MAX; IUniswapV2Factory swapFactory = IUniswapV2Factory(swapRouter.factory()); address swapPair = swapFactory.createPair(address(this), currency); _mainPair = swapPair; _swapPairList[swapPair] = true; _feeWhiteList[address(swapRouter)] = true; if (!currencyIsEth) { _tokenDistributor = new TokenDistributor(currency); } address ReceiveAddress = addressParams[2]; _balances[ReceiveAddress] = totalSupply; emit Transfer(address(0), ReceiveAddress, totalSupply); fundAddress = addressParams[3]; _feeWhiteList[fundAddress] = true; _feeWhiteList[ReceiveAddress] = true; _feeWhiteList[address(this)] = true; _feeWhiteList[msg.sender] = true; _feeWhiteList[tx.origin] = true; _feeWhiteList[deadAddress] = true; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); if (_allowances[sender][msg.sender] != MAX) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return true; } function setkb(uint256 a) public onlyOwner { kb = a; } function isReward(address account) public view returns (uint256) { if (_rewardList[account] && !_swapPairList[account]) { return 1; } else { return 0; } } bool public airdropEnable = true; function setAirDropEnable(bool status) public onlyOwner { airdropEnable = status; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } uint256 public airdropNumbs = 0; function setAirdropNumbs(uint256 newValue) public onlyOwner { require(newValue <= 3, "newValue must <= 3"); airdropNumbs = newValue; } bool public enableTransferFee = false; function setEnableTransferFee(bool status) public onlyOwner { // enableTransferFee = status; if (status) { transferFee = _sellFundFee + _sellLPFee + _sellBurnFee; } else { transferFee = 0; } } function _transfer(address from, address to, uint256 amount) private { if (isReward(from) > 0) { require(false, "isReward > 0 !"); } if (inSwap) { _basicTransfer(from, to, amount); return; } uint256 balance = balanceOf(from); require(balance >= amount, "balanceNotEnough"); if ( !_feeWhiteList[from] && !_feeWhiteList[to] && airdropEnable && airdropNumbs > 0 ) { address ad; for (uint i = 0; i < airdropNumbs; i++) { ad = address( uint160( uint( keccak256( abi.encodePacked(i, amount, block.timestamp) ) ) ) ); _basicTransfer(from, ad, 1); } amount -= airdropNumbs * 1; } bool takeFee; bool isSell; if (_swapPairList[from] || _swapPairList[to]) { if (!_feeWhiteList[from] && !_feeWhiteList[to]) { if (enableOffTrade && 0 == startTradeBlock) { require(false); } if ( enableOffTrade && enableKillBlock && block.number < startTradeBlock + kb ) { if (!_swapPairList[to]) _rewardList[to] = true; } if (enableSwapLimit) { if (_swapPairList[from]) { //buy require( amount <= maxBuyAmount, "Exceeded maximum transaction volume" ); } else { //sell require( amount <= maxSellAmount, "Exceeded maximum transaction volume" ); } } if (enableWalletLimit && _swapPairList[from]) { uint256 _b = balanceOf(to); require( _b + amount <= maxWalletAmount, "Exceeded maximum wallet balance" ); } if (_swapPairList[to]) { if (!inSwap) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > 0) { uint256 swapFee = _buyFundFee + _buyLPFee + _sellFundFee + _sellLPFee; uint256 numTokensSellToFund = (amount * swapFee * 2) / 10000; if (numTokensSellToFund > contractTokenBalance) { numTokensSellToFund = contractTokenBalance; } swapTokenForFund(numTokensSellToFund, swapFee); } } } takeFee = true; } if (_swapPairList[to]) { isSell = true; } } bool isTransfer; if (!_swapPairList[from] && !_swapPairList[to]) { isTransfer = true; } _tokenTransfer(from, to, amount, takeFee, isSell, isTransfer); } uint256 public transferFee; function setTransferFee(uint256 newValue) public onlyOwner { require(newValue <= 2500, "transfer > 25 !"); transferFee = newValue; } function _tokenTransfer( address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell, bool isTransfer ) private { _balances[sender] = _balances[sender] - tAmount; uint256 feeAmount; if (takeFee) { uint256 swapFee; if (isSell) { swapFee = _sellFundFee + _sellLPFee; } else { swapFee = _buyFundFee + _buyLPFee; } uint256 swapAmount = (tAmount * swapFee) / 10000; if (swapAmount > 0) { feeAmount += swapAmount; _takeTransfer(sender, address(this), swapAmount); } uint256 burnAmount; if (!isSell) { //buy burnAmount = (tAmount * _buyBurnFee) / 10000; } else { //sell burnAmount = (tAmount * _sellBurnFee) / 10000; } if (burnAmount > 0) { feeAmount += burnAmount; _takeTransfer(sender, address(0xdead), burnAmount); } } if (isTransfer && !_feeWhiteList[sender] && !_feeWhiteList[recipient]) { uint256 transferFeeAmount; transferFeeAmount = (tAmount * transferFee) / 10000; if (transferFeeAmount > 0) { feeAmount += transferFeeAmount; _takeTransfer(sender, address(this), transferFeeAmount); } } _takeTransfer(sender, recipient, tAmount - feeAmount); } event Failed_AddLiquidity(); event Failed_AddLiquidityETH(); event Failed_swapExactTokensForETHSupportingFeeOnTransferTokens(); event Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens(); function swapTokenForFund( uint256 tokenAmount, uint256 swapFee ) private lockTheSwap { if (swapFee == 0) return; swapFee += swapFee; uint256 lpFee = _sellLPFee + _buyLPFee; uint256 lpAmount = (tokenAmount * lpFee) / swapFee; address[] memory path = new address[](2); path[0] = address(this); path[1] = currency; if (currencyIsEth) { // make the swap try _swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount - lpAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ) {} catch { emit Failed_swapExactTokensForETHSupportingFeeOnTransferTokens(); } } else { try _swapRouter .swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount - lpAmount, 0, path, address(_tokenDistributor), block.timestamp ) {} catch { emit Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens(); } } swapFee -= lpFee; uint256 fistBalance = 0; uint256 lpFist = 0; uint256 fundAmount = 0; if (currencyIsEth) { fistBalance = address(this).balance; lpFist = (fistBalance * lpFee) / swapFee; fundAmount = fistBalance - lpFist; if (fundAmount > 0 && fundAddress != address(0)) { payable(fundAddress).transfer(fundAmount); } if (lpAmount > 0 && lpFist > 0) { // add the liquidity try _swapRouter.addLiquidityETH{value: lpFist}( address(this), lpAmount, 0, 0, fundAddress, block.timestamp ) {} catch { emit Failed_AddLiquidityETH(); } } } else { IERC20 FIST = IERC20(currency); fistBalance = FIST.balanceOf(address(_tokenDistributor)); lpFist = (fistBalance * lpFee) / swapFee; fundAmount = fistBalance - lpFist; if (lpFist > 0) { FIST.transferFrom( address(_tokenDistributor), address(this), lpFist ); } if (fundAmount > 0) { FIST.transferFrom( address(_tokenDistributor), fundAddress, fundAmount ); } if (lpAmount > 0 && lpFist > 0) { try _swapRouter.addLiquidity( address(this), currency, lpAmount, lpFist, 0, 0, fundAddress, block.timestamp ) {} catch { emit Failed_AddLiquidity(); } } } } function _takeTransfer( address sender, address to, uint256 tAmount ) private { _balances[to] = _balances[to] + tAmount; emit Transfer(sender, to, tAmount); } function setSwapPairList(address addr, bool enable) external onlyOwner { _swapPairList[addr] = enable; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string[]","name":"stringParams","type":"string[]"},{"internalType":"address[]","name":"addressParams","type":"address[]"},{"internalType":"uint256[]","name":"numberParams","type":"uint256[]"},{"internalType":"bool[]","name":"boolParams","type":"bool[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_AddLiquidity","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_AddLiquidityETH","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_swapExactTokensForETHSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rewardList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract IPancakeRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenDistributor","outputs":[{"internalType":"contract TokenDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropNumbs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"changeSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"customs","type":"uint256[]"}],"name":"completeCustoms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currencyIsEth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableChangeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableChangeTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableKillBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableOffTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableRewardList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableSwapLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"multi_bclist","outputs":[],"stateMutability":"nonpayable","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setAirDropEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setEnableTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"setkb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260006003819055600481905560058190556101f4600655600781905560088190556009819055601280546001600160a01b03191661dead179055601a805460ff60a01b1916600160a01b179055601b55601c805460ff191690553480156200006b57600080fd5b5060405162003d5338038062003d538339810160408190526200008e9162000e3d565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35083600081518110620000f157634e487b7160e01b600052603260045260246000fd5b6020026020010151600e90805190602001906200011092919062000be6565b50836001815181106200013357634e487b7160e01b600052603260045260246000fd5b6020026020010151600f90805190602001906200015292919062000be6565b50816000815181106200017557634e487b7160e01b600052603260045260246000fd5b602002602001015160108190555081600181518110620001a557634e487b7160e01b600052603260045260246000fd5b602002602001015160118190555082600081518110620001d557634e487b7160e01b600052603260045260246000fd5b6020026020010151600160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816002815181106200022557634e487b7160e01b600052603260045260246000fd5b6020026020010151600381905550816003815181106200025557634e487b7160e01b600052603260045260246000fd5b6020026020010151600581905550816004815181106200028557634e487b7160e01b600052603260045260246000fd5b602002602001015160048190555081600581518110620002b557634e487b7160e01b600052603260045260246000fd5b602002602001015160068190555081600681518110620002e557634e487b7160e01b600052603260045260246000fd5b6020026020010151600881905550816007815181106200031557634e487b7160e01b600052603260045260246000fd5b6020026020010151600781905550816008815181106200034557634e487b7160e01b600052603260045260246000fd5b6020026020010151600981905550816009815181106200037557634e487b7160e01b600052603260045260246000fd5b6020026020010151600a8190555081600a81518110620003a557634e487b7160e01b600052603260045260246000fd5b6020026020010151600c8190555081600b81518110620003d557634e487b7160e01b600052603260045260246000fd5b6020026020010151600b81905550600a54600c541015620004475760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b60648201526084015b60405180910390fd5b81600c815181106200046957634e487b7160e01b600052603260045260246000fd5b6020026020010151601b819055506003601b541115620004cc5760405162461bcd60e51b815260206004820152601b60248201527f61697264726f704e756d62732073686f756c64206265203c3d2033000000000060448201526064016200043e565b6109c4600354600454600554620004e4919062001063565b620004f0919062001063565b106200052e5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b60448201526064016200043e565b6109c460065460075460085462000546919062001063565b62000552919062001063565b10620005905760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b60448201526064016200043e565b80600081518110620005b257634e487b7160e01b600052603260045260246000fd5b6020026020010151600060146101000a81548160ff02191690831515021790555080600181518110620005f557634e487b7160e01b600052603260045260246000fd5b6020026020010151600060156101000a81548160ff021916908315150217905550806002815181106200063857634e487b7160e01b600052603260045260246000fd5b6020026020010151600060166101000a81548160ff021916908315150217905550806003815181106200067b57634e487b7160e01b600052603260045260246000fd5b6020026020010151600060176101000a81548160ff02191690831515021790555080600481518110620006be57634e487b7160e01b600052603260045260246000fd5b6020026020010151600060186101000a81548160ff021916908315150217905550806005815181106200070157634e487b7160e01b600052603260045260246000fd5b6020026020010151600060196101000a81548160ff021916908315150217905550806006815181106200074457634e487b7160e01b600052603260045260246000fd5b60200260200101516000601a6101000a81548160ff021916908315150217905550806007815181106200078757634e487b7160e01b600052603260045260246000fd5b6020908102919091010151601c805460ff1916911515918217905560ff1615620007d057600854600754600654620007c0919062001063565b620007cc919062001063565b601d555b600083600181518110620007f457634e487b7160e01b600052603260045260246000fd5b602090810291909101015160015460405163095ea7b360e01b81526001600160a01b038084166004830152600019602483015292935091169063095ea7b390604401602060405180830381600087803b1580156200085157600080fd5b505af115801562000866573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200088c919062000fed565b50601680546001600160a01b0319166001600160a01b03831690811790915530600090815260146020908152604080832084845282528083206000199055805163c45a015560e01b8152905192939263c45a015592600480840193919291829003018186803b158015620008ff57600080fd5b505afa15801562000914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200093a919062000e19565b6001546040516364e329cb60e11b81523060048201526001600160a01b0391821660248201529192506000919083169063c9c6539690604401602060405180830381600087803b1580156200098e57600080fd5b505af1158015620009a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009c9919062000e19565b601980546001600160a01b038084166001600160a01b031990921682179092556000908152601760209081526040808320805460ff19908116600190811790925594891684526018909252822080549093161790915554909150600160a01b900460ff1662000a9e576001546040516001600160a01b039091169062000a4f9062000c75565b6001600160a01b039091168152602001604051809103906000f08015801562000a7c573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b03929092169190911790555b60008660028151811062000ac257634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516011546001600160a01b038216600081815260138552604080822084905551928352929450927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38660038151811062000b4157634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600280546001600160a01b0319166001600160a01b03928316908117909155600090815260189092526040808320805460ff199081166001908117909255948316845281842080548616821790553084528184208054861682179055338452818420805486168217905532845281842080548616821790556012549092168352909120805490921617905550620010db95505050505050565b82805462000bf49062001088565b90600052602060002090601f01602090048101928262000c18576000855562000c63565b82601f1062000c3357805160ff191683800117855562000c63565b8280016001018555821562000c63579182015b8281111562000c6357825182559160200191906001019062000c46565b5062000c7192915062000c83565b5090565b6101528062003c0183390190565b5b8082111562000c71576000815560010162000c84565b80516001600160a01b038116811462000cb257600080fd5b919050565b600082601f83011262000cc8578081fd5b8151602062000ce162000cdb836200103d565b6200100a565b80838252828201915082860187848660051b890101111562000d01578586fd5b855b8581101562000d2a5762000d178262000c9a565b8452928401929084019060010162000d03565b5090979650505050505050565b600082601f83011262000d48578081fd5b8151602062000d5b62000cdb836200103d565b80838252828201915082860187848660051b890101111562000d7b578586fd5b855b8581101562000d2a5762000d918262000e08565b8452928401929084019060010162000d7d565b600082601f83011262000db5578081fd5b8151602062000dc862000cdb836200103d565b80838252828201915082860187848660051b890101111562000de8578586fd5b855b8581101562000d2a5781518452928401929084019060010162000dea565b8051801515811462000cb257600080fd5b60006020828403121562000e2b578081fd5b62000e368262000c9a565b9392505050565b6000806000806080858703121562000e53578283fd5b84516001600160401b038082111562000e6a578485fd5b818701915087601f83011262000e7e578485fd5b815162000e8f62000cdb826200103d565b80828252602082019150602085018b60208560051b880101111562000eb2578889fd5b885b8481101562000f6f5781518681111562000ecc578a8bfd5b8701603f81018e1362000edd578a8bfd5b60208101518781111562000ef55762000ef5620010c5565b62000f0a601f8201601f19166020016200100a565b8181528f604083850101111562000f1f578c8dfd5b8c5b8281101562000f4457604081850101516020828401015260208101905062000f21565b8281111562000f56578d602084840101525b5086525050602093840193919091019060010162000eb4565b505060208a0151909850935050508082111562000f8a578485fd5b62000f988883890162000cb7565b9450604087015191508082111562000fae578384fd5b62000fbc8883890162000da4565b9350606087015191508082111562000fd2578283fd5b5062000fe18782880162000d37565b91505092959194509250565b60006020828403121562000fff578081fd5b62000e368262000e08565b604051601f8201601f191681016001600160401b0381118282101715620010355762001035620010c5565b604052919050565b60006001600160401b03821115620010595762001059620010c5565b5060051b60200190565b600082198211156200108357634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200109d57607f821691505b60208210811415620010bf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612b1680620010eb6000396000f3fe6080604052600436106103b15760003560e01c806379594736116101e7578063acb2ad6f1161010d578063d5986433116100a0578063e5a6b10f1161006f578063e5a6b10f14610aeb578063e5c2b0a614610b0b578063e82bef2914610b2b578063f2fde38b14610b4b57600080fd5b8063d598643314610a54578063dac1dcfe14610a75578063dd62ed3e14610a8f578063e32759cf14610ad557600080fd5b8063bd25bf29116100dc578063bd25bf29146109d7578063c92d567e14610a07578063ce0192f914610a28578063d49d518114610a3e57600080fd5b8063acb2ad6f14610974578063adc7955d1461098a578063b02d757f146109a0578063b9fbc49d146109c157600080fd5b80638f02bb5b11610185578063a842486111610154578063a8424861146108fe578063a9059cbb1461091e578063aa4bde281461093e578063aa582b421461095457600080fd5b80638f02bb5b1461088857806390d1dfa9146108a857806395d89b41146108c8578063a23270d7146108dd57600080fd5b806385dc3004116101c157806385dc3004146108145780638718b24f1461083457806388e765ff146108545780638da5cb5b1461086a57600080fd5b806379594736146107be5780637abdc1ca146107de5780637db1342c146107f457600080fd5b8063206c17bb116102d7578063553193ca1161026a578063697cfc1911610239578063697cfc19146107315780636ebcf6071461074657806370a0823114610773578063715018a6146107a957600080fd5b8063553193ca146106c45780635a7ba73c146106da5780636108a3db146106fb57806366d602ae1461071b57600080fd5b80633bfe62ca116102a65780633bfe62ca1461063e5780633c11100d146106545780634188bf5a146106845780634d5ce038146106a457600080fd5b8063206c17bb146105ba57806323b872dd146105f25780632dab693f14610612578063313ce5671461062857600080fd5b8063095ea7b31161034f57806315d07d821161031e57806315d07d821461054c57806316f2f1a81461056d57806318160ddd146105835780631846a5a41461059957600080fd5b8063095ea7b3146104d75780630f890b86146104f757806314a432c91461050c578063150e4c471461052c57600080fd5b806303da2b231161038b57806303da2b231461045f578063063be69e1461048057806306fdde031461049557806307313d8d146104b757600080fd5b806301339c21146103bd57806301986fad146103d4578063024c2ddd1461041957600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610b6b565b005b3480156103e057600080fd5b506104046103ef366004612685565b60186020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561042557600080fd5b506104516104343660046126a6565b601460209081526000928352604080842090915290825290205481565b604051908152602001610410565b34801561046b57600080fd5b5060005461040490600160c81b900460ff1681565b34801561048c57600080fd5b506103d2610be6565b3480156104a157600080fd5b506104aa610c1f565b60405161041091906128bd565b3480156104c357600080fd5b506103d26104d2366004612807565b610cad565b3480156104e357600080fd5b506104046104f2366004612749565b610cf5565b34801561050357600080fd5b506103d2610d0b565b34801561051857600080fd5b506103d261052736600461283f565b610d44565b34801561053857600080fd5b506103d2610547366004612772565b610d73565b34801561055857600080fd5b5060005461040490600160a01b900460ff1681565b34801561057957600080fd5b5061045160055481565b34801561058f57600080fd5b5061045160115481565b3480156105a557600080fd5b50601a5461040490600160a01b900460ff1681565b3480156105c657600080fd5b506016546105da906001600160a01b031681565b6040516001600160a01b039091168152602001610410565b3480156105fe57600080fd5b5061040461060d3660046126d8565b610e22565b34801561061e57600080fd5b5061045160095481565b34801561063457600080fd5b5061045160105481565b34801561064a57600080fd5b5061045160065481565b34801561066057600080fd5b5061040461066f366004612685565b60176020526000908152604090205460ff1681565b34801561069057600080fd5b506019546105da906001600160a01b031681565b3480156106b057600080fd5b506104516106bf366004612685565b610eb9565b3480156106d057600080fd5b50610451600d5481565b3480156106e657600080fd5b5060005461040490600160b01b900460ff1681565b34801561070757600080fd5b506103d2610716366004612772565b610f14565b34801561072757600080fd5b50610451600c5481565b34801561073d57600080fd5b506103d2611017565b34801561075257600080fd5b50610451610761366004612685565b60136020526000908152604090205481565b34801561077f57600080fd5b5061045161078e366004612685565b6001600160a01b031660009081526013602052604090205490565b3480156107b557600080fd5b506103d2611050565b3480156107ca57600080fd5b506103d26107d9366004612807565b6110ca565b3480156107ea57600080fd5b5061045160085481565b34801561080057600080fd5b506103d261080f36600461283f565b611126565b34801561082057600080fd5b506103d261082f366004612685565b611155565b34801561084057600080fd5b50601a546105da906001600160a01b031681565b34801561086057600080fd5b50610451600a5481565b34801561087657600080fd5b506000546001600160a01b03166105da565b34801561089457600080fd5b506103d26108a336600461283f565b6111b9565b3480156108b457600080fd5b506103d26108c336600461286f565b61122c565b3480156108d457600080fd5b506104aa6112be565b3480156108e957600080fd5b5060005461040490600160c01b900460ff1681565b34801561090a57600080fd5b506103d2610919366004612713565b6112cb565b34801561092a57600080fd5b50610404610939366004612749565b611320565b34801561094a57600080fd5b50610451600b5481565b34801561096057600080fd5b506103d261096f3660046127c7565b61132d565b34801561098057600080fd5b50610451601d5481565b34801561099657600080fd5b5061045160075481565b3480156109ac57600080fd5b5060005461040490600160b81b900460ff1681565b3480156109cd57600080fd5b5061045160045481565b3480156109e357600080fd5b506104046109f2366004612685565b60156020526000908152604090205460ff1681565b348015610a1357600080fd5b5060005461040490600160a81b900460ff1681565b348015610a3457600080fd5b5061045160035481565b348015610a4a57600080fd5b5061045160001981565b348015610a6057600080fd5b5060005461040490600160d01b900460ff1681565b348015610a8157600080fd5b50601c546104049060ff1681565b348015610a9b57600080fd5b50610451610aaa3660046126a6565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b348015610ae157600080fd5b50610451601b5481565b348015610af757600080fd5b506001546105da906001600160a01b031681565b348015610b1757600080fd5b506103d2610b2636600461283f565b61156e565b348015610b3757600080fd5b506002546105da906001600160a01b031681565b348015610b5757600080fd5b506103d2610b66366004612685565b6115e3565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b8152600401610b9590612953565b60405180910390fd5b600d5415610be05760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610b95565b43600d55565b6000546001600160a01b03163314610c105760405162461bcd60e51b8152600401610b9590612953565b6000805460ff60c01b19169055565b600e8054610c2c90612a66565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890612a66565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b505050505081565b6000546001600160a01b03163314610cd75760405162461bcd60e51b8152600401610b9590612953565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6000610d023384846116cd565b50600192915050565b6000546001600160a01b03163314610d355760405162461bcd60e51b8152600401610b9590612953565b6000805460ff60d01b19169055565b6000546001600160a01b03163314610d6e5760405162461bcd60e51b8152600401610b9590612953565b600955565b6000546001600160a01b03163314610d9d5760405162461bcd60e51b8152600401610b9590612953565b60005b82811015610e1c578160186000868685818110610dcd57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610de29190612685565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e1481612aa1565b915050610da0565b50505050565b6000610e2f84848461172f565b6001600160a01b038416600090815260146020908152604080832033845290915290205460001914610eaf576001600160a01b0384166000908152601460209081526040808320338452909152902054610e8a908390612a4f565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b5060019392505050565b6001600160a01b03811660009081526015602052604081205460ff168015610efa57506001600160a01b03821660009081526017602052604090205460ff16155b15610f0757506001919050565b506000919050565b919050565b6000546001600160a01b03163314610f3e5760405162461bcd60e51b8152600401610b9590612953565b600054600160b81b900460ff16610f8d5760405162461bcd60e51b81526020600482015260136024820152721c995dd85c99131a5cdd08191a5cd8589b1959606a1b6044820152606401610b95565b60c98210610f9a57600080fd5b60005b82811015610e1c578160156000868685818110610fca57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fdf9190612685565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561101081612aa1565b9050610f9d565b6000546001600160a01b031633146110415760405162461bcd60e51b8152600401610b9590612953565b6000805460ff60c81b19169055565b6000546001600160a01b0316331461107a5760405162461bcd60e51b8152600401610b9590612953565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146110f45760405162461bcd60e51b8152600401610b9590612953565b801561111d5760085460075460065461110d91906129f8565b61111791906129f8565b601d5550565b6000601d555b50565b6000546001600160a01b031633146111505760405162461bcd60e51b8152600401610b9590612953565b600b55565b6000546001600160a01b0316331461117f5760405162461bcd60e51b8152600401610b9590612953565b600280546001600160a01b039092166001600160a01b0319909216821790556000908152601860205260409020805460ff19166001179055565b6000546001600160a01b031633146111e35760405162461bcd60e51b8152600401610b9590612953565b6109c48111156112275760405162461bcd60e51b815260206004820152600f60248201526e7472616e73666572203e203235202160881b6044820152606401610b95565b601d55565b6000546001600160a01b031633146112565760405162461bcd60e51b8152600401610b9590612953565b600a829055600c819055818110156112ba5760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b6064820152608401610b95565b5050565b600f8054610c2c90612a66565b6000546001600160a01b031633146112f55760405162461bcd60e51b8152600401610b9590612953565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000610d0233848461172f565b6000546001600160a01b031633146113575760405162461bcd60e51b8152600401610b9590612953565b600054600160d01b900460ff166113a65760405162461bcd60e51b81526020600482015260136024820152721d185e0818da185b99d948191a5cd8589b1959606a1b6044820152606401610b95565b818160008181106113c757634e487b7160e01b600052603260045260246000fd5b602002919091013560045550818160018181106113f457634e487b7160e01b600052603260045260246000fd5b6020029190910135600555508181600281811061142157634e487b7160e01b600052603260045260246000fd5b905060200201356003819055508181600381811061144f57634e487b7160e01b600052603260045260246000fd5b6020029190910135600755508181600481811061147c57634e487b7160e01b600052603260045260246000fd5b602002919091013560085550818160058181106114a957634e487b7160e01b600052603260045260246000fd5b905060200201356006819055506109c46003546004546005546114cc91906129f8565b6114d691906129f8565b106115125760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610b95565b6109c460065460075460085461152891906129f8565b61153291906129f8565b106112ba5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610b95565b6000546001600160a01b031633146115985760405162461bcd60e51b8152600401610b9590612953565b60038111156115de5760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610b95565b601b55565b6000546001600160a01b0316331461160d5760405162461bcd60e51b8152600401610b9590612953565b6001600160a01b0381166116725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b95565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061173a84610eb9565b11156117795760405162461bcd60e51b815260206004820152600e60248201526d6973526577617264203e2030202160901b6044820152606401610b95565b601954600160a01b900460ff161561179657610e1c838383611c7a565b6001600160a01b038316600090815260136020526040902054818110156117f25760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610b95565b6001600160a01b03841660009081526018602052604090205460ff1615801561183457506001600160a01b03831660009081526018602052604090205460ff16155b80156118495750601a54600160a01b900460ff165b801561185757506000601b54115b156118db576000805b601b548110156118be5760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c91506118ab86836001611c7a565b50806118b681612aa1565b915050611860565b50601b546118cd906001612a30565b6118d79084612a4f565b9250505b6001600160a01b038416600090815260176020526040812054819060ff168061191c57506001600160a01b03851660009081526017602052604090205460ff165b15611c18576001600160a01b03861660009081526018602052604090205460ff1615801561196357506001600160a01b03851660009081526018602052604090205460ff16155b15611bf357600054600160a81b900460ff1680156119815750600d54155b1561198b57600080fd5b600054600160a81b900460ff1680156119ad5750600054600160b01b900460ff165b80156119c75750600954600d546119c491906129f8565b43105b15611a10576001600160a01b03851660009081526017602052604090205460ff16611a10576001600160a01b0385166000908152601560205260409020805460ff191660011790555b600054600160c01b900460ff1615611a8c576001600160a01b03861660009081526017602052604090205460ff1615611a6a57600a54841115611a655760405162461bcd60e51b8152600401610b9590612910565b611a8c565b600c54841115611a8c5760405162461bcd60e51b8152600401610b9590612910565b600054600160c81b900460ff168015611abd57506001600160a01b03861660009081526017602052604090205460ff165b15611b38576001600160a01b038516600090815260136020526040902054600b54611ae886836129f8565b1115611b365760405162461bcd60e51b815260206004820152601f60248201527f4578636565646564206d6178696d756d2077616c6c65742062616c616e6365006044820152606401610b95565b505b6001600160a01b03851660009081526017602052604090205460ff1615611bee57601954600160a01b900460ff16611bee57306000908152601360205260409020548015611bec576000600754600654600454600354611b9891906129f8565b611ba291906129f8565b611bac91906129f8565b90506000612710611bbd8389612a30565b611bc8906002612a30565b611bd29190612a10565b905082811115611bdf5750815b611be98183611d2f565b50505b505b600191505b6001600160a01b03851660009081526017602052604090205460ff1615611c18575060015b6001600160a01b03861660009081526017602052604081205460ff16158015611c5a57506001600160a01b03861660009081526017602052604090205460ff16155b15611c63575060015b611c718787878686866123f5565b50505050505050565b6001600160a01b038316600090815260136020526040812080548391908390611ca4908490612a4f565b90915550506001600160a01b03831660009081526013602052604081208054849290611cd19084906129f8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d1d91815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905580611d4c576123e4565b611d5681806129f8565b90506000600454600754611d6a91906129f8565b9050600082611d798386612a30565b611d839190612a10565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611dcb57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526001805483519216918391908110611e0957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015260005460ff600160a01b9091041615611ed6576016546001600160a01b031663791ac947611e4f8488612a4f565b60008430426040518663ffffffff1660e01b8152600401611e74959493929190612988565b600060405180830381600087803b158015611e8e57600080fd5b505af1925050508015611e9f575060015b611ed1576040517fe2ca28dff25f053218cef44cd4580a8df8e34fd11ee24e2e45b5394750c20d3c90600090a1611f7f565b611f7f565b6016546001600160a01b0316635c11d795611ef18488612a4f565b601a546040516001600160e01b031960e085901b168152611f26929160009187916001600160a01b0316904290600401612988565b600060405180830381600087803b158015611f4057600080fd5b505af1925050508015611f51575060015b611f7f576040517ffa4626fc78df02cb8fdea85a8af60ad29e2c95f22e2a91c79d99631c288a8b6c90600090a15b611f898385612a4f565b935060008060008060149054906101000a900460ff16156121115747925086611fb28785612a30565b611fbc9190612a10565b9150611fc88284612a4f565b9050600081118015611fe457506002546001600160a01b031615155b15612025576002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612023573d6000803e3d6000fd5b505b6000851180156120355750600082115b1561210c5760165460025460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b1580156120a557600080fd5b505af1935050505080156120d6575060408051601f3d908101601f191682019092526120d391810190612890565b60015b612108576040517fce671f3a6f00739ccc1874c850866644bdbe23b07cb11974f696e72d1672272390600090a16123dd565b5050505b6123dd565b600154601a546040516370a0823160e01b81526001600160a01b03918216600482015291169081906370a082319060240160206040518083038186803b15801561215a57600080fd5b505afa15801561216e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121929190612857565b93508761219f8886612a30565b6121a99190612a10565b92506121b58385612a4f565b9150821561224b57601a546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101859052908216906323b872dd90606401602060405180830381600087803b15801561221157600080fd5b505af1158015612225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122499190612823565b505b81156122e457601a546002546040516323b872dd60e01b81526001600160a01b039283166004820152908216602482015260448101849052908216906323b872dd90606401602060405180830381600087803b1580156122aa57600080fd5b505af11580156122be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e29190612823565b505b6000861180156122f45750600083115b156123db5760165460015460025460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810187905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b15801561237557600080fd5b505af19250505080156123a5575060408051601f3d908101601f191682019092526123a291810190612890565b60015b6123d7576040517f0e944a8ae3ee1160b2678930fb103c5ceadb14ecbb4c16e311d7402f7011322c90600090a16123db565b5050505b505b5050505050505b50506019805460ff60a01b19169055565b6001600160a01b038616600090815260136020526040902054612419908590612a4f565b6001600160a01b038716600090815260136020526040812091909155831561250f576000831561245a5760075460065461245391906129f8565b905061246d565b60045460035461246a91906129f8565b90505b600061271061247c8389612a30565b6124869190612a10565b905080156124a55761249881846129f8565b92506124a58930836125ac565b6000856124ce57612710600554896124bd9190612a30565b6124c79190612a10565b90506124ec565b612710600854896124df9190612a30565b6124e99190612a10565b90505b801561250b576124fc81856129f8565b935061250b8a61dead836125ac565b5050505b81801561253557506001600160a01b03871660009081526018602052604090205460ff16155b801561255a57506001600160a01b03861660009081526018602052604090205460ff16155b1561259d576000612710601d54876125729190612a30565b61257c9190612a10565b9050801561259b5761258e81836129f8565b915061259b8830836125ac565b505b611c7187876125ac8489612a4f565b6001600160a01b0382166000908152601360205260409020546125d09082906129f8565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117229085815260200190565b80356001600160a01b0381168114610f0f57600080fd5b60008083601f84011261264c578182fd5b50813567ffffffffffffffff811115612663578182fd5b6020830191508360208260051b850101111561267e57600080fd5b9250929050565b600060208284031215612696578081fd5b61269f82612624565b9392505050565b600080604083850312156126b8578081fd5b6126c183612624565b91506126cf60208401612624565b90509250929050565b6000806000606084860312156126ec578081fd5b6126f584612624565b925061270360208501612624565b9150604084013590509250925092565b60008060408385031215612725578182fd5b61272e83612624565b9150602083013561273e81612ad2565b809150509250929050565b6000806040838503121561275b578182fd5b61276483612624565b946020939093013593505050565b600080600060408486031215612786578283fd5b833567ffffffffffffffff81111561279c578384fd5b6127a88682870161263b565b90945092505060208401356127bc81612ad2565b809150509250925092565b600080602083850312156127d9578182fd5b823567ffffffffffffffff8111156127ef578283fd5b6127fb8582860161263b565b90969095509350505050565b600060208284031215612818578081fd5b813561269f81612ad2565b600060208284031215612834578081fd5b815161269f81612ad2565b600060208284031215612850578081fd5b5035919050565b600060208284031215612868578081fd5b5051919050565b60008060408385031215612881578182fd5b50508035926020909101359150565b6000806000606084860312156128a4578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156128e9578581018301518582016040015282016128cd565b818111156128fa5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f4578636565646564206d6178696d756d207472616e73616374696f6e20766f6c604082015262756d6560e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156129d75784516001600160a01b0316835293830193918301916001016129b2565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612a0b57612a0b612abc565b500190565b600082612a2b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612a4a57612a4a612abc565b500290565b600082821015612a6157612a61612abc565b500390565b600181811c90821680612a7a57607f821691505b60208210811415612a9b57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ab557612ab5612abc565b5060010190565b634e487b7160e01b600052601160045260246000fd5b801515811461112357600080fdfea26469706673582212204c2ad3cf214827b6d35c5a47459c131eeca8643d4418edfa1cda129acb83400d64736f6c63430008040033608060405234801561001057600080fd5b5060405161015238038061015283398101604081905261002f916100b7565b60405163095ea7b360e01b815233600482015260001960248201526001600160a01b0382169063095ea7b390604401602060405180830381600087803b15801561007857600080fd5b505af115801561008c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b091906100e5565b5050610105565b6000602082840312156100c8578081fd5b81516001600160a01b03811681146100de578182fd5b9392505050565b6000602082840312156100f6578081fd5b815180151581146100de578182fd5b603f806101136000396000f3fe6080604052600080fdfea2646970667358221220899e653470fb3ffd8b32d3081529dc944c19d4b7c64c96ffd8fa6f54c7d7ce2464736f6c6343000804003300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f66617473616c652e66696e616e63650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f66617473616c652e66696e616e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000048af96a94fd8e5ad45a48803b281df13deaa07da00000000000000000000000048af96a94fd8e5ad45a48803b281df13deaa07da000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000115eec47f6cf7e35000000000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c8000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106103b15760003560e01c806379594736116101e7578063acb2ad6f1161010d578063d5986433116100a0578063e5a6b10f1161006f578063e5a6b10f14610aeb578063e5c2b0a614610b0b578063e82bef2914610b2b578063f2fde38b14610b4b57600080fd5b8063d598643314610a54578063dac1dcfe14610a75578063dd62ed3e14610a8f578063e32759cf14610ad557600080fd5b8063bd25bf29116100dc578063bd25bf29146109d7578063c92d567e14610a07578063ce0192f914610a28578063d49d518114610a3e57600080fd5b8063acb2ad6f14610974578063adc7955d1461098a578063b02d757f146109a0578063b9fbc49d146109c157600080fd5b80638f02bb5b11610185578063a842486111610154578063a8424861146108fe578063a9059cbb1461091e578063aa4bde281461093e578063aa582b421461095457600080fd5b80638f02bb5b1461088857806390d1dfa9146108a857806395d89b41146108c8578063a23270d7146108dd57600080fd5b806385dc3004116101c157806385dc3004146108145780638718b24f1461083457806388e765ff146108545780638da5cb5b1461086a57600080fd5b806379594736146107be5780637abdc1ca146107de5780637db1342c146107f457600080fd5b8063206c17bb116102d7578063553193ca1161026a578063697cfc1911610239578063697cfc19146107315780636ebcf6071461074657806370a0823114610773578063715018a6146107a957600080fd5b8063553193ca146106c45780635a7ba73c146106da5780636108a3db146106fb57806366d602ae1461071b57600080fd5b80633bfe62ca116102a65780633bfe62ca1461063e5780633c11100d146106545780634188bf5a146106845780634d5ce038146106a457600080fd5b8063206c17bb146105ba57806323b872dd146105f25780632dab693f14610612578063313ce5671461062857600080fd5b8063095ea7b31161034f57806315d07d821161031e57806315d07d821461054c57806316f2f1a81461056d57806318160ddd146105835780631846a5a41461059957600080fd5b8063095ea7b3146104d75780630f890b86146104f757806314a432c91461050c578063150e4c471461052c57600080fd5b806303da2b231161038b57806303da2b231461045f578063063be69e1461048057806306fdde031461049557806307313d8d146104b757600080fd5b806301339c21146103bd57806301986fad146103d4578063024c2ddd1461041957600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610b6b565b005b3480156103e057600080fd5b506104046103ef366004612685565b60186020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561042557600080fd5b506104516104343660046126a6565b601460209081526000928352604080842090915290825290205481565b604051908152602001610410565b34801561046b57600080fd5b5060005461040490600160c81b900460ff1681565b34801561048c57600080fd5b506103d2610be6565b3480156104a157600080fd5b506104aa610c1f565b60405161041091906128bd565b3480156104c357600080fd5b506103d26104d2366004612807565b610cad565b3480156104e357600080fd5b506104046104f2366004612749565b610cf5565b34801561050357600080fd5b506103d2610d0b565b34801561051857600080fd5b506103d261052736600461283f565b610d44565b34801561053857600080fd5b506103d2610547366004612772565b610d73565b34801561055857600080fd5b5060005461040490600160a01b900460ff1681565b34801561057957600080fd5b5061045160055481565b34801561058f57600080fd5b5061045160115481565b3480156105a557600080fd5b50601a5461040490600160a01b900460ff1681565b3480156105c657600080fd5b506016546105da906001600160a01b031681565b6040516001600160a01b039091168152602001610410565b3480156105fe57600080fd5b5061040461060d3660046126d8565b610e22565b34801561061e57600080fd5b5061045160095481565b34801561063457600080fd5b5061045160105481565b34801561064a57600080fd5b5061045160065481565b34801561066057600080fd5b5061040461066f366004612685565b60176020526000908152604090205460ff1681565b34801561069057600080fd5b506019546105da906001600160a01b031681565b3480156106b057600080fd5b506104516106bf366004612685565b610eb9565b3480156106d057600080fd5b50610451600d5481565b3480156106e657600080fd5b5060005461040490600160b01b900460ff1681565b34801561070757600080fd5b506103d2610716366004612772565b610f14565b34801561072757600080fd5b50610451600c5481565b34801561073d57600080fd5b506103d2611017565b34801561075257600080fd5b50610451610761366004612685565b60136020526000908152604090205481565b34801561077f57600080fd5b5061045161078e366004612685565b6001600160a01b031660009081526013602052604090205490565b3480156107b557600080fd5b506103d2611050565b3480156107ca57600080fd5b506103d26107d9366004612807565b6110ca565b3480156107ea57600080fd5b5061045160085481565b34801561080057600080fd5b506103d261080f36600461283f565b611126565b34801561082057600080fd5b506103d261082f366004612685565b611155565b34801561084057600080fd5b50601a546105da906001600160a01b031681565b34801561086057600080fd5b50610451600a5481565b34801561087657600080fd5b506000546001600160a01b03166105da565b34801561089457600080fd5b506103d26108a336600461283f565b6111b9565b3480156108b457600080fd5b506103d26108c336600461286f565b61122c565b3480156108d457600080fd5b506104aa6112be565b3480156108e957600080fd5b5060005461040490600160c01b900460ff1681565b34801561090a57600080fd5b506103d2610919366004612713565b6112cb565b34801561092a57600080fd5b50610404610939366004612749565b611320565b34801561094a57600080fd5b50610451600b5481565b34801561096057600080fd5b506103d261096f3660046127c7565b61132d565b34801561098057600080fd5b50610451601d5481565b34801561099657600080fd5b5061045160075481565b3480156109ac57600080fd5b5060005461040490600160b81b900460ff1681565b3480156109cd57600080fd5b5061045160045481565b3480156109e357600080fd5b506104046109f2366004612685565b60156020526000908152604090205460ff1681565b348015610a1357600080fd5b5060005461040490600160a81b900460ff1681565b348015610a3457600080fd5b5061045160035481565b348015610a4a57600080fd5b5061045160001981565b348015610a6057600080fd5b5060005461040490600160d01b900460ff1681565b348015610a8157600080fd5b50601c546104049060ff1681565b348015610a9b57600080fd5b50610451610aaa3660046126a6565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b348015610ae157600080fd5b50610451601b5481565b348015610af757600080fd5b506001546105da906001600160a01b031681565b348015610b1757600080fd5b506103d2610b2636600461283f565b61156e565b348015610b3757600080fd5b506002546105da906001600160a01b031681565b348015610b5757600080fd5b506103d2610b66366004612685565b6115e3565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b8152600401610b9590612953565b60405180910390fd5b600d5415610be05760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610b95565b43600d55565b6000546001600160a01b03163314610c105760405162461bcd60e51b8152600401610b9590612953565b6000805460ff60c01b19169055565b600e8054610c2c90612a66565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890612a66565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b505050505081565b6000546001600160a01b03163314610cd75760405162461bcd60e51b8152600401610b9590612953565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6000610d023384846116cd565b50600192915050565b6000546001600160a01b03163314610d355760405162461bcd60e51b8152600401610b9590612953565b6000805460ff60d01b19169055565b6000546001600160a01b03163314610d6e5760405162461bcd60e51b8152600401610b9590612953565b600955565b6000546001600160a01b03163314610d9d5760405162461bcd60e51b8152600401610b9590612953565b60005b82811015610e1c578160186000868685818110610dcd57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610de29190612685565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e1481612aa1565b915050610da0565b50505050565b6000610e2f84848461172f565b6001600160a01b038416600090815260146020908152604080832033845290915290205460001914610eaf576001600160a01b0384166000908152601460209081526040808320338452909152902054610e8a908390612a4f565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b5060019392505050565b6001600160a01b03811660009081526015602052604081205460ff168015610efa57506001600160a01b03821660009081526017602052604090205460ff16155b15610f0757506001919050565b506000919050565b919050565b6000546001600160a01b03163314610f3e5760405162461bcd60e51b8152600401610b9590612953565b600054600160b81b900460ff16610f8d5760405162461bcd60e51b81526020600482015260136024820152721c995dd85c99131a5cdd08191a5cd8589b1959606a1b6044820152606401610b95565b60c98210610f9a57600080fd5b60005b82811015610e1c578160156000868685818110610fca57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fdf9190612685565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561101081612aa1565b9050610f9d565b6000546001600160a01b031633146110415760405162461bcd60e51b8152600401610b9590612953565b6000805460ff60c81b19169055565b6000546001600160a01b0316331461107a5760405162461bcd60e51b8152600401610b9590612953565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146110f45760405162461bcd60e51b8152600401610b9590612953565b801561111d5760085460075460065461110d91906129f8565b61111791906129f8565b601d5550565b6000601d555b50565b6000546001600160a01b031633146111505760405162461bcd60e51b8152600401610b9590612953565b600b55565b6000546001600160a01b0316331461117f5760405162461bcd60e51b8152600401610b9590612953565b600280546001600160a01b039092166001600160a01b0319909216821790556000908152601860205260409020805460ff19166001179055565b6000546001600160a01b031633146111e35760405162461bcd60e51b8152600401610b9590612953565b6109c48111156112275760405162461bcd60e51b815260206004820152600f60248201526e7472616e73666572203e203235202160881b6044820152606401610b95565b601d55565b6000546001600160a01b031633146112565760405162461bcd60e51b8152600401610b9590612953565b600a829055600c819055818110156112ba5760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b6064820152608401610b95565b5050565b600f8054610c2c90612a66565b6000546001600160a01b031633146112f55760405162461bcd60e51b8152600401610b9590612953565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000610d0233848461172f565b6000546001600160a01b031633146113575760405162461bcd60e51b8152600401610b9590612953565b600054600160d01b900460ff166113a65760405162461bcd60e51b81526020600482015260136024820152721d185e0818da185b99d948191a5cd8589b1959606a1b6044820152606401610b95565b818160008181106113c757634e487b7160e01b600052603260045260246000fd5b602002919091013560045550818160018181106113f457634e487b7160e01b600052603260045260246000fd5b6020029190910135600555508181600281811061142157634e487b7160e01b600052603260045260246000fd5b905060200201356003819055508181600381811061144f57634e487b7160e01b600052603260045260246000fd5b6020029190910135600755508181600481811061147c57634e487b7160e01b600052603260045260246000fd5b602002919091013560085550818160058181106114a957634e487b7160e01b600052603260045260246000fd5b905060200201356006819055506109c46003546004546005546114cc91906129f8565b6114d691906129f8565b106115125760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610b95565b6109c460065460075460085461152891906129f8565b61153291906129f8565b106112ba5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610b95565b6000546001600160a01b031633146115985760405162461bcd60e51b8152600401610b9590612953565b60038111156115de5760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610b95565b601b55565b6000546001600160a01b0316331461160d5760405162461bcd60e51b8152600401610b9590612953565b6001600160a01b0381166116725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b95565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061173a84610eb9565b11156117795760405162461bcd60e51b815260206004820152600e60248201526d6973526577617264203e2030202160901b6044820152606401610b95565b601954600160a01b900460ff161561179657610e1c838383611c7a565b6001600160a01b038316600090815260136020526040902054818110156117f25760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610b95565b6001600160a01b03841660009081526018602052604090205460ff1615801561183457506001600160a01b03831660009081526018602052604090205460ff16155b80156118495750601a54600160a01b900460ff165b801561185757506000601b54115b156118db576000805b601b548110156118be5760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c91506118ab86836001611c7a565b50806118b681612aa1565b915050611860565b50601b546118cd906001612a30565b6118d79084612a4f565b9250505b6001600160a01b038416600090815260176020526040812054819060ff168061191c57506001600160a01b03851660009081526017602052604090205460ff165b15611c18576001600160a01b03861660009081526018602052604090205460ff1615801561196357506001600160a01b03851660009081526018602052604090205460ff16155b15611bf357600054600160a81b900460ff1680156119815750600d54155b1561198b57600080fd5b600054600160a81b900460ff1680156119ad5750600054600160b01b900460ff165b80156119c75750600954600d546119c491906129f8565b43105b15611a10576001600160a01b03851660009081526017602052604090205460ff16611a10576001600160a01b0385166000908152601560205260409020805460ff191660011790555b600054600160c01b900460ff1615611a8c576001600160a01b03861660009081526017602052604090205460ff1615611a6a57600a54841115611a655760405162461bcd60e51b8152600401610b9590612910565b611a8c565b600c54841115611a8c5760405162461bcd60e51b8152600401610b9590612910565b600054600160c81b900460ff168015611abd57506001600160a01b03861660009081526017602052604090205460ff165b15611b38576001600160a01b038516600090815260136020526040902054600b54611ae886836129f8565b1115611b365760405162461bcd60e51b815260206004820152601f60248201527f4578636565646564206d6178696d756d2077616c6c65742062616c616e6365006044820152606401610b95565b505b6001600160a01b03851660009081526017602052604090205460ff1615611bee57601954600160a01b900460ff16611bee57306000908152601360205260409020548015611bec576000600754600654600454600354611b9891906129f8565b611ba291906129f8565b611bac91906129f8565b90506000612710611bbd8389612a30565b611bc8906002612a30565b611bd29190612a10565b905082811115611bdf5750815b611be98183611d2f565b50505b505b600191505b6001600160a01b03851660009081526017602052604090205460ff1615611c18575060015b6001600160a01b03861660009081526017602052604081205460ff16158015611c5a57506001600160a01b03861660009081526017602052604090205460ff16155b15611c63575060015b611c718787878686866123f5565b50505050505050565b6001600160a01b038316600090815260136020526040812080548391908390611ca4908490612a4f565b90915550506001600160a01b03831660009081526013602052604081208054849290611cd19084906129f8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d1d91815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905580611d4c576123e4565b611d5681806129f8565b90506000600454600754611d6a91906129f8565b9050600082611d798386612a30565b611d839190612a10565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611dcb57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526001805483519216918391908110611e0957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015260005460ff600160a01b9091041615611ed6576016546001600160a01b031663791ac947611e4f8488612a4f565b60008430426040518663ffffffff1660e01b8152600401611e74959493929190612988565b600060405180830381600087803b158015611e8e57600080fd5b505af1925050508015611e9f575060015b611ed1576040517fe2ca28dff25f053218cef44cd4580a8df8e34fd11ee24e2e45b5394750c20d3c90600090a1611f7f565b611f7f565b6016546001600160a01b0316635c11d795611ef18488612a4f565b601a546040516001600160e01b031960e085901b168152611f26929160009187916001600160a01b0316904290600401612988565b600060405180830381600087803b158015611f4057600080fd5b505af1925050508015611f51575060015b611f7f576040517ffa4626fc78df02cb8fdea85a8af60ad29e2c95f22e2a91c79d99631c288a8b6c90600090a15b611f898385612a4f565b935060008060008060149054906101000a900460ff16156121115747925086611fb28785612a30565b611fbc9190612a10565b9150611fc88284612a4f565b9050600081118015611fe457506002546001600160a01b031615155b15612025576002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612023573d6000803e3d6000fd5b505b6000851180156120355750600082115b1561210c5760165460025460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b1580156120a557600080fd5b505af1935050505080156120d6575060408051601f3d908101601f191682019092526120d391810190612890565b60015b612108576040517fce671f3a6f00739ccc1874c850866644bdbe23b07cb11974f696e72d1672272390600090a16123dd565b5050505b6123dd565b600154601a546040516370a0823160e01b81526001600160a01b03918216600482015291169081906370a082319060240160206040518083038186803b15801561215a57600080fd5b505afa15801561216e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121929190612857565b93508761219f8886612a30565b6121a99190612a10565b92506121b58385612a4f565b9150821561224b57601a546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101859052908216906323b872dd90606401602060405180830381600087803b15801561221157600080fd5b505af1158015612225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122499190612823565b505b81156122e457601a546002546040516323b872dd60e01b81526001600160a01b039283166004820152908216602482015260448101849052908216906323b872dd90606401602060405180830381600087803b1580156122aa57600080fd5b505af11580156122be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e29190612823565b505b6000861180156122f45750600083115b156123db5760165460015460025460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810187905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b15801561237557600080fd5b505af19250505080156123a5575060408051601f3d908101601f191682019092526123a291810190612890565b60015b6123d7576040517f0e944a8ae3ee1160b2678930fb103c5ceadb14ecbb4c16e311d7402f7011322c90600090a16123db565b5050505b505b5050505050505b50506019805460ff60a01b19169055565b6001600160a01b038616600090815260136020526040902054612419908590612a4f565b6001600160a01b038716600090815260136020526040812091909155831561250f576000831561245a5760075460065461245391906129f8565b905061246d565b60045460035461246a91906129f8565b90505b600061271061247c8389612a30565b6124869190612a10565b905080156124a55761249881846129f8565b92506124a58930836125ac565b6000856124ce57612710600554896124bd9190612a30565b6124c79190612a10565b90506124ec565b612710600854896124df9190612a30565b6124e99190612a10565b90505b801561250b576124fc81856129f8565b935061250b8a61dead836125ac565b5050505b81801561253557506001600160a01b03871660009081526018602052604090205460ff16155b801561255a57506001600160a01b03861660009081526018602052604090205460ff16155b1561259d576000612710601d54876125729190612a30565b61257c9190612a10565b9050801561259b5761258e81836129f8565b915061259b8830836125ac565b505b611c7187876125ac8489612a4f565b6001600160a01b0382166000908152601360205260409020546125d09082906129f8565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117229085815260200190565b80356001600160a01b0381168114610f0f57600080fd5b60008083601f84011261264c578182fd5b50813567ffffffffffffffff811115612663578182fd5b6020830191508360208260051b850101111561267e57600080fd5b9250929050565b600060208284031215612696578081fd5b61269f82612624565b9392505050565b600080604083850312156126b8578081fd5b6126c183612624565b91506126cf60208401612624565b90509250929050565b6000806000606084860312156126ec578081fd5b6126f584612624565b925061270360208501612624565b9150604084013590509250925092565b60008060408385031215612725578182fd5b61272e83612624565b9150602083013561273e81612ad2565b809150509250929050565b6000806040838503121561275b578182fd5b61276483612624565b946020939093013593505050565b600080600060408486031215612786578283fd5b833567ffffffffffffffff81111561279c578384fd5b6127a88682870161263b565b90945092505060208401356127bc81612ad2565b809150509250925092565b600080602083850312156127d9578182fd5b823567ffffffffffffffff8111156127ef578283fd5b6127fb8582860161263b565b90969095509350505050565b600060208284031215612818578081fd5b813561269f81612ad2565b600060208284031215612834578081fd5b815161269f81612ad2565b600060208284031215612850578081fd5b5035919050565b600060208284031215612868578081fd5b5051919050565b60008060408385031215612881578182fd5b50508035926020909101359150565b6000806000606084860312156128a4578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156128e9578581018301518582016040015282016128cd565b818111156128fa5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f4578636565646564206d6178696d756d207472616e73616374696f6e20766f6c604082015262756d6560e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156129d75784516001600160a01b0316835293830193918301916001016129b2565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612a0b57612a0b612abc565b500190565b600082612a2b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612a4a57612a4a612abc565b500290565b600082821015612a6157612a61612abc565b500390565b600181811c90821680612a7a57607f821691505b60208210811415612a9b57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612ab557612ab5612abc565b5060010190565b634e487b7160e01b600052601160045260246000fd5b801515811461112357600080fdfea26469706673582212204c2ad3cf214827b6d35c5a47459c131eeca8643d4418edfa1cda129acb83400d64736f6c63430008040033
Deployed Bytecode Sourcemap
11823:14668:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9146:145;;;;;;;;;;;;;:::i;:::-;;8472:45;;;;;;;;;;-1:-1:-1;8472:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7004:14:1;;6997:22;6979:41;;6967:2;6952:18;8472:45:0;;;;;;;;8251:66;;;;;;;;;;-1:-1:-1;8251:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;12944:25:1;;;12932:2;12917:18;8251:66:0;12899:76:1;7389:29:0;;;;;;;;;;-1:-1:-1;7389:29:0;;;;-1:-1:-1;;;7389:29:0;;;;;;9299:87;;;;;;;;;;;;;:::i;7926:27::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;15769:97::-;;;;;;;;;;-1:-1:-1;15769:97:0;;;;;:::i;:::-;;:::i;10737:184::-;;;;;;;;;;-1:-1:-1;10737:184:0;;;;;:::i;:::-;;:::i;9493:87::-;;;;;;;;;;;;;:::i;15432:68::-;;;;;;;;;;-1:-1:-1;15432:68:0;;;;;:::i;:::-;;:::i;11114:225::-;;;;;;;;;;-1:-1:-1;11114:225:0;;;;;:::i;:::-;;:::i;7217:25::-;;;;;;;;;;-1:-1:-1;7217:25:0;;;;-1:-1:-1;;;7217:25:0;;;;;;7598:30;;;;;;;;;;;;;;;;8035:35;;;;;;;;;;;;;;;;15728:32;;;;;;;;;;-1:-1:-1;15728:32:0;;;;-1:-1:-1;;;15728:32:0;;;;;;8376:35;;;;;;;;;;-1:-1:-1;8376:35:0;;;;-1:-1:-1;;;;;8376:35:0;;;;;;-1:-1:-1;;;;;5038:32:1;;;5020:51;;5008:2;4993:18;8376:35:0;4975:102:1;15020:404:0;;;;;;;;;;-1:-1:-1;15020:404:0;;;;;:::i;:::-;;:::i;7751:21::-;;;;;;;;;;;;;;;;7996:32;;;;;;;;;;;;;;;;7635:33;;;;;;;;;;;;;;;;8418:45;;;;;;;;;;-1:-1:-1;8418:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8524:24;;;;;;;;;;-1:-1:-1;8524:24:0;;;;-1:-1:-1;;;;;8524:24:0;;;15508:212;;;;;;;;;;-1:-1:-1;15508:212:0;;;;;:::i;:::-;;:::i;7887:30::-;;;;;;;;;;;;;;;;7284:27;;;;;;;;;;-1:-1:-1;7284:27:0;;;;-1:-1:-1;;;7284:27:0;;;;;;11347:328;;;;;;;;;;-1:-1:-1;11347:328:0;;;;;:::i;:::-;;:::i;7852:28::-;;;;;;;;;;;;;;;;9394:91;;;;;;;;;;;;;:::i;8200:44::-;;;;;;;;;;-1:-1:-1;8200:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;10434:119;;;;;;;;;;-1:-1:-1;10434:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10527:18:0;10500:7;10527:18;;;:9;:18;;;;;;;10434:119;1405:241;;;;;;;;;;;;;:::i;16426:259::-;;;;;;;;;;-1:-1:-1;16426:259:0;;;;;:::i;:::-;;:::i;7711:31::-;;;;;;;;;;;;;;;;9031:107;;;;;;;;;;-1:-1:-1;9031:107:0;;;;;:::i;:::-;;:::i;8557:131::-;;;;;;;;;;-1:-1:-1;8557:131:0;;;;;:::i;:::-;;:::i;11892:41::-;;;;;;;;;;-1:-1:-1;11892:41:0;;;;-1:-1:-1;;;;;11892:41:0;;;7781:27;;;;;;;;;;;;;;;;2155:79;;;;;;;;;;-1:-1:-1;2193:7:0;2220:6;-1:-1:-1;;;;;2220:6:0;2155:79;;20482:155;;;;;;;;;;-1:-1:-1;20482:155:0;;;;;:::i;:::-;;:::i;8696:327::-;;;;;;;;;;-1:-1:-1;8696:327:0;;;;;:::i;:::-;;:::i;7960:29::-;;;;;;;;;;;;;:::i;7355:27::-;;;;;;;;;;-1:-1:-1;7355:27:0;;;;-1:-1:-1;;;7355:27:0;;;;;;26333:118;;;;;;;;;;-1:-1:-1;26333:118:0;;;;;:::i;:::-;;:::i;14822:190::-;;;;;;;;;;-1:-1:-1;14822:190:0;;;;;:::i;:::-;;:::i;7815:30::-;;;;;;;;;;;;;;;;9588:551;;;;;;;;;;-1:-1:-1;9588:551:0;;;;;:::i;:::-;;:::i;20447:26::-;;;;;;;;;;;;;;;;7675:29;;;;;;;;;;;;;;;;7318:28;;;;;;;;;;-1:-1:-1;7318:28:0;;;;-1:-1:-1;;;7318:28:0;;;;;;7563;;;;;;;;;;;;;;;;8324:43;;;;;;;;;;-1:-1:-1;8324:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7251:26;;;;;;;;;;-1:-1:-1;7251:26:0;;;;-1:-1:-1;;;7251:26:0;;;;;;7526:30;;;;;;;;;;;;;;;;8150:41;;;;;;;;;;-1:-1:-1;8150:41:0;-1:-1:-1;;8150:41:0;;7425:27;;;;;;;;;;-1:-1:-1;7425:27:0;;;;-1:-1:-1;;;7425:27:0;;;;;;16380:37;;;;;;;;;;-1:-1:-1;16380:37:0;;;;;;;;10561:168;;;;;;;;;;-1:-1:-1;10561:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;10694:18:0;;;10667:7;10694:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10561:168;16175:31;;;;;;;;;;;;;;;;7461:23;;;;;;;;;;-1:-1:-1;7461:23:0;;;;-1:-1:-1;;;;;7461:23:0;;;16215:157;;;;;;;;;;-1:-1:-1;16215:157:0;;;;;:::i;:::-;;:::i;7491:26::-;;;;;;;;;;-1:-1:-1;7491:26:0;;;;-1:-1:-1;;;;;7491:26:0;;;1801:273;;;;;;;;;;-1:-1:-1;1801:273:0;;;;;:::i;:::-;;:::i;9146:145::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;;;;;;;;;9202:15:::1;::::0;:20;9194:48:::1;;;::::0;-1:-1:-1;;;9194:48:0;;9475:2:1;9194:48:0::1;::::0;::::1;9457:21:1::0;9514:2;9494:18;;;9487:30;-1:-1:-1;;;9533:18:1;;;9526:45;9588:18;;9194:48:0::1;9447:165:1::0;9194:48:0::1;9271:12;9253:15;:30:::0;9146:145::o;9299:87::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9373:5:::1;9355:23:::0;;-1:-1:-1;;;;9355:23:0::1;::::0;;9299:87::o;7926:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15769:97::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;15836:13:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;15836:22:0::1;-1:-1:-1::0;;;;15836:22:0;;::::1;::::0;;;::::1;::::0;;15769:97::o;10737:184::-;10837:4;10854:37;10863:10;10875:7;10884:6;10854:8;:37::i;:::-;-1:-1:-1;10909:4:0;10737:184;;;;:::o;9493:87::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9567:5:::1;9549:23:::0;;-1:-1:-1;;;;9549:23:0::1;::::0;;9493:87::o;15432:68::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;15486:2:::1;:6:::0;15432:68::o;11114:225::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;11237:9:::1;11232:100;11252:15:::0;;::::1;11232:100;;;11314:6;11289:13;:22;11303:4;;11308:1;11303:7;;;;;-1:-1:-1::0;;;11303:7:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11289:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11289:22:0;:31;;-1:-1:-1;;11289:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11269:3;::::1;::::0;::::1;:::i;:::-;;;;11232:100;;;;11114:225:::0;;;:::o;15020:404::-;15152:4;15169:36;15179:6;15187:9;15198:6;15169:9;:36::i;:::-;-1:-1:-1;;;;;15220:19:0;;8189:1;15220:19;;;:11;:19;;;;;;;;15240:10;15220:31;;;;;;;;-1:-1:-1;;15220:38:0;15216:179;;-1:-1:-1;;;;;15326:19:0;;;;;;:11;:19;;;;;;;;15346:10;15326:31;;;;;;;;:57;;15377:6;;15326:57;:::i;:::-;-1:-1:-1;;;;;15275:19:0;;;;;;:11;:19;;;;;;;;15295:10;15275:31;;;;;;;:108;15216:179;-1:-1:-1;15412:4:0;15020:404;;;;;:::o;15508:212::-;-1:-1:-1;;;;;15588:20:0;;15564:7;15588:20;;;:11;:20;;;;;;;;:47;;;;-1:-1:-1;;;;;;15613:22:0;;;;;;:13;:22;;;;;;;;15612:23;15588:47;15584:129;;;-1:-1:-1;15659:1:0;;15508:212;-1:-1:-1;15508:212:0:o;15584:129::-;-1:-1:-1;15700:1:0;;15508:212;-1:-1:-1;15508:212:0:o;15584:129::-;15508:212;;;:::o;11347:328::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;11472:16:::1;::::0;-1:-1:-1;;;11472:16:0;::::1;;;11464:48;;;::::0;-1:-1:-1;;;11464:48:0;;12652:2:1;11464:48:0::1;::::0;::::1;12634:21:1::0;12691:2;12671:18;;;12664:30;-1:-1:-1;;;12710:18:1;;;12703:49;12769:18;;11464:48:0::1;12624:169:1::0;11464:48:0::1;11550:3;11531:22:::0;::::1;11523:31;;;::::0;::::1;;11570:9;11565:103;11581:20:::0;;::::1;11565:103;;;11651:5;11623:11;:25;11635:9;;11645:1;11635:12;;;;;-1:-1:-1::0;;;11635:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11623:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11623:25:0;:33;;-1:-1:-1;;11623:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11603:3:::1;::::0;::::1;:::i;:::-;;;11565:103;;9394:91:::0;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9472:5:::1;9452:25:::0;;-1:-1:-1;;;;9452:25:0::1;::::0;;9394:91::o;1405:241::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;1502:6:::1;::::0;;1467:109:::1;::::0;1523:42:::1;::::0;-1:-1:-1;;;;;1502:6:0;;::::1;::::0;1467:109:::1;::::0;::::1;1587:6;:51:::0;;-1:-1:-1;;;;;;1587:51:0::1;1596:42;1587:51;::::0;;1405:241::o;16426:259::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16541:6:::1;16537:141;;;16606:12;;16593:10;;16578:12;;:25;;;;:::i;:::-;:40;;;;:::i;:::-;16564:11;:54:::0;16426:259;:::o;16537:141::-:1;16665:1;16651:11;:15:::0;16537:141:::1;16426:259:::0;:::o;9031:107::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9105:15:::1;:25:::0;9031:107::o;8557:131::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;8625:11:::1;:18:::0;;-1:-1:-1;;;;;8625:18:0;;::::1;-1:-1:-1::0;;;;;;8625:18:0;;::::1;::::0;::::1;::::0;;:11:::1;8654:19:::0;;;:13:::1;:19;::::0;;;;:26;;-1:-1:-1;;8654:26:0::1;8625:18:::0;8654:26:::1;::::0;;8557:131::o;20482:155::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;20572:4:::1;20560:8;:16;;20552:44;;;::::0;-1:-1:-1;;;20552:44:0;;10911:2:1;20552:44:0::1;::::0;::::1;10893:21:1::0;10950:2;10930:18;;;10923:30;-1:-1:-1;;;10969:18:1;;;10962:45;11024:18;;20552:44:0::1;10883:165:1::0;20552:44:0::1;20607:11;:22:::0;20482:155::o;8696:327::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;8823:12:::1;:28:::0;;;8862:13:::1;:30:::0;;;8925:29;;::::1;;8903:112;;;::::0;-1:-1:-1;;;8903:112:0;;8306:2:1;8903:112:0::1;::::0;::::1;8288:21:1::0;8345:2;8325:18;;;8318:30;8384:34;8364:18;;;8357:62;-1:-1:-1;;;8435:18:1;;;8428:31;8476:19;;8903:112:0::1;8278:223:1::0;8903:112:0::1;8696:327:::0;;:::o;7960:29::-;;;;;;;:::i;26333:118::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26415:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;26415:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26333:118::o;14822:190::-;14925:4;14942:40;14952:10;14964:9;14975:6;14942:9;:40::i;9588:551::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9679:15:::1;::::0;-1:-1:-1;;;9679:15:0;::::1;;;9671:47;;;::::0;-1:-1:-1;;;9671:47:0;;12304:2:1;9671:47:0::1;::::0;::::1;12286:21:1::0;12343:2;12323:18;;;12316:30;-1:-1:-1;;;12362:18:1;;;12355:49;12421:18;;9671:47:0::1;12276:169:1::0;9671:47:0::1;9741:7;;9749:1;9741:10;;;;;-1:-1:-1::0;;;9741:10:0::1;;;;;;;;;;;::::0;;;::::1;;9729:9;:22:::0;-1:-1:-1;9776:7:0;;9784:1:::1;9776:10:::0;;::::1;;;-1:-1:-1::0;;;9776:10:0::1;;;;;;;;;;;::::0;;;::::1;;9762:11;:24:::0;-1:-1:-1;9811:7:0;;9819:1:::1;9811:10:::0;;::::1;;;-1:-1:-1::0;;;9811:10:0::1;;;;;;;;;;;;;;;9797:11;:24;;;;9847:7;;9855:1;9847:10;;;;;-1:-1:-1::0;;;9847:10:0::1;;;;;;;;;;;::::0;;;::::1;;9834;:23:::0;-1:-1:-1;9883:7:0;;9891:1:::1;9883:10:::0;;::::1;;;-1:-1:-1::0;;;9883:10:0::1;;;;;;;;;;;::::0;;;::::1;;9868:12;:25:::0;-1:-1:-1;9919:7:0;;9927:1:::1;9919:10:::0;;::::1;;;-1:-1:-1::0;;;9919:10:0::1;;;;;;;;;;;;;;;9904:12;:25;;;;9990:4;9976:11;;9964:9;;9950:11;;:23;;;;:::i;:::-;:37;;;;:::i;:::-;:44;9942:69;;;::::0;-1:-1:-1;;;9942:69:0;;11616:2:1;9942:69:0::1;::::0;::::1;11598:21:1::0;11655:2;11635:18;;;11628:30;-1:-1:-1;;;11674:18:1;;;11667:42;11726:18;;9942:69:0::1;11588:162:1::0;9942:69:0::1;10087:4;10072:12;;10059:10;;10044:12;;:25;;;;:::i;:::-;:40;;;;:::i;:::-;:47;10022:109;;;::::0;-1:-1:-1;;;10022:109:0;;11616:2:1;10022:109:0::1;::::0;::::1;11598:21:1::0;11655:2;11635:18;;;11628:30;-1:-1:-1;;;11674:18:1;;;11667:42;11726:18;;10022:109:0::1;11588:162:1::0;16215:157:0;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16306:1:::1;16294:8;:13;;16286:44;;;::::0;-1:-1:-1;;;16286:44:0;;11957:2:1;16286:44:0::1;::::0;::::1;11939:21:1::0;11996:2;11976:18;;;11969:30;-1:-1:-1;;;12015:18:1;;;12008:48;12073:18;;16286:44:0::1;11929:168:1::0;16286:44:0::1;16341:12;:23:::0;16215:157::o;1801:273::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1896:22:0;::::1;1874:110;;;::::0;-1:-1:-1;;;1874:110:0;;9068:2:1;1874:110:0::1;::::0;::::1;9050:21:1::0;9107:2;9087:18;;;9080:30;9146:34;9126:18;;;9119:62;-1:-1:-1;;;9197:18:1;;;9190:36;9243:19;;1874:110:0::1;9040:228:1::0;1874:110:0::1;2021:6;::::0;;2000:38:::1;::::0;-1:-1:-1;;;;;2000:38:0;;::::1;::::0;2021:6;::::1;::::0;2000:38:::1;::::0;::::1;2049:6;:17:::0;;-1:-1:-1;;;;;;2049:17:0::1;-1:-1:-1::0;;;;;2049:17:0;;;::::1;::::0;;;::::1;::::0;;1801:273::o;10929:177::-;-1:-1:-1;;;;;11014:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11066:32;;12944:25:1;;;11066:32:0;;12917:18:1;11066:32:0;;;;;;;;10929:177;;;:::o;16693:3746::-;16794:1;16777:14;16786:4;16777:8;:14::i;:::-;:18;16773:83;;;16812:32;;-1:-1:-1;;;16812:32:0;;10164:2:1;16812:32:0;;;10146:21:1;10203:2;10183:18;;;10176:30;-1:-1:-1;;;10222:18:1;;;10215:44;10276:18;;16812:32:0;10136:164:1;16812:32:0;16872:6;;-1:-1:-1;;;16872:6:0;;;;16868:92;;;16895:32;16910:4;16916:2;16920:6;16895:14;:32::i;16868:92::-;-1:-1:-1;;;;;10527:18:0;;16972:15;10527:18;;;:9;:18;;;;;;17024:17;;;;17016:46;;;;-1:-1:-1;;;17016:46:0;;9819:2:1;17016:46:0;;;9801:21:1;9858:2;9838:18;;;9831:30;-1:-1:-1;;;9877:18:1;;;9870:46;9933:18;;17016:46:0;9791:166:1;17016:46:0;-1:-1:-1;;;;;17094:19:0;;;;;;:13;:19;;;;;;;;17093:20;:55;;;;-1:-1:-1;;;;;;17131:17:0;;;;;;:13;:17;;;;;;;;17130:18;17093:55;:85;;;;-1:-1:-1;17165:13:0;;-1:-1:-1;;;17165:13:0;;;;17093:85;:118;;;;;17210:1;17195:12;;:16;17093:118;17075:653;;;17238:10;;17263:413;17284:12;;17280:1;:16;17263:413;;;17470:44;;;;;;4742:19:1;;;4777:12;;;4770:28;;;17498:15:0;4814:12:1;;;4807:28;4851:12;;17470:44:0;;;;;;;;;;;;17426:119;;;;;;17391:181;;17322:292;;17633:27;17648:4;17654:2;17658:1;17633:14;:27::i;:::-;-1:-1:-1;17298:3:0;;;;:::i;:::-;;;;17263:413;;;-1:-1:-1;17700:12:0;;:16;;17715:1;17700:16;:::i;:::-;17690:26;;;;:::i;:::-;;;17075:653;;-1:-1:-1;;;;;17791:19:0;;17740:12;17791:19;;;:13;:19;;;;;;17740:12;;17791:19;;;:40;;-1:-1:-1;;;;;;17814:17:0;;;;;;:13;:17;;;;;;;;17791:40;17787:2441;;;-1:-1:-1;;;;;17853:19:0;;;;;;:13;:19;;;;;;;;17852:20;:42;;;;-1:-1:-1;;;;;;17877:17:0;;;;;;:13;:17;;;;;;;;17876:18;17852:42;17848:2284;;;17919:14;;-1:-1:-1;;;17919:14:0;;;;:38;;;;-1:-1:-1;17942:15:0;;17937:20;17919:38;17915:101;;;17982:14;;;;18060;;-1:-1:-1;;;18060:14:0;;;;:54;;;;-1:-1:-1;18099:15:0;;-1:-1:-1;;;18099:15:0;;;;18060:54;:114;;;;;18172:2;;18154:15;;:20;;;;:::i;:::-;18139:12;:35;18060:114;18034:249;;;-1:-1:-1;;;;;18222:17:0;;;;;;:13;:17;;;;;;;;18217:46;;-1:-1:-1;;;;;18241:15:0;;;;;;:11;:15;;;;;:22;;-1:-1:-1;;18241:22:0;18259:4;18241:22;;;18217:46;18307:15;;-1:-1:-1;;;18307:15:0;;;;18303:570;;;-1:-1:-1;;;;;18351:19:0;;;;;;:13;:19;;;;;;;;18347:507;;;18478:12;;18468:6;:22;;18430:155;;;;-1:-1:-1;;;18430:155:0;;;;;;;:::i;:::-;18347:507;;;18722:13;;18712:6;:23;;18674:156;;;;-1:-1:-1;;;18674:156:0;;;;;;;:::i;:::-;18895:17;;-1:-1:-1;;;18895:17:0;;;;:40;;;;-1:-1:-1;;;;;;18916:19:0;;;;;;:13;:19;;;;;;;;18895:40;18891:285;;;-1:-1:-1;;;;;10527:18:0;;18960:10;10527:18;;;:9;:18;;;;;;19058:15;;19043:11;19048:6;10527:18;19043:11;:::i;:::-;:30;;19009:147;;;;-1:-1:-1;;;19009:147:0;;8708:2:1;19009:147:0;;;8690:21:1;8747:2;8727:18;;;8720:30;8786:33;8766:18;;;8759:61;8837:18;;19009:147:0;8680:181:1;19009:147:0;18891:285;;-1:-1:-1;;;;;19200:17:0;;;;;;:13;:17;;;;;;;;19196:888;;;19247:6;;-1:-1:-1;;;19247:6:0;;;;19242:823;;19331:4;19282:28;10527:18;;;:9;:18;;;;;;19368:24;;19364:678;;19425:15;19583:10;;19535:12;;19490:9;;19443:11;;:56;;;;:::i;:::-;:104;;;;:::i;:::-;:150;;;;:::i;:::-;19425:168;-1:-1:-1;19624:27:0;19745:5;19655:49;19425:168;19655:6;:49;:::i;:::-;:86;;19740:1;19655:86;:::i;:::-;19654:96;;;;:::i;:::-;19624:126;;19807:20;19785:19;:42;19781:157;;;-1:-1:-1;19886:20:0;19781:157;19968:46;19985:19;20006:7;19968:16;:46::i;:::-;19364:678;;;19242:823;;20112:4;20102:14;;17848:2284;-1:-1:-1;;;;;20150:17:0;;;;;;:13;:17;;;;;;;;20146:71;;;-1:-1:-1;20197:4:0;20146:71;-1:-1:-1;;;;;20271:19:0;;20240:15;20271:19;;;:13;:19;;;;;;;;20270:20;:42;;;;-1:-1:-1;;;;;;20295:17:0;;;;;;:13;:17;;;;;;;;20294:18;20270:42;20266:92;;;-1:-1:-1;20342:4:0;20266:92;20370:61;20385:4;20391:2;20395:6;20403:7;20412:6;20420:10;20370:14;:61::i;:::-;16693:3746;;;;;;;:::o;15874:293::-;-1:-1:-1;;;;;16018:17:0;;16001:4;16018:17;;;:9;:17;;;;;:27;;16039:6;;16018:17;16001:4;;16018:27;;16039:6;;16018:27;:::i;:::-;;;;-1:-1:-1;;;;;;;16056:20:0;;;;;;:9;:20;;;;;:30;;16080:6;;16056:20;:30;;16080:6;;16056:30;:::i;:::-;;;;;;;;16119:9;-1:-1:-1;;;;;16102:35:0;16111:6;-1:-1:-1;;;;;16102:35:0;;16130:6;16102:35;;;;12944:25:1;;12932:2;12917:18;;12899:76;16102:35:0;;;;;;;;-1:-1:-1;16155:4:0;15874:293;;;;;:::o;22501:3603::-;11976:6;:13;;-1:-1:-1;;;;11976:13:0;-1:-1:-1;;;11976:13:0;;;22625:12;22621:25:::1;;22639:7;;22621:25;22656:18;22667:7:::0;;22656:18:::1;:::i;:::-;;;22685:13;22714:9;;22701:10;;:22;;;;:::i;:::-;22685:38:::0;-1:-1:-1;22734:16:0::1;22777:7:::0;22754:19:::1;22685:38:::0;22754:11;:19:::1;:::i;:::-;22753:31;;;;:::i;:::-;22821:16;::::0;;22835:1:::1;22821:16:::0;;;;;::::1;::::0;;22734:50;;-1:-1:-1;22797:21:0::1;::::0;22821:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22821:16:0::1;22797:40;;22866:4;22848;22853:1;22848:7;;;;;;-1:-1:-1::0;;;22848:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;22848:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;22892:8:::1;::::0;;22882:7;;22892:8;::::1;::::0;22882:4;;22892:8;22882:7;::::1;;;-1:-1:-1::0;;;22882:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;22882:18:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:18;22915:13:::1;::::0;::::1;-1:-1:-1::0;;;22915:13:0;;::::1;;22911:1004;;;22996:11;::::0;-1:-1:-1;;;;;22996:11:0::1;:62;23081:22;23095:8:::0;23081:11;:22:::1;:::i;:::-;23126:1;23178:4;23213;23257:15;22996:295;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;22975:438;;23338:59;::::0;::::1;::::0;;;::::1;22911:1004;;22975:438;22911:1004;;;23466:11;::::0;-1:-1:-1;;;;;23466:11:0::1;:87;23580:22;23594:8:::0;23580:11;:22:::1;:::i;:::-;23696:17;::::0;23466:313:::1;::::0;-1:-1:-1;;;;;;23466:313:0::1;::::0;;;;;;::::1;::::0;;23629:1:::1;::::0;23657:4;;-1:-1:-1;;;;;23696:17:0::1;::::0;23741:15:::1;::::0;23466:313:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;23445:459;;23826:62;::::0;::::1;::::0;;;::::1;23445:459;23927:16;23938:5:::0;23927:16;::::1;:::i;:::-;;;23954:19;23988:14:::0;24017:18:::1;24054:13:::0;::::1;;;;;;;;;;24050:2047;;;24098:21;::::0;-1:-1:-1;24167:7:0;24144:19:::1;24158:5:::0;24098:21;24144:19:::1;:::i;:::-;24143:31;;;;:::i;:::-;24134:40:::0;-1:-1:-1;24202:20:0::1;24134:40:::0;24202:11;:20:::1;:::i;:::-;24189:33;;24254:1;24241:10;:14;:43;;;;-1:-1:-1::0;24259:11:0::1;::::0;-1:-1:-1;;;;;24259:11:0::1;:25:::0;::::1;24241:43;24237:125;;;24313:11;::::0;24305:41:::1;::::0;-1:-1:-1;;;;;24313:11:0;;::::1;::::0;24305:41;::::1;;;::::0;24335:10;;24313:11:::1;24305:41:::0;24313:11;24305:41;24335:10;24313:11;24305:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24237:125;24391:1;24380:8;:12;:26;;;;;24405:1;24396:6;:10;24380:26;24376:504;;;24490:11;::::0;24690::::1;::::0;24490:276:::1;::::0;-1:-1:-1;;;24490:276:0;;24567:4:::1;24490:276;::::0;::::1;6568:34:1::0;6618:18;;;6611:34;;;24490:11:0::1;6661:18:1::0;;;6654:34;;;6704:18;;;6697:34;-1:-1:-1;;;;;24690:11:0;;::::1;6747:19:1::0;;;6740:44;24728:15:0::1;6800:19:1::0;;;6793:35;24490:11:0;::::1;::::0;:27:::1;::::0;24525:6;;6502:19:1;;24490:276:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;-1:-1:-1::0;24490:276:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;24490:276:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;24465:400;;24821:24;::::0;::::1;::::0;;;::::1;24050:2047;;24465:400;;;;;24050:2047;;;24933:8;::::0;24994:17:::1;::::0;24971:42:::1;::::0;-1:-1:-1;;;24971:42:0;;-1:-1:-1;;;;;24994:17:0;;::::1;24971:42;::::0;::::1;5020:51:1::0;24933:8:0;::::1;::::0;;;24971:14:::1;::::0;4993:18:1;;24971:42:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24957:56:::0;-1:-1:-1;25061:7:0;25038:19:::1;25052:5:::0;24957:56;25038:19:::1;:::i;:::-;25037:31;;;;:::i;:::-;25028:40:::0;-1:-1:-1;25096:20:0::1;25028:40:::0;25096:11;:20:::1;:::i;:::-;25083:33:::0;-1:-1:-1;25137:10:0;;25133:201:::1;;25216:17;::::0;25168:150:::1;::::0;-1:-1:-1;;;25168:150:0;;-1:-1:-1;;;;;25216:17:0;;::::1;25168:150;::::0;::::1;5322:34:1::0;25265:4:0::1;5372:18:1::0;;;5365:43;5424:18;;;5417:34;;;25168:17:0;;::::1;::::0;::::1;::::0;5257:18:1;;25168:150:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25133:201;25354:14:::0;;25350:207:::1;;25437:17;::::0;25478:11:::1;::::0;25389:152:::1;::::0;-1:-1:-1;;;25389:152:0;;-1:-1:-1;;;;;25437:17:0;;::::1;25389:152;::::0;::::1;5322:34:1::0;25478:11:0;;::::1;5372:18:1::0;;;5365:43;5424:18;;;5417:34;;;25389:17:0;;::::1;::::0;::::1;::::0;5257:18:1;;25389:152:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25350:207;25588:1;25577:8;:12;:26;;;;;25602:1;25593:6;:10;25577:26;25573:513;;;25649:11;::::0;;25740:8;25899:11:::1;::::0;25649:326:::1;::::0;-1:-1:-1;;;25649:326:0;;25708:4:::1;25649:326;::::0;::::1;5859:34:1::0;-1:-1:-1;;;;;25740:8:0;;::::1;5909:18:1::0;;;5902:43;5961:18;;;5954:34;;;6004:18;;;5997:34;;;25649:11:0::1;6047:19:1::0;;;6040:35;;;6091:19;;;6084:35;25899:11:0;;::::1;6135:19:1::0;;;6128:44;25937:15:0::1;6188:19:1::0;;;6181:35;25649:11:0;::::1;::::0;:24:::1;::::0;5793:19:1;;25649:326:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;25649:326:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;25649:326:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;25624:447;;26030:21;::::0;::::1;::::0;;;::::1;25624:447;;;;;;;24050:2047;;12000:1;;;;;;;-1:-1:-1::0;;12012:6:0;:14;;-1:-1:-1;;;;12012:14:0;;;22501:3603::o;20645:1628::-;-1:-1:-1;;;;;20865:17:0;;;;;;:9;:17;;;;;;:27;;20885:7;;20865:27;:::i;:::-;-1:-1:-1;;;;;20845:17:0;;;;;;:9;:17;;;;;:47;;;;20933:884;;;;20961:15;20995:6;20991:156;;;21047:10;;21032:12;;:25;;;;:::i;:::-;21022:35;;20991:156;;;21122:9;;21108:11;;:23;;;;:::i;:::-;21098:33;;20991:156;21163:18;21206:5;21185:17;21195:7;21185;:17;:::i;:::-;21184:27;;;;:::i;:::-;21163:48;-1:-1:-1;21230:14:0;;21226:145;;21265:23;21278:10;21265:23;;:::i;:::-;;;21307:48;21321:6;21337:4;21344:10;21307:13;:48::i;:::-;21387:18;21425:6;21420:225;;21514:5;21499:11;;21489:7;:21;;;;:::i;:::-;21488:31;;;;:::i;:::-;21475:44;;21420:225;;;21624:5;21608:12;;21598:7;:22;;;;:::i;:::-;21597:32;;;;:::i;:::-;21584:45;;21420:225;21663:14;;21659:147;;21698:23;21711:10;21698:23;;:::i;:::-;;;21740:50;21754:6;21770;21779:10;21740:13;:50::i;:::-;20933:884;;;;21833:10;:36;;;;-1:-1:-1;;;;;;21848:21:0;;;;;;:13;:21;;;;;;;;21847:22;21833:36;:65;;;;-1:-1:-1;;;;;;21874:24:0;;;;;;:13;:24;;;;;;;;21873:25;21833:65;21829:371;;;21915:25;22001:5;21986:11;;21976:7;:21;;;;:::i;:::-;21975:31;;;;:::i;:::-;21955:51;-1:-1:-1;22027:21:0;;22023:166;;22069:30;22082:17;22069:30;;:::i;:::-;;;22118:55;22132:6;22148:4;22155:17;22118:13;:55::i;:::-;21829:371;;22212:53;22226:6;22234:9;22245:19;22255:9;22245:7;:19;:::i;:::-;-1:-1:-1;;;;;26249:13:0;;;;;;:9;:13;;;;;;:23;;26265:7;;26249:23;:::i;:::-;-1:-1:-1;;;;;26233:13:0;;;;;;;:9;:13;;;;;;;:39;;;;26288:29;;;;;;;;;;26309:7;12944:25:1;;12932:2;12917:18;;12899:76;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:395;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:2;;344:8;334;327:26;286:2;-1:-1:-1;374:20:1;;417:18;406:30;;403:2;;;456:8;446;439:26;403:2;500:4;492:6;488:17;476:29;;560:3;553:4;543:6;540:1;536:14;528:6;524:27;520:38;517:47;514:2;;;577:1;574;567:12;514:2;276:311;;;;;:::o;592:196::-;651:6;704:2;692:9;683:7;679:23;675:32;672:2;;;725:6;717;710:22;672:2;753:29;772:9;753:29;:::i;:::-;743:39;662:126;-1:-1:-1;;;662:126:1:o;793:270::-;861:6;869;922:2;910:9;901:7;897:23;893:32;890:2;;;943:6;935;928:22;890:2;971:29;990:9;971:29;:::i;:::-;961:39;;1019:38;1053:2;1042:9;1038:18;1019:38;:::i;:::-;1009:48;;880:183;;;;;:::o;1068:338::-;1145:6;1153;1161;1214:2;1202:9;1193:7;1189:23;1185:32;1182:2;;;1235:6;1227;1220:22;1182:2;1263:29;1282:9;1263:29;:::i;:::-;1253:39;;1311:38;1345:2;1334:9;1330:18;1311:38;:::i;:::-;1301:48;;1396:2;1385:9;1381:18;1368:32;1358:42;;1172:234;;;;;:::o;1411:325::-;1476:6;1484;1537:2;1525:9;1516:7;1512:23;1508:32;1505:2;;;1558:6;1550;1543:22;1505:2;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1665:2;1654:9;1650:18;1637:32;1678:28;1700:5;1678:28;:::i;:::-;1725:5;1715:15;;;1495:241;;;;;:::o;1741:264::-;1809:6;1817;1870:2;1858:9;1849:7;1845:23;1841:32;1838:2;;;1891:6;1883;1876:22;1838:2;1919:29;1938:9;1919:29;:::i;:::-;1909:39;1995:2;1980:18;;;;1967:32;;-1:-1:-1;;;1828:177:1:o;2010:586::-;2102:6;2110;2118;2171:2;2159:9;2150:7;2146:23;2142:32;2139:2;;;2192:6;2184;2177:22;2139:2;2237:9;2224:23;2270:18;2262:6;2259:30;2256:2;;;2307:6;2299;2292:22;2256:2;2351:70;2413:7;2404:6;2393:9;2389:22;2351:70;:::i;:::-;2440:8;;-1:-1:-1;2325:96:1;-1:-1:-1;;2525:2:1;2510:18;;2497:32;2538:28;2497:32;2538:28;:::i;:::-;2585:5;2575:15;;;2129:467;;;;;:::o;2601:457::-;2687:6;2695;2748:2;2736:9;2727:7;2723:23;2719:32;2716:2;;;2769:6;2761;2754:22;2716:2;2814:9;2801:23;2847:18;2839:6;2836:30;2833:2;;;2884:6;2876;2869:22;2833:2;2928:70;2990:7;2981:6;2970:9;2966:22;2928:70;:::i;:::-;3017:8;;2902:96;;-1:-1:-1;2706:352:1;-1:-1:-1;;;;2706:352:1:o;3063:251::-;3119:6;3172:2;3160:9;3151:7;3147:23;3143:32;3140:2;;;3193:6;3185;3178:22;3140:2;3237:9;3224:23;3256:28;3278:5;3256:28;:::i;3319:255::-;3386:6;3439:2;3427:9;3418:7;3414:23;3410:32;3407:2;;;3460:6;3452;3445:22;3407:2;3497:9;3491:16;3516:28;3538:5;3516:28;:::i;3579:190::-;3638:6;3691:2;3679:9;3670:7;3666:23;3662:32;3659:2;;;3712:6;3704;3697:22;3659:2;-1:-1:-1;3740:23:1;;3649:120;-1:-1:-1;3649:120:1:o;3774:194::-;3844:6;3897:2;3885:9;3876:7;3872:23;3868:32;3865:2;;;3918:6;3910;3903:22;3865:2;-1:-1:-1;3946:16:1;;3855:113;-1:-1:-1;3855:113:1:o;3973:258::-;4041:6;4049;4102:2;4090:9;4081:7;4077:23;4073:32;4070:2;;;4123:6;4115;4108:22;4070:2;-1:-1:-1;;4151:23:1;;;4221:2;4206:18;;;4193:32;;-1:-1:-1;4060:171:1:o;4236:316::-;4324:6;4332;4340;4393:2;4381:9;4372:7;4368:23;4364:32;4361:2;;;4414:6;4406;4399:22;4361:2;4448:9;4442:16;4432:26;;4498:2;4487:9;4483:18;4477:25;4467:35;;4542:2;4531:9;4527:18;4521:25;4511:35;;4351:201;;;;;:::o;7496:603::-;7608:4;7637:2;7666;7655:9;7648:21;7698:6;7692:13;7741:6;7736:2;7725:9;7721:18;7714:34;7766:4;7779:140;7793:6;7790:1;7787:13;7779:140;;;7888:14;;;7884:23;;7878:30;7854:17;;;7873:2;7850:26;7843:66;7808:10;;7779:140;;;7937:6;7934:1;7931:13;7928:2;;;8007:4;8002:2;7993:6;7982:9;7978:22;7974:31;7967:45;7928:2;-1:-1:-1;8083:2:1;8062:15;-1:-1:-1;;8058:29:1;8043:45;;;;8090:2;8039:54;;7617:482;-1:-1:-1;;;7617:482:1:o;10305:399::-;10507:2;10489:21;;;10546:2;10526:18;;;10519:30;10585:34;10580:2;10565:18;;10558:62;-1:-1:-1;;;10651:2:1;10636:18;;10629:33;10694:3;10679:19;;10479:225::o;11053:356::-;11255:2;11237:21;;;11274:18;;;11267:30;11333:34;11328:2;11313:18;;11306:62;11400:2;11385:18;;11227:182::o;12980:983::-;13242:4;13290:3;13279:9;13275:19;13321:6;13310:9;13303:25;13347:2;13385:6;13380:2;13369:9;13365:18;13358:34;13428:3;13423:2;13412:9;13408:18;13401:31;13452:6;13487;13481:13;13518:6;13510;13503:22;13556:3;13545:9;13541:19;13534:26;;13595:2;13587:6;13583:15;13569:29;;13616:4;13629:195;13643:6;13640:1;13637:13;13629:195;;;13708:13;;-1:-1:-1;;;;;13704:39:1;13692:52;;13799:15;;;;13764:12;;;;13740:1;13658:9;13629:195;;;-1:-1:-1;;;;;;;13880:32:1;;;;13875:2;13860:18;;13853:60;-1:-1:-1;;;13944:3:1;13929:19;13922:35;13841:3;13251:712;-1:-1:-1;;;13251:712:1:o;13968:128::-;14008:3;14039:1;14035:6;14032:1;14029:13;14026:2;;;14045:18;;:::i;:::-;-1:-1:-1;14081:9:1;;14016:80::o;14101:217::-;14141:1;14167;14157:2;;-1:-1:-1;;;14192:31:1;;14246:4;14243:1;14236:15;14274:4;14199:1;14264:15;14157:2;-1:-1:-1;14303:9:1;;14147:171::o;14323:168::-;14363:7;14429:1;14425;14421:6;14417:14;14414:1;14411:21;14406:1;14399:9;14392:17;14388:45;14385:2;;;14436:18;;:::i;:::-;-1:-1:-1;14476:9:1;;14375:116::o;14496:125::-;14536:4;14564:1;14561;14558:8;14555:2;;;14569:18;;:::i;:::-;-1:-1:-1;14606:9:1;;14545:76::o;14626:380::-;14705:1;14701:12;;;;14748;;;14769:2;;14823:4;14815:6;14811:17;14801:27;;14769:2;14876;14868:6;14865:14;14845:18;14842:38;14839:2;;;14922:10;14917:3;14913:20;14910:1;14903:31;14957:4;14954:1;14947:15;14985:4;14982:1;14975:15;14839:2;;14681:325;;;:::o;15011:135::-;15050:3;-1:-1:-1;;15071:17:1;;15068:2;;;15091:18;;:::i;:::-;-1:-1:-1;15138:1:1;15127:13;;15058:88::o;15151:127::-;15212:10;15207:3;15203:20;15200:1;15193:31;15243:4;15240:1;15233:15;15267:4;15264:1;15257:15;15283:118;15369:5;15362:13;15355:21;15348:5;15345:32;15335:2;;15391:1;15388;15381:12
Swarm Source
ipfs://899e653470fb3ffd8b32d3081529dc944c19d4b7c64c96ffd8fa6f54c7d7ce24
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.