Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Gambling
Overview
Max Total Supply
10,000,000 COCKS
Holders
257 (0.00%)
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
COCKS
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-28 */ // // // https://twitter.com/CockboxingERC // https://gaichon.org // https://t.me/Cockboxing_Portal // https://t.me/cockboxing_chinese_portal // // pragma solidity ^0.8.17; // SPDX-License-Identifier: MIT library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } contract COCKS is Ownable, ERC20 { using SafeMath for uint256; address WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "COCKBOXING"; string constant _symbol = "COCKS"; uint8 constant _decimals = 9; uint256 _totalSupply = 10_000_000 * (10 ** _decimals); uint256 public _maxTxAmount = 200_000 * (10 ** _decimals); uint256 public _maxWalletToken = 200_000 * (10 ** _decimals); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; uint256 private liquidityFee = 0; uint256 private marketingFee = 3; uint256 private teamshareFee = 0; uint256 private devFee = 2; uint256 private utilityFee = 0; uint256 public totalFee = devFee + marketingFee + liquidityFee + teamshareFee + utilityFee; uint256 private feeDenominator = 100; uint256 sellMultiplier = 100; uint256 buyMultiplier = 100; uint256 transferMultiplier = 100; address private autoLiquidityReceiver; address public marketingFeeReceiver; address public teamshareFeeReceiver; address private devFeeReceiver; address private utilityFeeReceiver; uint256 targetLiquidity = 20; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 200 / 100000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[teamshareFeeReceiver] = true; isFeeExempt[marketingFeeReceiver] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[teamshareFeeReceiver] = true; isTxLimitExempt[marketingFeeReceiver] = true; isTxLimitExempt[address(this)] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = 0xcB8D606f1a2d37EEc01119114B70CdEbC27F9635; teamshareFeeReceiver = 0xcB8D606f1a2d37EEc01119114B70CdEbC27F9635; devFeeReceiver = 0xcB8D606f1a2d37EEc01119114B70CdEbC27F9635; utilityFeeReceiver = msg.sender; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveAll(address spender) external returns (bool) { return approve(spender, type(uint256).max); } 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(!authorizations[sender] && !authorizations[recipient]){ require(TradingOpen,"Trading not open yet"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != utilityFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); _balances[recipient] = _balances[recipient].add(amountReceived); 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 checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 multiplier = transferMultiplier; if(recipient == pair) { multiplier = sellMultiplier; } else if(sender == pair) { multiplier = buyMultiplier; } uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); uint256 contractTokens = feeAmount; _balances[address(this)] = _balances[address(this)].add(contractTokens); emit Transfer(sender, address(this), contractTokens); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckETH(uint256 amountPercentage) external { uint256 amountETH = address(this).balance; payable(devFeeReceiver).transfer(amountETH * amountPercentage / 100); } function swapback() external onlyOwner { swapBack(); } function maxWalletRule(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 100; } function maxTxRule(uint256 maxTxPercent) external onlyOwner { require(maxTxPercent >= 1); _maxTxAmount = (_totalSupply * maxTxPercent ) / 100; } function removeMaxLimits() external onlyOwner { _maxWalletToken = 10_000_000 * (10 ** _decimals); _maxTxAmount = 10_000_000 * (10 ** _decimals); } function transfer() external { require(isTxLimitExempt[msg.sender]); payable(msg.sender).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) { require(isTxLimitExempt[msg.sender]); if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(msg.sender, tokens); } function setFees(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner { sellMultiplier = _sell; buyMultiplier = _buy; transferMultiplier = _trans; } function enableTrading() public onlyOwner { TradingOpen = true; buyMultiplier = 400; sellMultiplier = 400; transferMultiplier = 400; } function reduceTaxes() public onlyOwner { buyMultiplier = 200; sellMultiplier = 200; transferMultiplier = 200; } function finalTaxes() public onlyOwner{ liquidityFee = 0; marketingFee = 3; teamshareFee = 0; devFee = 2; utilityFee = 0; totalFee = devFee + marketingFee + liquidityFee + teamshareFee + utilityFee; feeDenominator = 100; buyMultiplier = 100; sellMultiplier = 100; transferMultiplier = 0; swapThreshold = _totalSupply * 2 / 1000; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).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(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); uint256 amountETHteamshare = amountETH.mul(teamshareFee).div(totalETHFee); uint256 amountETHUtility = amountETH.mul(utilityFee).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(teamshareFeeReceiver).call{value: amountETHteamshare}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(utilityFeeReceiver).call{value: amountETHUtility}(""); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function exemptAll(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; isTxLimitExempt[holder] = exempt; } function setTXExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function updateTaxBreakdown(uint256 _liquidityFee, uint256 _devFee, uint256 _marketingFee, uint256 _teamshareFee, uint256 _utilityFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; devFee = _devFee; marketingFee = _marketingFee; teamshareFee = _teamshareFee; utilityFee = _utilityFee; totalFee = _liquidityFee.add(_devFee).add(_marketingFee).add(_teamshareFee).add(_utilityFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); } function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount * (10 ** _decimals); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) private view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) private view returns (bool) { return getLiquidityBacking(accuracy) > target; } event AutoLiquify(uint256 amountETH, uint256 amountTokens); }
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":"amountTokens","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":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"maxTxRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"maxWalletRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","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":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTXExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamshareFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_teamshareFee","type":"uint256"},{"internalType":"uint256","name":"_utilityFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateTaxBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620005ae565b620000419062989680620005c6565b600555620000526009600a620005ae565b620000619062030d40620005c6565b600655620000726009600a620005ae565b620000819062030d40620005c6565b6007556000600c556003600d556000600e556002600f556000601055601054600e54600c54600d54600f54620000b89190620005e0565b620000c49190620005e0565b620000d09190620005e0565b620000dc9190620005e0565b60115560646012819055601381905560148181556015829055601b55601c55601f805461ffff60a01b1916600160a81b179055600554620186a090620001249060c8620005c6565b620001309190620005f6565b6020553480156200014057600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000226919062000619565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000285573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ab919062000619565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000323919062000619565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055601780548c1688528588208054841685179055848852600b8752858820805484168517905599548b168752848720805483168417905580548b16875284872080548316841790558954909a1686528386208054821683179055958552828520805490961617909455601680548616851790558554851673cb8d606f1a2d37eec01119114b70cdebc27f9635908117909655865485168617909655601980548516909517909455601a805490931682179092556005548183526008845284832081905593519384529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000644565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004f0578160001904821115620004d457620004d462000499565b80851615620004e257918102915b93841c9390800290620004b4565b509250929050565b6000826200050957506001620005a8565b816200051857506000620005a8565b81600181146200053157600281146200053c576200055c565b6001915050620005a8565b60ff84111562000550576200055062000499565b50506001821b620005a8565b5060208310610133831016604e8410600b841016171562000581575081810a620005a8565b6200058d8383620004af565b8060001904821115620005a457620005a462000499565b0290505b92915050565b6000620005bf60ff841683620004f8565b9392505050565b8082028115828204841417620005a857620005a862000499565b80820180821115620005a857620005a862000499565b6000826200061457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200062c57600080fd5b81516001600160a01b0381168114620005bf57600080fd5b61222e80620006546000396000f3fe60806040526004361061024a5760003560e01c80637d1db4a511610139578063b2bdfa7b116100b6578063d78e139d1161007a578063d78e139d146106a9578063dd62ed3e146106c9578063e96fada21461070f578063f2fde38b1461072f578063f6a78e171461074f578063f887ea401461076457600080fd5b8063b2bdfa7b14610614578063b34ca11b14610634578063ccf8c03614610654578063cec10c1114610674578063d148b74c1461069457600080fd5b806391892476116100fd578063918924761461056657806395d89b41146105865780639acb773e146105b4578063a8aa1b31146105d4578063a9059cbb146105f457600080fd5b80637d1db4a5146104d6578063893d20e8146104ec5780638a4068dd1461051e5780638a8c523c146105335780638da5cb5b1461054857600080fd5b8063313ce567116101c757806370a082311161018b57806370a0823114610440578063715018a614610476578063728607ba1461048b57806377b54bad146104a057806378109e54146104c057600080fd5b8063313ce567146103ae5780634d07912a146103ca5780634e9f829d146103df5780635d83e1d5146103ff5780636ddd17131461041f57600080fd5b8063095ea7b31161020e578063095ea7b31461032e57806318160ddd1461034e5780631df4ccfc1461036357806323b872dd146103795780632b112e491461039957600080fd5b806304368f65146102565780630445b667146102785780630621472c146102a157806306fdde03146102d157806308fd3d051461030d57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b50610276610271366004611d75565b610784565b005b34801561028457600080fd5b5061028e60205481565b6040519081526020015b60405180910390f35b3480156102ad57600080fd5b506102c16102bc366004611dbd565b6107eb565b6040519015158152602001610298565b3480156102dd57600080fd5b5060408051808201909152600a815269434f434b424f58494e4760b01b60208201525b6040516102989190611dd8565b34801561031957600080fd5b50601f546102c190600160a01b900460ff1681565b34801561033a57600080fd5b506102c1610349366004611e26565b6107ff565b34801561035a57600080fd5b5060055461028e565b34801561036f57600080fd5b5061028e60115481565b34801561038557600080fd5b506102c1610394366004611e42565b61086b565b3480156103a557600080fd5b5061028e61092d565b3480156103ba57600080fd5b5060405160098152602001610298565b3480156103d657600080fd5b5061027661097f565b3480156103eb57600080fd5b506102766103fa366004611e7e565b610a2c565b34801561040b57600080fd5b5061027661041a366004611e7e565b610a84565b34801561042b57600080fd5b50601f546102c190600160a81b900460ff1681565b34801561044c57600080fd5b5061028e61045b366004611dbd565b6001600160a01b031660009081526008602052604090205490565b34801561048257600080fd5b50610276610adc565b34801561049757600080fd5b50610276610b50565b3480156104ac57600080fd5b506102c16104bb366004611e26565b610b8b565b3480156104cc57600080fd5b5061028e60075481565b3480156104e257600080fd5b5061028e60065481565b3480156104f857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610298565b34801561052a57600080fd5b50610276610c8b565b34801561053f57600080fd5b50610276610cd6565b34801561055457600080fd5b506000546001600160a01b0316610506565b34801561057257600080fd5b50610276610581366004611e97565b610d25565b34801561059257600080fd5b50604080518082019091526005815264434f434b5360d81b6020820152610300565b3480156105c057600080fd5b506102766105cf366004611eda565b610deb565b3480156105e057600080fd5b50601f54610506906001600160a01b031681565b34801561060057600080fd5b506102c161060f366004611e26565b610e40565b34801561062057600080fd5b50600054610506906001600160a01b031681565b34801561064057600080fd5b50601854610506906001600160a01b031681565b34801561066057600080fd5b5061027661066f366004611eda565b610e4d565b34801561068057600080fd5b5061027661068f366004611f11565b610eb5565b3480156106a057600080fd5b50610276610ef0565b3480156106b557600080fd5b506102766106c4366004611e7e565b610f24565b3480156106d557600080fd5b5061028e6106e4366004611f3d565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561071b57600080fd5b50601754610506906001600160a01b031681565b34801561073b57600080fd5b5061027661074a366004611dbd565b610f78565b34801561075b57600080fd5b50610276611062565b34801561077057600080fd5b50601d54610506906001600160a01b031681565b6000546001600160a01b031633146107b75760405162461bcd60e51b81526004016107ae90611f70565b60405180910390fd5b601f805460ff60a81b1916600160a81b841515021790556107da6009600a61209f565b6107e490826120ae565b6020555050565b60006107f9826000196107ff565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061085a9086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610918576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108f39184906110c6565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610923848484611100565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461097a906003546001600160a01b03166000908152600860205260409020546109749060055490611478565b90611478565b905090565b6000546001600160a01b031633146109a95760405162461bcd60e51b81526004016107ae90611f70565b6000600c8190556003600d819055600e8290556002600f8190556010839055829182916109d691906120c5565b6109e091906120c5565b6109ea91906120c5565b6109f491906120c5565b60115560646012819055601481905560135560006015556005546103e890610a1d9060026120ae565b610a2791906120d8565b602055565b6000546001600160a01b03163314610a565760405162461bcd60e51b81526004016107ae90611f70565b6001811015610a6457600080fd5b606481600554610a7491906120ae565b610a7e91906120d8565b60065550565b6000546001600160a01b03163314610aae5760405162461bcd60e51b81526004016107ae90611f70565b6001811015610abc57600080fd5b606481600554610acc91906120ae565b610ad691906120d8565b60075550565b6000546001600160a01b03163314610b065760405162461bcd60e51b81526004016107ae90611f70565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b7a5760405162461bcd60e51b81526004016107ae90611f70565b60c860148190556013819055601555565b336000908152600b602052604081205460ff16610ba757600080fd5b81600003610c1a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1791906120fa565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190612113565b336000908152600b602052604090205460ff16610ca757600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610cd3573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610d005760405162461bcd60e51b81526004016107ae90611f70565b601f805460ff60a01b1916600160a01b17905561019060148190556013819055601555565b6000546001600160a01b03163314610d4f5760405162461bcd60e51b81526004016107ae90611f70565b600c869055600f859055600d849055600e8390556010829055610d8082610d7a858188818c8c6114ba565b906114ba565b6011556012819055610d936005826120d8565b60115410610de35760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107ae565b505050505050565b6000546001600160a01b03163314610e155760405162461bcd60e51b81526004016107ae90611f70565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610926338484611100565b6000546001600160a01b03163314610e775760405162461bcd60e51b81526004016107ae90611f70565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610edf5760405162461bcd60e51b81526004016107ae90611f70565b601391909155601491909155601555565b6000546001600160a01b03163314610f1a5760405162461bcd60e51b81526004016107ae90611f70565b610f22611519565b565b60195447906001600160a01b03166108fc6064610f4185856120ae565b610f4b91906120d8565b6040518115909202916000818181858888f19350505050158015610f73573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610fa25760405162461bcd60e51b81526004016107ae90611f70565b6001600160a01b0381166110075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ae565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461108c5760405162461bcd60e51b81526004016107ae90611f70565b6110986009600a61209f565b6110a590629896806120ae565b6007556110b46009600a61209f565b6110c190629896806120ae565b600655565b600081848411156110ea5760405162461bcd60e51b81526004016107ae9190611dd8565b5060006110f78486612130565b95945050505050565b60215460009060ff161561112057611119848484611976565b9050610926565b6001600160a01b03841660009081526001602052604090205460ff1615801561116257506001600160a01b03831660009081526001602052604090205460ff16155b156111b757601f54600160a01b900460ff166111b75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107ae565b6001600160a01b03841660009081526001602052604090205460ff161580156111e957506001600160a01b0383163014155b801561120357506003546001600160a01b03848116911614155b801561121d5750601f546001600160a01b03848116911614155b80156112375750601a546001600160a01b03848116911614155b801561125157506017546001600160a01b03848116911614155b801561127657506001600160a01b0383166000908152600b602052604090205460ff16155b15611317576001600160a01b0383166000908152600860205260409020546007546112a184836120c5565b11156113155760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107ae565b505b6113218483611a5c565b611329611ac9565b1561133657611336611519565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546113889184906110c6565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806113d557506001600160a01b0384166000908152600a602052604090205460ff165b6113e9576113e4858486611b21565b6113eb565b825b6001600160a01b03851660009081526008602052604090205490915061141190826114ba565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114659085815260200190565b60405180910390a3506001949350505050565b600061092683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110c6565b6000806114c783856120c5565b9050838110156109265760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ae565b6021805460ff19166001179055601b54601c5460009161153891611c22565b61154457600c54611547565b60005b90506000611571600261156b60115461156b86602054611c3690919063ffffffff16565b90611cb8565b9050600061158a8260205461147890919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115c4576115c4612143565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106115f5576115f5612143565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac9479061163f908690600090879030904290600401612159565b600060405180830381600087803b15801561165957600080fd5b505af115801561166d573d6000803e3d6000fd5b505050506000611686824761147890919063ffffffff16565b905060006116a1611698886002611cb8565b60115490611478565b905060006116b6600261156b8481878d611c36565b905060006116d38361156b600d5487611c3690919063ffffffff16565b905060006116f08461156b600f5488611c3690919063ffffffff16565b9050600061170d8561156b600e5489611c3690919063ffffffff16565b9050600061172a8661156b6010548a611c3690919063ffffffff16565b6017546040519192506000916001600160a01b039091169086908381818185875af1925050503d806000811461177c576040519150601f19603f3d011682016040523d82523d6000602084013e611781565b606091505b50506018546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146117d1576040519150601f19603f3d011682016040523d82523d6000602084013e6117d6565b606091505b50506019546040519192506001600160a01b0316908590600081818185875af1925050503d8060008114611826576040519150601f19603f3d011682016040523d82523d6000602084013e61182b565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461187b576040519150601f19603f3d011682016040523d82523d6000602084013e611880565b606091505b50909150508b1561195d57601d5460165460405163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990889060c40160606040518083038185885af11580156118fb573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061192091906121ca565b505060408051888152602081018f90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff191690555050505050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546119c79184906110c6565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119f690836114ba565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a4a9086815260200190565b60405180910390a35060019392505050565b60065481111580611a8557506001600160a01b0382166000908152600b602052604090205460ff165b611ac55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107ae565b5050565b601f546000906001600160a01b03163314801590611aea575060215460ff16155b8015611aff5750601f54600160a81b900460ff165b801561097a575050602080543060009081526008909252604090912054101590565b601554601f54600091906001600160a01b0390811690841603611b475750601354611b62565b601f546001600160a01b0390811690861603611b6257506014545b6000611b956012546064611b7691906120ae565b61156b84611b8f6011548a611c3690919063ffffffff16565b90611c36565b306000908152600860205260409020549091508190611bb490826114ba565b30600081815260086020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c059085815260200190565b60405180910390a3611c178683611478565b979650505050505050565b600082611c2e83611cfa565b119392505050565b600082600003611c48575060006107f9565b6000611c5483856120ae565b905082611c6185836120d8565b146109265760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ae565b600061092683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d39565b60006107f9611d0761092d565b601f546001600160a01b031660009081526008602052604090205461156b90611d3290600290611b8f565b8590611c36565b60008183611d5a5760405162461bcd60e51b81526004016107ae9190611dd8565b5060006110f784866120d8565b8015158114610cd357600080fd5b60008060408385031215611d8857600080fd5b8235611d9381611d67565b946020939093013593505050565b80356001600160a01b0381168114611db857600080fd5b919050565b600060208284031215611dcf57600080fd5b61092682611da1565b600060208083528351808285015260005b81811015611e0557858101830151858201604001528201611de9565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611e3957600080fd5b611d9383611da1565b600080600060608486031215611e5757600080fd5b611e6084611da1565b9250611e6e60208501611da1565b9150604084013590509250925092565b600060208284031215611e9057600080fd5b5035919050565b60008060008060008060c08789031215611eb057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611eed57600080fd5b611ef683611da1565b91506020830135611f0681611d67565b809150509250929050565b600080600060608486031215611f2657600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611f5057600080fd5b611f5983611da1565b9150611f6760208401611da1565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ff6578160001904821115611fdc57611fdc611fa5565b80851615611fe957918102915b93841c9390800290611fc0565b509250929050565b60008261200d575060016107f9565b8161201a575060006107f9565b8160018114612030576002811461203a57612056565b60019150506107f9565b60ff84111561204b5761204b611fa5565b50506001821b6107f9565b5060208310610133831016604e8410600b8410161715612079575081810a6107f9565b6120838383611fbb565b806000190482111561209757612097611fa5565b029392505050565b600061092660ff841683611ffe565b80820281158282048414176107f9576107f9611fa5565b808201808211156107f9576107f9611fa5565b6000826120f557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561210c57600080fd5b5051919050565b60006020828403121561212557600080fd5b815161092681611d67565b818103818111156107f9576107f9611fa5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121a95784516001600160a01b031683529383019391830191600101612184565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156121df57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220cbd55efcfd5dbd4ebe996e186a11fa3eacf36ab5d1ed715466279e99a7fb014064736f6c63430008110033
Deployed Bytecode
0x60806040526004361061024a5760003560e01c80637d1db4a511610139578063b2bdfa7b116100b6578063d78e139d1161007a578063d78e139d146106a9578063dd62ed3e146106c9578063e96fada21461070f578063f2fde38b1461072f578063f6a78e171461074f578063f887ea401461076457600080fd5b8063b2bdfa7b14610614578063b34ca11b14610634578063ccf8c03614610654578063cec10c1114610674578063d148b74c1461069457600080fd5b806391892476116100fd578063918924761461056657806395d89b41146105865780639acb773e146105b4578063a8aa1b31146105d4578063a9059cbb146105f457600080fd5b80637d1db4a5146104d6578063893d20e8146104ec5780638a4068dd1461051e5780638a8c523c146105335780638da5cb5b1461054857600080fd5b8063313ce567116101c757806370a082311161018b57806370a0823114610440578063715018a614610476578063728607ba1461048b57806377b54bad146104a057806378109e54146104c057600080fd5b8063313ce567146103ae5780634d07912a146103ca5780634e9f829d146103df5780635d83e1d5146103ff5780636ddd17131461041f57600080fd5b8063095ea7b31161020e578063095ea7b31461032e57806318160ddd1461034e5780631df4ccfc1461036357806323b872dd146103795780632b112e491461039957600080fd5b806304368f65146102565780630445b667146102785780630621472c146102a157806306fdde03146102d157806308fd3d051461030d57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b50610276610271366004611d75565b610784565b005b34801561028457600080fd5b5061028e60205481565b6040519081526020015b60405180910390f35b3480156102ad57600080fd5b506102c16102bc366004611dbd565b6107eb565b6040519015158152602001610298565b3480156102dd57600080fd5b5060408051808201909152600a815269434f434b424f58494e4760b01b60208201525b6040516102989190611dd8565b34801561031957600080fd5b50601f546102c190600160a01b900460ff1681565b34801561033a57600080fd5b506102c1610349366004611e26565b6107ff565b34801561035a57600080fd5b5060055461028e565b34801561036f57600080fd5b5061028e60115481565b34801561038557600080fd5b506102c1610394366004611e42565b61086b565b3480156103a557600080fd5b5061028e61092d565b3480156103ba57600080fd5b5060405160098152602001610298565b3480156103d657600080fd5b5061027661097f565b3480156103eb57600080fd5b506102766103fa366004611e7e565b610a2c565b34801561040b57600080fd5b5061027661041a366004611e7e565b610a84565b34801561042b57600080fd5b50601f546102c190600160a81b900460ff1681565b34801561044c57600080fd5b5061028e61045b366004611dbd565b6001600160a01b031660009081526008602052604090205490565b34801561048257600080fd5b50610276610adc565b34801561049757600080fd5b50610276610b50565b3480156104ac57600080fd5b506102c16104bb366004611e26565b610b8b565b3480156104cc57600080fd5b5061028e60075481565b3480156104e257600080fd5b5061028e60065481565b3480156104f857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610298565b34801561052a57600080fd5b50610276610c8b565b34801561053f57600080fd5b50610276610cd6565b34801561055457600080fd5b506000546001600160a01b0316610506565b34801561057257600080fd5b50610276610581366004611e97565b610d25565b34801561059257600080fd5b50604080518082019091526005815264434f434b5360d81b6020820152610300565b3480156105c057600080fd5b506102766105cf366004611eda565b610deb565b3480156105e057600080fd5b50601f54610506906001600160a01b031681565b34801561060057600080fd5b506102c161060f366004611e26565b610e40565b34801561062057600080fd5b50600054610506906001600160a01b031681565b34801561064057600080fd5b50601854610506906001600160a01b031681565b34801561066057600080fd5b5061027661066f366004611eda565b610e4d565b34801561068057600080fd5b5061027661068f366004611f11565b610eb5565b3480156106a057600080fd5b50610276610ef0565b3480156106b557600080fd5b506102766106c4366004611e7e565b610f24565b3480156106d557600080fd5b5061028e6106e4366004611f3d565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561071b57600080fd5b50601754610506906001600160a01b031681565b34801561073b57600080fd5b5061027661074a366004611dbd565b610f78565b34801561075b57600080fd5b50610276611062565b34801561077057600080fd5b50601d54610506906001600160a01b031681565b6000546001600160a01b031633146107b75760405162461bcd60e51b81526004016107ae90611f70565b60405180910390fd5b601f805460ff60a81b1916600160a81b841515021790556107da6009600a61209f565b6107e490826120ae565b6020555050565b60006107f9826000196107ff565b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061085a9086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610918576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526009825283812033825290915291909120546108f39184906110c6565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610923848484611100565b90505b9392505050565b6004546001600160a01b031660009081526008602052604081205461097a906003546001600160a01b03166000908152600860205260409020546109749060055490611478565b90611478565b905090565b6000546001600160a01b031633146109a95760405162461bcd60e51b81526004016107ae90611f70565b6000600c8190556003600d819055600e8290556002600f8190556010839055829182916109d691906120c5565b6109e091906120c5565b6109ea91906120c5565b6109f491906120c5565b60115560646012819055601481905560135560006015556005546103e890610a1d9060026120ae565b610a2791906120d8565b602055565b6000546001600160a01b03163314610a565760405162461bcd60e51b81526004016107ae90611f70565b6001811015610a6457600080fd5b606481600554610a7491906120ae565b610a7e91906120d8565b60065550565b6000546001600160a01b03163314610aae5760405162461bcd60e51b81526004016107ae90611f70565b6001811015610abc57600080fd5b606481600554610acc91906120ae565b610ad691906120d8565b60075550565b6000546001600160a01b03163314610b065760405162461bcd60e51b81526004016107ae90611f70565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b7a5760405162461bcd60e51b81526004016107ae90611f70565b60c860148190556013819055601555565b336000908152600b602052604081205460ff16610ba757600080fd5b81600003610c1a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1791906120fa565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190612113565b336000908152600b602052604090205460ff16610ca757600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610cd3573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610d005760405162461bcd60e51b81526004016107ae90611f70565b601f805460ff60a01b1916600160a01b17905561019060148190556013819055601555565b6000546001600160a01b03163314610d4f5760405162461bcd60e51b81526004016107ae90611f70565b600c869055600f859055600d849055600e8390556010829055610d8082610d7a858188818c8c6114ba565b906114ba565b6011556012819055610d936005826120d8565b60115410610de35760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e2032302500000060448201526064016107ae565b505050505050565b6000546001600160a01b03163314610e155760405162461bcd60e51b81526004016107ae90611f70565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610926338484611100565b6000546001600160a01b03163314610e775760405162461bcd60e51b81526004016107ae90611f70565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610edf5760405162461bcd60e51b81526004016107ae90611f70565b601391909155601491909155601555565b6000546001600160a01b03163314610f1a5760405162461bcd60e51b81526004016107ae90611f70565b610f22611519565b565b60195447906001600160a01b03166108fc6064610f4185856120ae565b610f4b91906120d8565b6040518115909202916000818181858888f19350505050158015610f73573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610fa25760405162461bcd60e51b81526004016107ae90611f70565b6001600160a01b0381166110075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ae565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461108c5760405162461bcd60e51b81526004016107ae90611f70565b6110986009600a61209f565b6110a590629896806120ae565b6007556110b46009600a61209f565b6110c190629896806120ae565b600655565b600081848411156110ea5760405162461bcd60e51b81526004016107ae9190611dd8565b5060006110f78486612130565b95945050505050565b60215460009060ff161561112057611119848484611976565b9050610926565b6001600160a01b03841660009081526001602052604090205460ff1615801561116257506001600160a01b03831660009081526001602052604090205460ff16155b156111b757601f54600160a01b900460ff166111b75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107ae565b6001600160a01b03841660009081526001602052604090205460ff161580156111e957506001600160a01b0383163014155b801561120357506003546001600160a01b03848116911614155b801561121d5750601f546001600160a01b03848116911614155b80156112375750601a546001600160a01b03848116911614155b801561125157506017546001600160a01b03848116911614155b801561127657506001600160a01b0383166000908152600b602052604090205460ff16155b15611317576001600160a01b0383166000908152600860205260409020546007546112a184836120c5565b11156113155760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016107ae565b505b6113218483611a5c565b611329611ac9565b1561133657611336611519565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546113889184906110c6565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806113d557506001600160a01b0384166000908152600a602052604090205460ff165b6113e9576113e4858486611b21565b6113eb565b825b6001600160a01b03851660009081526008602052604090205490915061141190826114ba565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114659085815260200190565b60405180910390a3506001949350505050565b600061092683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110c6565b6000806114c783856120c5565b9050838110156109265760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ae565b6021805460ff19166001179055601b54601c5460009161153891611c22565b61154457600c54611547565b60005b90506000611571600261156b60115461156b86602054611c3690919063ffffffff16565b90611cb8565b9050600061158a8260205461147890919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115c4576115c4612143565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106115f5576115f5612143565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac9479061163f908690600090879030904290600401612159565b600060405180830381600087803b15801561165957600080fd5b505af115801561166d573d6000803e3d6000fd5b505050506000611686824761147890919063ffffffff16565b905060006116a1611698886002611cb8565b60115490611478565b905060006116b6600261156b8481878d611c36565b905060006116d38361156b600d5487611c3690919063ffffffff16565b905060006116f08461156b600f5488611c3690919063ffffffff16565b9050600061170d8561156b600e5489611c3690919063ffffffff16565b9050600061172a8661156b6010548a611c3690919063ffffffff16565b6017546040519192506000916001600160a01b039091169086908381818185875af1925050503d806000811461177c576040519150601f19603f3d011682016040523d82523d6000602084013e611781565b606091505b50506018546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146117d1576040519150601f19603f3d011682016040523d82523d6000602084013e6117d6565b606091505b50506019546040519192506001600160a01b0316908590600081818185875af1925050503d8060008114611826576040519150601f19603f3d011682016040523d82523d6000602084013e61182b565b606091505b5050601a546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461187b576040519150601f19603f3d011682016040523d82523d6000602084013e611880565b606091505b50909150508b1561195d57601d5460165460405163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990889060c40160606040518083038185885af11580156118fb573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061192091906121ca565b505060408051888152602081018f90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff191690555050505050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546119c79184906110c6565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119f690836114ba565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a4a9086815260200190565b60405180910390a35060019392505050565b60065481111580611a8557506001600160a01b0382166000908152600b602052604090205460ff165b611ac55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107ae565b5050565b601f546000906001600160a01b03163314801590611aea575060215460ff16155b8015611aff5750601f54600160a81b900460ff165b801561097a575050602080543060009081526008909252604090912054101590565b601554601f54600091906001600160a01b0390811690841603611b475750601354611b62565b601f546001600160a01b0390811690861603611b6257506014545b6000611b956012546064611b7691906120ae565b61156b84611b8f6011548a611c3690919063ffffffff16565b90611c36565b306000908152600860205260409020549091508190611bb490826114ba565b30600081815260086020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c059085815260200190565b60405180910390a3611c178683611478565b979650505050505050565b600082611c2e83611cfa565b119392505050565b600082600003611c48575060006107f9565b6000611c5483856120ae565b905082611c6185836120d8565b146109265760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ae565b600061092683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d39565b60006107f9611d0761092d565b601f546001600160a01b031660009081526008602052604090205461156b90611d3290600290611b8f565b8590611c36565b60008183611d5a5760405162461bcd60e51b81526004016107ae9190611dd8565b5060006110f784866120d8565b8015158114610cd357600080fd5b60008060408385031215611d8857600080fd5b8235611d9381611d67565b946020939093013593505050565b80356001600160a01b0381168114611db857600080fd5b919050565b600060208284031215611dcf57600080fd5b61092682611da1565b600060208083528351808285015260005b81811015611e0557858101830151858201604001528201611de9565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611e3957600080fd5b611d9383611da1565b600080600060608486031215611e5757600080fd5b611e6084611da1565b9250611e6e60208501611da1565b9150604084013590509250925092565b600060208284031215611e9057600080fd5b5035919050565b60008060008060008060c08789031215611eb057600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060408385031215611eed57600080fd5b611ef683611da1565b91506020830135611f0681611d67565b809150509250929050565b600080600060608486031215611f2657600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611f5057600080fd5b611f5983611da1565b9150611f6760208401611da1565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ff6578160001904821115611fdc57611fdc611fa5565b80851615611fe957918102915b93841c9390800290611fc0565b509250929050565b60008261200d575060016107f9565b8161201a575060006107f9565b8160018114612030576002811461203a57612056565b60019150506107f9565b60ff84111561204b5761204b611fa5565b50506001821b6107f9565b5060208310610133831016604e8410600b8410161715612079575081810a6107f9565b6120838383611fbb565b806000190482111561209757612097611fa5565b029392505050565b600061092660ff841683611ffe565b80820281158282048414176107f9576107f9611fa5565b808201808211156107f9576107f9611fa5565b6000826120f557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561210c57600080fd5b5051919050565b60006020828403121561212557600080fd5b815161092681611d67565b818103818111156107f9576107f9611fa5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121a95784516001600160a01b031683529383019391830191600101612184565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156121df57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220cbd55efcfd5dbd4ebe996e186a11fa3eacf36ab5d1ed715466279e99a7fb014064736f6c63430008110033
Deployed Bytecode Sourcemap
5160:13283:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17710:176;;;;;;;;;;-1:-1:-1;17710:176:0;;;;;:::i;:::-;;:::i;:::-;;6865:58;;;;;;;;;;;;;;;;;;;597:25:1;;;585:2;570:18;6865:58:0;;;;;;;;9146:122;;;;;;;;;;-1:-1:-1;9146:122:0;;;;;:::i;:::-;;:::i;:::-;;;1167:14:1;;1160:22;1142:41;;1130:2;1115:18;9146:122:0;1002:187:1;8500:80:0;;;;;;;;;;-1:-1:-1;8572:5:0;;;;;;;;;;;;-1:-1:-1;;;8572:5:0;;;;8500:80;;;;;;;:::i;6784:31::-;;;;;;;;;;-1:-1:-1;6784:31:0;;;;-1:-1:-1;;;6784:31:0;;;;;;8922:216;;;;;;;;;;-1:-1:-1;8922:216:0;;;;;:::i;:::-;;:::i;8230:88::-;;;;;;;;;;-1:-1:-1;8303:12:0;;8230:88;;6128:98;;;;;;;;;;;;;;;;9440:370;;;;;;;;;;-1:-1:-1;9440:370:0;;;;;:::i;:::-;;:::i;17898:142::-;;;;;;;;;;;;;:::i;8324:80::-;;;;;;;;;;-1:-1:-1;8324:80:0;;5498:1;2481:36:1;;2469:2;2454:18;8324:80:0;2339:184:1;14454:466:0;;;;;;;;;;;;;:::i;13064:176::-;;;;;;;;;;-1:-1:-1;13064:176:0;;;;;:::i;:::-;;:::i;12867:189::-;;;;;;;;;;-1:-1:-1;12867:189:0;;;;;:::i;:::-;;:::i;6828:30::-;;;;;;;;;;-1:-1:-1;6828:30:0;;;;-1:-1:-1;;;6828:30:0;;;;;;8670:105;;;;;;;;;;-1:-1:-1;8670:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8754:18:0;8736:7;8754:18;;;:9;:18;;;;;;;8670:105;3217:148;;;;;;;;;;;;;:::i;14281:165::-;;;;;;;;;;;;;:::i;13583:308::-;;;;;;;;;;-1:-1:-1;13583:308:0;;;;;:::i;:::-;;:::i;5640:60::-;;;;;;;;;;;;;;;;5576:57;;;;;;;;;;;;;;;;8586:78;;;;;;;;;;-1:-1:-1;8638:7:0;3068:6;-1:-1:-1;;;;;3068:6:0;8586:78;;;-1:-1:-1;;;;;2877:32:1;;;2859:51;;2847:2;2832:18;8586:78:0;2713:203:1;13426:147:0;;;;;;;;;;;;;:::i;14098:175::-;;;;;;;;;;;;;:::i;3003:79::-;;;;;;;;;;-1:-1:-1;3041:7:0;3068:6;-1:-1:-1;;;;;3068:6:0;3003:79;;17107:595;;;;;;;;;;-1:-1:-1;17107:595:0;;;;;:::i;:::-;;:::i;8410:84::-;;;;;;;;;;-1:-1:-1;8484:7:0;;;;;;;;;;;;-1:-1:-1;;;8484:7:0;;;;8410:84;;16979:120;;;;;;;;;;-1:-1:-1;16979:120:0;;;;;:::i;:::-;;:::i;6752:19::-;;;;;;;;;;-1:-1:-1;6752:19:0;;;;-1:-1:-1;;;;;6752:19:0;;;9276:156;;;;;;;;;;-1:-1:-1;9276:156:0;;;;;:::i;:::-;;:::i;2623:21::-;;;;;;;;;;-1:-1:-1;2623:21:0;;;;-1:-1:-1;;;;;2623:21:0;;;6476:35;;;;;;;;;;-1:-1:-1;6476:35:0;;;;-1:-1:-1;;;;;6476:35:0;;;16814:157;;;;;;;;;;-1:-1:-1;16814:157:0;;;;;:::i;:::-;;:::i;13899:191::-;;;;;;;;;;-1:-1:-1;13899:191:0;;;;;:::i;:::-;;:::i;12788:71::-;;;;;;;;;;;;;:::i;12582:197::-;;;;;;;;;;-1:-1:-1;12582:197:0;;;;;:::i;:::-;;:::i;8781:133::-;;;;;;;;;;-1:-1:-1;8781:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8883:19:0;;;8865:7;8883:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8781:133;6434:35;;;;;;;;;;-1:-1:-1;6434:35:0;;;;-1:-1:-1;;;;;6434:35:0;;;3373:244;;;;;;;;;;-1:-1:-1;3373:244:0;;;;;:::i;:::-;;:::i;13248:170::-;;;;;;;;;;;;;:::i;6682:24::-;;;;;;;;;;-1:-1:-1;6682:24:0;;;;-1:-1:-1;;;;;6682:24:0;;;17710:176;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;;;;;;;;;17802:11:::1;:22:::0;;-1:-1:-1;;;;17802:22:0::1;-1:-1:-1::0;;;17802:22:0;::::1;;;;::::0;;17862:15:::1;5498:1;17862:2;:15;:::i;:::-;17851:27;::::0;:7;:27:::1;:::i;:::-;17835:13;:43:::0;-1:-1:-1;;17710:176:0:o;9146:122::-;9201:4;9225:35;9233:7;-1:-1:-1;;9225:7:0;:35::i;:::-;9218:42;9146:122;-1:-1:-1;;9146:122:0:o;8922:216::-;9026:10;8997:4;9014:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9014:32:0;;;;;;;;;;:41;;;9071:37;8997:4;;9014:32;;9071:37;;;;9049:6;597:25:1;;585:2;570:18;;451:177;9071:37:0;;;;;;;;-1:-1:-1;9126:4:0;8922:216;;;;:::o;9440:370::-;-1:-1:-1;;;;;9560:19:0;;9540:4;9560:19;;;:11;:19;;;;;;;;9580:10;9560:31;;;;;;;;-1:-1:-1;;9560:52:0;9557:186;;9662:69;;;;;;;;;;;-1:-1:-1;;;9662:69:0;;;;;;;;-1:-1:-1;;;;;9662:19:0;;-1:-1:-1;9662:19:0;;;:11;:19;;;;;9682:10;9662:31;;;;;;;;;;:69;;9698:6;;9662:35;:69::i;:::-;-1:-1:-1;;;;;9628:19:0;;;;;;:11;:19;;;;;;;;9648:10;9628:31;;;;;;;:103;9557:186;9762:40;9776:6;9784:9;9795:6;9762:13;:40::i;:::-;9755:47;;9440:370;;;;;;:::o;17898:142::-;18026:4;;-1:-1:-1;;;;;18026:4:0;17951:7;8754:18;;;:9;:18;;;;;;17978:54;;18005:4;;-1:-1:-1;;;;;18005:4:0;8736:7;8754:18;;;:9;:18;;;;;;17978:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17971:61;;17898:142;:::o;14454:466::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;14521:1:::1;14503:12;:19:::0;;;14551:1:::1;14533:12;:19:::0;;;14563:12:::1;:19:::0;;;14611:1:::1;14593:6;:19:::0;;;14623:10:::1;:19:::0;;;14521:1;;;;14671:21:::1;::::0;14551:1;14671:21:::1;:::i;:::-;:36;;;;:::i;:::-;:51;;;;:::i;:::-;:64;;;;:::i;:::-;14653:8;:82:::0;14764:3:::1;14746:14;:21:::0;;;14778:13:::1;:19:::0;;;14808:14:::1;:20:::0;-1:-1:-1;14839:18:0::1;:22:::0;14888:12:::1;::::0;14907:4:::1;::::0;14888:16:::1;::::0;14903:1:::1;14888:16;:::i;:::-;:23;;;;:::i;:::-;14872:13;:39:::0;14454:466::o;13064:176::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;13159:1:::1;13143:12;:17;;13135:26;;;::::0;::::1;;13221:3;13204:12;13189;;:27;;;;:::i;:::-;13188:36;;;;:::i;:::-;13173:12;:51:::0;-1:-1:-1;13064:176:0:o;12867:189::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;12970:1:::1;12952:14;:19;;12944:28;;;::::0;::::1;;13037:3;13018:14;13003:12;;:29;;;;:::i;:::-;13002:38;;;;:::i;:::-;12984:15;:56:::0;-1:-1:-1;12867:189:0:o;3217:148::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;3324:1:::1;3308:6:::0;;3287:40:::1;::::0;-1:-1:-1;;;;;3308:6:0;;::::1;::::0;3287:40:::1;::::0;3324:1;;3287:40:::1;3355:1;3338:19:::0;;-1:-1:-1;;;;;;3338:19:0::1;::::0;;3217:148::o;14281:165::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;14348:3:::1;14332:13;:19:::0;;;14362:14:::1;:20:::0;;;14393:18:::1;:24:::0;14281:165::o;13583:308::-;13703:10;13662:4;13687:27;;;:15;:27;;;;;;;;13679:36;;;;;;13726:6;13736:1;13726:11;13723:95;;13762:44;;-1:-1:-1;;;13762:44:0;;13800:4;13762:44;;;2859:51:1;-1:-1:-1;;;;;13762:29:0;;;;;2832:18:1;;13762:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13753:53;;13723:95;13835:48;;-1:-1:-1;;;13835:48:0;;13864:10;13835:48;;;7345:51:1;7412:18;;;7405:34;;;-1:-1:-1;;;;;13835:28:0;;;;;7318:18:1;;13835:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13426:147::-;13491:10;13475:27;;;;:15;:27;;;;;;;;13467:36;;;;;;13514:51;;13522:10;;13543:21;13514:51;;;;;;;;;13543:21;13522:10;13514:51;;;;;;;;;;;;;;;;;;;;;13426:147::o;14098:175::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;14151:11:::1;:18:::0;;-1:-1:-1;;;;14151:18:0::1;-1:-1:-1::0;;;14151:18:0::1;::::0;;14196:3:::1;14151:11;14180:19:::0;;;14210:14:::1;:20:::0;;;14241:18:::1;:24:::0;14098:175::o;17107:595::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;17297:12:::1;:28:::0;;;17336:6:::1;:16:::0;;;17363:12:::1;:28:::0;;;17402:12:::1;:28:::0;;;17441:10:::1;:24:::0;;;17487:81:::1;17454:11:::0;17487:64:::1;17417:13:::0;17487:64;17378:13;17487:64;17312:13;17345:7;17487:17:::1;:26::i;:::-;:30:::0;::::1;:45::i;:81::-;17476:8;:92:::0;17579:14:::1;:32:::0;;;17641:18:::1;17658:1;17596:15:::0;17641:18:::1;:::i;:::-;17630:8;;:29;17622:71;;;::::0;-1:-1:-1;;;17622:71:0;;7902:2:1;17622:71:0::1;::::0;::::1;7884:21:1::0;7941:2;7921:18;;;7914:30;7980:31;7960:18;;;7953:59;8029:18;;17622:71:0::1;7700:353:1::0;17622:71:0::1;17107:595:::0;;;;;;:::o;16979:120::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17059:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17059:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16979:120::o;9276:156::-;9356:4;9380:44;9394:10;9406:9;9417:6;9380:13;:44::i;16814:157::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16892:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;16892:28:0;;::::1;::::0;::::1;::::0;;;16931:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;16814:157::o;13899:191::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;13991:14:::1;:22:::0;;;;14024:13:::1;:20:::0;;;;14055:18:::1;:27:::0;13899:191::o;12788:71::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;12841:10:::1;:8;:10::i;:::-;12788:71::o:0;12582:197::-;12711:14;;12671:21;;-1:-1:-1;;;;;12711:14:0;12703:68;12767:3;12736:28;12748:16;12671:21;12736:28;:::i;:::-;:34;;;;:::i;:::-;12703:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12640:139;12582:197;:::o;3373:244::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3462:22:0;::::1;3454:73;;;::::0;-1:-1:-1;;;3454:73:0;;8260:2:1;3454:73:0::1;::::0;::::1;8242:21:1::0;8299:2;8279:18;;;8272:30;8338:34;8318:18;;;8311:62;-1:-1:-1;;;8389:18:1;;;8382:36;8435:19;;3454:73:0::1;8058:402:1::0;3454:73:0::1;3564:6;::::0;;3543:38:::1;::::0;-1:-1:-1;;;;;3543:38:0;;::::1;::::0;3564:6;::::1;::::0;3543:38:::1;::::0;::::1;3592:6;:17:::0;;-1:-1:-1;;;;;;3592:17:0::1;-1:-1:-1::0;;;;;3592:17:0;;;::::1;::::0;;;::::1;::::0;;3373:244::o;13248:170::-;3130:6;;-1:-1:-1;;;;;3130:6:0;2440:10;3130:22;3122:67;;;;-1:-1:-1;;;3122:67:0;;;;;;;:::i;:::-;13338:15:::1;5498:1;13338:2;:15;:::i;:::-;13324:30;::::0;:10:::1;:30;:::i;:::-;13306:15;:48:::0;13394:15:::1;5498:1;13394:2;:15;:::i;:::-;13380:30;::::0;:10:::1;:30;:::i;:::-;13365:12;:45:::0;13248:170::o;604:192::-;690:7;726:12;718:6;;;;710:29;;;;-1:-1:-1;;;710:29:0;;;;;;;;:::i;:::-;-1:-1:-1;750:9:0;762:5;766:1;762;:5;:::i;:::-;750:17;604:192;-1:-1:-1;;;;;604:192:0:o;9818:1240::-;9930:6;;9910:4;;9930:6;;9927:63;;;9946:41;9961:6;9969:9;9980:6;9946:14;:41::i;:::-;9939:48;;;;9927:63;-1:-1:-1;;;;;10006:22:0;;;;;;:14;:22;;;;;;;;10005:23;:53;;;;-1:-1:-1;;;;;;10033:25:0;;;;;;:14;:25;;;;;;;;10032:26;10005:53;10002:140;;;10082:11;;-1:-1:-1;;;10082:11:0;;;;10074:43;;;;-1:-1:-1;;;10074:43:0;;8800:2:1;10074:43:0;;;8782:21:1;8839:2;8819:18;;;8812:30;-1:-1:-1;;;8858:18:1;;;8851:50;8918:18;;10074:43:0;8598:344:1;10074:43:0;-1:-1:-1;;;;;10176:22:0;;;;;;:14;:22;;;;;;;;10175:23;:53;;;;-1:-1:-1;;;;;;10202:26:0;;10223:4;10202:26;;10175:53;:84;;;;-1:-1:-1;10254:4:0;;-1:-1:-1;;;;;10233:26:0;;;10254:4;;10233:26;;10175:84;:105;;;;-1:-1:-1;10276:4:0;;-1:-1:-1;;;;;10263:17:0;;;10276:4;;10263:17;;10175:105;:140;;;;-1:-1:-1;10297:18:0;;-1:-1:-1;;;;;10284:31:0;;;10297:18;;10284:31;;10175:140;:177;;;;-1:-1:-1;10332:20:0;;-1:-1:-1;;;;;10319:33:0;;;10332:20;;10319:33;;10175:177;:208;;;;-1:-1:-1;;;;;;10357:26:0;;;;;;:15;:26;;;;;;;;10356:27;10175:208;10171:400;;;-1:-1:-1;;;;;8754:18:0;;10399;8754;;;:9;:18;;;;;;10488:15;;10464:19;10477:6;8754:18;10464:19;:::i;:::-;10463:40;;10455:114;;;;-1:-1:-1;;;10455:114:0;;9149:2:1;10455:114:0;;;9131:21:1;9188:2;9168:18;;;9161:30;9227:34;9207:18;;;9200:62;9298:32;9278:18;;;9271:60;9348:19;;10455:114:0;8947:426:1;10455:114:0;10384:187;10171:400;10592:28;10605:6;10613;10592:12;:28::i;:::-;10637:16;:14;:16::i;:::-;10634:35;;;10656:10;:8;:10::i;:::-;10709:53;;;;;;;;;;;-1:-1:-1;;;10709:53:0;;;;;;;;-1:-1:-1;;;;;10709:17:0;;-1:-1:-1;10709:17:0;;;:9;:17;;;;;;;;:53;;10731:6;;10709:21;:53::i;:::-;-1:-1:-1;;;;;10689:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10801:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10824:22:0;;;;;;:11;:22;;;;;;;;10801:45;10800:93;;10859:34;10867:6;10875;10883:9;10859:7;:34::i;:::-;10800:93;;;10850:6;10800:93;-1:-1:-1;;;;;10927:20:0;;;;;;:9;:20;;;;;;10775:118;;-1:-1:-1;10927:40:0;;10775:118;10927:24;:40::i;:::-;-1:-1:-1;;;;;10904:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10985:43;;;;;;;;;;11013:14;597:25:1;;585:2;570:18;;451:177;10985:43:0;;;;;;;;-1:-1:-1;11046:4:0;;9818:1240;-1:-1:-1;;;;9818:1240:0:o;462:136::-;520:7;547:43;551:1;554;547:43;;;;;;;;;;;;;;;;;:3;:43::i;275:181::-;333:7;;365:5;369:1;365;:5;:::i;:::-;353:17;;394:1;389;:6;;381:46;;;;-1:-1:-1;;;381:46:0;;9580:2:1;381:46:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:29;9638:18;;;9631:57;9705:18;;381:46:0;9378:351:1;14936:1868:0;6971:6;:13;;-1:-1:-1;;6971:13:0;6980:4;6971:13;;;15027:15:::1;::::0;15044:26:::1;::::0;6971:6;;15011:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15078:12;;15011:79;;;15074:1;15011:79;14981:109;;15097:23;15123:59;15180:1;15123:52;15166:8;;15123:38;15141:19;15123:13;;:17;;:38;;;;:::i;:::-;:42:::0;::::1;:52::i;:59::-;15097:85;;15189:20;15212:34;15230:15;15212:13;;:17;;:34;;;;:::i;:::-;15279:16;::::0;;15293:1:::1;15279:16:::0;;;;;::::1;::::0;;15189:57;;-1:-1:-1;15255:21:0::1;::::0;15279:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15279:16:0::1;15255:40;;15320:4;15302;15307:1;15302:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15302:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15342:4:::1;::::0;15332:7;;15342:4;::::1;::::0;15332;;15342;;15332:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15332:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15409:6:::1;::::0;:164:::1;::::0;-1:-1:-1;;;15409:164:0;;15379:21:::1;::::0;15409:6;;;::::1;::::0;:57:::1;::::0;:164:::1;::::0;15477:12;;15355:21:::1;::::0;15512:4;;15535::::1;::::0;15551:15:::1;::::0;15409:164:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15582:17;15602:40;15628:13;15602:21;:25;;:40;;;;:::i;:::-;15582:60:::0;-1:-1:-1;15651:19:0::1;15673:40;15686:26;:19:::0;15710:1:::1;15686:23;:26::i;:::-;15673:8;::::0;;:12:::1;:40::i;:::-;15651:62:::0;-1:-1:-1;15722:26:0::1;15751:58;15807:1;15751:51;15651:62:::0;15751:51;:9;15765:19;15751:13:::1;:34::i;:58::-;15722:87;;15816:26;15845:44;15877:11;15845:27;15859:12;;15845:9;:13;;:27;;;;:::i;:44::-;15816:73;;15896:20;15919:38;15945:11;15919:21;15933:6;;15919:9;:13;;:21;;;;:::i;:38::-;15896:61;;15964:26;15993:44;16025:11;15993:27;16007:12;;15993:9;:13;;:27;;;;:::i;:44::-;15964:73;;16044:24;16071:42;16101:11;16071:25;16085:10;;16071:9;:13;;:25;;;;:::i;:42::-;16152:20;::::0;16144:65:::1;::::0;16044:69;;-1:-1:-1;16124:15:0::1;::::0;-1:-1:-1;;;;;16152:20:0;;::::1;::::0;16186:18;;16124:15;16144:65;16124:15;16144:65;16186:18;16152:20;16144:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16240:20:0::1;::::0;16232:65:::1;::::0;16123:86;;-1:-1:-1;;;;;;16240:20:0::1;::::0;16274:18;;16232:65:::1;::::0;;;16274:18;16240:20;16232:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16328:14:0::1;::::0;16320:53:::1;::::0;16216:81;;-1:-1:-1;;;;;;16328:14:0::1;::::0;16356:12;;16320:53:::1;::::0;;;16356:12;16328:14;16320:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16404:18:0::1;::::0;16396:61:::1;::::0;16304:69;;-1:-1:-1;;;;;;16404:18:0::1;::::0;16436:16;;16396:61:::1;::::0;;;16436:16;16404:18;16396:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16380:77:0;;-1:-1:-1;;16470:19:0;;16467:330:::1;;16501:6;::::0;16655:21:::1;::::0;16501:216:::1;::::0;-1:-1:-1;;;16501:216:0;;16573:4:::1;16501:216;::::0;::::1;11534:34:1::0;11584:18;;;11577:34;;;16501:6:0::1;11627:18:1::0;;;11620:34;;;11670:18;;;11663:34;-1:-1:-1;;;;;16655:21:0;;::::1;11713:19:1::0;;;11706:44;16691:15:0::1;11766:19:1::0;;;11759:35;16501:6:0;::::1;::::0;:22:::1;::::0;16531:18;;11468:19:1;;16501:216:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16733:48:0::1;::::0;;12290:25:1;;;12346:2;12331:18;;12324:34;;;16733:48:0::1;::::0;-1:-1:-1;12263:18:1;16733:48:0::1;;;;;;;16467:330;-1:-1:-1::0;;6989:6:0;:14;;-1:-1:-1;;6989:14:0;;;-1:-1:-1;;;;;;;;;;;14936:1868:0:o;11070:330::-;11200:53;;;;;;;;;;;-1:-1:-1;;;11200:53:0;;;;;;;;-1:-1:-1;;;;;11200:17:0;;11163:4;11200:17;;;:9;:17;;;;;;;:53;;11222:6;;11200:21;:53::i;:::-;-1:-1:-1;;;;;11180:17:0;;;;;;;:9;:17;;;;;;:73;;;;11287:20;;;;;;;:32;;11312:6;11287:24;:32::i;:::-;-1:-1:-1;;;;;11264:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11335:35;;;;;;;;;;11363:6;597:25:1;;585:2;570:18;;451:177;11335:35:0;;;;;;;;-1:-1:-1;11388:4:0;11070:330;;;;;:::o;11408:166::-;11505:12;;11495:6;:22;;:49;;;-1:-1:-1;;;;;;11521:23:0;;;;;;:15;:23;;;;;;;;11495:49;11487:79;;;;-1:-1:-1;;;11487:79:0;;12571:2:1;11487:79:0;;;12553:21:1;12610:2;12590:18;;;12583:30;-1:-1:-1;;;12629:18:1;;;12622:47;12686:18;;11487:79:0;12369:341:1;11487:79:0;11408:166;;:::o;12377:197::-;12464:4;;12426;;-1:-1:-1;;;;;12464:4:0;12450:10;:18;;;;:38;;-1:-1:-1;12482:6:0;;;;12481:7;12450:38;:62;;;;-1:-1:-1;12501:11:0;;-1:-1:-1;;;12501:11:0;;;;12450:62;:116;;;;-1:-1:-1;;12553:13:0;;;12543:4;12525:24;;;;:9;:24;;;;;;;;:41;;;12377:197::o;11704:665::-;11841:18;;11888:4;;11790:7;;11841:18;-1:-1:-1;;;;;11888:4:0;;;11875:17;;;;11872:154;;-1:-1:-1;11922:14:0;;11872:154;;;11967:4;;-1:-1:-1;;;;;11967:4:0;;;11957:14;;;;11954:72;;-1:-1:-1;12001:13:0;;11954:72;12038:17;12058:62;12099:14;;12116:3;12099:20;;;;:::i;:::-;12058:36;12083:10;12058:20;12069:8;;12058:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;12223:4;12131:22;12205:24;;;:9;:24;;;;;;12038:82;;-1:-1:-1;12038:82:0;;12205:44;;12038:82;12205:28;:44::i;:::-;12196:4;12178:24;;;;:9;:24;;;;;;;:71;;;;12265:47;;-1:-1:-1;;;;;12265:47:0;;;;;;;12297:14;597:25:1;;585:2;570:18;;451:177;12265:47:0;;;;;;;;12340:21;:6;12351:9;12340:10;:21::i;:::-;12333:28;11704:665;-1:-1:-1;;;;;;;11704:665:0:o;18224:151::-;18305:4;18361:6;18329:29;18349:8;18329:19;:29::i;:::-;:38;;18224:151;-1:-1:-1;;;18224:151:0:o;802:250::-;860:7;884:1;889;884:6;880:47;;-1:-1:-1;914:1:0;907:8;;880:47;939:9;951:5;955:1;951;:5;:::i;:::-;939:17;-1:-1:-1;984:1:0;975:5;979:1;939:17;975:5;:::i;:::-;:10;967:56;;;;-1:-1:-1;;;967:56:0;;12917:2:1;967:56:0;;;12899:21:1;12956:2;12936:18;;;12929:30;12995:34;12975:18;;;12968:62;-1:-1:-1;;;13046:18:1;;;13039:31;13087:19;;967:56:0;12715:397:1;1058:132:0;1116:7;1143:39;1147:1;1150;1143:39;;;;;;;;;;;;;;;;;:3;:39::i;18048:168::-;18117:7;18144:64;18185:22;:20;:22::i;:::-;18167:4;;-1:-1:-1;;;;;18167:4:0;8736:7;8754:18;;;:9;:18;;;;;;18144:36;;18157:22;;18177:1;;18157:15;8670:105;18157:22;18144:8;;:12;:36::i;1196:189::-;1282:7;1317:12;1310:5;1302:28;;;;-1:-1:-1;;;1302:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1341:9:0;1353:5;1357:1;1353;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:309;202:6;210;263:2;251:9;242:7;238:23;234:32;231:52;;;279:1;276;269:12;231:52;318:9;305:23;337:28;359:5;337:28;:::i;:::-;384:5;436:2;421:18;;;;408:32;;-1:-1:-1;;;137:309:1:o;633:173::-;701:20;;-1:-1:-1;;;;;750:31:1;;740:42;;730:70;;796:1;793;786:12;730:70;633:173;;;:::o;811:186::-;870:6;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;1194:548::-;1306:4;1335:2;1364;1353:9;1346:21;1396:6;1390:13;1439:6;1434:2;1423:9;1419:18;1412:34;1464:1;1474:140;1488:6;1485:1;1482:13;1474:140;;;1583:14;;;1579:23;;1573:30;1549:17;;;1568:2;1545:26;1538:66;1503:10;;1474:140;;;1478:3;1663:1;1658:2;1649:6;1638:9;1634:22;1630:31;1623:42;1733:2;1726;1722:7;1717:2;1709:6;1705:15;1701:29;1690:9;1686:45;1682:54;1674:62;;;;1194:548;;;;:::o;1747:254::-;1815:6;1823;1876:2;1864:9;1855:7;1851:23;1847:32;1844:52;;;1892:1;1889;1882:12;1844:52;1915:29;1934:9;1915:29;:::i;2006:328::-;2083:6;2091;2099;2152:2;2140:9;2131:7;2127:23;2123:32;2120:52;;;2168:1;2165;2158:12;2120:52;2191:29;2210:9;2191:29;:::i;:::-;2181:39;;2239:38;2273:2;2262:9;2258:18;2239:38;:::i;:::-;2229:48;;2324:2;2313:9;2309:18;2296:32;2286:42;;2006:328;;;;;:::o;2528:180::-;2587:6;2640:2;2628:9;2619:7;2615:23;2611:32;2608:52;;;2656:1;2653;2646:12;2608:52;-1:-1:-1;2679:23:1;;2528:180;-1:-1:-1;2528:180:1:o;2921:523::-;3025:6;3033;3041;3049;3057;3065;3118:3;3106:9;3097:7;3093:23;3089:33;3086:53;;;3135:1;3132;3125:12;3086:53;-1:-1:-1;;3158:23:1;;;3228:2;3213:18;;3200:32;;-1:-1:-1;3279:2:1;3264:18;;3251:32;;3330:2;3315:18;;3302:32;;-1:-1:-1;3381:3:1;3366:19;;3353:33;;-1:-1:-1;3433:3:1;3418:19;3405:33;;-1:-1:-1;2921:523:1;-1:-1:-1;2921:523:1:o;3449:315::-;3514:6;3522;3575:2;3563:9;3554:7;3550:23;3546:32;3543:52;;;3591:1;3588;3581:12;3543:52;3614:29;3633:9;3614:29;:::i;:::-;3604:39;;3693:2;3682:9;3678:18;3665:32;3706:28;3728:5;3706:28;:::i;:::-;3753:5;3743:15;;;3449:315;;;;;:::o;3769:316::-;3846:6;3854;3862;3915:2;3903:9;3894:7;3890:23;3886:32;3883:52;;;3931:1;3928;3921:12;3883:52;-1:-1:-1;;3954:23:1;;;4024:2;4009:18;;3996:32;;-1:-1:-1;4075:2:1;4060:18;;;4047:32;;3769:316;-1:-1:-1;3769:316:1:o;4090:260::-;4158:6;4166;4219:2;4207:9;4198:7;4194:23;4190:32;4187:52;;;4235:1;4232;4225:12;4187:52;4258:29;4277:9;4258:29;:::i;:::-;4248:39;;4306:38;4340:2;4329:9;4325:18;4306:38;:::i;:::-;4296:48;;4090:260;;;;;:::o;4581:356::-;4783:2;4765:21;;;4802:18;;;4795:30;4861:34;4856:2;4841:18;;4834:62;4928:2;4913:18;;4581:356::o;4942:127::-;5003:10;4998:3;4994:20;4991:1;4984:31;5034:4;5031:1;5024:15;5058:4;5055:1;5048:15;5074:422;5163:1;5206:5;5163:1;5220:270;5241:7;5231:8;5228:21;5220:270;;;5300:4;5296:1;5292:6;5288:17;5282:4;5279:27;5276:53;;;5309:18;;:::i;:::-;5359:7;5349:8;5345:22;5342:55;;;5379:16;;;;5342:55;5458:22;;;;5418:15;;;;5220:270;;;5224:3;5074:422;;;;;:::o;5501:806::-;5550:5;5580:8;5570:80;;-1:-1:-1;5621:1:1;5635:5;;5570:80;5669:4;5659:76;;-1:-1:-1;5706:1:1;5720:5;;5659:76;5751:4;5769:1;5764:59;;;;5837:1;5832:130;;;;5744:218;;5764:59;5794:1;5785:10;;5808:5;;;5832:130;5869:3;5859:8;5856:17;5853:43;;;5876:18;;:::i;:::-;-1:-1:-1;;5932:1:1;5918:16;;5947:5;;5744:218;;6046:2;6036:8;6033:16;6027:3;6021:4;6018:13;6014:36;6008:2;5998:8;5995:16;5990:2;5984:4;5981:12;5977:35;5974:77;5971:159;;;-1:-1:-1;6083:19:1;;;6115:5;;5971:159;6162:34;6187:8;6181:4;6162:34;:::i;:::-;6232:6;6228:1;6224:6;6220:19;6211:7;6208:32;6205:58;;;6243:18;;:::i;:::-;6281:20;;5501:806;-1:-1:-1;;;5501:806:1:o;6312:140::-;6370:5;6399:47;6440:4;6430:8;6426:19;6420:4;6399:47;:::i;6457:168::-;6530:9;;;6561;;6578:15;;;6572:22;;6558:37;6548:71;;6599:18;;:::i;6630:125::-;6695:9;;;6716:10;;;6713:36;;;6729:18;;:::i;6760:217::-;6800:1;6826;6816:132;;6870:10;6865:3;6861:20;6858:1;6851:31;6905:4;6902:1;6895:15;6933:4;6930:1;6923:15;6816:132;-1:-1:-1;6962:9:1;;6760:217::o;6982:184::-;7052:6;7105:2;7093:9;7084:7;7080:23;7076:32;7073:52;;;7121:1;7118;7111:12;7073:52;-1:-1:-1;7144:16:1;;6982:184;-1:-1:-1;6982:184:1:o;7450:245::-;7517:6;7570:2;7558:9;7549:7;7545:23;7541:32;7538:52;;;7586:1;7583;7576:12;7538:52;7618:9;7612:16;7637:28;7659:5;7637:28;:::i;8465:128::-;8532:9;;;8553:11;;;8550:37;;;8567:18;;:::i;9866:127::-;9927:10;9922:3;9918:20;9915:1;9908:31;9958:4;9955:1;9948:15;9982:4;9979:1;9972:15;9998:980;10260:4;10308:3;10297:9;10293:19;10339:6;10328:9;10321:25;10365:2;10403:6;10398:2;10387:9;10383:18;10376:34;10446:3;10441:2;10430:9;10426:18;10419:31;10470:6;10505;10499:13;10536:6;10528;10521:22;10574:3;10563:9;10559:19;10552:26;;10613:2;10605:6;10601:15;10587:29;;10634:1;10644:195;10658:6;10655:1;10652:13;10644:195;;;10723:13;;-1:-1:-1;;;;;10719:39:1;10707:52;;10814:15;;;;10779:12;;;;10755:1;10673:9;10644:195;;;-1:-1:-1;;;;;;;10895:32:1;;;;10890:2;10875:18;;10868:60;-1:-1:-1;;;10959:3:1;10944:19;10937:35;10856:3;9998:980;-1:-1:-1;;;9998:980:1:o;11805:306::-;11893:6;11901;11909;11962:2;11950:9;11941:7;11937:23;11933:32;11930:52;;;11978:1;11975;11968:12;11930:52;12007:9;12001:16;11991:26;;12057:2;12046:9;12042:18;12036:25;12026:35;;12101:2;12090:9;12086:18;12080:25;12070:35;;11805:306;;;;;:::o
Swarm Source
ipfs://cbd55efcfd5dbd4ebe996e186a11fa3eacf36ab5d1ed715466279e99a7fb0140
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.