Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
888,000,000,000 BIBTI
Holders
210
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
53,064,915.820312781 BIBTIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Habibti
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-07 */ /* Welcome to Habibiti - Habibis long lost wife. TG 📞 - https://t.me/HABIBITIMEMEZ Twitter 🐥 - https://twitter.com/HabibtiETH Website - 💻 http://thehabibti.io ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ */ // SPDX-License-Identifier: MIT pragma solidity 0.8.14; 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); } 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; } } 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 Habibti is Ownable, ERC20 { using SafeMath for uint256; address WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Habibti"; string constant _symbol = "BIBTI"; uint8 constant _decimals = 9; uint256 _totalSupply = 888000000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(1).div(100); uint256 public _maxWalletToken = _totalSupply.mul(1).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeexempt; mapping (address => bool) isTxLimitexempt; uint256 private liquidityFee = 1; uint256 private projectDevelopmentFee = 3; uint256 private teamFee = 0; uint256 private nftfundFee = 1; uint256 private burnFee = 0; uint256 public totalFee = nftfundFee + projectDevelopmentFee + liquidityFee + teamFee + burnFee; uint256 private feeDenominator = 100; uint256 sellmultiplier = 900; uint256 buymultiplier = 800; uint256 transfertax = 800; address private autoLiquidityReceiver; address private projectDevelopmentFeeReceiver; address private teamFeeReceiver; address private nftfundFeeReceiver; address private burnFeeReceiver; uint256 targetLiquidity = 30; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 60 / 1000; 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[teamFeeReceiver] = true; isTxLimitexempt[msg.sender] = true; isTxLimitexempt[pair] = true; isTxLimitexempt[teamFeeReceiver] = true; isTxLimitexempt[projectDevelopmentFeeReceiver] = true; isTxLimitexempt[address(this)] = true; autoLiquidityReceiver = msg.sender; projectDevelopmentFeeReceiver = 0x1E93E8cfbDBC29EF4A7A7f7F2233Dde2D3CA2C97; teamFeeReceiver = msg.sender; nftfundFeeReceiver = msg.sender; burnFeeReceiver = DEAD; _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 approveMax(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 disableAllLimits() external onlyOwner { _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; } 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 != burnFeeReceiver && recipient != projectDevelopmentFeeReceiver && !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 percent = transfertax; if(recipient == pair) { percent = sellmultiplier; } else if(sender == pair) { percent = buymultiplier; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function manualSend() external { payable(autoLiquidityReceiver).transfer(address(this).balance); } function removeForeignERC20(address tokenAddress, uint256 tokens) public returns (bool) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens); } function setBreakdown(uint256 _issell, uint256 _isbuy, uint256 _wallet) external onlyOwner { sellmultiplier = _issell; buymultiplier = _isbuy; transfertax = _wallet; } function setMaxWalletAmount(uint256 maxWallPercent) external onlyOwner { require(maxWallPercent >= 1); _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000; } function setMaxSellAmount(uint256 maxTXPercent) external onlyOwner { require(maxTXPercent >= 1); _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000; } function tradingAllowed() public onlyOwner { TradingOpen = true; } function setBacking(uint256 _target, uint256 _denominator) external onlyOwner { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } 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 amountETHprojectDevelopment = amountETH.mul(projectDevelopmentFee).div(totalETHFee); uint256 amountETHnftfund = amountETH.mul(nftfundFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(teamFee).div(totalETHFee); (bool tmpSuccess,) = payable(projectDevelopmentFeeReceiver).call{value: amountETHprojectDevelopment}(""); (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHdev}(""); (tmpSuccess,) = payable(nftfundFeeReceiver).call{value: amountETHnftfund}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setTaxFee(uint256 _liquidityFee, uint256 _nftfundFee, uint256 _projectDevelopmentFee, uint256 _teamFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; nftfundFee = _nftfundFee; projectDevelopmentFee = _projectDevelopmentFee; teamFee = _teamFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_nftfundFee).add(_projectDevelopmentFee).add(_teamFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); } function setReceivers(address _autoLiquidityReceiver, address _projectDevelopmentFeeReceiver, address _teamFeeReceiver, address _burnFeeReceiver, address _nftfundFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; projectDevelopmentFeeReceiver = _projectDevelopmentFeeReceiver; teamFeeReceiver = _teamFeeReceiver; burnFeeReceiver = _burnFeeReceiver; nftfundFeeReceiver = _nftfundFeeReceiver; } function setSwapandLiquify(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public 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":"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableAllLimits","outputs":[],"stateMutability":"nonpayable","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":"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":"manualSend","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeForeignERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setBacking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_issell","type":"uint256"},{"internalType":"uint256","name":"_isbuy","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setBreakdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_projectDevelopmentFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_nftfundFeeReceiver","type":"address"}],"name":"setReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapandLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_nftfundFee","type":"uint256"},{"internalType":"uint256","name":"_projectDevelopmentFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTaxFee","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"tradingAllowed","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006e0565b620000439064cec0ecb000620006f1565b6005556200007d6064620000696001600554620004b060201b62000eab1790919060201c565b6200054760201b62000f2d1790919060201c565b600655620000a36064620000696001600554620004b060201b62000eab1790919060201c565b6007556001600c556003600d556000600e556001600f556000601055601054600e54600c54600d54600f54620000da919062000713565b620000e6919062000713565b620000f2919062000713565b620000fe919062000713565b601155606460128190556103846013556103206014819055601555601e601b55601c55601f805461ffff60a01b1916600160a81b1790556005546103e8906200014990603c620006f1565b6200015591906200072e565b6020553480156200016557600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024b919062000751565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d0919062000751565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062000751565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b1687528487208054831684179055968652838620805490911690911790556016805487168217905584548616731e93e8cfbdbc29ef4a7a7f7f2233dde2d3ca2c971790945585548516841790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007d4565b600082600003620004c45750600062000541565b6000620004d28385620006f1565b905082620004e185836200072e565b146200053e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059160201b60201c565b60008183620005b55760405162461bcd60e51b81526004016200053591906200077c565b506000620005c484866200072e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000624578160001904821115620006085762000608620005cd565b808516156200061657918102915b93841c9390800290620005e8565b509250929050565b6000826200063d5750600162000541565b816200064c5750600062000541565b8160018114620006655760028114620006705762000690565b600191505062000541565b60ff841115620006845762000684620005cd565b50506001821b62000541565b5060208310610133831016604e8410600b8410161715620006b5575081810a62000541565b620006c18383620005e3565b8060001904821115620006d857620006d8620005cd565b029392505050565b60006200053e60ff8416836200062c565b60008160001904831182151516156200070e576200070e620005cd565b500290565b60008219821115620007295762000729620005cd565b500190565b6000826200074c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076457600080fd5b81516001600160a01b03811681146200053e57600080fd5b600060208083528351808285015260005b81811015620007ab578581018301518582016040015282016200078d565b81811115620007be576000604083870101525b50601f01601f1916929092016040019392505050565b611f4780620007e46000396000f3fe60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e1461063a578063e99c9d0914610680578063f2fde38b146106a0578063f4293890146106c0578063f887ea40146106d557600080fd5b8063a9059cbb1461059a578063b2bdfa7b146105ba578063cc798a5c146105da578063d405ae8f146105fa578063d51ed1c81461061a57600080fd5b8063893d20e8116100f2578063893d20e8146104dc5780638afe5fcb1461050e5780638da5cb5b1461052e57806395d89b411461054c578063a8aa1b311461057a57600080fd5b806370a0823114610465578063715018a61461049b57806378109e54146104b05780637d1db4a5146104c657600080fd5b806323b872dd116101a65780633554dd3c116101755780633554dd3c146103cf5780633748cba8146103ef57806353371be01461040f578063571ac8b0146104245780636ddd17131461044457600080fd5b806323b872dd1461035e57806327a14fc21461037e5780632b112e491461039e578063313ce567146103b357600080fd5b806308fd3d05116101ed57806308fd3d05146102c2578063095ea7b3146102f35780631161ae391461031357806318160ddd146103335780631df4ccfc1461034857600080fd5b80629a4bea1461022957806303f907711461024b5780630445b6671461026057806306fdde031461028957600080fd5b3661022457005b600080fd5b34801561023557600080fd5b50610249610244366004611aeb565b6106f5565b005b34801561025757600080fd5b506102496107c4565b34801561026c57600080fd5b5061027660205481565b6040519081526020015b60405180910390f35b34801561029557600080fd5b506040805180820190915260078152664861626962746960c81b60208201525b6040516102809190611b2e565b3480156102ce57600080fd5b50601f546102e390600160a01b900460ff1681565b6040519015158152602001610280565b3480156102ff57600080fd5b506102e361030e366004611b9f565b6107fb565b34801561031f57600080fd5b506102e361032e366004611bc9565b610868565b34801561033f57600080fd5b50600554610276565b34801561035457600080fd5b5061027660115481565b34801561036a57600080fd5b506102e3610379366004611beb565b61087c565b34801561038a57600080fd5b50610249610399366004611c27565b61093e565b3480156103aa57600080fd5b50610276610997565b3480156103bf57600080fd5b5060405160098152602001610280565b3480156103db57600080fd5b506102496103ea366004611c40565b6109e9565b3480156103fb57600080fd5b5061024961040a366004611ca5565b610a72565b34801561041b57600080fd5b50610249610aaa565b34801561043057600080fd5b506102e361043f366004611cd1565b610ae9565b34801561045057600080fd5b50601f546102e390600160a81b900460ff1681565b34801561047157600080fd5b50610276610480366004611cd1565b6001600160a01b031660009081526008602052604090205490565b3480156104a757600080fd5b50610249610af7565b3480156104bc57600080fd5b5061027660075481565b3480156104d257600080fd5b5061027660065481565b3480156104e857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610280565b34801561051a57600080fd5b506102e3610529366004611b9f565b610b6b565b34801561053a57600080fd5b506000546001600160a01b03166104f6565b34801561055857600080fd5b50604080518082019091526005815264424942544960d81b60208201526102b5565b34801561058657600080fd5b50601f546104f6906001600160a01b031681565b3480156105a657600080fd5b506102e36105b5366004611b9f565b610c57565b3480156105c657600080fd5b506000546104f6906001600160a01b031681565b3480156105e657600080fd5b506102496105f5366004611bc9565b610c64565b34801561060657600080fd5b50610249610615366004611cfa565b610c99565b34801561062657600080fd5b50610276610635366004611c27565b610ce5565b34801561064657600080fd5b50610276610655366004611d18565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561068c57600080fd5b5061024961069b366004611c27565b610d2c565b3480156106ac57600080fd5b506102496106bb366004611cd1565b610d85565b3480156106cc57600080fd5b50610249610e6f565b3480156106e157600080fd5b50601d546104f6906001600160a01b031681565b6000546001600160a01b031633146107285760405162461bcd60e51b815260040161071f90611d4b565b60405180910390fd5b600c869055600f859055600d849055600e839055601082905561075982610753858188818c8c610f6f565b90610f6f565b601155601281905561076c600582611d96565b601154106107bc5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161071f565b505050505050565b6000546001600160a01b031633146107ee5760405162461bcd60e51b815260040161071f90611d4b565b6005546006819055600755565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108569086815260200190565b60405180910390a35060015b92915050565b60008261087483610ce5565b119392505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610929576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610904918490610fce565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610934848484611008565b90505b9392505050565b6000546001600160a01b031633146109685760405162461bcd60e51b815260040161071f90611d4b565b600181101561097657600080fd5b6103e8816005546109879190611db8565b6109919190611d96565b60075550565b6004546001600160a01b03166000908152600860205260408120546109e4906003546001600160a01b03166000908152600860205260409020546109de906005549061136e565b9061136e565b905090565b6000546001600160a01b03163314610a135760405162461bcd60e51b815260040161071f90611d4b565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b815260040161071f90611d4b565b601392909255601455601555565b6000546001600160a01b03163314610ad45760405162461bcd60e51b815260040161071f90611d4b565b601f805460ff60a01b1916600160a01b179055565b6000610862826000196107fb565b6000546001600160a01b03163314610b215760405162461bcd60e51b815260040161071f90611d4b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610be0576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611dd7565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610c33573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190611df0565b6000610937338484611008565b6000546001600160a01b03163314610c8e5760405162461bcd60e51b815260040161071f90611d4b565b601b91909155601c55565b6000546001600160a01b03163314610cc35760405162461bcd60e51b815260040161071f90611d4b565b601f8054921515600160a81b0260ff60a81b1990931692909217909155602055565b6000610862610cf2610997565b601f546001600160a01b0316600090815260086020526040902054610d2690610d1f906002905b90610eab565b8590610eab565b90610f2d565b6000546001600160a01b03163314610d565760405162461bcd60e51b815260040161071f90611d4b565b6001811015610d6457600080fd5b6103e881600554610d759190611db8565b610d7f9190611d96565b60065550565b6000546001600160a01b03163314610daf5760405162461bcd60e51b815260040161071f90611d4b565b6001600160a01b038116610e145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610ea8573d6000803e3d6000fd5b50565b600082600003610ebd57506000610862565b6000610ec98385611db8565b905082610ed68583611d96565b146109375760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161071f565b600061093783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113b0565b600080610f7c8385611e0d565b9050838110156109375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161071f565b60008184841115610ff25760405162461bcd60e51b815260040161071f9190611b2e565b506000610fff8486611e25565b95945050505050565b60215460009060ff1615611028576110218484846113de565b9050610937565b6001600160a01b03841660009081526001602052604090205460ff1615801561106a57506001600160a01b03831660009081526001602052604090205460ff16155b156110bf57601f54600160a01b900460ff166110bf5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161071f565b6001600160a01b03841660009081526001602052604090205460ff161580156110f157506001600160a01b0383163014155b801561110b57506003546001600160a01b03848116911614155b80156111255750601f546001600160a01b03848116911614155b801561113f5750601a546001600160a01b03848116911614155b801561115957506017546001600160a01b03848116911614155b801561117e57506001600160a01b0383166000908152600b602052604090205460ff16155b1561121f576001600160a01b0383166000908152600860205260409020546007546111a98483611e0d565b111561121d5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161071f565b505b61122984836114b2565b61123161151f565b1561123e5761123e611577565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611290918490610fce565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806112dd57506001600160a01b0384166000908152600a602052604090205460ff165b6112f1576112ec85848661195e565b6112f3565b825b6001600160a01b0385166000908152600860205260409020549091506113199082610f6f565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020611ef28339815191529061135b9085815260200190565b60405180910390a3506001949350505050565b600061093783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fce565b600081836113d15760405162461bcd60e51b815260040161071f9190611b2e565b506000610fff8486611d96565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461142f918490610fce565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461145e9083610f6f565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020611ef2833981519152906114a09086815260200190565b60405180910390a35060019392505050565b600654811115806114db57506001600160a01b0382166000908152600b602052604090205460ff165b61151b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161071f565b5050565b601f546000906001600160a01b03163314801590611540575060215460ff16155b80156115555750601f54600160a81b900460ff165b80156109e4575050602080543060009081526008909252604090912054101590565b6021805460ff19166001179055601b54601c5460009161159691610868565b6115a257600c546115a5565b60005b905060006115c96002610d26601154610d2686602054610eab90919063ffffffff16565b905060006115e28260205461136e90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061161c5761161c611e3c565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061164d5761164d611e3c565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611697908690600090879030904290600401611e52565b600060405180830381600087803b1580156116b157600080fd5b505af11580156116c5573d6000803e3d6000fd5b5050505060006116de824761136e90919063ffffffff16565b905060006116f96116f0886002610f2d565b6011549061136e565b9050600061170e6002610d268481878d610eab565b9050600061172b83610d26600d5487610eab90919063ffffffff16565b9050600061174884610d26600f5488610eab90919063ffffffff16565b9050600061176585610d26600e5489610eab90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146117b7576040519150601f19603f3d011682016040523d82523d6000602084013e6117bc565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461180c576040519150601f19603f3d011682016040523d82523d6000602084013e611811565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611861576040519150601f19603f3d011682016040523d82523d6000602084013e611866565b606091505b5060009250508b15905061194657601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156118e4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119099190611ec3565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f54600091906001600160a01b0390811690841603611984575060135461199f565b601f546001600160a01b039081169086160361199f57506014545b60006119cc60125460646119b39190611db8565b610d2684610d196011548a610eab90919063ffffffff16565b905060006119eb601154610d2660105485610eab90919063ffffffff16565b905060006119f9838361136e565b30600090815260086020526040902054909150611a169082610f6f565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611a449083610f6f565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020611ef2833981519152910160405180910390a38115611ad557600554611a9e908361136e565b6005556004546040518381526001600160a01b03918216918a1690600080516020611ef28339815191529060200160405180910390a35b611adf878461136e565b98975050505050505050565b60008060008060008060c08789031215611b0457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015611b5b57858101830151858201604001528201611b3f565b81811115611b6d576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611b9a57600080fd5b919050565b60008060408385031215611bb257600080fd5b611bbb83611b83565b946020939093013593505050565b60008060408385031215611bdc57600080fd5b50508035926020909101359150565b600080600060608486031215611c0057600080fd5b611c0984611b83565b9250611c1760208501611b83565b9150604084013590509250925092565b600060208284031215611c3957600080fd5b5035919050565b600080600080600060a08688031215611c5857600080fd5b611c6186611b83565b9450611c6f60208701611b83565b9350611c7d60408701611b83565b9250611c8b60608701611b83565b9150611c9960808701611b83565b90509295509295909350565b600080600060608486031215611cba57600080fd5b505081359360208301359350604090920135919050565b600060208284031215611ce357600080fd5b61093782611b83565b8015158114610ea857600080fd5b60008060408385031215611d0d57600080fd5b8235611bbb81611cec565b60008060408385031215611d2b57600080fd5b611d3483611b83565b9150611d4260208401611b83565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611db357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611dd257611dd2611d80565b500290565b600060208284031215611de957600080fd5b5051919050565b600060208284031215611e0257600080fd5b815161093781611cec565b60008219821115611e2057611e20611d80565b500190565b600082821015611e3757611e37611d80565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea25784516001600160a01b031683529383019391830191600101611e7d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611ed857600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122049c46eaa43636f68919e2b14acfa7cc6bc68a1c7379868184def61e6164fe37264736f6c634300080e0033
Deployed Bytecode
0x60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dd62ed3e1161006f578063dd62ed3e1461063a578063e99c9d0914610680578063f2fde38b146106a0578063f4293890146106c0578063f887ea40146106d557600080fd5b8063a9059cbb1461059a578063b2bdfa7b146105ba578063cc798a5c146105da578063d405ae8f146105fa578063d51ed1c81461061a57600080fd5b8063893d20e8116100f2578063893d20e8146104dc5780638afe5fcb1461050e5780638da5cb5b1461052e57806395d89b411461054c578063a8aa1b311461057a57600080fd5b806370a0823114610465578063715018a61461049b57806378109e54146104b05780637d1db4a5146104c657600080fd5b806323b872dd116101a65780633554dd3c116101755780633554dd3c146103cf5780633748cba8146103ef57806353371be01461040f578063571ac8b0146104245780636ddd17131461044457600080fd5b806323b872dd1461035e57806327a14fc21461037e5780632b112e491461039e578063313ce567146103b357600080fd5b806308fd3d05116101ed57806308fd3d05146102c2578063095ea7b3146102f35780631161ae391461031357806318160ddd146103335780631df4ccfc1461034857600080fd5b80629a4bea1461022957806303f907711461024b5780630445b6671461026057806306fdde031461028957600080fd5b3661022457005b600080fd5b34801561023557600080fd5b50610249610244366004611aeb565b6106f5565b005b34801561025757600080fd5b506102496107c4565b34801561026c57600080fd5b5061027660205481565b6040519081526020015b60405180910390f35b34801561029557600080fd5b506040805180820190915260078152664861626962746960c81b60208201525b6040516102809190611b2e565b3480156102ce57600080fd5b50601f546102e390600160a01b900460ff1681565b6040519015158152602001610280565b3480156102ff57600080fd5b506102e361030e366004611b9f565b6107fb565b34801561031f57600080fd5b506102e361032e366004611bc9565b610868565b34801561033f57600080fd5b50600554610276565b34801561035457600080fd5b5061027660115481565b34801561036a57600080fd5b506102e3610379366004611beb565b61087c565b34801561038a57600080fd5b50610249610399366004611c27565b61093e565b3480156103aa57600080fd5b50610276610997565b3480156103bf57600080fd5b5060405160098152602001610280565b3480156103db57600080fd5b506102496103ea366004611c40565b6109e9565b3480156103fb57600080fd5b5061024961040a366004611ca5565b610a72565b34801561041b57600080fd5b50610249610aaa565b34801561043057600080fd5b506102e361043f366004611cd1565b610ae9565b34801561045057600080fd5b50601f546102e390600160a81b900460ff1681565b34801561047157600080fd5b50610276610480366004611cd1565b6001600160a01b031660009081526008602052604090205490565b3480156104a757600080fd5b50610249610af7565b3480156104bc57600080fd5b5061027660075481565b3480156104d257600080fd5b5061027660065481565b3480156104e857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610280565b34801561051a57600080fd5b506102e3610529366004611b9f565b610b6b565b34801561053a57600080fd5b506000546001600160a01b03166104f6565b34801561055857600080fd5b50604080518082019091526005815264424942544960d81b60208201526102b5565b34801561058657600080fd5b50601f546104f6906001600160a01b031681565b3480156105a657600080fd5b506102e36105b5366004611b9f565b610c57565b3480156105c657600080fd5b506000546104f6906001600160a01b031681565b3480156105e657600080fd5b506102496105f5366004611bc9565b610c64565b34801561060657600080fd5b50610249610615366004611cfa565b610c99565b34801561062657600080fd5b50610276610635366004611c27565b610ce5565b34801561064657600080fd5b50610276610655366004611d18565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561068c57600080fd5b5061024961069b366004611c27565b610d2c565b3480156106ac57600080fd5b506102496106bb366004611cd1565b610d85565b3480156106cc57600080fd5b50610249610e6f565b3480156106e157600080fd5b50601d546104f6906001600160a01b031681565b6000546001600160a01b031633146107285760405162461bcd60e51b815260040161071f90611d4b565b60405180910390fd5b600c869055600f859055600d849055600e839055601082905561075982610753858188818c8c610f6f565b90610f6f565b601155601281905561076c600582611d96565b601154106107bc5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161071f565b505050505050565b6000546001600160a01b031633146107ee5760405162461bcd60e51b815260040161071f90611d4b565b6005546006819055600755565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108569086815260200190565b60405180910390a35060015b92915050565b60008261087483610ce5565b119392505050565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610929576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610904918490610fce565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610934848484611008565b90505b9392505050565b6000546001600160a01b031633146109685760405162461bcd60e51b815260040161071f90611d4b565b600181101561097657600080fd5b6103e8816005546109879190611db8565b6109919190611d96565b60075550565b6004546001600160a01b03166000908152600860205260408120546109e4906003546001600160a01b03166000908152600860205260409020546109de906005549061136e565b9061136e565b905090565b6000546001600160a01b03163314610a135760405162461bcd60e51b815260040161071f90611d4b565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b815260040161071f90611d4b565b601392909255601455601555565b6000546001600160a01b03163314610ad45760405162461bcd60e51b815260040161071f90611d4b565b601f805460ff60a01b1916600160a01b179055565b6000610862826000196107fb565b6000546001600160a01b03163314610b215760405162461bcd60e51b815260040161071f90611d4b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081600003610be0576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611dd7565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610c33573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190611df0565b6000610937338484611008565b6000546001600160a01b03163314610c8e5760405162461bcd60e51b815260040161071f90611d4b565b601b91909155601c55565b6000546001600160a01b03163314610cc35760405162461bcd60e51b815260040161071f90611d4b565b601f8054921515600160a81b0260ff60a81b1990931692909217909155602055565b6000610862610cf2610997565b601f546001600160a01b0316600090815260086020526040902054610d2690610d1f906002905b90610eab565b8590610eab565b90610f2d565b6000546001600160a01b03163314610d565760405162461bcd60e51b815260040161071f90611d4b565b6001811015610d6457600080fd5b6103e881600554610d759190611db8565b610d7f9190611d96565b60065550565b6000546001600160a01b03163314610daf5760405162461bcd60e51b815260040161071f90611d4b565b6001600160a01b038116610e145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610ea8573d6000803e3d6000fd5b50565b600082600003610ebd57506000610862565b6000610ec98385611db8565b905082610ed68583611d96565b146109375760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161071f565b600061093783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113b0565b600080610f7c8385611e0d565b9050838110156109375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161071f565b60008184841115610ff25760405162461bcd60e51b815260040161071f9190611b2e565b506000610fff8486611e25565b95945050505050565b60215460009060ff1615611028576110218484846113de565b9050610937565b6001600160a01b03841660009081526001602052604090205460ff1615801561106a57506001600160a01b03831660009081526001602052604090205460ff16155b156110bf57601f54600160a01b900460ff166110bf5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161071f565b6001600160a01b03841660009081526001602052604090205460ff161580156110f157506001600160a01b0383163014155b801561110b57506003546001600160a01b03848116911614155b80156111255750601f546001600160a01b03848116911614155b801561113f5750601a546001600160a01b03848116911614155b801561115957506017546001600160a01b03848116911614155b801561117e57506001600160a01b0383166000908152600b602052604090205460ff16155b1561121f576001600160a01b0383166000908152600860205260409020546007546111a98483611e0d565b111561121d5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161071f565b505b61122984836114b2565b61123161151f565b1561123e5761123e611577565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611290918490610fce565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff16806112dd57506001600160a01b0384166000908152600a602052604090205460ff165b6112f1576112ec85848661195e565b6112f3565b825b6001600160a01b0385166000908152600860205260409020549091506113199082610f6f565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020611ef28339815191529061135b9085815260200190565b60405180910390a3506001949350505050565b600061093783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fce565b600081836113d15760405162461bcd60e51b815260040161071f9190611b2e565b506000610fff8486611d96565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461142f918490610fce565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461145e9083610f6f565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020611ef2833981519152906114a09086815260200190565b60405180910390a35060019392505050565b600654811115806114db57506001600160a01b0382166000908152600b602052604090205460ff165b61151b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161071f565b5050565b601f546000906001600160a01b03163314801590611540575060215460ff16155b80156115555750601f54600160a81b900460ff165b80156109e4575050602080543060009081526008909252604090912054101590565b6021805460ff19166001179055601b54601c5460009161159691610868565b6115a257600c546115a5565b60005b905060006115c96002610d26601154610d2686602054610eab90919063ffffffff16565b905060006115e28260205461136e90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061161c5761161c611e3c565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061164d5761164d611e3c565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611697908690600090879030904290600401611e52565b600060405180830381600087803b1580156116b157600080fd5b505af11580156116c5573d6000803e3d6000fd5b5050505060006116de824761136e90919063ffffffff16565b905060006116f96116f0886002610f2d565b6011549061136e565b9050600061170e6002610d268481878d610eab565b9050600061172b83610d26600d5487610eab90919063ffffffff16565b9050600061174884610d26600f5488610eab90919063ffffffff16565b9050600061176585610d26600e5489610eab90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146117b7576040519150601f19603f3d011682016040523d82523d6000602084013e6117bc565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461180c576040519150601f19603f3d011682016040523d82523d6000602084013e611811565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611861576040519150601f19603f3d011682016040523d82523d6000602084013e611866565b606091505b5060009250508b15905061194657601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156118e4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119099190611ec3565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506021805460ff1916905550505050505050505050565b601554601f54600091906001600160a01b0390811690841603611984575060135461199f565b601f546001600160a01b039081169086160361199f57506014545b60006119cc60125460646119b39190611db8565b610d2684610d196011548a610eab90919063ffffffff16565b905060006119eb601154610d2660105485610eab90919063ffffffff16565b905060006119f9838361136e565b30600090815260086020526040902054909150611a169082610f6f565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611a449083610f6f565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020611ef2833981519152910160405180910390a38115611ad557600554611a9e908361136e565b6005556004546040518381526001600160a01b03918216918a1690600080516020611ef28339815191529060200160405180910390a35b611adf878461136e565b98975050505050505050565b60008060008060008060c08789031215611b0457600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015611b5b57858101830151858201604001528201611b3f565b81811115611b6d576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611b9a57600080fd5b919050565b60008060408385031215611bb257600080fd5b611bbb83611b83565b946020939093013593505050565b60008060408385031215611bdc57600080fd5b50508035926020909101359150565b600080600060608486031215611c0057600080fd5b611c0984611b83565b9250611c1760208501611b83565b9150604084013590509250925092565b600060208284031215611c3957600080fd5b5035919050565b600080600080600060a08688031215611c5857600080fd5b611c6186611b83565b9450611c6f60208701611b83565b9350611c7d60408701611b83565b9250611c8b60608701611b83565b9150611c9960808701611b83565b90509295509295909350565b600080600060608486031215611cba57600080fd5b505081359360208301359350604090920135919050565b600060208284031215611ce357600080fd5b61093782611b83565b8015158114610ea857600080fd5b60008060408385031215611d0d57600080fd5b8235611bbb81611cec565b60008060408385031215611d2b57600080fd5b611d3483611b83565b9150611d4260208401611b83565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611db357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611dd257611dd2611d80565b500290565b600060208284031215611de957600080fd5b5051919050565b600060208284031215611e0257600080fd5b815161093781611cec565b60008219821115611e2057611e20611d80565b500190565b600082821015611e3757611e37611d80565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea25784516001600160a01b031683529383019391830191600101611e7d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611ed857600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122049c46eaa43636f68919e2b14acfa7cc6bc68a1c7379868184def61e6164fe37264736f6c634300080e0033
Deployed Bytecode Sourcemap
5207:12985:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16380:606;;;;;;;;;;-1:-1:-1;16380:606:0;;;;;:::i;:::-;;:::i;:::-;;9838:142;;;;;;;;;;;;;:::i;6990:55::-;;;;;;;;;;;;;;;;;;;688:25:1;;;676:2;661:18;6990:55:0;;;;;;;;8516:80;;;;;;;;;;-1:-1:-1;8588:5:0;;;;;;;;;;;;-1:-1:-1;;;8588:5:0;;;;8516:80;;;;;;;:::i;6910:31::-;;;;;;;;;;-1:-1:-1;6910:31:0;;;;-1:-1:-1;;;6910:31:0;;;;;;;;;1491:14:1;;1484:22;1466:41;;1454:2;1439:18;6910:31:0;1326:187:1;8938:216:0;;;;;;;;;;-1:-1:-1;8938:216:0;;;;;:::i;:::-;;:::i;17968:150::-;;;;;;;;;;-1:-1:-1;17968:150:0;;;;;:::i;:::-;;:::i;8246:88::-;;;;;;;;;;-1:-1:-1;8319:12:0;;8246:88;;6227:112;;;;;;;;;;;;;;;;9456:370;;;;;;;;;;-1:-1:-1;9456:370:0;;;;;:::i;:::-;;:::i;13743:206::-;;;;;;;;;;-1:-1:-1;13743:206:0;;;;;:::i;:::-;;:::i;17643:142::-;;;;;;;;;;;;;:::i;8340:80::-;;;;;;;;;;-1:-1:-1;8340:80:0;;5546:1;2868:36:1;;2856:2;2841:18;8340:80:0;2726:184:1;16994:473:0;;;;;;;;;;-1:-1:-1;16994:473:0;;;;;:::i;:::-;;:::i;13519:215::-;;;;;;;;;;-1:-1:-1;13519:215:0;;;;;:::i;:::-;;:::i;14142:95::-;;;;;;;;;;;;;:::i;9162:122::-;;;;;;;;;;-1:-1:-1;9162:122:0;;;;;:::i;:::-;;:::i;6953:30::-;;;;;;;;;;-1:-1:-1;6953:30:0;;;;-1:-1:-1;;;6953:30:0;;;;;;8686:105;;;;;;;;;;-1:-1:-1;8686:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8770:18:0;8752:7;8770:18;;;:9;:18;;;;;;;8686:105;3264:148;;;;;;;;;;;;;:::i;5686:61::-;;;;;;;;;;;;;;;;5621:58;;;;;;;;;;;;;;;;8602:78;;;;;;;;;;-1:-1:-1;8654:7:0;3115:6;-1:-1:-1;;;;;3115:6:0;8602:78;;;-1:-1:-1;;;;;4080:32:1;;;4062:51;;4050:2;4035:18;8602:78:0;3916:203:1;13226:285:0;;;;;;;;;;-1:-1:-1;13226:285:0;;;;;:::i;:::-;;:::i;3050:79::-;;;;;;;;;;-1:-1:-1;3088:7:0;3115:6;-1:-1:-1;;;;;3115:6:0;3050:79;;8426:84;;;;;;;;;;-1:-1:-1;8500:7:0;;;;;;;;;;;;-1:-1:-1;;;8500:7:0;;;;8426:84;;6878:19;;;;;;;;;;-1:-1:-1;6878:19:0;;;;-1:-1:-1;;;;;6878:19:0;;;9292:156;;;;;;;;;;-1:-1:-1;9292:156:0;;;;;:::i;:::-;;:::i;2670:21::-;;;;;;;;;;-1:-1:-1;2670:21:0;;;;-1:-1:-1;;;;;2670:21:0;;;14246:174;;;;;;;;;;-1:-1:-1;14246:174:0;;;;;:::i;:::-;;:::i;17475:153::-;;;;;;;;;;-1:-1:-1;17475:153:0;;;;;:::i;:::-;;:::i;17793:167::-;;;;;;;;;;-1:-1:-1;17793:167:0;;;;;:::i;:::-;;:::i;8797:133::-;;;;;;;;;;-1:-1:-1;8797:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8899:19:0;;;8881:7;8899:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8797:133;13957:177;;;;;;;;;;-1:-1:-1;13957:177:0;;;;;:::i;:::-;;:::i;3420:244::-;;;;;;;;;;-1:-1:-1;3420:244:0;;;;;:::i;:::-;;:::i;13097:119::-;;;;;;;;;;;;;:::i;6808:24::-;;;;;;;;;;-1:-1:-1;6808:24:0;;;;-1:-1:-1;;;;;6808:24:0;;;16380:606;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;;;;;;;;;16566:12:::1;:28:::0;;;16605:10:::1;:24:::0;;;16640:21:::1;:46:::0;;;16697:7:::1;:18:::0;;;16726:7:::1;:18:::0;;;16766:86:::1;16736:8:::0;16766:72:::1;16707:8:::0;16766:72;16664:22;16766:72;16581:13;16618:11;16766:17:::1;:30::i;:::-;:34:::0;::::1;:58::i;:86::-;16755:8;:97:::0;16863:14:::1;:32:::0;;;16925:18:::1;16942:1;16880:15:::0;16925:18:::1;:::i;:::-;16914:8;;:29;16906:71;;;::::0;-1:-1:-1;;;16906:71:0;;5969:2:1;16906:71:0::1;::::0;::::1;5951:21:1::0;6008:2;5988:18;;;5981:30;6047:31;6027:18;;;6020:59;6096:18;;16906:71:0::1;5767:353:1::0;16906:71:0::1;16380:606:::0;;;;;;:::o;9838:142::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;9915:12:::1;::::0;9900::::1;:27:::0;;;9942:15:::1;:30:::0;9838:142::o;8938:216::-;9042:10;9013:4;9030:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9030:32:0;;;;;;;;;;:41;;;9087:37;9013:4;;9030:32;;9087:37;;;;9065:6;688:25:1;;676:2;661:18;;542:177;9087:37:0;;;;;;;;-1:-1:-1;9142:4:0;8938:216;;;;;:::o;17968:150::-;18048:4;18104:6;18072:29;18092:8;18072:19;:29::i;:::-;:38;;17968:150;-1:-1:-1;;;17968:150:0:o;9456:370::-;-1:-1:-1;;;;;9576:19:0;;9556:4;9576:19;;;:11;:19;;;;;;;;9596:10;9576:31;;;;;;;;-1:-1:-1;;9576:52:0;9573:186;;9678:69;;;;;;;;;;;-1:-1:-1;;;9678:69:0;;;;;;;;-1:-1:-1;;;;;9678:19:0;;-1:-1:-1;9678:19:0;;;:11;:19;;;;;9698:10;9678:31;;;;;;;;;;:69;;9714:6;;9678:35;:69::i;:::-;-1:-1:-1;;;;;9644:19:0;;;;;;:11;:19;;;;;;;;9664:10;9644:31;;;;;;;:103;9573:186;9778:40;9792:6;9800:9;9811:6;9778:13;:40::i;:::-;9771:47;;9456:370;;;;;;:::o;13743:206::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;13852:1:::1;13834:14;:19;;13826:28;;;::::0;::::1;;13919:4;13900:14;13885:12;;:29;;;;:::i;:::-;13884:39;;;;:::i;:::-;13866:15;:57:::0;-1:-1:-1;13743:206:0:o;17643:142::-;17771:4;;-1:-1:-1;;;;;17771:4:0;17696:7;8770:18;;;:9;:18;;;;;;17723:54;;17750:4;;-1:-1:-1;;;;;17750:4:0;8752:7;8770:18;;;:9;:18;;;;;;17723:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17716:61;;17643:142;:::o;16994:473::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;17199:21:::1;:46:::0;;-1:-1:-1;;;;;;17199:46:0;;::::1;-1:-1:-1::0;;;;;17199:46:0;;::::1;;::::0;;;17256:29:::1;:62:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17329:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;17374:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;17419:18:::1;:40:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;16994:473::o;13519:215::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;13621:14:::1;:24:::0;;;;13656:13:::1;:22:::0;13689:11:::1;:21:::0;13519:215::o;14142:95::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;14196:11:::1;:18:::0;;-1:-1:-1;;;;14196:18:0::1;-1:-1:-1::0;;;14196:18:0::1;::::0;;14142:95::o;9162:122::-;9217:4;9241:35;9249:7;-1:-1:-1;;9241:7:0;:35::i;3264:148::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;3371:1:::1;3355:6:::0;;3334:40:::1;::::0;-1:-1:-1;;;;;3355:6:0;;::::1;::::0;3334:40:::1;::::0;3371:1;;3334:40:::1;3402:1;3385:19:::0;;-1:-1:-1;;;;;;3385:19:0::1;::::0;;3264:148::o;13226:285::-;13308:4;13335:6;13345:1;13335:11;13332:95;;13371:44;;-1:-1:-1;;;13371:44:0;;13409:4;13371:44;;;4062:51:1;-1:-1:-1;;;;;13371:29:0;;;;;4035:18:1;;13371:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13362:53;;13332:95;13473:21;;13444:59;;-1:-1:-1;;;13444:59:0;;-1:-1:-1;;;;;13473:21:0;;;13444:59;;;6661:51:1;6728:18;;;6721:34;;;13444:28:0;;;;;;6634:18:1;;13444:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9292:156::-;9372:4;9396:44;9410:10;9422:9;9433:6;9396:13;:44::i;14246:174::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;14335:15:::1;:25:::0;;;;14371:26:::1;:41:::0;14246:174::o;17475:153::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;17564:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;17564:22:0::1;-1:-1:-1::0;;;;17564:22:0;;::::1;::::0;;;::::1;::::0;;;17597:13:::1;:23:::0;17475:153::o;17793:167::-;17861:7;17888:64;17929:22;:20;:22::i;:::-;17911:4;;-1:-1:-1;;;;;17911:4:0;8752:7;8770:18;;;:9;:18;;;;;;17888:36;;17901:22;;17921:1;;17901:15;:19;;:22::i;:::-;17888:8;;:12;:36::i;:::-;:40;;:64::i;13957:177::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;14060:1:::1;14044:12;:17;;14036:26;;;::::0;::::1;;14122:4;14105:12;14090;;:27;;;;:::i;:::-;14089:37;;;;:::i;:::-;14074:12;:52:::0;-1:-1:-1;13957:177:0:o;3420:244::-;3177:6;;-1:-1:-1;;;;;3177:6:0;2487:10;3177:22;3169:67;;;;-1:-1:-1;;;3169:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3509:22:0;::::1;3501:73;;;::::0;-1:-1:-1;;;3501:73:0;;7218:2:1;3501:73:0::1;::::0;::::1;7200:21:1::0;7257:2;7237:18;;;7230:30;7296:34;7276:18;;;7269:62;-1:-1:-1;;;7347:18:1;;;7340:36;7393:19;;3501:73:0::1;7016:402:1::0;3501:73:0::1;3611:6;::::0;;3590:38:::1;::::0;-1:-1:-1;;;;;3590:38:0;;::::1;::::0;3611:6;::::1;::::0;3590:38:::1;::::0;::::1;3639:6;:17:::0;;-1:-1:-1;;;;;;3639:17:0::1;-1:-1:-1::0;;;;;3639:17:0;;;::::1;::::0;;;::::1;::::0;;3420:244::o;13097:119::-;13144:21;;13136:62;;-1:-1:-1;;;;;13144:21:0;;;;13176;13136:62;;;;;13144:21;13136:62;13144:21;13136:62;13176:21;13144;13136:62;;;;;;;;;;;;;;;;;;;;;13097:119::o;1758:250::-;1816:7;1840:1;1845;1840:6;1836:47;;-1:-1:-1;1870:1:0;1863:8;;1836:47;1895:9;1907:5;1911:1;1907;:5;:::i;:::-;1895:17;-1:-1:-1;1940:1:0;1931:5;1935:1;1895:17;1931:5;:::i;:::-;:10;1923:56;;;;-1:-1:-1;;;1923:56:0;;7625:2:1;1923:56:0;;;7607:21:1;7664:2;7644:18;;;7637:30;7703:34;7683:18;;;7676:62;-1:-1:-1;;;7754:18:1;;;7747:31;7795:19;;1923:56:0;7423:397:1;2014:132:0;2072:7;2099:39;2103:1;2106;2099:39;;;;;;;;;;;;;;;;;:3;:39::i;1231:181::-;1289:7;;1321:5;1325:1;1321;:5;:::i;:::-;1309:17;;1350:1;1345;:6;;1337:46;;;;-1:-1:-1;;;1337:46:0;;8160:2:1;1337:46:0;;;8142:21:1;8199:2;8179:18;;;8172:30;8238:29;8218:18;;;8211:57;8285:18;;1337:46:0;7958:351:1;1560:192:0;1646:7;1682:12;1674:6;;;;1666:29;;;;-1:-1:-1;;;1666:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1706:9:0;1718:5;1722:1;1718;:5;:::i;:::-;1706:17;1560:192;-1:-1:-1;;;;;1560:192:0:o;9994:1252::-;10106:6;;10086:4;;10106:6;;10103:63;;;10122:41;10137:6;10145:9;10156:6;10122:14;:41::i;:::-;10115:48;;;;10103:63;-1:-1:-1;;;;;10182:22:0;;;;;;:14;:22;;;;;;;;10181:23;:53;;;;-1:-1:-1;;;;;;10209:25:0;;;;;;:14;:25;;;;;;;;10208:26;10181:53;10178:139;;;10258:11;;-1:-1:-1;;;10258:11:0;;;;10250:43;;;;-1:-1:-1;;;10250:43:0;;8646:2:1;10250:43:0;;;8628:21:1;8685:2;8665:18;;;8658:30;-1:-1:-1;;;8704:18:1;;;8697:50;8764:18;;10250:43:0;8444:344:1;10250:43:0;-1:-1:-1;;;;;10359:22:0;;;;;;:14;:22;;;;;;;;10358:23;:53;;;;-1:-1:-1;;;;;;10385:26:0;;10406:4;10385:26;;10358:53;:84;;;;-1:-1:-1;10437:4:0;;-1:-1:-1;;;;;10416:26:0;;;10437:4;;10416:26;;10358:84;:105;;;;-1:-1:-1;10459:4:0;;-1:-1:-1;;;;;10446:17:0;;;10459:4;;10446:17;;10358:105;:137;;;;-1:-1:-1;10480:15:0;;-1:-1:-1;;;;;10467:28:0;;;10480:15;;10467:28;;10358:137;:183;;;;-1:-1:-1;10512:29:0;;-1:-1:-1;;;;;10499:42:0;;;10512:29;;10499:42;;10358:183;:214;;;;-1:-1:-1;;;;;;10546:26:0;;;;;;:15;:26;;;;;;;;10545:27;10358:214;10354:406;;;-1:-1:-1;;;;;8770:18:0;;10588;8770;;;:9;:18;;;;;;10677:15;;10653:19;10666:6;8770:18;10653:19;:::i;:::-;10652:40;;10644:114;;;;-1:-1:-1;;;10644:114:0;;8995:2:1;10644:114:0;;;8977:21:1;9034:2;9014:18;;;9007:30;9073:34;9053:18;;;9046:62;9144:32;9124:18;;;9117:60;9194:19;;10644:114:0;8793:426:1;10644:114:0;10573:187;10354:406;10782:28;10795:6;10803;10782:12;:28::i;:::-;10827:16;:14;:16::i;:::-;10824:35;;;10846:10;:8;:10::i;:::-;10897:53;;;;;;;;;;;-1:-1:-1;;;10897:53:0;;;;;;;;-1:-1:-1;;;;;10897:17:0;;-1:-1:-1;10897:17:0;;;:9;:17;;;;;;;;:53;;10919:6;;10897:21;:53::i;:::-;-1:-1:-1;;;;;10877:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10989:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11012:22:0;;;;;;:11;:22;;;;;;;;10989:45;10988:93;;11047:34;11055:6;11063;11071:9;11047:7;:34::i;:::-;10988:93;;;11038:6;10988:93;-1:-1:-1;;;;;11115:20:0;;;;;;:9;:20;;;;;;10963:118;;-1:-1:-1;11115:40:0;;10963:118;11115:24;:40::i;:::-;-1:-1:-1;;;;;11092:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11173:43;;;;;;-1:-1:-1;;;;;;;;;;;11173:43:0;;;11201:14;688:25:1;;676:2;661:18;;542:177;11173:43:0;;;;;;;;-1:-1:-1;11234:4:0;;9994:1252;-1:-1:-1;;;;9994:1252:0:o;1418:136::-;1476:7;1503:43;1507:1;1510;1503:43;;;;;;;;;;;;;;;;;:3;:43::i;2152:189::-;2238:7;2273:12;2266:5;2258:28;;;;-1:-1:-1;;;2258:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2297:9:0;2309:5;2313:1;2309;:5;:::i;11258:330::-;11388:53;;;;;;;;;;;-1:-1:-1;;;11388:53:0;;;;;;;;-1:-1:-1;;;;;11388:17:0;;11351:4;11388:17;;;:9;:17;;;;;;;:53;;11410:6;;11388:21;:53::i;:::-;-1:-1:-1;;;;;11368:17:0;;;;;;;:9;:17;;;;;;:73;;;;11475:20;;;;;;;:32;;11500:6;11475:24;:32::i;:::-;-1:-1:-1;;;;;11452:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11523:35;;;;;;-1:-1:-1;;;;;;;;;;;11523:35:0;;;11551:6;688:25:1;;676:2;661:18;;542:177;11523:35:0;;;;;;;;-1:-1:-1;11576:4:0;11258:330;;;;;:::o;11596:166::-;11693:12;;11683:6;:22;;:49;;;-1:-1:-1;;;;;;11709:23:0;;;;;;:15;:23;;;;;;;;11683:49;11675:79;;;;-1:-1:-1;;;11675:79:0;;9426:2:1;11675:79:0;;;9408:21:1;9465:2;9445:18;;;9438:30;-1:-1:-1;;;9484:18:1;;;9477:47;9541:18;;11675:79:0;9224:341:1;11675:79:0;11596:166;;:::o;12888:197::-;12975:4;;12937;;-1:-1:-1;;;;;12975:4:0;12961:10;:18;;;;:38;;-1:-1:-1;12993:6:0;;;;12992:7;12961:38;:62;;;;-1:-1:-1;13012:11:0;;-1:-1:-1;;;13012:11:0;;;;12961:62;:116;;;;-1:-1:-1;;13064:13:0;;;13054:4;13036:24;;;;:9;:24;;;;;;;;:41;;;12888:197::o;14455:1911::-;7093:6;:13;;-1:-1:-1;;7093:13:0;7102:4;7093:13;;;14550:15:::1;::::0;14567:26:::1;::::0;7093:6;;14534:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14601:12;;14534:79;;;14597:1;14534:79;14504:109;;14624:23;14650:59;14707:1;14650:52;14693:8;;14650:38;14668:19;14650:13;;:17;;:38;;;;:::i;:59::-;14624:85;;14720:20;14743:34;14761:15;14743:13;;:17;;:34;;;;:::i;:::-;14814:16;::::0;;14828:1:::1;14814:16:::0;;;;;::::1;::::0;;14720:57;;-1:-1:-1;14790:21:0::1;::::0;14814:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14814:16:0::1;14790:40;;14859:4;14841;14846:1;14841:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14841:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14885:4:::1;::::0;14875:7;;14885:4;::::1;::::0;14875;;14885;;14875:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14875:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14960:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14960:188:0;;14926:21:::1;::::0;14960:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15032:12;;14902:21:::1;::::0;15075:4;;15102::::1;::::0;15122:15:::1;::::0;14960:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15161:17;15181:40;15207:13;15181:21;:25;;:40;;;;:::i;:::-;15161:60:::0;-1:-1:-1;15234:19:0::1;15256:40;15269:26;:19:::0;15293:1:::1;15269:23;:26::i;:::-;15256:8;::::0;;:12:::1;:40::i;:::-;15234:62:::0;-1:-1:-1;15317:26:0::1;15346:58;15402:1;15346:51;15234:62:::0;15346:51;:9;15360:19;15346:13:::1;:34::i;:58::-;15317:87;;15415:35;15453:53;15494:11;15453:36;15467:21;;15453:9;:13;;:36;;;;:::i;:53::-;15415:91;;15517:24;15544:42;15574:11;15544:25;15558:10;;15544:9;:13;;:25;;;;:::i;:42::-;15517:69;;15597:20;15620:39;15647:11;15620:22;15634:7;;15620:9;:13;;:22;;;;:::i;:39::-;15701:29;::::0;15693:83:::1;::::0;15597:62;;-1:-1:-1;15673:15:0::1;::::0;-1:-1:-1;;;;;15701:29:0;;::::1;::::0;15744:27;;15673:15;15693:83;15673:15;15693:83;15744:27;15701:29;15693:83:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15811:15:0::1;::::0;15803:54:::1;::::0;15672:104;;-1:-1:-1;;;;;;15811:15:0::1;::::0;15840:12;;15803:54:::1;::::0;;;15840:12;15811:15;15803:54:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15892:18:0::1;::::0;15884:61:::1;::::0;15787:70;;-1:-1:-1;;;;;;15892:18:0::1;::::0;15924:16;;15884:61:::1;::::0;;;15924:16;15892:18;15884:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15979:5:0::1;::::0;-1:-1:-1;;16000:19:0;;;-1:-1:-1;15997:362:0::1;;16035:6;::::0;16209:21:::1;::::0;16035:244:::1;::::0;-1:-1:-1;;;16035:244:0;;16111:4:::1;16035:244;::::0;::::1;11370:34:1::0;11420:18;;;11413:34;;;16035:6:0::1;11463:18:1::0;;;11456:34;;;11506:18;;;11499:34;-1:-1:-1;;;;;16209:21:0;;::::1;11549:19:1::0;;;11542:44;16249:15:0::1;11602:19:1::0;;;11595:35;16035:6:0;::::1;::::0;:22:::1;::::0;16065:18;;11304:19:1;;16035:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16299:48:0::1;::::0;;12126:25:1;;;12182:2;12167:18;;12160:34;;;16299:48:0::1;::::0;-1:-1:-1;12099:18:1;16299:48:0::1;;;;;;;15997:362;-1:-1:-1::0;;7111:6:0;:14;;-1:-1:-1;;7111:14:0;;;-1:-1:-1;;;;;;;;;;14455:1911:0:o;11892:988::-;12026:11;;12066:4;;11978:7;;12026:11;-1:-1:-1;;;;;12066:4:0;;;12053:17;;;;12050:148;;-1:-1:-1;12097:14:0;;12050:148;;;12142:4;;-1:-1:-1;;;;;12142:4:0;;;12132:14;;;;12129:69;;-1:-1:-1;12173:13:0;;12129:69;12210:17;12230:59;12268:14;;12285:3;12268:20;;;;:::i;:::-;12230:33;12255:7;12230:20;12241:8;;12230:6;:10;;:20;;;;:::i;:59::-;12210:79;;12300:18;12321:36;12348:8;;12321:22;12335:7;;12321:9;:13;;:22;;;;:::i;:36::-;12300:57;-1:-1:-1;12368:22:0;12393:25;:9;12300:57;12393:13;:25::i;:::-;12476:4;12458:24;;;;:9;:24;;;;;;12368:50;;-1:-1:-1;12458:44:0;;12368:50;12458:28;:44::i;:::-;12449:4;12431:24;;;;:9;:24;;;;;;:71;;;;12552:15;;-1:-1:-1;;;;;12552:15:0;12542:26;;;;:42;;12573:10;12542:30;:42::i;:::-;12523:15;;-1:-1:-1;;;;;12523:15:0;;;12513:26;;;;:9;:26;;;;;;;;;:71;;;;12600:47;688:25:1;;;12625:4:0;;12600:47;;;;-1:-1:-1;;;;;;;;;;;12600:47:0;661:18:1;12600:47:0;;;;;;;12681:14;;12678:154;;12726:12;;:28;;12743:10;12726:16;:28::i;:::-;12711:12;:43;12791:4;;12774:34;;688:25:1;;;-1:-1:-1;;;;;12791:4:0;;;;12774:34;;;-1:-1:-1;;;;;;;;;;;12774:34:0;676:2:1;661:18;12774:34:0;;;;;;;12678:154;12851:21;:6;12862:9;12851:10;:21::i;:::-;12844:28;11892:988;-1:-1:-1;;;;;;;;11892:988:0:o;14:523:1:-;118:6;126;134;142;150;158;211:3;199:9;190:7;186:23;182:33;179:53;;;228:1;225;218:12;179:53;-1:-1:-1;;251:23:1;;;321:2;306:18;;293:32;;-1:-1:-1;372:2:1;357:18;;344:32;;423:2;408:18;;395:32;;-1:-1:-1;474:3:1;459:19;;446:33;;-1:-1:-1;526:3:1;511:19;498:33;;-1:-1:-1;14:523:1;-1:-1:-1;14:523:1:o;724:597::-;836:4;865:2;894;883:9;876:21;926:6;920:13;969:6;964:2;953:9;949:18;942:34;994:1;1004:140;1018:6;1015:1;1012:13;1004:140;;;1113:14;;;1109:23;;1103:30;1079:17;;;1098:2;1075:26;1068:66;1033:10;;1004:140;;;1162:6;1159:1;1156:13;1153:91;;;1232:1;1227:2;1218:6;1207:9;1203:22;1199:31;1192:42;1153:91;-1:-1:-1;1305:2:1;1284:15;-1:-1:-1;;1280:29:1;1265:45;;;;1312:2;1261:54;;724:597;-1:-1:-1;;;724:597:1:o;1518:173::-;1586:20;;-1:-1:-1;;;;;1635:31:1;;1625:42;;1615:70;;1681:1;1678;1671:12;1615:70;1518:173;;;:::o;1696:254::-;1764:6;1772;1825:2;1813:9;1804:7;1800:23;1796:32;1793:52;;;1841:1;1838;1831:12;1793:52;1864:29;1883:9;1864:29;:::i;:::-;1854:39;1940:2;1925:18;;;;1912:32;;-1:-1:-1;;;1696:254:1:o;1955:248::-;2023:6;2031;2084:2;2072:9;2063:7;2059:23;2055:32;2052:52;;;2100:1;2097;2090:12;2052:52;-1:-1:-1;;2123:23:1;;;2193:2;2178:18;;;2165:32;;-1:-1:-1;1955:248:1:o;2208:328::-;2285:6;2293;2301;2354:2;2342:9;2333:7;2329:23;2325:32;2322:52;;;2370:1;2367;2360:12;2322:52;2393:29;2412:9;2393:29;:::i;:::-;2383:39;;2441:38;2475:2;2464:9;2460:18;2441:38;:::i;:::-;2431:48;;2526:2;2515:9;2511:18;2498:32;2488:42;;2208:328;;;;;:::o;2541:180::-;2600:6;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;2692:23:1;;2541:180;-1:-1:-1;2541:180:1:o;2915:484::-;3010:6;3018;3026;3034;3042;3095:3;3083:9;3074:7;3070:23;3066:33;3063:53;;;3112:1;3109;3102:12;3063:53;3135:29;3154:9;3135:29;:::i;:::-;3125:39;;3183:38;3217:2;3206:9;3202:18;3183:38;:::i;:::-;3173:48;;3240:38;3274:2;3263:9;3259:18;3240:38;:::i;:::-;3230:48;;3297:38;3331:2;3320:9;3316:18;3297:38;:::i;:::-;3287:48;;3354:39;3388:3;3377:9;3373:19;3354:39;:::i;:::-;3344:49;;2915:484;;;;;;;;:::o;3404:316::-;3481:6;3489;3497;3550:2;3538:9;3529:7;3525:23;3521:32;3518:52;;;3566:1;3563;3556:12;3518:52;-1:-1:-1;;3589:23:1;;;3659:2;3644:18;;3631:32;;-1:-1:-1;3710:2:1;3695:18;;;3682:32;;3404:316;-1:-1:-1;3404:316:1:o;3725:186::-;3784:6;3837:2;3825:9;3816:7;3812:23;3808:32;3805:52;;;3853:1;3850;3843:12;3805:52;3876:29;3895:9;3876:29;:::i;4124:118::-;4210:5;4203:13;4196:21;4189:5;4186:32;4176:60;;4232:1;4229;4222:12;4247:309;4312:6;4320;4373:2;4361:9;4352:7;4348:23;4344:32;4341:52;;;4389:1;4386;4379:12;4341:52;4428:9;4415:23;4447:28;4469:5;4447:28;:::i;4561:260::-;4629:6;4637;4690:2;4678:9;4669:7;4665:23;4661:32;4658:52;;;4706:1;4703;4696:12;4658:52;4729:29;4748:9;4729:29;:::i;:::-;4719:39;;4777:38;4811:2;4800:9;4796:18;4777:38;:::i;:::-;4767:48;;4561:260;;;;;:::o;5052:356::-;5254:2;5236:21;;;5273:18;;;5266:30;5332:34;5327:2;5312:18;;5305:62;5399:2;5384:18;;5052:356::o;5413:127::-;5474:10;5469:3;5465:20;5462:1;5455:31;5505:4;5502:1;5495:15;5529:4;5526:1;5519:15;5545:217;5585:1;5611;5601:132;;5655:10;5650:3;5646:20;5643:1;5636:31;5690:4;5687:1;5680:15;5718:4;5715:1;5708:15;5601:132;-1:-1:-1;5747:9:1;;5545:217::o;6125:168::-;6165:7;6231:1;6227;6223:6;6219:14;6216:1;6213:21;6208:1;6201:9;6194:17;6190:45;6187:71;;;6238:18;;:::i;:::-;-1:-1:-1;6278:9:1;;6125:168::o;6298:184::-;6368:6;6421:2;6409:9;6400:7;6396:23;6392:32;6389:52;;;6437:1;6434;6427:12;6389:52;-1:-1:-1;6460:16:1;;6298:184;-1:-1:-1;6298:184:1:o;6766:245::-;6833:6;6886:2;6874:9;6865:7;6861:23;6857:32;6854:52;;;6902:1;6899;6892:12;6854:52;6934:9;6928:16;6953:28;6975:5;6953:28;:::i;7825:128::-;7865:3;7896:1;7892:6;7889:1;7886:13;7883:39;;;7902:18;;:::i;:::-;-1:-1:-1;7938:9:1;;7825:128::o;8314:125::-;8354:4;8382:1;8379;8376:8;8373:34;;;8387:18;;:::i;:::-;-1:-1:-1;8424:9:1;;8314:125::o;9702:127::-;9763:10;9758:3;9754:20;9751:1;9744:31;9794:4;9791:1;9784:15;9818:4;9815:1;9808:15;9834:980;10096:4;10144:3;10133:9;10129:19;10175:6;10164:9;10157:25;10201:2;10239:6;10234:2;10223:9;10219:18;10212:34;10282:3;10277:2;10266:9;10262:18;10255:31;10306:6;10341;10335:13;10372:6;10364;10357:22;10410:3;10399:9;10395:19;10388:26;;10449:2;10441:6;10437:15;10423:29;;10470:1;10480:195;10494:6;10491:1;10488:13;10480:195;;;10559:13;;-1:-1:-1;;;;;10555:39:1;10543:52;;10650:15;;;;10615:12;;;;10591:1;10509:9;10480:195;;;-1:-1:-1;;;;;;;10731:32:1;;;;10726:2;10711:18;;10704:60;-1:-1:-1;;;10795:3:1;10780:19;10773:35;10692:3;9834:980;-1:-1:-1;;;9834:980:1:o;11641:306::-;11729:6;11737;11745;11798:2;11786:9;11777:7;11773:23;11769:32;11766:52;;;11814:1;11811;11804:12;11766:52;11843:9;11837:16;11827:26;;11893:2;11882:9;11878:18;11872:25;11862:35;;11937:2;11926:9;11922:18;11916:25;11906:35;;11641:306;;;;;:::o
Swarm Source
ipfs://49c46eaa43636f68919e2b14acfa7cc6bc68a1c7379868184def61e6164fe372
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.