Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SaleVesting
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-23 */ // SPDX-License-Identifier: No // pragma solidity = 0.8.17; //--- Context ---// abstract contract Context { constructor() { } function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } //--- Ownable ---// abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } //--- Interface for ERC20 ---// 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); } //--- Initialize ---// contract Initializable { bool private initialized; bool private initializing; modifier initializer() { require(initializing || !initialized, "Contract instance has already been initialized"); bool isTopLevelCall = !initializing; if (isTopLevelCall) { initializing = true; initialized = true; } _; if (isTopLevelCall) { initializing = false; } } } contract SaleVesting is Context, Ownable, Initializable { // map address to uint256 mapping (address => uint256) private _purchasedSEEDSALETokens; mapping (address => uint256) private _purchasedPrivateSaleTokens; mapping (address => uint256) private _purchasedPrivateSale2Tokens; mapping (address => uint256) private _purchasedPreSaleTokens; // mapping pending rewards mapping (address => uint256) private _pendingSeedSaleTokens; mapping (address => uint256) private _pendingPrivateSaleTokens; mapping (address => uint256) private _pendingPrivateSale2Tokens; mapping (address => uint256) private _pendingPresaleTokens; // mapping claim amount of tokens at TGE events. mapping (address => uint256) private _claimedTGE1Tokens; mapping (address => uint256) private _claimedTGE2Tokens; mapping (address => uint256) private _claimedTGE3Tokens; mapping (address => uint256) private _claimedTGE4Tokens; // mapping purchased tokens in terms of USDT (Stablecoin) mapping (address => uint256) private _purchasedS1; mapping (address => uint256) private _purchasedS2; mapping (address => uint256) private _purchasedS3; mapping (address => uint256) private _purchasedS4; // other mapping mapping (address => uint256) private _totalTokenPurchased; mapping (address => uint256) private _tokensRemainToClaim; mapping (address => uint256) private _purchasedAmount; mapping (address => uint256) private _personalRelease; mapping (address => uint256) private _lastClaim; mapping (address => uint256) private _claimed; // map address to bool mapping (address => bool) private _isWhitelisted; mapping (address => bool) private _didLastClaim; mapping (address => bool) private _didClaim; mapping (IERC20 => bool) private _tokenWhitelisted; mapping (IERC20 => bool) private tokenWithDecimals; mapping (IERC20 => uint256) private howManyDecimalsMissing; // map address to string mapping (address => string) private _whereDidHeBuy; /* EVENTS */ event _contribute(uint256 amount); event _claim(uint256 amount, uint256 when); IERC20 USDT = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7); // ERC20 IERC20 USDC = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); // ERC20 IERC20 BUSD = IERC20(0x4Fabb145d64652a948d72533023f6E7A623C7C53); // ERC20 IERC20 BEC; bool private _isLive; uint256 private _actualSale = 0; bool private _initialized; bool private notContract = false; uint256 private TGE; uint256 private biWeekly = 1209600; // 1209600 // total amount contributed in different sales. uint256 private _contributedsale1; uint256 private _contributedsale2; uint256 private _contributedsale3; uint256 private _contributedsale4; bool private _forcedRate = false; bool private _lastBuys = false; uint256 private _forcedRateuint = 0; uint256 private MIN = 50 * 10**18; uint256 private MAX = 100_000 * 10**18; address private liquidity = address(0x86720518b3714aC7267983Ca3D392c6db7AA5C1F); // hardcap for each sale in (USD) uint256 private HardCapSale1 = 939_130; uint256 private HardCapSale2 = 1_739_130; uint256 private HardCapSale3 = 2_173_913; uint256 private HardCapSale4 = 5_147_826; constructor() { _tokenWhitelisted[USDT] = true; _tokenWhitelisted[USDC] = true; _tokenWhitelisted[BUSD] = true; tokenWithDecimals[USDT] = true; tokenWithDecimals[USDC] = true; howManyDecimalsMissing[USDT] = 12; howManyDecimalsMissing[USDC] = 12; } function initalizeContract(address newToken) external onlyOwner { require(!notContract,"Already initialized"); BEC = IERC20(newToken); notContract = true; } function checkRate() internal view returns(uint256) { uint256 _rate; if(checkSale() == 1) { _rate = 47_916_666_706_600_000_000; } if(checkSale() == 2) { _rate = 43_124_999_994_600_000_000; } if(checkSale() == 3) { _rate = 34_500_000_055_200_000_000; } if(checkSale() == 4) { _rate = 29_138_513_496_300_000_000; } if(_forcedRate) {_rate = _forcedRateuint;} return _rate; } function viewRate() external view returns(uint256) { return checkRate() / 10**15; } function setForcedRate(bool use, uint256 rate) external onlyOwner { _forcedRateuint = rate; _forcedRate = use; } function initialize(bool isTGENow, uint256 _TGE) external onlyOwner initializer { if(isTGENow) { TGE = block.timestamp; } else {TGE = _TGE;} _initialized = true; } function setIsLive() external onlyOwner { _isLive = true; } function changeMinAndMaxContribute(uint256 _min, uint256 _max) external onlyOwner { MIN = _min * 10**18; MAX = _max * 10**18; } function changeLiquidityAddress(address newLiquidity) external onlyOwner { liquidity = newLiquidity; } function minAndMaxContribute(address holder, uint256 amount) internal { if(checkSale() == 1) { require(_purchasedS1[holder] + amount <= MAX,"Amount exceed max contribution"); require(amount >= MIN || _lastBuys,"Amount does not meet min contribution criteria"); } if(checkSale() == 2) { require(_purchasedS2[holder] + amount <= MAX,"Amount exceed max contribution"); require(amount >= MIN || _lastBuys,"Amount does not meet min contribution criteria"); } if(checkSale() == 3) { require(_purchasedS3[holder] + amount <= MAX,"Amount exceed max contribution"); require(amount >= MIN || _lastBuys,"Amount does not meet min contribution criteria"); } if(checkSale() == 4) { require(_purchasedS4[holder] + amount <= MAX,"Amount exceed max contribution"); require(amount >= MIN || _lastBuys,"Amount does not meet min contribution criteria"); } addContribute(amount); } function checkHardCap(uint256 amount) internal { if(checkSale() == 1) {_contributedsale1 = _contributedsale1 + amount; require(_contributedsale1 <= HardCapSale1 * 10**18,"Hard cap reached");} if(checkSale() == 2) {_contributedsale2 = _contributedsale2 + amount; require(_contributedsale2 <= HardCapSale2 * 10**18,"Hard cap reached");} if(checkSale() == 3) {_contributedsale3 = _contributedsale3 + amount; require(_contributedsale3 <= HardCapSale3 * 10**18,"Hard cap reached");} if(checkSale() == 4) {_contributedsale4 = _contributedsale4 + amount; require(_contributedsale4 <= HardCapSale4 * 10**18,"Hard cap reached");} } function setLastBuy(bool yesno) external onlyOwner { _lastBuys = yesno; } function addContribute(uint256 amount) internal { if(checkSale() == 1) _purchasedS1[msg.sender] += amount; if(checkSale() == 2) _purchasedS2[msg.sender] += amount; if(checkSale() == 3) _purchasedS3[msg.sender] += amount; if(checkSale() == 4) _purchasedS4[msg.sender] += amount; } function setTokenDecimals(address token, uint256 __decimals) external onlyOwner { IERC20 Token = IERC20(token); howManyDecimalsMissing[Token] = __decimals; } function setTokenBoolDecimals(address token, bool yesno) external onlyOwner { IERC20 Token = IERC20(token); tokenWithDecimals[Token] = yesno; } function contribute(address token, uint256 amount) external { IERC20 Token = IERC20(token); require(_tokenWhitelisted[Token],"Token not whitelisted"); require(_isLive,"Sale is not live"); require(amount > 0 ,"Amount should be greater than 0"); Token.transferFrom(msg.sender, address(this), amount); // transfer amount to smart contract. if(tokenWithDecimals[Token]) { amount = amount * 10**howManyDecimalsMissing[Token];} checkHardCap(amount); minAndMaxContribute(msg.sender, amount); if(checkSale() > 0 && checkSale() <= 4) { writeTokens(msg.sender, amount); } else { revert("Sale ID not valid"); } _whereDidHeBuy[msg.sender] = "User purchased token from the official smart contract."; _purchasedAmount[msg.sender] += amount; _isWhitelisted[msg.sender] = true; emit _contribute(amount); } function releasePercentage(bool _USDT, bool _USDC) external onlyOwner { if(_USDT) { uint256 ownerPercentage = USDT.balanceOf(address(this)) * 100 / 60; uint256 liquidityPercentage = USDT.balanceOf(address(this)) * 100 / 40; USDT.transfer(owner(), ownerPercentage); USDT.transfer(liquidity, liquidityPercentage); } if(_USDC) { uint256 ownerPercentage = USDC.balanceOf(address(this)) * 100 / 60; uint256 liquidityPercentage = USDC.balanceOf(address(this)) * 100 / 40; USDC.transfer(owner(), ownerPercentage); USDC.transfer(liquidity, liquidityPercentage); } } function writeTokens(address holder, uint256 amount) internal { uint256 temp1; uint256 temp2; uint256 temp3; uint256 temp4; if(checkSale() == 1) { _purchasedSEEDSALETokens[holder] += checkRate() * amount / 10**18; temp1 = checkRate() * amount / 10**18; } if(checkSale() == 2) { _purchasedPrivateSaleTokens[holder] += checkRate() * amount / 10**18 ; temp2 = checkRate() * amount / 10**18; } if(checkSale() == 3) { _purchasedPrivateSale2Tokens[holder] += checkRate() * amount / 10**18; temp3 = checkRate() * amount / 10**18;} if(checkSale() == 4) { _purchasedPreSaleTokens[holder] += checkRate() * amount / 10**18; temp4 = checkRate() * amount / 10**18;} _totalTokenPurchased[holder] += temp1 + temp2 + temp3 + temp4; _tokensRemainToClaim[holder] = _totalTokenPurchased[holder]; } function checkReleaseAll() internal view returns (bool){ return !notClaimed() && block.timestamp >= TGE + 18 * biWeekly; } function releaseAll(bool one, bool second, bool third, bool fourth) internal { if(one) {_pendingPresaleTokens[msg.sender] = _purchasedPreSaleTokens[msg.sender];} if(second) {_pendingPrivateSale2Tokens[msg.sender] = _purchasedPrivateSale2Tokens[msg.sender];} if(third) {_pendingPrivateSaleTokens[msg.sender] = _purchasedPrivateSaleTokens[msg.sender];} if(fourth) {_pendingSeedSaleTokens[msg.sender] = _purchasedSEEDSALETokens[msg.sender];} } function notClaimed() internal view returns (bool) { return _didClaim[msg.sender]; } function whatUnlockPhaseWeAre() public view returns (uint256) { uint256 _phase; if(block.timestamp < TGE) { _phase = 0; } if(block.timestamp >= TGE + 1 * biWeekly) { _phase = 1; } if(block.timestamp >= TGE + 2 * biWeekly) { _phase = 2; } if(block.timestamp >= TGE + 3 * biWeekly) { _phase = 3; } if(block.timestamp >= TGE + 4 * biWeekly) { _phase = 4; } if(block.timestamp >= TGE + 5 * biWeekly) { _phase = 5; } if(block.timestamp >= TGE + 6 * biWeekly) { _phase = 6; } if(block.timestamp >= TGE + 7 * biWeekly) { _phase = 7; } if(block.timestamp >= TGE + 8 * biWeekly) { _phase = 8; } if(block.timestamp >= TGE + 9 * biWeekly) { _phase = 9; } if(block.timestamp >= TGE + 10 * biWeekly) { _phase = 10; } if(block.timestamp >= TGE + 11 * biWeekly) { _phase = 11; } if(block.timestamp >= TGE + 12 * biWeekly) { _phase = 12; } if(block.timestamp >= TGE + 13 * biWeekly) { _phase = 13; } if(block.timestamp >= TGE + 14 * biWeekly) { _phase = 14; } if(block.timestamp >= TGE + 15 * biWeekly) { _phase = 15; } if(block.timestamp >= TGE + 16 * biWeekly) { _phase = 16; } if(block.timestamp >= TGE + 17 * biWeekly) { _phase = 17; } if(block.timestamp >= TGE + 18 * biWeekly) { _phase = 18; } if(TGE == 0) { _phase = 0; } return _phase; } function checkHowManyTokensAreLocked(bool lastclaim, uint256 id, address holder) external view returns(uint256){ uint256 tokensLocked; if(id == 4) { if(lastclaim) {tokensLocked = _purchasedPreSaleTokens[holder] / 100 * 15;} else { tokensLocked = _purchasedPreSaleTokens[holder] / 100 * 20; } } if(id == 3) { if(lastclaim) {tokensLocked = _purchasedPrivateSale2Tokens[holder] / 100 * 20;} else { tokensLocked = _purchasedPrivateSale2Tokens[holder] / 100 * 15; } } if(id == 2) { if(lastclaim) {tokensLocked = _purchasedPrivateSaleTokens[holder] / 100 * 15;} else { tokensLocked = _purchasedPrivateSaleTokens[holder] / 100 * 10; } } if(id == 1) { tokensLocked = _purchasedSEEDSALETokens[holder] / 100 * 5; } return tokensLocked; } function standardUnlock() internal { if(whatUnlockPhaseWeAre() > 3) { releaseAll(true,false,false,false); } else {_pendingPresaleTokens[msg.sender] = (_purchasedPreSaleTokens[msg.sender] / 100 * ((20) * whatUnlockPhaseWeAre()) + _claimedTGE4Tokens[msg.sender]);} if(whatUnlockPhaseWeAre() >= 5) { releaseAll(true,true,false,false); } else {_pendingPrivateSale2Tokens[msg.sender] = (_purchasedPrivateSale2Tokens[msg.sender] / 100 * ((15) * whatUnlockPhaseWeAre()) + _claimedTGE3Tokens[msg.sender]);} if(whatUnlockPhaseWeAre() >= 8) { releaseAll(true,true,true,false); } else {_pendingPrivateSaleTokens[msg.sender] = (_purchasedPrivateSaleTokens[msg.sender] / 100 * ((10) * whatUnlockPhaseWeAre()) + _claimedTGE2Tokens[msg.sender]);} if(whatUnlockPhaseWeAre() >= 18) { releaseAll(true,true,true,true); _didLastClaim[msg.sender] = true; } else {_pendingSeedSaleTokens[msg.sender] = (_purchasedSEEDSALETokens[msg.sender] / 100 * ((5) * whatUnlockPhaseWeAre()) + _claimedTGE1Tokens[msg.sender]);} } function checkVesting() internal { if(checkReleaseAll()) { releaseAll(true,true,true,true); _didLastClaim[msg.sender] = true; } else { standardUnlock(); if(!notClaimed() && block.timestamp >= TGE) { claimTGE(); } } } function claimTGE() internal { _pendingSeedSaleTokens[msg.sender] = _purchasedSEEDSALETokens[msg.sender] / 100 * 10; _pendingPrivateSaleTokens[msg.sender] = _purchasedPrivateSaleTokens[msg.sender] / 100 * 15; _pendingPrivateSale2Tokens[msg.sender] = _purchasedPrivateSale2Tokens[msg.sender] / 100 * 20; _pendingPresaleTokens[msg.sender] = _purchasedPreSaleTokens[msg.sender] / 100 * 25; _claimedTGE1Tokens[msg.sender] = _pendingSeedSaleTokens[msg.sender]; _claimedTGE2Tokens[msg.sender] = _pendingPrivateSaleTokens[msg.sender]; _claimedTGE3Tokens[msg.sender] = _pendingPrivateSale2Tokens[msg.sender]; _claimedTGE4Tokens[msg.sender] = _pendingPresaleTokens[msg.sender]; } function claimedRewards(address account, uint256 ID) external view returns (uint256) { uint256 _claimedd; if (ID == 1) { _claimedd = _pendingSeedSaleTokens[account];} if (ID == 2) { _claimedd = _pendingPrivateSaleTokens[account];} if (ID == 3) { _claimedd = _pendingPrivateSale2Tokens[account];} if (ID == 4) { _claimedd = _pendingPresaleTokens[account];} return _claimedd; } function claim() external { require(!_didLastClaim[msg.sender],"No more to claim"); require(_isLive,"Sale is not live"); require(_isWhitelisted[msg.sender],"Did not contribute"); require(_initialized,"Not initalized"); checkVesting(); _personalRelease[msg.sender] = _pendingPresaleTokens[msg.sender] + _pendingPrivateSale2Tokens[msg.sender] + _pendingPrivateSaleTokens[msg.sender] + _pendingSeedSaleTokens[msg.sender]; _personalRelease[msg.sender] -= _claimed[msg.sender]; uint256 tokens = _personalRelease[msg.sender]; require( _tokensRemainToClaim[msg.sender] >= tokens,"Cannot claim more"); _tokensRemainToClaim[msg.sender] -= tokens; require(tokens > 0,"Amount pending should be greater than 0"); BEC.transfer(msg.sender, tokens); _claimed[msg.sender] += tokens; _lastClaim[msg.sender] = block.timestamp; _didClaim[msg.sender] = true; emit _claim(tokens, _lastClaim[msg.sender]); } function whenYouDidYourLastClaim(address account) external view returns(uint256) { return _lastClaim[account]; } function checkSale() internal view returns(uint256) { require(_isLive,"Sale is not live"); return _actualSale; } function whitelistToken(address token, bool yesno) external onlyOwner { IERC20 Token = IERC20(token); _tokenWhitelisted[Token] = yesno; } function saleOngoing() external view returns(uint256) { return checkSale(); } function setActualSale(uint256 id) external onlyOwner { require(id <= 4); _actualSale = id; } function removeTokens(address token, uint256 amount) external onlyOwner { IERC20 Token = IERC20(token); Token.transfer(msg.sender, amount); } function tokensPurchased(uint256 ID, address account) external view returns(uint256) { uint256 tokens; if (ID == 1) { tokens = _purchasedSEEDSALETokens[account];} if (ID == 2) { tokens = _purchasedPrivateSaleTokens[account];} if (ID == 3) { tokens = _purchasedPrivateSale2Tokens[account];} if (ID == 4) { tokens = _purchasedPreSaleTokens[account];} return tokens; } function manualBuy(bool auto18zeros, string calldata whereDidHeBuy, address holder, uint256 amount) external onlyOwner { // For purchases FIAT require(_isLive,"Sale is not live"); require(amount > 0 ,"Amount should be greater than 0"); if(auto18zeros) {amount = amount * 10**18;} else { amount = amount; } writeTokens(holder, amount); _whereDidHeBuy[holder] = whereDidHeBuy; checkHardCap(amount); minAndMaxContribute(holder, amount); _isWhitelisted[holder] = true; _purchasedAmount[holder] += amount; } function paymentMethod(address holder) external view returns(string memory) { return _whereDidHeBuy[holder]; } function showPurchasedAmount(address holder) external view returns (uint256) { return _purchasedAmount[holder] / 10**18; } function showClaimedAmount(address holder) external view returns (uint256) { return _claimed[holder]; } function showUnreleasedTotalAmount(address holder) external view returns (uint256) { return _tokensRemainToClaim[holder]; } function canClaimNow() external view returns(bool) { return block.timestamp >= TGE && TGE > 2; } function whenIsTheTge() external view returns(uint256) { return TGE; } function hardcapCheck() external view returns(uint256) { uint256 _return; if(checkSale() == 1) { _return = HardCapSale1 * 10**18 - _contributedsale1;} if(checkSale() == 2) { _return = HardCapSale2 * 10**18 - _contributedsale2;} if(checkSale() == 3) { _return = HardCapSale3 * 10**18 - _contributedsale3;} if(checkSale() == 4) { _return = HardCapSale4 * 10**18 - _contributedsale4;} _return = _return / 10**18; return _return; } function isThisTokenWhitelisted(address token) external view returns(bool) { IERC20 Token = IERC20(token); return _tokenWhitelisted[Token]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"when","type":"uint256"}],"name":"_claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_contribute","type":"event"},{"inputs":[],"name":"canClaimNow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidity","type":"address"}],"name":"changeLiquidityAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_min","type":"uint256"},{"internalType":"uint256","name":"_max","type":"uint256"}],"name":"changeMinAndMaxContribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"lastclaim","type":"bool"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"holder","type":"address"}],"name":"checkHowManyTokensAreLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"ID","type":"uint256"}],"name":"claimedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"contribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hardcapCheck","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newToken","type":"address"}],"name":"initalizeContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isTGENow","type":"bool"},{"internalType":"uint256","name":"_TGE","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"isThisTokenWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"auto18zeros","type":"bool"},{"internalType":"string","name":"whereDidHeBuy","type":"string"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"paymentMethod","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_USDT","type":"bool"},{"internalType":"bool","name":"_USDC","type":"bool"}],"name":"releasePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleOngoing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setActualSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"use","type":"bool"},{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setForcedRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setIsLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"setLastBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"setTokenBoolDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"__decimals","type":"uint256"}],"name":"setTokenDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"showClaimedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"showPurchasedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"showUnreleasedTotalAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ID","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"tokensPurchased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whatUnlockPhaseWeAre","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whenIsTheTge","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"whenYouDidYourLastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"whitelistToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052601e80546001600160a01b031990811673dac17f958d2ee523a2206206994597c13d831ec717909155601f8054821673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179055602080548216734fabb145d64652a948d72533023f6e7a623c7c53179055600060228190556023805461ff001916905562127500602555602a805461ffff19169055602b556802b5e3af16b1880000602c5569152d02c7e14af6800000602d55602e80549091167386720518b3714ac7267983ca3d392c6db7aa5c1f179055620e547a602f55621a897a60305562212bd9603155624e8cb26032553480156100f257600080fd5b506100fc33610199565b601e80546001600160a01b039081166000908152601a602090815260408083208054600160ff199182168117909255601f80548716865283862080548316841790558454871686528386208054831684179055875487168652601b8552838620805483168417905580548716865283862080549092169092179055945484168352601c909152808220600c908190559354909216815220556101e9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61323080620001f96000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80635ef97c2d1161011a5780638da5cb5b116100ad578063c97a12ae1161007c578063c97a12ae14610455578063ced8dfa41461045d578063e903941514610486578063f2fde38b1461048e578063fb831b9a146104a157600080fd5b80638da5cb5b146103f35780639498416e1461040e578063a247a09b14610421578063bcb523cb1461042957600080fd5b806371d5f7c5116100e957806371d5f7c5146103b25780637cece5b0146103c55780638418cd99146103d85780638a604c8a146103eb57600080fd5b80635ef97c2d1461037157806367efb4f814610384578063691c826c1461038c5780636f928a041461039f57600080fd5b80632d485aac11610192578063463c47a711610161578063463c47a7146103305780634e71d92d146103435780635b7c132d1461034b5780635e5cb4031461035e57600080fd5b80632d485aac146102d957806331a46854146102ec57806339d08c2a146102ff578063410ba5e01461030757600080fd5b80631e10eeaf116101ce5780631e10eeaf146102885780631f2b75121461029b5780631f7f2fd1146102b35780632ad44351146102c657600080fd5b8063037f67d3146102005780630edef38a146102155780630ffb1d8b1461023e5780631c91250e14610251575b600080fd5b61021361020e366004612a89565b6104b4565b005b610228610223366004612ab3565b610503565b6040516102359190612ace565b60405180910390f35b61021361024c366004612b2a565b6105af565b61027a61025f366004612ab3565b6001600160a01b031660009081526016602052604090205490565b604051908152602001610235565b610213610296366004612a89565b610604565b6102a36106a7565b6040519015158152602001610235565b6102136102c1366004612b61565b6106c2565b6102136102d4366004612b2a565b6106ff565b6102136102e7366004612b7a565b610754565b6102136102fa366004612b97565b610798565b61027a6108e0565b61027a610315366004612ab3565b6001600160a01b031660009081526012602052604090205490565b61021361033e366004612c35565b6108ea565b610213610d6c565b610213610359366004612ab3565b6110e7565b61027a61036c366004612ab3565b611133565b61027a61037f366004612c53565b611165565b60245461027a565b61021361039a366004612ab3565b6111fb565b6102136103ad366004612c7f565b6112a5565b6102136103c0366004612ca1565b6112fd565b61027a6103d3366004612cbf565b611411565b6102136103e6366004612a89565b6115bf565b61027a611897565b6000546040516001600160a01b039091168152602001610235565b61021361041c366004612ca1565b611b55565b61027a611b95565b6102a3610437366004612ab3565b6001600160a01b03166000908152601a602052604090205460ff1690565b610213611bb1565b61027a61046b366004612ab3565b6001600160a01b031660009081526015602052604090205490565b61027a611bf0565b61021361049c366004612ab3565b611cd5565b61027a6104af366004612a89565b611d70565b6000546001600160a01b031633146104e75760405162461bcd60e51b81526004016104de90612cfd565b60405180910390fd5b6001600160a01b039091166000908152601c6020526040902055565b6001600160a01b0381166000908152601d6020526040902080546060919061052a90612d32565b80601f016020809104026020016040519081016040528092919081815260200182805461055690612d32565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b50505050509050919050565b6000546001600160a01b031633146105d95760405162461bcd60e51b81526004016104de90612cfd565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461062e5760405162461bcd60e51b81526004016104de90612cfd565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb906044016020604051808303816000875af115801561067d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a19190612d6c565b50505050565b600060245442101580156106bd57506002602454115b905090565b6000546001600160a01b031633146106ec5760405162461bcd60e51b81526004016104de90612cfd565b60048111156106fa57600080fd5b602255565b6000546001600160a01b031633146107295760405162461bcd60e51b81526004016104de90612cfd565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461077e5760405162461bcd60e51b81526004016104de90612cfd565b602a80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146107c25760405162461bcd60e51b81526004016104de90612cfd565b602154600160a01b900460ff166107eb5760405162461bcd60e51b81526004016104de90612d89565b6000811161083b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e20300060448201526064016104de565b84156108565761085381670de0b6b3a7640000612dc9565b90505b6108608282611e02565b6001600160a01b0382166000908152601d60205260409020610883848683612e44565b5061088d816120b2565b610897828261220a565b6001600160a01b0382166000908152601760209081526040808320805460ff191660011790556013909152812080548392906108d4908490612f04565b90915550505050505050565b60006106bd612433565b6000546001600160a01b031633146109145760405162461bcd60e51b81526004016104de90612cfd565b8115610b3e57601e546040516370a0823160e01b8152306004820152600091603c916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098c9190612f17565b610997906064612dc9565b6109a19190612f30565b601e546040516370a0823160e01b81523060048201529192506000916028916001600160a01b0316906370a0823190602401602060405180830381865afa1580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a149190612f17565b610a1f906064612dc9565b610a299190612f30565b601e549091506001600160a01b031663a9059cbb610a4f6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190612d6c565b50601e54602e5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015610b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3a9190612d6c565b5050505b8015610d6857601f546040516370a0823160e01b8152306004820152600091603c916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190612f17565b610bc1906064612dc9565b610bcb9190612f30565b601f546040516370a0823160e01b81523060048201529192506000916028916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3e9190612f17565b610c49906064612dc9565b610c539190612f30565b601f549091506001600160a01b031663a9059cbb610c796000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190612d6c565b50601f54602e5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190612d6c565b5050505b5050565b3360009081526018602052604090205460ff1615610dbf5760405162461bcd60e51b815260206004820152601060248201526f4e6f206d6f726520746f20636c61696d60801b60448201526064016104de565b602154600160a01b900460ff16610de85760405162461bcd60e51b81526004016104de90612d89565b3360009081526017602052604090205460ff16610e3c5760405162461bcd60e51b8152602060048201526012602482015271446964206e6f7420636f6e7472696275746560701b60448201526064016104de565b60235460ff16610e7f5760405162461bcd60e51b815260206004820152600e60248201526d139bdd081a5b9a5d185b1a5e995960921b60448201526064016104de565b610e87612466565b3360009081526005602090815260408083205460068352818420546007845282852054600890945291909320549091610ebf91612f04565b610ec99190612f04565b610ed39190612f04565b3360009081526014602081815260408084208581556016835290842054929091529092909190610f04908490612f52565b909155505033600090815260146020908152604080832054601290925290912054811115610f685760405162461bcd60e51b815260206004820152601160248201527043616e6e6f7420636c61696d206d6f726560781b60448201526064016104de565b3360009081526012602052604081208054839290610f87908490612f52565b909155505080610fe95760405162461bcd60e51b815260206004820152602760248201527f416d6f756e742070656e64696e672073686f756c6420626520677265617465726044820152660207468616e20360cc1b60648201526084016104de565b60215460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af115801561103a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105e9190612d6c565b50336000908152601660205260408120805483929061107e908490612f04565b90915550503360009081526015602081815260408084204281556019835293819020805460ff1916600117905591815291548151848152928301527f7bd7d21edf7870765085acfddc998379301adbfab888cd2c15eda55acc76e4cc910160405180910390a150565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016104de90612cfd565b602e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526013602052604081205461115f90670de0b6b3a764000090612f30565b92915050565b6000808360010361118b57506001600160a01b0382166000908152600160205260409020545b836002036111ae57506001600160a01b0382166000908152600260205260409020545b836003036111d157506001600160a01b0382166000908152600360205260409020545b836004036111f457506001600160a01b0382166000908152600460205260409020545b9392505050565b6000546001600160a01b031633146112255760405162461bcd60e51b81526004016104de90612cfd565b602354610100900460ff16156112735760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016104de565b602180546001600160a01b039092166001600160a01b03199092169190911790556023805461ff001916610100179055565b6000546001600160a01b031633146112cf5760405162461bcd60e51b81526004016104de90612cfd565b6112e182670de0b6b3a7640000612dc9565b602c556112f681670de0b6b3a7640000612dc9565b602d555050565b6000546001600160a01b031633146113275760405162461bcd60e51b81526004016104de90612cfd565b600054600160a81b900460ff16806113495750600054600160a01b900460ff16155b6113ac5760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b60648201526084016104de565b600054600160a81b900460ff161580156113d6576000805461ffff60a01b191661010160a01b1790555b82156113e557426024556113eb565b60248290555b6023805460ff19166001179055801561140c576000805460ff60a81b191690555b505050565b6000808360040361148c578415611459576001600160a01b03831660009081526004602052604090205461144790606490612f30565b61145290600f612dc9565b905061148c565b6001600160a01b03831660009081526004602052604090205461147e90606490612f30565b611489906014612dc9565b90505b836003036115045784156114d1576001600160a01b0383166000908152600360205260409020546114bf90606490612f30565b6114ca906014612dc9565b9050611504565b6001600160a01b0383166000908152600360205260409020546114f690606490612f30565b61150190600f612dc9565b90505b8360020361157c578415611549576001600160a01b03831660009081526002602052604090205461153790606490612f30565b61154290600f612dc9565b905061157c565b6001600160a01b03831660009081526002602052604090205461156e90606490612f30565b61157990600a612dc9565b90505b836001036115b7576001600160a01b0383166000908152600160205260409020546115a990606490612f30565b6115b4906005612dc9565b90505b949350505050565b6001600160a01b0382166000908152601a6020526040902054829060ff166116215760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881b9bdd081dda1a5d195b1a5cdd1959605a1b60448201526064016104de565b602154600160a01b900460ff1661164a5760405162461bcd60e51b81526004016104de90612d89565b6000821161169a5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e20300060448201526064016104de565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038216906323b872dd906064016020604051808303816000875af11580156116ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117119190612d6c565b506001600160a01b0381166000908152601b602052604090205460ff1615611764576001600160a01b0381166000908152601c602052604090205461175790600a613049565b6117619083612dc9565b91505b61176d826120b2565b611777338361220a565b6000611781612433565b11801561179657506004611793612433565b11155b156117aa576117a53383611e02565b6117e6565b60405162461bcd60e51b815260206004820152601160248201527014d85b19481251081b9bdd081d985b1a59607a1b60448201526064016104de565b6040518060600160405280603681526020016131c560369139336000908152601d60205260409020906118199082613055565b503360009081526013602052604081208054849290611839908490612f04565b90915550503360009081526017602052604090819020805460ff19166001179055517fe3929f61a9d22db722da4ad137b9b3b7f5222377791e563d9c451fd81243a7869061188a9084815260200190565b60405180910390a1505050565b6000806024544210156118a8575060005b6025546118b6906001612dc9565b6024546118c39190612f04565b42106118cd575060015b6025546118db906002612dc9565b6024546118e89190612f04565b42106118f2575060025b602554611900906003612dc9565b60245461190d9190612f04565b4210611917575060035b602554611925906004612dc9565b6024546119329190612f04565b421061193c575060045b60255461194a906005612dc9565b6024546119579190612f04565b4210611961575060055b60255461196f906006612dc9565b60245461197c9190612f04565b4210611986575060065b602554611994906007612dc9565b6024546119a19190612f04565b42106119ab575060075b6025546119b9906008612dc9565b6024546119c69190612f04565b42106119d0575060085b6025546119de906009612dc9565b6024546119eb9190612f04565b42106119f5575060095b602554611a0390600a612dc9565b602454611a109190612f04565b4210611a1a5750600a5b602554611a2890600b612dc9565b602454611a359190612f04565b4210611a3f5750600b5b602554611a4d90600c612dc9565b602454611a5a9190612f04565b4210611a645750600c5b602554611a7290600d612dc9565b602454611a7f9190612f04565b4210611a895750600d5b602554611a9790600e612dc9565b602454611aa49190612f04565b4210611aae5750600e5b602554611abc90600f612dc9565b602454611ac99190612f04565b4210611ad35750600f5b602554611ae1906010612dc9565b602454611aee9190612f04565b4210611af8575060105b602554611b06906011612dc9565b602454611b139190612f04565b4210611b1d575060115b602554611b2b906012612dc9565b602454611b389190612f04565b4210611b42575060125b602454600003611b50575060005b919050565b6000546001600160a01b03163314611b7f5760405162461bcd60e51b81526004016104de90612cfd565b602b55602a805460ff1916911515919091179055565b600066038d7ea4c68000611ba76124d6565b6106bd9190612f30565b6000546001600160a01b03163314611bdb5760405162461bcd60e51b81526004016104de90612cfd565b6021805460ff60a01b1916600160a01b179055565b600080611bfb612433565b600103611c2757602654602f54611c1a90670de0b6b3a7640000612dc9565b611c249190612f52565b90505b611c2f612433565b600203611c5b57602754603054611c4e90670de0b6b3a7640000612dc9565b611c589190612f52565b90505b611c63612433565b600303611c8f57602854603154611c8290670de0b6b3a7640000612dc9565b611c8c9190612f52565b90505b611c97612433565b600403611cc357602954603254611cb690670de0b6b3a7640000612dc9565b611cc09190612f52565b90505b61115f670de0b6b3a764000082612f30565b6000546001600160a01b03163314611cff5760405162461bcd60e51b81526004016104de90612cfd565b6001600160a01b038116611d645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104de565b611d6d81612558565b50565b60008082600103611d9657506001600160a01b0383166000908152600560205260409020545b82600203611db957506001600160a01b0383166000908152600660205260409020545b82600303611ddc57506001600160a01b0383166000908152600760205260409020545b826004036111f4575050506001600160a01b031660009081526008602052604090205490565b600080600080611e10612433565b600103611e9457670de0b6b3a764000085611e296124d6565b611e339190612dc9565b611e3d9190612f30565b6001600160a01b03871660009081526001602052604081208054909190611e65908490612f04565b90915550670de0b6b3a7640000905085611e7d6124d6565b611e879190612dc9565b611e919190612f30565b93505b611e9c612433565b600203611f2057670de0b6b3a764000085611eb56124d6565b611ebf9190612dc9565b611ec99190612f30565b6001600160a01b03871660009081526002602052604081208054909190611ef1908490612f04565b90915550670de0b6b3a7640000905085611f096124d6565b611f139190612dc9565b611f1d9190612f30565b92505b611f28612433565b600303611fac57670de0b6b3a764000085611f416124d6565b611f4b9190612dc9565b611f559190612f30565b6001600160a01b03871660009081526003602052604081208054909190611f7d908490612f04565b90915550670de0b6b3a7640000905085611f956124d6565b611f9f9190612dc9565b611fa99190612f30565b91505b611fb4612433565b60040361203857670de0b6b3a764000085611fcd6124d6565b611fd79190612dc9565b611fe19190612f30565b6001600160a01b03871660009081526004602052604081208054909190612009908490612f04565b90915550670de0b6b3a76400009050856120216124d6565b61202b9190612dc9565b6120359190612f30565b90505b80826120448587612f04565b61204e9190612f04565b6120589190612f04565b6001600160a01b03871660009081526011602052604081208054909190612080908490612f04565b9091555050506001600160a01b0390941660009081526011602090815260408083205460129092529091205550505050565b6120ba612433565b60010361210857806026546120cf9190612f04565b602655602f546120e790670de0b6b3a7640000612dc9565b60265411156121085760405162461bcd60e51b81526004016104de90613115565b612110612433565b60020361215e57806027546121259190612f04565b60275560305461213d90670de0b6b3a7640000612dc9565b602754111561215e5760405162461bcd60e51b81526004016104de90613115565b612166612433565b6003036121b4578060285461217b9190612f04565b60285560315461219390670de0b6b3a7640000612dc9565b60285411156121b45760405162461bcd60e51b81526004016104de90613115565b6121bc612433565b600403611d6d57806029546121d19190612f04565b6029556032546121e990670de0b6b3a7640000612dc9565b6029541115611d6d5760405162461bcd60e51b81526004016104de90613115565b612212612433565b60010361229257602d546001600160a01b0383166000908152600d6020526040902054612240908390612f04565b111561225e5760405162461bcd60e51b81526004016104de9061313f565b602c54811015806122765750602a54610100900460ff165b6122925760405162461bcd60e51b81526004016104de90613176565b61229a612433565b60020361231a57602d546001600160a01b0383166000908152600e60205260409020546122c8908390612f04565b11156122e65760405162461bcd60e51b81526004016104de9061313f565b602c54811015806122fe5750602a54610100900460ff165b61231a5760405162461bcd60e51b81526004016104de90613176565b612322612433565b6003036123a257602d546001600160a01b0383166000908152600f6020526040902054612350908390612f04565b111561236e5760405162461bcd60e51b81526004016104de9061313f565b602c54811015806123865750602a54610100900460ff165b6123a25760405162461bcd60e51b81526004016104de90613176565b6123aa612433565b60040361242a57602d546001600160a01b0383166000908152601060205260409020546123d8908390612f04565b11156123f65760405162461bcd60e51b81526004016104de9061313f565b602c548110158061240e5750602a54610100900460ff165b61242a5760405162461bcd60e51b81526004016104de90613176565b610d68816125a8565b602154600090600160a01b900460ff1661245f5760405162461bcd60e51b81526004016104de90612d89565b5060225490565b61246e61267a565b1561249d576124816001806001806126b8565b336000908152601860205260409020805460ff19166001179055565b6124a5612749565b3360009081526019602052604090205460ff161580156124c757506024544210155b156124d4576124d4612960565b565b6000806124e1612433565b6001036124f45750680298fa327f0badfa005b6124fc612433565b60020361250f57506802567ac70250db0a005b612517612433565b60030361252a57506801dec89f42e92728005b612532612433565b600403612545575068019460cba475e313005b602a5460ff1615611b50575050602b5490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6125b0612433565b6001036125dc57336000908152600d6020526040812080548392906125d6908490612f04565b90915550505b6125e4612433565b60020361261057336000908152600e60205260408120805483929061260a908490612f04565b90915550505b612618612433565b60030361264457336000908152600f60205260408120805483929061263e908490612f04565b90915550505b61264c612433565b600403611d6d573360009081526010602052604081208054839290612672908490612f04565b909155505050565b3360009081526019602052604081205460ff161580156106bd57506025546126a3906012612dc9565b6024546126b09190612f04565b421015905090565b83156126db57336000908152600460209081526040808320546008909252909120555b82156126fe57336000908152600360209081526040808320546007909252909120555b811561272157336000908152600260209081526040808320546006909252909120555b80156106a1573360009081526001602090815260408083205460059092529091205550505050565b6003612753611897565b111561276d57612768600160008060006126b8565b6127d1565b336000908152600c6020526040902054612785611897565b612790906014612dc9565b336000908152600460205260409020546127ac90606490612f30565b6127b69190612dc9565b6127c09190612f04565b336000908152600860205260409020555b60056127db611897565b106127f3576127ee6001806000806126b8565b612857565b336000908152600b602052604090205461280b611897565b61281690600f612dc9565b3360009081526003602052604090205461283290606490612f30565b61283c9190612dc9565b6128469190612f04565b336000908152600760205260409020555b6008612861611897565b1061287a57612875600180600160006126b8565b6128de565b336000908152600a6020526040902054612892611897565b61289d90600a612dc9565b336000908152600260205260409020546128b990606490612f30565b6128c39190612dc9565b6128cd9190612f04565b336000908152600660205260409020555b60126128e8611897565b106128fb576124816001806001806126b8565b33600090815260096020526040902054612913611897565b61291e906005612dc9565b3360009081526001602052604090205461293a90606490612f30565b6129449190612dc9565b61294e9190612f04565b33600090815260056020526040902055565b3360009081526001602052604090205461297c90606490612f30565b61298790600a612dc9565b336000908152600560209081526040808320939093556002905220546129af90606490612f30565b6129ba90600f612dc9565b336000908152600660209081526040808320939093556003905220546129e290606490612f30565b6129ed906014612dc9565b33600090815260076020908152604080832093909355600490522054612a1590606490612f30565b612a20906019612dc9565b336000908152600860209081526040808320938455600582528083205460098352818420556006825280832054600a8352818420556007825280832054600b8352818420559254600c90915291902055565b80356001600160a01b0381168114611b5057600080fd5b60008060408385031215612a9c57600080fd5b612aa583612a72565b946020939093013593505050565b600060208284031215612ac557600080fd5b6111f482612a72565b600060208083528351808285015260005b81811015612afb57858101830151858201604001528201612adf565b506000604082860101526040601f19601f8301168501019250505092915050565b8015158114611d6d57600080fd5b60008060408385031215612b3d57600080fd5b612b4683612a72565b91506020830135612b5681612b1c565b809150509250929050565b600060208284031215612b7357600080fd5b5035919050565b600060208284031215612b8c57600080fd5b81356111f481612b1c565b600080600080600060808688031215612baf57600080fd5b8535612bba81612b1c565b9450602086013567ffffffffffffffff80821115612bd757600080fd5b818801915088601f830112612beb57600080fd5b813581811115612bfa57600080fd5b896020828501011115612c0c57600080fd5b602083019650809550505050612c2460408701612a72565b949793965091946060013592915050565b60008060408385031215612c4857600080fd5b8235612b4681612b1c565b60008060408385031215612c6657600080fd5b82359150612c7660208401612a72565b90509250929050565b60008060408385031215612c9257600080fd5b50508035926020909101359150565b60008060408385031215612cb457600080fd5b8235612aa581612b1c565b600080600060608486031215612cd457600080fd5b8335612cdf81612b1c565b925060208401359150612cf460408501612a72565b90509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612d4657607f821691505b602082108103612d6657634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612d7e57600080fd5b81516111f481612b1c565b60208082526010908201526f53616c65206973206e6f74206c69766560801b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761115f5761115f612db3565b634e487b7160e01b600052604160045260246000fd5b601f82111561140c57600081815260208120601f850160051c81016020861015612e1d5750805b601f850160051c820191505b81811015612e3c57828155600101612e29565b505050505050565b67ffffffffffffffff831115612e5c57612e5c612de0565b612e7083612e6a8354612d32565b83612df6565b6000601f841160018114612ea45760008515612e8c5750838201355b600019600387901b1c1916600186901b178355610d64565b600083815260209020601f19861690835b82811015612ed55786850135825560209485019460019092019101612eb5565b5086821015612ef25760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8082018082111561115f5761115f612db3565b600060208284031215612f2957600080fd5b5051919050565b600082612f4d57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561115f5761115f612db3565b600181815b80851115612fa0578160001904821115612f8657612f86612db3565b80851615612f9357918102915b93841c9390800290612f6a565b509250929050565b600082612fb75750600161115f565b81612fc45750600061115f565b8160018114612fda5760028114612fe457613000565b600191505061115f565b60ff841115612ff557612ff5612db3565b50506001821b61115f565b5060208310610133831016604e8410600b8410161715613023575081810a61115f565b61302d8383612f65565b806000190482111561304157613041612db3565b029392505050565b60006111f48383612fa8565b815167ffffffffffffffff81111561306f5761306f612de0565b6130838161307d8454612d32565b84612df6565b602080601f8311600181146130b857600084156130a05750858301515b600019600386901b1c1916600185901b178555612e3c565b600085815260208120601f198616915b828110156130e7578886015182559484019460019091019084016130c8565b50858210156131055787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526010908201526f12185c990818d85c081c995858da195960821b604082015260600190565b6020808252601e908201527f416d6f756e7420657863656564206d617820636f6e747269627574696f6e0000604082015260600190565b6020808252602e908201527f416d6f756e7420646f6573206e6f74206d656574206d696e20636f6e7472696260408201526d7574696f6e20637269746572696160901b60608201526080019056fe557365722070757263686173656420746f6b656e2066726f6d20746865206f6666696369616c20736d61727420636f6e74726163742ea2646970667358221220db64a8749f058be43f7f71c63613efaea59c09cc04a47c87b0696a241c2c7e0b64736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80635ef97c2d1161011a5780638da5cb5b116100ad578063c97a12ae1161007c578063c97a12ae14610455578063ced8dfa41461045d578063e903941514610486578063f2fde38b1461048e578063fb831b9a146104a157600080fd5b80638da5cb5b146103f35780639498416e1461040e578063a247a09b14610421578063bcb523cb1461042957600080fd5b806371d5f7c5116100e957806371d5f7c5146103b25780637cece5b0146103c55780638418cd99146103d85780638a604c8a146103eb57600080fd5b80635ef97c2d1461037157806367efb4f814610384578063691c826c1461038c5780636f928a041461039f57600080fd5b80632d485aac11610192578063463c47a711610161578063463c47a7146103305780634e71d92d146103435780635b7c132d1461034b5780635e5cb4031461035e57600080fd5b80632d485aac146102d957806331a46854146102ec57806339d08c2a146102ff578063410ba5e01461030757600080fd5b80631e10eeaf116101ce5780631e10eeaf146102885780631f2b75121461029b5780631f7f2fd1146102b35780632ad44351146102c657600080fd5b8063037f67d3146102005780630edef38a146102155780630ffb1d8b1461023e5780631c91250e14610251575b600080fd5b61021361020e366004612a89565b6104b4565b005b610228610223366004612ab3565b610503565b6040516102359190612ace565b60405180910390f35b61021361024c366004612b2a565b6105af565b61027a61025f366004612ab3565b6001600160a01b031660009081526016602052604090205490565b604051908152602001610235565b610213610296366004612a89565b610604565b6102a36106a7565b6040519015158152602001610235565b6102136102c1366004612b61565b6106c2565b6102136102d4366004612b2a565b6106ff565b6102136102e7366004612b7a565b610754565b6102136102fa366004612b97565b610798565b61027a6108e0565b61027a610315366004612ab3565b6001600160a01b031660009081526012602052604090205490565b61021361033e366004612c35565b6108ea565b610213610d6c565b610213610359366004612ab3565b6110e7565b61027a61036c366004612ab3565b611133565b61027a61037f366004612c53565b611165565b60245461027a565b61021361039a366004612ab3565b6111fb565b6102136103ad366004612c7f565b6112a5565b6102136103c0366004612ca1565b6112fd565b61027a6103d3366004612cbf565b611411565b6102136103e6366004612a89565b6115bf565b61027a611897565b6000546040516001600160a01b039091168152602001610235565b61021361041c366004612ca1565b611b55565b61027a611b95565b6102a3610437366004612ab3565b6001600160a01b03166000908152601a602052604090205460ff1690565b610213611bb1565b61027a61046b366004612ab3565b6001600160a01b031660009081526015602052604090205490565b61027a611bf0565b61021361049c366004612ab3565b611cd5565b61027a6104af366004612a89565b611d70565b6000546001600160a01b031633146104e75760405162461bcd60e51b81526004016104de90612cfd565b60405180910390fd5b6001600160a01b039091166000908152601c6020526040902055565b6001600160a01b0381166000908152601d6020526040902080546060919061052a90612d32565b80601f016020809104026020016040519081016040528092919081815260200182805461055690612d32565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b50505050509050919050565b6000546001600160a01b031633146105d95760405162461bcd60e51b81526004016104de90612cfd565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461062e5760405162461bcd60e51b81526004016104de90612cfd565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb906044016020604051808303816000875af115801561067d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a19190612d6c565b50505050565b600060245442101580156106bd57506002602454115b905090565b6000546001600160a01b031633146106ec5760405162461bcd60e51b81526004016104de90612cfd565b60048111156106fa57600080fd5b602255565b6000546001600160a01b031633146107295760405162461bcd60e51b81526004016104de90612cfd565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461077e5760405162461bcd60e51b81526004016104de90612cfd565b602a80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146107c25760405162461bcd60e51b81526004016104de90612cfd565b602154600160a01b900460ff166107eb5760405162461bcd60e51b81526004016104de90612d89565b6000811161083b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e20300060448201526064016104de565b84156108565761085381670de0b6b3a7640000612dc9565b90505b6108608282611e02565b6001600160a01b0382166000908152601d60205260409020610883848683612e44565b5061088d816120b2565b610897828261220a565b6001600160a01b0382166000908152601760209081526040808320805460ff191660011790556013909152812080548392906108d4908490612f04565b90915550505050505050565b60006106bd612433565b6000546001600160a01b031633146109145760405162461bcd60e51b81526004016104de90612cfd565b8115610b3e57601e546040516370a0823160e01b8152306004820152600091603c916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098c9190612f17565b610997906064612dc9565b6109a19190612f30565b601e546040516370a0823160e01b81523060048201529192506000916028916001600160a01b0316906370a0823190602401602060405180830381865afa1580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a149190612f17565b610a1f906064612dc9565b610a299190612f30565b601e549091506001600160a01b031663a9059cbb610a4f6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190612d6c565b50601e54602e5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015610b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3a9190612d6c565b5050505b8015610d6857601f546040516370a0823160e01b8152306004820152600091603c916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190612f17565b610bc1906064612dc9565b610bcb9190612f30565b601f546040516370a0823160e01b81523060048201529192506000916028916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3e9190612f17565b610c49906064612dc9565b610c539190612f30565b601f549091506001600160a01b031663a9059cbb610c796000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190612d6c565b50601f54602e5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190612d6c565b5050505b5050565b3360009081526018602052604090205460ff1615610dbf5760405162461bcd60e51b815260206004820152601060248201526f4e6f206d6f726520746f20636c61696d60801b60448201526064016104de565b602154600160a01b900460ff16610de85760405162461bcd60e51b81526004016104de90612d89565b3360009081526017602052604090205460ff16610e3c5760405162461bcd60e51b8152602060048201526012602482015271446964206e6f7420636f6e7472696275746560701b60448201526064016104de565b60235460ff16610e7f5760405162461bcd60e51b815260206004820152600e60248201526d139bdd081a5b9a5d185b1a5e995960921b60448201526064016104de565b610e87612466565b3360009081526005602090815260408083205460068352818420546007845282852054600890945291909320549091610ebf91612f04565b610ec99190612f04565b610ed39190612f04565b3360009081526014602081815260408084208581556016835290842054929091529092909190610f04908490612f52565b909155505033600090815260146020908152604080832054601290925290912054811115610f685760405162461bcd60e51b815260206004820152601160248201527043616e6e6f7420636c61696d206d6f726560781b60448201526064016104de565b3360009081526012602052604081208054839290610f87908490612f52565b909155505080610fe95760405162461bcd60e51b815260206004820152602760248201527f416d6f756e742070656e64696e672073686f756c6420626520677265617465726044820152660207468616e20360cc1b60648201526084016104de565b60215460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af115801561103a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105e9190612d6c565b50336000908152601660205260408120805483929061107e908490612f04565b90915550503360009081526015602081815260408084204281556019835293819020805460ff1916600117905591815291548151848152928301527f7bd7d21edf7870765085acfddc998379301adbfab888cd2c15eda55acc76e4cc910160405180910390a150565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016104de90612cfd565b602e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526013602052604081205461115f90670de0b6b3a764000090612f30565b92915050565b6000808360010361118b57506001600160a01b0382166000908152600160205260409020545b836002036111ae57506001600160a01b0382166000908152600260205260409020545b836003036111d157506001600160a01b0382166000908152600360205260409020545b836004036111f457506001600160a01b0382166000908152600460205260409020545b9392505050565b6000546001600160a01b031633146112255760405162461bcd60e51b81526004016104de90612cfd565b602354610100900460ff16156112735760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016104de565b602180546001600160a01b039092166001600160a01b03199092169190911790556023805461ff001916610100179055565b6000546001600160a01b031633146112cf5760405162461bcd60e51b81526004016104de90612cfd565b6112e182670de0b6b3a7640000612dc9565b602c556112f681670de0b6b3a7640000612dc9565b602d555050565b6000546001600160a01b031633146113275760405162461bcd60e51b81526004016104de90612cfd565b600054600160a81b900460ff16806113495750600054600160a01b900460ff16155b6113ac5760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b60648201526084016104de565b600054600160a81b900460ff161580156113d6576000805461ffff60a01b191661010160a01b1790555b82156113e557426024556113eb565b60248290555b6023805460ff19166001179055801561140c576000805460ff60a81b191690555b505050565b6000808360040361148c578415611459576001600160a01b03831660009081526004602052604090205461144790606490612f30565b61145290600f612dc9565b905061148c565b6001600160a01b03831660009081526004602052604090205461147e90606490612f30565b611489906014612dc9565b90505b836003036115045784156114d1576001600160a01b0383166000908152600360205260409020546114bf90606490612f30565b6114ca906014612dc9565b9050611504565b6001600160a01b0383166000908152600360205260409020546114f690606490612f30565b61150190600f612dc9565b90505b8360020361157c578415611549576001600160a01b03831660009081526002602052604090205461153790606490612f30565b61154290600f612dc9565b905061157c565b6001600160a01b03831660009081526002602052604090205461156e90606490612f30565b61157990600a612dc9565b90505b836001036115b7576001600160a01b0383166000908152600160205260409020546115a990606490612f30565b6115b4906005612dc9565b90505b949350505050565b6001600160a01b0382166000908152601a6020526040902054829060ff166116215760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881b9bdd081dda1a5d195b1a5cdd1959605a1b60448201526064016104de565b602154600160a01b900460ff1661164a5760405162461bcd60e51b81526004016104de90612d89565b6000821161169a5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e20300060448201526064016104de565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038216906323b872dd906064016020604051808303816000875af11580156116ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117119190612d6c565b506001600160a01b0381166000908152601b602052604090205460ff1615611764576001600160a01b0381166000908152601c602052604090205461175790600a613049565b6117619083612dc9565b91505b61176d826120b2565b611777338361220a565b6000611781612433565b11801561179657506004611793612433565b11155b156117aa576117a53383611e02565b6117e6565b60405162461bcd60e51b815260206004820152601160248201527014d85b19481251081b9bdd081d985b1a59607a1b60448201526064016104de565b6040518060600160405280603681526020016131c560369139336000908152601d60205260409020906118199082613055565b503360009081526013602052604081208054849290611839908490612f04565b90915550503360009081526017602052604090819020805460ff19166001179055517fe3929f61a9d22db722da4ad137b9b3b7f5222377791e563d9c451fd81243a7869061188a9084815260200190565b60405180910390a1505050565b6000806024544210156118a8575060005b6025546118b6906001612dc9565b6024546118c39190612f04565b42106118cd575060015b6025546118db906002612dc9565b6024546118e89190612f04565b42106118f2575060025b602554611900906003612dc9565b60245461190d9190612f04565b4210611917575060035b602554611925906004612dc9565b6024546119329190612f04565b421061193c575060045b60255461194a906005612dc9565b6024546119579190612f04565b4210611961575060055b60255461196f906006612dc9565b60245461197c9190612f04565b4210611986575060065b602554611994906007612dc9565b6024546119a19190612f04565b42106119ab575060075b6025546119b9906008612dc9565b6024546119c69190612f04565b42106119d0575060085b6025546119de906009612dc9565b6024546119eb9190612f04565b42106119f5575060095b602554611a0390600a612dc9565b602454611a109190612f04565b4210611a1a5750600a5b602554611a2890600b612dc9565b602454611a359190612f04565b4210611a3f5750600b5b602554611a4d90600c612dc9565b602454611a5a9190612f04565b4210611a645750600c5b602554611a7290600d612dc9565b602454611a7f9190612f04565b4210611a895750600d5b602554611a9790600e612dc9565b602454611aa49190612f04565b4210611aae5750600e5b602554611abc90600f612dc9565b602454611ac99190612f04565b4210611ad35750600f5b602554611ae1906010612dc9565b602454611aee9190612f04565b4210611af8575060105b602554611b06906011612dc9565b602454611b139190612f04565b4210611b1d575060115b602554611b2b906012612dc9565b602454611b389190612f04565b4210611b42575060125b602454600003611b50575060005b919050565b6000546001600160a01b03163314611b7f5760405162461bcd60e51b81526004016104de90612cfd565b602b55602a805460ff1916911515919091179055565b600066038d7ea4c68000611ba76124d6565b6106bd9190612f30565b6000546001600160a01b03163314611bdb5760405162461bcd60e51b81526004016104de90612cfd565b6021805460ff60a01b1916600160a01b179055565b600080611bfb612433565b600103611c2757602654602f54611c1a90670de0b6b3a7640000612dc9565b611c249190612f52565b90505b611c2f612433565b600203611c5b57602754603054611c4e90670de0b6b3a7640000612dc9565b611c589190612f52565b90505b611c63612433565b600303611c8f57602854603154611c8290670de0b6b3a7640000612dc9565b611c8c9190612f52565b90505b611c97612433565b600403611cc357602954603254611cb690670de0b6b3a7640000612dc9565b611cc09190612f52565b90505b61115f670de0b6b3a764000082612f30565b6000546001600160a01b03163314611cff5760405162461bcd60e51b81526004016104de90612cfd565b6001600160a01b038116611d645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104de565b611d6d81612558565b50565b60008082600103611d9657506001600160a01b0383166000908152600560205260409020545b82600203611db957506001600160a01b0383166000908152600660205260409020545b82600303611ddc57506001600160a01b0383166000908152600760205260409020545b826004036111f4575050506001600160a01b031660009081526008602052604090205490565b600080600080611e10612433565b600103611e9457670de0b6b3a764000085611e296124d6565b611e339190612dc9565b611e3d9190612f30565b6001600160a01b03871660009081526001602052604081208054909190611e65908490612f04565b90915550670de0b6b3a7640000905085611e7d6124d6565b611e879190612dc9565b611e919190612f30565b93505b611e9c612433565b600203611f2057670de0b6b3a764000085611eb56124d6565b611ebf9190612dc9565b611ec99190612f30565b6001600160a01b03871660009081526002602052604081208054909190611ef1908490612f04565b90915550670de0b6b3a7640000905085611f096124d6565b611f139190612dc9565b611f1d9190612f30565b92505b611f28612433565b600303611fac57670de0b6b3a764000085611f416124d6565b611f4b9190612dc9565b611f559190612f30565b6001600160a01b03871660009081526003602052604081208054909190611f7d908490612f04565b90915550670de0b6b3a7640000905085611f956124d6565b611f9f9190612dc9565b611fa99190612f30565b91505b611fb4612433565b60040361203857670de0b6b3a764000085611fcd6124d6565b611fd79190612dc9565b611fe19190612f30565b6001600160a01b03871660009081526004602052604081208054909190612009908490612f04565b90915550670de0b6b3a76400009050856120216124d6565b61202b9190612dc9565b6120359190612f30565b90505b80826120448587612f04565b61204e9190612f04565b6120589190612f04565b6001600160a01b03871660009081526011602052604081208054909190612080908490612f04565b9091555050506001600160a01b0390941660009081526011602090815260408083205460129092529091205550505050565b6120ba612433565b60010361210857806026546120cf9190612f04565b602655602f546120e790670de0b6b3a7640000612dc9565b60265411156121085760405162461bcd60e51b81526004016104de90613115565b612110612433565b60020361215e57806027546121259190612f04565b60275560305461213d90670de0b6b3a7640000612dc9565b602754111561215e5760405162461bcd60e51b81526004016104de90613115565b612166612433565b6003036121b4578060285461217b9190612f04565b60285560315461219390670de0b6b3a7640000612dc9565b60285411156121b45760405162461bcd60e51b81526004016104de90613115565b6121bc612433565b600403611d6d57806029546121d19190612f04565b6029556032546121e990670de0b6b3a7640000612dc9565b6029541115611d6d5760405162461bcd60e51b81526004016104de90613115565b612212612433565b60010361229257602d546001600160a01b0383166000908152600d6020526040902054612240908390612f04565b111561225e5760405162461bcd60e51b81526004016104de9061313f565b602c54811015806122765750602a54610100900460ff165b6122925760405162461bcd60e51b81526004016104de90613176565b61229a612433565b60020361231a57602d546001600160a01b0383166000908152600e60205260409020546122c8908390612f04565b11156122e65760405162461bcd60e51b81526004016104de9061313f565b602c54811015806122fe5750602a54610100900460ff165b61231a5760405162461bcd60e51b81526004016104de90613176565b612322612433565b6003036123a257602d546001600160a01b0383166000908152600f6020526040902054612350908390612f04565b111561236e5760405162461bcd60e51b81526004016104de9061313f565b602c54811015806123865750602a54610100900460ff165b6123a25760405162461bcd60e51b81526004016104de90613176565b6123aa612433565b60040361242a57602d546001600160a01b0383166000908152601060205260409020546123d8908390612f04565b11156123f65760405162461bcd60e51b81526004016104de9061313f565b602c548110158061240e5750602a54610100900460ff165b61242a5760405162461bcd60e51b81526004016104de90613176565b610d68816125a8565b602154600090600160a01b900460ff1661245f5760405162461bcd60e51b81526004016104de90612d89565b5060225490565b61246e61267a565b1561249d576124816001806001806126b8565b336000908152601860205260409020805460ff19166001179055565b6124a5612749565b3360009081526019602052604090205460ff161580156124c757506024544210155b156124d4576124d4612960565b565b6000806124e1612433565b6001036124f45750680298fa327f0badfa005b6124fc612433565b60020361250f57506802567ac70250db0a005b612517612433565b60030361252a57506801dec89f42e92728005b612532612433565b600403612545575068019460cba475e313005b602a5460ff1615611b50575050602b5490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6125b0612433565b6001036125dc57336000908152600d6020526040812080548392906125d6908490612f04565b90915550505b6125e4612433565b60020361261057336000908152600e60205260408120805483929061260a908490612f04565b90915550505b612618612433565b60030361264457336000908152600f60205260408120805483929061263e908490612f04565b90915550505b61264c612433565b600403611d6d573360009081526010602052604081208054839290612672908490612f04565b909155505050565b3360009081526019602052604081205460ff161580156106bd57506025546126a3906012612dc9565b6024546126b09190612f04565b421015905090565b83156126db57336000908152600460209081526040808320546008909252909120555b82156126fe57336000908152600360209081526040808320546007909252909120555b811561272157336000908152600260209081526040808320546006909252909120555b80156106a1573360009081526001602090815260408083205460059092529091205550505050565b6003612753611897565b111561276d57612768600160008060006126b8565b6127d1565b336000908152600c6020526040902054612785611897565b612790906014612dc9565b336000908152600460205260409020546127ac90606490612f30565b6127b69190612dc9565b6127c09190612f04565b336000908152600860205260409020555b60056127db611897565b106127f3576127ee6001806000806126b8565b612857565b336000908152600b602052604090205461280b611897565b61281690600f612dc9565b3360009081526003602052604090205461283290606490612f30565b61283c9190612dc9565b6128469190612f04565b336000908152600760205260409020555b6008612861611897565b1061287a57612875600180600160006126b8565b6128de565b336000908152600a6020526040902054612892611897565b61289d90600a612dc9565b336000908152600260205260409020546128b990606490612f30565b6128c39190612dc9565b6128cd9190612f04565b336000908152600660205260409020555b60126128e8611897565b106128fb576124816001806001806126b8565b33600090815260096020526040902054612913611897565b61291e906005612dc9565b3360009081526001602052604090205461293a90606490612f30565b6129449190612dc9565b61294e9190612f04565b33600090815260056020526040902055565b3360009081526001602052604090205461297c90606490612f30565b61298790600a612dc9565b336000908152600560209081526040808320939093556002905220546129af90606490612f30565b6129ba90600f612dc9565b336000908152600660209081526040808320939093556003905220546129e290606490612f30565b6129ed906014612dc9565b33600090815260076020908152604080832093909355600490522054612a1590606490612f30565b612a20906019612dc9565b336000908152600860209081526040808320938455600582528083205460098352818420556006825280832054600a8352818420556007825280832054600b8352818420559254600c90915291902055565b80356001600160a01b0381168114611b5057600080fd5b60008060408385031215612a9c57600080fd5b612aa583612a72565b946020939093013593505050565b600060208284031215612ac557600080fd5b6111f482612a72565b600060208083528351808285015260005b81811015612afb57858101830151858201604001528201612adf565b506000604082860101526040601f19601f8301168501019250505092915050565b8015158114611d6d57600080fd5b60008060408385031215612b3d57600080fd5b612b4683612a72565b91506020830135612b5681612b1c565b809150509250929050565b600060208284031215612b7357600080fd5b5035919050565b600060208284031215612b8c57600080fd5b81356111f481612b1c565b600080600080600060808688031215612baf57600080fd5b8535612bba81612b1c565b9450602086013567ffffffffffffffff80821115612bd757600080fd5b818801915088601f830112612beb57600080fd5b813581811115612bfa57600080fd5b896020828501011115612c0c57600080fd5b602083019650809550505050612c2460408701612a72565b949793965091946060013592915050565b60008060408385031215612c4857600080fd5b8235612b4681612b1c565b60008060408385031215612c6657600080fd5b82359150612c7660208401612a72565b90509250929050565b60008060408385031215612c9257600080fd5b50508035926020909101359150565b60008060408385031215612cb457600080fd5b8235612aa581612b1c565b600080600060608486031215612cd457600080fd5b8335612cdf81612b1c565b925060208401359150612cf460408501612a72565b90509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612d4657607f821691505b602082108103612d6657634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612d7e57600080fd5b81516111f481612b1c565b60208082526010908201526f53616c65206973206e6f74206c69766560801b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761115f5761115f612db3565b634e487b7160e01b600052604160045260246000fd5b601f82111561140c57600081815260208120601f850160051c81016020861015612e1d5750805b601f850160051c820191505b81811015612e3c57828155600101612e29565b505050505050565b67ffffffffffffffff831115612e5c57612e5c612de0565b612e7083612e6a8354612d32565b83612df6565b6000601f841160018114612ea45760008515612e8c5750838201355b600019600387901b1c1916600186901b178355610d64565b600083815260209020601f19861690835b82811015612ed55786850135825560209485019460019092019101612eb5565b5086821015612ef25760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8082018082111561115f5761115f612db3565b600060208284031215612f2957600080fd5b5051919050565b600082612f4d57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561115f5761115f612db3565b600181815b80851115612fa0578160001904821115612f8657612f86612db3565b80851615612f9357918102915b93841c9390800290612f6a565b509250929050565b600082612fb75750600161115f565b81612fc45750600061115f565b8160018114612fda5760028114612fe457613000565b600191505061115f565b60ff841115612ff557612ff5612db3565b50506001821b61115f565b5060208310610133831016604e8410600b8410161715613023575081810a61115f565b61302d8383612f65565b806000190482111561304157613041612db3565b029392505050565b60006111f48383612fa8565b815167ffffffffffffffff81111561306f5761306f612de0565b6130838161307d8454612d32565b84612df6565b602080601f8311600181146130b857600084156130a05750858301515b600019600386901b1c1916600185901b178555612e3c565b600085815260208120601f198616915b828110156130e7578886015182559484019460019091019084016130c8565b50858210156131055787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526010908201526f12185c990818d85c081c995858da195960821b604082015260600190565b6020808252601e908201527f416d6f756e7420657863656564206d617820636f6e747269627574696f6e0000604082015260600190565b6020808252602e908201527f416d6f756e7420646f6573206e6f74206d656574206d696e20636f6e7472696260408201526d7574696f6e20637269746572696160901b60608201526080019056fe557365722070757263686173656420746f6b656e2066726f6d20746865206f6666696369616c20736d61727420636f6e74726163742ea2646970667358221220db64a8749f058be43f7f71c63613efaea59c09cc04a47c87b0696a241c2c7e0b64736f6c63430008110033
Deployed Bytecode Sourcemap
2628:20006:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9943:180;;;;;;:::i;:::-;;:::i;:::-;;21205:124;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19624:161;;;;;;:::i;:::-;;:::i;21481:117::-;;;;;;:::i;:::-;-1:-1:-1;;;;;21574:16:0;21547:7;21574:16;;;:8;:16;;;;;;;21481:117;;;;1784:25:1;;;1772:2;1757:18;21481:117:0;1638:177:1;20016:164:0;;;;;;:::i;:::-;;:::i;21751:110::-;;;:::i;:::-;;;1985:14:1;;1978:22;1960:41;;1948:2;1933:18;21751:110:0;1820:187:1;19892:116:0;;;;;;:::i;:::-;;:::i;10131:166::-;;;;;;:::i;:::-;;:::i;9520:87::-;;;;;;:::i;:::-;;:::i;20620:577::-;;;;;;:::i;:::-;;:::i;19793:91::-;;;:::i;21606:137::-;;;;;;:::i;:::-;-1:-1:-1;;;;;21707:28:0;21680:7;21707:28;;;:20;:28;;;;;;;21606:137;11253:652;;;;;;:::i;:::-;;:::i;18275:1064::-;;;:::i;7745:116::-;;;;;;:::i;:::-;;:::i;21337:136::-;;;;;;:::i;:::-;;:::i;20188:424::-;;;;;;:::i;:::-;;:::i;21869:84::-;21942:3;;21869:84;;6403:188;;;;;;:::i;:::-;;:::i;7587:150::-;;;;;;:::i;:::-;;:::i;7311:187::-;;;;;;:::i;:::-;;:::i;14951:788::-;;;;;;:::i;:::-;;:::i;10307:938::-;;;;;;:::i;:::-;;:::i;13510:1433::-;;;:::i;629:87::-;675:7;702:6;629:87;;-1:-1:-1;;;;;702:6:0;;;5053:51:1;;5041:2;5026:18;629:87:0;4907:203:1;7168:135:0;;;;;;:::i;:::-;;:::i;7063:97::-;;;:::i;22465:164::-;;;;;;:::i;:::-;-1:-1:-1;;;;;22597:24:0;22534:4;22597:24;;;:17;:24;;;;;;;;;22465:164;7506:73;;;:::i;19347:126::-;;;;;;:::i;:::-;-1:-1:-1;;;;;19446:19:0;19419:7;19446:19;;;:10;:19;;;;;;;19347:126;21961:496;;;:::i;852:192::-;;;;;;:::i;:::-;;:::i;17831:436::-;;;;;;:::i;:::-;;:::i;9943:180::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10073:29:0;;::::1;10034:12;10073:29:::0;;;:22:::1;:29;::::0;;;;:42;9943:180::o;21205:124::-;-1:-1:-1;;;;;21299:22:0;;;;;;:14;:22;;;;;21292:29;;21266:13;;21299:22;21292:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21205:124;;;:::o;19624:161::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19744:24:0;;;::::1;19705:12;19744:24:::0;;;:17:::1;:24;::::0;;;;:32;;-1:-1:-1;;19744:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19624:161::o;20016:164::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;20138:34:::1;::::0;-1:-1:-1;;;20138:34:0;;20153:10:::1;20138:34;::::0;::::1;6035:51:1::0;6102:18;;;6095:34;;;20121:5:0;;-1:-1:-1;;;;;20138:14:0;::::1;::::0;::::1;::::0;6008:18:1;;20138:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20088:92;20016:164:::0;;:::o;21751:110::-;21796:4;21839:3;;21820:15;:22;;:33;;;;;21852:1;21846:3;;:7;21820:33;21813:40;;21751:110;:::o;19892:116::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;19971:1:::1;19965:2;:7;;19957:16;;;::::0;::::1;;19984:11;:16:::0;19892:116::o;10131:166::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10257:24:0;;;::::1;10218:12;10257:24:::0;;;:17:::1;:24;::::0;;;;:32;;-1:-1:-1;;10257:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10131:166::o;9520:87::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;9582:9:::1;:17:::0;;;::::1;;;;-1:-1:-1::0;;9582:17:0;;::::1;::::0;;;::::1;::::0;;9520:87::o;20620:577::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;20780:7:::1;::::0;-1:-1:-1;;;20780:7:0;::::1;;;20772:35;;;;-1:-1:-1::0;;;20772:35:0::1;;;;;;;:::i;:::-;20835:1;20826:6;:10;20818:54;;;::::0;-1:-1:-1;;;20818:54:0;;6937:2:1;20818:54:0::1;::::0;::::1;6919:21:1::0;6976:2;6956:18;;;6949:30;7015:33;6995:18;;;6988:61;7066:18;;20818:54:0::1;6735:355:1::0;20818:54:0::1;20890:11;20887:71;;;20913:15;:6:::0;20922::::1;20913:15;:::i;:::-;20904:24;;20887:71;20972:27;20984:6;20992;20972:11;:27::i;:::-;-1:-1:-1::0;;;;;21001:22:0;::::1;;::::0;;;:14:::1;:22;::::0;;;;:38:::1;21026:13:::0;;21001:22;:38:::1;:::i;:::-;;21041:20;21054:6;21041:12;:20::i;:::-;21063:35;21083:6;21091;21063:19;:35::i;:::-;-1:-1:-1::0;;;;;21113:22:0;::::1;;::::0;;;:14:::1;:22;::::0;;;;;;;:29;;-1:-1:-1;;21113:29:0::1;21138:4;21113:29;::::0;;21153:16:::1;:24:::0;;;;;:34;;21181:6;;21113:22;21153:34:::1;::::0;21181:6;;21153:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;20620:577:0:o;19793:91::-;19838:7;19865:11;:9;:11::i;11253:652::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;11337:5:::1;11334:268;;;11372:4;::::0;:29:::1;::::0;-1:-1:-1;;;11372:29:0;;11395:4:::1;11372:29;::::0;::::1;5053:51:1::0;11346:23:0::1;::::0;11410:2:::1;::::0;-1:-1:-1;;;;;11372:4:0;;::::1;::::0;:14:::1;::::0;5026:18:1;;11372:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;::::0;11404:3:::1;11372:35;:::i;:::-;:40;;;;:::i;:::-;11453:4;::::0;:29:::1;::::0;-1:-1:-1;;;11453:29:0;;11476:4:::1;11453:29;::::0;::::1;5053:51:1::0;11346:66:0;;-1:-1:-1;11423:27:0::1;::::0;11491:2:::1;::::0;-1:-1:-1;;;;;11453:4:0::1;::::0;:14:::1;::::0;5026:18:1;;11453:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;::::0;11485:3:::1;11453:35;:::i;:::-;:40;;;;:::i;:::-;11504:4;::::0;11423:70;;-1:-1:-1;;;;;;11504:4:0::1;:13;11518:7;675::::0;702:6;-1:-1:-1;;;;;702:6:0;;629:87;11518:7:::1;11504:39;::::0;-1:-1:-1;;;;;;11504:39:0::1;::::0;;;;;;-1:-1:-1;;;;;6053:32:1;;;11504:39:0::1;::::0;::::1;6035:51:1::0;6102:18;;;6095:34;;;6008:18;;11504:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11554:4:0::1;::::0;11568:9:::1;::::0;11554:45:::1;::::0;-1:-1:-1;;;11554:45:0;;-1:-1:-1;;;;;11568:9:0;;::::1;11554:45;::::0;::::1;6035:51:1::0;6102:18;;;6095:34;;;11554:4:0;::::1;::::0;:13:::1;::::0;6008:18:1;;11554:45:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11344:258;;11334:268;11615:5;11612:286;;;11659:4;::::0;:29:::1;::::0;-1:-1:-1;;;11659:29:0;;11682:4:::1;11659:29;::::0;::::1;5053:51:1::0;11633:23:0::1;::::0;11697:2:::1;::::0;-1:-1:-1;;;;;11659:4:0;;::::1;::::0;:14:::1;::::0;5026:18:1;;11659:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;::::0;11691:3:::1;11659:35;:::i;:::-;:40;;;;:::i;:::-;11740:4;::::0;:29:::1;::::0;-1:-1:-1;;;11740:29:0;;11763:4:::1;11740:29;::::0;::::1;5053:51:1::0;11633:66:0;;-1:-1:-1;11710:27:0::1;::::0;11778:2:::1;::::0;-1:-1:-1;;;;;11740:4:0::1;::::0;:14:::1;::::0;5026:18:1;;11740:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;::::0;11772:3:::1;11740:35;:::i;:::-;:40;;;;:::i;:::-;11791:4;::::0;11710:70;;-1:-1:-1;;;;;;11791:4:0::1;:13;11805:7;675::::0;702:6;-1:-1:-1;;;;;702:6:0;;629:87;11805:7:::1;11791:39;::::0;-1:-1:-1;;;;;;11791:39:0::1;::::0;;;;;;-1:-1:-1;;;;;6053:32:1;;;11791:39:0::1;::::0;::::1;6035:51:1::0;6102:18;;;6095:34;;;6008:18;;11791:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11841:4:0::1;::::0;11855:9:::1;::::0;11841:45:::1;::::0;-1:-1:-1;;;11841:45:0;;-1:-1:-1;;;;;11855:9:0;;::::1;11841:45;::::0;::::1;6035:51:1::0;6102:18;;;6095:34;;;11841:4:0;::::1;::::0;:13:::1;::::0;6008:18:1;;11841:45:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11622:276;;11612:286;11253:652:::0;;:::o;18275:1064::-;18335:10;18321:25;;;;:13;:25;;;;;;;;18320:26;18312:54;;;;-1:-1:-1;;;18312:54:0;;10333:2:1;18312:54:0;;;10315:21:1;10372:2;10352:18;;;10345:30;-1:-1:-1;;;10391:18:1;;;10384:46;10447:18;;18312:54:0;10131:340:1;18312:54:0;18385:7;;-1:-1:-1;;;18385:7:0;;;;18377:35;;;;-1:-1:-1;;;18377:35:0;;;;;;;:::i;:::-;18446:10;18431:26;;;;:14;:26;;;;;;;;18423:56;;;;-1:-1:-1;;;18423:56:0;;10678:2:1;18423:56:0;;;10660:21:1;10717:2;10697:18;;;10690:30;-1:-1:-1;;;10736:18:1;;;10729:48;10794:18;;18423:56:0;10476:342:1;18423:56:0;18498:12;;;;18490:38;;;;-1:-1:-1;;;18490:38:0;;11025:2:1;18490:38:0;;;11007:21:1;11064:2;11044:18;;;11037:30;-1:-1:-1;;;11083:18:1;;;11076:44;11137:18;;18490:38:0;10823:338:1;18490:38:0;18539:14;:12;:14::i;:::-;18737:10;18714:34;;;;:22;:34;;;;;;;;;18674:25;:37;;;;;;18633:26;:38;;;;;;18597:21;:33;;;;;;;;18674:37;;18597:74;;;:::i;:::-;:114;;;;:::i;:::-;:151;;;;:::i;:::-;18583:10;18566:28;;;;:16;:28;;;;;;;;:182;;;18791:8;:20;;;;;;18759:28;;;;18791:20;;18566:28;;;18759:52;;18791:20;;18759:52;:::i;:::-;;;;-1:-1:-1;;18860:10:0;18826:14;18843:28;;;:16;:28;;;;;;;;;18891:20;:32;;;;;;;:42;-1:-1:-1;18891:42:0;18882:72;;;;-1:-1:-1;;;18882:72:0;;11501:2:1;18882:72:0;;;11483:21:1;11540:2;11520:18;;;11513:30;-1:-1:-1;;;11559:18:1;;;11552:47;11616:18;;18882:72:0;11299:341:1;18882:72:0;18986:10;18965:32;;;;:20;:32;;;;;:42;;19001:6;;18965:32;:42;;19001:6;;18965:42;:::i;:::-;;;;-1:-1:-1;;19030:10:0;19022:61;;;;-1:-1:-1;;;19022:61:0;;11847:2:1;19022:61:0;;;11829:21:1;11886:2;11866:18;;;11859:30;11925:34;11905:18;;;11898:62;-1:-1:-1;;;11976:18:1;;;11969:37;12023:19;;19022:61:0;11645:403:1;19022:61:0;19099:3;;:32;;-1:-1:-1;;;19099:32:0;;19112:10;19099:32;;;6035:51:1;6102:18;;;6095:34;;;-1:-1:-1;;;;;19099:3:0;;;;:12;;6008:18:1;;19099:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19163:10:0;19154:20;;;;:8;:20;;;;;:30;;19178:6;;19154:20;:30;;19178:6;;19154:30;:::i;:::-;;;;-1:-1:-1;;19206:10:0;19195:22;;;;:10;:22;;;;;;;;19220:15;19195:40;;19247:9;:21;;;;;;:28;;-1:-1:-1;;19247:28:0;19271:4;19247:28;;;19308:22;;;;;19293:38;;12227:25:1;;;12268:18;;;12261:34;19293:38:0;;12200:18:1;19293:38:0;;;;;;;18301:1038;18275:1064::o;7745:116::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;7829:9:::1;:24:::0;;-1:-1:-1;;;;;;7829:24:0::1;-1:-1:-1::0;;;;;7829:24:0;;;::::1;::::0;;;::::1;::::0;;7745:116::o;21337:136::-;-1:-1:-1;;;;;21432:24:0;;21405:7;21432:24;;;:16;:24;;;;;;:33;;21459:6;;21432:33;:::i;:::-;21425:40;21337:136;-1:-1:-1;;21337:136:0:o;20188:424::-;20264:7;20284:14;20313:2;20319:1;20313:7;20309:59;;-1:-1:-1;;;;;;20333:33:0;;;;;;:24;:33;;;;;;20309:59;20382:2;20388:1;20382:7;20378:62;;-1:-1:-1;;;;;;20402:36:0;;;;;;:27;:36;;;;;;20378:62;20454:2;20460:1;20454:7;20450:63;;-1:-1:-1;;;;;;20474:37:0;;;;;;:28;:37;;;;;;20450:63;20527:2;20533:1;20527:7;20523:58;;-1:-1:-1;;;;;;20547:32:0;;;;;;:23;:32;;;;;;20523:58;20598:6;20188:424;-1:-1:-1;;;20188:424:0:o;6403:188::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;6487:11:::1;::::0;::::1;::::0;::::1;;;6486:12;6478:43;;;::::0;-1:-1:-1;;;6478:43:0;;12508:2:1;6478:43:0::1;::::0;::::1;12490:21:1::0;12547:2;12527:18;;;12520:30;-1:-1:-1;;;12566:18:1;;;12559:49;12625:18;;6478:43:0::1;12306:343:1::0;6478:43:0::1;6532:3;:22:::0;;-1:-1:-1;;;;;6532:22:0;;::::1;-1:-1:-1::0;;;;;;6532:22:0;;::::1;::::0;;;::::1;::::0;;6565:11:::1;:18:::0;;-1:-1:-1;;6565:18:0::1;6532:22;6565:18;::::0;;6403:188::o;7587:150::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;7686:13:::1;:4:::0;7693:6:::1;7686:13;:::i;:::-;7680:3;:19:::0;7716:13:::1;:4:::0;7723:6:::1;7716:13;:::i;:::-;7710:3;:19:::0;-1:-1:-1;;7587:150:0:o;7311:187::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;2328:12:::1;::::0;-1:-1:-1;;;2328:12:0;::::1;;;::::0;:28:::1;;-1:-1:-1::0;2345:11:0::1;::::0;-1:-1:-1;;;2345:11:0;::::1;;;2344:12;2328:28;2320:87;;;::::0;-1:-1:-1;;;2320:87:0;;12856:2:1;2320:87:0::1;::::0;::::1;12838:21:1::0;12895:2;12875:18;;;12868:30;12934:34;12914:18;;;12907:62;-1:-1:-1;;;12985:18:1;;;12978:44;13039:19;;2320:87:0::1;12654:410:1::0;2320:87:0::1;2416:19;2439:12:::0;-1:-1:-1;;;2439:12:0;::::1;;;2438:13;2458:83:::0;::::1;;;2487:12;:19:::0;;-1:-1:-1;;;;2515:18:0;-1:-1:-1;;;2515:18:0;;;2458:83:::1;7405:8:::2;7402:59;;;7424:15;7418:3;:21:::0;7402:59:::2;;;7449:3;:10:::0;;;7402:59:::2;7471:12;:19:::0;;-1:-1:-1;;7471:19:0::2;7486:4;7471:19;::::0;;2559:57;::::1;;;2603:5;2588:20:::0;;-1:-1:-1;;;;2588:20:0::1;::::0;;2559:57:::1;2313:308;7311:187:::0;;:::o;14951:788::-;15054:7;15073:20;15107:2;15113:1;15107:7;15104:158;;15121:9;15118:142;;;-1:-1:-1;;;;;15148:31:0;;;;;;:23;:31;;;;;;:37;;15182:3;;15148:37;:::i;:::-;:42;;15188:2;15148:42;:::i;:::-;15133:57;;15118:142;;;-1:-1:-1;;;;;15215:31:0;;;;;;:23;:31;;;;;;:37;;15249:3;;15215:37;:::i;:::-;:42;;15255:2;15215:42;:::i;:::-;15200:57;;15118:142;15275:2;15281:1;15275:7;15272:168;;15289:9;15286:152;;;-1:-1:-1;;;;;15316:36:0;;;;;;:28;:36;;;;;;:42;;15355:3;;15316:42;:::i;:::-;:47;;15361:2;15316:47;:::i;:::-;15301:62;;15286:152;;;-1:-1:-1;;;;;15388:36:0;;;;;;:28;:36;;;;;;:42;;15427:3;;15388:42;:::i;:::-;:47;;15433:2;15388:47;:::i;:::-;15373:62;;15286:152;15453:2;15459:1;15453:7;15450:166;;15467:9;15464:150;;;-1:-1:-1;;;;;15494:35:0;;;;;;:27;:35;;;;;;:41;;15532:3;;15494:41;:::i;:::-;:46;;15538:2;15494:46;:::i;:::-;15479:61;;15464:150;;;-1:-1:-1;;;;;15565:35:0;;;;;;:27;:35;;;;;;:41;;15603:3;;15565:41;:::i;:::-;:46;;15609:2;15565:46;:::i;:::-;15550:61;;15464:150;15629:2;15635:1;15629:7;15626:76;;-1:-1:-1;;;;;15656:32:0;;;;;;:24;:32;;;;;;:38;;15691:3;;15656:38;:::i;:::-;:42;;15697:1;15656:42;:::i;:::-;15641:57;;15626:76;15719:12;14951:788;-1:-1:-1;;;;14951:788:0:o;10307:938::-;-1:-1:-1;;;;;10425:24:0;;10378:12;10425:24;;;:17;:24;;;;;;10400:5;;10425:24;;10417:57;;;;-1:-1:-1;;;10417:57:0;;13271:2:1;10417:57:0;;;13253:21:1;13310:2;13290:18;;;13283:30;-1:-1:-1;;;13329:18:1;;;13322:51;13390:18;;10417:57:0;13069:345:1;10417:57:0;10493:7;;-1:-1:-1;;;10493:7:0;;;;10485:35;;;;-1:-1:-1;;;10485:35:0;;;;;;;:::i;:::-;10548:1;10539:6;:10;10531:54;;;;-1:-1:-1;;;10531:54:0;;6937:2:1;10531:54:0;;;6919:21:1;6976:2;6956:18;;;6949:30;7015:33;6995:18;;;6988:61;7066:18;;10531:54:0;6735:355:1;10531:54:0;10598:53;;-1:-1:-1;;;10598:53:0;;10617:10;10598:53;;;13659:34:1;10637:4:0;13709:18:1;;;13702:43;13761:18;;;13754:34;;;-1:-1:-1;;;;;10598:18:0;;;;;13594::1;;10598:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;10706:24:0;;;;;;:17;:24;;;;;;;;10703:84;;;-1:-1:-1;;;;;10756:29:0;;;;;;:22;:29;;;;;;10752:33;;:2;:33;:::i;:::-;10743:42;;:6;:42;:::i;:::-;10734:51;;10703:84;10799:20;10812:6;10799:12;:20::i;:::-;10830:39;10850:10;10862:6;10830:19;:39::i;:::-;10899:1;10885:11;:9;:11::i;:::-;:15;:35;;;;;10919:1;10904:11;:9;:11::i;:::-;:16;;10885:35;10882:116;;;10925:31;10937:10;10949:6;10925:11;:31::i;:::-;10882:116;;;10968:27;;-1:-1:-1;;;10968:27:0;;15375:2:1;10968:27:0;;;15357:21:1;15414:2;15394:18;;;15387:30;-1:-1:-1;;;15433:18:1;;;15426:47;15490:18;;10968:27:0;15173:341:1;10882:116:0;11020:85;;;;;;;;;;;;;;;;;11035:10;11020:26;;;;:14;:26;;;;;;:85;;:26;:85;:::i;:::-;-1:-1:-1;11133:10:0;11116:28;;;;:16;:28;;;;;:38;;11148:6;;11116:28;:38;;11148:6;;11116:38;:::i;:::-;;;;-1:-1:-1;;11180:10:0;11165:26;;;;:14;:26;;;;;;;:33;;-1:-1:-1;;11165:33:0;11194:4;11165:33;;;11218:19;;;;;11230:6;1784:25:1;;1772:2;1757:18;;1638:177;11218:19:0;;;;;;;;10367:878;10307:938;;:::o;13510:1433::-;13563:7;13583:14;13629:3;;13611:15;:21;13608:42;;;-1:-1:-1;13646:1:0;13608:42;13692:8;;13688:12;;:1;:12;:::i;:::-;13682:3;;:18;;;;:::i;:::-;13663:15;:37;13660:57;;-1:-1:-1;13713:1:0;13660:57;13759:8;;13755:12;;:1;:12;:::i;:::-;13749:3;;:18;;;;:::i;:::-;13730:15;:37;13727:57;;-1:-1:-1;13780:1:0;13727:57;13826:8;;13822:12;;:1;:12;:::i;:::-;13816:3;;:18;;;;:::i;:::-;13797:15;:37;13794:57;;-1:-1:-1;13847:1:0;13794:57;13893:8;;13889:12;;:1;:12;:::i;:::-;13883:3;;:18;;;;:::i;:::-;13864:15;:37;13861:57;;-1:-1:-1;13914:1:0;13861:57;13960:8;;13956:12;;:1;:12;:::i;:::-;13950:3;;:18;;;;:::i;:::-;13931:15;:37;13928:57;;-1:-1:-1;13981:1:0;13928:57;14027:8;;14023:12;;:1;:12;:::i;:::-;14017:3;;:18;;;;:::i;:::-;13998:15;:37;13995:57;;-1:-1:-1;14048:1:0;13995:57;14094:8;;14090:12;;:1;:12;:::i;:::-;14084:3;;:18;;;;:::i;:::-;14065:15;:37;14062:57;;-1:-1:-1;14115:1:0;14062:57;14161:8;;14157:12;;:1;:12;:::i;:::-;14151:3;;:18;;;;:::i;:::-;14132:15;:37;14129:57;;-1:-1:-1;14182:1:0;14129:57;14228:8;;14224:12;;:1;:12;:::i;:::-;14218:3;;:18;;;;:::i;:::-;14199:15;:37;14196:57;;-1:-1:-1;14249:1:0;14196:57;14296:8;;14291:13;;:2;:13;:::i;:::-;14285:3;;:19;;;;:::i;:::-;14266:15;:38;14263:59;;-1:-1:-1;14317:2:0;14263:59;14365:8;;14360:13;;:2;:13;:::i;:::-;14354:3;;:19;;;;:::i;:::-;14335:15;:38;14332:59;;-1:-1:-1;14386:2:0;14332:59;14434:8;;14429:13;;:2;:13;:::i;:::-;14423:3;;:19;;;;:::i;:::-;14404:15;:38;14401:59;;-1:-1:-1;14455:2:0;14401:59;14503:8;;14498:13;;:2;:13;:::i;:::-;14492:3;;:19;;;;:::i;:::-;14473:15;:38;14470:59;;-1:-1:-1;14524:2:0;14470:59;14572:8;;14567:13;;:2;:13;:::i;:::-;14561:3;;:19;;;;:::i;:::-;14542:15;:38;14539:59;;-1:-1:-1;14593:2:0;14539:59;14641:8;;14636:13;;:2;:13;:::i;:::-;14630:3;;:19;;;;:::i;:::-;14611:15;:38;14608:59;;-1:-1:-1;14662:2:0;14608:59;14710:8;;14705:13;;:2;:13;:::i;:::-;14699:3;;:19;;;;:::i;:::-;14680:15;:38;14677:59;;-1:-1:-1;14731:2:0;14677:59;14779:8;;14774:13;;:2;:13;:::i;:::-;14768:3;;:19;;;;:::i;:::-;14749:15;:38;14746:59;;-1:-1:-1;14800:2:0;14746:59;14848:8;;14843:13;;:2;:13;:::i;:::-;14837:3;;:19;;;;:::i;:::-;14818:15;:38;14815:59;;-1:-1:-1;14869:2:0;14815:59;14887:3;;14894:1;14887:8;14884:28;;-1:-1:-1;14908:1:0;14884:28;14929:6;13510:1433;-1:-1:-1;13510:1433:0:o;7168:135::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;7245:15:::1;:22:::0;7278:11:::1;:17:::0;;-1:-1:-1;;7278:17:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7168:135::o;7063:97::-;7105:7;7146:6;7132:11;:9;:11::i;:::-;:20;;;;:::i;7506:73::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;7557:7:::1;:14:::0;;-1:-1:-1;;;;7557:14:0::1;-1:-1:-1::0;;;7557:14:0::1;::::0;;7506:73::o;21961:496::-;22007:7;22027:15;22057:11;:9;:11::i;:::-;22072:1;22057:16;22054:76;;22111:17;;22087:12;;:21;;22102:6;22087:21;:::i;:::-;:41;;;;:::i;:::-;22077:51;;22054:76;22143:11;:9;:11::i;:::-;22158:1;22143:16;22140:76;;22197:17;;22173:12;;:21;;22188:6;22173:21;:::i;:::-;:41;;;;:::i;:::-;22163:51;;22140:76;22229:11;:9;:11::i;:::-;22244:1;22229:16;22226:76;;22283:17;;22259:12;;:21;;22274:6;22259:21;:::i;:::-;:41;;;;:::i;:::-;22249:51;;22226:76;22315:11;:9;:11::i;:::-;22330:1;22315:16;22312:76;;22369:17;;22345:12;;:21;;22360:6;22345:21;:::i;:::-;:41;;;;:::i;:::-;22335:51;;22312:76;22408:16;22418:6;22408:7;:16;:::i;852:192::-;675:7;702:6;-1:-1:-1;;;;;702:6:0;237:10;764:23;756:68;;;;-1:-1:-1;;;756:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;941:22:0;::::1;933:73;;;::::0;-1:-1:-1;;;933:73:0;;17078:2:1;933:73:0::1;::::0;::::1;17060:21:1::0;17117:2;17097:18;;;17090:30;17156:34;17136:18;;;17129:62;-1:-1:-1;;;17207:18:1;;;17200:36;17253:19;;933:73:0::1;16876:402:1::0;933:73:0::1;1017:19;1027:8;1017:9;:19::i;:::-;852:192:::0;:::o;17831:436::-;17907:7;17927:17;17959:2;17965:1;17959:7;17955:60;;-1:-1:-1;;;;;;17982:31:0;;;;;;:22;:31;;;;;;17955:60;18029:2;18035:1;18029:7;18025:63;;-1:-1:-1;;;;;;18052:34:0;;;;;;:25;:34;;;;;;18025:63;18102:2;18108:1;18102:7;18098:64;;-1:-1:-1;;;;;;18125:35:0;;;;;;:26;:35;;;;;;18098:64;18176:2;18182:1;18176:7;18172:59;;-1:-1:-1;;;;;;;;18199:30:0;;;;;:21;:30;;;;;;;17831:436::o;11913:848::-;11986:13;12001;12016;12031;12058:11;:9;:11::i;:::-;12073:1;12058:16;12055:130;;12137:6;12128;12114:11;:9;:11::i;:::-;:20;;;;:::i;:::-;:29;;;;:::i;:::-;-1:-1:-1;;;;;12078:32:0;;;;;;:24;:32;;;;;:65;;:32;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;12176:6:0;;-1:-1:-1;12167:6:0;12153:11;:9;:11::i;:::-;:20;;;;:::i;:::-;:29;;;;:::i;:::-;12145:37;;12055:130;12198:11;:9;:11::i;:::-;12213:1;12198:16;12195:134;;12280:6;12271;12257:11;:9;:11::i;:::-;:20;;;;:::i;:::-;:29;;;;:::i;:::-;-1:-1:-1;;;;;12218:35:0;;;;;;:27;:35;;;;;:68;;:35;;;:68;;;;;:::i;:::-;;;;-1:-1:-1;12320:6:0;;-1:-1:-1;12311:6:0;12297:11;:9;:11::i;:::-;:20;;;;:::i;:::-;:29;;;;:::i;:::-;12289:37;;12195:134;12342:11;:9;:11::i;:::-;12357:1;12342:16;12339:133;;12425:6;12416;12402:11;:9;:11::i;:::-;:20;;;;:::i;:::-;:29;;;;:::i;:::-;-1:-1:-1;;;;;12362:36:0;;;;;;:28;:36;;;;;:69;;:36;;;:69;;;;;:::i;:::-;;;;-1:-1:-1;12464:6:0;;-1:-1:-1;12455:6:0;12441:11;:9;:11::i;:::-;:20;;;;:::i;:::-;:29;;;;:::i;:::-;12433:37;;12339:133;12485:11;:9;:11::i;:::-;12500:1;12485:16;12482:128;;12563:6;12554;12540:11;:9;:11::i;:::-;:20;;;;:::i;:::-;:29;;;;:::i;:::-;-1:-1:-1;;;;;12505:31:0;;;;;;:23;:31;;;;;:64;;:31;;;:64;;;;;:::i;:::-;;;;-1:-1:-1;12602:6:0;;-1:-1:-1;12593:6:0;12579:11;:9;:11::i;:::-;:20;;;;:::i;:::-;:29;;;;:::i;:::-;12571:37;;12482:128;12678:5;12670;12654:13;12662:5;12654;:13;:::i;:::-;:21;;;;:::i;:::-;:29;;;;:::i;:::-;-1:-1:-1;;;;;12622:28:0;;;;;;:20;:28;;;;;:61;;:28;;;:61;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;12725:28:0;;;;;;;:20;:28;;;;;;;;;12694:20;:28;;;;;;:59;-1:-1:-1;;;;11913:848:0:o;8849:663::-;8910:11;:9;:11::i;:::-;8925:1;8910:16;8907:142;;8969:6;8949:17;;:26;;;;:::i;:::-;8929:17;:46;9006:12;;:21;;9021:6;9006:21;:::i;:::-;8985:17;;:42;;8977:70;;;;-1:-1:-1;;;8977:70:0;;;;;;;:::i;:::-;9062:11;:9;:11::i;:::-;9077:1;9062:16;9059:142;;9121:6;9101:17;;:26;;;;:::i;:::-;9081:17;:46;9158:12;;:21;;9173:6;9158:21;:::i;:::-;9137:17;;:42;;9129:70;;;;-1:-1:-1;;;9129:70:0;;;;;;;:::i;:::-;9214:11;:9;:11::i;:::-;9229:1;9214:16;9211:142;;9273:6;9253:17;;:26;;;;:::i;:::-;9233:17;:46;9310:12;;:21;;9325:6;9310:21;:::i;:::-;9289:17;;:42;;9281:70;;;;-1:-1:-1;;;9281:70:0;;;;;;;:::i;:::-;9366:11;:9;:11::i;:::-;9381:1;9366:16;9363:142;;9425:6;9405:17;;:26;;;;:::i;:::-;9385:17;:46;9462:12;;:21;;9477:6;9462:21;:::i;:::-;9441:17;;:42;;9433:70;;;;-1:-1:-1;;;9433:70:0;;;;;;;:::i;7869:972::-;7949:11;:9;:11::i;:::-;7964:1;7949:16;7946:208;;8019:3;;-1:-1:-1;;;;;7986:20:0;;;;;;:12;:20;;;;;;:29;;8009:6;;7986:29;:::i;:::-;:36;;7978:78;;;;-1:-1:-1;;;7978:78:0;;;;;;;:::i;:::-;8085:3;;8075:6;:13;;:26;;;-1:-1:-1;8092:9:0;;;;;;;8075:26;8067:84;;;;-1:-1:-1;;;8067:84:0;;;;;;;:::i;:::-;8165:11;:9;:11::i;:::-;8180:1;8165:16;8162:208;;8235:3;;-1:-1:-1;;;;;8202:20:0;;;;;;:12;:20;;;;;;:29;;8225:6;;8202:29;:::i;:::-;:36;;8194:78;;;;-1:-1:-1;;;8194:78:0;;;;;;;:::i;:::-;8301:3;;8291:6;:13;;:26;;;-1:-1:-1;8308:9:0;;;;;;;8291:26;8283:84;;;;-1:-1:-1;;;8283:84:0;;;;;;;:::i;:::-;8381:11;:9;:11::i;:::-;8396:1;8381:16;8378:208;;8451:3;;-1:-1:-1;;;;;8418:20:0;;;;;;:12;:20;;;;;;:29;;8441:6;;8418:29;:::i;:::-;:36;;8410:78;;;;-1:-1:-1;;;8410:78:0;;;;;;;:::i;:::-;8517:3;;8507:6;:13;;:26;;;-1:-1:-1;8524:9:0;;;;;;;8507:26;8499:84;;;;-1:-1:-1;;;8499:84:0;;;;;;;:::i;:::-;8597:11;:9;:11::i;:::-;8612:1;8597:16;8594:208;;8667:3;;-1:-1:-1;;;;;8634:20:0;;;;;;:12;:20;;;;;;:29;;8657:6;;8634:29;:::i;:::-;:36;;8626:78;;;;-1:-1:-1;;;8626:78:0;;;;;;;:::i;:::-;8733:3;;8723:6;:13;;:26;;;-1:-1:-1;8740:9:0;;;;;;;8723:26;8715:84;;;;-1:-1:-1;;;8715:84:0;;;;;;;:::i;:::-;8812:21;8826:6;8812:13;:21::i;19481:135::-;19552:7;;19524;;-1:-1:-1;;;19552:7:0;;;;19544:35;;;;-1:-1:-1;;;19544:35:0;;;;;;;:::i;:::-;-1:-1:-1;19597:11:0;;;19481:135::o;16789:279::-;16836:17;:15;:17::i;:::-;16833:228;;;16857:31;16868:4;16873;16878;16883;16857:10;:31::i;:::-;16904:10;16890:25;;;;:13;:25;;;;;:32;;-1:-1:-1;;16890:32:0;16918:4;16890:32;;;16789:279::o;16833:228::-;16944:16;:14;:16::i;:::-;13483:10;13449:4;13473:21;;;:9;:21;;;;;;;;16976:13;:39;;;;;17012:3;;16993:15;:22;;16976:39;16973:81;;;17032:10;:8;:10::i;:::-;16789:279::o;6599:456::-;6642:7;6664:13;6693:11;:9;:11::i;:::-;6708:1;6693:16;6690:60;;-1:-1:-1;6721:26:0;6690:60;6763:11;:9;:11::i;:::-;6778:1;6763:16;6760:60;;-1:-1:-1;6791:26:0;6760:60;6833:11;:9;:11::i;:::-;6848:1;6833:16;6830:60;;-1:-1:-1;6861:26:0;6830:60;6903:11;:9;:11::i;:::-;6918:1;6903:16;6900:60;;-1:-1:-1;6931:26:0;6900:60;6974:11;;;;6971:42;;;-1:-1:-1;;6996:15:0;;;6599:456::o;1052:173::-;1108:16;1127:6;;-1:-1:-1;;;;;1144:17:0;;;-1:-1:-1;;;;;;1144:17:0;;;;;;1177:40;;1127:6;;;;;;;1177:40;;1108:16;1177:40;1097:128;1052:173;:::o;9615:320::-;9677:11;:9;:11::i;:::-;9692:1;9677:16;9674:55;;9708:10;9695:24;;;;:12;:24;;;;;:34;;9723:6;;9695:24;:34;;9723:6;;9695:34;:::i;:::-;;;;-1:-1:-1;;9674:55:0;9743:11;:9;:11::i;:::-;9758:1;9743:16;9740:55;;9774:10;9761:24;;;;:12;:24;;;;;:34;;9789:6;;9761:24;:34;;9789:6;;9761:34;:::i;:::-;;;;-1:-1:-1;;9740:55:0;9809:11;:9;:11::i;:::-;9824:1;9809:16;9806:55;;9840:10;9827:24;;;;:12;:24;;;;;:34;;9855:6;;9827:24;:34;;9855:6;;9827:34;:::i;:::-;;;;-1:-1:-1;;9806:55:0;9875:11;:9;:11::i;:::-;9890:1;9875:16;9872:55;;9906:10;9893:24;;;;:12;:24;;;;;:34;;9921:6;;9893:24;:34;;9921:6;;9893:34;:::i;:::-;;;;-1:-1:-1;;9615:320:0;:::o;12769:136::-;13483:10;12819:4;13473:21;;;:9;:21;;;;;;;;12842:13;:55;;;;-1:-1:-1;12889:8:0;;12884:13;;:2;:13;:::i;:::-;12878:3;;:19;;;;:::i;:::-;12859:15;:38;;12835:62;;12769:136;:::o;12913:481::-;13004:3;13001:82;;;13070:10;13046:35;;;;:23;:35;;;;;;;;;13010:21;:33;;;;;;:71;13001:82;13096:6;13093:95;;;13175:10;13146:40;;;;:28;:40;;;;;;;;;13105:26;:38;;;;;;:81;13093:95;13201:5;13198:92;;;13277:10;13249:39;;;;:27;:39;;;;;;;;;13209:25;:37;;;;;;:79;13198:92;13303:6;13300:87;;;13374:10;13349:36;;;;:24;:36;;;;;;;;;13312:22;:34;;;;;;:73;12913:481;;;;:::o;15747:1034::-;15821:1;15796:22;:20;:22::i;:::-;:26;15793:225;;;15826:34;15837:4;15842:5;15848;15854;15826:10;:34::i;:::-;15793:225;;;16004:10;15985:30;;;;:18;:30;;;;;;15959:22;:20;:22::i;:::-;15952:29;;15953:2;15952:29;:::i;:::-;15931:10;15907:35;;;;:23;:35;;;;;;:41;;15945:3;;15907:41;:::i;:::-;:75;;;;:::i;:::-;:108;;;;:::i;:::-;15892:10;15870:33;;;;:21;:33;;;;;:146;15793:225;16057:1;16031:22;:20;:22::i;:::-;:27;16028:235;;16062:33;16073:4;16078;16083:5;16089;16062:10;:33::i;:::-;16028:235;;;16249:10;16230:30;;;;:18;:30;;;;;;16204:22;:20;:22::i;:::-;16197:29;;16198:2;16197:29;:::i;:::-;16176:10;16147:40;;;;:28;:40;;;;;;:46;;16190:3;;16147:46;:::i;:::-;:80;;;;:::i;:::-;:113;;;;:::i;:::-;16132:10;16105:38;;;;:26;:38;;;;;:156;16028:235;16302:1;16276:22;:20;:22::i;:::-;:27;16273:232;;16307:32;16318:4;16323;16328;16333:5;16307:10;:32::i;:::-;16273:232;;;16491:10;16472:30;;;;:18;:30;;;;;;16446:22;:20;:22::i;:::-;16439:29;;16440:2;16439:29;:::i;:::-;16418:10;16390:39;;;;:27;:39;;;;;;:45;;16432:3;;16390:45;:::i;:::-;:79;;;;:::i;:::-;:112;;;;:::i;:::-;16375:10;16349:37;;;;:25;:37;;;;;:154;16273:232;16544:2;16518:22;:20;:22::i;:::-;:28;16515:259;;16550:31;16561:4;16566;16571;16576;16550:10;:31::i;16515:259::-;16760:10;16741:30;;;;:18;:30;;;;;;16715:22;:20;:22::i;:::-;16709:28;;16710:1;16709:28;:::i;:::-;16688:10;16663:36;;;;:24;:36;;;;;;:42;;16702:3;;16663:42;:::i;:::-;:75;;;;:::i;:::-;:108;;;;:::i;:::-;16648:10;16625:34;;;;:22;:34;;;;;:147;15747:1034::o;17076:747::-;17178:10;17153:36;;;;:24;:36;;;;;;:42;;17192:3;;17153:42;:::i;:::-;:47;;17198:2;17153:47;:::i;:::-;17139:10;17116:34;;;;:22;:34;;;;;;;;:84;;;;17251:27;:39;;;;:45;;17293:3;;17251:45;:::i;:::-;:50;;17299:2;17251:50;:::i;:::-;17237:10;17211:37;;;;:25;:37;;;;;;;;:90;;;;17353:28;:40;;;;:46;;17396:3;;17353:46;:::i;:::-;:51;;17402:2;17353:51;:::i;:::-;17339:10;17312:38;;;;:26;:38;;;;;;;;:92;;;;17451:23;:35;;;;:41;;17489:3;;17451:41;:::i;:::-;:46;;17495:2;17451:46;:::i;:::-;17437:10;17415:33;;;;:21;:33;;;;;;;;:82;;;17541:22;:34;;;;;;17508:18;:30;;;;;:67;17619:25;:37;;;;;;17586:18;:30;;;;;:70;17700:26;:38;;;;;;17667:18;:30;;;;;:71;17782:33;;17749:18;:30;;;;;;:66;17076:747::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;192:254;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:1:o;451:186::-;510:6;563:2;551:9;542:7;538:23;534:32;531:52;;;579:1;576;569:12;531:52;602:29;621:9;602:29;:::i;642:548::-;754:4;783:2;812;801:9;794:21;844:6;838:13;887:6;882:2;871:9;867:18;860:34;912:1;922:140;936:6;933:1;930:13;922:140;;;1031:14;;;1027:23;;1021:30;997:17;;;1016:2;993:26;986:66;951:10;;922:140;;;926:3;1111:1;1106:2;1097:6;1086:9;1082:22;1078:31;1071:42;1181:2;1174;1170:7;1165:2;1157:6;1153:15;1149:29;1138:9;1134:45;1130:54;1122:62;;;;642:548;;;;:::o;1195:118::-;1281:5;1274:13;1267:21;1260:5;1257:32;1247:60;;1303:1;1300;1293:12;1318:315;1383:6;1391;1444:2;1432:9;1423:7;1419:23;1415:32;1412:52;;;1460:1;1457;1450:12;1412:52;1483:29;1502:9;1483:29;:::i;:::-;1473:39;;1562:2;1551:9;1547:18;1534:32;1575:28;1597:5;1575:28;:::i;:::-;1622:5;1612:15;;;1318:315;;;;;:::o;2012:180::-;2071:6;2124:2;2112:9;2103:7;2099:23;2095:32;2092:52;;;2140:1;2137;2130:12;2092:52;-1:-1:-1;2163:23:1;;2012:180;-1:-1:-1;2012:180:1:o;2197:241::-;2253:6;2306:2;2294:9;2285:7;2281:23;2277:32;2274:52;;;2322:1;2319;2312:12;2274:52;2361:9;2348:23;2380:28;2402:5;2380:28;:::i;2443:864::-;2538:6;2546;2554;2562;2570;2623:3;2611:9;2602:7;2598:23;2594:33;2591:53;;;2640:1;2637;2630:12;2591:53;2679:9;2666:23;2698:28;2720:5;2698:28;:::i;:::-;2745:5;-1:-1:-1;2801:2:1;2786:18;;2773:32;2824:18;2854:14;;;2851:34;;;2881:1;2878;2871:12;2851:34;2919:6;2908:9;2904:22;2894:32;;2964:7;2957:4;2953:2;2949:13;2945:27;2935:55;;2986:1;2983;2976:12;2935:55;3026:2;3013:16;3052:2;3044:6;3041:14;3038:34;;;3068:1;3065;3058:12;3038:34;3113:7;3108:2;3099:6;3095:2;3091:15;3087:24;3084:37;3081:57;;;3134:1;3131;3124:12;3081:57;3165:2;3161;3157:11;3147:21;;3187:6;3177:16;;;;;3212:38;3246:2;3235:9;3231:18;3212:38;:::i;:::-;2443:864;;;;-1:-1:-1;2443:864:1;;3297:2;3282:18;3269:32;;2443:864;-1:-1:-1;;2443:864:1:o;3312:376::-;3374:6;3382;3435:2;3423:9;3414:7;3410:23;3406:32;3403:52;;;3451:1;3448;3441:12;3403:52;3490:9;3477:23;3509:28;3531:5;3509:28;:::i;3693:254::-;3761:6;3769;3822:2;3810:9;3801:7;3797:23;3793:32;3790:52;;;3838:1;3835;3828:12;3790:52;3874:9;3861:23;3851:33;;3903:38;3937:2;3926:9;3922:18;3903:38;:::i;:::-;3893:48;;3693:254;;;;;:::o;3952:248::-;4020:6;4028;4081:2;4069:9;4060:7;4056:23;4052:32;4049:52;;;4097:1;4094;4087:12;4049:52;-1:-1:-1;;4120:23:1;;;4190:2;4175:18;;;4162:32;;-1:-1:-1;3952:248:1:o;4205:309::-;4270:6;4278;4331:2;4319:9;4310:7;4306:23;4302:32;4299:52;;;4347:1;4344;4337:12;4299:52;4386:9;4373:23;4405:28;4427:5;4405:28;:::i;4519:383::-;4593:6;4601;4609;4662:2;4650:9;4641:7;4637:23;4633:32;4630:52;;;4678:1;4675;4668:12;4630:52;4717:9;4704:23;4736:28;4758:5;4736:28;:::i;:::-;4783:5;-1:-1:-1;4835:2:1;4820:18;;4807:32;;-1:-1:-1;4858:38:1;4892:2;4877:18;;4858:38;:::i;:::-;4848:48;;4519:383;;;;;:::o;5115:356::-;5317:2;5299:21;;;5336:18;;;5329:30;5395:34;5390:2;5375:18;;5368:62;5462:2;5447:18;;5115:356::o;5476:380::-;5555:1;5551:12;;;;5598;;;5619:61;;5673:4;5665:6;5661:17;5651:27;;5619:61;5726:2;5718:6;5715:14;5695:18;5692:38;5689:161;;5772:10;5767:3;5763:20;5760:1;5753:31;5807:4;5804:1;5797:15;5835:4;5832:1;5825:15;5689:161;;5476:380;;;:::o;6140:245::-;6207:6;6260:2;6248:9;6239:7;6235:23;6231:32;6228:52;;;6276:1;6273;6266:12;6228:52;6308:9;6302:16;6327:28;6349:5;6327:28;:::i;6390:340::-;6592:2;6574:21;;;6631:2;6611:18;;;6604:30;-1:-1:-1;;;6665:2:1;6650:18;;6643:46;6721:2;6706:18;;6390:340::o;7095:127::-;7156:10;7151:3;7147:20;7144:1;7137:31;7187:4;7184:1;7177:15;7211:4;7208:1;7201:15;7227:168;7300:9;;;7331;;7348:15;;;7342:22;;7328:37;7318:71;;7369:18;;:::i;7400:127::-;7461:10;7456:3;7452:20;7449:1;7442:31;7492:4;7489:1;7482:15;7516:4;7513:1;7506:15;7658:545;7760:2;7755:3;7752:11;7749:448;;;7796:1;7821:5;7817:2;7810:17;7866:4;7862:2;7852:19;7936:2;7924:10;7920:19;7917:1;7913:27;7907:4;7903:38;7972:4;7960:10;7957:20;7954:47;;;-1:-1:-1;7995:4:1;7954:47;8050:2;8045:3;8041:12;8038:1;8034:20;8028:4;8024:31;8014:41;;8105:82;8123:2;8116:5;8113:13;8105:82;;;8168:17;;;8149:1;8138:13;8105:82;;;8109:3;;;7658:545;;;:::o;8379:1206::-;8503:18;8498:3;8495:27;8492:53;;;8525:18;;:::i;:::-;8554:94;8644:3;8604:38;8636:4;8630:11;8604:38;:::i;:::-;8598:4;8554:94;:::i;:::-;8674:1;8699:2;8694:3;8691:11;8716:1;8711:616;;;;9371:1;9388:3;9385:93;;;-1:-1:-1;9444:19:1;;;9431:33;9385:93;-1:-1:-1;;8336:1:1;8332:11;;;8328:24;8324:29;8314:40;8360:1;8356:11;;;8311:57;9491:78;;8684:895;;8711:616;7605:1;7598:14;;;7642:4;7629:18;;-1:-1:-1;;8747:17:1;;;8848:9;8870:229;8884:7;8881:1;8878:14;8870:229;;;8973:19;;;8960:33;8945:49;;9080:4;9065:20;;;;9033:1;9021:14;;;;8900:12;8870:229;;;8874:3;9127;9118:7;9115:16;9112:159;;;9251:1;9247:6;9241:3;9235;9232:1;9228:11;9224:21;9220:34;9216:39;9203:9;9198:3;9194:19;9181:33;9177:79;9169:6;9162:95;9112:159;;;9314:1;9308:3;9305:1;9301:11;9297:19;9291:4;9284:33;8684:895;;8379:1206;;;:::o;9590:125::-;9655:9;;;9676:10;;;9673:36;;;9689:18;;:::i;9720:184::-;9790:6;9843:2;9831:9;9822:7;9818:23;9814:32;9811:52;;;9859:1;9856;9849:12;9811:52;-1:-1:-1;9882:16:1;;9720:184;-1:-1:-1;9720:184:1:o;9909:217::-;9949:1;9975;9965:132;;10019:10;10014:3;10010:20;10007:1;10000:31;10054:4;10051:1;10044:15;10082:4;10079:1;10072:15;9965:132;-1:-1:-1;10111:9:1;;9909:217::o;11166:128::-;11233:9;;;11254:11;;;11251:37;;;11268:18;;:::i;13799:422::-;13888:1;13931:5;13888:1;13945:270;13966:7;13956:8;13953:21;13945:270;;;14025:4;14021:1;14017:6;14013:17;14007:4;14004:27;14001:53;;;14034:18;;:::i;:::-;14084:7;14074:8;14070:22;14067:55;;;14104:16;;;;14067:55;14183:22;;;;14143:15;;;;13945:270;;;13949:3;13799:422;;;;;:::o;14226:806::-;14275:5;14305:8;14295:80;;-1:-1:-1;14346:1:1;14360:5;;14295:80;14394:4;14384:76;;-1:-1:-1;14431:1:1;14445:5;;14384:76;14476:4;14494:1;14489:59;;;;14562:1;14557:130;;;;14469:218;;14489:59;14519:1;14510:10;;14533:5;;;14557:130;14594:3;14584:8;14581:17;14578:43;;;14601:18;;:::i;:::-;-1:-1:-1;;14657:1:1;14643:16;;14672:5;;14469:218;;14771:2;14761:8;14758:16;14752:3;14746:4;14743:13;14739:36;14733:2;14723:8;14720:16;14715:2;14709:4;14706:12;14702:35;14699:77;14696:159;;;-1:-1:-1;14808:19:1;;;14840:5;;14696:159;14887:34;14912:8;14906:4;14887:34;:::i;:::-;14957:6;14953:1;14949:6;14945:19;14936:7;14933:32;14930:58;;;14968:18;;:::i;:::-;15006:20;;14226:806;-1:-1:-1;;;14226:806:1:o;15037:131::-;15097:5;15126:36;15153:8;15147:4;15126:36;:::i;15519:1352::-;15645:3;15639:10;15672:18;15664:6;15661:30;15658:56;;;15694:18;;:::i;:::-;15723:97;15813:6;15773:38;15805:4;15799:11;15773:38;:::i;:::-;15767:4;15723:97;:::i;:::-;15875:4;;15939:2;15928:14;;15956:1;15951:663;;;;16658:1;16675:6;16672:89;;;-1:-1:-1;16727:19:1;;;16721:26;16672:89;-1:-1:-1;;8336:1:1;8332:11;;;8328:24;8324:29;8314:40;8360:1;8356:11;;;8311:57;16774:81;;15921:944;;15951:663;7605:1;7598:14;;;7642:4;7629:18;;-1:-1:-1;;15987:20:1;;;16105:236;16119:7;16116:1;16113:14;16105:236;;;16208:19;;;16202:26;16187:42;;16300:27;;;;16268:1;16256:14;;;;16135:19;;16105:236;;;16109:3;16369:6;16360:7;16357:19;16354:201;;;16430:19;;;16424:26;-1:-1:-1;;16513:1:1;16509:14;;;16525:3;16505:24;16501:37;16497:42;16482:58;16467:74;;16354:201;-1:-1:-1;;;;;16601:1:1;16585:14;;;16581:22;16568:36;;-1:-1:-1;15519:1352:1:o;17283:340::-;17485:2;17467:21;;;17524:2;17504:18;;;17497:30;-1:-1:-1;;;17558:2:1;17543:18;;17536:46;17614:2;17599:18;;17283:340::o;17628:354::-;17830:2;17812:21;;;17869:2;17849:18;;;17842:30;17908:32;17903:2;17888:18;;17881:60;17973:2;17958:18;;17628:354::o;17987:410::-;18189:2;18171:21;;;18228:2;18208:18;;;18201:30;18267:34;18262:2;18247:18;;18240:62;-1:-1:-1;;;18333:2:1;18318:18;;18311:44;18387:3;18372:19;;17987:410::o
Swarm Source
ipfs://db64a8749f058be43f7f71c63613efaea59c09cc04a47c87b0696a241c2c7e0b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.