More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 165 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 16916843 | 643 days ago | IN | 0 ETH | 0.00036048 | ||||
Approve | 16852951 | 652 days ago | IN | 0 ETH | 0.00066939 | ||||
Approve | 16852949 | 652 days ago | IN | 0 ETH | 0.00067419 | ||||
Approve | 16851571 | 652 days ago | IN | 0 ETH | 0.00092902 | ||||
Approve | 16851419 | 652 days ago | IN | 0 ETH | 0.00134051 | ||||
Approve | 16848628 | 652 days ago | IN | 0 ETH | 0.00130498 | ||||
Approve | 16848622 | 652 days ago | IN | 0 ETH | 0.00143828 | ||||
Approve | 16845284 | 653 days ago | IN | 0 ETH | 0.00084125 | ||||
Approve | 16844238 | 653 days ago | IN | 0 ETH | 0.00082997 | ||||
Approve | 16844035 | 653 days ago | IN | 0 ETH | 0.00140953 | ||||
Approve | 16840538 | 653 days ago | IN | 0 ETH | 0.00102439 | ||||
Approve | 16839477 | 654 days ago | IN | 0 ETH | 0.00305847 | ||||
Approve | 16832212 | 655 days ago | IN | 0 ETH | 0.00101781 | ||||
Approve | 16829627 | 655 days ago | IN | 0 ETH | 0.00153489 | ||||
Approve | 16829017 | 655 days ago | IN | 0 ETH | 0.00200426 | ||||
Approve | 16828502 | 655 days ago | IN | 0 ETH | 0.001867 | ||||
Approve | 16827749 | 655 days ago | IN | 0 ETH | 0.00145801 | ||||
Approve | 16826681 | 655 days ago | IN | 0 ETH | 0.00223257 | ||||
Approve | 16825980 | 655 days ago | IN | 0 ETH | 0.00088114 | ||||
Approve | 16825182 | 656 days ago | IN | 0 ETH | 0.00101684 | ||||
Approve | 16825158 | 656 days ago | IN | 0 ETH | 0.00088298 | ||||
Approve | 16824782 | 656 days ago | IN | 0 ETH | 0.00076771 | ||||
Approve | 16824732 | 656 days ago | IN | 0 ETH | 0.00073006 | ||||
Approve | 16823908 | 656 days ago | IN | 0 ETH | 0.00075011 | ||||
Approve | 16822544 | 656 days ago | IN | 0 ETH | 0.00112269 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
16852846 | 652 days ago | 0.01434616 ETH | ||||
16852846 | 652 days ago | 0.02151925 ETH | ||||
16852846 | 652 days ago | 0.03586542 ETH | ||||
16829628 | 655 days ago | 0.0381458 ETH | ||||
16829628 | 655 days ago | 0.0572187 ETH | ||||
16829628 | 655 days ago | 0.0953645 ETH | ||||
16824084 | 656 days ago | 0.06465345 ETH | ||||
16824084 | 656 days ago | 0.09698018 ETH | ||||
16824084 | 656 days ago | 0.16163364 ETH | ||||
16820551 | 656 days ago | 0.06513024 ETH | ||||
16820551 | 656 days ago | 0.09769536 ETH | ||||
16820551 | 656 days ago | 0.1628256 ETH | ||||
16819021 | 656 days ago | 0.07447625 ETH | ||||
16819021 | 656 days ago | 0.11171438 ETH | ||||
16819021 | 656 days ago | 0.18619063 ETH | ||||
16816758 | 657 days ago | 0.08027854 ETH | ||||
16816758 | 657 days ago | 0.12041781 ETH | ||||
16816758 | 657 days ago | 0.20069636 ETH | ||||
16816560 | 657 days ago | 0.08125501 ETH | ||||
16816560 | 657 days ago | 0.12188252 ETH | ||||
16816560 | 657 days ago | 0.20313753 ETH | ||||
16816288 | 657 days ago | 0.0472247 ETH | ||||
16816288 | 657 days ago | 0.07083705 ETH | ||||
16816288 | 657 days ago | 0.11806175 ETH | ||||
16816251 | 657 days ago | 0.05140661 ETH |
Loading...
Loading
Contract Name:
TheGreatDepression
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-12 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.19; /* TELEGRAM: https://t.me/TGDPortal WEBSITE: https://www.thegreatdepression.cc/ TWITTER: https://twitter.com/TGDERC */ library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface BEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Auth { address internal owner; // address internal potentialOwner; mapping (address => bool) internal authorizations; event Authorize_Wallet(address Wallet, bool Status); event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) external onlyOwner { authorizations[adr] = true; emit Authorize_Wallet(adr,true); } function unauthorize(address adr) external onlyOwner { require(adr != owner, "OWNER cant be unauthorized"); authorizations[adr] = false; emit Authorize_Wallet(adr,false); } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); 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 TheGreatDepression is BEP20, Auth { using SafeMath for uint256; address immutable WBNB; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "The Great Depression"; string constant _symbol = "TGD"; uint8 constant _decimals = 18; uint256 public _totalSupply = 1 * 10**8 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply / 100; // 1% uint256 public _maxWalletToken = _totalSupply / 100; // 1% mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isWalletLimitExempt; uint256 public liquidityFee = 0; uint256 public marketingFee = 3; uint256 public operationsFee = 2; uint256 public burnFee = 0; uint256 public totalFee = marketingFee + liquidityFee + operationsFee + burnFee; uint256 public constant feeDenominator = 1000; uint256 sellMultiplier = 100; uint256 buyMultiplier = 100; uint256 transferMultiplier = 25; address public marketingFeeReceiver; address public operationsFeeReceiver; IDEXRouter public router; address public immutable pair; InterfaceLP public pairContract; uint256 public lastSync; bool public tradingOpen = false; // bool public burnEnabled = false; uint256 public launchedAt; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); testnet WBNB = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WBNB, address(this)); pairContract = InterfaceLP(pair); lastSync = block.timestamp; _allowances[address(this)][address(router)] = type(uint256).max; marketingFeeReceiver = msg.sender; operationsFeeReceiver = msg.sender; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[ZERO] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[DEAD] = true; balanceOf[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 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 setMaxWalletPercent_base10000(uint256 maxWallPercent_base10000) external onlyOwner { require(maxWallPercent_base10000 >= 10,"Cannot set max wallet less than 0.1%"); _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000; emit config_MaxWallet(_maxWalletToken); } function setMaxTxPercent_base10000(uint256 maxTXPercentage_base10000) external onlyOwner { require(maxTXPercentage_base10000 >= 10,"Cannot set max transaction less than 0.1%"); _maxTxAmount = (_totalSupply * maxTXPercentage_base10000 ) / 10000; emit config_MaxTransaction(_maxTxAmount); } 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] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) { require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached"); } // Checks max transaction limit require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded"); if(shouldSwapBack()){ swapBack(); } balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); balanceOf[recipient] = balanceOf[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance"); balanceOf[recipient] = balanceOf[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { if(amount == 0 || totalFee == 0){ return amount; } uint256 multiplier = transferMultiplier; if(recipient == pair) { multiplier = sellMultiplier; } else if(sender == pair) { multiplier = buyMultiplier; } uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); if(contractTokens > 0){ balanceOf[address(this)] = balanceOf[address(this)].add(contractTokens); 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 && balanceOf[address(this)] >= swapThreshold; } function clearStuckToken(address tokenAddress, uint256 tokens) external authorized returns (bool success) { require(tokenAddress != address(this),"Cannot withdraw native token"); if(tokenAddress == pair){ require(block.timestamp > launchedAt + 500 days,"Locked for 1 year"); } if(tokens == 0){ tokens = BEP20(tokenAddress).balanceOf(address(this)); } emit clearToken(tokenAddress, tokens); return BEP20(tokenAddress).transfer(msg.sender, tokens); } // switch Trading function tradingEnable() external onlyOwner { require(!tradingOpen,"Trading already open"); tradingOpen = true; launchedAt = block.timestamp; emit config_TradingStatus(tradingOpen); } /* function disableBurns() external onlyOwner { burnEnabled = false; } function enableBurns() external onlyOwner { burnEnabled = true; } */ function swapBack() internal swapping { uint256 totalETHFee = totalFee - burnFee; if(totalETHFee == 0) { totalETHFee = 1; } uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalETHFee * 2); uint256 amountToSwap = swapThreshold - amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = WBNB; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance; totalETHFee = totalETHFee - (liquidityFee / 2); if(totalETHFee == 0) { totalETHFee = 1; } uint256 amountBNBLiquidity = (amountBNB * liquidityFee) / (totalETHFee * 2); uint256 amountBNBMarketing = (amountBNB * marketingFee) / totalETHFee; uint256 amountBNBbuyback = (amountBNB * operationsFee) / totalETHFee; payable(marketingFeeReceiver).transfer(amountBNBMarketing); payable(operationsFeeReceiver).transfer(amountBNBbuyback); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, address(this), block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } } function manage_FeeExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isFeeExempt[addresses[i]] = status; emit Wallet_feeExempt(addresses[i], status); } } function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isTxLimitExempt[addresses[i]] = status; emit Wallet_txExempt(addresses[i], status); } } function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized { require(addresses.length < 501,"GAS Error: max limit is 500 addresses"); for (uint256 i=0; i < addresses.length; ++i) { isWalletLimitExempt[addresses[i]] = status; emit Wallet_holdingExempt(addresses[i], status); } } function update_fees() internal { emit UpdateFee( uint8(totalFee.mul(buyMultiplier).div(100)), uint8(totalFee.mul(sellMultiplier).div(100)), uint8(totalFee.mul(transferMultiplier).div(100)) ); } function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized { sellMultiplier = _sell; buyMultiplier = _buy; transferMultiplier = _trans; update_fees(); } function setFees_base1000(uint256 _liquidityFee, uint256 _marketingFee, uint256 _operationsFee, uint256 _burnFee) external onlyOwner { liquidityFee = _liquidityFee; marketingFee = _marketingFee; operationsFee = _operationsFee; burnFee = _burnFee; totalFee = _liquidityFee + _marketingFee + _operationsFee + _burnFee; update_fees(); } function setFeeReceivers(address _marketingFeeReceiver, address _operationsFeeReceiver) external onlyOwner { require(_marketingFeeReceiver != address(0),"Marketing fee address cannot be zero address"); require(_operationsFeeReceiver != address(0),"buyback fee address cannot be zero address"); marketingFeeReceiver = _marketingFeeReceiver; operationsFeeReceiver = _operationsFeeReceiver; emit Set_Wallets(marketingFeeReceiver, operationsFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { require(_amount >= 1 * 10**_decimals, "Amount is less than one token"); require(_amount < (_totalSupply/10), "Amount too high"); swapEnabled = _enabled; swapThreshold = _amount; emit config_SwapSettings(swapThreshold, swapEnabled); } function getCirculatingSupply() public view returns (uint256) { return (_totalSupply - balanceOf[DEAD] - balanceOf[ZERO]); } /* function LPBurn(uint256 percent_base10000) public authorized returns (bool){ require(percent_base10000 <= 1000, "May not nuke more than 10% of tokens in LP"); require(block.timestamp > lastSync + 5 minutes, "Too soon"); require(burnEnabled,"Burns are disabled"); uint256 lp_tokens = this.balanceOf(pair); uint256 lp_burn = lp_tokens.mul(percent_base10000).div(10_000); if (lp_burn > 0){ _basicTransfer(pair,DEAD,lp_burn); pairContract.sync(); return true; } return false; } */ event AutoLiquify(uint256 amountBNB, uint256 amountTokens); event UpdateFee(uint8 Buy, uint8 Sell, uint8 Transfer); event Wallet_feeExempt(address Wallet, bool Status); event Wallet_txExempt(address Wallet, bool Status); event Wallet_holdingExempt(address Wallet, bool Status); event Wallet_blacklist(address Wallet, bool Status); event BalanceClear(uint256 amount); event clearToken(address TokenAddressCleared, uint256 Amount); event Set_Wallets(address MarketingWallet, address buybackWallet); event config_MaxWallet(uint256 maxWallet); event config_MaxTransaction(uint256 maxWallet); event config_TradingStatus(bool Status); event config_LaunchMode(bool Status); event config_BlacklistMode(bool Status); event config_SwapSettings(uint256 Amount, bool Enabled); }
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":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Authorize_Wallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BalanceClear","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":false,"internalType":"address","name":"MarketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"buybackWallet","type":"address"}],"name":"Set_Wallets","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"UpdateFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_blacklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_feeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_holdingExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_txExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"clearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_BlacklistMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_LaunchMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"config_SwapSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_TradingStatus","type":"event"},{"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":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSync","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_operationsFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"setFees_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base10000","type":"uint256"}],"name":"setMaxTxPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWalletPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","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":"tradingEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052620000126012600a620004fe565b62000022906305f5e10062000516565b600255606460025462000036919062000530565b60035560646002546200004a919062000530565b6004556000600a556003600b556002600c556000600d55600d54600c54600a54600b5462000079919062000553565b62000085919062000553565b62000091919062000553565b600e556064600f819055601055601960118190556017805460ff199081169091558154166001179055600254620000cc906103e89062000530565b601a55348015620000dc57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560148054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000163573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000189919062000569565b6001600160a01b039081166080526014546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000200919062000569565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000252573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000278919062000569565b6001600160a01b0390811660a0819052601580546001600160a01b0319908116909217905542601655306000818152600660209081526040808320601454909616835294815284822060001990556012805433908616811790915560138054909516811790945583825260078152848220805460ff1990811660019081179092556008835286842080548216831790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548216831790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805482168317905560098352868420805482168317905593835285832080548516821790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378580549094161790925560025483825260058352848220819055935193845291927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000594565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000440578160001904821115620004245762000424620003e9565b808516156200043257918102915b93841c939080029062000404565b509250929050565b6000826200045957506001620004f8565b816200046857506000620004f8565b81600181146200048157600281146200048c57620004ac565b6001915050620004f8565b60ff841115620004a057620004a0620003e9565b50506001821b620004f8565b5060208310610133831016604e8410600b8410161715620004d1575081810a620004f8565b620004dd8383620003ff565b8060001904821115620004f457620004f4620003e9565b0290505b92915050565b60006200050f60ff84168362000448565b9392505050565b8082028115828204841417620004f857620004f8620003e9565b6000826200054e57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004f857620004f8620003e9565b6000602082840312156200057c57600080fd5b81516001600160a01b03811681146200050f57600080fd5b60805160a051612b2e620005dd600039600081816107730152818161117a01528181611a2701528181611e990152818161227401526122a801526000611fba0152612b2e6000f3fe6080604052600436106102e65760003560e01c806370a0823111610190578063bf56b371116100dc578063f0b37c0411610095578063f887ea401161006f578063f887ea4014610921578063fce589d814610941578063fe9fbb8014610957578063ffb54a991461097757600080fd5b8063f0b37c04146108c1578063f12418a8146108e1578063f2fde38b1461090157600080fd5b8063bf56b371146107d5578063c867d60b146107eb578063dd62ed3e1461081b578063df20fd4914610861578063e96fada214610881578063efa5e347146108a157600080fd5b80638b42507f11610149578063a4b45c0011610123578063a4b45c0014610741578063a8aa1b3114610761578063a9059cbb14610795578063b6a5d7de146107b557600080fd5b80638b42507f146106cf57806395d89b41146106ff57806398118cb41461072b57600080fd5b806370a0823114610623578063715018a61461065057806377b54bad1461066557806378109e54146106855780637d1db4a51461069b578063893d20e8146106b157600080fd5b806323b872dd1161024f5780634be9d869116102085780636917516b116101e25780636917516b146105bd5780636b67c4df146105d35780636ce46bc3146105e95780636ddd17131461060957600080fd5b80634be9d8691461055d5780634d709adf1461057d578063571ac8b01461059d57600080fd5b806323b872dd146104975780632b112e49146104b75780632f54bf6e146104cc578063313ce567146104fb5780633eaaf86b146105175780633f4218e01461052d57600080fd5b8063090896be116102a1578063090896be146103fb578063095ea7b3146104115780631693e8d414610441578063180b0d7e1461045657806318160ddd1461046c5780631df4ccfc1461048157600080fd5b8062108683146102f2578062bff44614610314578063012aa9121461033457806303382cbb146103545780630445b6671461039157806306fdde03146103b557600080fd5b366102ed57005b600080fd5b3480156102fe57600080fd5b5061031261030d3660046125a9565b610991565b005b34801561032057600080fd5b5061031261032f3660046125a9565b610abf565b34801561034057600080fd5b5061031261034f36600461262f565b610bde565b34801561036057600080fd5b50601354610374906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561039d57600080fd5b506103a7601a5481565b604051908152602001610388565b3480156103c157600080fd5b506040805180820190915260148152732a34329023b932b0ba102232b83932b9b9b4b7b760611b60208201525b6040516103889190612648565b34801561040757600080fd5b506103a7600c5481565b34801561041d57600080fd5b5061043161042c3660046126b2565b610cbc565b6040519015158152602001610388565b34801561044d57600080fd5b50610312610d29565b34801561046257600080fd5b506103a76103e881565b34801561047857600080fd5b506002546103a7565b34801561048d57600080fd5b506103a7600e5481565b3480156104a357600080fd5b506104316104b23660046126dc565b610de7565b3480156104c357600080fd5b506103a7610ea9565b3480156104d857600080fd5b506104316104e7366004612718565b6000546001600160a01b0391821691161490565b34801561050757600080fd5b5060405160128152602001610388565b34801561052357600080fd5b506103a760025481565b34801561053957600080fd5b50610431610548366004612718565b60076020526000908152604090205460ff1681565b34801561056957600080fd5b506103126105783660046125a9565b610f19565b34801561058957600080fd5b50601554610374906001600160a01b031681565b3480156105a957600080fd5b506104316105b8366004612718565b611038565b3480156105c957600080fd5b506103a760165481565b3480156105df57600080fd5b506103a7600b5481565b3480156105f557600080fd5b50610312610604366004612733565b611046565b34801561061557600080fd5b506019546104319060ff1681565b34801561062f57600080fd5b506103a761063e366004612718565b60056020526000908152604090205481565b34801561065c57600080fd5b50610312611087565b34801561067157600080fd5b506104316106803660046126b2565b6110f9565b34801561069157600080fd5b506103a760045481565b3480156106a757600080fd5b506103a760035481565b3480156106bd57600080fd5b506000546001600160a01b0316610374565b3480156106db57600080fd5b506104316106ea366004612718565b60086020526000908152604090205460ff1681565b34801561070b57600080fd5b506040805180820190915260038152621511d160ea1b60208201526103ee565b34801561073757600080fd5b506103a7600a5481565b34801561074d57600080fd5b5061031261075c36600461275f565b61132a565b34801561076d57600080fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b3480156107a157600080fd5b506104316107b03660046126b2565b611497565b3480156107c157600080fd5b506103126107d0366004612718565b6114a4565b3480156107e157600080fd5b506103a760185481565b3480156107f757600080fd5b50610431610806366004612718565b60096020526000908152604090205460ff1681565b34801561082757600080fd5b506103a761083636600461275f565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561086d57600080fd5b5061031261087c366004612792565b611524565b34801561088d57600080fd5b50601254610374906001600160a01b031681565b3480156108ad57600080fd5b506103126108bc3660046127b0565b611654565b3480156108cd57600080fd5b506103126108dc366004612718565b6116bd565b3480156108ed57600080fd5b506103126108fc36600461262f565b61179c565b34801561090d57600080fd5b5061031261091c366004612718565b611879565b34801561092d57600080fd5b50601454610374906001600160a01b031681565b34801561094d57600080fd5b506103a7600d5481565b34801561096357600080fd5b50610431610972366004612718565b6118af565b34801561098357600080fd5b506017546104319060ff1681565b61099a336118af565b6109bf5760405162461bcd60e51b81526004016109b6906127e2565b60405180910390fd5b6101f582106109e05760405162461bcd60e51b81526004016109b690612807565b60005b82811015610ab9578160096000868685818110610a0257610a0261284c565b9050602002016020810190610a179190612718565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f566c2270277919680152b0734389ae919d95ff7e9024c03fc3c7c209ec8412c7848483818110610a7257610a7261284c565b9050602002016020810190610a879190612718565b604080516001600160a01b03909216825284151560208301520160405180910390a1610ab281612878565b90506109e3565b50505050565b610ac8336118af565b610ae45760405162461bcd60e51b81526004016109b6906127e2565b6101f58210610b055760405162461bcd60e51b81526004016109b690612807565b60005b82811015610ab9578160076000868685818110610b2757610b2761284c565b9050602002016020810190610b3c9190612718565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de848483818110610b9757610b9761284c565b9050602002016020810190610bac9190612718565b604080516001600160a01b03909216825284151560208301520160405180910390a1610bd781612878565b9050610b08565b6000546001600160a01b03163314610c085760405162461bcd60e51b81526004016109b690612891565b600a811015610c655760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b60648201526084016109b6565b61271081600254610c7691906128b1565b610c8091906128c8565b60048190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d179086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610d535760405162461bcd60e51b81526004016109b690612891565b60175460ff1615610d9d5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b7339030b63932b0b23c9037b832b760611b60448201526064016109b6565b6017805460ff19166001908117909155426018556040519081527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a1565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610e94576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610e6f9184906118cd565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610e9f848484611907565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600254919291610f0a91906128ea565b610f1491906128ea565b905090565b610f22336118af565b610f3e5760405162461bcd60e51b81526004016109b6906127e2565b6101f58210610f5f5760405162461bcd60e51b81526004016109b690612807565b60005b82811015610ab9578160086000868685818110610f8157610f8161284c565b9050602002016020810190610f969190612718565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f3c4f06d74861dea6c152189f2ac8853b6f789feb0e1182101b7ad9d1858f70e3848483818110610ff157610ff161284c565b90506020020160208101906110069190612718565b604080516001600160a01b03909216825284151560208301520160405180910390a161103181612878565b9050610f62565b6000610d2382600019610cbc565b61104f336118af565b61106b5760405162461bcd60e51b81526004016109b6906127e2565b600f82905560108390556011819055611082611cab565b505050565b6000546001600160a01b031633146110b15760405162461bcd60e51b81526004016109b690612891565b600080546040516001600160a01b03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a2600080546001600160a01b0319169055565b6000611104336118af565b6111205760405162461bcd60e51b81526004016109b6906127e2565b306001600160a01b038416036111785760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e0000000060448201526064016109b6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611204576018546111c2906302932e006128fd565b42116112045760405162461bcd60e51b81526020600482015260116024820152702637b1b5b2b2103337b91018903cb2b0b960791b60448201526064016109b6565b81600003611277576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190612910565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611306573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190612929565b6000546001600160a01b031633146113545760405162461bcd60e51b81526004016109b690612891565b6001600160a01b0382166113bf5760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b60648201526084016109b6565b6001600160a01b0381166114285760405162461bcd60e51b815260206004820152602a60248201527f6275796261636b2066656520616464726573732063616e6e6f74206265207a65604482015269726f206164647265737360b01b60648201526084016109b6565b601280546001600160a01b038481166001600160a01b03199283168117909355601380549185169190921681179091556040805192835260208301919091527ff3b718cd51f62e3836535bffd8f429a3f80d9d4442d89b72beee94069ed1fa3891015b60405180910390a15050565b6000610ea2338484611907565b6000546001600160a01b031633146114ce5760405162461bcd60e51b81526004016109b690612891565b6001600160a01b038116600081815260016020818152604092839020805460ff19168317905582519384528301527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610cb1565b6000546001600160a01b0316331461154e5760405162461bcd60e51b81526004016109b690612891565b61155a6012600a612a2a565b6115659060016128b1565b8110156115b45760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206973206c657373207468616e206f6e6520746f6b656e00000060448201526064016109b6565b600a6002546115c391906128c8565b81106116035760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b60448201526064016109b6565b6019805460ff1916831515908117909155601a8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d0910161148b565b6000546001600160a01b0316331461167e5760405162461bcd60e51b81526004016109b690612891565b600a849055600b839055600c829055600d819055808261169e85876128fd565b6116a891906128fd565b6116b291906128fd565b600e55610ab9611cab565b6000546001600160a01b031633146116e75760405162461bcd60e51b81526004016109b690612891565b6000546001600160a01b03908116908216036117455760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016109b6565b6001600160a01b0381166000818152600160209081526040808320805460ff191690558051938452908301919091527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610cb1565b6000546001600160a01b031633146117c65760405162461bcd60e51b81526004016109b690612891565b600a8110156118295760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b60648201526084016109b6565b6127108160025461183a91906128b1565b61184491906128c8565b60038190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610cb1565b6000546001600160a01b031633146118a35760405162461bcd60e51b81526004016109b690612891565b6118ac81611d4a565b50565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156118f15760405162461bcd60e51b81526004016109b69190612648565b5060006118fe84866128ea565b95945050505050565b601b5460009060ff161561192757611920848484611db8565b9050610ea2565b6001600160a01b03841660009081526001602052604090205460ff1615801561196957506001600160a01b03831660009081526001602052604090205460ff16155b156119b75760175460ff166119b75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109b6565b6001600160a01b03841660009081526001602052604090205460ff161580156119f957506001600160a01b03841660009081526009602052604090205460ff16155b8015611a1e57506001600160a01b03831660009081526009602052604090205460ff16155b8015611a5c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611ad6576004546001600160a01b038416600090815260056020526040902054611a889084906128fd565b1115611ad65760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016109b6565b60035482111580611aff57506001600160a01b03841660009081526008602052604090205460ff165b80611b2257506001600160a01b03831660009081526008602052604090205460ff165b611b665760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016109b6565b611b6e611e8c565b15611b7b57611b7b611ef8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054611bcd9184906118cd565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1680611c1a57506001600160a01b03841660009081526007602052604090205460ff165b611c2e57611c2985848661224c565b611c30565b825b6001600160a01b038516600090815260056020526040902054909150611c569082612408565b6001600160a01b038086166000818152600560205260409081902093909355915190871690600080516020612ad983398151915290611c989085815260200190565b60405180910390a3506001949350505050565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada611cee6064611ce8601054600e5461246790919063ffffffff16565b906124e9565b611d0a6064611ce8600f54600e5461246790919063ffffffff16565b611d266064611ce8601154600e5461246790919063ffffffff16565b6040805160ff94851681529284166020840152921691810191909152606001610ddd565b6001600160a01b038116611d5d57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611e099184906118cd565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611e389083612408565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020612ad983398151915290611e7a9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611eca5750601b5460ff16155b8015611ed8575060195460ff165b8015610f14575050601a5430600090815260056020526040902054101590565b601b805460ff19166001179055600d54600e54600091611f17916128ea565b905080600003611f25575060015b6000611f328260026128b1565b600a54601a54611f4291906128b1565b611f4c91906128c8565b9050600081601a54611f5e91906128ea565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f9857611f9861284c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611fec57611fec61284c565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790612032908590600090869030904290600401612a39565b600060405180830381600087803b15801561204c57600080fd5b505af1158015612060573d6000803e3d6000fd5b5050600a5447925061207591506002906128c8565b61207f90866128ea565b94508460000361208e57600194505b600061209b8660026128b1565b600a546120a890846128b1565b6120b291906128c8565b9050600086600b54846120c591906128b1565b6120cf91906128c8565b9050600087600c54856120e291906128b1565b6120ec91906128c8565b6012546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015612127573d6000803e3d6000fd5b506013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612162573d6000803e3d6000fd5b5086156122385760145460405163f305d71960e01b81523060048201819052602482018a9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af11580156121d6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121fb9190612aaa565b505060408051858152602081018a90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff19169055505050505050565b600082158061225b5750600e54155b15612267575081610ea2565b6011546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036122a65750600f546122e4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036122e457506010545b60006123156122f66103e860646128b1565b611ce88461230f600e548a61246790919063ffffffff16565b90612467565b90506000612334600e54611ce8600d548561246790919063ffffffff16565b90506000612342838361252b565b905080156123ac57306000908152600560205260409020546123649082612408565b30600081815260056020526040908190209290925590516001600160a01b038a1690600080516020612ad9833981519152906123a39085815260200190565b60405180910390a35b81156123f2576002546123bf908361252b565b6002556040518281526000906001600160a01b038a1690600080516020612ad98339815191529060200160405180910390a35b6123fc878461252b565b98975050505050505050565b60008061241583856128fd565b905083811015610ea25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109b6565b60008260000361247957506000610d23565b600061248583856128b1565b90508261249285836128c8565b14610ea25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109b6565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061256d565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118cd565b6000818361258e5760405162461bcd60e51b81526004016109b69190612648565b5060006118fe84866128c8565b80151581146118ac57600080fd5b6000806000604084860312156125be57600080fd5b833567ffffffffffffffff808211156125d657600080fd5b818601915086601f8301126125ea57600080fd5b8135818111156125f957600080fd5b8760208260051b850101111561260e57600080fd5b602092830195509350508401356126248161259b565b809150509250925092565b60006020828403121561264157600080fd5b5035919050565b600060208083528351808285015260005b8181101561267557858101830151858201604001528201612659565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146126ad57600080fd5b919050565b600080604083850312156126c557600080fd5b6126ce83612696565b946020939093013593505050565b6000806000606084860312156126f157600080fd5b6126fa84612696565b925061270860208501612696565b9150604084013590509250925092565b60006020828403121561272a57600080fd5b610ea282612696565b60008060006060848603121561274857600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561277257600080fd5b61277b83612696565b915061278960208401612696565b90509250929050565b600080604083850312156127a557600080fd5b82356126ce8161259b565b600080600080608085870312156127c657600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161288a5761288a612862565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b8082028115828204841417610d2357610d23612862565b6000826128e557634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610d2357610d23612862565b80820180821115610d2357610d23612862565b60006020828403121561292257600080fd5b5051919050565b60006020828403121561293b57600080fd5b8151610ea28161259b565b600181815b8085111561298157816000190482111561296757612967612862565b8085161561297457918102915b93841c939080029061294b565b509250929050565b60008261299857506001610d23565b816129a557506000610d23565b81600181146129bb57600281146129c5576129e1565b6001915050610d23565b60ff8411156129d6576129d6612862565b50506001821b610d23565b5060208310610133831016604e8410600b8410161715612a04575081810a610d23565b612a0e8383612946565b8060001904821115612a2257612a22612862565b029392505050565b6000610ea260ff841683612989565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a895784516001600160a01b031683529383019391830191600101612a64565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612abf57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203a87f4f1f4f91d269dfe136bef1a2133ca13ff463dad1ae2489aad5ccb00f80d64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102e65760003560e01c806370a0823111610190578063bf56b371116100dc578063f0b37c0411610095578063f887ea401161006f578063f887ea4014610921578063fce589d814610941578063fe9fbb8014610957578063ffb54a991461097757600080fd5b8063f0b37c04146108c1578063f12418a8146108e1578063f2fde38b1461090157600080fd5b8063bf56b371146107d5578063c867d60b146107eb578063dd62ed3e1461081b578063df20fd4914610861578063e96fada214610881578063efa5e347146108a157600080fd5b80638b42507f11610149578063a4b45c0011610123578063a4b45c0014610741578063a8aa1b3114610761578063a9059cbb14610795578063b6a5d7de146107b557600080fd5b80638b42507f146106cf57806395d89b41146106ff57806398118cb41461072b57600080fd5b806370a0823114610623578063715018a61461065057806377b54bad1461066557806378109e54146106855780637d1db4a51461069b578063893d20e8146106b157600080fd5b806323b872dd1161024f5780634be9d869116102085780636917516b116101e25780636917516b146105bd5780636b67c4df146105d35780636ce46bc3146105e95780636ddd17131461060957600080fd5b80634be9d8691461055d5780634d709adf1461057d578063571ac8b01461059d57600080fd5b806323b872dd146104975780632b112e49146104b75780632f54bf6e146104cc578063313ce567146104fb5780633eaaf86b146105175780633f4218e01461052d57600080fd5b8063090896be116102a1578063090896be146103fb578063095ea7b3146104115780631693e8d414610441578063180b0d7e1461045657806318160ddd1461046c5780631df4ccfc1461048157600080fd5b8062108683146102f2578062bff44614610314578063012aa9121461033457806303382cbb146103545780630445b6671461039157806306fdde03146103b557600080fd5b366102ed57005b600080fd5b3480156102fe57600080fd5b5061031261030d3660046125a9565b610991565b005b34801561032057600080fd5b5061031261032f3660046125a9565b610abf565b34801561034057600080fd5b5061031261034f36600461262f565b610bde565b34801561036057600080fd5b50601354610374906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561039d57600080fd5b506103a7601a5481565b604051908152602001610388565b3480156103c157600080fd5b506040805180820190915260148152732a34329023b932b0ba102232b83932b9b9b4b7b760611b60208201525b6040516103889190612648565b34801561040757600080fd5b506103a7600c5481565b34801561041d57600080fd5b5061043161042c3660046126b2565b610cbc565b6040519015158152602001610388565b34801561044d57600080fd5b50610312610d29565b34801561046257600080fd5b506103a76103e881565b34801561047857600080fd5b506002546103a7565b34801561048d57600080fd5b506103a7600e5481565b3480156104a357600080fd5b506104316104b23660046126dc565b610de7565b3480156104c357600080fd5b506103a7610ea9565b3480156104d857600080fd5b506104316104e7366004612718565b6000546001600160a01b0391821691161490565b34801561050757600080fd5b5060405160128152602001610388565b34801561052357600080fd5b506103a760025481565b34801561053957600080fd5b50610431610548366004612718565b60076020526000908152604090205460ff1681565b34801561056957600080fd5b506103126105783660046125a9565b610f19565b34801561058957600080fd5b50601554610374906001600160a01b031681565b3480156105a957600080fd5b506104316105b8366004612718565b611038565b3480156105c957600080fd5b506103a760165481565b3480156105df57600080fd5b506103a7600b5481565b3480156105f557600080fd5b50610312610604366004612733565b611046565b34801561061557600080fd5b506019546104319060ff1681565b34801561062f57600080fd5b506103a761063e366004612718565b60056020526000908152604090205481565b34801561065c57600080fd5b50610312611087565b34801561067157600080fd5b506104316106803660046126b2565b6110f9565b34801561069157600080fd5b506103a760045481565b3480156106a757600080fd5b506103a760035481565b3480156106bd57600080fd5b506000546001600160a01b0316610374565b3480156106db57600080fd5b506104316106ea366004612718565b60086020526000908152604090205460ff1681565b34801561070b57600080fd5b506040805180820190915260038152621511d160ea1b60208201526103ee565b34801561073757600080fd5b506103a7600a5481565b34801561074d57600080fd5b5061031261075c36600461275f565b61132a565b34801561076d57600080fd5b506103747f00000000000000000000000038e0ca7a0f31993db3c7c7ffaaa0692a78d1cf4e81565b3480156107a157600080fd5b506104316107b03660046126b2565b611497565b3480156107c157600080fd5b506103126107d0366004612718565b6114a4565b3480156107e157600080fd5b506103a760185481565b3480156107f757600080fd5b50610431610806366004612718565b60096020526000908152604090205460ff1681565b34801561082757600080fd5b506103a761083636600461275f565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561086d57600080fd5b5061031261087c366004612792565b611524565b34801561088d57600080fd5b50601254610374906001600160a01b031681565b3480156108ad57600080fd5b506103126108bc3660046127b0565b611654565b3480156108cd57600080fd5b506103126108dc366004612718565b6116bd565b3480156108ed57600080fd5b506103126108fc36600461262f565b61179c565b34801561090d57600080fd5b5061031261091c366004612718565b611879565b34801561092d57600080fd5b50601454610374906001600160a01b031681565b34801561094d57600080fd5b506103a7600d5481565b34801561096357600080fd5b50610431610972366004612718565b6118af565b34801561098357600080fd5b506017546104319060ff1681565b61099a336118af565b6109bf5760405162461bcd60e51b81526004016109b6906127e2565b60405180910390fd5b6101f582106109e05760405162461bcd60e51b81526004016109b690612807565b60005b82811015610ab9578160096000868685818110610a0257610a0261284c565b9050602002016020810190610a179190612718565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f566c2270277919680152b0734389ae919d95ff7e9024c03fc3c7c209ec8412c7848483818110610a7257610a7261284c565b9050602002016020810190610a879190612718565b604080516001600160a01b03909216825284151560208301520160405180910390a1610ab281612878565b90506109e3565b50505050565b610ac8336118af565b610ae45760405162461bcd60e51b81526004016109b6906127e2565b6101f58210610b055760405162461bcd60e51b81526004016109b690612807565b60005b82811015610ab9578160076000868685818110610b2757610b2761284c565b9050602002016020810190610b3c9190612718565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de848483818110610b9757610b9761284c565b9050602002016020810190610bac9190612718565b604080516001600160a01b03909216825284151560208301520160405180910390a1610bd781612878565b9050610b08565b6000546001600160a01b03163314610c085760405162461bcd60e51b81526004016109b690612891565b600a811015610c655760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e312560e01b60648201526084016109b6565b61271081600254610c7691906128b1565b610c8091906128c8565b60048190556040519081527fa69fa556bf940aa0c695b9c8e1b229fdb1476830e2025e44da1028e0c1458d4a906020015b60405180910390a150565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d179086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610d535760405162461bcd60e51b81526004016109b690612891565b60175460ff1615610d9d5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b7339030b63932b0b23c9037b832b760611b60448201526064016109b6565b6017805460ff19166001908117909155426018556040519081527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a1565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610e94576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610e6f9184906118cd565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610e9f848484611907565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600254919291610f0a91906128ea565b610f1491906128ea565b905090565b610f22336118af565b610f3e5760405162461bcd60e51b81526004016109b6906127e2565b6101f58210610f5f5760405162461bcd60e51b81526004016109b690612807565b60005b82811015610ab9578160086000868685818110610f8157610f8161284c565b9050602002016020810190610f969190612718565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f3c4f06d74861dea6c152189f2ac8853b6f789feb0e1182101b7ad9d1858f70e3848483818110610ff157610ff161284c565b90506020020160208101906110069190612718565b604080516001600160a01b03909216825284151560208301520160405180910390a161103181612878565b9050610f62565b6000610d2382600019610cbc565b61104f336118af565b61106b5760405162461bcd60e51b81526004016109b6906127e2565b600f82905560108390556011819055611082611cab565b505050565b6000546001600160a01b031633146110b15760405162461bcd60e51b81526004016109b690612891565b600080546040516001600160a01b03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a2600080546001600160a01b0319169055565b6000611104336118af565b6111205760405162461bcd60e51b81526004016109b6906127e2565b306001600160a01b038416036111785760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e0000000060448201526064016109b6565b7f00000000000000000000000038e0ca7a0f31993db3c7c7ffaaa0692a78d1cf4e6001600160a01b0316836001600160a01b031603611204576018546111c2906302932e006128fd565b42116112045760405162461bcd60e51b81526020600482015260116024820152702637b1b5b2b2103337b91018903cb2b0b960791b60448201526064016109b6565b81600003611277576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190612910565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611306573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190612929565b6000546001600160a01b031633146113545760405162461bcd60e51b81526004016109b690612891565b6001600160a01b0382166113bf5760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b60648201526084016109b6565b6001600160a01b0381166114285760405162461bcd60e51b815260206004820152602a60248201527f6275796261636b2066656520616464726573732063616e6e6f74206265207a65604482015269726f206164647265737360b01b60648201526084016109b6565b601280546001600160a01b038481166001600160a01b03199283168117909355601380549185169190921681179091556040805192835260208301919091527ff3b718cd51f62e3836535bffd8f429a3f80d9d4442d89b72beee94069ed1fa3891015b60405180910390a15050565b6000610ea2338484611907565b6000546001600160a01b031633146114ce5760405162461bcd60e51b81526004016109b690612891565b6001600160a01b038116600081815260016020818152604092839020805460ff19168317905582519384528301527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610cb1565b6000546001600160a01b0316331461154e5760405162461bcd60e51b81526004016109b690612891565b61155a6012600a612a2a565b6115659060016128b1565b8110156115b45760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206973206c657373207468616e206f6e6520746f6b656e00000060448201526064016109b6565b600a6002546115c391906128c8565b81106116035760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b60448201526064016109b6565b6019805460ff1916831515908117909155601a8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d0910161148b565b6000546001600160a01b0316331461167e5760405162461bcd60e51b81526004016109b690612891565b600a849055600b839055600c829055600d819055808261169e85876128fd565b6116a891906128fd565b6116b291906128fd565b600e55610ab9611cab565b6000546001600160a01b031633146116e75760405162461bcd60e51b81526004016109b690612891565b6000546001600160a01b03908116908216036117455760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016109b6565b6001600160a01b0381166000818152600160209081526040808320805460ff191690558051938452908301919091527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610cb1565b6000546001600160a01b031633146117c65760405162461bcd60e51b81526004016109b690612891565b600a8110156118295760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e312560b81b60648201526084016109b6565b6127108160025461183a91906128b1565b61184491906128c8565b60038190556040519081527f365a2bb07537fddd750e9ac8d56970e584f83a144bb5225e77491b83bccd118390602001610cb1565b6000546001600160a01b031633146118a35760405162461bcd60e51b81526004016109b690612891565b6118ac81611d4a565b50565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156118f15760405162461bcd60e51b81526004016109b69190612648565b5060006118fe84866128ea565b95945050505050565b601b5460009060ff161561192757611920848484611db8565b9050610ea2565b6001600160a01b03841660009081526001602052604090205460ff1615801561196957506001600160a01b03831660009081526001602052604090205460ff16155b156119b75760175460ff166119b75760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016109b6565b6001600160a01b03841660009081526001602052604090205460ff161580156119f957506001600160a01b03841660009081526009602052604090205460ff16155b8015611a1e57506001600160a01b03831660009081526009602052604090205460ff16155b8015611a5c57507f00000000000000000000000038e0ca7a0f31993db3c7c7ffaaa0692a78d1cf4e6001600160a01b0316836001600160a01b031614155b15611ad6576004546001600160a01b038416600090815260056020526040902054611a889084906128fd565b1115611ad65760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016109b6565b60035482111580611aff57506001600160a01b03841660009081526008602052604090205460ff165b80611b2257506001600160a01b03831660009081526008602052604090205460ff165b611b665760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016109b6565b611b6e611e8c565b15611b7b57611b7b611ef8565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054611bcd9184906118cd565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1680611c1a57506001600160a01b03841660009081526007602052604090205460ff165b611c2e57611c2985848661224c565b611c30565b825b6001600160a01b038516600090815260056020526040902054909150611c569082612408565b6001600160a01b038086166000818152600560205260409081902093909355915190871690600080516020612ad983398151915290611c989085815260200190565b60405180910390a3506001949350505050565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada611cee6064611ce8601054600e5461246790919063ffffffff16565b906124e9565b611d0a6064611ce8600f54600e5461246790919063ffffffff16565b611d266064611ce8601154600e5461246790919063ffffffff16565b6040805160ff94851681529284166020840152921691810191909152606001610ddd565b6001600160a01b038116611d5d57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611e099184906118cd565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611e389083612408565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020612ad983398151915290611e7a9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000038e0ca7a0f31993db3c7c7ffaaa0692a78d1cf4e1614801590611eca5750601b5460ff16155b8015611ed8575060195460ff165b8015610f14575050601a5430600090815260056020526040902054101590565b601b805460ff19166001179055600d54600e54600091611f17916128ea565b905080600003611f25575060015b6000611f328260026128b1565b600a54601a54611f4291906128b1565b611f4c91906128c8565b9050600081601a54611f5e91906128ea565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f9857611f9861284c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611fec57611fec61284c565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790612032908590600090869030904290600401612a39565b600060405180830381600087803b15801561204c57600080fd5b505af1158015612060573d6000803e3d6000fd5b5050600a5447925061207591506002906128c8565b61207f90866128ea565b94508460000361208e57600194505b600061209b8660026128b1565b600a546120a890846128b1565b6120b291906128c8565b9050600086600b54846120c591906128b1565b6120cf91906128c8565b9050600087600c54856120e291906128b1565b6120ec91906128c8565b6012546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015612127573d6000803e3d6000fd5b506013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612162573d6000803e3d6000fd5b5086156122385760145460405163f305d71960e01b81523060048201819052602482018a9052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af11580156121d6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121fb9190612aaa565b505060408051858152602081018a90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff19169055505050505050565b600082158061225b5750600e54155b15612267575081610ea2565b6011546001600160a01b037f00000000000000000000000038e0ca7a0f31993db3c7c7ffaaa0692a78d1cf4e8116908416036122a65750600f546122e4565b7f00000000000000000000000038e0ca7a0f31993db3c7c7ffaaa0692a78d1cf4e6001600160a01b0316856001600160a01b0316036122e457506010545b60006123156122f66103e860646128b1565b611ce88461230f600e548a61246790919063ffffffff16565b90612467565b90506000612334600e54611ce8600d548561246790919063ffffffff16565b90506000612342838361252b565b905080156123ac57306000908152600560205260409020546123649082612408565b30600081815260056020526040908190209290925590516001600160a01b038a1690600080516020612ad9833981519152906123a39085815260200190565b60405180910390a35b81156123f2576002546123bf908361252b565b6002556040518281526000906001600160a01b038a1690600080516020612ad98339815191529060200160405180910390a35b6123fc878461252b565b98975050505050505050565b60008061241583856128fd565b905083811015610ea25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109b6565b60008260000361247957506000610d23565b600061248583856128b1565b90508261249285836128c8565b14610ea25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109b6565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061256d565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118cd565b6000818361258e5760405162461bcd60e51b81526004016109b69190612648565b5060006118fe84866128c8565b80151581146118ac57600080fd5b6000806000604084860312156125be57600080fd5b833567ffffffffffffffff808211156125d657600080fd5b818601915086601f8301126125ea57600080fd5b8135818111156125f957600080fd5b8760208260051b850101111561260e57600080fd5b602092830195509350508401356126248161259b565b809150509250925092565b60006020828403121561264157600080fd5b5035919050565b600060208083528351808285015260005b8181101561267557858101830151858201604001528201612659565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146126ad57600080fd5b919050565b600080604083850312156126c557600080fd5b6126ce83612696565b946020939093013593505050565b6000806000606084860312156126f157600080fd5b6126fa84612696565b925061270860208501612696565b9150604084013590509250925092565b60006020828403121561272a57600080fd5b610ea282612696565b60008060006060848603121561274857600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561277257600080fd5b61277b83612696565b915061278960208401612696565b90509250929050565b600080604083850312156127a557600080fd5b82356126ce8161259b565b600080600080608085870312156127c657600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161288a5761288a612862565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b8082028115828204841417610d2357610d23612862565b6000826128e557634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610d2357610d23612862565b80820180821115610d2357610d23612862565b60006020828403121561292257600080fd5b5051919050565b60006020828403121561293b57600080fd5b8151610ea28161259b565b600181815b8085111561298157816000190482111561296757612967612862565b8085161561297457918102915b93841c939080029061294b565b509250929050565b60008261299857506001610d23565b816129a557506000610d23565b81600181146129bb57600281146129c5576129e1565b6001915050610d23565b60ff8411156129d6576129d6612862565b50506001821b610d23565b5060208310610133831016604e8410600b8410161715612a04575081810a610d23565b612a0e8383612946565b8060001904821115612a2257612a22612862565b029392505050565b6000610ea260ff841683612989565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a895784516001600160a01b031683529383019391830191600101612a64565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612abf57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203a87f4f1f4f91d269dfe136bef1a2133ca13ff463dad1ae2489aad5ccb00f80d64736f6c63430008130033
Deployed Bytecode Sourcemap
5517:14725:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16524:373;;;;;;;;;;-1:-1:-1;16524:373:0;;;;;:::i;:::-;;:::i;:::-;;15795:353;;;;;;;;;;-1:-1:-1;15795:353:0;;;;;:::i;:::-;;:::i;9804:317::-;;;;;;;;;;-1:-1:-1;9804:317:0;;;;;:::i;:::-;;:::i;6827:36::-;;;;;;;;;;-1:-1:-1;6827:36:0;;;;-1:-1:-1;;;;;6827:36:0;;;;;;-1:-1:-1;;;;;1241:32:1;;;1223:51;;1211:2;1196:18;6827:36:0;;;;;;;;7160:50;;;;;;;;;;;;;;;;;;;1431:25:1;;;1419:2;1404:18;7160:50:0;1285:177:1;8598:80:0;;;;;;;;;;-1:-1:-1;8670:5:0;;;;;;;;;;;;-1:-1:-1;;;8670:5:0;;;;8598:80;;;;;;;:::i;6464:32::-;;;;;;;;;;;;;;;;8906:216;;;;;;;;;;-1:-1:-1;8906:216:0;;;;;:::i;:::-;;:::i;:::-;;;2622:14:1;;2615:22;2597:41;;2585:2;2570:18;8906:216:0;2457:187:1;13790:224:0;;;;;;;;;;;;;:::i;6622:45::-;;;;;;;;;;;;6663:4;6622:45;;8328:88;;;;;;;;;;-1:-1:-1;8401:12:0;;8328:88;;6536:79;;;;;;;;;;;;;;;;9424:370;;;;;;;;;;-1:-1:-1;9424:370:0;;;;;:::i;:::-;;:::i;18699:138::-;;;;;;;;;;;;;:::i;3314:103::-;;;;;;;;;;-1:-1:-1;3314:103:0;;;;;:::i;:::-;3369:4;3404:5;-1:-1:-1;;;;;3393:16:0;;;3404:5;;3393:16;;3314:103;8422:80;;;;;;;;;;-1:-1:-1;8422:80:0;;5897:2;3315:36:1;;3303:2;3288:18;8422:80:0;3173:184:1;5908:55:0;;;;;;;;;;;;;;;;6221:44;;;;;;;;;;-1:-1:-1;6221:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16156:360;;;;;;;;;;-1:-1:-1;16156:360:0;;;;;:::i;:::-;;:::i;6941:31::-;;;;;;;;;;-1:-1:-1;6941:31:0;;;;-1:-1:-1;;;;;6941:31:0;;;9130:122;;;;;;;;;;-1:-1:-1;9130:122:0;;;;;:::i;:::-;;:::i;6979:23::-;;;;;;;;;;;;;;;;6426:31;;;;;;;;;;;;;;;;17160:225;;;;;;;;;;-1:-1:-1;17160:225:0;;;;;:::i;:::-;;:::i;7123:30::-;;;;;;;;;;-1:-1:-1;7123:30:0;;;;;;;;6099:45;;;;;;;;;;-1:-1:-1;6099:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;3540:124;;;;;;;;;;;;;:::i;13211:548::-;;;;;;;;;;-1:-1:-1;13211:548:0;;;;;:::i;:::-;;:::i;6033:51::-;;;;;;;;;;;;;;;;5972:48;;;;;;;;;;;;;;;;8681:78;;;;;;;;;;-1:-1:-1;8733:7:0;8751:5;-1:-1:-1;;;;;8751:5:0;8681:78;;6272:48;;;;;;;;;;-1:-1:-1;6272:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8508:84;;;;;;;;;;-1:-1:-1;8582:7:0;;;;;;;;;;;;-1:-1:-1;;;8582:7:0;;;;8508:84;;6388:31;;;;;;;;;;;;;;;;17804:506;;;;;;;;;;-1:-1:-1;17804:506:0;;;;;:::i;:::-;;:::i;6903:29::-;;;;;;;;;;;;;;;9260:156;;;;;;;;;;-1:-1:-1;9260:156:0;;;;;:::i;:::-;;:::i;2956:138::-;;;;;;;;;;-1:-1:-1;2956:138:0;;;;;:::i;:::-;;:::i;7089:25::-;;;;;;;;;;;;;;;;6327:52;;;;;;;;;;-1:-1:-1;6327:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8765:133;;;;;;;;;;-1:-1:-1;8765:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8867:19:0;;;8849:7;8867:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8765:133;18318:369;;;;;;;;;;-1:-1:-1;18318:369:0;;;;;:::i;:::-;;:::i;6785:35::-;;;;;;;;;;-1:-1:-1;6785:35:0;;;;-1:-1:-1;;;;;6785:35:0;;;17393:403;;;;;;;;;;-1:-1:-1;17393:403:0;;;;;:::i;:::-;;:::i;3102:204::-;;;;;;;;;;-1:-1:-1;3102:204:0;;;;;:::i;:::-;;:::i;10127:320::-;;;;;;;;;;-1:-1:-1;10127:320:0;;;;;:::i;:::-;;:::i;3672:109::-;;;;;;;;;;-1:-1:-1;3672:109:0;;;;;:::i;:::-;;:::i;6872:24::-;;;;;;;;;;-1:-1:-1;6872:24:0;;;;-1:-1:-1;;;;;6872:24:0;;;6503:26;;;;;;;;;;;;;;;;3425:107;;;;;;;;;;-1:-1:-1;3425:107:0;;;;;:::i;:::-;;:::i;7011:31::-;;;;;;;;;;-1:-1:-1;7011:31:0;;;;;;;;16524:373;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;-1:-1:-1;;;2889:48:0;;;;;;;:::i;:::-;;;;;;;;;16659:3:::1;16640:22:::0;::::1;16632:71;;;;-1:-1:-1::0;;;16632:71:0::1;;;;;;;:::i;:::-;16719:9;16714:176;16732:20:::0;;::::1;16714:176;;;16810:6;16774:19;:33;16794:9;;16804:1;16794:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16774:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16774:33:0;:42;;-1:-1:-1;;16774:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16836::::1;16857:9:::0;;16867:1;16857:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16836:42;::::0;;-1:-1:-1;;;;;6169:32:1;;;6151:51;;6245:14;;6238:22;6233:2;6218:18;;6211:50;6124:18;16836:42:0::1;;;;;;;16754:3;::::0;::::1;:::i;:::-;;;16714:176;;;;16524:373:::0;;;:::o;15795:353::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;-1:-1:-1;;;2889:48:0;;;;;;;:::i;:::-;15922:3:::1;15903:22:::0;::::1;15895:71;;;;-1:-1:-1::0;;;15895:71:0::1;;;;;;;:::i;:::-;15982:9;15977:164;15995:20:::0;;::::1;15977:164;;;16065:6;16037:11;:25;16049:9;;16059:1;16049:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16037:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16037:25:0;:34;;-1:-1:-1;;16037:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16091:38:::1;16108:9:::0;;16118:1;16108:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16091:38;::::0;;-1:-1:-1;;;;;6169:32:1;;;6151:51;;6245:14;;6238:22;6233:2;6218:18;;6211:50;6124:18;16091:38:0::1;;;;;;;16017:3;::::0;::::1;:::i;:::-;;;15977:164;;9804:317:::0;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;9943:2:::1;9915:24;:30;;9907:78;;;::::0;-1:-1:-1;;;9907:78:0;;7080:2:1;9907:78:0::1;::::0;::::1;7062:21:1::0;7119:2;7099:18;;;7092:30;7158:34;7138:18;;;7131:62;-1:-1:-1;;;7209:18:1;;;7202:34;7253:19;;9907:78:0::1;6878:400:1::0;9907:78:0::1;10059:5;10030:24;10015:12;;:39;;;;:::i;:::-;10014:50;;;;:::i;:::-;9996:15;:68:::0;;;10080:33:::1;::::0;1431:25:1;;;10080:33:0::1;::::0;1419:2:1;1404:18;10080:33:0::1;;;;;;;;9804:317:::0;:::o;8906:216::-;9010:10;8981:4;8998:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8998:32:0;;;;;;;;;;:41;;;9055:37;8981:4;;8998:32;;9055:37;;;;9033:6;1431:25:1;;1419:2;1404:18;;1285:177;9055:37:0;;;;;;;;-1:-1:-1;9110:4:0;8906:216;;;;;:::o;13790:224::-;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;13854:11:::1;::::0;::::1;;13853:12;13845:44;;;::::0;-1:-1:-1;;;13845:44:0;;7880:2:1;13845:44:0::1;::::0;::::1;7862:21:1::0;7919:2;7899:18;;;7892:30;-1:-1:-1;;;7938:18:1;;;7931:50;7998:18;;13845:44:0::1;7678:344:1::0;13845:44:0::1;13900:11;:18:::0;;-1:-1:-1;;13900:18:0::1;13914:4;13900:18:::0;;::::1;::::0;;;13942:15:::1;13929:10;:28:::0;13973:33:::1;::::0;2597:41:1;;;13973:33:0::1;::::0;2585:2:1;2570:18;13973:33:0::1;;;;;;;;13790:224::o:0;9424:370::-;-1:-1:-1;;;;;9544:19:0;;9524:4;9544:19;;;:11;:19;;;;;;;;9564:10;9544:31;;;;;;;;-1:-1:-1;;9544:52:0;9541:186;;9646:69;;;;;;;;;;;-1:-1:-1;;;9646:69:0;;;;;;;;-1:-1:-1;;;;;9646:19:0;;-1:-1:-1;9646:19:0;;;:11;:19;;;;;9666:10;9646:31;;;;;;;;;;:69;;9682:6;;9646:35;:69::i;:::-;-1:-1:-1;;;;;9612:19:0;;;;;;:11;:19;;;;;;;;9632:10;9612:31;;;;;;;:103;9541:186;9746:40;9760:6;9768:9;9779:6;9746:13;:40::i;:::-;9739:47;;9424:370;;;;;;:::o;18699:138::-;18813:9;:15;;;;5655:42;18752:7;18795:15;;;;;18780:12;;18752:7;;18813:15;18780:30;;18795:15;18780:30;:::i;:::-;:48;;;;:::i;:::-;18772:57;;18699:138;:::o;16156:360::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;-1:-1:-1;;;2889:48:0;;;;;;;:::i;:::-;16287:3:::1;16268:22:::0;::::1;16260:71;;;;-1:-1:-1::0;;;16260:71:0::1;;;;;;;:::i;:::-;16347:9;16342:167;16360:20:::0;;::::1;16342:167;;;16434:6;16402:15;:29;16418:9;;16428:1;16418:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16402:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16402:29:0;:38;;-1:-1:-1;;16402:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16460:37:::1;16476:9:::0;;16486:1;16476:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16460:37;::::0;;-1:-1:-1;;;;;6169:32:1;;;6151:51;;6245:14;;6238:22;6233:2;6218:18;;6211:50;6124:18;16460:37:0::1;;;;;;;16382:3;::::0;::::1;:::i;:::-;;;16342:167;;9130:122:::0;9185:4;9209:35;9217:7;-1:-1:-1;;9209:7:0;:35::i;17160:225::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;-1:-1:-1;;;2889:48:0;;;;;;;:::i;:::-;17260:14:::1;:22:::0;;;17293:13:::1;:20:::0;;;17324:18:::1;:27:::0;;;17364:13:::1;:11;:13::i;:::-;17160:225:::0;;;:::o;3540:124::-;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;3621:5:::1;::::0;;3602:25:::1;::::0;-1:-1:-1;;;;;3621:5:0;;::::1;::::0;3602:25:::1;::::0;::::1;3654:1;3638:18:::0;;-1:-1:-1;;;;;;3638:18:0::1;::::0;;3540:124::o;13211:548::-;13303:12;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;-1:-1:-1;;;2889:48:0;;;;;;;:::i;:::-;13360:4:::1;-1:-1:-1::0;;;;;13336:29:0;::::1;::::0;13328:69:::1;;;::::0;-1:-1:-1;;;13328:69:0;;8362:2:1;13328:69:0::1;::::0;::::1;8344:21:1::0;8401:2;8381:18;;;8374:30;8440;8420:18;;;8413:58;8488:18;;13328:69:0::1;8160:352:1::0;13328:69:0::1;13427:4;-1:-1:-1::0;;;;;13411:20:0::1;:12;-1:-1:-1::0;;;;;13411:20:0::1;::::0;13408:119:::1;;13473:10;::::0;:21:::1;::::0;13486:8:::1;13473:21;:::i;:::-;13455:15;:39;13447:68;;;::::0;-1:-1:-1;;;13447:68:0;;8849:2:1;13447:68:0::1;::::0;::::1;8831:21:1::0;8888:2;8868:18;;;8861:30;-1:-1:-1;;;8907:18:1;;;8900:47;8964:18;;13447:68:0::1;8647:341:1::0;13447:68:0::1;13542:6;13552:1;13542:11:::0;13539:95:::1;;13578:44;::::0;-1:-1:-1;;;13578:44:0;;13616:4:::1;13578:44;::::0;::::1;1223:51:1::0;-1:-1:-1;;;;;13578:29:0;::::1;::::0;::::1;::::0;1196:18:1;;13578:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13569:53;;13539:95;13651:32;::::0;;-1:-1:-1;;;;;9374:32:1;;9356:51;;9438:2;9423:18;;9416:34;;;13651:32:0::1;::::0;9329:18:1;13651:32:0::1;;;;;;;13703:48;::::0;-1:-1:-1;;;13703:48:0;;13732:10:::1;13703:48;::::0;::::1;9356:51:1::0;9423:18;;;9416:34;;;-1:-1:-1;;;;;13703:28:0;::::1;::::0;::::1;::::0;9329:18:1;;13703:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17804:506::-:0;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17930:35:0;::::1;17922:91;;;::::0;-1:-1:-1;;;17922:91:0;;9913:2:1;17922:91:0::1;::::0;::::1;9895:21:1::0;9952:2;9932:18;;;9925:30;9991:34;9971:18;;;9964:62;-1:-1:-1;;;10042:18:1;;;10035:42;10094:19;;17922:91:0::1;9711:408:1::0;17922:91:0::1;-1:-1:-1::0;;;;;18032:36:0;::::1;18024:90;;;::::0;-1:-1:-1;;;18024:90:0;;10326:2:1;18024:90:0::1;::::0;::::1;10308:21:1::0;10365:2;10345:18;;;10338:30;10404:34;10384:18;;;10377:62;-1:-1:-1;;;10455:18:1;;;10448:40;10505:19;;18024:90:0::1;10124:406:1::0;18024:90:0::1;18127:20;:44:::0;;-1:-1:-1;;;;;18127:44:0;;::::1;-1:-1:-1::0;;;;;;18127:44:0;;::::1;::::0;::::1;::::0;;;18182:21:::1;:46:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;18246:56:::1;::::0;;10747:34:1;;;10812:2;10797:18;;10790:43;;;;18246:56:0::1;::::0;10682:18:1;18246:56:0::1;;;;;;;;17804:506:::0;;:::o;9260:156::-;9340:4;9364:44;9378:10;9390:9;9401:6;9364:13;:44::i;2956:138::-;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3018:19:0;::::1;;::::0;;;3040:4:::1;3018:19;::::0;;;;;;;;:26;;-1:-1:-1;;3018:26:0::1;::::0;::::1;::::0;;3060;;6151:51:1;;;6218:18;;6211:50;3060:26:0::1;::::0;6124:18:1;3060:26:0::1;5983:284:1::0;18318:369:0;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;18432:13:::1;5897:2;18432;:13;:::i;:::-;18428:17;::::0;:1:::1;:17;:::i;:::-;18417:7;:28;;18409:70;;;::::0;-1:-1:-1;;;18409:70:0;;12429:2:1;18409:70:0::1;::::0;::::1;12411:21:1::0;12468:2;12448:18;;;12441:30;12507:31;12487:18;;;12480:59;12556:18;;18409:70:0::1;12227:353:1::0;18409:70:0::1;18522:2;18509:12;;:15;;;;:::i;:::-;18498:7;:27;18490:55;;;::::0;-1:-1:-1;;;18490:55:0;;12787:2:1;18490:55:0::1;::::0;::::1;12769:21:1::0;12826:2;12806:18;;;12799:30;-1:-1:-1;;;12845:18:1;;;12838:45;12900:18;;18490:55:0::1;12585:339:1::0;18490:55:0::1;18558:11;:22:::0;;-1:-1:-1;;18558:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18591:13:::1;:23:::0;;;18632:47:::1;::::0;;13097:25:1;;;18558:22:0::1;18667:11:::0;;;13165:14:1;13158:22;13153:2;13138:18;;13131:50;18632:47:0::1;::::0;13070:18:1;18632:47:0::1;12929:258:1::0;17393:403:0;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;17538:12:::1;:28:::0;;;17577:12:::1;:28:::0;;;17616:13:::1;:30:::0;;;17657:7:::1;:18:::0;;;17667:8;17632:14;17697:29:::1;17592:13:::0;17553;17697:29:::1;:::i;:::-;:46;;;;:::i;:::-;:57;;;;:::i;:::-;17686:8;:68:::0;17775:13:::1;:11;:13::i;3102:204::-:0;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;3181:5:::1;::::0;-1:-1:-1;;;;;3181:5:0;;::::1;3174:12:::0;;::::1;::::0;3166:51:::1;;;::::0;-1:-1:-1;;;3166:51:0;;13394:2:1;3166:51:0::1;::::0;::::1;13376:21:1::0;13433:2;13413:18;;;13406:30;13472:28;13452:18;;;13445:56;13518:18;;3166:51:0::1;13192:350:1::0;3166:51:0::1;-1:-1:-1::0;;;;;3228:19:0;::::1;3250:5;3228:19:::0;;;:14:::1;:19;::::0;;;;;;;:27;;-1:-1:-1;;3228:27:0::1;::::0;;3271;;6151:51:1;;;6218:18;;;6211:50;;;;3271:27:0::1;::::0;6124:18:1;3271:27:0::1;5983:284:1::0;10127:320:0;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;10264:2:::1;10235:25;:31;;10227:84;;;::::0;-1:-1:-1;;;10227:84:0;;13749:2:1;10227:84:0::1;::::0;::::1;13731:21:1::0;13788:2;13768:18;;;13761:30;13827:34;13807:18;;;13800:62;-1:-1:-1;;;13878:18:1;;;13871:39;13927:19;;10227:84:0::1;13547:405:1::0;10227:84:0::1;10383:5;10353:25;10338:12;;:40;;;;:::i;:::-;10337:51;;;;:::i;:::-;10322:12;:66:::0;;;10404:35:::1;::::0;1431:25:1;;;10404:35:0::1;::::0;1419:2:1;1404:18;10404:35:0::1;1285:177:1::0;3672:109:0;3369:4;3404:5;-1:-1:-1;;;;;3404:5:0;2815:10;3393:16;2799:38;;;;-1:-1:-1;;;2799:38:0;;;;;;;:::i;:::-;3745:28:::1;3764:8;3745:18;:28::i;:::-;3672:109:::0;:::o;3425:107::-;-1:-1:-1;;;;;3505:19:0;3481:4;3505:19;;;:14;:19;;;;;;;;;3425:107::o;559:192::-;645:7;681:12;673:6;;;;665:29;;;;-1:-1:-1;;;665:29:0;;;;;;;;:::i;:::-;-1:-1:-1;705:9:0;717:5;721:1;717;:5;:::i;:::-;705:17;559:192;-1:-1:-1;;;;;559:192:0:o;10459:1158::-;10571:6;;10551:4;;10571:6;;10568:63;;;10587:41;10602:6;10610:9;10621:6;10587:14;:41::i;:::-;10580:48;;;;10568:63;-1:-1:-1;;;;;10647:22:0;;;;;;:14;:22;;;;;;;;10646:23;:53;;;;-1:-1:-1;;;;;;10674:25:0;;;;;;:14;:25;;;;;;;;10673:26;10646:53;10643:127;;;10723:11;;;;10715:43;;;;-1:-1:-1;;;10715:43:0;;14159:2:1;10715:43:0;;;14141:21:1;14198:2;14178:18;;;14171:30;-1:-1:-1;;;14217:18:1;;;14210:50;14277:18;;10715:43:0;13957:344:1;10715:43:0;-1:-1:-1;;;;;10787:22:0;;;;;;:14;:22;;;;;;;;10786:23;:55;;;;-1:-1:-1;;;;;;10814:27:0;;;;;;:19;:27;;;;;;;;10813:28;10786:55;:90;;;;-1:-1:-1;;;;;;10846:30:0;;;;;;:19;:30;;;;;;;;10845:31;10786:90;:111;;;;;10893:4;-1:-1:-1;;;;;10880:17:0;:9;-1:-1:-1;;;;;10880:17:0;;;10786:111;10782:230;;;10957:15;;-1:-1:-1;;;;;10923:20:0;;;;;;:9;:20;;;;;;:29;;10946:6;;10923:29;:::i;:::-;10922:50;;10914:86;;;;-1:-1:-1;;;10914:86:0;;14508:2:1;10914:86:0;;;14490:21:1;14547:2;14527:18;;;14520:30;14586:26;14566:18;;;14559:54;14630:18;;10914:86:0;14306:348:1;10914:86:0;11088:12;;11078:6;:22;;11077:51;;;-1:-1:-1;;;;;;11105:23:0;;;;;;:15;:23;;;;;;;;11077:51;:81;;;-1:-1:-1;;;;;;11132:26:0;;;;;;:15;:26;;;;;;;;11077:81;11069:115;;;;-1:-1:-1;;;11069:115:0;;14861:2:1;11069:115:0;;;14843:21:1;14900:2;14880:18;;;14873:30;-1:-1:-1;;;14919:18:1;;;14912:51;14980:18;;11069:115:0;14659:345:1;11069:115:0;11200:16;:14;:16::i;:::-;11197:35;;;11219:10;:8;:10::i;:::-;11264:53;;;;;;;;;;;-1:-1:-1;;;11264:53:0;;;;;;;;-1:-1:-1;;;;;11264:17:0;;-1:-1:-1;11264:17:0;;;:9;:17;;;;;;;;:53;;11286:6;;11264:21;:53::i;:::-;-1:-1:-1;;;;;11244:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11356:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11379:22:0;;;;;;:11;:22;;;;;;;;11356:45;11355:93;;11414:34;11422:6;11430;11438:9;11414:7;:34::i;:::-;11355:93;;;11405:6;11355:93;-1:-1:-1;;;;;11484:20:0;;;;;;:9;:20;;;;;;11330:118;;-1:-1:-1;11484:40:0;;11330:118;11484:24;:40::i;:::-;-1:-1:-1;;;;;11461:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11544:43;;;;;;-1:-1:-1;;;;;;;;;;;11544:43:0;;;11572:14;1431:25:1;;1419:2;1404:18;;1285:177;11544:43:0;;;;;;;;-1:-1:-1;11605:4:0;;10459:1158;-1:-1:-1;;;;10459:1158:0:o;16905:247::-;16953:191;16970:36;17002:3;16970:27;16983:13;;16970:8;;:12;;:27;;;;:::i;:::-;:31;;:36::i;:::-;17028:37;17061:3;17028:28;17041:14;;17028:8;;:12;;:28;;;;:::i;:37::-;17087:41;17124:3;17087:32;17100:18;;17087:8;;:12;;:32;;;;:::i;:41::-;16953:191;;;15229:4:1;15217:17;;;15199:36;;15271:17;;;15266:2;15251:18;;15244:45;15325:17;;15305:18;;;15298:45;;;;15187:2;15172:18;16953:191:0;15009:340:1;3789:185:0;-1:-1:-1;;;;;3863:22:0;;3855:31;;;;;;3923:5;;;3902:37;;-1:-1:-1;;;;;3902:37:0;;;;3923:5;;;3902:37;;;3950:5;:16;;-1:-1:-1;;;;;;3950:16:0;-1:-1:-1;;;;;3950:16:0;;;;;;;;;;3789:185::o;11629:330::-;11759:53;;;;;;;;;;;-1:-1:-1;;;11759:53:0;;;;;;;;-1:-1:-1;;;;;11759:17:0;;11722:4;11759:17;;;:9;:17;;;;;;;:53;;11781:6;;11759:21;:53::i;:::-;-1:-1:-1;;;;;11739:17:0;;;;;;;:9;:17;;;;;;:73;;;;11846:20;;;;;;;:32;;11871:6;11846:24;:32::i;:::-;-1:-1:-1;;;;;11823:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11894:35;;;;;;-1:-1:-1;;;;;;;;;;;11894:35:0;;;11922:6;1431:25:1;;1419:2;1404:18;;1285:177;11894:35:0;;;;;;;;-1:-1:-1;11947:4:0;11629:330;;;;;:::o;13006:197::-;13055:4;13079:10;-1:-1:-1;;;;;13093:4:0;13079:18;;;;;:38;;-1:-1:-1;13111:6:0;;;;13110:7;13079:38;:62;;;;-1:-1:-1;13130:11:0;;;;13079:62;:116;;;;-1:-1:-1;;13182:13:0;;13172:4;13154:24;;;;:9;:24;;;;;;:41;;;13006:197::o;14206:1581::-;7257:6;:13;;-1:-1:-1;;7257:13:0;7266:4;7257:13;;;14290:7:::1;::::0;14279:8:::1;::::0;7257:6;;14279:18:::1;::::0;::::1;:::i;:::-;14257:40;;14313:11;14328:1;14313:16:::0;14310:63:::1;;-1:-1:-1::0;14360:1:0::1;14310:63;14385:23;14443:15;:11:::0;14457:1:::1;14443:15;:::i;:::-;14428:12;;14412:13;;:28;;;;:::i;:::-;14411:48;;;;:::i;:::-;14385:74;;14470:20;14509:15;14493:13;;:31;;;;:::i;:::-;14561:16;::::0;;14575:1:::1;14561:16:::0;;;;;::::1;::::0;;14470:54;;-1:-1:-1;14537:21:0::1;::::0;14561:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14561:16:0::1;14537:40;;14606:4;14588;14593:1;14588:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;14588:23:0::1;;;-1:-1:-1::0;;;;;14588:23:0::1;;;::::0;::::1;14632:4;14622;14627:1;14622:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14622:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14649:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14649:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14721:12;;14649:6:::1;::::0;14764:4;;14791::::1;::::0;14811:15:::1;::::0;14649:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14934:12:0::1;::::0;14870:21:::1;::::0;-1:-1:-1;14934:16:0::1;::::0;-1:-1:-1;14949:1:0::1;::::0;14934:16:::1;:::i;:::-;14919:32;::::0;:11;:32:::1;:::i;:::-;14905:46;;14968:11;14983:1;14968:16:::0;14965:63:::1;;15015:1;15001:15;;14965:63;15040:26;15099:15;:11:::0;15113:1:::1;15099:15;:::i;:::-;15082:12;::::0;15070:24:::1;::::0;:9;:24:::1;:::i;:::-;15069:46;;;;:::i;:::-;15040:75;;15126:26;15184:11;15168:12;;15156:9;:24;;;;:::i;:::-;15155:40;;;;:::i;:::-;15126:69;;15206:24;15263:11;15246:13;;15234:9;:25;;;;:::i;:::-;15233:41;;;;:::i;:::-;15295:20;::::0;15287:58:::1;::::0;15206:68;;-1:-1:-1;;;;;;15295:20:0::1;::::0;15287:58;::::1;;;::::0;15326:18;;15295:20:::1;15287:58:::0;15295:20;15287:58;15326:18;15295:20;15287:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15364:21:0::1;::::0;15356:57:::1;::::0;-1:-1:-1;;;;;15364:21:0;;::::1;::::0;15356:57;::::1;;;::::0;15396:16;;15364:21:::1;15356:57:::0;15364:21;15356:57;15396:16;15364:21;15356:57;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15429:19:0;;15426:354:::1;;15464:6;::::0;:236:::1;::::0;-1:-1:-1;;;15464:236:0;;15540:4:::1;15464:236;::::0;::::1;16812:34:1::0;;;16862:18;;;16855:34;;;15464:6:0::1;16905:18:1::0;;;16898:34;;;16948:18;;;16941:34;16991:19;;;16984:44;15670:15:0::1;17044:19:1::0;;;17037:35;-1:-1:-1;;;;;15464:6:0;;::::1;::::0;:22:::1;::::0;15494:18;;16746:19:1;;15464:236:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15720:48:0::1;::::0;;17568:25:1;;;17624:2;17609:18;;17602:34;;;15720:48:0::1;::::0;-1:-1:-1;17541:18:1;15720:48:0::1;;;;;;;15426:354;-1:-1:-1::0;;7275:6:0;:14;;-1:-1:-1;;7275:14:0;;;-1:-1:-1;;;;;;14206:1581:0:o;11967:1031::-;12053:7;12076:11;;;:28;;-1:-1:-1;12091:8:0;;:13;12076:28;12073:72;;;-1:-1:-1;12127:6:0;12120:13;;12073:72;12178:18;;-1:-1:-1;;;;;12225:4:0;12212:17;;;;;;12209:154;;-1:-1:-1;12259:14:0;;12209:154;;;12304:4;-1:-1:-1;;;;;12294:14:0;:6;-1:-1:-1;;;;;12294:14:0;;12291:72;;-1:-1:-1;12338:13:0;;12291:72;12375:17;12395:62;12436:20;6663:4;12453:3;12436:20;:::i;:::-;12395:36;12420:10;12395:20;12406:8;;12395:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;12375:82;;12468:18;12489:36;12516:8;;12489:22;12503:7;;12489:9;:13;;:22;;;;:::i;:36::-;12468:57;-1:-1:-1;12536:22:0;12561:25;:9;12468:57;12561:13;:25::i;:::-;12536:50;-1:-1:-1;12602:18:0;;12599:187;;12681:4;12663:24;;;;:9;:24;;;;;;:44;;12692:14;12663:28;:44::i;:::-;12654:4;12636:24;;;;:9;:24;;;;;;;:71;;;;12727:47;;-1:-1:-1;;;;;12727:47:0;;;-1:-1:-1;;;;;;;;;;;12727:47:0;;;12759:14;1431:25:1;;1419:2;1404:18;;1285:177;12727:47:0;;;;;;;;12599:187;12809:14;;12806:144;;12854:12;;:28;;12871:10;12854:16;:28::i;:::-;12839:12;:43;12902:34;;1431:25:1;;;5728:42:0;;-1:-1:-1;;;;;12902:34:0;;;-1:-1:-1;;;;;;;;;;;12902:34:0;1419:2:1;1404:18;12902:34:0;;;;;;;12806:144;12969:21;:6;12980:9;12969:10;:21::i;:::-;12962:28;11967:1031;-1:-1:-1;;;;;;;;11967:1031:0:o;230:181::-;288:7;;320:5;324:1;320;:5;:::i;:::-;308:17;;349:1;344;:6;;336:46;;;;-1:-1:-1;;;336:46:0;;17849:2:1;336:46:0;;;17831:21:1;17888:2;17868:18;;;17861:30;17927:29;17907:18;;;17900:57;17974:18;;336:46:0;17647:351:1;757:250:0;815:7;839:1;844;839:6;835:47;;-1:-1:-1;869:1:0;862:8;;835:47;894:9;906:5;910:1;906;:5;:::i;:::-;894:17;-1:-1:-1;939:1:0;930:5;934:1;894:17;930:5;:::i;:::-;:10;922:56;;;;-1:-1:-1;;;922:56:0;;18205:2:1;922:56:0;;;18187:21:1;18244:2;18224:18;;;18217:30;18283:34;18263:18;;;18256:62;-1:-1:-1;;;18334:18:1;;;18327:31;18375:19;;922:56:0;18003:397:1;1013:132:0;1071:7;1098:39;1102:1;1105;1098:39;;;;;;;;;;;;;;;;;:3;:39::i;417:136::-;475:7;502:43;506:1;509;502:43;;;;;;;;;;;;;;;;;:3;:43::i;1151:189::-;1237:7;1272:12;1265:5;1257:28;;;;-1:-1:-1;;;1257:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1296:9:0;1308:5;1312:1;1308;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:750;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;383:18;424:2;416:6;413:14;410:34;;;440:1;437;430:12;410:34;478:6;467:9;463:22;453:32;;523:7;516:4;512:2;508:13;504:27;494:55;;545:1;542;535:12;494:55;585:2;572:16;611:2;603:6;600:14;597:34;;;627:1;624;617:12;597:34;682:7;675:4;665:6;662:1;658:14;654:2;650:23;646:34;643:47;640:67;;;703:1;700;693:12;640:67;734:4;726:13;;;;-1:-1:-1;758:6:1;-1:-1:-1;;799:20:1;;786:34;829:28;786:34;829:28;:::i;:::-;876:5;866:15;;;137:750;;;;;:::o;892:180::-;951:6;1004:2;992:9;983:7;979:23;975:32;972:52;;;1020:1;1017;1010:12;972:52;-1:-1:-1;1043:23:1;;892:180;-1:-1:-1;892:180:1:o;1467:548::-;1579:4;1608:2;1637;1626:9;1619:21;1669:6;1663:13;1712:6;1707:2;1696:9;1692:18;1685:34;1737:1;1747:140;1761:6;1758:1;1755:13;1747:140;;;1856:14;;;1852:23;;1846:30;1822:17;;;1841:2;1818:26;1811:66;1776:10;;1747:140;;;1751:3;1936:1;1931:2;1922:6;1911:9;1907:22;1903:31;1896:42;2006:2;1999;1995:7;1990:2;1982:6;1978:15;1974:29;1963:9;1959:45;1955:54;1947:62;;;;1467:548;;;;:::o;2020:173::-;2088:20;;-1:-1:-1;;;;;2137:31:1;;2127:42;;2117:70;;2183:1;2180;2173:12;2117:70;2020:173;;;:::o;2198:254::-;2266:6;2274;2327:2;2315:9;2306:7;2302:23;2298:32;2295:52;;;2343:1;2340;2333:12;2295:52;2366:29;2385:9;2366:29;:::i;:::-;2356:39;2442:2;2427:18;;;;2414:32;;-1:-1:-1;;;2198:254:1:o;2649:328::-;2726:6;2734;2742;2795:2;2783:9;2774:7;2770:23;2766:32;2763:52;;;2811:1;2808;2801:12;2763:52;2834:29;2853:9;2834:29;:::i;:::-;2824:39;;2882:38;2916:2;2905:9;2901:18;2882:38;:::i;:::-;2872:48;;2967:2;2956:9;2952:18;2939:32;2929:42;;2649:328;;;;;:::o;2982:186::-;3041:6;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;3133:29;3152:9;3133:29;:::i;3589:316::-;3666:6;3674;3682;3735:2;3723:9;3714:7;3710:23;3706:32;3703:52;;;3751:1;3748;3741:12;3703:52;-1:-1:-1;;3774:23:1;;;3844:2;3829:18;;3816:32;;-1:-1:-1;3895:2:1;3880:18;;;3867:32;;3589:316;-1:-1:-1;3589:316:1:o;3910:260::-;3978:6;3986;4039:2;4027:9;4018:7;4014:23;4010:32;4007:52;;;4055:1;4052;4045:12;4007:52;4078:29;4097:9;4078:29;:::i;:::-;4068:39;;4126:38;4160:2;4149:9;4145:18;4126:38;:::i;:::-;4116:48;;3910:260;;;;;:::o;4175:309::-;4240:6;4248;4301:2;4289:9;4280:7;4276:23;4272:32;4269:52;;;4317:1;4314;4307:12;4269:52;4356:9;4343:23;4375:28;4397:5;4375:28;:::i;4489:385::-;4575:6;4583;4591;4599;4652:3;4640:9;4631:7;4627:23;4623:33;4620:53;;;4669:1;4666;4659:12;4620:53;-1:-1:-1;;4692:23:1;;;4762:2;4747:18;;4734:32;;-1:-1:-1;4813:2:1;4798:18;;4785:32;;4864:2;4849:18;4836:32;;-1:-1:-1;4489:385:1;-1:-1:-1;4489:385:1:o;5105:335::-;5307:2;5289:21;;;5346:2;5326:18;;;5319:30;-1:-1:-1;;;5380:2:1;5365:18;;5358:41;5431:2;5416:18;;5105:335::o;5445:401::-;5647:2;5629:21;;;5686:2;5666:18;;;5659:30;5725:34;5720:2;5705:18;;5698:62;-1:-1:-1;;;5791:2:1;5776:18;;5769:35;5836:3;5821:19;;5445:401::o;5851:127::-;5912:10;5907:3;5903:20;5900:1;5893:31;5943:4;5940:1;5933:15;5967:4;5964:1;5957:15;6272:127;6333:10;6328:3;6324:20;6321:1;6314:31;6364:4;6361:1;6354:15;6388:4;6385:1;6378:15;6404:135;6443:3;6464:17;;;6461:43;;6484:18;;:::i;:::-;-1:-1:-1;6531:1:1;6520:13;;6404:135::o;6544:329::-;6746:2;6728:21;;;6785:1;6765:18;;;6758:29;-1:-1:-1;;;6818:2:1;6803:18;;6796:36;6864:2;6849:18;;6544:329::o;7283:168::-;7356:9;;;7387;;7404:15;;;7398:22;;7384:37;7374:71;;7425:18;;:::i;7456:217::-;7496:1;7522;7512:132;;7566:10;7561:3;7557:20;7554:1;7547:31;7601:4;7598:1;7591:15;7629:4;7626:1;7619:15;7512:132;-1:-1:-1;7658:9:1;;7456:217::o;8027:128::-;8094:9;;;8115:11;;;8112:37;;;8129:18;;:::i;8517:125::-;8582:9;;;8603:10;;;8600:36;;;8616:18;;:::i;8993:184::-;9063:6;9116:2;9104:9;9095:7;9091:23;9087:32;9084:52;;;9132:1;9129;9122:12;9084:52;-1:-1:-1;9155:16:1;;8993:184;-1:-1:-1;8993:184:1:o;9461:245::-;9528:6;9581:2;9569:9;9560:7;9556:23;9552:32;9549:52;;;9597:1;9594;9587:12;9549:52;9629:9;9623:16;9648:28;9670:5;9648:28;:::i;10844:422::-;10933:1;10976:5;10933:1;10990:270;11011:7;11001:8;10998:21;10990:270;;;11070:4;11066:1;11062:6;11058:17;11052:4;11049:27;11046:53;;;11079:18;;:::i;:::-;11129:7;11119:8;11115:22;11112:55;;;11149:16;;;;11112:55;11228:22;;;;11188:15;;;;10990:270;;;10994:3;10844:422;;;;;:::o;11271:806::-;11320:5;11350:8;11340:80;;-1:-1:-1;11391:1:1;11405:5;;11340:80;11439:4;11429:76;;-1:-1:-1;11476:1:1;11490:5;;11429:76;11521:4;11539:1;11534:59;;;;11607:1;11602:130;;;;11514:218;;11534:59;11564:1;11555:10;;11578:5;;;11602:130;11639:3;11629:8;11626:17;11623:43;;;11646:18;;:::i;:::-;-1:-1:-1;;11702:1:1;11688:16;;11717:5;;11514:218;;11816:2;11806:8;11803:16;11797:3;11791:4;11788:13;11784:36;11778:2;11768:8;11765:16;11760:2;11754:4;11751:12;11747:35;11744:77;11741:159;;;-1:-1:-1;11853:19:1;;;11885:5;;11741:159;11932:34;11957:8;11951:4;11932:34;:::i;:::-;12002:6;11998:1;11994:6;11990:19;11981:7;11978:32;11975:58;;;12013:18;;:::i;:::-;12051:20;;11271:806;-1:-1:-1;;;11271:806:1:o;12082:140::-;12140:5;12169:47;12210:4;12200:8;12196:19;12190:4;12169:47;:::i;15486:980::-;15748:4;15796:3;15785:9;15781:19;15827:6;15816:9;15809:25;15853:2;15891:6;15886:2;15875:9;15871:18;15864:34;15934:3;15929:2;15918:9;15914:18;15907:31;15958:6;15993;15987:13;16024:6;16016;16009:22;16062:3;16051:9;16047:19;16040:26;;16101:2;16093:6;16089:15;16075:29;;16122:1;16132:195;16146:6;16143:1;16140:13;16132:195;;;16211:13;;-1:-1:-1;;;;;16207:39:1;16195:52;;16302:15;;;;16267:12;;;;16243:1;16161:9;16132:195;;;-1:-1:-1;;;;;;;16383:32:1;;;;16378:2;16363:18;;16356:60;-1:-1:-1;;;16447:3:1;16432:19;16425:35;16344:3;15486:980;-1:-1:-1;;;15486:980:1:o;17083:306::-;17171:6;17179;17187;17240:2;17228:9;17219:7;17215:23;17211:32;17208:52;;;17256:1;17253;17246:12;17208:52;17285:9;17279:16;17269:26;;17335:2;17324:9;17320:18;17314:25;17304:35;;17379:2;17368:9;17364:18;17358:25;17348:35;;17083:306;;;;;:::o
Swarm Source
ipfs://3a87f4f1f4f91d269dfe136bef1a2133ca13ff463dad1ae2489aad5ccb00f80d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.