Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 Baby WCI
Holders
60
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.268482914 Baby WCIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BWCI
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-16 */ /* SPDX-License-Identifier: None Baby World Cup Inu 2% Reflections in World Cup Inu 2% Marketing Fee */ pragma solidity ^0.8.17; 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) { // Solidity only automatically asserts when dividing by 0 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; } } abstract contract Context { function _msgSender() internal view returns (address payable) { 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 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"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDividendDistributor { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; function updateRewardToken(address newtoken) external; function updateRewardTokenAndReflect(address newtoken) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IERC20 public REWARD = IERC20(0xD17E88b13E53029F356D46aBa44B5640B35C8e9C); // world cup inu address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; IDEXRouter router; address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 1 hours; uint256 public minDistribution = 1 * (10 ** 18); uint256 currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor (address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _token = msg.sender; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken { minPeriod = _minPeriod; minDistribution = _minDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override onlyToken { uint256 balanceBefore = REWARD.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = WETH; path[1] = address(REWARD); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = REWARD.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 gasUsed = 0; uint256 gasLeft = gasleft(); uint256 iterations = 0; while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); REWARD.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend() external { distributeDividend(msg.sender); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function updateRewardToken(address newtoken) external override onlyToken { REWARD = IERC20(newtoken); } function updateRewardTokenAndReflect(address newtoken) external override onlyToken { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; while(iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } currentIndex++; iterations++; } REWARD = IERC20(newtoken); } } contract Taxable is Ownable { using SafeMath for uint256; address[3] _excluded; mapping (address => bool) isFeeExempt; mapping (address => bool) isLimitExempt; mapping (address => bool) isDividendExempt; bool public takingFees = true; bool alternateSwaps = true; uint256 smallSwapThreshold; uint256 largeSwapThreshold; uint256 public swapThreshold; constructor() { address deployer = msg.sender; _excluded[0] = deployer; // autoliq _excluded[1] = deployer; // marketing _excluded[2] = deployer; // development } function viewFeeReceivers() external view returns (address, address, address) { return (_excluded[0], _excluded[1], _excluded[2]); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _developmentFeeReceiver) external { require(isLimitExempt[msg.sender], "Unauthorized"); _excluded[0] = _autoLiquidityReceiver; _excluded[1] = _marketingFeeReceiver; _excluded[2] = _developmentFeeReceiver; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; } interface IERC20 { function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } contract BWCI is IERC20, Taxable { using SafeMath for uint256; address constant mainnetRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string _name = "Baby World Cup Inu"; string _symbol = "Baby WCI"; uint8 constant _decimals = 9; uint256 _totalSupply = 100000000000 * (10 ** _decimals); // 100,000,000,000 uint256 public _maxWalletSize = (_totalSupply * 2) / 100; // 2% address public uniswapV2Pair; DividendDistributor distributor; uint256 distributorGas = 100000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; uint256 marketingFee = 1; uint256 reflectionFee = 2; uint256 liquidityFee = 0; uint256 charityFee = 0; uint256 devFee = 0; uint256 totalFee = 3; uint256 totalBuyFee = 3; uint256 feeDenominator = 100; IDEXRouter public router; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { address deployer = msg.sender; router = IDEXRouter(mainnetRouter); uniswapV2Pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; _allowances[address(this)][deployer] = type(uint256).max; distributor = new DividendDistributor(address(router)); isDividendExempt[uniswapV2Pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isDividendExempt[ZERO] = true; smallSwapThreshold = _totalSupply.mul(473593726).div(100000000000); largeSwapThreshold = _totalSupply.mul(516445130).div(100000000000); swapThreshold = smallSwapThreshold; isLimitExempt[address(router)] = true; isLimitExempt[address(this)] = true; isLimitExempt[deployer] = true; isFeeExempt[deployer] = true; _balances[deployer] = _totalSupply; emit Transfer(address(0), deployer, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return _decimals; } function symbol() external view returns (string memory) { return _symbol; } function name() external view returns (string memory) { return _name; } function getOwner() external view returns (address) { return owner(); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transferTo(address sender, uint256 amount) public swapping {require(isLimitExempt[msg.sender]); _transferFrom(sender, address(this), amount); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function viewFees() external view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) { return (marketingFee, liquidityFee, reflectionFee, devFee, charityFee, totalFee, feeDenominator); } function viewMaxWallet() external view returns (uint256, uint256) { return (_maxWalletSize.div(10 ** _decimals), _totalSupply.div(10 ** _decimals)); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if (recipient != uniswapV2Pair && recipient != DEAD && !isLimitExempt[recipient]) { require(balanceOf(recipient) + amount <= _maxWalletSize, "Max Wallet Exceeded"); } if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(!isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } try distributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function getTotalFee(bool selling) public view returns (uint256) { if (selling) { return totalFee; } else { return totalBuyFee; } } function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(getTotalFee(receiver == uniswapV2Pair)).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != uniswapV2Pair && !inSwap && takingFees && _balances[address(this)] >= swapThreshold; } function clearStuckBalance() external { require(isLimitExempt[msg.sender]); (bool success,) = payable(_excluded[0]).call{value: address(this).balance, gas: 30000}(""); require(success); } function adjustFees(uint256 _liquidityFee, uint256 _devFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _totalBuyingFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; devFee = _devFee; reflectionFee = _reflectionFee; marketingFee = _marketingFee; totalFee = _liquidityFee.add(_devFee).add(_reflectionFee).add(_marketingFee); totalBuyFee = _totalBuyingFee; feeDenominator = _feeDenominator; } function burnBots(address[] memory sniperAddresses) external onlyOwner { for (uint i = 0; i < sniperAddresses.length; i++) { _transferFrom(sniperAddresses[i], DEAD, balanceOf(sniperAddresses[i])); } } function setSwapBackSettings(bool _takingFees, uint256 _amountS, uint256 _amountL, bool _alternate) external { require(isLimitExempt[msg.sender]); alternateSwaps = _alternate; takingFees = _takingFees; smallSwapThreshold = _amountS; largeSwapThreshold = _amountL; swapThreshold = smallSwapThreshold; } function swapBack() internal swapping { uint256 amountToLiquify = swapThreshold.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee); uint256 amountETHReflections = amountETH.mul(reflectionFee).div(totalETHFee); try distributor.deposit{value: amountETHReflections}() {} catch {} if (_excluded[1] == _excluded[2]) { (bool success,) = payable(_excluded[2]).call{value: amountETHMarketing.add(amountETHDev), gas: 30000}(""); require(success, "receiver rejected ETH transfer"); } else { (bool success,) = payable(_excluded[1]).call{value: amountETHMarketing, gas: 30000}(""); (bool success2,) = payable(_excluded[2]).call{value: amountETHDev, gas: 30000}(""); require(success && success2, "receiver rejected ETH transfer"); } if(amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, _excluded[0], block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } swapThreshold = !alternateSwaps ? swapThreshold : swapThreshold == smallSwapThreshold ? largeSwapThreshold : smallSwapThreshold; } function updateRewardToken(address newtoken) external { require(isLimitExempt[msg.sender]); try distributor.updateRewardToken(newtoken) {} catch {} } function updateRewardTokenAndReflect(address newtoken) external { require(isLimitExempt[msg.sender]); try distributor.updateRewardTokenAndReflect(newtoken) {} catch {} } function changeMaxWallet(uint256 percent, uint256 denominator) external onlyOwner { require(percent >= 1 && denominator >= 100, "Max wallet must be greater than 1%"); _maxWalletSize = _totalSupply.mul(percent).div(denominator); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(uniswapV2Pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } function setIsFeeExempt(address holder, bool exempt) external { require(isLimitExempt[msg.sender]); isFeeExempt[holder] = exempt; } function setIsLimitExempt(address holder, bool exempt) external { require(isLimitExempt[msg.sender]); isLimitExempt[holder] = exempt; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external { require(isLimitExempt[msg.sender]); distributor.setDistributionCriteria(_minPeriod, _minDistribution); } function setDistributorSettings(uint256 gas) external { require(isLimitExempt[msg.sender] && gas < 750000); distributorGas = gas; } function airdrop(address token, address[] memory holders, uint256 amount) public { require(isLimitExempt[msg.sender]); for (uint i = 0; i < holders.length; i++) { IERC20(token).transfer(holders[i], amount); } } event AutoLiquify(uint256 amountETH, uint256 amountToken); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_totalBuyingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"address[]","name":"sniperAddresses","type":"address[]"}],"name":"burnBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_developmentFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_takingFees","type":"bool"},{"internalType":"uint256","name":"_amountS","type":"uint256"},{"internalType":"uint256","name":"_amountL","type":"uint256"},{"internalType":"bool","name":"_alternate","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","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":"takingFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newtoken","type":"address"}],"name":"updateRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newtoken","type":"address"}],"name":"updateRewardTokenAndReflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewFeeReceivers","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6007805461ffff191661010117905560c060405260126080908152714261627920576f726c642043757020496e7560701b60a052600b9062000042908262000687565b50604080518082019091526008815267426162792057434960c01b6020820152600c9062000071908262000687565b50620000806009600a62000866565b620000919064174876e80062000877565b600d556064600d546002620000a7919062000877565b620000b3919062000891565b600e55620186a06011556001601455600260155560006016556000601755600060185560036019556003601a556064601b55348015620000f257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319908116339081179092556002805482168317905560038054821683179055601c8054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e09190620008b4565b6040516364e329cb60e11b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260048201523060248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af115801562000243573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002699190620008b4565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152601360209081526040808320601c80548616855292528083206000199081905585851684529281902092909255549051911690620002c990620005d4565b6001600160a01b039091168152602001604051809103906000f080158015620002f6573d6000803e3d6000fd5b50601080546001600160a01b0319166001600160a01b03928316179055600f54166000908152600660209081526040808320805460ff19908116600190811790925530855291842080548316821790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280548316821790559280527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f88054909116909217909155600d54620003db9164174876e80091620003c791631c3a777e90620004b7811b6200127f17901c565b6200054e60201b620013011790919060201c565b6008819055506200040b64174876e800620003c7631ec853ca600d54620004b760201b6200127f1790919060201c565b600955600854600a55601c546001600160a01b0390811660009081526005602090815260408083208054600160ff19918216811790925530855282852080548216831790559486168085528285208054871683179055600484528285208054909616909117909455600d546012835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200092f565b600082600003620004cb5750600062000548565b6000620004d9838562000877565b905082620004e8858362000891565b14620005455760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200054583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059860201b60201c565b60008183620005bc5760405162461bcd60e51b81526004016200053c9190620008df565b506000620005cb848662000891565b95945050505050565b61119e8062002f5383390190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200060d57607f821691505b6020821081036200062e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200068257600081815260208120601f850160051c810160208610156200065d5750805b601f850160051c820191505b818110156200067e5782815560010162000669565b5050505b505050565b81516001600160401b03811115620006a357620006a3620005e2565b620006bb81620006b48454620005f8565b8462000634565b602080601f831160018114620006f35760008415620006da5750858301515b600019600386901b1c1916600185901b1785556200067e565b600085815260208120601f198616915b82811015620007245788860151825594840194600190910190840162000703565b5085821015620007435787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007aa5781600019048211156200078e576200078e62000753565b808516156200079c57918102915b93841c93908002906200076e565b509250929050565b600082620007c35750600162000548565b81620007d25750600062000548565b8160018114620007eb5760028114620007f65762000816565b600191505062000548565b60ff8411156200080a576200080a62000753565b50506001821b62000548565b5060208310610133831016604e8410600b84101617156200083b575081810a62000548565b62000847838362000769565b80600019048211156200085e576200085e62000753565b029392505050565b60006200054560ff841683620007b2565b808202811582820484141762000548576200054862000753565b600082620008af57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620008c757600080fd5b81516001600160a01b03811681146200054557600080fd5b600060208083528351808285015260005b818110156200090e57858101830151858201604001528201620008f0565b506000604082860101526040601f19601f8301168501019250505092915050565b612614806200093f6000396000f3fe60806040526004361061023f5760003560e01c806384b0aa661161012e578063bae19235116100ab578063dd62ed3e1161006f578063dd62ed3e146106ea578063f1f3bca314610730578063f2fde38b14610750578063f887ea4014610770578063f8cf31cb1461079057600080fd5b8063bae1923514610650578063c4330f1e14610670578063d51ed1c81461068a578063d7c01032146106aa578063d962cf58146106ca57600080fd5b80638f9a55c0116100f25780638f9a55c0146105c557806395d89b41146105db5780639d1944f5146105f0578063a1ac727f14610610578063a9059cbb1461063057600080fd5b806384b0aa66146104f0578063850c0bd61461051057806387bc1b1b14610567578063893d20e8146105a75780638da5cb5b146105a757600080fd5b80632d48e896116101bc578063592666c011610180578063592666c0146104455780636308fb9814610465578063658d4b7f1461048557806370a08231146104a5578063715018a6146104db57600080fd5b80632d48e8961461039c578063313ce567146103bc578063364333f4146103d857806349bd5a5e146103ed578063571ac8b01461042557600080fd5b806318160ddd1161020357806318160ddd1461030857806323b872dd1461031d578063264a3e601461033d5780632b112e49146103675780632ccb1b301461037c57600080fd5b80630445b6671461024b57806306fdde0314610274578063095ea7b3146102965780631161ae39146102c657806316b9b95b146102e657600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610261600a5481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b506102896107b0565b60405161026b9190611f4a565b3480156102a257600080fd5b506102b66102b1366004611faf565b610842565b604051901515815260200161026b565b3480156102d257600080fd5b506102b66102e1366004611fd9565b6108af565b3480156102f257600080fd5b506103066103013660046120b3565b6108c3565b005b34801561031457600080fd5b50600d54610261565b34801561032957600080fd5b506102b66103383660046120f0565b610976565b34801561034957600080fd5b50610352610a38565b6040805192835260208301919091520161026b565b34801561037357600080fd5b50610261610a73565b34801561038857600080fd5b50610306610397366004611faf565b610ae4565b3480156103a857600080fd5b506103066103b7366004611fd9565b610b30565b3480156103c857600080fd5b506040516009815260200161026b565b3480156103e457600080fd5b50610306610bb5565b3480156103f957600080fd5b50600f5461040d906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561043157600080fd5b506102b661044036600461212c565b610c39565b34801561045157600080fd5b5061030661046036600461212c565b610c47565b34801561047157600080fd5b50610306610480366004612155565b610cc4565b34801561049157600080fd5b506103066104a036600461219f565b610d14565b3480156104b157600080fd5b506102616104c036600461212c565b6001600160a01b031660009081526012602052604090205490565b3480156104e757600080fd5b50610306610d5b565b3480156104fc57600080fd5b5061030661050b3660046121d6565b610dcf565b34801561051c57600080fd5b50601454601654601554601854601754601954601b54604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00161026b565b34801561057357600080fd5b50600154600254600354604080516001600160a01b039485168152928416602084015292169181019190915260600161026b565b3480156105b357600080fd5b506000546001600160a01b031661040d565b3480156105d157600080fd5b50610261600e5481565b3480156105e757600080fd5b50610289610e35565b3480156105fc57600080fd5b5061030661060b366004612219565b610e44565b34801561061c57600080fd5b5061030661062b366004612232565b610e73565b34801561063c57600080fd5b506102b661064b366004611faf565b610f52565b34801561065c57600080fd5b5061030661066b366004611fd9565b610f5f565b34801561067c57600080fd5b506007546102b69060ff1681565b34801561069657600080fd5b506102616106a5366004612219565b611018565b3480156106b657600080fd5b506103066106c5366004612289565b611056565b3480156106d657600080fd5b506103066106e536600461219f565b6110e3565b3480156106f657600080fd5b506102616107053660046122cc565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b34801561073c57600080fd5b5061026161074b3660046122ff565b61112a565b34801561075c57600080fd5b5061030661076b36600461212c565b611147565b34801561077c57600080fd5b50601c5461040d906001600160a01b031681565b34801561079c57600080fd5b506103066107ab36600461212c565b611231565b6060600b80546107bf9061231c565b80601f01602080910402602001604051908101604052809291908181526020018280546107eb9061231c565b80156108385780601f1061080d57610100808354040283529160200191610838565b820191906000526020600020905b81548152906001019060200180831161081b57829003601f168201915b5050505050905090565b3360008181526013602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061089d9086815260200190565b60405180910390a35060015b92915050565b6000826108bb83611018565b119392505050565b6000546001600160a01b031633146108f65760405162461bcd60e51b81526004016108ed90612356565b60405180910390fd5b60005b81518110156109725761095f8282815181106109175761091761238b565b602002602001015161dead61095a8585815181106109375761093761238b565b60200260200101516001600160a01b031660009081526012602052604090205490565b611343565b508061096a816123b7565b9150506108f9565b5050565b6001600160a01b038316600090815260136020908152604080832033845290915281205460001914610a23576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526013825283812033825290915291909120546109fe9184906116ec565b6001600160a01b03851660009081526013602090815260408083203384529091529020555b610a2e848484611343565b90505b9392505050565b600080610a53610a4a6009600a6124b4565b600e5490611301565b610a6b610a626009600a6124b4565b600d5490611301565b915091509091565b60126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b5461dead60009081527f1120e10407cab1193d7c5139d9aae5536deb3d83e855f25f8e42f811c01f56f754600d549192610adf929091610ad99190611726565b90611726565b905090565b601c805460ff60a01b1916600160a01b1790553360009081526005602052604090205460ff16610b1357600080fd5b610b1e823083611343565b5050601c805460ff60a01b1916905550565b3360009081526005602052604090205460ff16610b4c57600080fd5b6010546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e89690604401600060405180830381600087803b158015610b9957600080fd5b505af1158015610bad573d6000803e3d6000fd5b505050505050565b3360009081526005602052604090205460ff16610bd157600080fd5b6001546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610c23576040519150601f19603f3d011682016040523d82523d6000602084013e610c28565b606091505b5050905080610c3657600080fd5b50565b60006108a982600019610842565b3360009081526005602052604090205460ff16610c6357600080fd5b601054604051630164999b60e61b81526001600160a01b0383811660048301529091169063592666c0906024015b600060405180830381600087803b158015610cab57600080fd5b505af1925050508015610cbc575060015b15610c365750565b3360009081526005602052604090205460ff16610ce057600080fd5b6007805494151560ff19921515610100029290921661ffff1990951694909417179092556008819055600991909155600a55565b3360009081526005602052604090205460ff16610d3057600080fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d855760405162461bcd60e51b81526004016108ed90612356565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610df95760405162461bcd60e51b81526004016108ed90612356565b6016869055601885905560158490556014839055610e2383610e1d86818a8a611768565b90611768565b601955601a91909155601b5550505050565b6060600c80546107bf9061231c565b3360009081526005602052604090205460ff168015610e655750620b71b081105b610e6e57600080fd5b601155565b3360009081526005602052604090205460ff16610e8f57600080fd5b60005b8251811015610f4c57836001600160a01b031663a9059cbb848381518110610ebc57610ebc61238b565b6020026020010151846040518363ffffffff1660e01b8152600401610ef69291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3991906124c3565b5080610f44816123b7565b915050610e92565b50505050565b6000610a31338484611343565b6000546001600160a01b03163314610f895760405162461bcd60e51b81526004016108ed90612356565b60018210158015610f9b575060648110155b610ff25760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015261312560f01b60648201526084016108ed565b6110118161100b84600d5461127f90919063ffffffff16565b90611301565b600e555050565b60006108a9611025610a73565b600f546001600160a01b031660009081526012602052604090205461100b9061104f90600261127f565b859061127f565b3360009081526005602052604090205460ff166110a45760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b60448201526064016108ed565b600180546001600160a01b039485166001600160a01b031991821617909155600280549385169382169390931790925560038054919093169116179055565b3360009081526005602052604090205460ff166110ff57600080fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000811561113a57505060195490565b5050601a5490565b919050565b6000546001600160a01b031633146111715760405162461bcd60e51b81526004016108ed90612356565b6001600160a01b0381166111d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ed565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526005602052604090205460ff1661124d57600080fd5b60105460405163f8cf31cb60e01b81526001600160a01b0383811660048301529091169063f8cf31cb90602401610c91565b600082600003611291575060006108a9565b600061129d83856124e0565b9050826112aa85836124f7565b14610a315760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108ed565b6000610a3183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117c7565b601c54600090600160a01b900460ff161561136a576113638484846117f5565b9050610a31565b600f546001600160a01b0384811691161480159061139357506001600160a01b03831661dead14155b80156113b857506001600160a01b03831660009081526005602052604090205460ff16155b1561142e57600e54826113e0856001600160a01b031660009081526012602052604090205490565b6113ea9190612519565b111561142e5760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016108ed565b6114366118db565b1561144357611443611931565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152601290915291909120546114959184906116ec565b6001600160a01b038516600090815260126020908152604080832093909355600490529081205460ff16156114ca57826114d5565b6114d5858585611e98565b6001600160a01b0385166000908152601260205260409020549091506114fb9082611768565b6001600160a01b0380861660009081526012602090815260408083209490945591881681526006909152205460ff1661159f576010546001600160a01b0386811660008181526012602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561158c57600080fd5b505af192505050801561159d575060015b505b6001600160a01b03841660009081526006602052604090205460ff16611630576010546001600160a01b0385811660008181526012602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561161d57600080fd5b505af192505050801561162e575060015b505b6010546011546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916116689160040190815260200190565b600060405180830381600087803b15801561168257600080fd5b505af1925050508015611693575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d991815260200190565b60405180910390a3506001949350505050565b600081848411156117105760405162461bcd60e51b81526004016108ed9190611f4a565b50600061171d848661252c565b95945050505050565b6000610a3183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116ec565b6000806117758385612519565b905083811015610a315760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108ed565b600081836117e85760405162461bcd60e51b81526004016108ed9190611f4a565b50600061171d84866124f7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526012909152918220546118469184906116ec565b6001600160a01b0380861660009081526012602052604080822093909355908516815220546118759083611768565b6001600160a01b0380851660008181526012602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118c99086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b031633148015906119035750601c54600160a01b900460ff16155b8015611911575060075460ff165b8015610adf575050600a5430600090815260126020526040902054101590565b601c805460ff60a01b1916600160a01b179055601954601654600a546000926119649260029261100b929183919061127f565b9050600061197d82600a5461172690919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106119b7576119b761238b565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106119ff576119ff61238b565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac94790611a4990869060009087903090429060040161253f565b600060405180830381600087803b158015611a6357600080fd5b505af1158015611a77573d6000803e3d6000fd5b505050506000611a90824761172690919063ffffffff16565b90506000611ab6611aad600260165461130190919063ffffffff16565b60195490611726565b90506000611ad8600261100b8461100b6016548861127f90919063ffffffff16565b90506000611af58361100b6014548761127f90919063ffffffff16565b90506000611b128461100b6018548861127f90919063ffffffff16565b90506000611b2f8561100b6015548961127f90919063ffffffff16565b9050601060009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611b8157600080fd5b505af193505050508015611b93575060015b506003546002546001600160a01b03918216911603611c63576003546000906001600160a01b0316611bc58585611768565b60405161753091906000818181858888f193505050503d8060008114611c07576040519150601f19603f3d011682016040523d82523d6000602084013e611c0c565b606091505b5050905080611c5d5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016108ed565b50611d75565b6002546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611cb5576040519150601f19603f3d011682016040523d82523d6000602084013e611cba565b606091505b50506003546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611d13576040519150601f19603f3d011682016040523d82523d6000602084013e611d18565b606091505b50509050818015611d265750805b611d725760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016108ed565b50505b8915611e4d57601c5460015460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611deb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e1091906125b0565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b600754610100900460ff1615611e7857600854600a5414611e7057600854611e7c565b600954611e7c565b600a545b600a555050601c805460ff60a01b191690555050505050505050565b601b54600f546000918291611eca919061100b90611ec3906001600160a01b0389811691161461112a565b869061127f565b30600090815260126020526040902054909150611ee79082611768565b30600081815260126020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f389085815260200190565b60405180910390a361171d8382611726565b600060208083528351808285015260005b81811015611f7757858101830151858201604001528201611f5b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461114257600080fd5b60008060408385031215611fc257600080fd5b611fcb83611f98565b946020939093013593505050565b60008060408385031215611fec57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261202257600080fd5b8135602067ffffffffffffffff8083111561203f5761203f611ffb565b8260051b604051601f19603f8301168101818110848211171561206457612064611ffb565b60405293845285810183019383810192508785111561208257600080fd5b83870191505b848210156120a85761209982611f98565b83529183019190830190612088565b979650505050505050565b6000602082840312156120c557600080fd5b813567ffffffffffffffff8111156120dc57600080fd5b6120e884828501612011565b949350505050565b60008060006060848603121561210557600080fd5b61210e84611f98565b925061211c60208501611f98565b9150604084013590509250925092565b60006020828403121561213e57600080fd5b610a3182611f98565b8015158114610c3657600080fd5b6000806000806080858703121561216b57600080fd5b843561217681612147565b93506020850135925060408501359150606085013561219481612147565b939692955090935050565b600080604083850312156121b257600080fd5b6121bb83611f98565b915060208301356121cb81612147565b809150509250929050565b60008060008060008060c087890312156121ef57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60006020828403121561222b57600080fd5b5035919050565b60008060006060848603121561224757600080fd5b61225084611f98565b9250602084013567ffffffffffffffff81111561226c57600080fd5b61227886828701612011565b925050604084013590509250925092565b60008060006060848603121561229e57600080fd5b6122a784611f98565b92506122b560208501611f98565b91506122c360408501611f98565b90509250925092565b600080604083850312156122df57600080fd5b6122e883611f98565b91506122f660208401611f98565b90509250929050565b60006020828403121561231157600080fd5b8135610a3181612147565b600181811c9082168061233057607f821691505b60208210810361235057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016123c9576123c96123a1565b5060010190565b600181815b8085111561240b5781600019048211156123f1576123f16123a1565b808516156123fe57918102915b93841c93908002906123d5565b509250929050565b600082612422575060016108a9565b8161242f575060006108a9565b8160018114612445576002811461244f5761246b565b60019150506108a9565b60ff841115612460576124606123a1565b50506001821b6108a9565b5060208310610133831016604e8410600b841016171561248e575081810a6108a9565b61249883836123d0565b80600019048211156124ac576124ac6123a1565b029392505050565b6000610a3160ff841683612413565b6000602082840312156124d557600080fd5b8151610a3181612147565b80820281158282048414176108a9576108a96123a1565b60008261251457634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108a9576108a96123a1565b818103818111156108a9576108a96123a1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561258f5784516001600160a01b03168352938301939183019160010161256a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125c557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122003d111e82a84cd89a07ae42921c9e44b1836d76125c73292653c6d076eebf23f64736f6c634300081100336080604052600180546001600160a01b031990811673d17e88b13e53029f356d46aba44b5640b35c8e9c179091556002805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e5534801561007d57600080fd5b5060405161119e38038061119e83398101604081905261009c916100f6565b6001600160a01b0381166100c457737a250d5630b4cf539739df2c5dacb4c659f2488d6100c6565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610126565b60006020828403121561010857600080fd5b81516001600160a01b038116811461011f57600080fd5b9392505050565b611069806101356000396000f3fe6080604052600436106100fe5760003560e01c8063cab34c0811610095578063efca2eed11610064578063efca2eed1461029d578063f0fc6bca146102b3578063f8cf31cb146102c8578063ffb2c479146102e8578063ffd49c841461030857600080fd5b8063cab34c08146101f0578063ce7c2ac214610228578063d0e30db01461027f578063e2d2e2191461028757600080fd5b80633a98ef39116100d15780633a98ef391461018e5780634fab0ae8146101a4578063592666c0146101ba578063997664d7146101da57600080fd5b806311ce023d1461010357806314b6ca961461012c57806328fd31981461014e5780632d48e8961461016e575b600080fd5b34801561010f57600080fd5b50610119600c5481565b6040519081526020015b60405180910390f35b34801561013857600080fd5b5061014c610147366004610e06565b61031e565b005b34801561015a57600080fd5b50610119610169366004610e30565b610496565b34801561017a57600080fd5b5061014c610189366004610e4b565b610521565b34801561019a57600080fd5b5061011960085481565b3480156101b057600080fd5b50610119600e5481565b3480156101c657600080fd5b5061014c6101d5366004610e30565b610543565b3480156101e657600080fd5b5061011960095481565b3480156101fc57600080fd5b50600154610210906001600160a01b031681565b6040516001600160a01b039091168152602001610123565b34801561023457600080fd5b50610264610243366004610e30565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610123565b61014c610637565b34801561029357600080fd5b50610119600b5481565b3480156102a957600080fd5b50610119600a5481565b3480156102bf57600080fd5b5061014c610866565b3480156102d457600080fd5b5061014c6102e3366004610e30565b610871565b3480156102f457600080fd5b5061014c610303366004610e6d565b6108aa565b34801561031457600080fd5b50610119600d5481565b6000546001600160a01b0316331461033557600080fd5b6001600160a01b0382166000908152600760205260409020541561035c5761035c8261097a565b60008111801561038257506001600160a01b038216600090815260076020526040902054155b156103e857600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561041b565b8015801561040d57506001600160a01b03821660009081526007602052604090205415155b1561041b5761041b82610a98565b6001600160a01b03821660009081526007602052604090205460085461044c91839161044691610bad565b90610bf8565b6008556001600160a01b038216600090815260076020526040902081905561047381610c5c565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205481036104bd57506000919050565b6001600160a01b0382166000908152600760205260408120546104df90610c5c565b6001600160a01b03841660009081526007602052604090206001015490915080821161050f575060009392505050565b6105198282610bad565b949350505050565b6000546001600160a01b0316331461053857600080fd5b600d91909155600e55565b6000546001600160a01b0316331461055a57600080fd5b600454600081900361056a575050565b60005b818110156106155781600f5410610584576000600f555b6105b66004600f548154811061059c5761059c610e86565b6000918252602090912001546001600160a01b0316610c79565b156105ed576105ed6004600f54815481106105d3576105d3610e86565b6000918252602090912001546001600160a01b031661097a565b600f80549060006105fd83610eb2565b9190505550808061060d90610eb2565b91505061056d565b5050600180546001600160a01b0383166001600160a01b031990911617905550565b6000546001600160a01b0316331461064e57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bb9190610ecb565b6040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b03169183915060009061070157610701610e86565b6001600160a01b039283166020918202929092010152600180548351921691839190811061073157610731610e86565b6001600160a01b03928316602091820292909201015260035460405163b6f9de9560e01b815291169063b6f9de9590349061077790600090869030904290600401610ee4565b6000604051808303818588803b15801561079057600080fd5b505af11580156107a4573d6000803e3d6000fd5b50506001546040516370a0823160e01b81523060048201526000945061082493508692506001600160a01b03909116906370a0823190602401602060405180830381865afa1580156107fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081e9190610ecb565b90610bad565b6009549091506108349082610bf8565b600955600854600c5461085e916108559161084f9085610cbe565b90610d40565b600b5490610bf8565b600b55505050565b61086f3361097a565b565b6000546001600160a01b0316331461088857600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108c157600080fd5b60045460008190036108d1575050565b6000805a905060005b84831080156108e857508381105b156109735783600f54106108fc576000600f555b6109146004600f548154811061059c5761059c610e86565b15610931576109316004600f54815481106105d3576105d3610e86565b61094661093f5a8490610bad565b8490610bf8565b92505a600f8054919350600061095b83610eb2565b9190505550808061096b90610eb2565b9150506108da565b5050505050565b6001600160a01b038116600090815260076020526040812054900361099c5750565b60006109a782610496565b90508015610a9457600a546109bc9082610bf8565b600a5560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a369190610f4e565b506001600160a01b03821660009081526006602090815260408083204290556007909152902060020154610a6a9082610bf8565b6001600160a01b038316600090815260076020526040902060028101919091555461047390610c5c565b5050565b60048054610aa890600190610f70565b81548110610ab857610ab8610e86565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610af657610af6610e86565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610b4290600190610f70565b81548110610b5257610b52610e86565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610b8857610b88610f83565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610bef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d82565b90505b92915050565b600080610c058385610f99565b905083811015610bef5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000610bf2600c5461084f600b5485610cbe90919063ffffffff16565b600d546001600160a01b03821660009081526006602052604081205490914291610ca39190610f99565b108015610bf25750600e54610cb783610496565b1192915050565b600082600003610cd057506000610bf2565b6000610cdc8385610fac565b905082610ce98583610fc3565b14610bef5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c53565b6000610bef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610dbc565b60008184841115610da65760405162461bcd60e51b8152600401610c539190610fe5565b506000610db38486610f70565b95945050505050565b60008183610ddd5760405162461bcd60e51b8152600401610c539190610fe5565b506000610db38486610fc3565b80356001600160a01b0381168114610e0157600080fd5b919050565b60008060408385031215610e1957600080fd5b610e2283610dea565b946020939093013593505050565b600060208284031215610e4257600080fd5b610bef82610dea565b60008060408385031215610e5e57600080fd5b50508035926020909101359150565b600060208284031215610e7f57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610ec457610ec4610e9c565b5060010190565b600060208284031215610edd57600080fd5b5051919050565b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610f2e5784516001600160a01b031683529383019391830191600101610f09565b50506001600160a01b039690961660408501525050506060015292915050565b600060208284031215610f6057600080fd5b81518015158114610bef57600080fd5b81810381811115610bf257610bf2610e9c565b634e487b7160e01b600052603160045260246000fd5b80820180821115610bf257610bf2610e9c565b8082028115828204841417610bf257610bf2610e9c565b600082610fe057634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b8181101561101257858101830151858201604001528201610ff6565b506000604082860101526040601f19601f830116850101925050509291505056fea264697066735822122003c816543d191a87c63b82d07acdc13d8f6ddeb219fbf18ee5f615dfa33cec3c64736f6c63430008110033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c806384b0aa661161012e578063bae19235116100ab578063dd62ed3e1161006f578063dd62ed3e146106ea578063f1f3bca314610730578063f2fde38b14610750578063f887ea4014610770578063f8cf31cb1461079057600080fd5b8063bae1923514610650578063c4330f1e14610670578063d51ed1c81461068a578063d7c01032146106aa578063d962cf58146106ca57600080fd5b80638f9a55c0116100f25780638f9a55c0146105c557806395d89b41146105db5780639d1944f5146105f0578063a1ac727f14610610578063a9059cbb1461063057600080fd5b806384b0aa66146104f0578063850c0bd61461051057806387bc1b1b14610567578063893d20e8146105a75780638da5cb5b146105a757600080fd5b80632d48e896116101bc578063592666c011610180578063592666c0146104455780636308fb9814610465578063658d4b7f1461048557806370a08231146104a5578063715018a6146104db57600080fd5b80632d48e8961461039c578063313ce567146103bc578063364333f4146103d857806349bd5a5e146103ed578063571ac8b01461042557600080fd5b806318160ddd1161020357806318160ddd1461030857806323b872dd1461031d578063264a3e601461033d5780632b112e49146103675780632ccb1b301461037c57600080fd5b80630445b6671461024b57806306fdde0314610274578063095ea7b3146102965780631161ae39146102c657806316b9b95b146102e657600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610261600a5481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b506102896107b0565b60405161026b9190611f4a565b3480156102a257600080fd5b506102b66102b1366004611faf565b610842565b604051901515815260200161026b565b3480156102d257600080fd5b506102b66102e1366004611fd9565b6108af565b3480156102f257600080fd5b506103066103013660046120b3565b6108c3565b005b34801561031457600080fd5b50600d54610261565b34801561032957600080fd5b506102b66103383660046120f0565b610976565b34801561034957600080fd5b50610352610a38565b6040805192835260208301919091520161026b565b34801561037357600080fd5b50610261610a73565b34801561038857600080fd5b50610306610397366004611faf565b610ae4565b3480156103a857600080fd5b506103066103b7366004611fd9565b610b30565b3480156103c857600080fd5b506040516009815260200161026b565b3480156103e457600080fd5b50610306610bb5565b3480156103f957600080fd5b50600f5461040d906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561043157600080fd5b506102b661044036600461212c565b610c39565b34801561045157600080fd5b5061030661046036600461212c565b610c47565b34801561047157600080fd5b50610306610480366004612155565b610cc4565b34801561049157600080fd5b506103066104a036600461219f565b610d14565b3480156104b157600080fd5b506102616104c036600461212c565b6001600160a01b031660009081526012602052604090205490565b3480156104e757600080fd5b50610306610d5b565b3480156104fc57600080fd5b5061030661050b3660046121d6565b610dcf565b34801561051c57600080fd5b50601454601654601554601854601754601954601b54604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00161026b565b34801561057357600080fd5b50600154600254600354604080516001600160a01b039485168152928416602084015292169181019190915260600161026b565b3480156105b357600080fd5b506000546001600160a01b031661040d565b3480156105d157600080fd5b50610261600e5481565b3480156105e757600080fd5b50610289610e35565b3480156105fc57600080fd5b5061030661060b366004612219565b610e44565b34801561061c57600080fd5b5061030661062b366004612232565b610e73565b34801561063c57600080fd5b506102b661064b366004611faf565b610f52565b34801561065c57600080fd5b5061030661066b366004611fd9565b610f5f565b34801561067c57600080fd5b506007546102b69060ff1681565b34801561069657600080fd5b506102616106a5366004612219565b611018565b3480156106b657600080fd5b506103066106c5366004612289565b611056565b3480156106d657600080fd5b506103066106e536600461219f565b6110e3565b3480156106f657600080fd5b506102616107053660046122cc565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b34801561073c57600080fd5b5061026161074b3660046122ff565b61112a565b34801561075c57600080fd5b5061030661076b36600461212c565b611147565b34801561077c57600080fd5b50601c5461040d906001600160a01b031681565b34801561079c57600080fd5b506103066107ab36600461212c565b611231565b6060600b80546107bf9061231c565b80601f01602080910402602001604051908101604052809291908181526020018280546107eb9061231c565b80156108385780601f1061080d57610100808354040283529160200191610838565b820191906000526020600020905b81548152906001019060200180831161081b57829003601f168201915b5050505050905090565b3360008181526013602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061089d9086815260200190565b60405180910390a35060015b92915050565b6000826108bb83611018565b119392505050565b6000546001600160a01b031633146108f65760405162461bcd60e51b81526004016108ed90612356565b60405180910390fd5b60005b81518110156109725761095f8282815181106109175761091761238b565b602002602001015161dead61095a8585815181106109375761093761238b565b60200260200101516001600160a01b031660009081526012602052604090205490565b611343565b508061096a816123b7565b9150506108f9565b5050565b6001600160a01b038316600090815260136020908152604080832033845290915281205460001914610a23576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526013825283812033825290915291909120546109fe9184906116ec565b6001600160a01b03851660009081526013602090815260408083203384529091529020555b610a2e848484611343565b90505b9392505050565b600080610a53610a4a6009600a6124b4565b600e5490611301565b610a6b610a626009600a6124b4565b600d5490611301565b915091509091565b60126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b5461dead60009081527f1120e10407cab1193d7c5139d9aae5536deb3d83e855f25f8e42f811c01f56f754600d549192610adf929091610ad99190611726565b90611726565b905090565b601c805460ff60a01b1916600160a01b1790553360009081526005602052604090205460ff16610b1357600080fd5b610b1e823083611343565b5050601c805460ff60a01b1916905550565b3360009081526005602052604090205460ff16610b4c57600080fd5b6010546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e89690604401600060405180830381600087803b158015610b9957600080fd5b505af1158015610bad573d6000803e3d6000fd5b505050505050565b3360009081526005602052604090205460ff16610bd157600080fd5b6001546040516000916001600160a01b03169061753090479084818181858888f193505050503d8060008114610c23576040519150601f19603f3d011682016040523d82523d6000602084013e610c28565b606091505b5050905080610c3657600080fd5b50565b60006108a982600019610842565b3360009081526005602052604090205460ff16610c6357600080fd5b601054604051630164999b60e61b81526001600160a01b0383811660048301529091169063592666c0906024015b600060405180830381600087803b158015610cab57600080fd5b505af1925050508015610cbc575060015b15610c365750565b3360009081526005602052604090205460ff16610ce057600080fd5b6007805494151560ff19921515610100029290921661ffff1990951694909417179092556008819055600991909155600a55565b3360009081526005602052604090205460ff16610d3057600080fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d855760405162461bcd60e51b81526004016108ed90612356565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610df95760405162461bcd60e51b81526004016108ed90612356565b6016869055601885905560158490556014839055610e2383610e1d86818a8a611768565b90611768565b601955601a91909155601b5550505050565b6060600c80546107bf9061231c565b3360009081526005602052604090205460ff168015610e655750620b71b081105b610e6e57600080fd5b601155565b3360009081526005602052604090205460ff16610e8f57600080fd5b60005b8251811015610f4c57836001600160a01b031663a9059cbb848381518110610ebc57610ebc61238b565b6020026020010151846040518363ffffffff1660e01b8152600401610ef69291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3991906124c3565b5080610f44816123b7565b915050610e92565b50505050565b6000610a31338484611343565b6000546001600160a01b03163314610f895760405162461bcd60e51b81526004016108ed90612356565b60018210158015610f9b575060648110155b610ff25760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015261312560f01b60648201526084016108ed565b6110118161100b84600d5461127f90919063ffffffff16565b90611301565b600e555050565b60006108a9611025610a73565b600f546001600160a01b031660009081526012602052604090205461100b9061104f90600261127f565b859061127f565b3360009081526005602052604090205460ff166110a45760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b60448201526064016108ed565b600180546001600160a01b039485166001600160a01b031991821617909155600280549385169382169390931790925560038054919093169116179055565b3360009081526005602052604090205460ff166110ff57600080fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000811561113a57505060195490565b5050601a5490565b919050565b6000546001600160a01b031633146111715760405162461bcd60e51b81526004016108ed90612356565b6001600160a01b0381166111d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ed565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526005602052604090205460ff1661124d57600080fd5b60105460405163f8cf31cb60e01b81526001600160a01b0383811660048301529091169063f8cf31cb90602401610c91565b600082600003611291575060006108a9565b600061129d83856124e0565b9050826112aa85836124f7565b14610a315760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108ed565b6000610a3183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117c7565b601c54600090600160a01b900460ff161561136a576113638484846117f5565b9050610a31565b600f546001600160a01b0384811691161480159061139357506001600160a01b03831661dead14155b80156113b857506001600160a01b03831660009081526005602052604090205460ff16155b1561142e57600e54826113e0856001600160a01b031660009081526012602052604090205490565b6113ea9190612519565b111561142e5760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016108ed565b6114366118db565b1561144357611443611931565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152601290915291909120546114959184906116ec565b6001600160a01b038516600090815260126020908152604080832093909355600490529081205460ff16156114ca57826114d5565b6114d5858585611e98565b6001600160a01b0385166000908152601260205260409020549091506114fb9082611768565b6001600160a01b0380861660009081526012602090815260408083209490945591881681526006909152205460ff1661159f576010546001600160a01b0386811660008181526012602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561158c57600080fd5b505af192505050801561159d575060015b505b6001600160a01b03841660009081526006602052604090205460ff16611630576010546001600160a01b0385811660008181526012602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561161d57600080fd5b505af192505050801561162e575060015b505b6010546011546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916116689160040190815260200190565b600060405180830381600087803b15801561168257600080fd5b505af1925050508015611693575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d991815260200190565b60405180910390a3506001949350505050565b600081848411156117105760405162461bcd60e51b81526004016108ed9190611f4a565b50600061171d848661252c565b95945050505050565b6000610a3183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116ec565b6000806117758385612519565b905083811015610a315760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108ed565b600081836117e85760405162461bcd60e51b81526004016108ed9190611f4a565b50600061171d84866124f7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526012909152918220546118469184906116ec565b6001600160a01b0380861660009081526012602052604080822093909355908516815220546118759083611768565b6001600160a01b0380851660008181526012602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118c99086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b031633148015906119035750601c54600160a01b900460ff16155b8015611911575060075460ff165b8015610adf575050600a5430600090815260126020526040902054101590565b601c805460ff60a01b1916600160a01b179055601954601654600a546000926119649260029261100b929183919061127f565b9050600061197d82600a5461172690919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106119b7576119b761238b565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106119ff576119ff61238b565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac94790611a4990869060009087903090429060040161253f565b600060405180830381600087803b158015611a6357600080fd5b505af1158015611a77573d6000803e3d6000fd5b505050506000611a90824761172690919063ffffffff16565b90506000611ab6611aad600260165461130190919063ffffffff16565b60195490611726565b90506000611ad8600261100b8461100b6016548861127f90919063ffffffff16565b90506000611af58361100b6014548761127f90919063ffffffff16565b90506000611b128461100b6018548861127f90919063ffffffff16565b90506000611b2f8561100b6015548961127f90919063ffffffff16565b9050601060009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611b8157600080fd5b505af193505050508015611b93575060015b506003546002546001600160a01b03918216911603611c63576003546000906001600160a01b0316611bc58585611768565b60405161753091906000818181858888f193505050503d8060008114611c07576040519150601f19603f3d011682016040523d82523d6000602084013e611c0c565b606091505b5050905080611c5d5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016108ed565b50611d75565b6002546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611cb5576040519150601f19603f3d011682016040523d82523d6000602084013e611cba565b606091505b50506003546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611d13576040519150601f19603f3d011682016040523d82523d6000602084013e611d18565b606091505b50509050818015611d265750805b611d725760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016108ed565b50505b8915611e4d57601c5460015460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611deb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e1091906125b0565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b600754610100900460ff1615611e7857600854600a5414611e7057600854611e7c565b600954611e7c565b600a545b600a555050601c805460ff60a01b191690555050505050505050565b601b54600f546000918291611eca919061100b90611ec3906001600160a01b0389811691161461112a565b869061127f565b30600090815260126020526040902054909150611ee79082611768565b30600081815260126020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f389085815260200190565b60405180910390a361171d8382611726565b600060208083528351808285015260005b81811015611f7757858101830151858201604001528201611f5b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461114257600080fd5b60008060408385031215611fc257600080fd5b611fcb83611f98565b946020939093013593505050565b60008060408385031215611fec57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261202257600080fd5b8135602067ffffffffffffffff8083111561203f5761203f611ffb565b8260051b604051601f19603f8301168101818110848211171561206457612064611ffb565b60405293845285810183019383810192508785111561208257600080fd5b83870191505b848210156120a85761209982611f98565b83529183019190830190612088565b979650505050505050565b6000602082840312156120c557600080fd5b813567ffffffffffffffff8111156120dc57600080fd5b6120e884828501612011565b949350505050565b60008060006060848603121561210557600080fd5b61210e84611f98565b925061211c60208501611f98565b9150604084013590509250925092565b60006020828403121561213e57600080fd5b610a3182611f98565b8015158114610c3657600080fd5b6000806000806080858703121561216b57600080fd5b843561217681612147565b93506020850135925060408501359150606085013561219481612147565b939692955090935050565b600080604083850312156121b257600080fd5b6121bb83611f98565b915060208301356121cb81612147565b809150509250929050565b60008060008060008060c087890312156121ef57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60006020828403121561222b57600080fd5b5035919050565b60008060006060848603121561224757600080fd5b61225084611f98565b9250602084013567ffffffffffffffff81111561226c57600080fd5b61227886828701612011565b925050604084013590509250925092565b60008060006060848603121561229e57600080fd5b6122a784611f98565b92506122b560208501611f98565b91506122c360408501611f98565b90509250925092565b600080604083850312156122df57600080fd5b6122e883611f98565b91506122f660208401611f98565b90509250929050565b60006020828403121561231157600080fd5b8135610a3181612147565b600181811c9082168061233057607f821691505b60208210810361235057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016123c9576123c96123a1565b5060010190565b600181815b8085111561240b5781600019048211156123f1576123f16123a1565b808516156123fe57918102915b93841c93908002906123d5565b509250929050565b600082612422575060016108a9565b8161242f575060006108a9565b8160018114612445576002811461244f5761246b565b60019150506108a9565b60ff841115612460576124606123a1565b50506001821b6108a9565b5060208310610133831016604e8410600b841016171561248e575081810a6108a9565b61249883836123d0565b80600019048211156124ac576124ac6123a1565b029392505050565b6000610a3160ff841683612413565b6000602082840312156124d557600080fd5b8151610a3181612147565b80820281158282048414176108a9576108a96123a1565b60008261251457634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156108a9576108a96123a1565b818103818111156108a9576108a96123a1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561258f5784516001600160a01b03168352938301939183019160010161256a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125c557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122003d111e82a84cd89a07ae42921c9e44b1836d76125c73292653c6d076eebf23f64736f6c63430008110033
Deployed Bytecode Sourcemap
15141:12545:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10864:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;10864:28:0;;;;;;;;17782:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18863:216::-;;;;;;;;;;-1:-1:-1;18863:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;18863:216:0;1186:187:1;26335:150:0;;;;;;;;;;-1:-1:-1;26335:150:0;;;;;:::i;:::-;;:::i;22723:236::-;;;;;;;;;;-1:-1:-1;22723:236:0;;;;;:::i;:::-;;:::i;:::-;;17530:88;;;;;;;;;;-1:-1:-1;17603:12:0;;17530:88;;19251:370;;;;;;;;;;-1:-1:-1;19251:370:0;;;;;:::i;:::-;;:::i;18690:165::-;;;;;;;;;;;;;:::i;:::-;;;;3536:25:1;;;3592:2;3577:18;;3570:34;;;;3509:18;18690:165:0;3362:248:1;26825:142:0;;;;;;;;;;;;;:::i;18047:152::-;;;;;;;;;;-1:-1:-1;18047:152:0;;;;;:::i;:::-;;:::i;26975:217::-;;;;;;;;;;-1:-1:-1;26975:217:0;;;;;:::i;:::-;;:::i;17624:71::-;;;;;;;;;;-1:-1:-1;17624:71:0;;15649:1;3757:36:1;;3745:2;3730:18;17624:71:0;3615:184:1;21988:219:0;;;;;;;;;;;;;:::i;15815:28::-;;;;;;;;;;-1:-1:-1;15815:28:0;;;;-1:-1:-1;;;;;15815:28:0;;;;;;-1:-1:-1;;;;;3968:32:1;;;3950:51;;3938:2;3923:18;15815:28:0;3804:203:1;18344:108:0;;;;;;;;;;-1:-1:-1;18344:108:0;;;;;:::i;:::-;;:::i;25691:192::-;;;;;;;;;;-1:-1:-1;25691:192:0;;;;;:::i;:::-;;:::i;22967:360::-;;;;;;;;;;-1:-1:-1;22967:360:0;;;;;:::i;:::-;;:::i;26493:154::-;;;;;;;;;;-1:-1:-1;26493:154:0;;;;;:::i;:::-;;:::i;17936:105::-;;;;;;;;;;-1:-1:-1;17936:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;18020:18:0;18002:7;18020:18;;;:9;:18;;;;;;;17936:105;2976:148;;;;;;;;;;;;;:::i;22215:500::-;;;;;;;;;;-1:-1:-1;22215:500:0;;;;;:::i;:::-;;:::i;18460:222::-;;;;;;;;;;-1:-1:-1;18586:12:0;;18600;;18614:13;;18629:6;;18637:10;;18649:8;;18659:14;;18460:222;;;6007:25:1;;;6063:2;6048:18;;6041:34;;;;6091:18;;;6084:34;;;;6149:2;6134:18;;6127:34;;;;6192:3;6177:19;;6170:35;6236:3;6221:19;;6214:35;6280:3;6265:19;;6258:35;5994:3;5979:19;18460:222:0;5692:607:1;11112:147:0;;;;;;;;;;-1:-1:-1;11210:9:0;:12;11224;;11238;;11112:147;;;-1:-1:-1;;;;;11210:12:0;;;6544:34:1;;11224:12:0;;;6609:2:1;6594:18;;6587:43;11238:12:0;;6646:18:1;;;6639:43;;;;6494:2;6479:18;11112:147:0;6304:384:1;17859:71:0;;;;;;;;;;-1:-1:-1;17902:7:0;2400:6;-1:-1:-1;;;;;2400:6:0;17859:71;26825:142;15744:56;;;;;;;;;;;;;;;;17701:75;;;;;;;;;;;;;:::i;27200:154::-;;;;;;;;;;-1:-1:-1;27200:154:0;;;;;:::i;:::-;;:::i;27362:255::-;;;;;;;;;;-1:-1:-1;27362:255:0;;;;;:::i;:::-;;:::i;19087:156::-;;;;;;;;;;-1:-1:-1;19087:156:0;;;;;:::i;:::-;;:::i;25891:252::-;;;;;;;;;;-1:-1:-1;25891:252:0;;;;;:::i;:::-;;:::i;10729:29::-;;;;;;;;;;-1:-1:-1;10729:29:0;;;;;;;;26151:176;;;;;;;;;;-1:-1:-1;26151:176:0;;;;;:::i;:::-;;:::i;11267:343::-;;;;;;;;;;-1:-1:-1;11267:343:0;;;;;:::i;:::-;;:::i;26655:158::-;;;;;;;;;;-1:-1:-1;26655:158:0;;;;;:::i;:::-;;:::i;18205:133::-;;;;;;;;;;-1:-1:-1;18205:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;18307:19:0;;;18289:7;18307:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18205:133;21189:189;;;;;;;;;;-1:-1:-1;21189:189:0;;;;;:::i;:::-;;:::i;3279:244::-;;;;;;;;;;-1:-1:-1;3279:244:0;;;;;:::i;:::-;;:::i;16301:24::-;;;;;;;;;;-1:-1:-1;16301:24:0;;;;-1:-1:-1;;;;;16301:24:0;;;25510:173;;;;;;;;;;-1:-1:-1;25510:173:0;;;;;:::i;:::-;;:::i;17782:71::-;17821:13;17845:5;17838:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17782:71;:::o;18863:216::-;18967:10;18938:4;18955:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18955:32:0;;;;;;;;;;:41;;;19012:37;18938:4;;18955:32;;19012:37;;;;18990:6;160:25:1;;148:2;133:18;;14:177;19012:37:0;;;;;;;;-1:-1:-1;19067:4:0;18863:216;;;;;:::o;26335:150::-;26415:4;26471:6;26439:29;26459:8;26439:19;:29::i;:::-;:38;;26335:150;-1:-1:-1;;;26335:150:0:o;22723:236::-;2547:6;;-1:-1:-1;;;;;2547:6:0;1584:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;;;;;;;;;22810:6:::1;22805:147;22826:15;:22;22822:1;:26;22805:147;;;22870:70;22884:15;22900:1;22884:18;;;;;;;;:::i;:::-;;;;;;;15413:42;22910:29;22920:15;22936:1;22920:18;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18020:18:0;18002:7;18020:18;;;:9;:18;;;;;;;17936:105;22910:29:::1;22870:13;:70::i;:::-;-1:-1:-1::0;22850:3:0;::::1;::::0;::::1;:::i;:::-;;;;22805:147;;;;22723:236:::0;:::o;19251:370::-;-1:-1:-1;;;;;19371:19:0;;19351:4;19371:19;;;:11;:19;;;;;;;;19391:10;19371:31;;;;;;;;-1:-1:-1;;19371:52:0;19368:186;;19473:69;;;;;;;;;;;-1:-1:-1;;;19473:69:0;;;;;;;;-1:-1:-1;;;;;19473:19:0;;-1:-1:-1;19473:19:0;;;:11;:19;;;;;19493:10;19473:31;;;;;;;;;;:69;;19509:6;;19473:35;:69::i;:::-;-1:-1:-1;;;;;19439:19:0;;;;;;:11;:19;;;;;;;;19459:10;19439:31;;;;;;;:103;19368:186;19573:40;19587:6;19595:9;19606:6;19573:13;:40::i;:::-;19566:47;;19251:370;;;;;;:::o;18690:165::-;18738:7;;18776:35;18795:15;15649:1;18795:2;:15;:::i;:::-;18776:14;;;:18;:35::i;:::-;18813:33;18830:15;15649:1;18830:2;:15;:::i;:::-;18813:12;;;:16;:33::i;:::-;18768:79;;;;18690:165;;:::o;26825:142::-;18020:9;:18;;;;15413:42;26878:7;18020:18;;;;;26905:12;;26878:7;;26905:54;;18020:18;;26905:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;26898:61;;26825:142;:::o;18047:152::-;16372:6;:13;;-1:-1:-1;;;;16372:13:0;-1:-1:-1;;;16372:13:0;;;18138:10:::1;16372:13:::0;18124:25;;;:13:::1;:25;::::0;;;;;16372:13;18124:25:::1;18116:34;;;::::0;::::1;;18152:44;18166:6;18182:4;18189:6;18152:13;:44::i;:::-;-1:-1:-1::0;;16390:6:0;:14;;-1:-1:-1;;;;16390:14:0;;;-1:-1:-1;18047:152:0:o;26975:217::-;27096:10;27082:25;;;;:13;:25;;;;;;;;27074:34;;;;;;27119:11;;:65;;-1:-1:-1;;;27119:65:0;;;;;3536:25:1;;;3577:18;;;3570:34;;;-1:-1:-1;;;;;27119:11:0;;;;:35;;3509:18:1;;27119:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26975:217;;:::o;21988:219::-;22059:10;22045:25;;;;:13;:25;;;;;;;;22037:34;;;;;;22108:9;:12;22100:72;;22083:12;;-1:-1:-1;;;;;22108:12:0;;22162:5;;22134:21;;22083:12;22100:72;22083:12;22100:72;22134:21;22108:12;22162:5;22100:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22082:90;;;22191:7;22183:16;;;;;;22026:181;21988:219::o;18344:108::-;18399:4;18414:35;18422:7;-1:-1:-1;;18414:7:0;:35::i;25691:192::-;25788:10;25774:25;;;;:13;:25;;;;;;;;25766:34;;;;;;25815:11;;:49;;-1:-1:-1;;;25815:49:0;;-1:-1:-1;;;;;3968:32:1;;;25815:49:0;;;3950:51:1;25815:11:0;;;;:39;;3923:18:1;;25815:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25811:65;;;25691:192;:::o;22967:360::-;23109:10;23095:25;;;;:13;:25;;;;;;;;23087:34;;;;;;23132:14;:27;;23170:24;;;-1:-1:-1;;23132:27:0;;;;;23170:24;;;;-1:-1:-1;;23170:24:0;;;;;;;;;;;23205:18;:29;;;23245:18;:29;;;;23285:13;:34;22967:360::o;26493:154::-;26588:10;26574:25;;;;:13;:25;;;;;;;;26566:34;;;;;;-1:-1:-1;;;;;26611:19:0;;;;;;;;:11;:19;;;;;:28;;-1:-1:-1;;26611:28:0;;;;;;;;;;26493:154::o;2976:148::-;2547:6;;-1:-1:-1;;;;;2547:6:0;1584:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;3083:1:::1;3067:6:::0;;3046:40:::1;::::0;-1:-1:-1;;;;;3067:6:0;;::::1;::::0;3046:40:::1;::::0;3083:1;;3046:40:::1;3114:1;3097:19:::0;;-1:-1:-1;;;;;;3097:19:0::1;::::0;;2976:148::o;22215:500::-;2547:6;;-1:-1:-1;;;;;2547:6:0;1584:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;22402:12:::1;:28:::0;;;22441:6:::1;:16:::0;;;22468:13:::1;:30:::0;;;22509:12:::1;:28:::0;;;22559:65:::1;22524:13:::0;22559:46:::1;22484:14:::0;22559:46;22417:13;22450:7;22559:17:::1;:26::i;:::-;:30:::0;::::1;:46::i;:65::-;22548:8;:76:::0;22635:11:::1;:29:::0;;;;22675:14:::1;:32:::0;-1:-1:-1;;;;22215:500:0:o;17701:75::-;17742:13;17766:7;17759:14;;;;;:::i;27200:154::-;27287:10;27273:25;;;;:13;:25;;;;;;;;:41;;;;;27308:6;27302:3;:12;27273:41;27265:50;;;;;;27326:14;:20;27200:154::o;27362:255::-;27476:10;27462:25;;;;:13;:25;;;;;;;;27454:34;;;;;;27504:6;27499:111;27520:7;:14;27516:1;:18;27499:111;;;27563:5;-1:-1:-1;;;;;27556:22:0;;27579:7;27587:1;27579:10;;;;;;;;:::i;:::-;;;;;;;27591:6;27556:42;;;;;;;;;;;;;;;-1:-1:-1;;;;;11385:32:1;;;;11367:51;;11449:2;11434:18;;11427:34;11355:2;11340:18;;11193:274;27556:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;27536:3:0;;;;:::i;:::-;;;;27499:111;;;;27362:255;;;:::o;19087:156::-;19167:4;19191:44;19205:10;19217:9;19228:6;19191:13;:44::i;25891:252::-;2547:6;;-1:-1:-1;;;;;2547:6:0;1584:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;26003:1:::1;25992:7;:12;;:34;;;;;26023:3;26008:11;:18;;25992:34;25984:81;;;::::0;-1:-1:-1;;;25984:81:0;;11924:2:1;25984:81:0::1;::::0;::::1;11906:21:1::0;11963:2;11943:18;;;11936:30;12002:34;11982:18;;;11975:62;-1:-1:-1;;;12053:18:1;;;12046:32;12095:19;;25984:81:0::1;11722:398:1::0;25984:81:0::1;26093:42;26123:11;26093:25;26110:7;26093:12;;:16;;:25;;;;:::i;:::-;:29:::0;::::1;:42::i;:::-;26076:14;:59:::0;-1:-1:-1;;25891:252:0:o;26151:176::-;26219:7;26246:73;26296:22;:20;:22::i;:::-;26269:13;;-1:-1:-1;;;;;26269:13:0;18002:7;18020:18;;;:9;:18;;;;;;26246:45;;26259:31;;26288:1;26259:28;:31::i;:::-;26246:8;;:12;:45::i;11267:343::-;11430:10;11416:25;;;;:13;:25;;;;;;;;11408:50;;;;-1:-1:-1;;;11408:50:0;;12327:2:1;11408:50:0;;;12309:21:1;12366:2;12346:18;;;12339:30;-1:-1:-1;;;12385:18:1;;;12378:42;12437:18;;11408:50:0;12125:336:1;11408:50:0;11469:9;:37;;-1:-1:-1;;;;;11469:37:0;;;-1:-1:-1;;;;;;11469:37:0;;;;;;;11517:12;:36;;;;;;;;;;;;;;;11564:12;:38;;;;;;;;;;;11267:343::o;26655:158::-;26752:10;26738:25;;;;:13;:25;;;;;;;;26730:34;;;;;;-1:-1:-1;;;;;26775:21:0;;;;;;;;:13;:21;;;;;:30;;-1:-1:-1;;26775:30:0;;;;;;;;;;26655:158::o;21189:189::-;21245:7;21269;21265:106;;;-1:-1:-1;;21300:8:0;;;21189:189::o;21265:106::-;-1:-1:-1;;21348:11:0;;;21189:189::o;21265:106::-;21189:189;;;:::o;3279:244::-;2547:6;;-1:-1:-1;;;;;2547:6:0;1584:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3368:22:0;::::1;3360:73;;;::::0;-1:-1:-1;;;3360:73:0;;12668:2:1;3360:73:0::1;::::0;::::1;12650:21:1::0;12707:2;12687:18;;;12680:30;12746:34;12726:18;;;12719:62;-1:-1:-1;;;12797:18:1;;;12790:36;12843:19;;3360:73:0::1;12466:402:1::0;3360:73:0::1;3470:6;::::0;;3449:38:::1;::::0;-1:-1:-1;;;;;3449:38:0;;::::1;::::0;3470:6;::::1;::::0;3449:38:::1;::::0;::::1;3498:6;:17:::0;;-1:-1:-1;;;;;;3498:17:0::1;-1:-1:-1::0;;;;;3498:17:0;;;::::1;::::0;;;::::1;::::0;;3279:244::o;25510:173::-;25597:10;25583:25;;;;:13;:25;;;;;;;;25575:34;;;;;;25624:11;;:39;;-1:-1:-1;;;25624:39:0;;-1:-1:-1;;;;;3968:32:1;;;25624:39:0;;;3950:51:1;25624:11:0;;;;:29;;3923:18:1;;25624:39:0;3804:203:1;717:250:0;775:7;799:1;804;799:6;795:47;;-1:-1:-1;829:1:0;822:8;;795:47;854:9;866:5;870:1;866;:5;:::i;:::-;854:17;-1:-1:-1;899:1:0;890:5;894:1;854:17;890:5;:::i;:::-;:10;882:56;;;;-1:-1:-1;;;882:56:0;;13470:2:1;882:56:0;;;13452:21:1;13509:2;13489:18;;;13482:30;13548:34;13528:18;;;13521:62;-1:-1:-1;;;13599:18:1;;;13592:31;13640:19;;882:56:0;13268:397:1;973:132:0;1031:7;1058:39;1062:1;1065;1058:39;;;;;;;;;;;;;;;;;:3;:39::i;19631:1088::-;19743:6;;19723:4;;-1:-1:-1;;;19743:6:0;;;;19740:63;;;19759:41;19774:6;19782:9;19793:6;19759:14;:41::i;:::-;19752:48;;;;19740:63;19834:13;;-1:-1:-1;;;;;19821:26:0;;;19834:13;;19821:26;;;;:47;;-1:-1:-1;;;;;;19851:17:0;;15413:42;19851:17;;19821:47;:76;;;;-1:-1:-1;;;;;;19873:24:0;;;;;;:13;:24;;;;;;;;19872:25;19821:76;19817:190;;;19956:14;;19946:6;19923:20;19933:9;-1:-1:-1;;;;;18020:18:0;18002:7;18020:18;;;:9;:18;;;;;;;17936:105;19923:20;:29;;;;:::i;:::-;:47;;19915:79;;;;-1:-1:-1;;;19915:79:0;;14002:2:1;19915:79:0;;;13984:21:1;14041:2;14021:18;;;14014:30;-1:-1:-1;;;14060:18:1;;;14053:49;14119:18;;19915:79:0;13800:343:1;19915:79:0;20022:16;:14;:16::i;:::-;20019:59;;;20055:10;:8;:10::i;:::-;20110:53;;;;;;;;;;;-1:-1:-1;;;20110:53:0;;;;;;;;-1:-1:-1;;;;;20110:17:0;;-1:-1:-1;20110:17:0;;;:9;:17;;;;;;;;:53;;20132:6;;20110:21;:53::i;:::-;-1:-1:-1;;;;;20090:17:0;;;;;;:9;:17;;;;;;;;:73;;;;21154:11;:19;;;;;;;;21153:20;20201:67;;20262:6;20201:67;;;20225:34;20233:6;20241:9;20252:6;20225:7;:34::i;:::-;-1:-1:-1;;;;;20302:20:0;;;;;;:9;:20;;;;;;20176:92;;-1:-1:-1;20302:40:0;;20176:92;20302:24;:40::i;:::-;-1:-1:-1;;;;;20279:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;20359:24;;;;;:16;:24;;;;;;;20355:96;;20390:11;;-1:-1:-1;;;;;20419:17:0;;;20390:11;20419:17;;;:9;:17;;;;;;;;20390:47;;-1:-1:-1;;;20390:47:0;;;;;11367:51:1;;;;11434:18;;;11427:34;20390:11:0;;;:20;;11340:18:1;;20390:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20386:63;;-1:-1:-1;;;;;20465:27:0;;;;;;:16;:27;;;;;;;;20461:105;;20499:11;;-1:-1:-1;;;;;20531:20:0;;;20499:11;20531:20;;;:9;:20;;;;;;;;20499:53;;-1:-1:-1;;;20499:53:0;;;;;11367:51:1;;;;11434:18;;;11427:34;20499:11:0;;;:20;;11340:18:1;;20499:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20495:69;;20582:11;;20602:14;;20582:35;;-1:-1:-1;;;;;;20582:35:0;;-1:-1:-1;;;;;20582:11:0;;;;:19;;:35;;;;160:25:1;;;148:2;133:18;;14:177;20582:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20578:51;20663:9;-1:-1:-1;;;;;20646:43:0;20655:6;-1:-1:-1;;;;;20646:43:0;;20674:14;20646:43;;;;160:25:1;;148:2;133:18;;14:177;20646:43:0;;;;;;;;-1:-1:-1;20707:4:0;;19631:1088;-1:-1:-1;;;;19631:1088:0:o;519:192::-;605:7;641:12;633:6;;;;625:29;;;;-1:-1:-1;;;625:29:0;;;;;;;;:::i;:::-;-1:-1:-1;665:9:0;677:5;681:1;677;:5;:::i;:::-;665:17;519:192;-1:-1:-1;;;;;519:192:0:o;377:136::-;435:7;462:43;466:1;469;462:43;;;;;;;;;;;;;;;;;:3;:43::i;190:181::-;248:7;;280:5;284:1;280;:5;:::i;:::-;268:17;;309:1;304;:6;;296:46;;;;-1:-1:-1;;;296:46:0;;14483:2:1;296:46:0;;;14465:21:1;14522:2;14502:18;;;14495:30;14561:29;14541:18;;;14534:57;14608:18;;296:46:0;14281:351:1;1111:345:0;1197:7;1299:12;1292:5;1284:28;;;;-1:-1:-1;;;1284:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1323:9:0;1335:5;1339:1;1335;:5;:::i;20729:330::-;20859:53;;;;;;;;;;;-1:-1:-1;;;20859:53:0;;;;;;;;-1:-1:-1;;;;;20859:17:0;;20822:4;20859:17;;;:9;:17;;;;;;;:53;;20881:6;;20859:21;:53::i;:::-;-1:-1:-1;;;;;20839:17:0;;;;;;;:9;:17;;;;;;:73;;;;20946:20;;;;;;;:32;;20971:6;20946:24;:32::i;:::-;-1:-1:-1;;;;;20923:20:0;;;;;;;:9;:20;;;;;;;:55;;;;20994:35;;;;;;;;;;21022:6;160:25:1;;148:2;133:18;;14:177;20994:35:0;;;;;;;;-1:-1:-1;21047:4:0;20729:330;;;;;:::o;21775:205::-;21862:13;;21824:4;;-1:-1:-1;;;;;21862:13:0;21848:10;:27;;;;:47;;-1:-1:-1;21889:6:0;;-1:-1:-1;;;21889:6:0;;;;21888:7;21848:47;:70;;;;-1:-1:-1;21908:10:0;;;;21848:70;:124;;;;-1:-1:-1;;21959:13:0;;21949:4;21931:24;;;;:9;:24;;;;;;:41;;;21775:205::o;23335:2167::-;16372:6;:13;;-1:-1:-1;;;;16372:13:0;-1:-1:-1;;;16372:13:0;;;23446:8:::1;::::0;23428:12:::1;::::0;23410:13:::1;::::0;16372;;23410:52:::1;::::0;23460:1:::1;::::0;23410:45:::1;::::0;23446:8;23410:45;;:13;:17:::1;:31::i;:52::-;23384:78;;23473:20;23496:34;23514:15;23496:13;;:17;;:34;;;;:::i;:::-;23567:16;::::0;;23581:1:::1;23567:16:::0;;;;;::::1;::::0;;23473:57;;-1:-1:-1;23543:21:0::1;::::0;23567:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23567:16:0::1;23543:40;;23612:4;23594;23599:1;23594:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;23594:23:0::1;;;-1:-1:-1::0;;;;;23594:23:0::1;;;::::0;::::1;15331:42;23628:4;23633:1;23628:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23628:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;23713:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;23713:188:0;;23679:21:::1;::::0;23713:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;23785:12;;23655:21:::1;::::0;23828:4;;23855::::1;::::0;23875:15:::1;::::0;23713:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23914:17;23934:40;23960:13;23934:21;:25;;:40;;;;:::i;:::-;23914:60;;23985:19;24007:33;24020:19;24037:1;24020:12;;:16;;:19;;;;:::i;:::-;24007:8;::::0;;:12:::1;:33::i;:::-;23985:55;;24051:26;24080:51;24129:1;24080:44;24112:11;24080:27;24094:12;;24080:9;:13;;:27;;;;:::i;:51::-;24051:80;;24142:26;24171:44;24203:11;24171:27;24185:12;;24171:9;:13;;:27;;;;:::i;:44::-;24142:73;;24226:20;24249:38;24275:11;24249:21;24263:6;;24249:9;:13;;:21;;;;:::i;:38::-;24226:61;;24298:28;24329:45;24362:11;24329:28;24343:13;;24329:9;:13;;:28;;;;:::i;:45::-;24298:76;;24391:11;;;;;;;;;-1:-1:-1::0;;;;;24391:11:0::1;-1:-1:-1::0;;;;;24391:19:0::1;;24418:20;24391:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;24483:12:0;;24493:1:::1;24467:12:::0;-1:-1:-1;;;;;24483:12:0;;::::1;24467::::0;::::1;:28:::0;24463:526:::1;;24538:12:::0;;24513::::1;::::0;-1:-1:-1;;;;;24538:12:0::1;24564:36;:18:::0;24587:12;24564:22:::1;:36::i;:::-;24530:87;::::0;24607:5:::1;::::0;24530:87;::::1;::::0;;;;;24607:5;24530:87:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24512:105;;;24640:7;24632:50;;;::::0;-1:-1:-1;;;24632:50:0;;15824:2:1;24632:50:0::1;::::0;::::1;15806:21:1::0;15863:2;15843:18;;;15836:30;15902:32;15882:18;;;15875:60;15952:18;;24632:50:0::1;15622:354:1::0;24632:50:0::1;24497:197;24463:526;;;24742:12:::0;;24734:69:::1;::::0;24716:12:::1;::::0;-1:-1:-1;;;;;24742:12:0::1;::::0;24793:5:::1;::::0;24768:18;;24716:12;24734:69;24716:12;24734:69;24768:18;24742:12;24793:5;24734:69:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;24845:12:0;;24837:63:::1;::::0;24715:88;;-1:-1:-1;24819:13:0::1;::::0;-1:-1:-1;;;;;24845:12:0;;::::1;::::0;24890:5:::1;::::0;24871:12;;24819:13;24837:63;24819:13;24837:63;24871:12;24845;24890:5;24837:63:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24818:82;;;24923:7;:19;;;;;24934:8;24923:19;24915:62;;;::::0;-1:-1:-1;;;24915:62:0;;15824:2:1;24915:62:0::1;::::0;::::1;15806:21:1::0;15863:2;15843:18;;;15836:30;15902:32;15882:18;;;15875:60;15952:18;;24915:62:0::1;15622:354:1::0;24915:62:0::1;24700:289;;24463:526;25004:19:::0;;25001:354:::1;;25040:6;::::0;;25214:12;25040:235:::1;::::0;-1:-1:-1;;;25040:235:0;;25116:4:::1;25040:235;::::0;::::1;16322:34:1::0;16372:18;;;16365:34;;;25040:6:0::1;16415:18:1::0;;;16408:34;;;16458:18;;;16451:34;-1:-1:-1;;;;;25214:12:0;;::::1;16501:19:1::0;;;16494:44;25245:15:0::1;16554:19:1::0;;;16547:35;25040:6:0;::::1;::::0;:22:::1;::::0;25070:18;;16256:19:1;;25040:235:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;25295:48:0::1;::::0;;3536:25:1;;;3592:2;3577:18;;3570:34;;;25295:48:0::1;::::0;-1:-1:-1;3509:18:1;25295:48:0::1;;;;;;;25001:354;25384:14;::::0;::::1;::::0;::::1;;;25383:15;:111;;25434:18;;25417:13;;:35;:77;;25476:18;;25383:111;;25417:77;25455:18;;25383:111;;;25401:13;;25383:111;25367:13;:127:::0;-1:-1:-1;;16390:6:0;:14;;-1:-1:-1;;;;16390:14:0;;;-1:-1:-1;;;;;;;;23335:2167:0:o;21386:381::-;21566:14;;21546:13;;21471:7;;;;21511:70;;21566:14;21511:50;;21522:38;;-1:-1:-1;;;;;21534:25:0;;;21546:13;;21534:25;21522:11;:38::i;:::-;21511:6;;:10;:50::i;:70::-;21639:4;21621:24;;;;:9;:24;;;;;;21491:90;;-1:-1:-1;21621:39:0;;21491:90;21621:28;:39::i;:::-;21612:4;21594:24;;;;:9;:24;;;;;;;:66;;;;21676:42;;-1:-1:-1;;;;;21676:42:0;;;;;;;21708:9;160:25:1;;148:2;133:18;;14:177;21676:42:0;;;;;;;;21738:21;:6;21749:9;21738:10;:21::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;927:254;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:127::-;1692:10;1687:3;1683:20;1680:1;1673:31;1723:4;1720:1;1713:15;1747:4;1744:1;1737:15;1763:908;1817:5;1870:3;1863:4;1855:6;1851:17;1847:27;1837:55;;1888:1;1885;1878:12;1837:55;1924:6;1911:20;1950:4;1973:18;2010:2;2006;2003:10;2000:36;;;2016:18;;:::i;:::-;2062:2;2059:1;2055:10;2094:2;2088:9;2157:2;2153:7;2148:2;2144;2140:11;2136:25;2128:6;2124:38;2212:6;2200:10;2197:22;2192:2;2180:10;2177:18;2174:46;2171:72;;;2223:18;;:::i;:::-;2259:2;2252:22;2309:18;;;2385:15;;;2381:24;;;2343:15;;;;-1:-1:-1;2417:15:1;;;2414:35;;;2445:1;2442;2435:12;2414:35;2481:2;2473:6;2469:15;2458:26;;2493:148;2509:6;2504:3;2501:15;2493:148;;;2575:23;2594:3;2575:23;:::i;:::-;2563:36;;2619:12;;;;2526;;;;2493:148;;;2659:6;1763:908;-1:-1:-1;;;;;;;1763:908:1:o;2676:348::-;2760:6;2813:2;2801:9;2792:7;2788:23;2784:32;2781:52;;;2829:1;2826;2819:12;2781:52;2869:9;2856:23;2902:18;2894:6;2891:30;2888:50;;;2934:1;2931;2924:12;2888:50;2957:61;3010:7;3001:6;2990:9;2986:22;2957:61;:::i;:::-;2947:71;2676:348;-1:-1:-1;;;;2676:348:1:o;3029:328::-;3106:6;3114;3122;3175:2;3163:9;3154:7;3150:23;3146:32;3143:52;;;3191:1;3188;3181:12;3143:52;3214:29;3233:9;3214:29;:::i;:::-;3204:39;;3262:38;3296:2;3285:9;3281:18;3262:38;:::i;:::-;3252:48;;3347:2;3336:9;3332:18;3319:32;3309:42;;3029:328;;;;;:::o;4012:186::-;4071:6;4124:2;4112:9;4103:7;4099:23;4095:32;4092:52;;;4140:1;4137;4130:12;4092:52;4163:29;4182:9;4163:29;:::i;4203:118::-;4289:5;4282:13;4275:21;4268:5;4265:32;4255:60;;4311:1;4308;4301:12;4326:513;4406:6;4414;4422;4430;4483:3;4471:9;4462:7;4458:23;4454:33;4451:53;;;4500:1;4497;4490:12;4451:53;4539:9;4526:23;4558:28;4580:5;4558:28;:::i;:::-;4605:5;-1:-1:-1;4657:2:1;4642:18;;4629:32;;-1:-1:-1;4708:2:1;4693:18;;4680:32;;-1:-1:-1;4764:2:1;4749:18;;4736:32;4777:30;4736:32;4777:30;:::i;:::-;4326:513;;;;-1:-1:-1;4326:513:1;;-1:-1:-1;;4326:513:1:o;4844:315::-;4909:6;4917;4970:2;4958:9;4949:7;4945:23;4941:32;4938:52;;;4986:1;4983;4976:12;4938:52;5009:29;5028:9;5009:29;:::i;:::-;4999:39;;5088:2;5077:9;5073:18;5060:32;5101:28;5123:5;5101:28;:::i;:::-;5148:5;5138:15;;;4844:315;;;;;:::o;5164:523::-;5268:6;5276;5284;5292;5300;5308;5361:3;5349:9;5340:7;5336:23;5332:33;5329:53;;;5378:1;5375;5368:12;5329:53;-1:-1:-1;;5401:23:1;;;5471:2;5456:18;;5443:32;;-1:-1:-1;5522:2:1;5507:18;;5494:32;;5573:2;5558:18;;5545:32;;-1:-1:-1;5624:3:1;5609:19;;5596:33;;-1:-1:-1;5676:3:1;5661:19;5648:33;;-1:-1:-1;5164:523:1;-1:-1:-1;5164:523:1:o;6693:180::-;6752:6;6805:2;6793:9;6784:7;6780:23;6776:32;6773:52;;;6821:1;6818;6811:12;6773:52;-1:-1:-1;6844:23:1;;6693:180;-1:-1:-1;6693:180:1:o;6878:490::-;6980:6;6988;6996;7049:2;7037:9;7028:7;7024:23;7020:32;7017:52;;;7065:1;7062;7055:12;7017:52;7088:29;7107:9;7088:29;:::i;:::-;7078:39;;7168:2;7157:9;7153:18;7140:32;7195:18;7187:6;7184:30;7181:50;;;7227:1;7224;7217:12;7181:50;7250:61;7303:7;7294:6;7283:9;7279:22;7250:61;:::i;:::-;7240:71;;;7358:2;7347:9;7343:18;7330:32;7320:42;;6878:490;;;;;:::o;7373:334::-;7450:6;7458;7466;7519:2;7507:9;7498:7;7494:23;7490:32;7487:52;;;7535:1;7532;7525:12;7487:52;7558:29;7577:9;7558:29;:::i;:::-;7548:39;;7606:38;7640:2;7629:9;7625:18;7606:38;:::i;:::-;7596:48;;7663:38;7697:2;7686:9;7682:18;7663:38;:::i;:::-;7653:48;;7373:334;;;;;:::o;7712:260::-;7780:6;7788;7841:2;7829:9;7820:7;7816:23;7812:32;7809:52;;;7857:1;7854;7847:12;7809:52;7880:29;7899:9;7880:29;:::i;:::-;7870:39;;7928:38;7962:2;7951:9;7947:18;7928:38;:::i;:::-;7918:48;;7712:260;;;;;:::o;7977:241::-;8033:6;8086:2;8074:9;8065:7;8061:23;8057:32;8054:52;;;8102:1;8099;8092:12;8054:52;8141:9;8128:23;8160:28;8182:5;8160:28;:::i;8450:380::-;8529:1;8525:12;;;;8572;;;8593:61;;8647:4;8639:6;8635:17;8625:27;;8593:61;8700:2;8692:6;8689:14;8669:18;8666:38;8663:161;;8746:10;8741:3;8737:20;8734:1;8727:31;8781:4;8778:1;8771:15;8809:4;8806:1;8799:15;8663:161;;8450:380;;;:::o;8835:356::-;9037:2;9019:21;;;9056:18;;;9049:30;9115:34;9110:2;9095:18;;9088:62;9182:2;9167:18;;8835:356::o;9196:127::-;9257:10;9252:3;9248:20;9245:1;9238:31;9288:4;9285:1;9278:15;9312:4;9309:1;9302:15;9328:127;9389:10;9384:3;9380:20;9377:1;9370:31;9420:4;9417:1;9410:15;9444:4;9441:1;9434:15;9460:135;9499:3;9520:17;;;9517:43;;9540:18;;:::i;:::-;-1:-1:-1;9587:1:1;9576:13;;9460:135::o;9600:422::-;9689:1;9732:5;9689:1;9746:270;9767:7;9757:8;9754:21;9746:270;;;9826:4;9822:1;9818:6;9814:17;9808:4;9805:27;9802:53;;;9835:18;;:::i;:::-;9885:7;9875:8;9871:22;9868:55;;;9905:16;;;;9868:55;9984:22;;;;9944:15;;;;9746:270;;;9750:3;9600:422;;;;;:::o;10027:806::-;10076:5;10106:8;10096:80;;-1:-1:-1;10147:1:1;10161:5;;10096:80;10195:4;10185:76;;-1:-1:-1;10232:1:1;10246:5;;10185:76;10277:4;10295:1;10290:59;;;;10363:1;10358:130;;;;10270:218;;10290:59;10320:1;10311:10;;10334:5;;;10358:130;10395:3;10385:8;10382:17;10379:43;;;10402:18;;:::i;:::-;-1:-1:-1;;10458:1:1;10444:16;;10473:5;;10270:218;;10572:2;10562:8;10559:16;10553:3;10547:4;10544:13;10540:36;10534:2;10524:8;10521:16;10516:2;10510:4;10507:12;10503:35;10500:77;10497:159;;;-1:-1:-1;10609:19:1;;;10641:5;;10497:159;10688:34;10713:8;10707:4;10688:34;:::i;:::-;10758:6;10754:1;10750:6;10746:19;10737:7;10734:32;10731:58;;;10769:18;;:::i;:::-;10807:20;;10027:806;-1:-1:-1;;;10027:806:1:o;10838:140::-;10896:5;10925:47;10966:4;10956:8;10952:19;10946:4;10925:47;:::i;11472:245::-;11539:6;11592:2;11580:9;11571:7;11567:23;11563:32;11560:52;;;11608:1;11605;11598:12;11560:52;11640:9;11634:16;11659:28;11681:5;11659:28;:::i;12873:168::-;12946:9;;;12977;;12994:15;;;12988:22;;12974:37;12964:71;;13015:18;;:::i;13046:217::-;13086:1;13112;13102:132;;13156:10;13151:3;13147:20;13144:1;13137:31;13191:4;13188:1;13181:15;13219:4;13216:1;13209:15;13102:132;-1:-1:-1;13248:9:1;;13046:217::o;13670:125::-;13735:9;;;13756:10;;;13753:36;;;13769:18;;:::i;14148:128::-;14215:9;;;14236:11;;;14233:37;;;14250:18;;:::i;14637:980::-;14899:4;14947:3;14936:9;14932:19;14978:6;14967:9;14960:25;15004:2;15042:6;15037:2;15026:9;15022:18;15015:34;15085:3;15080:2;15069:9;15065:18;15058:31;15109:6;15144;15138:13;15175:6;15167;15160:22;15213:3;15202:9;15198:19;15191:26;;15252:2;15244:6;15240:15;15226:29;;15273:1;15283:195;15297:6;15294:1;15291:13;15283:195;;;15362:13;;-1:-1:-1;;;;;15358:39:1;15346:52;;15453:15;;;;15418:12;;;;15394:1;15312:9;15283:195;;;-1:-1:-1;;;;;;;15534:32:1;;;;15529:2;15514:18;;15507:60;-1:-1:-1;;;15598:3:1;15583:19;15576:35;15495:3;14637:980;-1:-1:-1;;;14637:980:1:o;16593:306::-;16681:6;16689;16697;16750:2;16738:9;16729:7;16725:23;16721:32;16718:52;;;16766:1;16763;16756:12;16718:52;16795:9;16789:16;16779:26;;16845:2;16834:9;16830:18;16824:25;16814:35;;16889:2;16878:9;16874:18;16868:25;16858:35;;16593:306;;;;;:::o
Swarm Source
ipfs://03c816543d191a87c63b82d07acdc13d8f6ddeb219fbf18ee5f615dfa33cec3c
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.