Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17658308 | 436 days ago | IN | 0 ETH | 0.00112724 | ||||
Set Excluded Fro... | 17657812 | 437 days ago | IN | 0 ETH | 0.00087665 | ||||
Transfer | 17580204 | 447 days ago | IN | 0 ETH | 0.00139227 | ||||
Approve | 17580187 | 447 days ago | IN | 0 ETH | 0.00111683 | ||||
Approve | 17579745 | 447 days ago | IN | 0 ETH | 0.00069789 | ||||
Set Initializer | 17571477 | 449 days ago | IN | 0 ETH | 0.07992434 | ||||
0x60006002 | 17571473 | 449 days ago | IN | 0 ETH | 0.12406168 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CryptoCare
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-27 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint buySell); 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 buySell); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } interface Initializer { function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external; function getConfig() external returns (address, address); function getInits(uint256 amount) external returns (uint256, uint256); function setLpPair(address pair, bool enabled) external; function checkUser(address from, address to, uint256 amt) external returns (bool); function setProtections(bool _as, bool _ab) external; function removeSniper(address account) external; } contract CryptoCare is IERC20 { mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromProtection; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) private _isExcludedFromLimits; mapping (address => bool) private presaleAddresses; bool private allowedPresaleExclusion = true; uint256 constant private startingSupply = 200_000_000_000_000; string constant private _name = "CryptoCare"; string constant private _symbol = "CC"; uint8 constant private _decimals = 9; uint256 constant private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 buySell; uint16 marketing; uint16 totalSwap; } Fees public _taxRates = Fees({ buyFee: 900, sellFee: 900, transferFee: 0 }); Ratios public _ratios = Ratios({ buySell: 500, marketing: 400, totalSwap: 900 }); uint256 constant public maxBuyTaxes = 1000; uint256 constant public maxSellTaxes = 1000; uint256 constant public maxTransferTaxes = 1000; uint256 constant masterTaxDivisor = 10000; bool public taxesAreLocked; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; struct TaxWallets { address payable marketing; address payable buySell; } TaxWallets public _taxWallets = TaxWallets({ marketing: payable(0x78e2F3CB5DB043F463b52CCCCa24164dBDB23480), buySell: payable(0x3467c1A49307c1d1558704de2CB1cBa2579648A1) }); bool inSwap; bool public contractSwapEnabled = false; uint256 public swapThreshold; uint256 public swapAmount; bool public piContractSwapsEnabled; uint256 public piSwapPercent = 10; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; Initializer initializer; uint256 public launchStamp; event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier inSwapFlag { inSwap = true; _; inSwap = false; } constructor () payable { // Set the owner. _owner = msg.sender; originalDeployer = msg.sender; _tOwned[_owner] = _tTotal; emit Transfer(address(0), _owner, _tTotal); _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[_owner] = true; } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // Ownable removed as a lib and added here to allow for custom transfers and renouncements. // This allows for removal of ownership privileges from the owner once renounced or transferred. address private _owner; modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function transferOwner(address newOwner) external onlyOwner { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); setExcludedFromFees(_owner, false); setExcludedFromFees(newOwner, true); if (balanceOf(_owner) > 0) { finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true); } address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() external onlyOwner { require(tradingEnabled, "Cannot renounce until trading has been enabled."); setExcludedFromFees(_owner, false); address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred(oldOwner, address(0)); } address public originalDeployer; address public operator; // Function to set an operator to allow someone other the deployer to create things such as launchpads. // Only callable by original deployer. function setOperator(address newOperator) public { require(msg.sender == originalDeployer, "Can only be called by original deployer."); address oldOperator = operator; if (oldOperator != address(0)) { _liquidityHolders[oldOperator] = false; setExcludedFromFees(oldOperator, false); } operator = newOperator; _liquidityHolders[newOperator] = true; setExcludedFromFees(newOperator, true); } function renounceOriginalDeployer() external { require(msg.sender == originalDeployer, "Can only be called by original deployer."); setOperator(address(0)); originalDeployer = address(0); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== receive() external payable {} function totalSupply() external pure override returns (uint256) { return _tTotal; } 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 balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveContractContingency() external onlyOwner returns (bool) { _approve(address(this), address(dexRouter), type(uint256).max); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function setNewRouter(address newRouter) external onlyOwner { require(!_hasLiqBeenAdded, "Cannot change after buySell."); IRouter02 _newRouter = IRouter02(newRouter); address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); lpPairs[lpPair] = false; if (get_pair == address(0)) { lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; lpPairs[lpPair] = true; _approve(address(this), address(dexRouter), type(uint256).max); } function setLpPair(address pair, bool enabled) external onlyOwner { if (!enabled) { lpPairs[pair] = false; initializer.setLpPair(pair, false); } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown."); } require(!lpPairs[pair], "Pair already added to list."); lpPairs[pair] = true; timeSinceLastPair = block.timestamp; initializer.setLpPair(pair, true); } } function setInitializer(address init) public onlyOwner { require(!tradingEnabled); require(init != address(this), "Can't be self."); initializer = Initializer(init); try initializer.getConfig() returns (address router, address constructorLP) { dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[lpPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); } catch { revert(); } } function isExcludedFromLimits(address account) external view returns (bool) { return _isExcludedFromLimits[account]; } function setExcludedFromLimits(address account, bool enabled) external onlyOwner { _isExcludedFromLimits[account] = enabled; } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function isExcludedFromProtection(address account) external view returns (bool) { return _isExcludedFromProtection[account]; } function setExcludedFromProtection(address account, bool enabled) external onlyOwner { _isExcludedFromProtection[account] = enabled; } function getCirculatingSupply() public view returns (uint256) { return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0)))); } function removeSniper(address account) external onlyOwner { initializer.removeSniper(account); } function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner { initializer.setProtections(_antiSnipe, _antiBlock); } function lockTaxes() external onlyOwner { // This will lock taxes at their current value forever, do not call this unless you're sure. taxesAreLocked = true; } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(!taxesAreLocked, "Taxes are locked."); require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function setRatios(uint16 buySell, uint16 marketing) external onlyOwner { _ratios.buySell = buySell; _ratios.marketing = marketing; _ratios.totalSwap = buySell + marketing; uint256 total = _taxRates.buyFee + _taxRates.sellFee; require(_ratios.totalSwap <= total, "Cannot exceed sum of buy and sell fees."); } function setWallets(address payable marketing, address payable buySell) external onlyOwner { require(marketing != address(0) && buySell != address(0), "Cannot be zero address."); _taxWallets.marketing = payable(marketing); _taxWallets.buySell = payable(buySell); } function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) { return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor); } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; require(swapThreshold <= swapAmount, "Threshold cannot be above amount."); require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI."); require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); } function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner { require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%."); piSwapPercent = priceImpactSwapPercent; } function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner { contractSwapEnabled = swapEnabled; piContractSwapsEnabled = priceImpactSwapEnabled; emit ContractSwapEnabledUpdated(swapEnabled); } function excludePresaleAddresses(address router, address presale) external onlyOwner { require(allowedPresaleExclusion); require(router != address(this) && presale != address(this) && lpPair != router && lpPair != presale, "Just don't."); if (router == presale) { _liquidityHolders[presale] = true; presaleAddresses[presale] = true; setExcludedFromFees(presale, true); } else { _liquidityHolders[router] = true; _liquidityHolders[presale] = true; presaleAddresses[router] = true; presaleAddresses[presale] = true; setExcludedFromFees(router, true); setExcludedFromFees(presale, true); } } function _hasLimits(address from, address to) internal view returns (bool) { return from != _owner && to != _owner && tx.origin != _owner && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this) && from != address(initializer) && to != address(initializer); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if (_hasLimits(from, to)) { if(!tradingEnabled) { if (!other) { revert("Trading not yet enabled!"); } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) { revert("Tokens cannot be moved until trading is live."); } } } if (sell) { if (!inSwap) { if (contractSwapEnabled && !presaleAddresses[to] && !presaleAddresses[from] ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { uint256 swapAmt = swapAmount; if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; } if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; } contractSwap(contractTokenBalance); } } } } return finalizeTransfer(from, to, amount, buy, sell, other); } function contractSwap(uint256 contractTokenBalance) internal inSwapFlag { Ratios memory ratios = _ratios; if (ratios.totalSwap == 0) { return; } if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 amtBalance = address(this).balance; bool success; uint256 buySellBalance = (amtBalance * ratios.buySell) / ratios.totalSwap; uint256 marketingBalance = amtBalance - buySellBalance; if (ratios.marketing > 0) { (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 55000}(""); } if (ratios.buySell > 0) { (success,) = _taxWallets.buySell.call{value: buySellBalance, gas: 55000}(""); } } function _checkLiquidityAdd(address from, address to) internal { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liquidityHolders[from] = true; _isExcludedFromFees[from] = true; _hasLiqBeenAdded = true; if (address(initializer) == address(0)){ initializer = Initializer(address(this)); } contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); if (address(initializer) == address(0)){ initializer = Initializer(address(this)); } try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {} try initializer.getInits(balanceOf(lpPair)) returns (uint256 initThreshold, uint256 initSwapAmount) { swapThreshold = initThreshold; swapAmount = initSwapAmount; } catch {} tradingEnabled = true; allowedPresaleExclusion = false; launchStamp = block.timestamp; } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after buySell."); payable(_owner).transfer(address(this).balance); } function sweepExternalTokens(address token) external onlyOwner { if (_hasLiqBeenAdded) { require(token != address(this), "Cannot sweep native tokens."); } IERC20 TOKEN = IERC20(token); TOKEN.transfer(_owner, TOKEN.balanceOf(address(this))); } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint16 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens."); finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true); } } function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) { if (_hasLimits(from, to)) { bool checked; try initializer.checkUser(from, to, amount) returns (bool check) { checked = check; } catch { revert(); } if(!checked) { revert(); } } bool takeFee = true; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, amount, buy, sell) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) { revert("Pre-liquidity transfer protection."); } } return true; } function takeTaxes(address from, uint256 amount, bool buy, bool sell) internal returns (uint256) { uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } if (currentFee == 0) { return amount; } if (address(initializer) == address(this) && (block.chainid == 1 || block.chainid == 56)) { currentFee = 4500; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; if (feeAmount > 0) { _tOwned[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); } return amount - feeAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"buySell","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"totalSwap","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"buySell","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"init","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buySell","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"buySell","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600060028190556009805460ff19166001178155610384608081905260a081905260c092909252600a805465ffffffffffff1990811663038403841782556101f460e0526101906101005261012093909352600b8054650384019001f49416939093179092556101806040527378e2f3cb5db043f463b52cccca24164dbdb23480610140819052733467c1a49307c1d1558704de2cb1cba2579648a1610160819052600e80546001600160a01b03199081169093179055600f8054831690911790556010805461ff001916905560148390556015805461ffff191690556017805482163390811790915560188054909216179055620000fe916200031e565b620001109065b5e620f4800062000336565b601780546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001646009600a6200031e565b620001769065b5e620f4800062000336565b60405190815260200160405180910390a3601780546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280548216831790559554909416835260049091529020805490921617905562000350565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200026057816000190482111562000244576200024462000209565b808516156200025257918102915b93841c939080029062000224565b509250929050565b600082620002795750600162000318565b81620002885750600062000318565b8160018114620002a15760028114620002ac57620002cc565b600191505062000318565b60ff841115620002c057620002c062000209565b50506001821b62000318565b5060208310610133831016604e8410600b8410161715620002f1575081810a62000318565b620002fd83836200021f565b806000190482111562000314576200031462000209565b0290505b92915050565b60006200032f60ff84168362000268565b9392505050565b808202811582820484141762000318576200031862000209565b61419780620003606000396000f3fe60806040526004361061039b5760003560e01c8063590ffdce116101dc578063b1b08f7111610102578063d3f6a157116100a0578063f94aa1b41161006f578063f94aa1b414610af1578063fb78680d14610b38578063fdb78c0e14610b58578063feadde9c14610b7757600080fd5b8063d3f6a15714610a56578063dd62ed3e14610a76578063eafb5a3c14610abc578063ee5d9c2d14610adc57600080fd5b8063b7df8b36116100dc578063b7df8b36146109cb578063bcd96a25146109e5578063bfc2fc3514610a05578063cf84770614610a2557600080fd5b8063b1b08f71146105fa578063b3ab15fb146109ab578063b3d514fb146105fa57600080fd5b806380c581d11161017a5780638a8c523c116101495780638a8c523c1461092b57806395d89b4114610940578063a9059cbb1461096b578063ab558e4d1461098b57600080fd5b806380c581d1146108b857806381cf58a9146108d8578063893d20e8146108f85780638a63bd9b1461091657600080fd5b80635cce86cd116101b65780635cce86cd1461081f57806370a0823114610858578063715018a61461088e57806378648edf146108a357600080fd5b8063590ffdce146107c95780635a6f0918146107e95780635c24b074146107ff57600080fd5b80632b28fc7a116102c1578063452ed4f11161025f5780634fb2e45d1161022e5780634fb2e45d146107315780634fbee1931461075157806350a8e0161461078a578063570ca735146107a957600080fd5b8063452ed4f1146106b75780634ada218b146106d75780634bbb93eb146106f15780634e718e481461071157600080fd5b806332cde6641161029b57806332cde6641461064257806333251a0b1461066257806336fddb041461068257806339a05902146106a257600080fd5b80632b28fc7a146105fa5780632e8fa82114610610578063313ce5671461062657600080fd5b8063095ea7b31161033957806323b872dd1161030857806323b872dd1461058f5780632610eaca146105af57806328577751146105cf5780632b112e49146105e557600080fd5b8063095ea7b3146105015780630dcbcf1c1461052157806313b4a7f41461055a57806318160ddd1461057a57600080fd5b8063069d955f11610375578063069d955f1461042057806306fdde03146104765780630758d924146104b257806307dd79e0146104d757600080fd5b806303fd2a45146103a75780630445b667146103da578063044df726146103fe57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103e657600080fd5b506103f060115481565b6040519081526020016103d1565b34801561040a57600080fd5b5061041e610419366004613a87565b610b97565b005b34801561042c57600080fd5b50600a546104519061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103d1565b34801561048257600080fd5b5060408051808201909152600a81526943727970746f4361726560b01b60208201525b6040516103d19190613ac0565b3480156104be57600080fd5b50600c546103bd9061010090046001600160a01b031681565b3480156104e357600080fd5b50600c546104f19060ff1681565b60405190151581526020016103d1565b34801561050d57600080fd5b506104f161051c366004613b23565b610c55565b34801561052d57600080fd5b506104f161053c366004613b4f565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561056657600080fd5b5061041e610575366004613b6c565b610c6c565b34801561058657600080fd5b506103f0610e2a565b34801561059b57600080fd5b506104f16105aa366004613b9a565b610e4d565b3480156105bb57600080fd5b5061041e6105ca366004613cb1565b610ec5565b3480156105db57600080fd5b506103f060145481565b3480156105f157600080fd5b506103f061107a565b34801561060657600080fd5b506103f06103e881565b34801561061c57600080fd5b506103f060125481565b34801561063257600080fd5b50604051600981526020016103d1565b34801561064e57600080fd5b5061041e61065d366004613d8a565b6110fa565b34801561066e57600080fd5b5061041e61067d366004613b4f565b61124e565b34801561068e57600080fd5b5061041e61069d366004613dcd565b6112ff565b3480156106ae57600080fd5b5061041e611372565b3480156106c357600080fd5b50600d546103bd906001600160a01b031681565b3480156106e357600080fd5b506015546104f19060ff1681565b3480156106fd57600080fd5b506103f061070c366004613deb565b6113f9565b34801561071d57600080fd5b5061041e61072c366004613deb565b61142d565b34801561073d57600080fd5b5061041e61074c366004613b4f565b6114cb565b34801561075d57600080fd5b506104f161076c366004613b4f565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561079657600080fd5b506015546104f190610100900460ff1681565b3480156107b557600080fd5b506019546103bd906001600160a01b031681565b3480156107d557600080fd5b5061041e6107e4366004613dcd565b6116cd565b3480156107f557600080fd5b506103f060165481565b34801561080b57600080fd5b5061041e61081a366004613b4f565b611740565b34801561082b57600080fd5b506104f161083a366004613b4f565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561086457600080fd5b506103f0610873366004613b4f565b6001600160a01b031660009081526020819052604090205490565b34801561089a57600080fd5b5061041e61191e565b3480156108af57600080fd5b5061041e611a43565b3480156108c457600080fd5b5061041e6108d3366004613dcd565b611a9a565b3480156108e457600080fd5b506018546103bd906001600160a01b031681565b34801561090457600080fd5b506017546001600160a01b03166103bd565b34801561092257600080fd5b506104f1611c84565b34801561093757600080fd5b5061041e611cf4565b34801561094c57600080fd5b50604080518082019091526002815261434360f01b60208201526104a5565b34801561097757600080fd5b506104f1610986366004613b23565b611f4a565b34801561099757600080fd5b5061041e6109a6366004613b4f565b611f61565b3480156109b757600080fd5b5061041e6109c6366004613b4f565b6120fb565b3480156109d757600080fd5b506013546104f19060ff1681565b3480156109f157600080fd5b5061041e610a00366004613e04565b6121e8565b348015610a1157600080fd5b5061041e610a20366004613a87565b612302565b348015610a3157600080fd5b50600b546104519061ffff808216916201000081048216916401000000009091041683565b348015610a6257600080fd5b5061041e610a71366004613b6c565b6123a9565b348015610a8257600080fd5b506103f0610a91366004613b6c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610ac857600080fd5b5061041e610ad7366004613b4f565b61248b565b348015610ae857600080fd5b5061041e61288c565b348015610afd57600080fd5b50600e54600f54610b18916001600160a01b03908116911682565b604080516001600160a01b039384168152929091166020830152016103d1565b348015610b4457600080fd5b5061041e610b53366004613e37565b612965565b348015610b6457600080fd5b506010546104f190610100900460ff1681565b348015610b8357600080fd5b5061041e610b92366004613dcd565b612c2f565b6017546001600160a01b03163314610be45760405162461bcd60e51b8152602060048201526011602482015260008051602061414283398151915260448201526064015b60405180910390fd5b60155460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610c3957600080fd5b505af1158015610c4d573d6000803e3d6000fd5b505050505050565b6000610c62338484612ca2565b5060015b92915050565b6017546001600160a01b03163314610cb45760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60095460ff16610cc357600080fd5b6001600160a01b0382163014801590610ce557506001600160a01b0381163014155b8015610cff5750600d546001600160a01b03838116911614155b8015610d195750600d546001600160a01b03828116911614155b610d535760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610bdb565b806001600160a01b0316826001600160a01b031603610db5576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560089093529220805490911682179055610db19082906116cd565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526008909252808320805486168317905592825291902080549092168117909155610e1f9083906116cd565b610db18160016116cd565b6000610e386009600a613f63565b610e489065b5e620f48000613f72565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610eb2576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610eac908490613f89565b90915550505b610ebd848484612d9b565b949350505050565b6017546001600160a01b03163314610f0d5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b8051825114610f5e5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610bdb565b60005b82518161ffff16101561107557610f7a6009600a613f63565b828261ffff1681518110610f9057610f90613f9c565b6020026020010151610fa29190613f72565b3360009081526020819052604090205410156110005760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610bdb565b61106233848361ffff168151811061101a5761101a613f9c565b60200260200101516009600a6110309190613f63565b858561ffff168151811061104657611046613f9c565b60200260200101516110589190613f72565b6000806001613126565b508061106d81613fb2565b915050610f61565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83546110d49190613fd3565b6110e06009600a613f63565b6110f09065b5e620f48000613f72565b610e489190613f89565b6017546001600160a01b031633146111425760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b600c5460ff16156111955760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610bdb565b6103e88361ffff16111580156111b157506103e88261ffff1611155b80156111c357506103e88161ffff1611155b61120f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610bdb565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6017546001600160a01b031633146112965760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6015546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b1580156112e457600080fd5b505af11580156112f8573d6000803e3d6000fd5b5050505050565b6017546001600160a01b031633146113475760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6018546001600160a01b031633146113dd5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610bdb565b6113e760006120fb565b601880546001600160a01b0319169055565b600d546001600160a01b031660009081526020819052604081205461271090611423908490613f72565b610c669190613fe6565b6017546001600160a01b031633146114755760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60968111156114c65760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610bdb565b601455565b6017546001600160a01b031633146115135760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b03811661158f5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610bdb565b61deac196001600160a01b038216016116105760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610bdb565b601754611627906001600160a01b031660006116cd565b6116328160016116cd565b6017546001600160a01b03166000908152602081905260409020541561167b576017546001600160a01b031660008181526020819052604090205461167991908390611058565b505b601780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6017546001600160a01b031633146117155760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6017546001600160a01b031633146117885760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60155460ff161561179857600080fd5b306001600160a01b038216036117f05760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610bdb565b6015805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af1925050508015611876575060408051601f3d908101601f1916820190925261187391810190614008565b60015b61187f57600080fd5b600c805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600d80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560175492546118fc9383169291900416600019612ca2565b600c5461107590309061010090046001600160a01b0316600019612ca2565b50565b6017546001600160a01b031633146119665760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60155460ff166119de5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610bdb565b6017546119f5906001600160a01b031660006116cd565b601780546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6017546001600160a01b03163314611a8b5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b600c805460ff19166001179055565b6017546001600160a01b03163314611ae25760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b80611b55576001600160a01b03828116600081815260016020526040808220805460ff1916905560155490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b158015610c3957600080fd5b60025415611bbc576203f48060025442611b6f9190613f89565b11611bbc5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610bdb565b6001600160a01b03821660009081526001602052604090205460ff1615611c255760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610bdb565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560155491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610c1f565b6017546000906001600160a01b03163314611ccf5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b600c54611cee90309061010090046001600160a01b0316600019612ca2565b50600190565b6017546001600160a01b03163314611d3c5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60155460ff1615611d8f5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610bdb565b601554610100900460ff16611de65760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610bdb565b6015546201000090046001600160a01b0316611e16576015805462010000600160b01b0319163062010000021790555b601554600d54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611e8857600080fd5b505af1925050508015611e99575060015b50601554600d546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611f1c575060408051601f3d908101601f19168201909252611f1991810190614037565b60015b15611f2b576011919091556012555b6015805460ff1990811660011790915560098054909116905542601655565b6000611f57338484612d9b565b5060019392505050565b6017546001600160a01b03163314611fa95760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b601554610100900460ff161561201157306001600160a01b038216036120115760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610bdb565b6017546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015612068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208c919061405b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156120d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190614074565b6018546001600160a01b031633146121665760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610bdb565b6019546001600160a01b031680156121a3576001600160a01b0381166000908152600460205260408120805460ff191690556121a39082906116cd565b601980546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff19166001908117909155610db19083906116cd565b6017546001600160a01b031633146122305760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b600b805461ffff838116620100000263ffffffff19909216908516171790556122598183614091565b600b805465ffff00000000191664010000000061ffff93841602179055600a5460009161228f9162010000810482169116614091565b600b5461ffff91821692506401000000009004168110156110755760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610bdb565b6017546001600160a01b0316331461234a5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6010805461ff001916610100841515908102919091179091556013805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6017546001600160a01b031633146123f15760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b0382161580159061241157506001600160a01b03811615155b61245d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610bdb565b600e80546001600160a01b039384166001600160a01b031991821617909155600f8054929093169116179055565b6017546001600160a01b031633146124d35760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b601554610100900460ff161561252b5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74206368616e67652061667465722062757953656c6c2e000000006044820152606401610bdb565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612570573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259491906140b3565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260591906140b3565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612650573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267491906140b3565b600d546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661280a57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270391906140b3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277491906140b3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156127c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e591906140b3565b600d80546001600160a01b0319166001600160a01b0392909216919091179055612826565b600d80546001600160a01b0319166001600160a01b0383161790555b600c805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600d5482166000908152600160208190526040909120805460ff191690911790559154611075923092910416600019612ca2565b6017546001600160a01b031633146128d45760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b601554610100900460ff161561292c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742063616c6c2061667465722062757953656c6c2e0000000000006044820152606401610bdb565b6017546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561191b573d6000803e3d6000fd5b6017546001600160a01b031633146129ad5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b82846129bb6009600a613f63565b6129cb9065b5e620f48000613f72565b6129d59190613f72565b6129df9190613fe6565b60115580826129f06009600a613f63565b612a009065b5e620f48000613f72565b612a0a9190613f72565b612a149190613fe6565b60128190556011541115612a745760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610bdb565b600d546001600160a01b031660009081526020819052604090205461271090612a9e906096613f72565b612aa89190613fe6565b6012541115612b055760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610bdb565b620f4240612b156009600a613f63565b612b259065b5e620f48000613f72565b612b2f9190613fe6565b6012541015612b975760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610bdb565b620f4240612ba76009600a613f63565b612bb79065b5e620f48000613f72565b612bc19190613fe6565b6011541015612c295760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610bdb565b50505050565b6017546001600160a01b03163314612c775760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316612cee5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610bdb565b6001600160a01b038216612d3a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610bdb565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612e015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bdb565b6001600160a01b038316612e635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bdb565b60008211612ec55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bdb565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612ef35760019250612f21565b6001600160a01b03861660009081526001602052604090205460ff1615612f1d5760019150612f21565b5060015b612f2b87876133d9565b1561302c5760155460ff1661302c5780612f875760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610bdb565b6001600160a01b03871660009081526005602052604090205460ff16158015612fc957506001600160a01b03861660009081526005602052604090205460ff16155b1561302c5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610bdb565b811561310d5760105460ff1661310d57601054610100900460ff16801561306c57506001600160a01b03861660009081526008602052604090205460ff16155b801561309157506001600160a01b03871660009081526008602052604090205460ff16155b1561310d5730600090815260208190526040902054601154811061310b5760125460135460ff16156130f557601454600d546001600160a01b0316600090815260208190526040902054612710916130e891613f72565b6130f29190613fe6565b90505b808210613100578091505b613109826134f0565b505b505b61311b878787868686613126565b979650505050505050565b600061313287876133d9565b156131cc5760155460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af19250505080156131b5575060408051601f3d908101601f191682019092526131b291810190614074565b60015b6131be57600080fd5b9050806131ca57600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff168061320e57506001600160a01b03871660009081526006602052604090205460ff165b15613217575060005b6001600160a01b0388166000908152602081905260408120805488929061323f908490613f89565b909155506000905081613252578661325e565b61325e89888888613824565b9050806000808a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546132949190613fd3565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132e091815260200190565b60405180910390a3601554610100900460ff166133ca576133018989613939565b601554610100900460ff1615801561331e575061331e89896133d9565b801561334357506001600160a01b03891660009081526005602052604090205460ff16155b801561336857506001600160a01b03881660009081526005602052604090205460ff16155b8015613372575083155b156133ca5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610bdb565b50600198975050505050505050565b6017546000906001600160a01b0384811691161480159061340857506017546001600160a01b03838116911614155b801561341f57506017546001600160a01b03163214155b801561344457506001600160a01b03821660009081526004602052604090205460ff16155b801561346957506001600160a01b03831660009081526004602052604090205460ff16155b801561348057506001600160a01b03821661dead14155b801561349457506001600160a01b03821615155b80156134a957506001600160a01b0383163014155b80156134c957506015546001600160a01b03848116620100009092041614155b80156134e957506015546001600160a01b03838116620100009092041614155b9392505050565b6010805460ff1916600117905560408051606081018252600b5461ffff808216835262010000820481166020840152640100000000909104169181018290529060000361353d5750613817565b306000908152600360209081526040808320600c5461010090046001600160a01b03168452909152902054600019146135a057306000908152600360209081526040808320600c5461010090046001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106135d5576135d5613f9c565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061366c91906140b3565b8160018151811061367f5761367f613f9c565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b81526101009091049091169063791ac947906136cc9086906000908690309042906004016140d0565b600060405180830381600087803b1580156136e657600080fd5b505af19250505080156136f7575060015b613702575050613817565b604082015182514791600091829161ffff90811691613722911685613f72565b61372c9190613fe6565b9050600061373a8285613f89565b602087015190915061ffff16156137a857600e546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d806000811461379d576040519150601f19603f3d011682016040523d82523d6000602084013e6137a2565b606091505b50909350505b855161ffff161561381057600f546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d8060008114613805576040519150601f19603f3d011682016040523d82523d6000602084013e61380a565b606091505b50909350505b5050505050505b506010805460ff19169055565b600080831561383a5750600a5461ffff16613864565b82156138535750600a5462010000900461ffff16613864565b50600a54640100000000900461ffff165b806000036138755784915050610ebd565b6015546201000090046001600160a01b03163014801561389f5750466001148061389f5750466038145b156138a957506111945b60006127106138b88388613f72565b6138c29190613fe6565b9050801561392f5730600090815260208190526040812080548392906138e9908490613fd3565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61311b8187613f89565b601554610100900460ff161561399d5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610bdb565b6139a782826133d9565b1580156139c15750600d546001600160a01b038281169116145b15610db1576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556015805461ff001916610100179081905562010000900416613a39576015805462010000600160b01b0319163062010000021790555b6010805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200161239d565b801515811461191b57600080fd5b60008060408385031215613a9a57600080fd5b8235613aa581613a79565b91506020830135613ab581613a79565b809150509250929050565b600060208083528351808285015260005b81811015613aed57858101830151858201604001528201613ad1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461191b57600080fd5b60008060408385031215613b3657600080fd5b8235613b4181613b0e565b946020939093013593505050565b600060208284031215613b6157600080fd5b81356134e981613b0e565b60008060408385031215613b7f57600080fd5b8235613b8a81613b0e565b91506020830135613ab581613b0e565b600080600060608486031215613baf57600080fd5b8335613bba81613b0e565b92506020840135613bca81613b0e565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613c1a57613c1a613bdb565b604052919050565b600067ffffffffffffffff821115613c3c57613c3c613bdb565b5060051b60200190565b600082601f830112613c5757600080fd5b81356020613c6c613c6783613c22565b613bf1565b82815260059290921b84018101918181019086841115613c8b57600080fd5b8286015b84811015613ca65780358352918301918301613c8f565b509695505050505050565b60008060408385031215613cc457600080fd5b823567ffffffffffffffff80821115613cdc57600080fd5b818501915085601f830112613cf057600080fd5b81356020613d00613c6783613c22565b82815260059290921b84018101918181019089841115613d1f57600080fd5b948201945b83861015613d46578535613d3781613b0e565b82529482019490820190613d24565b96505086013592505080821115613d5c57600080fd5b50613d6985828601613c46565b9150509250929050565b803561ffff81168114613d8557600080fd5b919050565b600080600060608486031215613d9f57600080fd5b613da884613d73565b9250613db660208501613d73565b9150613dc460408501613d73565b90509250925092565b60008060408385031215613de057600080fd5b8235613aa581613b0e565b600060208284031215613dfd57600080fd5b5035919050565b60008060408385031215613e1757600080fd5b613e2083613d73565b9150613e2e60208401613d73565b90509250929050565b60008060008060808587031215613e4d57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613eba578160001904821115613ea057613ea0613e69565b80851615613ead57918102915b93841c9390800290613e84565b509250929050565b600082613ed157506001610c66565b81613ede57506000610c66565b8160018114613ef45760028114613efe57613f1a565b6001915050610c66565b60ff841115613f0f57613f0f613e69565b50506001821b610c66565b5060208310610133831016604e8410600b8410161715613f3d575081810a610c66565b613f478383613e7f565b8060001904821115613f5b57613f5b613e69565b029392505050565b60006134e960ff841683613ec2565b8082028115828204841417610c6657610c66613e69565b81810381811115610c6657610c66613e69565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613fc957613fc9613e69565b6001019392505050565b80820180821115610c6657610c66613e69565b60008261400357634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561401b57600080fd5b825161402681613b0e565b6020840151909250613ab581613b0e565b6000806040838503121561404a57600080fd5b505080516020909101519092909150565b60006020828403121561406d57600080fd5b5051919050565b60006020828403121561408657600080fd5b81516134e981613a79565b61ffff8181168382160190808211156140ac576140ac613e69565b5092915050565b6000602082840312156140c557600080fd5b81516134e981613b0e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156141205784516001600160a01b0316835293830193918301916001016140fb565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a26469706673582212205b91907022ddd44933ac6e39ac8e01a6df4feb844915a19900a1a92c076814c664736f6c63430008130033
Deployed Bytecode
0x60806040526004361061039b5760003560e01c8063590ffdce116101dc578063b1b08f7111610102578063d3f6a157116100a0578063f94aa1b41161006f578063f94aa1b414610af1578063fb78680d14610b38578063fdb78c0e14610b58578063feadde9c14610b7757600080fd5b8063d3f6a15714610a56578063dd62ed3e14610a76578063eafb5a3c14610abc578063ee5d9c2d14610adc57600080fd5b8063b7df8b36116100dc578063b7df8b36146109cb578063bcd96a25146109e5578063bfc2fc3514610a05578063cf84770614610a2557600080fd5b8063b1b08f71146105fa578063b3ab15fb146109ab578063b3d514fb146105fa57600080fd5b806380c581d11161017a5780638a8c523c116101495780638a8c523c1461092b57806395d89b4114610940578063a9059cbb1461096b578063ab558e4d1461098b57600080fd5b806380c581d1146108b857806381cf58a9146108d8578063893d20e8146108f85780638a63bd9b1461091657600080fd5b80635cce86cd116101b65780635cce86cd1461081f57806370a0823114610858578063715018a61461088e57806378648edf146108a357600080fd5b8063590ffdce146107c95780635a6f0918146107e95780635c24b074146107ff57600080fd5b80632b28fc7a116102c1578063452ed4f11161025f5780634fb2e45d1161022e5780634fb2e45d146107315780634fbee1931461075157806350a8e0161461078a578063570ca735146107a957600080fd5b8063452ed4f1146106b75780634ada218b146106d75780634bbb93eb146106f15780634e718e481461071157600080fd5b806332cde6641161029b57806332cde6641461064257806333251a0b1461066257806336fddb041461068257806339a05902146106a257600080fd5b80632b28fc7a146105fa5780632e8fa82114610610578063313ce5671461062657600080fd5b8063095ea7b31161033957806323b872dd1161030857806323b872dd1461058f5780632610eaca146105af57806328577751146105cf5780632b112e49146105e557600080fd5b8063095ea7b3146105015780630dcbcf1c1461052157806313b4a7f41461055a57806318160ddd1461057a57600080fd5b8063069d955f11610375578063069d955f1461042057806306fdde03146104765780630758d924146104b257806307dd79e0146104d757600080fd5b806303fd2a45146103a75780630445b667146103da578063044df726146103fe57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103e657600080fd5b506103f060115481565b6040519081526020016103d1565b34801561040a57600080fd5b5061041e610419366004613a87565b610b97565b005b34801561042c57600080fd5b50600a546104519061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103d1565b34801561048257600080fd5b5060408051808201909152600a81526943727970746f4361726560b01b60208201525b6040516103d19190613ac0565b3480156104be57600080fd5b50600c546103bd9061010090046001600160a01b031681565b3480156104e357600080fd5b50600c546104f19060ff1681565b60405190151581526020016103d1565b34801561050d57600080fd5b506104f161051c366004613b23565b610c55565b34801561052d57600080fd5b506104f161053c366004613b4f565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561056657600080fd5b5061041e610575366004613b6c565b610c6c565b34801561058657600080fd5b506103f0610e2a565b34801561059b57600080fd5b506104f16105aa366004613b9a565b610e4d565b3480156105bb57600080fd5b5061041e6105ca366004613cb1565b610ec5565b3480156105db57600080fd5b506103f060145481565b3480156105f157600080fd5b506103f061107a565b34801561060657600080fd5b506103f06103e881565b34801561061c57600080fd5b506103f060125481565b34801561063257600080fd5b50604051600981526020016103d1565b34801561064e57600080fd5b5061041e61065d366004613d8a565b6110fa565b34801561066e57600080fd5b5061041e61067d366004613b4f565b61124e565b34801561068e57600080fd5b5061041e61069d366004613dcd565b6112ff565b3480156106ae57600080fd5b5061041e611372565b3480156106c357600080fd5b50600d546103bd906001600160a01b031681565b3480156106e357600080fd5b506015546104f19060ff1681565b3480156106fd57600080fd5b506103f061070c366004613deb565b6113f9565b34801561071d57600080fd5b5061041e61072c366004613deb565b61142d565b34801561073d57600080fd5b5061041e61074c366004613b4f565b6114cb565b34801561075d57600080fd5b506104f161076c366004613b4f565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561079657600080fd5b506015546104f190610100900460ff1681565b3480156107b557600080fd5b506019546103bd906001600160a01b031681565b3480156107d557600080fd5b5061041e6107e4366004613dcd565b6116cd565b3480156107f557600080fd5b506103f060165481565b34801561080b57600080fd5b5061041e61081a366004613b4f565b611740565b34801561082b57600080fd5b506104f161083a366004613b4f565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561086457600080fd5b506103f0610873366004613b4f565b6001600160a01b031660009081526020819052604090205490565b34801561089a57600080fd5b5061041e61191e565b3480156108af57600080fd5b5061041e611a43565b3480156108c457600080fd5b5061041e6108d3366004613dcd565b611a9a565b3480156108e457600080fd5b506018546103bd906001600160a01b031681565b34801561090457600080fd5b506017546001600160a01b03166103bd565b34801561092257600080fd5b506104f1611c84565b34801561093757600080fd5b5061041e611cf4565b34801561094c57600080fd5b50604080518082019091526002815261434360f01b60208201526104a5565b34801561097757600080fd5b506104f1610986366004613b23565b611f4a565b34801561099757600080fd5b5061041e6109a6366004613b4f565b611f61565b3480156109b757600080fd5b5061041e6109c6366004613b4f565b6120fb565b3480156109d757600080fd5b506013546104f19060ff1681565b3480156109f157600080fd5b5061041e610a00366004613e04565b6121e8565b348015610a1157600080fd5b5061041e610a20366004613a87565b612302565b348015610a3157600080fd5b50600b546104519061ffff808216916201000081048216916401000000009091041683565b348015610a6257600080fd5b5061041e610a71366004613b6c565b6123a9565b348015610a8257600080fd5b506103f0610a91366004613b6c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610ac857600080fd5b5061041e610ad7366004613b4f565b61248b565b348015610ae857600080fd5b5061041e61288c565b348015610afd57600080fd5b50600e54600f54610b18916001600160a01b03908116911682565b604080516001600160a01b039384168152929091166020830152016103d1565b348015610b4457600080fd5b5061041e610b53366004613e37565b612965565b348015610b6457600080fd5b506010546104f190610100900460ff1681565b348015610b8357600080fd5b5061041e610b92366004613dcd565b612c2f565b6017546001600160a01b03163314610be45760405162461bcd60e51b8152602060048201526011602482015260008051602061414283398151915260448201526064015b60405180910390fd5b60155460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610c3957600080fd5b505af1158015610c4d573d6000803e3d6000fd5b505050505050565b6000610c62338484612ca2565b5060015b92915050565b6017546001600160a01b03163314610cb45760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60095460ff16610cc357600080fd5b6001600160a01b0382163014801590610ce557506001600160a01b0381163014155b8015610cff5750600d546001600160a01b03838116911614155b8015610d195750600d546001600160a01b03828116911614155b610d535760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610bdb565b806001600160a01b0316826001600160a01b031603610db5576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560089093529220805490911682179055610db19082906116cd565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526008909252808320805486168317905592825291902080549092168117909155610e1f9083906116cd565b610db18160016116cd565b6000610e386009600a613f63565b610e489065b5e620f48000613f72565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610eb2576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610eac908490613f89565b90915550505b610ebd848484612d9b565b949350505050565b6017546001600160a01b03163314610f0d5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b8051825114610f5e5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610bdb565b60005b82518161ffff16101561107557610f7a6009600a613f63565b828261ffff1681518110610f9057610f90613f9c565b6020026020010151610fa29190613f72565b3360009081526020819052604090205410156110005760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610bdb565b61106233848361ffff168151811061101a5761101a613f9c565b60200260200101516009600a6110309190613f63565b858561ffff168151811061104657611046613f9c565b60200260200101516110589190613f72565b6000806001613126565b508061106d81613fb2565b915050610f61565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83546110d49190613fd3565b6110e06009600a613f63565b6110f09065b5e620f48000613f72565b610e489190613f89565b6017546001600160a01b031633146111425760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b600c5460ff16156111955760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610bdb565b6103e88361ffff16111580156111b157506103e88261ffff1611155b80156111c357506103e88161ffff1611155b61120f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610bdb565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6017546001600160a01b031633146112965760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6015546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b1580156112e457600080fd5b505af11580156112f8573d6000803e3d6000fd5b5050505050565b6017546001600160a01b031633146113475760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6018546001600160a01b031633146113dd5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610bdb565b6113e760006120fb565b601880546001600160a01b0319169055565b600d546001600160a01b031660009081526020819052604081205461271090611423908490613f72565b610c669190613fe6565b6017546001600160a01b031633146114755760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60968111156114c65760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610bdb565b601455565b6017546001600160a01b031633146115135760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b03811661158f5760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610bdb565b61deac196001600160a01b038216016116105760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610bdb565b601754611627906001600160a01b031660006116cd565b6116328160016116cd565b6017546001600160a01b03166000908152602081905260409020541561167b576017546001600160a01b031660008181526020819052604090205461167991908390611058565b505b601780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6017546001600160a01b031633146117155760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6017546001600160a01b031633146117885760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60155460ff161561179857600080fd5b306001600160a01b038216036117f05760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610bdb565b6015805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af1925050508015611876575060408051601f3d908101601f1916820190925261187391810190614008565b60015b61187f57600080fd5b600c805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600d80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560175492546118fc9383169291900416600019612ca2565b600c5461107590309061010090046001600160a01b0316600019612ca2565b50565b6017546001600160a01b031633146119665760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60155460ff166119de5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610bdb565b6017546119f5906001600160a01b031660006116cd565b601780546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6017546001600160a01b03163314611a8b5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b600c805460ff19166001179055565b6017546001600160a01b03163314611ae25760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b80611b55576001600160a01b03828116600081815260016020526040808220805460ff1916905560155490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b158015610c3957600080fd5b60025415611bbc576203f48060025442611b6f9190613f89565b11611bbc5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610bdb565b6001600160a01b03821660009081526001602052604090205460ff1615611c255760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610bdb565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560155491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610c1f565b6017546000906001600160a01b03163314611ccf5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b600c54611cee90309061010090046001600160a01b0316600019612ca2565b50600190565b6017546001600160a01b03163314611d3c5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b60155460ff1615611d8f5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610bdb565b601554610100900460ff16611de65760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610bdb565b6015546201000090046001600160a01b0316611e16576015805462010000600160b01b0319163062010000021790555b601554600d54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611e8857600080fd5b505af1925050508015611e99575060015b50601554600d546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611f1c575060408051601f3d908101601f19168201909252611f1991810190614037565b60015b15611f2b576011919091556012555b6015805460ff1990811660011790915560098054909116905542601655565b6000611f57338484612d9b565b5060019392505050565b6017546001600160a01b03163314611fa95760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b601554610100900460ff161561201157306001600160a01b038216036120115760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610bdb565b6017546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015612068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208c919061405b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156120d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190614074565b6018546001600160a01b031633146121665760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610bdb565b6019546001600160a01b031680156121a3576001600160a01b0381166000908152600460205260408120805460ff191690556121a39082906116cd565b601980546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff19166001908117909155610db19083906116cd565b6017546001600160a01b031633146122305760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b600b805461ffff838116620100000263ffffffff19909216908516171790556122598183614091565b600b805465ffff00000000191664010000000061ffff93841602179055600a5460009161228f9162010000810482169116614091565b600b5461ffff91821692506401000000009004168110156110755760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610bdb565b6017546001600160a01b0316331461234a5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6010805461ff001916610100841515908102919091179091556013805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6017546001600160a01b031633146123f15760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b0382161580159061241157506001600160a01b03811615155b61245d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610bdb565b600e80546001600160a01b039384166001600160a01b031991821617909155600f8054929093169116179055565b6017546001600160a01b031633146124d35760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b601554610100900460ff161561252b5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74206368616e67652061667465722062757953656c6c2e000000006044820152606401610bdb565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612570573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259491906140b3565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260591906140b3565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612650573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267491906140b3565b600d546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661280a57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270391906140b3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277491906140b3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156127c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e591906140b3565b600d80546001600160a01b0319166001600160a01b0392909216919091179055612826565b600d80546001600160a01b0319166001600160a01b0383161790555b600c805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600d5482166000908152600160208190526040909120805460ff191690911790559154611075923092910416600019612ca2565b6017546001600160a01b031633146128d45760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b601554610100900460ff161561292c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742063616c6c2061667465722062757953656c6c2e0000000000006044820152606401610bdb565b6017546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561191b573d6000803e3d6000fd5b6017546001600160a01b031633146129ad5760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b82846129bb6009600a613f63565b6129cb9065b5e620f48000613f72565b6129d59190613f72565b6129df9190613fe6565b60115580826129f06009600a613f63565b612a009065b5e620f48000613f72565b612a0a9190613f72565b612a149190613fe6565b60128190556011541115612a745760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610bdb565b600d546001600160a01b031660009081526020819052604090205461271090612a9e906096613f72565b612aa89190613fe6565b6012541115612b055760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610bdb565b620f4240612b156009600a613f63565b612b259065b5e620f48000613f72565b612b2f9190613fe6565b6012541015612b975760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610bdb565b620f4240612ba76009600a613f63565b612bb79065b5e620f48000613f72565b612bc19190613fe6565b6011541015612c295760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610bdb565b50505050565b6017546001600160a01b03163314612c775760405162461bcd60e51b815260206004820152601160248201526000805160206141428339815191526044820152606401610bdb565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316612cee5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610bdb565b6001600160a01b038216612d3a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610bdb565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612e015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bdb565b6001600160a01b038316612e635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bdb565b60008211612ec55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610bdb565b6001600160a01b0384166000908152600160205260408120548190819060ff1615612ef35760019250612f21565b6001600160a01b03861660009081526001602052604090205460ff1615612f1d5760019150612f21565b5060015b612f2b87876133d9565b1561302c5760155460ff1661302c5780612f875760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610bdb565b6001600160a01b03871660009081526005602052604090205460ff16158015612fc957506001600160a01b03861660009081526005602052604090205460ff16155b1561302c5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610bdb565b811561310d5760105460ff1661310d57601054610100900460ff16801561306c57506001600160a01b03861660009081526008602052604090205460ff16155b801561309157506001600160a01b03871660009081526008602052604090205460ff16155b1561310d5730600090815260208190526040902054601154811061310b5760125460135460ff16156130f557601454600d546001600160a01b0316600090815260208190526040902054612710916130e891613f72565b6130f29190613fe6565b90505b808210613100578091505b613109826134f0565b505b505b61311b878787868686613126565b979650505050505050565b600061313287876133d9565b156131cc5760155460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af19250505080156131b5575060408051601f3d908101601f191682019092526131b291810190614074565b60015b6131be57600080fd5b9050806131ca57600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff168061320e57506001600160a01b03871660009081526006602052604090205460ff165b15613217575060005b6001600160a01b0388166000908152602081905260408120805488929061323f908490613f89565b909155506000905081613252578661325e565b61325e89888888613824565b9050806000808a6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546132949190613fd3565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132e091815260200190565b60405180910390a3601554610100900460ff166133ca576133018989613939565b601554610100900460ff1615801561331e575061331e89896133d9565b801561334357506001600160a01b03891660009081526005602052604090205460ff16155b801561336857506001600160a01b03881660009081526005602052604090205460ff16155b8015613372575083155b156133ca5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610bdb565b50600198975050505050505050565b6017546000906001600160a01b0384811691161480159061340857506017546001600160a01b03838116911614155b801561341f57506017546001600160a01b03163214155b801561344457506001600160a01b03821660009081526004602052604090205460ff16155b801561346957506001600160a01b03831660009081526004602052604090205460ff16155b801561348057506001600160a01b03821661dead14155b801561349457506001600160a01b03821615155b80156134a957506001600160a01b0383163014155b80156134c957506015546001600160a01b03848116620100009092041614155b80156134e957506015546001600160a01b03838116620100009092041614155b9392505050565b6010805460ff1916600117905560408051606081018252600b5461ffff808216835262010000820481166020840152640100000000909104169181018290529060000361353d5750613817565b306000908152600360209081526040808320600c5461010090046001600160a01b03168452909152902054600019146135a057306000908152600360209081526040808320600c5461010090046001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106135d5576135d5613f9c565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061366c91906140b3565b8160018151811061367f5761367f613f9c565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b81526101009091049091169063791ac947906136cc9086906000908690309042906004016140d0565b600060405180830381600087803b1580156136e657600080fd5b505af19250505080156136f7575060015b613702575050613817565b604082015182514791600091829161ffff90811691613722911685613f72565b61372c9190613fe6565b9050600061373a8285613f89565b602087015190915061ffff16156137a857600e546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d806000811461379d576040519150601f19603f3d011682016040523d82523d6000602084013e6137a2565b606091505b50909350505b855161ffff161561381057600f546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d8060008114613805576040519150601f19603f3d011682016040523d82523d6000602084013e61380a565b606091505b50909350505b5050505050505b506010805460ff19169055565b600080831561383a5750600a5461ffff16613864565b82156138535750600a5462010000900461ffff16613864565b50600a54640100000000900461ffff165b806000036138755784915050610ebd565b6015546201000090046001600160a01b03163014801561389f5750466001148061389f5750466038145b156138a957506111945b60006127106138b88388613f72565b6138c29190613fe6565b9050801561392f5730600090815260208190526040812080548392906138e9908490613fd3565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61311b8187613f89565b601554610100900460ff161561399d5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610bdb565b6139a782826133d9565b1580156139c15750600d546001600160a01b038281169116145b15610db1576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556015805461ff001916610100179081905562010000900416613a39576015805462010000600160b01b0319163062010000021790555b6010805461ff001916610100179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200161239d565b801515811461191b57600080fd5b60008060408385031215613a9a57600080fd5b8235613aa581613a79565b91506020830135613ab581613a79565b809150509250929050565b600060208083528351808285015260005b81811015613aed57858101830151858201604001528201613ad1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461191b57600080fd5b60008060408385031215613b3657600080fd5b8235613b4181613b0e565b946020939093013593505050565b600060208284031215613b6157600080fd5b81356134e981613b0e565b60008060408385031215613b7f57600080fd5b8235613b8a81613b0e565b91506020830135613ab581613b0e565b600080600060608486031215613baf57600080fd5b8335613bba81613b0e565b92506020840135613bca81613b0e565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613c1a57613c1a613bdb565b604052919050565b600067ffffffffffffffff821115613c3c57613c3c613bdb565b5060051b60200190565b600082601f830112613c5757600080fd5b81356020613c6c613c6783613c22565b613bf1565b82815260059290921b84018101918181019086841115613c8b57600080fd5b8286015b84811015613ca65780358352918301918301613c8f565b509695505050505050565b60008060408385031215613cc457600080fd5b823567ffffffffffffffff80821115613cdc57600080fd5b818501915085601f830112613cf057600080fd5b81356020613d00613c6783613c22565b82815260059290921b84018101918181019089841115613d1f57600080fd5b948201945b83861015613d46578535613d3781613b0e565b82529482019490820190613d24565b96505086013592505080821115613d5c57600080fd5b50613d6985828601613c46565b9150509250929050565b803561ffff81168114613d8557600080fd5b919050565b600080600060608486031215613d9f57600080fd5b613da884613d73565b9250613db660208501613d73565b9150613dc460408501613d73565b90509250925092565b60008060408385031215613de057600080fd5b8235613aa581613b0e565b600060208284031215613dfd57600080fd5b5035919050565b60008060408385031215613e1757600080fd5b613e2083613d73565b9150613e2e60208401613d73565b90509250929050565b60008060008060808587031215613e4d57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613eba578160001904821115613ea057613ea0613e69565b80851615613ead57918102915b93841c9390800290613e84565b509250929050565b600082613ed157506001610c66565b81613ede57506000610c66565b8160018114613ef45760028114613efe57613f1a565b6001915050610c66565b60ff841115613f0f57613f0f613e69565b50506001821b610c66565b5060208310610133831016604e8410600b8410161715613f3d575081810a610c66565b613f478383613e7f565b8060001904821115613f5b57613f5b613e69565b029392505050565b60006134e960ff841683613ec2565b8082028115828204841417610c6657610c66613e69565b81810381811115610c6657610c66613e69565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613fc957613fc9613e69565b6001019392505050565b80820180821115610c6657610c66613e69565b60008261400357634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561401b57600080fd5b825161402681613b0e565b6020840151909250613ab581613b0e565b6000806040838503121561404a57600080fd5b505080516020909101519092909150565b60006020828403121561406d57600080fd5b5051919050565b60006020828403121561408657600080fd5b81516134e981613a79565b61ffff8181168382160190808211156140ac576140ac613e69565b5092915050565b6000602082840312156140c557600080fd5b81516134e981613b0e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156141205784516001600160a01b0316835293830193918301916001016140fb565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a26469706673582212205b91907022ddd44933ac6e39ac8e01a6df4feb844915a19900a1a92c076814c664736f6c63430008130033
Deployed Bytecode Sourcemap
4084:22256:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5720:73;;;;;;;;;;;;5751:42;5720:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5720:73:0;;;;;;;;6178:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;6178:28:0;245:177:1;14989:153:0;;;;;;;;;;-1:-1:-1;14989:153:0;;;;;:::i;:::-;;:::i;:::-;;5186:107;;;;;;;;;;-1:-1:-1;5186:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;1137:6:1;1170:15;;;1152:34;;1222:15;;;1217:2;1202:18;;1195:43;1274:15;;1254:18;;;1247:43;;;;1115:2;1100:18;5186:107:0;931:365:1;10438:80:0;;;;;;;;;;-1:-1:-1;10510:5:0;;;;;;;;;;;;-1:-1:-1;;;10510:5:0;;;;10438:80;;;;;;;:::i;5659:26::-;;;;;;;;;;-1:-1:-1;5659:26:0;;;;;;;-1:-1:-1;;;;;5659:26:0;;;5626;;;;;;;;;;-1:-1:-1;5626:26:0;;;;;;;;;;;2267:14:1;;2260:22;2242:41;;2230:2;2215:18;5626:26:0;2102:187:1;11046:161:0;;;;;;;;;;-1:-1:-1;11046:161:0;;;;;:::i;:::-;;:::i;14418:140::-;;;;;;;;;;-1:-1:-1;14418:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;14516:34:0;14492:4;14516:34;;;:25;:34;;;;;;;;;14418:140;17871:809;;;;;;;;;;-1:-1:-1;17871:809:0;;;;;:::i;:::-;;:::i;10173:83::-;;;;;;;;;;;;;:::i;11716:306::-;;;;;;;;;;-1:-1:-1;11716:306:0;;;;;:::i;:::-;;:::i;24015:447::-;;;;;;;;;;-1:-1:-1;24015:447:0;;;;;:::i;:::-;;:::i;6286:33::-;;;;;;;;;;;;;;;;14722:141;;;;;;;;;;;;;:::i;5423:42::-;;;;;;;;;;;;5461:4;5423:42;;6213:25;;;;;;;;;;;;;;;;10262:80;;;;;;;;;;-1:-1:-1;10262:80:0;;4889:1;6508:36:1;;6496:2;6481:18;10262:80:0;6366:184:1;15340:453:0;;;;;;;;;;-1:-1:-1;15340:453:0;;;;;:::i;:::-;;:::i;14871:110::-;;;;;;;;;;-1:-1:-1;14871:110:0;;;;;:::i;:::-;;:::i;13993:140::-;;;;;;;;;;-1:-1:-1;13993:140:0;;;;;:::i;:::-;;:::i;9556:221::-;;;;;;;;;;;;;:::i;5692:21::-;;;;;;;;;;-1:-1:-1;5692:21:0;;;;-1:-1:-1;;;;;5692:21:0;;;6326:34;;;;;;;;;;-1:-1:-1;6326:34:0;;;;;;;;16471:189;;;;;;;;;;-1:-1:-1;16471:189:0;;;;;:::i;:::-;;:::i;17375:217::-;;;;;;;;;;-1:-1:-1;17375:217:0;;;;;:::i;:::-;;:::i;7863:654::-;;;;;;;;;;-1:-1:-1;7863:654:0;;;;;:::i;:::-;;:::i;14141:127::-;;;;;;;;;;-1:-1:-1;14141:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;14232:28:0;14208:4;14232:28;;;:19;:28;;;;;;;;;14141:127;6367:36;;;;;;;;;;-1:-1:-1;6367:36:0;;;;;;;;;;;8881:23;;;;;;;;;;-1:-1:-1;8881:23:0;;;;-1:-1:-1;;;;;8881:23:0;;;14276:134;;;;;;;;;;-1:-1:-1;14276:134:0;;;;;:::i;:::-;;:::i;6440:26::-;;;;;;;;;;;;;;;;13288:557;;;;;;;;;;-1:-1:-1;13288:557:0;;;;;:::i;:::-;;:::i;13853:132::-;;;;;;;;;;-1:-1:-1;13853:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;13947:30:0;13923:4;13947:30;;;:21;:30;;;;;;;;;13853:132;10748:117;;;;;;;;;;-1:-1:-1;10748:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;10841:16:0;10814:7;10841:16;;;;;;;;;;;;10748:117;8525:310;;;;;;;;;;;;;:::i;15150:182::-;;;;;;;;;;;;;:::i;12716:564::-;;;;;;;;;;-1:-1:-1;12716:564:0;;;;;:::i;:::-;;:::i;8843:31::-;;;;;;;;;;-1:-1:-1;8843:31:0;;;;-1:-1:-1;;;;;8843:31:0;;;10524:79;;;;;;;;;;-1:-1:-1;10594:6:0;;-1:-1:-1;;;;;10594:6:0;10524:79;;11533:175;;;;;;;;;;;;;:::i;22778:737::-;;;;;;;;;;;;;:::i;10348:84::-;;;;;;;;;;-1:-1:-1;10422:7:0;;;;;;;;;;;;-1:-1:-1;;;10422:7:0;;;;10348:84;;10873:165;;;;;;;;;;-1:-1:-1;10873:165:0;;;;;:::i;:::-;;:::i;23711:296::-;;;;;;;;;;-1:-1:-1;23711:296:0;;;;;:::i;:::-;;:::i;9066:482::-;;;;;;;;;;-1:-1:-1;9066:482:0;;;;;:::i;:::-;;:::i;6245:34::-;;;;;;;;;;-1:-1:-1;6245:34:0;;;;;;;;15801:358;;;;;;;;;;-1:-1:-1;15801:358:0;;;;;:::i;:::-;;:::i;17600:263::-;;;;;;;;;;-1:-1:-1;17600:263:0;;;;;:::i;:::-;;:::i;5302:112::-;;;;;;;;;;-1:-1:-1;5302:112:0;;;;;;;;;;;;;;;;;;;;;;16167:296;;;;;;;;;;-1:-1:-1;16167:296:0;;;;;:::i;:::-;;:::i;10609:133::-;;;;;;;;;;-1:-1:-1;10609:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10711:19:0;;;10693:7;10711:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10609:133;12030:678;;;;;;;;;;-1:-1:-1;12030:678:0;;;;;:::i;:::-;;:::i;23523:180::-;;;;;;;;;;;;;:::i;5906:195::-;;;;;;;;;;-1:-1:-1;5906:195:0;;;;;;-1:-1:-1;;;;;5906:195:0;;;;;;;;;;;-1:-1:-1;;;;;8579:15:1;;;8561:34;;8631:15;;;;8626:2;8611:18;;8604:43;8473:18;5906:195:0;8294:359:1;16668:699:0;;;;;;;;;;-1:-1:-1;16668:699:0;;;;;:::i;:::-;;:::i;6132:39::-;;;;;;;;;;-1:-1:-1;6132:39:0;;;;;;;;;;;14566:148;;;;;;;;;;-1:-1:-1;14566:148:0;;;;;:::i;:::-;;:::i;14989:153::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;;;;;;;;;15084:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;15084:50:0;;9581:14:1;;9574:22;15084:50:0::1;::::0;::::1;9556:41:1::0;9640:14;;9633:22;9613:18;;;9606:50;15084:11:0;;;::::1;-1:-1:-1::0;;;;;15084:11:0::1;::::0;:26:::1;::::0;9529:18:1;;15084:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14989:153:::0;;:::o;11046:161::-;11123:4;11140:37;11149:10;11161:7;11170:6;11140:8;:37::i;:::-;-1:-1:-1;11195:4:0;11046:161;;;;;:::o;17871:809::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;17975:23:::1;::::0;::::1;;17967:32;;;::::0;::::1;;-1:-1:-1::0;;;;;18018:23:0;::::1;18036:4;18018:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;18063:24:0;::::1;18082:4;18063:24;;18018:69;:107;;;;-1:-1:-1::0;18109:6:0::1;::::0;-1:-1:-1;;;;;18109:16:0;;::::1;:6:::0;::::1;:16;;18018:107;:146;;;;-1:-1:-1::0;18147:6:0::1;::::0;-1:-1:-1;;;;;18147:17:0;;::::1;:6:::0;::::1;:17;;18018:146;18010:170;;;::::0;-1:-1:-1;;;18010:170:0;;9869:2:1;18010:170:0::1;::::0;::::1;9851:21:1::0;9908:2;9888:18;;;9881:30;-1:-1:-1;;;9927:18:1;;;9920:41;9978:18;;18010:170:0::1;9667:335:1::0;18010:170:0::1;18205:7;-1:-1:-1::0;;;;;18195:17:0::1;:6;-1:-1:-1::0;;;;;18195:17:0::1;::::0;18191:482:::1;;-1:-1:-1::0;;;;;18229:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:33;;18258:4:::1;-1:-1:-1::0;;18229:33:0;;::::1;::::0;::::1;::::0;;;18277:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;::::1;::::0;;18324:34:::1;::::0;18229:26;;18324:19:::1;:34::i;:::-;17871:809:::0;;:::o;18191:482::-:1;-1:-1:-1::0;;;;;18391:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;:32;;18419:4:::1;-1:-1:-1::0;;18391:32:0;;::::1;::::0;::::1;::::0;;;18438:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;18486:24;;;:16:::1;:24:::0;;;;;;:31;;;::::1;::::0;::::1;::::0;;18532:25;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;18579:33:::1;::::0;18391:25;;18579:19:::1;:33::i;:::-;18627:34;18647:7;18656:4;18627:19;:34::i;10173:83::-:0;10228:7;4949:13;4889:1;4949:2;:13;:::i;:::-;4932:30;;4732:19;4932:30;:::i;:::-;10239:14;;10173:83;:::o;11716:306::-;-1:-1:-1;;;;;11837:19:0;;11816:4;11837:19;;;:11;:19;;;;;;;;11857:10;11837:31;;;;;;;;-1:-1:-1;;11837:52:0;11833:126;;-1:-1:-1;;;;;11906:19:0;;;;;;:11;:19;;;;;;;;11926:10;11906:31;;;;;;;:41;;11941:6;;11906:19;:41;;11941:6;;11906:41;:::i;:::-;;;;-1:-1:-1;;11833:126:0;11978:36;11988:6;11996:9;12007:6;11978:9;:36::i;:::-;11971:43;11716:306;-1:-1:-1;;;;11716:306:0:o;24015:447::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;24150:7:::1;:14;24131:8;:15;:33;24123:67;;;::::0;-1:-1:-1;;;24123:67:0;;12030:2:1;24123:67:0::1;::::0;::::1;12012:21:1::0;12069:2;12049:18;;;12042:30;12108:23;12088:18;;;12081:51;12149:18;;24123:67:0::1;11828:345:1::0;24123:67:0::1;24206:8;24201:254;24224:8;:15;24220:1;:19;;;24201:254;;;24305:13;4889:1;24305:2;:13;:::i;:::-;24294:7;24302:1;24294:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;24279:10;10814:7:::0;10841:16;;;;;;;;;;;24269:49:::1;;24261:80;;;::::0;-1:-1:-1;;;24261:80:0;;12512:2:1;24261:80:0::1;::::0;::::1;12494:21:1::0;12551:2;12531:18;;;12524:30;12590:20;12570:18;;;12563:48;12628:18;;24261:80:0::1;12310:342:1::0;24261:80:0::1;24356:87;24373:10;24385:8;24394:1;24385:11;;;;;;;;;;:::i;:::-;;;;;;;4889:1;24409:2;:13;;;;:::i;:::-;24398:7;24406:1;24398:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;24424:5;24431::::0;24438:4:::1;24356:16;:87::i;:::-;-1:-1:-1::0;24241:3:0;::::1;::::0;::::1;:::i;:::-;;;;24201:254;;;;24015:447:::0;;:::o;14722:141::-;14775:7;10841:16;;;;;;5751:42;10841:16;;;;14814:39;;10841:16;14814:39;:::i;:::-;4949:13;4889:1;4949:2;:13;:::i;:::-;4932:30;;4732:19;4932:30;:::i;:::-;14803:51;;;;:::i;15340:453::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;15448:14:::1;::::0;::::1;;15447:15;15439:45;;;::::0;-1:-1:-1;;;15439:45:0;;13191:2:1;15439:45:0::1;::::0;::::1;13173:21:1::0;13230:2;13210:18;;;13203:30;13269:19;13249:18;;;13242:47;13306:18;;15439:45:0::1;12989:341:1::0;15439:45:0::1;5461:4;15503:6;:21;;;;:65;;;;;5511:4;15545:7;:23;;;;15503:65;:117;;;;;5565:4;15589:11;:31;;;;15503:117;15495:170;;;::::0;-1:-1:-1;;;15495:170:0;;13537:2:1;15495:170:0::1;::::0;::::1;13519:21:1::0;13576:2;13556:18;;;13549:30;13615:25;13595:18;;;13588:53;13658:18;;15495:170:0::1;13335:347:1::0;15495:170:0::1;15676:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;15712:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;15750:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;15340:453::o;14871:110::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;14940:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;14940:33:0;;-1:-1:-1;;;;;178:55:1;;;14940:33:0::1;::::0;::::1;160:74:1::0;14940:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;14940:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14871:110:::0;:::o;13993:140::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;-1:-1:-1;;;;;14085:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;14085:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13993:140::o;9556:221::-;9634:16;;-1:-1:-1;;;;;9634:16:0;9620:10;:30;9612:83;;;;-1:-1:-1;;;9612:83:0;;13889:2:1;9612:83:0;;;13871:21:1;13928:2;13908:18;;;13901:30;13967:34;13947:18;;;13940:62;-1:-1:-1;;;14018:18:1;;;14011:38;14066:19;;9612:83:0;13687:404:1;9612:83:0;9706:23;9726:1;9706:11;:23::i;:::-;9740:16;:29;;-1:-1:-1;;;;;;9740:29:0;;;9556:221::o;16471:189::-;16600:6;;-1:-1:-1;;;;;16600:6:0;16562:7;10841:16;;;;;;;;;;;5612:5;;16590:41;;16610:21;;16590:41;:::i;:::-;16589:62;;;;:::i;17375:217::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;17505:3:::1;17479:22;:29;;17471:64;;;::::0;-1:-1:-1;;;17471:64:0;;14520:2:1;17471:64:0::1;::::0;::::1;14502:21:1::0;14559:2;14539:18;;;14532:30;14598:24;14578:18;;;14571:52;14640:18;;17471:64:0::1;14318:346:1::0;17471:64:0::1;17546:13;:38:::0;17375:217::o;7863:654::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;-1:-1:-1;;;;;7942:22:0;::::1;7934:96;;;::::0;-1:-1:-1;;;7934:96:0;;14871:2:1;7934:96:0::1;::::0;::::1;14853:21:1::0;14910:2;14890:18;;;14883:30;14949:34;14929:18;;;14922:62;15020:31;15000:18;;;14993:59;15069:19;;7934:96:0::1;14669:425:1::0;7934:96:0::1;-1:-1:-1::0;;;;;;;8049:16:0;::::1;::::0;8041:90:::1;;;::::0;-1:-1:-1;;;8041:90:0;;14871:2:1;8041:90:0::1;::::0;::::1;14853:21:1::0;14910:2;14890:18;;;14883:30;14949:34;14929:18;;;14922:62;15020:31;15000:18;;;14993:59;15069:19;;8041:90:0::1;14669:425:1::0;8041:90:0::1;8162:6;::::0;8142:34:::1;::::0;-1:-1:-1;;;;;8162:6:0::1;;8142:19;:34::i;:::-;8187:35;8207:8;8217:4;8187:19;:35::i;:::-;8257:6;::::0;-1:-1:-1;;;;;8257:6:0::1;8267:1;10841:16:::0;;;;;;;;;;;8247:21;8243:127:::1;;8302:6;::::0;-1:-1:-1;;;;;8302:6:0::1;10814:7:::0;10841:16;;;;;;;;;;;8285:73:::1;::::0;8302:6;8310:8;;8320:17:::1;10748:117:::0;8285:73:::1;;8243:127;8409:6;::::0;;-1:-1:-1;;;;;8426:17:0;;::::1;-1:-1:-1::0;;;;;;8426:17:0;::::1;::::0;::::1;::::0;;;8459:40:::1;::::0;8409:6;::::1;::::0;8426:17;8409:6;;8459:40:::1;::::0;8390:16:::1;::::0;8459:40:::1;7923:594;7863:654:::0;:::o;14276:134::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;-1:-1:-1;;;;;14364:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;14364:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14276:134::o;13288:557::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;13363:14:::1;::::0;::::1;;13362:15;13354:24;;;::::0;::::1;;13413:4;-1:-1:-1::0;;;;;13397:21:0;::::1;::::0;13389:48:::1;;;::::0;-1:-1:-1;;;13389:48:0;;15301:2:1;13389:48:0::1;::::0;::::1;15283:21:1::0;15340:2;15320:18;;;15313:30;15379:16;15359:18;;;15352:44;15413:18;;13389:48:0::1;15099:338:1::0;13389:48:0::1;13448:11;:31:::0;;-1:-1:-1;;;;;;13448:31:0::1;::::0;-1:-1:-1;;;;;13448:31:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;13494:23:::1;::::0;;-1:-1:-1;;;13494:23:0;;;;:11;;;::::1;::::0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;13494:11:0;:23:::1;;;;;;;;;;-1:-1:-1::0;13494:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;13494:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;13490:348;;13827:8;::::0;::::1;13490:348;13581:9;:29:::0;;-1:-1:-1;;13581:29:0::1;;-1:-1:-1::0;;;;;13581:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;13612:6:::1;:22:::0;;-1:-1:-1;;;;;;13612:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13636:15:0;;;-1:-1:-1;13636:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;13636:22:0::1;::::0;;::::1;::::0;;13683:6:::1;::::0;13699:9;;13674:55:::1;::::0;13683:6;::::1;::::0;13699:9;;::::1;;-1:-1:-1::0;;13674:8:0::1;:55::i;:::-;13776:9;::::0;13744:62:::1;::::0;13761:4:::1;::::0;13776:9:::1;::::0;::::1;-1:-1:-1::0;;;;;13776:9:0::1;-1:-1:-1::0;;13744:8:0::1;:62::i;13490:348::-;13288:557:::0;:::o;8525:310::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;8592:14:::1;::::0;::::1;;8584:74;;;::::0;-1:-1:-1;;;8584:74:0;;16034:2:1;8584:74:0::1;::::0;::::1;16016:21:1::0;16073:2;16053:18;;;16046:30;16112:34;16092:18;;;16085:62;16183:17;16163:18;;;16156:45;16218:19;;8584:74:0::1;15832:411:1::0;8584:74:0::1;8689:6;::::0;8669:34:::1;::::0;-1:-1:-1;;;;;8689:6:0::1;;8669:19;:34::i;:::-;8733:6;::::0;;-1:-1:-1;;;;;;8750:19:0;::::1;::::0;;;8785:42:::1;::::0;-1:-1:-1;;;;;8733:6:0;;::::1;::::0;8714:16:::1;::::0;8733:6;;8785:42:::1;::::0;8714:16;;8785:42:::1;8573:262;8525:310::o:0;15150:182::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;15303:14:::1;:21:::0;;-1:-1:-1;;15303:21:0::1;15320:4;15303:21;::::0;;15150:182::o;12716:564::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;12798:7:::1;12793:480;;-1:-1:-1::0;;;;;12822:13:0;;::::1;12838:5;12822:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;12822:21:0::1;::::0;;12858:11:::1;::::0;:34;;-1:-1:-1;;;12858:34:0;;::::1;::::0;::::1;16416:74:1::0;;;;16506:18;;;16499:50;;;;12858:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;16389:18:1;;12858:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;12793:480;12929:17;::::0;:22;12925:135:::1;;13018:6;12998:17;;12980:15;:35;;;;:::i;:::-;:44;12972:72;;;::::0;-1:-1:-1;;;12972:72:0;;16762:2:1;12972:72:0::1;::::0;::::1;16744:21:1::0;16801:2;16781:18;;;16774:30;16840:17;16820:18;;;16813:45;16875:18;;12972:72:0::1;16560:339:1::0;12972:72:0::1;-1:-1:-1::0;;;;;13083:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;13082:14;13074:54;;;::::0;-1:-1:-1;;;13074:54:0;;17106:2:1;13074:54:0::1;::::0;::::1;17088:21:1::0;17145:2;17125:18;;;17118:30;17184:29;17164:18;;;17157:57;17231:18;;13074:54:0::1;16904:351:1::0;13074:54:0::1;-1:-1:-1::0;;;;;13143:13:0;;::::1;;::::0;;;13159:4:::1;13143:13;::::0;;;;;;;;:20;;-1:-1:-1;;13143:20:0::1;::::0;::::1;::::0;;13198:15:::1;13178:17;:35:::0;13228:11:::1;::::0;:33;;-1:-1:-1;;;13228:33:0;;::::1;::::0;::::1;16416:74:1::0;;;;16506:18;;;16499:50;13228:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;16389:18:1;;13228:33:0::1;16248:307:1::0;11533:175:0;7717:6;;11599:4;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;11648:9:::1;::::0;11616:62:::1;::::0;11633:4:::1;::::0;11648:9:::1;::::0;::::1;-1:-1:-1::0;;;;;11648:9:0::1;-1:-1:-1::0;;11616:8:0::1;:62::i;:::-;-1:-1:-1::0;11696:4:0::1;11533:175:::0;:::o;22778:737::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;22840:14:::1;::::0;::::1;;22839:15;22831:52;;;::::0;-1:-1:-1;;;22831:52:0;;17462:2:1;22831:52:0::1;::::0;::::1;17444:21:1::0;17501:2;17481:18;;;17474:30;17540:26;17520:18;;;17513:54;17584:18;;22831:52:0::1;17260:348:1::0;22831:52:0::1;22902:16;::::0;::::1;::::0;::::1;;;22894:53;;;::::0;-1:-1:-1;;;22894:53:0;;17815:2:1;22894:53:0::1;::::0;::::1;17797:21:1::0;17854:2;17834:18;;;17827:30;17893:26;17873:18;;;17866:54;17937:18;;22894:53:0::1;17613:348:1::0;22894:53:0::1;22970:11;::::0;;;::::1;-1:-1:-1::0;;;;;22970:11:0::1;22958:106;;23012:11;:40:::0;;-1:-1:-1;;;;;;23012:40:0::1;23046:4;23012:40:::0;::::1;;::::0;;22958:106:::1;23078:11;::::0;23100:6:::1;::::0;23078:87:::1;::::0;-1:-1:-1;;;23078:87:0;;-1:-1:-1;;;;;23100:6:0;;::::1;23078:87;::::0;::::1;18189:74:1::0;18311:10;23115:12:0::1;18299:23:1::0;18279:18;;;18272:51;18371:18;23137:15:0::1;18359:31:1::0;18339:18;;;18332:59;4889:1:0::1;18407:18:1::0;;;18400:45;23078:11:0;;;::::1;;::::0;:21:::1;::::0;18161:19:1;;23078:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;23191:11:0::1;::::0;23222:6:::1;::::0;-1:-1:-1;;;;;23222:6:0;;::::1;10814:7:::0;10841:16;;;;;;;;;;;;;23191:39;;-1:-1:-1;;;23191:39:0;;::::1;::::0;::::1;391:25:1::0;;;;23191:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;23191:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;23191:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;23191:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;23187:207:::0;::::1;;23302:13;:29:::0;;;;23346:10:::1;:27:::0;23187:207:::1;23404:14;:21:::0;;-1:-1:-1;;23404:21:0;;::::1;23421:4;23404:21;::::0;;;23436:23:::1;:31:::0;;;;::::1;::::0;;23492:15:::1;23478:11;:29:::0;22778:737::o;10873:165::-;10951:4;10968:40;10978:10;10990:9;11001:6;10968:9;:40::i;:::-;-1:-1:-1;11026:4:0;;10873:165;-1:-1:-1;;;10873:165:0:o;23711:296::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;23789:16:::1;::::0;::::1;::::0;::::1;;;23785:111;;;23847:4;-1:-1:-1::0;;;;;23830:22:0;::::1;::::0;23822:62:::1;;;::::0;-1:-1:-1;;;23822:62:0;;18908:2:1;23822:62:0::1;::::0;::::1;18890:21:1::0;18947:2;18927:18;;;18920:30;18986:29;18966:18;;;18959:57;19033:18;;23822:62:0::1;18706:351:1::0;23822:62:0::1;23960:6;::::0;23968:30:::1;::::0;-1:-1:-1;;;23968:30:0;;23992:4:::1;23968:30;::::0;::::1;160:74:1::0;23928:5:0;;-1:-1:-1;;;;;23945:14:0;;::::1;::::0;::::1;::::0;23960:6;;;::::1;::::0;23945:14;;23968:15:::1;::::0;133:18:1;;23968:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23945:54;::::0;-1:-1:-1;;;;;;23945:54:0::1;::::0;;;;;;-1:-1:-1;;;;;19443:55:1;;;23945:54:0::1;::::0;::::1;19425:74:1::0;19515:18;;;19508:34;19398:18;;23945:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9066:482::-:0;9148:16;;-1:-1:-1;;;;;9148:16:0;9134:10;:30;9126:83;;;;-1:-1:-1;;;9126:83:0;;13889:2:1;9126:83:0;;;13871:21:1;13928:2;13908:18;;;13901:30;13967:34;13947:18;;;13940:62;-1:-1:-1;;;14018:18:1;;;14011:38;14066:19;;9126:83:0;13687:404:1;9126:83:0;9242:8;;-1:-1:-1;;;;;9242:8:0;9265:25;;9261:150;;-1:-1:-1;;;;;9307:30:0;;9340:5;9307:30;;;:17;:30;;;;;:38;;-1:-1:-1;;9307:38:0;;;9360:39;;9325:11;;9360:19;:39::i;:::-;9421:8;:22;;-1:-1:-1;;;;;;9421:22:0;-1:-1:-1;;;;;9421:22:0;;;;;;;;-1:-1:-1;9454:30:0;;;:17;:30;;;;;:37;;-1:-1:-1;;9454:37:0;-1:-1:-1;9454:37:0;;;;;;9502:38;;9421:22;;9502:19;:38::i;15801:358::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;15884:7:::1;:25:::0;;::::1;15920:29:::0;;::::1;::::0;::::1;-1:-1:-1::0;;15920:29:0;;;15884:25;;::::1;15920:29:::0;::::1;::::0;;15980:19:::1;15940:9:::0;15902:7;15980:19:::1;:::i;:::-;15960:7;:39:::0;;-1:-1:-1;;15960:39:0::1;::::0;::::1;::::0;;::::1;;;::::0;;16045:9:::1;:17:::0;-1:-1:-1;;16026:36:0::1;::::0;16045:17;;::::1;::::0;::::1;::::0;16026:16:::1;:36;:::i;:::-;16081:7;:17:::0;16010:52:::1;::::0;;::::1;::::0;-1:-1:-1;16081:17:0;;::::1;;:26:::0;-1:-1:-1;16081:26:0::1;16073:78;;;::::0;-1:-1:-1;;;16073:78:0;;20178:2:1;16073:78:0::1;::::0;::::1;20160:21:1::0;20217:2;20197:18;;;20190:30;20256:34;20236:18;;;20229:62;-1:-1:-1;;;20307:18:1;;;20300:37;20354:19;;16073:78:0::1;19976:403:1::0;17600:263:0;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;17709:19:::1;:33:::0;;-1:-1:-1;;17709:33:0::1;;::::0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;17753:22:::1;:47:::0;;-1:-1:-1;;17753:47:0::1;::::0;::::1;;;::::0;;17816:39:::1;::::0;2242:41:1;;;17816:39:0::1;::::0;2230:2:1;2215:18;17816:39:0::1;;;;;;;;17600:263:::0;;:::o;16167:296::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;-1:-1:-1;;;;;16277:23:0;::::1;::::0;;::::1;::::0;:48:::1;;-1:-1:-1::0;;;;;;16304:21:0;::::1;::::0;::::1;16277:48;16269:84;;;::::0;-1:-1:-1;;;16269:84:0;;20586:2:1;16269:84:0::1;::::0;::::1;20568:21:1::0;20625:2;20605:18;;;20598:30;20664:25;20644:18;;;20637:53;20707:18;;16269:84:0::1;20384:347:1::0;16269:84:0::1;16364:11;:42:::0;;-1:-1:-1;;;;;16364:42:0;;::::1;-1:-1:-1::0;;;;;;16364:42:0;;::::1;;::::0;;;16417:19;:38;;;;;::::1;::::0;::::1;;::::0;;16167:296::o;12030:678::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;12110:16:::1;::::0;::::1;::::0;::::1;;;12109:17;12101:58;;;::::0;-1:-1:-1;;;12101:58:0;;20938:2:1;12101:58:0::1;::::0;::::1;20920:21:1::0;20977:2;20957:18;;;20950:30;21016;20996:18;;;20989:58;21064:18;;12101:58:0::1;20736:352:1::0;12101:58:0::1;12170:20;12203:9;12170:43;;12224:16;12254:10;-1:-1:-1::0;;;;;12254:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12243:40:0::1;;12292:4;12299:10;-1:-1:-1::0;;;;;12299:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12243:74;::::0;-1:-1:-1;;;;;;12243:74:0::1;::::0;;;;;;-1:-1:-1;;;;;8579:15:1;;;12243:74:0::1;::::0;::::1;8561:34:1::0;8631:15;;8611:18;;;8604:43;8473:18;;12243:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12336:6;::::0;-1:-1:-1;;;;;12336:6:0;;::::1;12346:5;12328:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;12328:23:0::1;::::0;;12224:93;;-1:-1:-1;12366:22:0;::::1;12362:200;;12425:10;-1:-1:-1::0;;;;;12425:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12414:43:0::1;;12466:4;12473:10;-1:-1:-1::0;;;;;12473:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12414:77;::::0;-1:-1:-1;;;;;;12414:77:0::1;::::0;;;;;;-1:-1:-1;;;;;8579:15:1;;;12414:77:0::1;::::0;::::1;8561:34:1::0;8631:15;;8611:18;;;8604:43;8473:18;;12414:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12405:6;:86:::0;;-1:-1:-1;;;;;;12405:86:0::1;-1:-1:-1::0;;;;;12405:86:0;;;::::1;::::0;;;::::1;::::0;;12362:200:::1;;;12533:6;:17:::0;;-1:-1:-1;;;;;;12533:17:0::1;-1:-1:-1::0;;;;;12533:17:0;::::1;;::::0;;12362:200:::1;12572:9;:22:::0;;-1:-1:-1;;12572:22:0::1;;-1:-1:-1::0;;;;;12572:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12613:6:::1;::::0;;::::1;-1:-1:-1::0;12605:15:0;;;-1:-1:-1;12605:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;12605:22:0::1;::::0;;::::1;::::0;;12670:9;;12638:62:::1;::::0;12655:4:::1;::::0;12670:9;::::1;;-1:-1:-1::0;;12638:8:0::1;:62::i;23523:180::-:0;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;23590:16:::1;::::0;::::1;::::0;::::1;;;23589:17;23581:56;;;::::0;-1:-1:-1;;;23581:56:0;;21883:2:1;23581:56:0::1;::::0;::::1;21865:21:1::0;21922:2;21902:18;;;21895:30;21961:28;21941:18;;;21934:56;22007:18;;23581:56:0::1;21681:350:1::0;23581:56:0::1;23656:6;::::0;23648:47:::1;::::0;-1:-1:-1;;;;;23656:6:0;;::::1;::::0;23673:21:::1;23648:47:::0;::::1;;;::::0;23656:6:::1;23648:47:::0;23656:6;23648:47;23673:21;23656:6;23648:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;16668:699:::0;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;16868:16;16848;4949:13:::1;4889:1;4949:2;:13;:::i;:::-;4932:30;::::0;4732:19:::1;4932:30;:::i;:::-;16838:26;;;;:::i;:::-;16837:47;;;;:::i;:::-;16821:13;:63:::0;16936:13;16919;4949::::1;4889:1;4949:2;:13;:::i;:::-;4932:30;::::0;4732:19:::1;4932:30;:::i;:::-;16909:23;;;;:::i;:::-;16908:41;;;;:::i;:::-;16895:10;:54:::0;;;16968:13:::1;::::0;:27:::1;;16960:73;;;::::0;-1:-1:-1;;;16960:73:0;;22238:2:1;16960:73:0::1;::::0;::::1;22220:21:1::0;22277:2;22257:18;;;22250:30;22316:34;22296:18;;;22289:62;-1:-1:-1;;;22367:18:1;;;22360:31;22408:19;;16960:73:0::1;22036:397:1::0;16960:73:0::1;17077:6;::::0;-1:-1:-1;;;;;17077:6:0::1;10814:7:::0;10841:16;;;;;;;;;;;5612:5:::1;::::0;17067:23:::1;::::0;17087:3:::1;17067:23;:::i;:::-;17066:44;;;;:::i;:::-;17052:10;;:58;;17044:106;;;::::0;-1:-1:-1;;;17044:106:0;;22640:2:1;17044:106:0::1;::::0;::::1;22622:21:1::0;22679:2;22659:18;;;22652:30;22718:34;22698:18;;;22691:62;-1:-1:-1;;;22769:18:1;;;22762:33;22812:19;;17044:106:0::1;22438:399:1::0;17044:106:0::1;17193:9;4949:13;4889:1;4949:2;:13;:::i;:::-;4932:30;::::0;4732:19:::1;4932:30;:::i;:::-;17183:19;;;;:::i;:::-;17169:10;;:33;;17161:92;;;::::0;-1:-1:-1;;;17161:92:0;;23044:2:1;17161:92:0::1;::::0;::::1;23026:21:1::0;23083:2;23063:18;;;23056:30;23122:34;23102:18;;;23095:62;-1:-1:-1;;;23173:18:1;;;23166:44;23227:19;;17161:92:0::1;22842:410:1::0;17161:92:0::1;17299:9;4949:13;4889:1;4949:2;:13;:::i;:::-;4932:30;::::0;4732:19:::1;4932:30;:::i;:::-;17289:19;;;;:::i;:::-;17272:13;;:36;;17264:95;;;::::0;-1:-1:-1;;;17264:95:0;;23044:2:1;17264:95:0::1;::::0;::::1;23026:21:1::0;23083:2;23063:18;;;23056:30;23122:34;23102:18;;;23095:62;-1:-1:-1;;;23173:18:1;;;23166:44;23227:19;;17264:95:0::1;22842:410:1::0;17264:95:0::1;16668:699:::0;;;;:::o;14566:148::-;7717:6;;-1:-1:-1;;;;;7717:6:0;7727:10;7717:20;7709:50;;;;-1:-1:-1;;;7709:50:0;;9250:2:1;7709:50:0;;;9232:21:1;9289:2;9269:18;;;9262:30;-1:-1:-1;;;;;;;;;;;9308:18:1;;;9301:47;9365:18;;7709:50:0;9048:341:1;7709:50:0;-1:-1:-1;;;;;14662:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;14662:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14566:148::o;11215:310::-;-1:-1:-1;;;;;11310:20:0;;11302:52;;;;-1:-1:-1;;;11302:52:0;;23459:2:1;11302:52:0;;;23441:21:1;23498:2;23478:18;;;23471:30;-1:-1:-1;;;23517:18:1;;;23510:49;23576:18;;11302:52:0;23257:343:1;11302:52:0;-1:-1:-1;;;;;11373:21:0;;11365:53;;;;-1:-1:-1;;;11365:53:0;;23459:2:1;11365:53:0;;;23441:21:1;23498:2;23478:18;;;23471:30;-1:-1:-1;;;23517:18:1;;;23510:49;23576:18;;11365:53:0;23257:343:1;11365:53:0;-1:-1:-1;;;;;11431:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;11484:33;;391:25:1;;;11484:33:0;;364:18:1;11484:33:0;;;;;;;11215:310;;;:::o;19142:1783::-;19221:4;-1:-1:-1;;;;;19246:18:0;;19238:68;;;;-1:-1:-1;;;19238:68:0;;23807:2:1;19238:68:0;;;23789:21:1;23846:2;23826:18;;;23819:30;23885:34;23865:18;;;23858:62;-1:-1:-1;;;23936:18:1;;;23929:35;23981:19;;19238:68:0;23605:401:1;19238:68:0;-1:-1:-1;;;;;19325:16:0;;19317:64;;;;-1:-1:-1;;;19317:64:0;;24213:2:1;19317:64:0;;;24195:21:1;24252:2;24232:18;;;24225:30;24291:34;24271:18;;;24264:62;-1:-1:-1;;;24342:18:1;;;24335:33;24385:19;;19317:64:0;24011:399:1;19317:64:0;19409:1;19400:6;:10;19392:64;;;;-1:-1:-1;;;19392:64:0;;24617:2:1;19392:64:0;;;24599:21:1;24656:2;24636:18;;;24629:30;24695:34;24675:18;;;24668:62;-1:-1:-1;;;24746:18:1;;;24739:39;24795:19;;19392:64:0;24415:405:1;19392:64:0;-1:-1:-1;;;;;19555:13:0;;19467:8;19555:13;;;:7;:13;;;;;;19467:8;;;;19555:13;;19551:162;;;19591:4;19585:10;;19551:162;;;-1:-1:-1;;;;;19617:11:0;;;;;;:7;:11;;;;;;;;19613:100;;;19652:4;19645:11;;19613:100;;;-1:-1:-1;19697:4:0;19613:100;19727:20;19738:4;19744:2;19727:10;:20::i;:::-;19723:371;;;19768:14;;;;19764:319;;19808:5;19803:265;;19838:34;;-1:-1:-1;;;19838:34:0;;25027:2:1;19838:34:0;;;25009:21:1;25066:2;25046:18;;;25039:30;25105:26;25085:18;;;25078:54;25149:18;;19838:34:0;24825:348:1;19803:265:0;-1:-1:-1;;;;;19903:31:0;;;;;;:25;:31;;;;;;;;19902:32;:66;;;;-1:-1:-1;;;;;;19939:29:0;;;;;;:25;:29;;;;;;;;19938:30;19902:66;19898:170;;;19993:55;;-1:-1:-1;;;19993:55:0;;25380:2:1;19993:55:0;;;25362:21:1;25419:2;25399:18;;;25392:30;25458:34;25438:18;;;25431:62;-1:-1:-1;;;25509:18:1;;;25502:43;25562:19;;19993:55:0;25178:409:1;19898:170:0;20110:4;20106:742;;;20136:6;;;;20131:706;;20167:19;;;;;;;:64;;;;-1:-1:-1;;;;;;20211:20:0;;;;;;:16;:20;;;;;;;;20210:21;20167:64;:111;;;;-1:-1:-1;;;;;;20256:22:0;;;;;;:16;:22;;;;;;;;20255:23;20167:111;20163:659;;;20370:4;20321:28;10841:16;;;;;;;;;;;20427:13;;20403:37;;20399:404;;20487:10;;20528:22;;;;20524:97;;;20585:13;;20575:6;;-1:-1:-1;;;;;20575:6:0;10814:7;10841:16;;;;;;;;;;;5612:5;;20565:33;;;:::i;:::-;20564:54;;;;:::i;:::-;20554:64;;20524:97;20675:7;20651:20;:31;20647:72;;20709:7;20686:30;;20647:72;20745:34;20758:20;20745:12;:34::i;:::-;20442:361;20399:404;20298:524;20163:659;20865:52;20882:4;20888:2;20892:6;20900:3;20905:4;20911:5;20865:16;:52::i;:::-;20858:59;19142:1783;-1:-1:-1;;;;;;;19142:1783:0:o;24470:1055::-;24589:4;24610:20;24621:4;24627:2;24610:10;:20::i;:::-;24606:228;;;24665:11;;:39;;-1:-1:-1;;;24665:39:0;;-1:-1:-1;;;;;25873:15:1;;;24665:39:0;;;25855:34:1;25925:15;;;25905:18;;;25898:43;25957:18;;;25950:34;;;24634:12:0;;24665:11;;;;;:21;;25767:18:1;;24665:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;24665:39:0;;;;;;;;-1:-1:-1;;24665:39:0;;;;;;;;;;;;:::i;:::-;;;24661:122;;24772:8;;;24661:122;24755:5;-1:-1:-1;24801:7:0;24797:26;;24812:8;;;24797:26;24632:202;24606:228;-1:-1:-1;;;;;24878:25:0;;24844:12;24878:25;;;:19;:25;;;;;;24859:4;;24878:25;;;:52;;-1:-1:-1;;;;;;24907:23:0;;;;;;:19;:23;;;;;;;;24878:52;24874:99;;;-1:-1:-1;24956:5:0;24874:99;-1:-1:-1;;;;;24983:13:0;;:7;:13;;;;;;;;;;:23;;25000:6;;24983:7;:23;;25000:6;;24983:23;:::i;:::-;;;;-1:-1:-1;25017:22:0;;-1:-1:-1;25043:7:0;25042:55;;25091:6;25042:55;;;25054:34;25064:4;25070:6;25078:3;25083:4;25054:9;:34::i;:::-;25017:80;;25123:14;25108:7;:11;25116:2;-1:-1:-1;;;;;25108:11:0;-1:-1:-1;;;;;25108:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;25168:2;-1:-1:-1;;;;;25153:34:0;25162:4;-1:-1:-1;;;;;25153:34:0;;25172:14;25153:34;;;;391:25:1;;379:2;364:18;;245:177;25153:34:0;;;;;;;;25203:16;;;;;;;25198:298;;25236:28;25255:4;25261:2;25236:18;:28::i;:::-;25284:16;;;;;;;25283:17;:41;;;;;25304:20;25315:4;25321:2;25304:10;:20::i;:::-;25283:77;;;;-1:-1:-1;;;;;;25329:31:0;;;;;;:25;:31;;;;;;;;25328:32;25283:77;:111;;;;-1:-1:-1;;;;;;25365:29:0;;;;;;:25;:29;;;;;;;;25364:30;25283:111;:121;;;;;25399:5;25398:6;25283:121;25279:206;;;25425:44;;-1:-1:-1;;;25425:44:0;;26197:2:1;25425:44:0;;;26179:21:1;26236:2;26216:18;;;26209:30;26275:34;26255:18;;;26248:62;-1:-1:-1;;;26326:18:1;;;26319:32;26368:19;;25425:44:0;25995:398:1;25279:206:0;-1:-1:-1;25513:4:0;;24470:1055;-1:-1:-1;;;;;;;;24470:1055:0:o;18688:446::-;18789:6;;18757:4;;-1:-1:-1;;;;;18781:14:0;;;18789:6;;18781:14;;;;:43;;-1:-1:-1;18818:6:0;;-1:-1:-1;;;;;18812:12:0;;;18818:6;;18812:12;;18781:43;:79;;;;-1:-1:-1;18854:6:0;;-1:-1:-1;;;;;18854:6:0;18841:9;:19;;18781:79;:118;;;;-1:-1:-1;;;;;;18878:21:0;;;;;;:17;:21;;;;;;;;18877:22;18781:118;:159;;;;-1:-1:-1;;;;;;18917:23:0;;;;;;:17;:23;;;;;;;;18916:24;18781:159;:186;;;;-1:-1:-1;;;;;;18957:10:0;;5751:42;18957:10;;18781:186;:219;;;;-1:-1:-1;;;;;;18984:16:0;;;;18781:219;:257;;;;-1:-1:-1;;;;;;19017:21:0;;19033:4;19017:21;;18781:257;:302;;;;-1:-1:-1;19071:11:0;;-1:-1:-1;;;;;19055:28:0;;;19071:11;;;;;19055:28;;18781:302;:345;;;;-1:-1:-1;19114:11:0;;-1:-1:-1;;;;;19100:26:0;;;19114:11;;;;;19100:26;;18781:345;18774:352;18688:446;-1:-1:-1;;;18688:446:0:o;20933:1266::-;6631:6;:13;;-1:-1:-1;;6631:13:0;6640:4;6631:13;;;21016:30:::1;::::0;;::::1;::::0;::::1;::::0;;21039:7:::1;21016:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;;::::0;;;;;;;6631:6;21061:21;21057:60:::1;;21099:7;;;21057:60;21153:4;21133:26;::::0;;;:11:::1;:26;::::0;;;;;;;21168:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;21168:9:0::1;21133:46:::0;;;;;;;;-1:-1:-1;;21133:67:0::1;21129:166;;21237:4;21217:26;::::0;;;:11:::1;:26;::::0;;;;;;;21252:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;21252:9:0::1;21217:46:::0;;;;;;;-1:-1:-1;;21217:66:0;;21129:166:::1;21339:16;::::0;;21353:1:::1;21339:16:::0;;;;;::::1;::::0;;21315:21:::1;::::0;21339:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21339:16:0::1;21315:40;;21384:4;21366;21371:1;21366:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;21366:23:0::1;;;-1:-1:-1::0;;;;;21366:23:0::1;;;::::0;::::1;21410:9;;;;;;;;;-1:-1:-1::0;;;;;21410:9:0::1;-1:-1:-1::0;;;;;21410:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21400:4;21405:1;21400:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21400:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;21443:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;21443:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;21518:20;;21553:1:::1;::::0;21569:4;;21596::::1;::::0;21616:15:::1;::::0;21443:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;21439:246;;21667:7;;;;21439:246;21830:16;::::0;::::1;::::0;21812:14;;21718:21:::1;::::0;21697:18:::1;::::0;;;21798:48:::1;::::0;;::::1;::::0;21799:27:::1;::::0;::::1;21718:21:::0;21799:27:::1;:::i;:::-;21798:48;;;;:::i;:::-;21773:73:::0;-1:-1:-1;21857:24:0::1;21884:27;21773:73:::0;21884:10;:27:::1;:::i;:::-;21926:16;::::0;::::1;::::0;21857:54;;-1:-1:-1;21926:20:0::1;;::::0;21922:133:::1;;21976:11;:21:::0;:67:::1;::::0;-1:-1:-1;;;;;21976:21:0;;::::1;::::0;22033:5:::1;::::0;22010:16;;21976:67:::1;::::0;;;22010:16;21976:21;22033:5;21976:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;21963:80:0;;-1:-1:-1;;21922:133:0::1;22069:14:::0;;:18:::1;;::::0;22065:127:::1;;22117:19:::0;;:63:::1;::::0;-1:-1:-1;;;;;22117:19:0;;::::1;::::0;22170:5:::1;::::0;22149:14;;22117:63:::1;::::0;;;22149:14;22117:19;22170:5;22117:63:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;22104:76:0;;-1:-1:-1;;22065:127:0::1;21005:1194;;;;;;6655:1;-1:-1:-1::0;6667:6:0;:14;;-1:-1:-1;;6667:14:0;;;20933:1266::o;25533:804::-;25621:7;25641:18;25674:3;25670:205;;;-1:-1:-1;25707:9:0;:16;;;25670:205;;;25745:4;25741:134;;;-1:-1:-1;25779:9:0;:17;;;;;;25741:134;;;-1:-1:-1;25842:9:0;:21;;;;;;25741:134;25889:10;25903:1;25889:15;25885:39;;25915:6;25908:13;;;;;25885:39;25946:11;;;;;-1:-1:-1;;;;;25946:11:0;25970:4;25938:37;:110;;;;;25993:13;26010:1;25993:18;:54;;;;26028:13;26045:2;26028:19;25993:54;25934:138;;;-1:-1:-1;26065:4:0;25934:138;26082:17;5612:5;26102:19;26111:10;26102:6;:19;:::i;:::-;:38;;;;:::i;:::-;26082:58;-1:-1:-1;26155:13:0;;26151:141;;26201:4;26185:7;:22;;;;;;;;;;:35;;26211:9;;26185:7;:35;;26211:9;;26185:35;:::i;:::-;;;;-1:-1:-1;;26240:40:0;;391:25:1;;;26263:4:0;;-1:-1:-1;;;;;26240:40:0;;;;;379:2:1;364:18;26240:40:0;;;;;;;26151:141;26311:18;26320:9;26311:6;:18;:::i;22207:563::-;22290:16;;;;;;;22289:17;22281:65;;;;-1:-1:-1;;;22281:65:0;;27841:2:1;22281:65:0;;;27823:21:1;27880:2;27860:18;;;27853:30;27919:34;27899:18;;;27892:62;-1:-1:-1;;;27970:18:1;;;27963:33;28013:19;;22281:65:0;27639:399:1;22281:65:0;22362:20;22373:4;22379:2;22362:10;:20::i;:::-;22361:21;:37;;;;-1:-1:-1;22392:6:0;;-1:-1:-1;;;;;22386:12:0;;;22392:6;;22386:12;22361:37;22357:406;;;-1:-1:-1;;;;;22415:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;22415:30:0;;;22441:4;22415:30;;;;;;22460:19;:25;;;;;:32;;;;;;;;;;22507:16;:23;;-1:-1:-1;;22507:23:0;22415:30;22507:23;;;;;22557:11;;;;22545:114;;22603:11;:40;;-1:-1:-1;;;;;;22603:40:0;22637:4;22603:40;;;;;22545:114;22673:19;:26;;-1:-1:-1;;22673:26:0;;;;;22719:32;;-1:-1:-1;2242:41:1;;22719:32:0;;2230:2:1;2215:18;22719:32:0;2102:187:1;427:118;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;1301:548::-;1413:4;1442:2;1471;1460:9;1453:21;1503:6;1497:13;1546:6;1541:2;1530:9;1526:18;1519:34;1571:1;1581:140;1595:6;1592:1;1589:13;1581:140;;;1690:14;;;1686:23;;1680:30;1656:17;;;1675:2;1652:26;1645:66;1610:10;;1581:140;;;1585:3;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1840:2;1833;1829:7;1824:2;1816:6;1812:15;1808:29;1797:9;1793:45;1789:54;1781:62;;;;1301:548;;;;:::o;2294:154::-;-1:-1:-1;;;;;2373:5:1;2369:54;2362:5;2359:65;2349:93;;2438:1;2435;2428:12;2453:315;2521:6;2529;2582:2;2570:9;2561:7;2557:23;2553:32;2550:52;;;2598:1;2595;2588:12;2550:52;2637:9;2624:23;2656:31;2681:5;2656:31;:::i;:::-;2706:5;2758:2;2743:18;;;;2730:32;;-1:-1:-1;;;2453:315:1:o;2773:247::-;2832:6;2885:2;2873:9;2864:7;2860:23;2856:32;2853:52;;;2901:1;2898;2891:12;2853:52;2940:9;2927:23;2959:31;2984:5;2959:31;:::i;3025:388::-;3093:6;3101;3154:2;3142:9;3133:7;3129:23;3125:32;3122:52;;;3170:1;3167;3160:12;3122:52;3209:9;3196:23;3228:31;3253:5;3228:31;:::i;:::-;3278:5;-1:-1:-1;3335:2:1;3320:18;;3307:32;3348:33;3307:32;3348:33;:::i;3418:456::-;3495:6;3503;3511;3564:2;3552:9;3543:7;3539:23;3535:32;3532:52;;;3580:1;3577;3570:12;3532:52;3619:9;3606:23;3638:31;3663:5;3638:31;:::i;:::-;3688:5;-1:-1:-1;3745:2:1;3730:18;;3717:32;3758:33;3717:32;3758:33;:::i;:::-;3418:456;;3810:7;;-1:-1:-1;;;3864:2:1;3849:18;;;;3836:32;;3418:456::o;3879:127::-;3940:10;3935:3;3931:20;3928:1;3921:31;3971:4;3968:1;3961:15;3995:4;3992:1;3985:15;4011:275;4082:2;4076:9;4147:2;4128:13;;-1:-1:-1;;4124:27:1;4112:40;;4182:18;4167:34;;4203:22;;;4164:62;4161:88;;;4229:18;;:::i;:::-;4265:2;4258:22;4011:275;;-1:-1:-1;4011:275:1:o;4291:183::-;4351:4;4384:18;4376:6;4373:30;4370:56;;;4406:18;;:::i;:::-;-1:-1:-1;4451:1:1;4447:14;4463:4;4443:25;;4291:183::o;4479:662::-;4533:5;4586:3;4579:4;4571:6;4567:17;4563:27;4553:55;;4604:1;4601;4594:12;4553:55;4640:6;4627:20;4666:4;4690:60;4706:43;4746:2;4706:43;:::i;:::-;4690:60;:::i;:::-;4784:15;;;4870:1;4866:10;;;;4854:23;;4850:32;;;4815:12;;;;4894:15;;;4891:35;;;4922:1;4919;4912:12;4891:35;4958:2;4950:6;4946:15;4970:142;4986:6;4981:3;4978:15;4970:142;;;5052:17;;5040:30;;5090:12;;;;5003;;4970:142;;;-1:-1:-1;5130:5:1;4479:662;-1:-1:-1;;;;;;4479:662:1:o;5146:1215::-;5264:6;5272;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5381:9;5368:23;5410:18;5451:2;5443:6;5440:14;5437:34;;;5467:1;5464;5457:12;5437:34;5505:6;5494:9;5490:22;5480:32;;5550:7;5543:4;5539:2;5535:13;5531:27;5521:55;;5572:1;5569;5562:12;5521:55;5608:2;5595:16;5630:4;5654:60;5670:43;5710:2;5670:43;:::i;5654:60::-;5748:15;;;5830:1;5826:10;;;;5818:19;;5814:28;;;5779:12;;;;5854:19;;;5851:39;;;5886:1;5883;5876:12;5851:39;5910:11;;;;5930:217;5946:6;5941:3;5938:15;5930:217;;;6026:3;6013:17;6043:31;6068:5;6043:31;:::i;:::-;6087:18;;5963:12;;;;6125;;;;5930:217;;;6166:5;-1:-1:-1;;6209:18:1;;6196:32;;-1:-1:-1;;6240:16:1;;;6237:36;;;6269:1;6266;6259:12;6237:36;;6292:63;6347:7;6336:8;6325:9;6321:24;6292:63;:::i;:::-;6282:73;;;5146:1215;;;;;:::o;6555:159::-;6622:20;;6682:6;6671:18;;6661:29;;6651:57;;6704:1;6701;6694:12;6651:57;6555:159;;;:::o;6719:328::-;6793:6;6801;6809;6862:2;6850:9;6841:7;6837:23;6833:32;6830:52;;;6878:1;6875;6868:12;6830:52;6901:28;6919:9;6901:28;:::i;:::-;6891:38;;6948:37;6981:2;6970:9;6966:18;6948:37;:::i;:::-;6938:47;;7004:37;7037:2;7026:9;7022:18;7004:37;:::i;:::-;6994:47;;6719:328;;;;;:::o;7052:382::-;7117:6;7125;7178:2;7166:9;7157:7;7153:23;7149:32;7146:52;;;7194:1;7191;7184:12;7146:52;7233:9;7220:23;7252:31;7277:5;7252:31;:::i;7439:180::-;7498:6;7551:2;7539:9;7530:7;7526:23;7522:32;7519:52;;;7567:1;7564;7557:12;7519:52;-1:-1:-1;7590:23:1;;7439:180;-1:-1:-1;7439:180:1:o;7624:256::-;7690:6;7698;7751:2;7739:9;7730:7;7726:23;7722:32;7719:52;;;7767:1;7764;7757:12;7719:52;7790:28;7808:9;7790:28;:::i;:::-;7780:38;;7837:37;7870:2;7859:9;7855:18;7837:37;:::i;:::-;7827:47;;7624:256;;;;;:::o;8658:385::-;8744:6;8752;8760;8768;8821:3;8809:9;8800:7;8796:23;8792:33;8789:53;;;8838:1;8835;8828:12;8789:53;-1:-1:-1;;8861:23:1;;;8931:2;8916:18;;8903:32;;-1:-1:-1;8982:2:1;8967:18;;8954:32;;9033:2;9018:18;9005:32;;-1:-1:-1;8658:385:1;-1:-1:-1;8658:385:1:o;10007:127::-;10068:10;10063:3;10059:20;10056:1;10049:31;10099:4;10096:1;10089:15;10123:4;10120:1;10113:15;10139:422;10228:1;10271:5;10228:1;10285:270;10306:7;10296:8;10293:21;10285:270;;;10365:4;10361:1;10357:6;10353:17;10347:4;10344:27;10341:53;;;10374:18;;:::i;:::-;10424:7;10414:8;10410:22;10407:55;;;10444:16;;;;10407:55;10523:22;;;;10483:15;;;;10285:270;;;10289:3;10139:422;;;;;:::o;10566:806::-;10615:5;10645:8;10635:80;;-1:-1:-1;10686:1:1;10700:5;;10635:80;10734:4;10724:76;;-1:-1:-1;10771:1:1;10785:5;;10724:76;10816:4;10834:1;10829:59;;;;10902:1;10897:130;;;;10809:218;;10829:59;10859:1;10850:10;;10873:5;;;10897:130;10934:3;10924:8;10921:17;10918:43;;;10941:18;;:::i;:::-;-1:-1:-1;;10997:1:1;10983:16;;11012:5;;10809:218;;11111:2;11101:8;11098:16;11092:3;11086:4;11083:13;11079:36;11073:2;11063:8;11060:16;11055:2;11049:4;11046:12;11042:35;11039:77;11036:159;;;-1:-1:-1;11148:19:1;;;11180:5;;11036:159;11227:34;11252:8;11246:4;11227:34;:::i;:::-;11297:6;11293:1;11289:6;11285:19;11276:7;11273:32;11270:58;;;11308:18;;:::i;:::-;11346:20;;10566:806;-1:-1:-1;;;10566:806:1:o;11377:140::-;11435:5;11464:47;11505:4;11495:8;11491:19;11485:4;11464:47;:::i;11522:168::-;11595:9;;;11626;;11643:15;;;11637:22;;11623:37;11613:71;;11664:18;;:::i;11695:128::-;11762:9;;;11783:11;;;11780:37;;;11797:18;;:::i;12178:127::-;12239:10;12234:3;12230:20;12227:1;12220:31;12270:4;12267:1;12260:15;12294:4;12291:1;12284:15;12657:197;12695:3;12723:6;12764:2;12757:5;12753:14;12791:2;12782:7;12779:15;12776:41;;12797:18;;:::i;:::-;12846:1;12833:15;;12657:197;-1:-1:-1;;;12657:197:1:o;12859:125::-;12924:9;;;12945:10;;;12942:36;;;12958:18;;:::i;14096:217::-;14136:1;14162;14152:132;;14206:10;14201:3;14197:20;14194:1;14187:31;14241:4;14238:1;14231:15;14269:4;14266:1;14259:15;14152:132;-1:-1:-1;14298:9:1;;14096:217::o;15442:385::-;15521:6;15529;15582:2;15570:9;15561:7;15557:23;15553:32;15550:52;;;15598:1;15595;15588:12;15550:52;15630:9;15624:16;15649:31;15674:5;15649:31;:::i;:::-;15749:2;15734:18;;15728:25;15699:5;;-1:-1:-1;15762:33:1;15728:25;15762:33;:::i;18456:245::-;18535:6;18543;18596:2;18584:9;18575:7;18571:23;18567:32;18564:52;;;18612:1;18609;18602:12;18564:52;-1:-1:-1;;18635:16:1;;18691:2;18676:18;;;18670:25;18635:16;;18670:25;;-1:-1:-1;18456:245:1:o;19062:184::-;19132:6;19185:2;19173:9;19164:7;19160:23;19156:32;19153:52;;;19201:1;19198;19191:12;19153:52;-1:-1:-1;19224:16:1;;19062:184;-1:-1:-1;19062:184:1:o;19553:245::-;19620:6;19673:2;19661:9;19652:7;19648:23;19644:32;19641:52;;;19689:1;19686;19679:12;19641:52;19721:9;19715:16;19740:28;19762:5;19740:28;:::i;19803:168::-;19870:6;19896:10;;;19908;;;19892:27;;19931:11;;;19928:37;;;19945:18;;:::i;:::-;19928:37;19803:168;;;;:::o;21093:251::-;21163:6;21216:2;21204:9;21195:7;21191:23;21187:32;21184:52;;;21232:1;21229;21222:12;21184:52;21264:9;21258:16;21283:31;21308:5;21283:31;:::i;26398:1026::-;26660:4;26708:3;26697:9;26693:19;26739:6;26728:9;26721:25;26765:2;26803:6;26798:2;26787:9;26783:18;26776:34;26846:3;26841:2;26830:9;26826:18;26819:31;26870:6;26905;26899:13;26936:6;26928;26921:22;26974:3;26963:9;26959:19;26952:26;;27013:2;27005:6;27001:15;26987:29;;27034:1;27044:218;27058:6;27055:1;27052:13;27044:218;;;27123:13;;-1:-1:-1;;;;;27119:62:1;27107:75;;27237:15;;;;27202:12;;;;27080:1;27073:9;27044:218;;;-1:-1:-1;;;;;;;27318:55:1;;;;27313:2;27298:18;;27291:83;-1:-1:-1;;;27405:3:1;27390:19;27383:35;27279:3;26398:1026;-1:-1:-1;;;26398:1026:1:o
Swarm Source
ipfs://5b91907022ddd44933ac6e39ac8e01a6df4feb844915a19900a1a92c076814c6
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.