Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 SB
Holders
79
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
12,534.54192974816433351 SBValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
StreamerBank
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-03 */ /** *Submitted for verification at Etherscan.io on 2022-05-07 */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.13; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * ERC20 standard interface. */ interface IERC20 { 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); } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address internal owner; constructor(address _owner) { owner = _owner; } /** * Function modifier to require caller to be contract deployer */ modifier onlyOwner() { require(isOwner(msg.sender), "!Owner"); _; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } 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 IDividendDistributor { function setShare(address shareholder, uint256 amount) external; function deposit(uint256 amount) external; function claimDividend(address shareholder) external; function getDividendsClaimedOf (address shareholder) external returns (uint256); } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address public _token; address public _owner; address public immutable DividendToken = address(0x0e8D2EB7D6bDF28393c25a1966385Ad32Ff0259a); struct Share { uint256 amount; uint256 totalExcluded; uint256 totalClaimed; } address[] private shareholders; mapping (address => uint256) private shareholderIndexes; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalClaimed; uint256 public dividendsPerShare; uint256 private dividendsPerShareAccuracyFactor = 10 ** 36; modifier onlyToken() { require(msg.sender == _token); _; } modifier onlyOwner() { require(msg.sender == _owner); _; } constructor (address owner) { _token = msg.sender; _owner = owner; } receive() external payable { } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit(uint256 amount) external override onlyToken { if (amount > 0) { totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getClaimableDividendOf(shareholder); if(amount > 0){ totalClaimed = totalClaimed.add(amount); shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); IERC20(DividendToken).transfer(shareholder, amount); } } function claimDividend(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function manualSend(uint256 amount, address holder) external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(holder).transfer(amount > 0 ? amount : contractETHBalance); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { require (shares[shareholder].amount > 0, "You're not a StreamerBank shareholder!"); return shares[shareholder].totalClaimed; } } contract StreamerBank is IERC20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; address public immutable DividendToken = address(0x0e8D2EB7D6bDF28393c25a1966385Ad32Ff0259a); //Dividend Token OR WETH contract string private constant _name = "StreamerBank"; string private constant _symbol = "SB"; uint8 private constant _decimals = 18; uint256 private _totalSupply = 1000000 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private cooldown; mapping (address => bool) private isFeeExempt; mapping (address => bool) private isDividendExempt; mapping (address => bool) private isBot; uint256 maxTxTreshold = 2; uint256 private swapTreshold =2; uint256 private totalFee = 10; uint256 private feeDenominator = 100; address payable public marketingWallet = payable(0xB7225FF83A1fdAFC5429FF9854Ee435B2CfbFe81); IDEXRouter public router; address public pair; bool private buyLimit = true; uint256 private maxBuy = _totalSupply*maxTxTreshold/100; uint256 public numTokensSellToAddToLiquidity = _totalSupply * swapTreshold /1000; DividendDistributor private distributor; bool public blacklistEnabled = true; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor ( address _owner ) Auth(_owner) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; distributor = new DividendDistributor(_owner); isFeeExempt[_owner] = true; isFeeExempt[marketingWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _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 _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (blacklistEnabled) { require (!isBot[sender] && !isBot[recipient], "Bot!"); } if (buyLimit) { if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir"); } if(inSwap){ return _basicTransfer(sender, recipient, amount); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0); if(shouldSwapBack){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) && (sender == pair || recipient == pair) ); } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount; feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapBack() internal swapping { uint256 amountToSwap = balanceOf(address(this)); swapTokensForEth(amountToSwap.div(5).mul(3)); swapTokensForDividendToken(amountToSwap.div(5)); uint256 dividends = IERC20(DividendToken).balanceOf(address(this)); bool success = IERC20(DividendToken).transfer(address(distributor), dividends); if (success) { distributor.deposit(dividends); } payable(marketingWallet).transfer(address(this).balance); } function swapTokensForDividendToken(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = WETH; path[2] = DividendToken; // make the swap router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp ); } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setFee (uint256 _fee) external onlyOwner { require (_fee <= 14, "Fee can't exceed 14%"); totalFee = _fee; } function manualSend() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(marketingWallet).transfer(contractETHBalance); } function claimDividend() external { distributor.claimDividend(msg.sender); } function claimDividend(address holder) external onlyOwner { distributor.claimDividend(holder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { return distributor.getClaimableDividendOf(shareholder); } function manualBurn(uint256 amount) external onlyOwner returns (bool) { return _basicTransfer(address(this), DEAD, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function setMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = payable(_marketingWallet); } function getTotalDividends() external view returns (uint256) { return distributor.totalDividends(); } function getTotalClaimed() external view returns (uint256) { return distributor.totalClaimed(); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { return distributor.getDividendsClaimedOf(shareholder); } function removeBuyLimit() external onlyOwner { buyLimit = false; } function checkBot(address account) public view returns (bool) { return isBot[account]; } function setSwapThresholdAmount (uint256 amount) external onlyOwner { require (amount <= _totalSupply.div(100), "can't exceed 1%"); numTokensSellToAddToLiquidity = amount * 10 ** _decimals; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"address","name":"owner","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":"DividendToken","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":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","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":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600280546001600160a01b031990811661dead17909155600380549091169055730e8d2eb7d6bdf28393c25a1966385ad32ff0259a6080526200004a6012600a62000548565b6200005990620f424062000560565b600481905560058190556002600c819055600d819055600a600e556064600f819055601080546001600160a01b03191673b7225ff83a1fdafc5429ff9854ee435b2cfbfe811790556012805460ff60a01b1916600160a01b17905591620000c1919062000560565b620000cd919062000582565b6013556103e8600d54600454620000e5919062000560565b620000f1919062000582565b6014556015805460ff60a01b1916600160a01b1790553480156200011457600080fd5b506040516200332f3803806200332f8339810160408190526200013791620005a5565b600080546001600160a01b03199081166001600160a01b0384161790915560118054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d69190620005a5565b600180546001600160a01b0319166001600160a01b039283161790556011546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025b9190620005a5565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d39190620005a5565b601280546001600160a01b0319166001600160a01b0392831617905530600090815260076020908152604080832060115490941683529290528190206000199055518190620003229062000425565b6001600160a01b039091168152602001604051809103906000f0801580156200034f573d6000803e3d6000fd5b50601580546001600160a01b0319166001600160a01b039283161790558181166000818152600960209081526040808320805460ff19908116600190811790925560105487168552828520805482168317905560125487168552600a8452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005d0565b610da5806200258a83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200048a5781600019048211156200046e576200046e62000433565b808516156200047c57918102915b93841c93908002906200044e565b509250929050565b600082620004a35750600162000542565b81620004b25750600062000542565b8160018114620004cb5760028114620004d657620004f6565b600191505062000542565b60ff841115620004ea57620004ea62000433565b50506001821b62000542565b5060208310610133831016604e8410600b84101617156200051b575081810a62000542565b62000527838362000449565b80600019048211156200053e576200053e62000433565b0290505b92915050565b60006200055960ff84168362000492565b9392505050565b60008160001904831182151516156200057d576200057d62000433565b500290565b600082620005a057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005b857600080fd5b81516001600160a01b03811681146200055957600080fd5b608051611f89620006016000396000818161067501528181611637015281816116d90152611b000152611f896000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063bffb691d116100a0578063f0fc6bca1161006f578063f0fc6bca14610697578063f2fde38b146106ac578063f4293890146106cc578063f708a64f146106e1578063f887ea401461070157600080fd5b8063bffb691d146105e6578063d12a768814610607578063dd62ed3e1461061d578063e76ed0e31461066357600080fd5b80638ecc37fb116100e75780638ecc37fb1461052257806395d89b4114610542578063a8aa1b311461056d578063a9059cbb1461058d578063b1a4e0dc146105ad57600080fd5b806370a0823114610481578063736a83a1146104b757806375f0a874146104cc578063893d20e81461050457600080fd5b8063313ce5671161019b5780635cc33f741161016a5780635cc33f74146103ec5780635d098b381461040c578063658d4b7f1461042c57806367ee5f091461044c57806369fe0e2d1461046157600080fd5b8063313ce5671461037b578063342aa8b5146103975780633e07ce5b146103b7578063571ac8b0146103cc57600080fd5b806323b63585116101e257806323b63585146102d757806323b872dd146102f757806329e04b4a146103175780632b112e49146103375780632f54bf6e1461034c57600080fd5b806306fdde031461021f578063095ea7b31461026657806315f7e05e1461029657806318160ddd146102b857600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600c81526b53747265616d657242616e6b60a01b60208201525b60405161025d9190611b78565b60405180910390f35b34801561027257600080fd5b50610286610281366004611be5565b610721565b604051901515815260200161025d565b3480156102a257600080fd5b506102b66102b1366004611c11565b61078e565b005b3480156102c457600080fd5b506004545b60405190815260200161025d565b3480156102e357600080fd5b506102866102f2366004611c2e565b610823565b34801561030357600080fd5b50610286610312366004611c47565b610866565b34801561032357600080fd5b506102b6610332366004611c2e565b610928565b34801561034357600080fd5b506102c96109bd565b34801561035857600080fd5b50610286610367366004611c11565b6000546001600160a01b0391821691161490565b34801561038757600080fd5b506040516012815260200161025d565b3480156103a357600080fd5b506102b66103b2366004611c96565b610a0f565b3480156103c357600080fd5b506102b6610a6b565b3480156103d857600080fd5b506102866103e7366004611c11565b610aa4565b3480156103f857600080fd5b506102c9610407366004611c11565b610ab2565b34801561041857600080fd5b506102b6610427366004611c11565b610b22565b34801561043857600080fd5b506102b6610447366004611c96565b610b6e565b34801561045857600080fd5b506102c9610bc3565b34801561046d57600080fd5b506102b661047c366004611c2e565b610c31565b34801561048d57600080fd5b506102c961049c366004611c11565b6001600160a01b031660009081526006602052604090205490565b3480156104c357600080fd5b506102c9610ca8565b3480156104d857600080fd5b506010546104ec906001600160a01b031681565b6040516001600160a01b03909116815260200161025d565b34801561051057600080fd5b506000546001600160a01b03166104ec565b34801561052e57600080fd5b506102c961053d366004611c11565b610cf2565b34801561054e57600080fd5b5060408051808201909152600281526129a160f11b6020820152610250565b34801561057957600080fd5b506012546104ec906001600160a01b031681565b34801561059957600080fd5b506102866105a8366004611be5565b610d25565b3480156105b957600080fd5b506102866105c8366004611c11565b6001600160a01b03166000908152600b602052604090205460ff1690565b3480156105f257600080fd5b5060155461028690600160a01b900460ff1681565b34801561061357600080fd5b506102c960145481565b34801561062957600080fd5b506102c9610638366004611ccf565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561066f57600080fd5b506104ec7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a357600080fd5b506102b6610d32565b3480156106b857600080fd5b506102b66106c7366004611c11565b610d91565b3480156106d857600080fd5b506102b6610e0f565b3480156106ed57600080fd5b506102b66106fc366004611c96565b610e73565b34801561070d57600080fd5b506011546104ec906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061077c9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107c15760405162461bcd60e51b81526004016107b890611cfd565b60405180910390fd5b601554604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561080857600080fd5b505af115801561081c573d6000803e3d6000fd5b5050505050565b600080546001600160a01b0316331461084e5760405162461bcd60e51b81526004016107b890611cfd565b6002546107889030906001600160a01b031684610ea7565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610913576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108ee918490610f8d565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61091e848484610fc7565b90505b9392505050565b6000546001600160a01b031633146109525760405162461bcd60e51b81526004016107b890611cfd565b6004546109609060646113d5565b8111156109a15760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b60448201526064016107b8565b6109ad6012600a611e17565b6109b79082611e26565b60145550565b6003546001600160a01b0316600090815260066020526040812054610a0a906002546001600160a01b0316600090815260066020526040902054610a049060045490611417565b90611417565b905090565b6000546001600160a01b03163314610a395760405162461bcd60e51b81526004016107b890611cfd565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610a678282611459565b5050565b6000546001600160a01b03163314610a955760405162461bcd60e51b81526004016107b890611cfd565b6012805460ff60a01b19169055565b600061078882600019610721565b601554604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610afe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107889190611e45565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b81526004016107b890611cfd565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b985760405162461bcd60e51b81526004016107b890611cfd565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6015546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a9190611e45565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016107b890611cfd565b600e811115610ca35760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031342560601b60448201526064016107b8565b600e55565b6015546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c0d573d6000803e3d6000fd5b601554604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610ae1565b6000610921338484610fc7565b601554604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610dbb5760405162461bcd60e51b81526004016107b890611cfd565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610e395760405162461bcd60e51b81526004016107b890611cfd565b60105460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a67573d6000803e3d6000fd5b6000546001600160a01b03163314610e9d5760405162461bcd60e51b81526004016107b890611cfd565b610a678282611459565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610ef8918490610f8d565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610f27908361156a565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f7b9086815260200190565b60405180910390a35060019392505050565b60008184841115610fb15760405162461bcd60e51b81526004016107b89190611b78565b506000610fbe8486611e5e565b95945050505050565b601554600090600160a01b900460ff1615611053576001600160a01b0384166000908152600b602052604090205460ff1615801561101e57506001600160a01b0383166000908152600b602052604090205460ff16155b6110535760405162461bcd60e51b81526004016107b890602080825260049082015263426f742160e01b604082015260600190565b601254600160a01b900460ff16156110d7576000546001600160a01b0385811691161480159061109157506000546001600160a01b03848116911614155b156110d7576013548211156110d75760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b60448201526064016107b8565b601554600160a81b900460ff16156110fb576110f4848484610ea7565b9050610921565b30600090815260066020526040812054601454909190821080159190829061113057506012546001600160a01b038781169116145b8015611149575030600090815260066020526040812054115b90508015611159576111596115c9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546111ab918790610f8d565b6001600160a01b0388166000908152600660205260408120919091556111d188886117fb565b6111db57856111e5565b6111e58887611870565b6001600160a01b03881660009081526006602052604090205490915061120b908261156a565b6001600160a01b0380891660009081526006602052604090209190915560125489821691161480159061125757506001600160a01b0388166000908152600a602052604090205460ff16155b156112cd576015546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156112ba57600080fd5b505af19250505080156112cb575060015b505b6012546001600160a01b0388811691161480159061130457506001600160a01b0387166000908152600a602052604090205460ff16155b1561137a576015546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561136757600080fd5b505af1925050508015611378575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113bf91815260200190565b60405180910390a3506001979650505050505050565b600061092183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061191c565b600061092183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f8d565b6001600160a01b038216301480159061148057506012546001600160a01b03838116911614155b61148957600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561152157601554604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561150557600080fd5b505af1158015611519573d6000803e3d6000fd5b505050505050565b6015546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016114eb565b6000806115778385611e75565b9050838110156109215760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107b8565b6015805460ff60a81b1916600160a81b17905530600090815260066020526040812054905061160c61160760036116018460056113d5565b9061194a565b6119cc565b61161f61161a8260056113d5565b611a77565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa9190611e45565b60155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117489190611e8d565b905080156117af5760155460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561179657600080fd5b505af11580156117aa573d6000803e3d6000fd5b505050505b6010546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156117e8573d6000803e3d6000fd5b50506015805460ff60a81b191690555050565b6001600160a01b03821660009081526009602052604081205460ff168061183a57506001600160a01b03821660009081526009602052604090205460ff165b15801561092157506012546001600160a01b03848116911614806109215750506012546001600160a01b03908116911614919050565b600080611894600f5461188e600e548661194a90919063ffffffff16565b906113d5565b306000908152600660205260409020549091506118b1908261156a565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119029085815260200190565b60405180910390a36119148382611417565b949350505050565b6000818361193d5760405162461bcd60e51b81526004016107b89190611b78565b506000610fbe8486611eaa565b60008260000361195c57506000610788565b60006119688385611e26565b9050826119758583611eaa565b146109215760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107b8565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a0157611a01611ecc565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611a3157611a31611ecc565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac947906114eb908590600090869030904290600401611ee2565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611aae57611aae611ecc565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611ade57611ade611ecc565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611b3257611b32611ecc565b6001600160a01b039283166020918202929092010152601154604051635c11d79560e01b8152911690635c11d795906114eb908590600090869030904290600401611ee2565b600060208083528351808285015260005b81811015611ba557858101830151858201604001528201611b89565b81811115611bb7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611be257600080fd5b50565b60008060408385031215611bf857600080fd5b8235611c0381611bcd565b946020939093013593505050565b600060208284031215611c2357600080fd5b813561092181611bcd565b600060208284031215611c4057600080fd5b5035919050565b600080600060608486031215611c5c57600080fd5b8335611c6781611bcd565b92506020840135611c7781611bcd565b929592945050506040919091013590565b8015158114611be257600080fd5b60008060408385031215611ca957600080fd5b8235611cb481611bcd565b91506020830135611cc481611c88565b809150509250929050565b60008060408385031215611ce257600080fd5b8235611ced81611bcd565b91506020830135611cc481611bcd565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611d6e578160001904821115611d5457611d54611d1d565b80851615611d6157918102915b93841c9390800290611d38565b509250929050565b600082611d8557506001610788565b81611d9257506000610788565b8160018114611da85760028114611db257611dce565b6001915050610788565b60ff841115611dc357611dc3611d1d565b50506001821b610788565b5060208310610133831016604e8410600b8410161715611df1575081810a610788565b611dfb8383611d33565b8060001904821115611e0f57611e0f611d1d565b029392505050565b600061092160ff841683611d76565b6000816000190483118215151615611e4057611e40611d1d565b500290565b600060208284031215611e5757600080fd5b5051919050565b600082821015611e7057611e70611d1d565b500390565b60008219821115611e8857611e88611d1d565b500190565b600060208284031215611e9f57600080fd5b815161092181611c88565b600082611ec757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f325784516001600160a01b031683529383019391830191600101611f0d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d1bfa9d6ccb291b57d1700b855d114f37b8715eab3166a0a31ab61d9d0044d6864736f6c634300080d003360a0604052730e8d2eb7d6bdf28393c25a1966385ad32ff0259a6080526ec097ce7bc90715b34b9f100000000060095534801561003b57600080fd5b50604051610da5380380610da583398101604081905261005a9161008d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b608051610cc66100df600039600081816102bb01526107460152610cc66000f3fe6080604052600436106100e15760003560e01c8063b2bdfa7b1161007f578063d54ad2a111610059578063d54ad2a11461027d578063e2d2e21914610293578063e76ed0e3146102a9578063ecd0c0c3146102dd57600080fd5b8063b2bdfa7b146101ce578063b6b55f2514610206578063ce7c2ac21461022657600080fd5b80633a98ef39116100bb5780633a98ef391461014f5780635cc33f74146101785780638ecc37fb14610198578063997664d7146101b857600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610add565b6102fd565b005b34801561011b57600080fd5b5061010d61012a366004610b09565b61035d565b34801561013b57600080fd5b5061010d61014a366004610b33565b6104d5565b34801561015b57600080fd5b5061016560055481565b6040519081526020015b60405180910390f35b34801561018457600080fd5b50610165610193366004610b33565b6104f8565b3480156101a457600080fd5b506101656101b3366004610b33565b610590565b3480156101c457600080fd5b5061016560065481565b3480156101da57600080fd5b506001546101ee906001600160a01b031681565b6040516001600160a01b03909116815260200161016f565b34801561021257600080fd5b5061010d610221366004610b4e565b61061b565b34801561023257600080fd5b50610262610241366004610b33565b60046020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161016f565b34801561028957600080fd5b5061016560075481565b34801561029f57600080fd5b5061016560085481565b3480156102b557600080fd5b506101ee7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102e957600080fd5b506000546101ee906001600160a01b031681565b6001546001600160a01b0316331461031457600080fd5b476001600160a01b0382166108fc8461032d578261032f565b845b6040518115909202916000818181858888f19350505050158015610357573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461037457600080fd5b6001600160a01b0382166000908152600460205260409020541561039b5761039b82610675565b6000811180156103c157506001600160a01b038216600090815260046020526040902054155b1561042757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561045a565b8015801561044c57506001600160a01b03821660009081526004602052604090205415155b1561045a5761045a826107b9565b6001600160a01b03821660009081526004602052604090205460055461048b918391610485916108ce565b90610919565b6005556001600160a01b03821660009081526004602052604090208190556104b281610978565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b031633146104ec57600080fd5b6104f581610675565b50565b6001600160a01b0381166000908152600460205260408120546105715760405162461bcd60e51b815260206004820152602660248201527f596f75277265206e6f7420612053747265616d657242616e6b207368617265686044820152656f6c6465722160d01b60648201526084015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105b757506000919050565b6001600160a01b0382166000908152600460205260408120546105d990610978565b6001600160a01b038416600090815260046020526040902060010154909150808211610609575060009392505050565b61061382826108ce565b949350505050565b6000546001600160a01b0316331461063257600080fd5b80156104f5576006546106459082610919565b60065560055460095461066f91610666916106609085610995565b90610a17565b60085490610919565b60085550565b6001600160a01b03811660009081526004602052604081205490036106975750565b60006106a282610590565b905080156107b5576007546106b79082610919565b6007556001600160a01b0382166000908152600460205260409020600201546106e09082610919565b6001600160a01b038316600090815260046020526040902060028101919091555461070a90610978565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610b67565b505b5050565b600280546107c990600190610b9f565b815481106107d9576107d9610bb6565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061081757610817610bb6565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161086390600190610b9f565b8154811061087357610873610bb6565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108a9576108a9610bcc565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061091083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a59565b90505b92915050565b6000806109268385610be2565b9050838110156109105760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610568565b60006109136009546106606008548561099590919063ffffffff16565b6000826000036109a757506000610913565b60006109b38385610bfa565b9050826109c08583610c19565b146109105760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610568565b600061091083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a93565b60008184841115610a7d5760405162461bcd60e51b81526004016105689190610c3b565b506000610a8a8486610b9f565b95945050505050565b60008183610ab45760405162461bcd60e51b81526004016105689190610c3b565b506000610a8a8486610c19565b80356001600160a01b0381168114610ad857600080fd5b919050565b60008060408385031215610af057600080fd5b82359150610b0060208401610ac1565b90509250929050565b60008060408385031215610b1c57600080fd5b610b2583610ac1565b946020939093013593505050565b600060208284031215610b4557600080fd5b61091082610ac1565b600060208284031215610b6057600080fd5b5035919050565b600060208284031215610b7957600080fd5b8151801515811461091057600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610bb157610bb1610b89565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610bf557610bf5610b89565b500190565b6000816000190483118215151615610c1457610c14610b89565b500290565b600082610c3657634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610c6857858101830151858201604001528201610c4c565b81811115610c7a576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212203cb59f1a1b08223e40f3a56bc2482b2ca2f58c4cbd7f1beedbaa3cce990cf1b164736f6c634300080d00330000000000000000000000004b42ee2188e3470d0ec477779ad649c0785b625b
Deployed Bytecode
0x6080604052600436106102135760003560e01c806370a0823111610118578063bffb691d116100a0578063f0fc6bca1161006f578063f0fc6bca14610697578063f2fde38b146106ac578063f4293890146106cc578063f708a64f146106e1578063f887ea401461070157600080fd5b8063bffb691d146105e6578063d12a768814610607578063dd62ed3e1461061d578063e76ed0e31461066357600080fd5b80638ecc37fb116100e75780638ecc37fb1461052257806395d89b4114610542578063a8aa1b311461056d578063a9059cbb1461058d578063b1a4e0dc146105ad57600080fd5b806370a0823114610481578063736a83a1146104b757806375f0a874146104cc578063893d20e81461050457600080fd5b8063313ce5671161019b5780635cc33f741161016a5780635cc33f74146103ec5780635d098b381461040c578063658d4b7f1461042c57806367ee5f091461044c57806369fe0e2d1461046157600080fd5b8063313ce5671461037b578063342aa8b5146103975780633e07ce5b146103b7578063571ac8b0146103cc57600080fd5b806323b63585116101e257806323b63585146102d757806323b872dd146102f757806329e04b4a146103175780632b112e49146103375780632f54bf6e1461034c57600080fd5b806306fdde031461021f578063095ea7b31461026657806315f7e05e1461029657806318160ddd146102b857600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600c81526b53747265616d657242616e6b60a01b60208201525b60405161025d9190611b78565b60405180910390f35b34801561027257600080fd5b50610286610281366004611be5565b610721565b604051901515815260200161025d565b3480156102a257600080fd5b506102b66102b1366004611c11565b61078e565b005b3480156102c457600080fd5b506004545b60405190815260200161025d565b3480156102e357600080fd5b506102866102f2366004611c2e565b610823565b34801561030357600080fd5b50610286610312366004611c47565b610866565b34801561032357600080fd5b506102b6610332366004611c2e565b610928565b34801561034357600080fd5b506102c96109bd565b34801561035857600080fd5b50610286610367366004611c11565b6000546001600160a01b0391821691161490565b34801561038757600080fd5b506040516012815260200161025d565b3480156103a357600080fd5b506102b66103b2366004611c96565b610a0f565b3480156103c357600080fd5b506102b6610a6b565b3480156103d857600080fd5b506102866103e7366004611c11565b610aa4565b3480156103f857600080fd5b506102c9610407366004611c11565b610ab2565b34801561041857600080fd5b506102b6610427366004611c11565b610b22565b34801561043857600080fd5b506102b6610447366004611c96565b610b6e565b34801561045857600080fd5b506102c9610bc3565b34801561046d57600080fd5b506102b661047c366004611c2e565b610c31565b34801561048d57600080fd5b506102c961049c366004611c11565b6001600160a01b031660009081526006602052604090205490565b3480156104c357600080fd5b506102c9610ca8565b3480156104d857600080fd5b506010546104ec906001600160a01b031681565b6040516001600160a01b03909116815260200161025d565b34801561051057600080fd5b506000546001600160a01b03166104ec565b34801561052e57600080fd5b506102c961053d366004611c11565b610cf2565b34801561054e57600080fd5b5060408051808201909152600281526129a160f11b6020820152610250565b34801561057957600080fd5b506012546104ec906001600160a01b031681565b34801561059957600080fd5b506102866105a8366004611be5565b610d25565b3480156105b957600080fd5b506102866105c8366004611c11565b6001600160a01b03166000908152600b602052604090205460ff1690565b3480156105f257600080fd5b5060155461028690600160a01b900460ff1681565b34801561061357600080fd5b506102c960145481565b34801561062957600080fd5b506102c9610638366004611ccf565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561066f57600080fd5b506104ec7f0000000000000000000000000e8d2eb7d6bdf28393c25a1966385ad32ff0259a81565b3480156106a357600080fd5b506102b6610d32565b3480156106b857600080fd5b506102b66106c7366004611c11565b610d91565b3480156106d857600080fd5b506102b6610e0f565b3480156106ed57600080fd5b506102b66106fc366004611c96565b610e73565b34801561070d57600080fd5b506011546104ec906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061077c9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107c15760405162461bcd60e51b81526004016107b890611cfd565b60405180910390fd5b601554604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561080857600080fd5b505af115801561081c573d6000803e3d6000fd5b5050505050565b600080546001600160a01b0316331461084e5760405162461bcd60e51b81526004016107b890611cfd565b6002546107889030906001600160a01b031684610ea7565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610913576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108ee918490610f8d565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61091e848484610fc7565b90505b9392505050565b6000546001600160a01b031633146109525760405162461bcd60e51b81526004016107b890611cfd565b6004546109609060646113d5565b8111156109a15760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b60448201526064016107b8565b6109ad6012600a611e17565b6109b79082611e26565b60145550565b6003546001600160a01b0316600090815260066020526040812054610a0a906002546001600160a01b0316600090815260066020526040902054610a049060045490611417565b90611417565b905090565b6000546001600160a01b03163314610a395760405162461bcd60e51b81526004016107b890611cfd565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610a678282611459565b5050565b6000546001600160a01b03163314610a955760405162461bcd60e51b81526004016107b890611cfd565b6012805460ff60a01b19169055565b600061078882600019610721565b601554604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610afe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107889190611e45565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b81526004016107b890611cfd565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b985760405162461bcd60e51b81526004016107b890611cfd565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6015546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a9190611e45565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016107b890611cfd565b600e811115610ca35760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031342560601b60448201526064016107b8565b600e55565b6015546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c0d573d6000803e3d6000fd5b601554604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610ae1565b6000610921338484610fc7565b601554604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610dbb5760405162461bcd60e51b81526004016107b890611cfd565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610e395760405162461bcd60e51b81526004016107b890611cfd565b60105460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610a67573d6000803e3d6000fd5b6000546001600160a01b03163314610e9d5760405162461bcd60e51b81526004016107b890611cfd565b610a678282611459565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610ef8918490610f8d565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610f27908361156a565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f7b9086815260200190565b60405180910390a35060019392505050565b60008184841115610fb15760405162461bcd60e51b81526004016107b89190611b78565b506000610fbe8486611e5e565b95945050505050565b601554600090600160a01b900460ff1615611053576001600160a01b0384166000908152600b602052604090205460ff1615801561101e57506001600160a01b0383166000908152600b602052604090205460ff16155b6110535760405162461bcd60e51b81526004016107b890602080825260049082015263426f742160e01b604082015260600190565b601254600160a01b900460ff16156110d7576000546001600160a01b0385811691161480159061109157506000546001600160a01b03848116911614155b156110d7576013548211156110d75760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b60448201526064016107b8565b601554600160a81b900460ff16156110fb576110f4848484610ea7565b9050610921565b30600090815260066020526040812054601454909190821080159190829061113057506012546001600160a01b038781169116145b8015611149575030600090815260066020526040812054115b90508015611159576111596115c9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546111ab918790610f8d565b6001600160a01b0388166000908152600660205260408120919091556111d188886117fb565b6111db57856111e5565b6111e58887611870565b6001600160a01b03881660009081526006602052604090205490915061120b908261156a565b6001600160a01b0380891660009081526006602052604090209190915560125489821691161480159061125757506001600160a01b0388166000908152600a602052604090205460ff16155b156112cd576015546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156112ba57600080fd5b505af19250505080156112cb575060015b505b6012546001600160a01b0388811691161480159061130457506001600160a01b0387166000908152600a602052604090205460ff16155b1561137a576015546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561136757600080fd5b505af1925050508015611378575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113bf91815260200190565b60405180910390a3506001979650505050505050565b600061092183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061191c565b600061092183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f8d565b6001600160a01b038216301480159061148057506012546001600160a01b03838116911614155b61148957600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561152157601554604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561150557600080fd5b505af1158015611519573d6000803e3d6000fd5b505050505050565b6015546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016114eb565b6000806115778385611e75565b9050838110156109215760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107b8565b6015805460ff60a81b1916600160a81b17905530600090815260066020526040812054905061160c61160760036116018460056113d5565b9061194a565b6119cc565b61161f61161a8260056113d5565b611a77565b6040516370a0823160e01b81523060048201526000907f0000000000000000000000000e8d2eb7d6bdf28393c25a1966385ad32ff0259a6001600160a01b0316906370a0823190602401602060405180830381865afa158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa9190611e45565b60155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f0000000000000000000000000e8d2eb7d6bdf28393c25a1966385ad32ff0259a9091169063a9059cbb906044016020604051808303816000875af1158015611724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117489190611e8d565b905080156117af5760155460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561179657600080fd5b505af11580156117aa573d6000803e3d6000fd5b505050505b6010546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156117e8573d6000803e3d6000fd5b50506015805460ff60a81b191690555050565b6001600160a01b03821660009081526009602052604081205460ff168061183a57506001600160a01b03821660009081526009602052604090205460ff165b15801561092157506012546001600160a01b03848116911614806109215750506012546001600160a01b03908116911614919050565b600080611894600f5461188e600e548661194a90919063ffffffff16565b906113d5565b306000908152600660205260409020549091506118b1908261156a565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119029085815260200190565b60405180910390a36119148382611417565b949350505050565b6000818361193d5760405162461bcd60e51b81526004016107b89190611b78565b506000610fbe8486611eaa565b60008260000361195c57506000610788565b60006119688385611e26565b9050826119758583611eaa565b146109215760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107b8565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a0157611a01611ecc565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611a3157611a31611ecc565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac947906114eb908590600090869030904290600401611ee2565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611aae57611aae611ecc565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611ade57611ade611ecc565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000e8d2eb7d6bdf28393c25a1966385ad32ff0259a81600281518110611b3257611b32611ecc565b6001600160a01b039283166020918202929092010152601154604051635c11d79560e01b8152911690635c11d795906114eb908590600090869030904290600401611ee2565b600060208083528351808285015260005b81811015611ba557858101830151858201604001528201611b89565b81811115611bb7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611be257600080fd5b50565b60008060408385031215611bf857600080fd5b8235611c0381611bcd565b946020939093013593505050565b600060208284031215611c2357600080fd5b813561092181611bcd565b600060208284031215611c4057600080fd5b5035919050565b600080600060608486031215611c5c57600080fd5b8335611c6781611bcd565b92506020840135611c7781611bcd565b929592945050506040919091013590565b8015158114611be257600080fd5b60008060408385031215611ca957600080fd5b8235611cb481611bcd565b91506020830135611cc481611c88565b809150509250929050565b60008060408385031215611ce257600080fd5b8235611ced81611bcd565b91506020830135611cc481611bcd565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611d6e578160001904821115611d5457611d54611d1d565b80851615611d6157918102915b93841c9390800290611d38565b509250929050565b600082611d8557506001610788565b81611d9257506000610788565b8160018114611da85760028114611db257611dce565b6001915050610788565b60ff841115611dc357611dc3611d1d565b50506001821b610788565b5060208310610133831016604e8410600b8410161715611df1575081810a610788565b611dfb8383611d33565b8060001904821115611e0f57611e0f611d1d565b029392505050565b600061092160ff841683611d76565b6000816000190483118215151615611e4057611e40611d1d565b500290565b600060208284031215611e5757600080fd5b5051919050565b600082821015611e7057611e70611d1d565b500390565b60008219821115611e8857611e88611d1d565b500190565b600060208284031215611e9f57600080fd5b815161092181611c88565b600082611ec757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f325784516001600160a01b031683529383019391830191600101611f0d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d1bfa9d6ccb291b57d1700b855d114f37b8715eab3166a0a31ab61d9d0044d6864736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004b42ee2188e3470d0ec477779ad649c0785b625b
-----Decoded View---------------
Arg [0] : _owner (address): 0x4B42Ee2188e3470d0EC477779Ad649c0785b625b
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004b42ee2188e3470d0ec477779ad649c0785b625b
Deployed Bytecode Sourcemap
9389:11137:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12188:80;;;;;;;;;;-1:-1:-1;12260:5:0;;;;;;;;;;;;-1:-1:-1;;;12260:5:0;;;;12188:80;;;;;;;:::i;:::-;;;;;;;;12610:216;;;;;;;;;;-1:-1:-1;12610:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;12610:216:0;1072:187:1;18959:110:0;;;;;;;;;;-1:-1:-1;18959:110:0;;;;;:::i;:::-;;:::i;:::-;;11918:88;;;;;;;;;;-1:-1:-1;11991:12:0;;11918:88;;;1662:25:1;;;1650:2;1635:18;11918:88:0;1516:177:1;19249:139:0;;;;;;;;;;-1:-1:-1;19249:139:0;;;;;:::i;:::-;;:::i;13128:370::-;;;;;;;;;;-1:-1:-1;13128:370:0;;;;;:::i;:::-;;:::i;20304:214::-;;;;;;;;;;-1:-1:-1;20304:214:0;;;;;:::i;:::-;;:::i;19400:142::-;;;;;;;;;;;;;:::i;2902:103::-;;;;;;;;;;-1:-1:-1;2902:103:0;;;;;:::i;:::-;2957:4;2992:5;-1:-1:-1;;;;;2981:16:0;;;2992:5;;2981:16;;2902:103;12012:80;;;;;;;;;;-1:-1:-1;12012:80:0;;9912:2;2486:36:1;;2474:2;2459:18;12012:80:0;2344:184:1;17748:158:0;;;;;;;;;;-1:-1:-1;17748:158:0;;;;;:::i;:::-;;:::i;20106:80::-;;;;;;;;;;;;;:::i;12834:122::-;;;;;;;;;;-1:-1:-1;12834:122:0;;;;;:::i;:::-;;:::i;19941:157::-;;;;;;;;;;-1:-1:-1;19941:157:0;;;;;:::i;:::-;;:::i;19550:135::-;;;;;;;;;;-1:-1:-1;19550:135:0;;;;;:::i;:::-;;:::i;18399:119::-;;;;;;;;;;-1:-1:-1;18399:119:0;;;;;:::i;:::-;;:::i;19694:115::-;;;;;;;;;;;;;:::i;18526:139::-;;;;;;;;;;-1:-1:-1;18526:139:0;;;;;:::i;:::-;;:::i;12358:105::-;;;;;;;;;;-1:-1:-1;12358:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;12442:18:0;12424:7;12442:18;;;:9;:18;;;;;;;12358:105;19821:111;;;;;;;;;;;;;:::i;10546:92::-;;;;;;;;;;-1:-1:-1;10546:92:0;;;;-1:-1:-1;;;;;10546:92:0;;;;;;-1:-1:-1;;;;;3223:32:1;;;3205:51;;3193:2;3178:18;10546:92:0;3043:219:1;12274:78:0;;;;;;;;;;-1:-1:-1;12326:7:0;12344:5;-1:-1:-1;;;;;12344:5:0;12274:78;;19081:156;;;;;;;;;;-1:-1:-1;19081:156:0;;;;;:::i;:::-;;:::i;12098:84::-;;;;;;;;;;-1:-1:-1;12172:7:0;;;;;;;;;;;;-1:-1:-1;;;12172:7:0;;;;12098:84;;10684:19;;;;;;;;;;-1:-1:-1;10684:19:0;;;;-1:-1:-1;;;;;10684:19:0;;;12964:156;;;;;;;;;;-1:-1:-1;12964:156:0;;;;;:::i;:::-;;:::i;20194:102::-;;;;;;;;;;-1:-1:-1;20194:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;20274:14:0;20250:4;20274:14;;;:5;:14;;;;;;;;;20194:102;10955:35;;;;;;;;;;-1:-1:-1;10955:35:0;;;;-1:-1:-1;;;10955:35:0;;;;;;10809:81;;;;;;;;;;;;;;;;12469:133;;;;;;;;;;-1:-1:-1;12469:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12571:19:0;;;12553:7;12571:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12469:133;9642:92;;;;;;;;;;;;;;;18857:90;;;;;;;;;;;;;:::i;3130:136::-;;;;;;;;;;-1:-1:-1;3130:136:0;;;;;:::i;:::-;;:::i;18675:174::-;;;;;;;;;;;;;:::i;18259:132::-;;;;;;;;;;-1:-1:-1;18259:132:0;;;;;:::i;:::-;;:::i;10653:24::-;;;;;;;;;;-1:-1:-1;10653:24:0;;;;-1:-1:-1;;;;;10653:24:0;;;12610:216;12714:10;12685:4;12702:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12702:32:0;;;;;;;;;;:41;;;12759:37;12685:4;;12702:32;;12759:37;;;;12737:6;1662:25:1;;1650:2;1635:18;;1516:177;12759:37:0;;;;;;;;-1:-1:-1;12814:4:0;12610:216;;;;;:::o;18959:110::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;;;;;;;;;19028:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;19028:33:0;;-1:-1:-1;;;;;3223:32:1;;;19028:33:0::1;::::0;::::1;3205:51:1::0;19028:11:0;;::::1;::::0;:25:::1;::::0;3178:18:1;;19028:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18959:110:::0;:::o;19249:139::-;19313:4;2992:5;;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;19367:4:::1;::::0;19337:43:::1;::::0;19360:4:::1;::::0;-1:-1:-1;;;;;19367:4:0::1;19373:6:::0;19337:14:::1;:43::i;13128:370::-:0;-1:-1:-1;;;;;13248:19:0;;13228:4;13248:19;;;:11;:19;;;;;;;;13268:10;13248:31;;;;;;;;-1:-1:-1;;13248:52:0;13245:186;;13350:69;;;;;;;;;;;-1:-1:-1;;;13350:69:0;;;;;;;;-1:-1:-1;;;;;13350:19:0;;-1:-1:-1;13350:19:0;;;:11;:19;;;;;13370:10;13350:31;;;;;;;;;;:69;;13386:6;;13350:35;:69::i;:::-;-1:-1:-1;;;;;13316:19:0;;;;;;:11;:19;;;;;;;;13336:10;13316:31;;;;;;;:103;13245:186;13450:40;13464:6;13472:9;13483:6;13450:13;:40::i;:::-;13443:47;;13128:370;;;;;;:::o;20304:214::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;20402:12:::1;::::0;:21:::1;::::0;20419:3:::1;20402:16;:21::i;:::-;20392:6;:31;;20383:60;;;::::0;-1:-1:-1;;;20383:60:0;;4890:2:1;20383:60:0::1;::::0;::::1;4872:21:1::0;4929:2;4909:18;;;4902:30;-1:-1:-1;;;4948:18:1;;;4941:45;5003:18;;20383:60:0::1;4688:339:1::0;20383:60:0::1;20495:15;9912:2;20495;:15;:::i;:::-;20486:24;::::0;:6;:24:::1;:::i;:::-;20454:29;:56:::0;-1:-1:-1;20304:214:0:o;19400:142::-;19528:4;;-1:-1:-1;;;;;19528:4:0;19453:7;12442:18;;;:9;:18;;;;;;19480:54;;19507:4;;-1:-1:-1;;;;;19507:4:0;12424:7;12442:18;;;:9;:18;;;;;;19480:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19473:61;;19400:142;:::o;17748:158::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17825:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;17825:24:0::1;::::0;::::1;;;::::0;;17860:38:::1;17825:15:::0;:24;17860:20:::1;:38::i;:::-;17748:158:::0;;:::o;20106:80::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;20162:8:::1;:16:::0;;-1:-1:-1;;;;20162:16:0::1;::::0;;20106:80::o;12834:122::-;12889:4;12913:35;12921:7;-1:-1:-1;;12913:7:0;:35::i;19941:157::-;20044:11;;:46;;-1:-1:-1;;;20044:46:0;;-1:-1:-1;;;;;3223:32:1;;;20044:46:0;;;3205:51:1;20017:7:0;;20044:11;;:33;;3178:18:1;;20044:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19550:135::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;19634:15:::1;:43:::0;;-1:-1:-1;;;;;;19634:43:0::1;-1:-1:-1::0;;;;;19634:43:0;;;::::1;::::0;;;::::1;::::0;;19550:135::o;18399:119::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18482:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;18482:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18399:119::o;19694:115::-;19773:11;;:28;;;-1:-1:-1;;;19773:28:0;;;;19746:7;;-1:-1:-1;;;;;19773:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18526:139::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;18604:2:::1;18596:4;:10;;18587:44;;;::::0;-1:-1:-1;;;18587:44:0;;7111:2:1;18587:44:0::1;::::0;::::1;7093:21:1::0;7150:2;7130:18;;;7123:30;-1:-1:-1;;;7169:18:1;;;7162:50;7229:18;;18587:44:0::1;6909:344:1::0;18587:44:0::1;18642:8;:15:::0;18526:139::o;19821:111::-;19898:11;;:26;;;-1:-1:-1;;;19898:26:0;;;;19871:7;;-1:-1:-1;;;;;19898:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;;;;;19081:156;19182:11;;:47;;-1:-1:-1;;;19182:47:0;;-1:-1:-1;;;;;3223:32:1;;;19182:47:0;;;3205:51:1;19155:7:0;;19182:11;;:34;;3178:18:1;;19182:47:0;3043:219:1;12964:156:0;13044:4;13068:44;13082:10;13094:9;13105:6;13068:13;:44::i;18857:90::-;18902:11;;:37;;-1:-1:-1;;;18902:37:0;;18928:10;18902:37;;;3205:51:1;-1:-1:-1;;;;;18902:11:0;;;;:25;;3178:18:1;;18902:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18857:90::o;3130:136::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;3206:5:::1;:11:::0;;-1:-1:-1;;;;;;3206:11:0::1;-1:-1:-1::0;;;;;3206:11:0;::::1;::::0;;::::1;::::0;;;3233:25:::1;::::0;3205:51:1;;;3233:25:0::1;::::0;3193:2:1;3178:18;3233:25:0::1;;;;;;;3130:136:::0;:::o;18675:174::-;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;18796:15:::1;::::0;18788:53:::1;::::0;18756:21:::1;::::0;-1:-1:-1;;;;;18796:15:0::1;::::0;18788:53;::::1;;;::::0;18756:21;;18727:26:::1;18788:53:::0;18727:26;18788:53;18756:21;18796:15;18788:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;18259:132:::0;2957:4;2992:5;-1:-1:-1;;;;;2992:5:0;2809:10;2981:16;2793:38;;;;-1:-1:-1;;;2793:38:0;;;;;;;:::i;:::-;18347:36:::1;18368:6;18376;18347:20;:36::i;14901:330::-:0;15031:53;;;;;;;;;;;-1:-1:-1;;;15031:53:0;;;;;;;;-1:-1:-1;;;;;15031:17:0;;14994:4;15031:17;;;:9;:17;;;;;;;:53;;15053:6;;15031:21;:53::i;:::-;-1:-1:-1;;;;;15011:17:0;;;;;;;:9;:17;;;;;;:73;;;;15118:20;;;;;;;:32;;15143:6;15118:24;:32::i;:::-;-1:-1:-1;;;;;15095:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15166:35;;;;;;;;;;15194:6;1662:25:1;;1650:2;1635:18;;1516:177;15166:35:0;;;;;;;;-1:-1:-1;15219:4:0;14901:330;;;;;:::o;564:192::-;650:7;686:12;678:6;;;;670:29;;;;-1:-1:-1;;;670:29:0;;;;;;;;:::i;:::-;-1:-1:-1;710:9:0;722:5;726:1;722;:5;:::i;:::-;710:17;564:192;-1:-1:-1;;;;;564:192:0:o;13506:1383::-;13619:16;;13598:4;;-1:-1:-1;;;13619:16:0;;;;13615:102;;;-1:-1:-1;;;;;13662:13:0;;;;;;:5;:13;;;;;;;;13661:14;:35;;;;-1:-1:-1;;;;;;13680:16:0;;;;;;:5;:16;;;;;;;;13679:17;13661:35;13652:53;;;;-1:-1:-1;;;13652:53:0;;;;;;7806:2:1;7788:21;;;7845:1;7825:18;;;7818:29;-1:-1:-1;;;7878:2:1;7863:18;;7856:34;7922:2;7907:18;;7604:327;13652:53:0;13731:8;;-1:-1:-1;;;13731:8:0;;;;13727:130;;;13769:5;;-1:-1:-1;;;;;13761:13:0;;;13769:5;;13761:13;;;;:34;;-1:-1:-1;13790:5:0;;-1:-1:-1;;;;;13778:17:0;;;13790:5;;13778:17;;13761:34;13757:80;;;13814:6;;13806;:14;;13797:40;;;;-1:-1:-1;;;13797:40:0;;8138:2:1;13797:40:0;;;8120:21:1;8177:2;8157:18;;;8150:30;-1:-1:-1;;;8196:18:1;;;8189:42;8248:18;;13797:40:0;7936:336:1;13797:40:0;13881:6;;-1:-1:-1;;;13881:6:0;;;;13878:63;;;13897:41;13912:6;13920:9;13931:6;13897:14;:41::i;:::-;13890:48;;;;13878:63;14008:4;13959:28;12442:18;;;:9;:18;;;;;;14078:29;;12442:18;;14054:53;;;;;;13959:28;14054:53;;14147:38;;-1:-1:-1;14181:4:0;;-1:-1:-1;;;;;14170:15:0;;;14181:4;;14170:15;14147:38;:70;;;;-1:-1:-1;14207:4:0;14216:1;12442:18;;;:9;:18;;;;;;14189:28;14147:70;14124:94;;14232:14;14229:33;;;14249:10;:8;:10::i;:::-;14294:53;;;;;;;;;;;-1:-1:-1;;;14294:53:0;;;;;;;;-1:-1:-1;;;;;14294:17:0;;-1:-1:-1;14294:17:0;;;:9;:17;;;;;;;;:53;;14316:6;;14294:21;:53::i;:::-;-1:-1:-1;;;;;14274:17:0;;;;;;:9;:17;;;;;:73;;;;14385:32;14284:6;14407:9;14385:13;:32::i;:::-;:67;;14446:6;14385:67;;;14420:23;14428:6;14436;14420:7;:23::i;:::-;-1:-1:-1;;;;;14496:20:0;;;;;;:9;:20;;;;;;14360:92;;-1:-1:-1;14496:40:0;;14360:92;14496:24;:40::i;:::-;-1:-1:-1;;;;;14473:20:0;;;;;;;:9;:20;;;;;:63;;;;14562:4;;14552:14;;;14562:4;;14552:14;;;;:43;;-1:-1:-1;;;;;;14571:24:0;;;;;;:16;:24;;;;;;;;14570:25;14552:43;14549:114;;;14602:11;;-1:-1:-1;;;;;14631:17:0;;;14602:11;14631:17;;;:9;:17;;;;;;;;14602:47;;-1:-1:-1;;;14602:47:0;;;;;8451:51:1;;;;8518:18;;;8511:34;14602:11:0;;;:20;;8424:18:1;;14602:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14598:63;;14689:4;;-1:-1:-1;;;;;14676:17:0;;;14689:4;;14676:17;;;;:49;;-1:-1:-1;;;;;;14698:27:0;;;;;;:16;:27;;;;;;;;14697:28;14676:49;14673:126;;;14732:11;;-1:-1:-1;;;;;14764:20:0;;;14732:11;14764:20;;;:9;:20;;;;;;;;14732:53;;-1:-1:-1;;;14732:53:0;;;;;8451:51:1;;;;8518:18;;;8511:34;14732:11:0;;;:20;;8424:18:1;;14732:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14728:69;;14833:9;-1:-1:-1;;;;;14816:43:0;14825:6;-1:-1:-1;;;;;14816:43:0;;14844:14;14816:43;;;;1662:25:1;;1650:2;1635:18;;1516:177;14816:43:0;;;;;;;;-1:-1:-1;14877:4:0;;13506:1383;-1:-1:-1;;;;;;;13506:1383:0:o;1018:132::-;1076:7;1103:39;1107:1;1110;1103:39;;;;;;;;;;;;;;;;;:3;:39::i;422:136::-;480:7;507:43;511:1;514;507:43;;;;;;;;;;;;;;;;;:3;:43::i;17914:337::-;-1:-1:-1;;;;;18001:23:0;;18019:4;18001:23;;;;:41;;-1:-1:-1;18038:4:0;;-1:-1:-1;;;;;18028:14:0;;;18038:4;;18028:14;;18001:41;17993:50;;;;;;-1:-1:-1;;;;;18054:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;18054:33:0;;;;;;;;;;;;18098:146;;18123:11;;:31;;-1:-1:-1;;;18123:31:0;;-1:-1:-1;;;;;8469:32:1;;;18123:31:0;;;8451:51:1;18123:11:0;8518:18:1;;;8511:34;18123:11:0;;;;:20;;8424:18:1;;18123:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17748:158;;:::o;18098:146::-;18185:11;;-1:-1:-1;;;;;18214:17:0;;;18185:11;18214:17;;;:9;:17;;;;;;;;18185:47;;-1:-1:-1;;;18185:47:0;;;;;8451:51:1;;;;8518:18;;;8511:34;18185:11:0;;;:20;;8424:18:1;;18185:47:0;8277:274:1;235:181:0;293:7;;325:5;329:1;325;:5;:::i;:::-;313:17;;354:1;349;:6;;341:46;;;;-1:-1:-1;;;341:46:0;;9178:2:1;341:46:0;;;9160:21:1;9217:2;9197:18;;;9190:30;9256:29;9236:18;;;9229:57;9303:18;;341:46:0;8976:351:1;15823:583:0;11045:6;:13;;-1:-1:-1;;;;11045:13:0;-1:-1:-1;;;11045:13:0;;;15915:4:::1;-1:-1:-1::0;12442:18:0;;;:9;:18;;;;;;15874:47;-1:-1:-1;15942:44:0::1;15959:26;15983:1;15959:19;15874:47:::0;15976:1:::1;15959:16;:19::i;:::-;:23:::0;::::1;:26::i;:::-;15942:16;:44::i;:::-;15997:47;16024:19;:12:::0;16041:1:::1;16024:16;:19::i;:::-;15997:26;:47::i;:::-;16077:46;::::0;-1:-1:-1;;;16077:46:0;;16117:4:::1;16077:46;::::0;::::1;3205:51:1::0;16057:17:0::1;::::0;16084:13:::1;-1:-1:-1::0;;;;;16077:31:0::1;::::0;::::1;::::0;3178:18:1;;16077:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16190:11;::::0;16151:63:::1;::::0;-1:-1:-1;;;16151:63:0;;-1:-1:-1;;;;;16190:11:0;;::::1;16151:63;::::0;::::1;8451:51:1::0;8518:18;;;8511:34;;;16057:66:0;;-1:-1:-1;16136:12:0::1;::::0;16158:13:::1;16151:30:::0;;::::1;::::0;::::1;::::0;8424:18:1;;16151:63:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16136:78;;16231:7;16227:82;;;16255:11;::::0;:30:::1;::::0;-1:-1:-1;;;16255:30:0;;::::1;::::0;::::1;1662:25:1::0;;;-1:-1:-1;;;;;16255:11:0;;::::1;::::0;:19:::1;::::0;1635:18:1;;16255:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16227:82;16342:15;::::0;16334:56:::1;::::0;-1:-1:-1;;;;;16342:15:0;;::::1;::::0;16368:21:::1;16334:56:::0;::::1;;;::::0;16342:15:::1;16334:56:::0;16342:15;16334:56;16368:21;16342:15;16334:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11063:6:0;:14;;-1:-1:-1;;;;11063:14:0;;;-1:-1:-1;;15823:583:0:o;15242:206::-;-1:-1:-1;;;;;15351:19:0;;15323:4;15351:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;15374:22:0;;;;;;:11;:22;;;;;;;;15351:45;15349:48;:90;;;;-1:-1:-1;15413:4:0;;-1:-1:-1;;;;;15403:14:0;;;15413:4;;15403:14;;:35;;-1:-1:-1;;15434:4:0;;-1:-1:-1;;;;;15434:4:0;;;15421:17;;;;15242:206;-1:-1:-1;15242:206:0:o;15456:354::-;15523:7;15543:17;15583:40;15608:14;;15583:20;15594:8;;15583:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;15679:4;15661:24;;;;:9;:24;;;;;;15571:52;;-1:-1:-1;15661:39:0;;15571:52;15661:28;:39::i;:::-;15652:4;15634:24;;;;:9;:24;;;;;;;:66;;;;15716:42;;-1:-1:-1;;;;;15716:42:0;;;;;;;15748:9;1662:25:1;;1650:2;1635:18;;1516:177;15716:42:0;;;;;;;;15781:21;:6;15792:9;15781:10;:21::i;:::-;15774:28;15456:354;-1:-1:-1;;;;15456:354:0:o;1156:345::-;1242:7;1344:12;1337:5;1329:28;;;;-1:-1:-1;;;1329:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1368:9:0;1380:5;1384:1;1380;:5;:::i;762:250::-;820:7;844:1;849;844:6;840:47;;-1:-1:-1;874:1:0;867:8;;840:47;899:9;911:5;915:1;911;:5;:::i;:::-;899:17;-1:-1:-1;944:1:0;935:5;939:1;899:17;935:5;:::i;:::-;:10;927:56;;;;-1:-1:-1;;;927:56:0;;10006:2:1;927:56:0;;;9988:21:1;10045:2;10025:18;;;10018:30;10084:34;10064:18;;;10057:62;-1:-1:-1;;;10135:18:1;;;10128:31;10176:19;;927:56:0;9804:397:1;16870:489:0;17022:16;;;17036:1;17022:16;;;;;;;;16998:21;;17022:16;;;;;;;;;;-1:-1:-1;17022:16:0;16998:40;;17067:4;17049;17054:1;17049:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17049:23:0;;;:7;;;;;;;;;:23;17093:4;;;17083:7;;17093:4;;;17083;;17093;17083:7;;;;;;:::i;:::-;-1:-1:-1;;;;;17083:14:0;;;:7;;;;;;;;;:14;17136:6;;:215;;-1:-1:-1;;;17136:215:0;;:6;;;:57;;:215;;17208:11;;17136:6;;17278:4;;17305;;17325:15;;17136:215;;;:::i;16414:448::-;16516:16;;;16530:1;16516:16;;;;;;;;;16492:21;;16516:16;;;;;;;;;;-1:-1:-1;16516:16:0;16492:40;;16561:4;16543;16548:1;16543:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16543:23:0;;;:7;;;;;;;;;:23;16587:4;;;16577:7;;16587:4;;;16577;;16587;16577:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;16577:14:0;;;-1:-1:-1;;;;;16577:14:0;;;;;16612:13;16602:4;16607:1;16602:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16602:23:0;;;:7;;;;;;;;;:23;16664:6;;:190;;-1:-1:-1;;;16664:190:0;;:6;;;:60;;:190;;16739:11;;16664:6;;16781:4;;16808;;16828:15;;16664:190;;;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1698:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;-1:-1:-1;1849:23:1;;1698:180;-1:-1:-1;1698:180:1:o;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2533:118::-;2619:5;2612:13;2605:21;2598:5;2595:32;2585:60;;2641:1;2638;2631:12;2656:382;2721:6;2729;2782:2;2770:9;2761:7;2757:23;2753:32;2750:52;;;2798:1;2795;2788:12;2750:52;2837:9;2824:23;2856:31;2881:5;2856:31;:::i;:::-;2906:5;-1:-1:-1;2963:2:1;2948:18;;2935:32;2976:30;2935:32;2976:30;:::i;:::-;3025:7;3015:17;;;2656:382;;;;;:::o;3475:388::-;3543:6;3551;3604:2;3592:9;3583:7;3579:23;3575:32;3572:52;;;3620:1;3617;3610:12;3572:52;3659:9;3646:23;3678:31;3703:5;3678:31;:::i;:::-;3728:5;-1:-1:-1;3785:2:1;3770:18;;3757:32;3798:33;3757:32;3798:33;:::i;4354:329::-;4556:2;4538:21;;;4595:1;4575:18;;;4568:29;-1:-1:-1;;;4628:2:1;4613:18;;4606:36;4674:2;4659:18;;4354:329::o;5032:127::-;5093:10;5088:3;5084:20;5081:1;5074:31;5124:4;5121:1;5114:15;5148:4;5145:1;5138:15;5164:422;5253:1;5296:5;5253:1;5310:270;5331:7;5321:8;5318:21;5310:270;;;5390:4;5386:1;5382:6;5378:17;5372:4;5369:27;5366:53;;;5399:18;;:::i;:::-;5449:7;5439:8;5435:22;5432:55;;;5469:16;;;;5432:55;5548:22;;;;5508:15;;;;5310:270;;;5314:3;5164:422;;;;;:::o;5591:806::-;5640:5;5670:8;5660:80;;-1:-1:-1;5711:1:1;5725:5;;5660:80;5759:4;5749:76;;-1:-1:-1;5796:1:1;5810:5;;5749:76;5841:4;5859:1;5854:59;;;;5927:1;5922:130;;;;5834:218;;5854:59;5884:1;5875:10;;5898:5;;;5922:130;5959:3;5949:8;5946:17;5943:43;;;5966:18;;:::i;:::-;-1:-1:-1;;6022:1:1;6008:16;;6037:5;;5834:218;;6136:2;6126:8;6123:16;6117:3;6111:4;6108:13;6104:36;6098:2;6088:8;6085:16;6080:2;6074:4;6071:12;6067:35;6064:77;6061:159;;;-1:-1:-1;6173:19:1;;;6205:5;;6061:159;6252:34;6277:8;6271:4;6252:34;:::i;:::-;6322:6;6318:1;6314:6;6310:19;6301:7;6298:32;6295:58;;;6333:18;;:::i;:::-;6371:20;;5591:806;-1:-1:-1;;;5591:806:1:o;6402:140::-;6460:5;6489:47;6530:4;6520:8;6516:19;6510:4;6489:47;:::i;6547:168::-;6587:7;6653:1;6649;6645:6;6641:14;6638:1;6635:21;6630:1;6623:9;6616:17;6612:45;6609:71;;;6660:18;;:::i;:::-;-1:-1:-1;6700:9:1;;6547:168::o;6720:184::-;6790:6;6843:2;6831:9;6822:7;6818:23;6814:32;6811:52;;;6859:1;6856;6849:12;6811:52;-1:-1:-1;6882:16:1;;6720:184;-1:-1:-1;6720:184:1:o;7474:125::-;7514:4;7542:1;7539;7536:8;7533:34;;;7547:18;;:::i;:::-;-1:-1:-1;7584:9:1;;7474:125::o;8843:128::-;8883:3;8914:1;8910:6;8907:1;8904:13;8901:39;;;8920:18;;:::i;:::-;-1:-1:-1;8956:9:1;;8843:128::o;9332:245::-;9399:6;9452:2;9440:9;9431:7;9427:23;9423:32;9420:52;;;9468:1;9465;9458:12;9420:52;9500:9;9494:16;9519:28;9541:5;9519:28;:::i;9582:217::-;9622:1;9648;9638:132;;9692:10;9687:3;9683:20;9680:1;9673:31;9727:4;9724:1;9717:15;9755:4;9752:1;9745:15;9638:132;-1:-1:-1;9784:9:1;;9582:217::o;10338:127::-;10399:10;10394:3;10390:20;10387:1;10380:31;10430:4;10427:1;10420:15;10454:4;10451:1;10444:15;10470:980;10732:4;10780:3;10769:9;10765:19;10811:6;10800:9;10793:25;10837:2;10875:6;10870:2;10859:9;10855:18;10848:34;10918:3;10913:2;10902:9;10898:18;10891:31;10942:6;10977;10971:13;11008:6;11000;10993:22;11046:3;11035:9;11031:19;11024:26;;11085:2;11077:6;11073:15;11059:29;;11106:1;11116:195;11130:6;11127:1;11124:13;11116:195;;;11195:13;;-1:-1:-1;;;;;11191:39:1;11179:52;;11286:15;;;;11251:12;;;;11227:1;11145:9;11116:195;;;-1:-1:-1;;;;;;;11367:32:1;;;;11362:2;11347:18;;11340:60;-1:-1:-1;;;11431:3:1;11416:19;11409:35;11328:3;10470:980;-1:-1:-1;;;10470:980:1:o
Swarm Source
ipfs://3cb59f1a1b08223e40f3a56bc2482b2ca2f58c4cbd7f1beedbaa3cce990cf1b1
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.