Overview
S Balance
0 S
S Value
-More Info
Private Name Tags
ContractCreator
Latest 6 from a total of 6 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Call Finalize Fa... | 2216296 | 5 hrs ago | IN | 0 S | 0.0065923 | ||||
Create Presale F... | 2215034 | 5 hrs ago | IN | 0 S | 0.00629951 | ||||
Transfer Ownersh... | 2064195 | 47 hrs ago | IN | 0 S | 0.00003304 | ||||
Change Voter Add... | 2064168 | 47 hrs ago | IN | 0 S | 0.00003043 | ||||
Add Router | 2063530 | 47 hrs ago | IN | 0 S | 0.00010253 | ||||
Change Voter Add... | 1302600 | 10 days ago | IN | 0 S | 0.00005208 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
2215034 | 5 hrs ago | 0 S |
Loading...
Loading
Contract Name:
MainDeployerFair
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.17; //pragma experimental ABIEncoderV2; //import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; //import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/UniswapFactory.sol"; //import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/UniswapPair.sol"; //import "https://github.com/pancakeswap/pancake-swap-periphery/blob/master/contracts/interfaces/UniswapRouter02.sol"; interface ERC20 { function transfer(address to, uint256 value) external returns(bool); function approve(address spender, uint256 value) external returns(bool); function transferFrom(address from, address to, uint256 value) external returns(bool); function totalSupply() external view returns(uint256); function balanceOf(address who) external view returns(uint256); function allowance(address owner, address spender) external view returns(uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface UniswapRouter02 { function WETH() external pure returns(address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns(uint amountToken, uint amountETH, uint liquidity); function factory() external pure returns(address); } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns(uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns(uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns(uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns(uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns(uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b != 0, errorMessage); return a % b; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; address public voter; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } modifier onlyVoter() { require(msg.sender == voter); _; } /** * @dev Allows the current owner to relinquish control of the contract. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } contract Consts { uint constant TOKEN_DECIMALS = 18; uint8 constant TOKEN_DECIMALS_UINT8 = 18; uint constant TOKEN_DECIMAL_MULTIPLIER = 10 ** TOKEN_DECIMALS; address public feeContract; uint256 airdrop_fees_Percentage = 2; uint256 constant minLockTime = 600; // 10 mins for degen } interface RouterContractInterface { function Approve() external returns(bool); function getpair(address token) external view returns(address); function AddLiquidity(uint256 amountTokenDesired) external payable; //function AddLiquidity() external payable; function refundUniLP(address _routerAddress) external payable; function refundUniLPbyPlatform(address _routerAddress) external payable; function uniBalance(address token) external view returns(uint256); } interface RouterDappInterface { function createRouter(address _tokenAddress, address _creatorAdress, uint256 _locktime, address routerAddressInput, uint256 _extraAmount) external returns (address); } interface StorageContractInterface { //function CreatePresaleStorage(string[10] memory _tokenInfo, address tokenAddr, uint256 _lp_locked, address _creator, bool[3] memory _nftIdoFair) external returns(bool); function CreatePresaleStorage(address tokenAddr,uint256 _lp_locked, address _creator, bool[3] memory _nftIdoFair) external returns(bool); function addPresaleAddr(string[10] memory _tokenInfo, address _presale, address _creator, uint256 _presaleNum) external returns(bool); function fetchPresaleNumByOwner(address _creator) external returns(uint256); function fetchTokenAddrLiqLockTime(address _creator, uint256 _presaleNum) external view returns(address,uint256); function addRouterAddr(address _router, address _creator, uint256 _presaleNum) external returns(bool); function fetchPresaleStruct(address _creator, uint256 _presaleNum) external view returns(address,address,address); function setPresaleActiveFalse(address _creator, uint256 _presaleNum) external returns(bool); function setPresaleFilter(address _creator, uint256 _presaleNum) external returns(bool); function fetchPresaleAddress(address _creator, uint256 _presaleNum) external view returns(address); function fetchVoterCallData(address _creator, uint256 _presaleNum) external view returns(address,address); function addFailFilter(address _creator, uint256 _presaleNum) external; } interface PresaleDappInterface { function CreatePresaleFair(address[4] memory presaleAddressInput_Router, uint256[2] memory start_end_time, uint256[5] memory softcap_preAmnt_uniAmnt_min_max_eth, uint256 uniPercentage, uint256[2] memory extraAmountPer_lockTime) external returns(address); } interface PresaleContractInterface { function uniswapPercentage() external returns(uint256); function uniAmount() external returns(uint256); function CheckTotalEthRaised() external view returns(uint256); function CheckSoftCap() external view returns(uint256); function mintForPlatform(address _platform, address _referrer, uint256 _refPer, bool tokenFeeToRef) external returns(bool); function mintForUniswap(address _routerAddr) external; function finalize(address[2] memory __finalizeInfo, uint256 refPer, bool validFinalize) external returns(uint256); function finalizeAnytime(address[3] memory __finalizeInfo, bool validFinalize) external returns(uint256); function enableWhitelist() external; function disableWhitelist() external; function addToWhitelist(address WhitelistAddress) external; function removeFromWhitelist(address WhitelistAddress) external; } interface ReferralContract { function getDiscountedPrice(string memory _code) external returns(uint256); function validateCode(string memory _code) external returns(bool); function fetchCodeOwner(string memory _code) external returns(address); function fetchCodeOwnerPercentage(string memory _code) external returns(uint256); function updateReferrerAmounts(address _referrer, uint256 _updateAmount) external returns(bool); function updateCodeUseNumber(string memory _code, address _presaleAddress) external returns(bool); } interface FeeCheckContractInterface { function getFees(string memory _dappName) external view returns(uint256); function getWhitelistFees(string memory _dappWhitelistName) external view returns(uint256); } interface FeeDepositContractInterface { function payment(uint256 _dappNum) external payable; } contract MainDeployerFair is Consts, Ownable { // uint256 public presaleFees = 1 * (10**18); // 1 ETH // uint256 public whitelistFees = 0.9 * (10**18); // 0.9 ETH uint public minUniPercentage = 50; //minimum 50% has to go for uniswap lock address public presaleDappAddr; address public referralDappAddr; //address public FilterAddress; address public storageContract; address public feeCheckContract; uint256 public totalRaisedOnPlatform; uint256 public totalRefundedFromPlatform; uint256 public deltaStartEndTime = 2592000; string public dappName = "fairDeployer"; string public dappFeeName = "fairPresaleFees"; string public dappWhitelistFeeName = "fairWhitelistFees"; uint256 public tokenFee; bool public referralDisabled; bool public tokenFeeToReferrer; bool public activeFalse = true; bool public filter = true; // address public UNISWAP_ADDRESS = 0xc0fFee0000C824D24E0F280f1e4D21152625742b; //Koffeeswap Address // address public factoryAddress = 0xC0fFeE00000e1439651C6aD025ea2A71ED7F3Eab; //Koffeeswap factory Address constructor(address _presaleDappAddr, address _feeContract, address _storageContract, address _referralContract, address _feeCheckContract) { presaleDappAddr = _presaleDappAddr; feeContract = _feeContract; storageContract = _storageContract; referralDappAddr = _referralContract; feeCheckContract = _feeCheckContract; } using SafeMath for uint256; mapping(address => bool) public presales; //mapping(address => finalizeData) public finalizeDataStruct; mapping(address => mapping(uint256 => bool)) public presaleFinalized; mapping(address => address) public presaleToReferrer; mapping(address => uint256) public presaleToRefPer; mapping(uint256 => address) public presaleOwners; mapping(address => bool) public RouterValid; mapping(uint256 => address) public routerRecord; mapping(address => uint256) public routerNumber; uint256 public totalRouters; uint256 public extraAmountPer = 2; uint256 public extraAmountPerVal; uint256 public hundred = 100; uint256 public minSoftCap = 1000000000000000000; bool public creationPresaleEnabled = true; bool public creationNFTPresaleEnabled = true; function CreatePresaleFair(string[10] memory _tokenInfo, address tokenAddr, uint256[2] memory start_end_time, uint256[5] memory softcap_preAmnt_uniAmnt_min_max_eth, uint256[3] memory uniswap_info_arr, address _routerAddress, string memory _referralCode) public payable { require(creationPresaleEnabled, "creation Presale disabled"); require(start_end_time[0] > block.timestamp, "start time not in future"); require(start_end_time[1] <= (start_end_time[0].add(deltaStartEndTime)), "presale duration exceeds limit"); require(softcap_preAmnt_uniAmnt_min_max_eth[0] >= minSoftCap, "scap must be atleast min required"); require(softcap_preAmnt_uniAmnt_min_max_eth[1] > 0 && softcap_preAmnt_uniAmnt_min_max_eth[2] > 0 && softcap_preAmnt_uniAmnt_min_max_eth[3] > 0, "values cant be zero"); require(softcap_preAmnt_uniAmnt_min_max_eth[4] >= softcap_preAmnt_uniAmnt_min_max_eth[3], "max cont must be >= min cont"); require(RouterValid[_routerAddress], "invalid router address"); if(referralDisabled){ require(keccak256(abi.encodePacked(_referralCode)) == keccak256(abi.encodePacked("default")),"only default code allowed"); } if(keccak256(abi.encodePacked(_referralCode)) != keccak256(abi.encodePacked("default")) && !referralDisabled){ require(ReferralContract(referralDappAddr).validateCode(_referralCode),"invalid discount code"); require(msg.value >= (FeeCheckContractInterface(feeCheckContract).getFees(dappFeeName)).mul(hundred.sub(ReferralContract(referralDappAddr).getDiscountedPrice(_referralCode))).div(hundred), "msg.value must be equal to referral fee!"); uint256 referrerAmount = (msg.value).mul(ReferralContract(referralDappAddr).fetchCodeOwnerPercentage(_referralCode)).div(100); payable(ReferralContract(referralDappAddr).fetchCodeOwner(_referralCode)).transfer(referrerAmount); FeeDepositContractInterface(feeContract).payment{value: (msg.value).mul(hundred.sub(ReferralContract(referralDappAddr).fetchCodeOwnerPercentage(_referralCode))).div(100)}(3); // 3 at the end means it will be registerred in the fee deposit contract as a referral Fair presale require(ReferralContract(referralDappAddr).updateReferrerAmounts(ReferralContract(referralDappAddr).fetchCodeOwner(_referralCode), referrerAmount),"referrerAmountUpdate failed"); } else{ require(msg.value >= FeeCheckContractInterface(feeCheckContract).getFees(dappFeeName), "msg.value must be equal to presale fee!"); FeeDepositContractInterface(feeContract).payment{value: msg.value}(4); // 4 at the end means it will be registerred in the fee deposit contract as a NO referral Fair presale } require((start_end_time[0].add(minLockTime)) <= start_end_time[1], "presale period less than minimum"); require(uniswap_info_arr[0] > (start_end_time[1].add(minLockTime)), "Lock time must be higher than presale end time"); require((uniswap_info_arr[2] > minUniPercentage), "Uniswap percentage is lower than min threshold"); require(StorageContractInterface(storageContract).CreatePresaleStorage(tokenAddr,uniswap_info_arr[0],msg.sender,[false,false,true]),"storage addition failed"); address presaleAddrReturn; // Calling regular fair launch presale dapp below presaleAddrReturn = PresaleDappInterface(presaleDappAddr).CreatePresaleFair([address(this), msg.sender, tokenAddr,_routerAddress], start_end_time, softcap_preAmnt_uniAmnt_min_max_eth, uniswap_info_arr[2],[extraAmountPer,uniswap_info_arr[0]]); presaleToReferrer[presaleAddrReturn] = ReferralContract(referralDappAddr).fetchCodeOwner(_referralCode); presaleToRefPer[presaleAddrReturn] = ReferralContract(referralDappAddr).fetchCodeOwnerPercentage(_referralCode); uint256 presaleNumCorrect = (StorageContractInterface(storageContract).fetchPresaleNumByOwner(msg.sender)).sub(1); // subtraction is needed to get to correct presaleNum for the creator require(StorageContractInterface(storageContract).addPresaleAddr(_tokenInfo,presaleAddrReturn,msg.sender,presaleNumCorrect),"presale addr add failed"); require(ReferralContract(referralDappAddr).updateCodeUseNumber(_referralCode,presaleAddrReturn),"code use update failed"); } function changeDeltaStartEndTime(uint256 _newDelta) public onlyOwner { require(_newDelta >= 0, "invalid delta number"); deltaStartEndTime = _newDelta; } function changeUniPercentage(uint uniPer) public onlyOwner { require((uniPer >= 0) && (uniPer <= 100), "uniPer value outside range"); minUniPercentage = uniPer; } function ChangeVoterAddr(address _newVoterAddress) public onlyOwner { // require(_newVoterAddress != voter, "New addr is same as Old Addr"); require(_newVoterAddress != address(0), "New Addr cant be zero addr"); voter = _newVoterAddress; } function ChangeAirdropFee(uint _newAirdropFee) public onlyOwner { require(_newAirdropFee >= 0 && _newAirdropFee <= 100, "out of range fee value"); require(_newAirdropFee != airdrop_fees_Percentage, "New fee is same as Old fee"); airdrop_fees_Percentage = _newAirdropFee; } function disableReferral() public onlyOwner { referralDisabled = true; } function enableReferral() public onlyOwner { referralDisabled = false; } function callFinalizeFair(uint256 _presaleNum) public { (address _tokenAddr,address _presaleAddr, address _uniswapDep) = StorageContractInterface(storageContract).fetchPresaleStruct(msg.sender,_presaleNum); if(filter){ StorageContractInterface(storageContract).setPresaleFilter(msg.sender,_presaleNum); } if(activeFalse){ StorageContractInterface(storageContract).setPresaleActiveFalse(msg.sender,_presaleNum); } extraAmountPerVal = extraAmountPer.add(hundred); uint256 totalEthRaised = PresaleContractInterface(_presaleAddr).CheckTotalEthRaised(); uint256 SoftCap = PresaleContractInterface(_presaleAddr).CheckSoftCap(); if (!(totalEthRaised < (SoftCap)) && !(totalEthRaised == 0)) { // CREATE UNISWAP CONTRACT START totalRaisedOnPlatform = totalRaisedOnPlatform.add(totalEthRaised); uint256 tokenFeeCalc = totalEthRaised.mul(airdrop_fees_Percentage).div(100); PresaleContractInterface(_presaleAddr).mintForPlatform(feeContract,presaleToReferrer[_presaleAddr],presaleToRefPer[_presaleAddr],tokenFeeToReferrer); require(PresaleContractInterface(_presaleAddr).finalize([presaleToReferrer[_presaleAddr], msg.sender],presaleToRefPer[_presaleAddr],true) == 1,"finalize failed at success"); ReferralContract(referralDappAddr).updateReferrerAmounts(presaleToReferrer[_presaleAddr],tokenFeeCalc.mul(presaleToRefPer[_presaleAddr]).div(100)); } else if ((totalEthRaised < SoftCap) || (totalEthRaised == 0)) { totalRefundedFromPlatform = totalRefundedFromPlatform.add(totalEthRaised); require(PresaleContractInterface(_presaleAddr).finalize([address(0), address(msg.sender)],presaleToRefPer[_presaleAddr],false) == 1,"finalize failed at refund"); } } function checkTotalEthraisedOfPresale(address presaleToRefundFromOwnerAddress, uint256 _presaleNum) public view returns(uint256) { address presaleAddressFetched = StorageContractInterface(storageContract).fetchPresaleAddress(presaleToRefundFromOwnerAddress,_presaleNum); uint256 totalEthRaised = PresaleContractInterface(presaleAddressFetched).CheckTotalEthRaised(); return totalEthRaised; } function voterCallsFinalizeRefund(address presaleToRefundFromOwnerAddress,uint256 _presaleNum) onlyVoter public { (address presaleAddressFetched,address uniAddressFetched) = StorageContractInterface(storageContract).fetchVoterCallData(presaleToRefundFromOwnerAddress,_presaleNum); totalRefundedFromPlatform = totalRefundedFromPlatform.add(checkTotalEthraisedOfPresale(presaleToRefundFromOwnerAddress,_presaleNum)); require(PresaleContractInterface(presaleAddressFetched).finalize([address(0), presaleToRefundFromOwnerAddress],presaleToRefPer[presaleAddressFetched],false) == 1,"finalize failed at voter call refund"); StorageContractInterface(storageContract).addFailFilter(presaleToRefundFromOwnerAddress, _presaleNum); } function voterCallsFinalizeRefundAnytime(address presaleToRefundFromOwnerAddress,uint256 _presaleNum) onlyVoter public { (address presaleAddressFetched,address uniAddressFetched) = StorageContractInterface(storageContract).fetchVoterCallData(presaleToRefundFromOwnerAddress,_presaleNum); totalRefundedFromPlatform = totalRefundedFromPlatform.add(checkTotalEthraisedOfPresale(presaleToRefundFromOwnerAddress,_presaleNum)); PresaleContractInterface(presaleAddressFetched).finalizeAnytime([address(0), presaleToRefundFromOwnerAddress, uniAddressFetched],false); StorageContractInterface(storageContract).addFailFilter(presaleToRefundFromOwnerAddress, _presaleNum); } function enableWhitelist(uint256 _presaleNum) public payable { address presaleAddressFetched = StorageContractInterface(storageContract).fetchPresaleAddress(msg.sender,_presaleNum); require(msg.value >= FeeCheckContractInterface(feeCheckContract).getWhitelistFees(dappWhitelistFeeName), "msg.value must be >= whitelist fees!"); //payable(feeContract).transfer(msg.value); FeeDepositContractInterface(feeContract).payment{value: msg.value}(5); // 5 at the end means it will be registerred in the fee deposit contract as a whitelist fee for Fair presale PresaleContractInterface(presaleAddressFetched).enableWhitelist(); } function disableWhitelist(uint256 _presaleNum) public { address presaleAddressFetched = StorageContractInterface(storageContract).fetchPresaleAddress(msg.sender,_presaleNum); //require(msg.value >= whitelistFees, "msg.value must be >= whitelist fees!"); //payable(feeContract).transfer(whitelistFees); PresaleContractInterface(presaleAddressFetched).disableWhitelist(); } function AddToWhitelist(address[] memory _whitelistAddress, uint256 _presaleNum) public { address presaleAddressFetched = StorageContractInterface(storageContract).fetchPresaleAddress(msg.sender,_presaleNum); for (uint256 i = 0; i < _whitelistAddress.length; i++) { PresaleContractInterface(presaleAddressFetched).addToWhitelist(_whitelistAddress[i]); } } function RemoveFromWhitelist(address[] memory _whitelistAddress, uint256 _presaleNum) public { address presaleAddressFetched = StorageContractInterface(storageContract).fetchPresaleAddress(msg.sender,_presaleNum); for (uint256 i = 0; i < _whitelistAddress.length; i++) { PresaleContractInterface(presaleAddressFetched).removeFromWhitelist(_whitelistAddress[i]); } } function updateFairPresaleDapp(address _newFairPresaleDapp) onlyOwner public { require(_newFairPresaleDapp != address(0x0), "fair presale dapp cant be 0x0"); presaleDappAddr = _newFairPresaleDapp; } function creationPresaleStateChange(bool _input) public onlyOwner { // require(creationEnabled,"already disabled"); creationPresaleEnabled = _input; } function creationNFTPresaleStateChange(bool _input) public onlyOwner { // require(creationEnabled,"already disabled"); creationNFTPresaleEnabled = _input; } function addRouter(address _newRouter) onlyOwner public { require(!RouterValid[_newRouter], "already added!"); RouterValid[_newRouter] = true; routerNumber[_newRouter] = totalRouters; routerRecord[totalRouters] = _newRouter; totalRouters++; } function getStuckBNB() public onlyOwner { payable(owner).transfer(address(this).balance); } function removeRouter(address _newRouter) onlyOwner public { require(RouterValid[_newRouter], "not in added list"); RouterValid[_newRouter] = false; } function changeExtraTokenPer(uint256 _newPer) onlyOwner public { require(_newPer > 0, "Invalid percentage value"); extraAmountPer = _newPer; } function changeFeeContract(address _newContract) onlyOwner public { require(_newContract != address(0x0),"addr cannot be zero"); feeContract = _newContract; } function changeStorageContract(address _newStorageContract) onlyOwner public { require(_newStorageContract != address(0x0),"addr cannot be zero"); storageContract = _newStorageContract; } function changeFeeCheckContract(address _newFeeCheckContract) onlyOwner public { require(_newFeeCheckContract != address(0x0),"addr cannot be zero"); feeCheckContract = _newFeeCheckContract; } function changeReferralContract(address _newReferralContract) onlyOwner public { require(_newReferralContract != address(0x0),"addr cannot be zero"); referralDappAddr = _newReferralContract; } function enableRefTOkenFee() onlyOwner public { require(!tokenFeeToReferrer,"already enabled"); tokenFeeToReferrer = true; } function disableRefTOkenFee() onlyOwner public { require(tokenFeeToReferrer,"already disabled"); tokenFeeToReferrer = false; } function changeMinSoftCap(uint256 _newSoftCap) public onlyOwner { minSoftCap = _newSoftCap; } function transferPresaleOwner(address _presale,address _newOwner) onlyOwner public { Ownable(_presale).transferOwnership(_newOwner); } function setActiveFalseFilter(bool _activeFalse,bool _filter) onlyOwner public { activeFalse = _activeFalse; filter = _filter; } }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 1 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_presaleDappAddr","type":"address"},{"internalType":"address","name":"_feeContract","type":"address"},{"internalType":"address","name":"_storageContract","type":"address"},{"internalType":"address","name":"_referralContract","type":"address"},{"internalType":"address","name":"_feeCheckContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address[]","name":"_whitelistAddress","type":"address[]"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"AddToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newAirdropFee","type":"uint256"}],"name":"ChangeAirdropFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newVoterAddress","type":"address"}],"name":"ChangeVoterAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[10]","name":"_tokenInfo","type":"string[10]"},{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256[2]","name":"start_end_time","type":"uint256[2]"},{"internalType":"uint256[5]","name":"softcap_preAmnt_uniAmnt_min_max_eth","type":"uint256[5]"},{"internalType":"uint256[3]","name":"uniswap_info_arr","type":"uint256[3]"},{"internalType":"address","name":"_routerAddress","type":"address"},{"internalType":"string","name":"_referralCode","type":"string"}],"name":"CreatePresaleFair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_whitelistAddress","type":"address[]"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"RemoveFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"RouterValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeFalse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newRouter","type":"address"}],"name":"addRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"callFinalizeFair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newDelta","type":"uint256"}],"name":"changeDeltaStartEndTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPer","type":"uint256"}],"name":"changeExtraTokenPer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newFeeCheckContract","type":"address"}],"name":"changeFeeCheckContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newContract","type":"address"}],"name":"changeFeeContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSoftCap","type":"uint256"}],"name":"changeMinSoftCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newReferralContract","type":"address"}],"name":"changeReferralContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newStorageContract","type":"address"}],"name":"changeStorageContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"uniPer","type":"uint256"}],"name":"changeUniPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presaleToRefundFromOwnerAddress","type":"address"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"checkTotalEthraisedOfPresale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creationNFTPresaleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_input","type":"bool"}],"name":"creationNFTPresaleStateChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creationPresaleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_input","type":"bool"}],"name":"creationPresaleStateChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dappFeeName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dappName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dappWhitelistFeeName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deltaStartEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableRefTOkenFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"disableWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableRefTOkenFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"enableWhitelist","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"extraAmountPer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraAmountPerVal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeCheckContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"filter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStuckBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hundred","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSoftCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minUniPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleDappAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"presaleFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"presaleOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"presaleToRefPer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"presaleToReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"presales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralDappAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newRouter","type":"address"}],"name":"removeRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"routerNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"routerRecord","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_activeFalse","type":"bool"},{"internalType":"bool","name":"_filter","type":"bool"}],"name":"setActiveFalseFilter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storageContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFeeToReferrer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRaisedOnPlatform","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRefundedFromPlatform","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRouters","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":[{"internalType":"address","name":"_presale","type":"address"},{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferPresaleOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newFairPresaleDapp","type":"address"}],"name":"updateFairPresaleDapp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"voter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"presaleToRefundFromOwnerAddress","type":"address"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"voterCallsFinalizeRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presaleToRefundFromOwnerAddress","type":"address"},{"internalType":"uint256","name":"_presaleNum","type":"uint256"}],"name":"voterCallsFinalizeRefundAnytime","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6002600155603260045562278d00600b5560c0604052600c60808181526b3330b4b92232b83637bcb2b960a11b60a0526200003b908262000224565b5060408051808201909152600f81526e6661697250726573616c654665657360881b6020820152600d9062000071908262000224565b506040805180820190915260118152706661697257686974656c6973744665657360781b6020820152600e90620000a9908262000224565b506010805463ffff0000191663010100001790556002601a556064601c55670de0b6b3a7640000601d55601e805461ffff1916610101179055348015620000ef57600080fd5b50604051620043d5380380620043d583398101604081905262000112916200030d565b60028054336001600160a01b0319918216179091556005805482166001600160a01b0397881617905560008054821695871695909517909455600780548516938616939093179092556006805484169185169190911790556008805490921692169190911790556200037d565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001aa57607f821691505b602082108103620001cb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021f57600081815260208120601f850160051c81016020861015620001fa5750805b601f850160051c820191505b818110156200021b5782815560010162000206565b5050505b505050565b81516001600160401b038111156200024057620002406200017f565b620002588162000251845462000195565b84620001d1565b602080601f831160018114620002905760008415620002775750858301515b600019600386901b1c1916600185901b1785556200021b565b600085815260208120601f198616915b82811015620002c157888601518255948401946001909101908401620002a0565b5085821015620002e05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b03811681146200030857600080fd5b919050565b600080600080600060a086880312156200032657600080fd5b6200033186620002f0565b94506200034160208701620002f0565b93506200035160408701620002f0565b92506200036160608701620002f0565b91506200037160808701620002f0565b90509295509295909350565b614048806200038d6000396000f3fe6080604052600436106102f45760003560e01c8063041f78cc146102f9578063042d97821461031b57806306e297121461034f5780630c52662e1461037c5780630d77c7df1461039c578063108d9447146103af57806311ce0267146103e55780631f4ba8041461040557806324ca984e14610429578063280db44014610449578063284def1514610469578063297054fb1461047f578063344eaa2714610495578063363d9efc146104b75780634055f612146104cd578063411028d8146104ed578063426b487f146105035780634503a6d314610522578063455991361461053757806346c96aac1461054d57806348e5b7d41461056d5780634f81c1ff146105a85780635787b142146105bd57806359f962f6146105dd5780635bc39e0f146105f35780635bff9a27146106135780635fadcc1e1461062957806360b2aff31461064a5780636608fd2f14610680578063662b3522146106a057806369f5ef4a146106b55780636ae0b154146106cf5780636e62d42f146106ef578063715018a61461070f5780637a594b79146107245780637b2b3073146107445780637d06b7fd146107645780637f928c82146107795780638da5cb5b1461078e57806390f6c065146107ae578063922b5aeb146107ce578063a42b45bf146107e1578063a614fec1146107f7578063ab4304df1461082d578063ae2750841461084d578063b02fa76c1461086d578063b08cdb7c1461088d578063b517da2d146108ad578063b56a038a146108cd578063bc599775146108e3578063c31c018714610903578063c946731714610930578063d0b3286314610950578063d0f0d7361461097d578063d276aded1461099d578063d3949254146109bd578063d50494cf146109dd578063d97f558e146109fd578063dd13b0dd14610a1d578063dec379ff14610a4d578063e11f2d1314610a6d578063e3613cd914610a8d578063ea354fcb14610aa2578063efcd708f14610ac2578063f2fde38b14610af2578063f5415c1f14610b12578063f625fd3e14610b27575b600080fd5b34801561030557600080fd5b506103196103143660046135e4565b610b41565b005b34801561032757600080fd5b5060105461033a90610100900460ff1681565b60405190151581526020015b60405180910390f35b34801561035b57600080fd5b5060005461036f906001600160a01b031681565b60405161034691906135fd565b34801561038857600080fd5b506103196103973660046136a5565b610c0e565b6103196103aa3660046135e4565b610d20565b3480156103bb57600080fd5b5061036f6103ca36600461375c565b6013602052600090815260409020546001600160a01b031681565b3480156103f157600080fd5b5060075461036f906001600160a01b031681565b34801561041157600080fd5b5061041b601b5481565b604051908152602001610346565b34801561043557600080fd5b5061031961044436600461375c565b610f02565b34801561045557600080fd5b5061031961046436600461375c565b610fd7565b34801561047557600080fd5b5061041b60045481565b34801561048b57600080fd5b5061041b600b5481565b3480156104a157600080fd5b506104aa611036565b60405161034691906137c9565b3480156104c357600080fd5b5061041b60195481565b3480156104d957600080fd5b5060065461036f906001600160a01b031681565b3480156104f957600080fd5b5061041b601d5481565b34801561050f57600080fd5b50601e5461033a90610100900460ff1681565b34801561052e57600080fd5b506103196110c4565b34801561054357600080fd5b5061041b600f5481565b34801561055957600080fd5b5060035461036f906001600160a01b031681565b34801561057957600080fd5b5061033a6105883660046137dc565b601260209081526000928352604080842090915290825290205460ff1681565b3480156105b457600080fd5b506104aa6110e7565b3480156105c957600080fd5b506103196105d836600461375c565b6110f4565b3480156105e957600080fd5b5061041b601a5481565b3480156105ff57600080fd5b5061031961060e366004613816565b611153565b34801561061f57600080fd5b5061041b601c5481565b34801561063557600080fd5b5060105461033a906301000000900460ff1681565b34801561065657600080fd5b5061036f6106653660046135e4565b6015602052600090815260409020546001600160a01b031681565b34801561068c57600080fd5b5061031961069b3660046135e4565b611184565b3480156106ac57600080fd5b506103196111a0565b3480156106c157600080fd5b5060105461033a9060ff1681565b3480156106db57600080fd5b506103196106ea36600461375c565b61120e565b3480156106fb57600080fd5b5060055461036f906001600160a01b031681565b34801561071b57600080fd5b506103196112a2565b34801561073057600080fd5b5061031961073f3660046135e4565b611303565b34801561075057600080fd5b5061031961075f3660046135e4565b61136a565b34801561077057600080fd5b5061031961196e565b34801561078557600080fd5b50610319611994565b34801561079a57600080fd5b5060025461036f906001600160a01b031681565b3480156107ba57600080fd5b506103196107c93660046135e4565b6119e7565b6103196107dc3660046139a1565b611a03565b3480156107ed57600080fd5b5061041b60095481565b34801561080357600080fd5b5061036f6108123660046135e4565b6017602052600090815260409020546001600160a01b031681565b34801561083957600080fd5b50610319610848366004613816565b6129e3565b34801561085957600080fd5b50610319610868366004613ab6565b612a0d565b34801561087957600080fd5b5060105461033a9062010000900460ff1681565b34801561089957600080fd5b506103196108a836600461375c565b612a56565b3480156108b957600080fd5b506103196108c836600461375c565b612ae5565b3480156108d957600080fd5b5061041b600a5481565b3480156108ef57600080fd5b506103196108fe3660046135e4565b612b44565b34801561090f57600080fd5b5061041b61091e36600461375c565b60186020526000908152604090205481565b34801561093c57600080fd5b5061031961094b36600461375c565b612bf8565b34801561095c57600080fd5b5061041b61096b36600461375c565b60146020526000908152604090205481565b34801561098957600080fd5b5060085461036f906001600160a01b031681565b3480156109a957600080fd5b506103196109b83660046137dc565b612c57565b3480156109c957600080fd5b5061041b6109d83660046137dc565b612dfa565b3480156109e957600080fd5b506103196109f83660046136a5565b612ee3565b348015610a0957600080fd5b50610319610a183660046137dc565b612fef565b348015610a2957600080fd5b5061033a610a3836600461375c565b60166020526000908152604090205460ff1681565b348015610a5957600080fd5b50610319610a6836600461375c565b6131b4565b348015610a7957600080fd5b50610319610a883660046135e4565b613240565b348015610a9957600080fd5b506104aa6132aa565b348015610aae57600080fd5b50610319610abd366004613aef565b6132b7565b348015610ace57600080fd5b5061033a610add36600461375c565b60116020526000908152604090205460ff1681565b348015610afe57600080fd5b50610319610b0d36600461375c565b613314565b348015610b1e57600080fd5b50610319613334565b348015610b3357600080fd5b50601e5461033a9060ff1681565b600754604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610b749033908690600401613b1d565b602060405180830381865afa158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb59190613b36565b9050806001600160a01b031663d6b0f4846040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bf257600080fd5b505af1158015610c06573d6000803e3d6000fd5b505050505050565b600754604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610c419033908690600401613b1d565b602060405180830381865afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c829190613b36565b905060005b8351811015610d1a57816001600160a01b0316638ab1d681858381518110610cb157610cb1613b53565b60200260200101516040518263ffffffff1660e01b8152600401610cd591906135fd565b600060405180830381600087803b158015610cef57600080fd5b505af1158015610d03573d6000803e3d6000fd5b505050508080610d1290613b7f565b915050610c87565b50505050565b600754604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610d539033908690600401613b1d565b602060405180830381865afa158015610d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d949190613b36565b600854604051631a51134960e01b81529192506001600160a01b031690631a51134990610dc690600e90600401613bd2565b602060405180830381865afa158015610de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e079190613c7e565b341015610e675760405162461bcd60e51b8152602060048201526024808201527f6d73672e76616c7565206d757374206265203e3d2077686974656c69737420666044820152636565732160e01b60648201526084015b60405180910390fd5b600054604051638b3c99e360e01b8152600560048201526001600160a01b0390911690638b3c99e39034906024016000604051808303818588803b158015610eae57600080fd5b505af1158015610ec2573d6000803e3d6000fd5b5050505050806001600160a01b031663cdfb2b4e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bf257600080fd5b6002546001600160a01b03163314610f1957600080fd5b6001600160a01b03811660009081526016602052604090205460ff1615610f735760405162461bcd60e51b815260206004820152600e60248201526d616c72656164792061646465642160901b6044820152606401610e5e565b6001600160a01b0381166000818152601660209081526040808320805460ff19166001179055601980546018845282852081905584526017909252822080546001600160a01b03191690931790925581549190610fcf83613b7f565b919050555050565b6002546001600160a01b03163314610fee57600080fd5b6001600160a01b0381166110145760405162461bcd60e51b8152600401610e5e90613c97565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600e805461104390613b98565b80601f016020809104026020016040519081016040528092919081815260200182805461106f90613b98565b80156110bc5780601f10611091576101008083540402835291602001916110bc565b820191906000526020600020905b81548152906001019060200180831161109f57829003601f168201915b505050505081565b6002546001600160a01b031633146110db57600080fd5b6010805460ff19169055565b600c805461104390613b98565b6002546001600160a01b0316331461110b57600080fd5b6001600160a01b0381166111315760405162461bcd60e51b8152600401610e5e90613c97565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b0316331461116a57600080fd5b601e80549115156101000261ff0019909216919091179055565b6002546001600160a01b0316331461119b57600080fd5b601d55565b6002546001600160a01b031633146111b757600080fd5b601054610100900460ff166112015760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48191a5cd8589b195960821b6044820152606401610e5e565b6010805461ff0019169055565b6002546001600160a01b0316331461122557600080fd5b6001600160a01b03811660009081526016602052604090205460ff166112815760405162461bcd60e51b81526020600482015260116024820152701b9bdd081a5b881859191959081b1a5cdd607a1b6044820152606401610e5e565b6001600160a01b03166000908152601660205260409020805460ff19169055565b6002546001600160a01b031633146112b957600080fd5b6002546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600280546001600160a01b0319169055565b6002546001600160a01b0316331461131a57600080fd5b600081116113655760405162461bcd60e51b8152602060048201526018602482015277496e76616c69642070657263656e746167652076616c756560401b6044820152606401610e5e565b601a55565b600754604051637e2439b360e11b8152600091829182916001600160a01b03169063fc487366906113a19033908890600401613b1d565b606060405180830381865afa1580156113be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e29190613cc4565b60105492955090935091506301000000900460ff16156114735760075460405163cf25127360e01b81526001600160a01b039091169063cf2512739061142e9033908890600401613b1d565b6020604051808303816000875af115801561144d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114719190613d11565b505b60105462010000900460ff16156114fb5760075460405163f3d7443b60e01b81526001600160a01b039091169063f3d7443b906114b69033908890600401613b1d565b6020604051808303816000875af11580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190613d11565b505b601c54601a5461150a916133a6565b601b819055506000826001600160a01b0316632698d7076040518163ffffffff1660e01b8152600401602060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190613c7e565b90506000836001600160a01b031663e4c21cf26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115da9190613c7e565b90508082101580156115eb57508115155b1561186f576009546115fd90836133a6565b60095560015460009061161e9060649061161890869061340a565b9061348c565b600080546001600160a01b038881168084526013602090815260408086205460149092529485902054601054955163f6e99c0d60e01b8152948416600486015292166024840152604483019190915261010090920460ff16151560648201529192509063f6e99c0d906084016020604051808303816000875af11580156116a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cd9190613d11565b506040805180820182526001600160a01b038088166000818152601360209081528582205490931684523383850152818152601490925290839020549251634d2a907360e01b81529092634d2a90739261172f92909190600190600401613d2e565b6020604051808303816000875af115801561174e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117729190613c7e565b6001146117be5760405162461bcd60e51b815260206004820152601a60248201527966696e616c697a65206661696c6564206174207375636365737360301b6044820152606401610e5e565b6006546001600160a01b0386811660009081526013602090815260408083205460149092529091205492821692631d592a4d9291909116906118089060649061161890879061340a565b6040518363ffffffff1660e01b8152600401611825929190613b1d565b6020604051808303816000875af1158015611844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118689190613d11565b5050610c06565b8082108061187b575081155b15610c0657600a5461188d90836133a6565b600a556040805180820182526000808252336020808401919091526001600160a01b0388168083526014909152838220549351634d2a907360e01b81529093634d2a9073936118e0939092600401613d2e565b6020604051808303816000875af11580156118ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119239190613c7e565b600114610c065760405162461bcd60e51b8152602060048201526019602482015278199a5b985b1a5e994819985a5b195908185d081c99599d5b99603a1b6044820152606401610e5e565b6002546001600160a01b0316331461198557600080fd5b6010805460ff19166001179055565b6002546001600160a01b031633146119ab57600080fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156119e4573d6000803e3d6000fd5b50565b6002546001600160a01b031633146119fe57600080fd5b600b55565b601e5460ff16611a515760405162461bcd60e51b815260206004820152601960248201527818dc99585d1a5bdb88141c995cd85b1948191a5cd8589b1959603a1b6044820152606401610e5e565b84514210611a9c5760405162461bcd60e51b815260206004820152601860248201527773746172742074696d65206e6f7420696e2066757475726560401b6044820152606401610e5e565b600b54611ab2908660005b6020020151906133a6565b60208601511115611b055760405162461bcd60e51b815260206004820152601e60248201527f70726573616c65206475726174696f6e2065786365656473206c696d697400006044820152606401610e5e565b601d5484511015611b625760405162461bcd60e51b815260206004820152602160248201527f73636170206d7573742062652061746c65617374206d696e20726571756972656044820152601960fa1b6064820152608401610e5e565b602084015115801590611b785750604084015115155b8015611b875750606084015115155b611bc95760405162461bcd60e51b815260206004820152601360248201527276616c7565732063616e74206265207a65726f60681b6044820152606401610e5e565b606084015160808501511015611c205760405162461bcd60e51b815260206004820152601c60248201527b1b585e0818dbdb9d081b5d5cdd081899480f8f481b5a5b8818dbdb9d60221b6044820152606401610e5e565b6001600160a01b03821660009081526016602052604090205460ff16611c815760405162461bcd60e51b8152602060048201526016602482015275696e76616c696420726f75746572206164647265737360501b6044820152606401610e5e565b60105460ff1615611d2157604051602001611c9b90613d78565b6040516020818303038152906040528051906020012081604051602001611cc29190613d8b565b6040516020818303038152906040528051906020012014611d215760405162461bcd60e51b81526020600482015260196024820152781bdb9b1e48191959985d5b1d0818dbd91948185b1b1bddd959603a1b6044820152606401610e5e565b604051602001611d3090613d78565b6040516020818303038152906040528051906020012081604051602001611d579190613d8b565b6040516020818303038152906040528051906020012014158015611d7e575060105460ff16155b15612298576006546040516349e96fdd60e01b81526001600160a01b03909116906349e96fdd90611db39084906004016137c9565b6020604051808303816000875af1158015611dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df69190613d11565b611e3a5760405162461bcd60e51b8152602060048201526015602482015274696e76616c696420646973636f756e7420636f646560581b6044820152606401610e5e565b601c54600654604051635f51485160e11b8152611f3c929161161891611ec4916001600160a01b03169063bea290a290611e789088906004016137c9565b6020604051808303816000875af1158015611e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebb9190613c7e565b601c54906134cb565b600854604051633ae42caf60e21b81526001600160a01b039091169063eb90b2bc90611ef590600d90600401613bd2565b602060405180830381865afa158015611f12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f369190613c7e565b9061340a565b341015611f9c5760405162461bcd60e51b815260206004820152602860248201527f6d73672e76616c7565206d75737420626520657175616c20746f20726566657260448201526772616c206665652160c01b6064820152608401610e5e565b600654604051630fc0b3fd60e01b815260009161202491606491611618916001600160a01b0390911690630fc0b3fd90611fda9088906004016137c9565b6020604051808303816000875af1158015611ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201d9190613c7e565b349061340a565b600654604051630f22420560e11b81529192506001600160a01b031690631e44840a906120559085906004016137c9565b6020604051808303816000875af1158015612074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120989190613b36565b6001600160a01b03166108fc829081150290604051600060405180830381858888f193505050501580156120d0573d6000803e3d6000fd5b50600054600654604051630fc0b3fd60e01b81526001600160a01b0392831692638b3c99e39261211c926064926116189261201d92911690630fc0b3fd90611e78908b906004016137c9565b6040516001600160e01b031960e084901b168152600360048201526024016000604051808303818588803b15801561215357600080fd5b505af1158015612167573d6000803e3d6000fd5b5050600654604051630f22420560e11b81526001600160a01b039091169350631d592a4d9250839150631e44840a906121a49087906004016137c9565b6020604051808303816000875af11580156121c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e79190613b36565b836040518363ffffffff1660e01b8152600401612205929190613b1d565b6020604051808303816000875af1158015612224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122489190613d11565b6122925760405162461bcd60e51b815260206004820152601b60248201527a1c9959995c9c995c905b5bdd5b9d155c19185d194819985a5b1959602a1b6044820152606401610e5e565b506123c9565b600854604051633ae42caf60e21b81526001600160a01b039091169063eb90b2bc906122c990600d90600401613bd2565b602060405180830381865afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a9190613c7e565b3410156123695760405162461bcd60e51b815260206004820152602760248201527f6d73672e76616c7565206d75737420626520657175616c20746f2070726573616044820152666c65206665652160c81b6064820152608401610e5e565b600054604051638b3c99e360e01b81526004808201526001600160a01b0390911690638b3c99e39034906024016000604051808303818588803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b50505050505b60208501516123dc610258876000611aa7565b111561242a5760405162461bcd60e51b815260206004820181905260248201527f70726573616c6520706572696f64206c657373207468616e206d696e696d756d6044820152606401610e5e565b612438610258866001611aa7565b83511161249e5760405162461bcd60e51b815260206004820152602e60248201527f4c6f636b2074696d65206d75737420626520686967686572207468616e20707260448201526d6573616c6520656e642074696d6560901b6064820152608401610e5e565b60045460408401511161250a5760405162461bcd60e51b815260206004820152602e60248201527f556e69737761702070657263656e74616765206973206c6f776572207468616e60448201526d081b5a5b881d1a1c995cda1bdb1960921b6064820152608401610e5e565b600754835160408051606081018252600080825260208201526001818301529051630282544d60e21b81526001600160a01b0390931692630a09513492612558928b92339190600401613da7565b6020604051808303816000875af1158015612577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259b9190613d11565b6125e15760405162461bcd60e51b81526020600482015260176024820152761cdd1bdc9859d9481859191a5d1a5bdb8819985a5b1959604a1b6044820152606401610e5e565b600554604080516080810182523081523360208201526001600160a01b03898116928201929092528482166060820152600092919091169063d48f502990888888600260200201516040518060400160405280601a5481526020018b60006003811061264f5761264f613b53565b60200201518152506040518663ffffffff1660e01b8152600401612677959493929190613e21565b6020604051808303816000875af1158015612696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ba9190613b36565b600654604051630f22420560e11b81529192506001600160a01b031690631e44840a906126eb9085906004016137c9565b6020604051808303816000875af115801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190613b36565b6001600160a01b038281166000908152601360205260409081902080546001600160a01b031916938316939093179092556006549151630fc0b3fd60e01b8152911690630fc0b3fd906127859085906004016137c9565b6020604051808303816000875af11580156127a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c89190613c7e565b6001600160a01b03808316600090815260146020526040808220939093556007549251631996f55960e11b8152909261285e9260019291169063332deab2906128159033906004016135fd565b6020604051808303816000875af1158015612834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128589190613c7e565b906134cb565b600754604051638252401760e01b81529192506001600160a01b031690638252401790612895908c90869033908790600401613eac565b6020604051808303816000875af11580156128b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d89190613d11565b61291e5760405162461bcd60e51b81526020600482015260176024820152761c1c995cd85b19481859191c881859190819985a5b1959604a1b6044820152606401610e5e565b600654604051635ac066d560e01b81526001600160a01b0390911690635ac066d5906129509086908690600401613f17565b6020604051808303816000875af115801561296f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129939190613d11565b6129d85760405162461bcd60e51b815260206004820152601660248201527518dbd919481d5cd9481d5c19185d194819985a5b195960521b6044820152606401610e5e565b505050505050505050565b6002546001600160a01b031633146129fa57600080fd5b601e805460ff1916911515919091179055565b6002546001600160a01b03163314612a2457600080fd5b6010805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055565b6002546001600160a01b03163314612a6d57600080fd5b6001600160a01b038116612ac35760405162461bcd60e51b815260206004820152601d60248201527f666169722070726573616c6520646170702063616e74206265203078300000006044820152606401610e5e565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b03163314612afc57600080fd5b6001600160a01b038116612b225760405162461bcd60e51b8152600401610e5e90613c97565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b03163314612b5b57600080fd5b6064811115612ba55760405162461bcd60e51b81526020600482015260166024820152756f7574206f662072616e6765206665652076616c756560501b6044820152606401610e5e565b6001548103612bf35760405162461bcd60e51b815260206004820152601a6024820152794e6577206665652069732073616d65206173204f6c642066656560301b6044820152606401610e5e565b600155565b6002546001600160a01b03163314612c0f57600080fd5b6001600160a01b038116612c355760405162461bcd60e51b8152600401610e5e90613c97565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314612c6e57600080fd5b60075460405163d6b4441160e01b815260009182916001600160a01b039091169063d6b4441190612ca59087908790600401613b1d565b6040805180830381865afa158015612cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce59190613f41565b91509150612cff612cf68585612dfa565b600a54906133a6565b600a556040805160608101825260008082526001600160a01b0387811660208401528481168385015292516397993fd960e01b8152928516926397993fd992612d4c929091600401613f70565b6020604051808303816000875af1158015612d6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8f9190613c7e565b50600754604051634f647a1b60e11b81526001600160a01b0390911690639ec8f43690612dc29087908790600401613b1d565b600060405180830381600087803b158015612ddc57600080fd5b505af1158015612df0573d6000803e3d6000fd5b5050505050505050565b600754604051632b6419d360e11b815260009182916001600160a01b03909116906356c833a690612e319087908790600401613b1d565b602060405180830381865afa158015612e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e729190613b36565b90506000816001600160a01b0316632698d7076040518163ffffffff1660e01b8152600401602060405180830381865afa158015612eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed89190613c7e565b925050505b92915050565b600754604051632b6419d360e11b81526000916001600160a01b0316906356c833a690612f169033908690600401613b1d565b602060405180830381865afa158015612f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f579190613b36565b905060005b8351811015610d1a57816001600160a01b031663e43252d7858381518110612f8657612f86613b53565b60200260200101516040518263ffffffff1660e01b8152600401612faa91906135fd565b600060405180830381600087803b158015612fc457600080fd5b505af1158015612fd8573d6000803e3d6000fd5b505050508080612fe790613b7f565b915050612f5c565b6003546001600160a01b0316331461300657600080fd5b60075460405163d6b4441160e01b815260009182916001600160a01b039091169063d6b444119061303d9087908790600401613b1d565b6040805180830381865afa158015613059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061307d9190613f41565b9150915061308e612cf68585612dfa565b600a5560408051808201825260008082526001600160a01b038781166020808501919091529086168083526014909152838220549351634d2a907360e01b81529093634d2a9073936130e4939092600401613d2e565b6020604051808303816000875af1158015613103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131279190613c7e565b6001146131825760405162461bcd60e51b8152602060048201526024808201527f66696e616c697a65206661696c656420617420766f7465722063616c6c207265604482015263199d5b9960e21b6064820152608401610e5e565b600754604051634f647a1b60e11b81526001600160a01b0390911690639ec8f43690612dc29087908790600401613b1d565b6002546001600160a01b031633146131cb57600080fd5b6001600160a01b03811661321e5760405162461bcd60e51b815260206004820152601a6024820152792732bb9020b232391031b0b73a103132903d32b9379030b2323960311b6044820152606401610e5e565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b0316331461325757600080fd5b60648111156132a55760405162461bcd60e51b815260206004820152601a602482015279756e695065722076616c7565206f7574736964652072616e676560301b6044820152606401610e5e565b600455565b600d805461104390613b98565b6002546001600160a01b031633146132ce57600080fd5b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906132fa9084906004016135fd565b600060405180830381600087803b158015610bf257600080fd5b6002546001600160a01b0316331461332b57600080fd5b6119e48161350d565b6002546001600160a01b0316331461334b57600080fd5b601054610100900460ff16156133955760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b6044820152606401610e5e565b6010805461ff001916610100179055565b6000806133b38385613fb3565b9050838110156134035760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606401610e5e565b9392505050565b60008260000361341c57506000612edd565b60006134288385613fc6565b9050826134358583613fdd565b146134035760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e5e565b600061340383836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061357c565b600061340383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506135b3565b6001600160a01b03811661352057600080fd5b6002546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000818361359d5760405162461bcd60e51b8152600401610e5e91906137c9565b5060006135aa8486613fdd565b95945050505050565b600081848411156135d75760405162461bcd60e51b8152600401610e5e91906137c9565b5060006135aa8486613fff565b6000602082840312156135f657600080fd5b5035919050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561364a5761364a613611565b60405290565b604051601f8201601f191681016001600160401b038111828210171561367857613678613611565b604052919050565b6001600160a01b03811681146119e457600080fd5b80356136a081613680565b919050565b600080604083850312156136b857600080fd5b82356001600160401b03808211156136cf57600080fd5b818501915085601f8301126136e357600080fd5b81356020828211156136f7576136f7613611565b8160051b9250613708818401613650565b828152928401810192818101908985111561372257600080fd5b948201945b8486101561374c578535935061373c84613680565b8382529482019490820190613727565b9997909101359750505050505050565b60006020828403121561376e57600080fd5b813561340381613680565b60005b8381101561379457818101518382015260200161377c565b50506000910152565b600081518084526137b5816020860160208601613779565b601f01601f19169290920160200192915050565b602081526000613403602083018461379d565b600080604083850312156137ef57600080fd5b82356137fa81613680565b946020939093013593505050565b80151581146119e457600080fd5b60006020828403121561382857600080fd5b813561340381613808565b600082601f83011261384457600080fd5b81356001600160401b0381111561385d5761385d613611565b613870601f8201601f1916602001613650565b81815284602083860101111561388557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126138b357600080fd5b604080519081016001600160401b03811182821017156138d5576138d5613611565b80604052508060408401858111156138ec57600080fd5b845b818110156139065780358352602092830192016138ee565b509195945050505050565b600082601f83011261392257600080fd5b60405160a081016001600160401b038111828210171561394457613944613611565b6040528060a08401858111156138ec57600080fd5b600082601f83011261396a57600080fd5b604051606081016001600160401b038111828210171561398c5761398c613611565b6040528060608401858111156138ec57600080fd5b60008060008060008060006101c0888a0312156139bd57600080fd5b6001600160401b0388358110156139d357600080fd5b883589018a601f8201126139e657600080fd5b6139ee613627565b8061014083018d811115613a0157600080fd5b835b81811015613a34578581351115613a1957600080fd5b613a268f82358701613833565b845260209384019301613a03565b5050809a50505050613a4860208a01613695565b9650613a578a60408b016138a2565b9550613a668a60808b01613911565b9450613a768a6101208b01613959565b9350613a856101808a01613695565b92506101a089013581811115613a9a57600080fd5b613aa68b828c01613833565b9250505092959891949750929550565b60008060408385031215613ac957600080fd5b8235613ad481613808565b91506020830135613ae481613808565b809150509250929050565b60008060408385031215613b0257600080fd5b8235613b0d81613680565b91506020830135613ae481613680565b6001600160a01b03929092168252602082015260400190565b600060208284031215613b4857600080fd5b815161340381613680565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613b9157613b91613b69565b5060010190565b600181811c90821680613bac57607f821691505b602082108103613bcc57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208083526000845481600182811c915080831680613bf457607f831692505b8583108103613c1157634e487b7160e01b85526022600452602485fd5b878601838152602001818015613c2e5760018114613c4457613c6f565b60ff198616825284151560051b82019650613c6f565b60008b81526020902060005b86811015613c6957815484820152908501908901613c50565b83019750505b50949998505050505050505050565b600060208284031215613c9057600080fd5b5051919050565b602080825260139082015272616464722063616e6e6f74206265207a65726f60681b604082015260600190565b600080600060608486031215613cd957600080fd5b8351613ce481613680565b6020850151909350613cf581613680565b6040850151909250613d0681613680565b809150509250925092565b600060208284031215613d2357600080fd5b815161340381613808565b60808101818560005b6002811015613d5f5781516001600160a01b0316835260209283019290910190600101613d37565b5050508360408301528215156060830152949350505050565b66191959985d5b1d60ca1b815260070190565b60008251613d9d818460208701613779565b9190910192915050565b6001600160a01b0385811682526020808301869052908416604083015260c082019060608301908460005b6003811015613df1578151151584529282019290820190600101613dd2565b5050505095945050505050565b8060005b6002811015610d1a578151845260209384019390910190600101613e02565b6101c08101818760005b6004811015613e535781516001600160a01b0316835260209283019290910190600101613e2b565b505050613e636080830187613dfe565b60c082018560005b6005811015613e8a578151835260209283019290910190600101613e6b565b50505083610160830152613ea2610180830184613dfe565b9695505050505050565b60808082526000906101c0830190830187835b600a811015613ef157607f19868503018352613edc84835161379d565b93506020928301929190910190600101613ebf565b5050506001600160a01b0395861660208401529390941660408201526060015292915050565b604081526000613f2a604083018561379d565b905060018060a01b03831660208301529392505050565b60008060408385031215613f5457600080fd5b8251613f5f81613680565b6020840151909250613ae481613680565b60808101818460005b6003811015613fa15781516001600160a01b0316835260209283019290910190600101613f79565b50505082151560608301529392505050565b80820180821115612edd57612edd613b69565b8082028115828204841417612edd57612edd613b69565b600082613ffa57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115612edd57612edd613b6956fea26469706673582212207c499dab51f6cac6632c9d71a0d92a6ce781677f800acc4d975abdb52439ef6a64736f6c634300081100330000000000000000000000009b2710f85ed4338e26a69481761f5fb8715a87150000000000000000000000000febb541ef3632925cd67daf9e82cdc8ec7a71ef00000000000000000000000037d79eea1f3d5475a7e0f0cd8f8130df8500ca29000000000000000000000000344129238deb523c02e8be4c0e7e630780711bc5000000000000000000000000c1b4c3862d252e4146ca7776faf4460b5bc2ffd9
Deployed Bytecode
0x6080604052600436106102f45760003560e01c8063041f78cc146102f9578063042d97821461031b57806306e297121461034f5780630c52662e1461037c5780630d77c7df1461039c578063108d9447146103af57806311ce0267146103e55780631f4ba8041461040557806324ca984e14610429578063280db44014610449578063284def1514610469578063297054fb1461047f578063344eaa2714610495578063363d9efc146104b75780634055f612146104cd578063411028d8146104ed578063426b487f146105035780634503a6d314610522578063455991361461053757806346c96aac1461054d57806348e5b7d41461056d5780634f81c1ff146105a85780635787b142146105bd57806359f962f6146105dd5780635bc39e0f146105f35780635bff9a27146106135780635fadcc1e1461062957806360b2aff31461064a5780636608fd2f14610680578063662b3522146106a057806369f5ef4a146106b55780636ae0b154146106cf5780636e62d42f146106ef578063715018a61461070f5780637a594b79146107245780637b2b3073146107445780637d06b7fd146107645780637f928c82146107795780638da5cb5b1461078e57806390f6c065146107ae578063922b5aeb146107ce578063a42b45bf146107e1578063a614fec1146107f7578063ab4304df1461082d578063ae2750841461084d578063b02fa76c1461086d578063b08cdb7c1461088d578063b517da2d146108ad578063b56a038a146108cd578063bc599775146108e3578063c31c018714610903578063c946731714610930578063d0b3286314610950578063d0f0d7361461097d578063d276aded1461099d578063d3949254146109bd578063d50494cf146109dd578063d97f558e146109fd578063dd13b0dd14610a1d578063dec379ff14610a4d578063e11f2d1314610a6d578063e3613cd914610a8d578063ea354fcb14610aa2578063efcd708f14610ac2578063f2fde38b14610af2578063f5415c1f14610b12578063f625fd3e14610b27575b600080fd5b34801561030557600080fd5b506103196103143660046135e4565b610b41565b005b34801561032757600080fd5b5060105461033a90610100900460ff1681565b60405190151581526020015b60405180910390f35b34801561035b57600080fd5b5060005461036f906001600160a01b031681565b60405161034691906135fd565b34801561038857600080fd5b506103196103973660046136a5565b610c0e565b6103196103aa3660046135e4565b610d20565b3480156103bb57600080fd5b5061036f6103ca36600461375c565b6013602052600090815260409020546001600160a01b031681565b3480156103f157600080fd5b5060075461036f906001600160a01b031681565b34801561041157600080fd5b5061041b601b5481565b604051908152602001610346565b34801561043557600080fd5b5061031961044436600461375c565b610f02565b34801561045557600080fd5b5061031961046436600461375c565b610fd7565b34801561047557600080fd5b5061041b60045481565b34801561048b57600080fd5b5061041b600b5481565b3480156104a157600080fd5b506104aa611036565b60405161034691906137c9565b3480156104c357600080fd5b5061041b60195481565b3480156104d957600080fd5b5060065461036f906001600160a01b031681565b3480156104f957600080fd5b5061041b601d5481565b34801561050f57600080fd5b50601e5461033a90610100900460ff1681565b34801561052e57600080fd5b506103196110c4565b34801561054357600080fd5b5061041b600f5481565b34801561055957600080fd5b5060035461036f906001600160a01b031681565b34801561057957600080fd5b5061033a6105883660046137dc565b601260209081526000928352604080842090915290825290205460ff1681565b3480156105b457600080fd5b506104aa6110e7565b3480156105c957600080fd5b506103196105d836600461375c565b6110f4565b3480156105e957600080fd5b5061041b601a5481565b3480156105ff57600080fd5b5061031961060e366004613816565b611153565b34801561061f57600080fd5b5061041b601c5481565b34801561063557600080fd5b5060105461033a906301000000900460ff1681565b34801561065657600080fd5b5061036f6106653660046135e4565b6015602052600090815260409020546001600160a01b031681565b34801561068c57600080fd5b5061031961069b3660046135e4565b611184565b3480156106ac57600080fd5b506103196111a0565b3480156106c157600080fd5b5060105461033a9060ff1681565b3480156106db57600080fd5b506103196106ea36600461375c565b61120e565b3480156106fb57600080fd5b5060055461036f906001600160a01b031681565b34801561071b57600080fd5b506103196112a2565b34801561073057600080fd5b5061031961073f3660046135e4565b611303565b34801561075057600080fd5b5061031961075f3660046135e4565b61136a565b34801561077057600080fd5b5061031961196e565b34801561078557600080fd5b50610319611994565b34801561079a57600080fd5b5060025461036f906001600160a01b031681565b3480156107ba57600080fd5b506103196107c93660046135e4565b6119e7565b6103196107dc3660046139a1565b611a03565b3480156107ed57600080fd5b5061041b60095481565b34801561080357600080fd5b5061036f6108123660046135e4565b6017602052600090815260409020546001600160a01b031681565b34801561083957600080fd5b50610319610848366004613816565b6129e3565b34801561085957600080fd5b50610319610868366004613ab6565b612a0d565b34801561087957600080fd5b5060105461033a9062010000900460ff1681565b34801561089957600080fd5b506103196108a836600461375c565b612a56565b3480156108b957600080fd5b506103196108c836600461375c565b612ae5565b3480156108d957600080fd5b5061041b600a5481565b3480156108ef57600080fd5b506103196108fe3660046135e4565b612b44565b34801561090f57600080fd5b5061041b61091e36600461375c565b60186020526000908152604090205481565b34801561093c57600080fd5b5061031961094b36600461375c565b612bf8565b34801561095c57600080fd5b5061041b61096b36600461375c565b60146020526000908152604090205481565b34801561098957600080fd5b5060085461036f906001600160a01b031681565b3480156109a957600080fd5b506103196109b83660046137dc565b612c57565b3480156109c957600080fd5b5061041b6109d83660046137dc565b612dfa565b3480156109e957600080fd5b506103196109f83660046136a5565b612ee3565b348015610a0957600080fd5b50610319610a183660046137dc565b612fef565b348015610a2957600080fd5b5061033a610a3836600461375c565b60166020526000908152604090205460ff1681565b348015610a5957600080fd5b50610319610a6836600461375c565b6131b4565b348015610a7957600080fd5b50610319610a883660046135e4565b613240565b348015610a9957600080fd5b506104aa6132aa565b348015610aae57600080fd5b50610319610abd366004613aef565b6132b7565b348015610ace57600080fd5b5061033a610add36600461375c565b60116020526000908152604090205460ff1681565b348015610afe57600080fd5b50610319610b0d36600461375c565b613314565b348015610b1e57600080fd5b50610319613334565b348015610b3357600080fd5b50601e5461033a9060ff1681565b600754604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610b749033908690600401613b1d565b602060405180830381865afa158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb59190613b36565b9050806001600160a01b031663d6b0f4846040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bf257600080fd5b505af1158015610c06573d6000803e3d6000fd5b505050505050565b600754604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610c419033908690600401613b1d565b602060405180830381865afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c829190613b36565b905060005b8351811015610d1a57816001600160a01b0316638ab1d681858381518110610cb157610cb1613b53565b60200260200101516040518263ffffffff1660e01b8152600401610cd591906135fd565b600060405180830381600087803b158015610cef57600080fd5b505af1158015610d03573d6000803e3d6000fd5b505050508080610d1290613b7f565b915050610c87565b50505050565b600754604051632b6419d360e11b81526000916001600160a01b0316906356c833a690610d539033908690600401613b1d565b602060405180830381865afa158015610d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d949190613b36565b600854604051631a51134960e01b81529192506001600160a01b031690631a51134990610dc690600e90600401613bd2565b602060405180830381865afa158015610de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e079190613c7e565b341015610e675760405162461bcd60e51b8152602060048201526024808201527f6d73672e76616c7565206d757374206265203e3d2077686974656c69737420666044820152636565732160e01b60648201526084015b60405180910390fd5b600054604051638b3c99e360e01b8152600560048201526001600160a01b0390911690638b3c99e39034906024016000604051808303818588803b158015610eae57600080fd5b505af1158015610ec2573d6000803e3d6000fd5b5050505050806001600160a01b031663cdfb2b4e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bf257600080fd5b6002546001600160a01b03163314610f1957600080fd5b6001600160a01b03811660009081526016602052604090205460ff1615610f735760405162461bcd60e51b815260206004820152600e60248201526d616c72656164792061646465642160901b6044820152606401610e5e565b6001600160a01b0381166000818152601660209081526040808320805460ff19166001179055601980546018845282852081905584526017909252822080546001600160a01b03191690931790925581549190610fcf83613b7f565b919050555050565b6002546001600160a01b03163314610fee57600080fd5b6001600160a01b0381166110145760405162461bcd60e51b8152600401610e5e90613c97565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600e805461104390613b98565b80601f016020809104026020016040519081016040528092919081815260200182805461106f90613b98565b80156110bc5780601f10611091576101008083540402835291602001916110bc565b820191906000526020600020905b81548152906001019060200180831161109f57829003601f168201915b505050505081565b6002546001600160a01b031633146110db57600080fd5b6010805460ff19169055565b600c805461104390613b98565b6002546001600160a01b0316331461110b57600080fd5b6001600160a01b0381166111315760405162461bcd60e51b8152600401610e5e90613c97565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b0316331461116a57600080fd5b601e80549115156101000261ff0019909216919091179055565b6002546001600160a01b0316331461119b57600080fd5b601d55565b6002546001600160a01b031633146111b757600080fd5b601054610100900460ff166112015760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48191a5cd8589b195960821b6044820152606401610e5e565b6010805461ff0019169055565b6002546001600160a01b0316331461122557600080fd5b6001600160a01b03811660009081526016602052604090205460ff166112815760405162461bcd60e51b81526020600482015260116024820152701b9bdd081a5b881859191959081b1a5cdd607a1b6044820152606401610e5e565b6001600160a01b03166000908152601660205260409020805460ff19169055565b6002546001600160a01b031633146112b957600080fd5b6002546040516001600160a01b03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a2600280546001600160a01b0319169055565b6002546001600160a01b0316331461131a57600080fd5b600081116113655760405162461bcd60e51b8152602060048201526018602482015277496e76616c69642070657263656e746167652076616c756560401b6044820152606401610e5e565b601a55565b600754604051637e2439b360e11b8152600091829182916001600160a01b03169063fc487366906113a19033908890600401613b1d565b606060405180830381865afa1580156113be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e29190613cc4565b60105492955090935091506301000000900460ff16156114735760075460405163cf25127360e01b81526001600160a01b039091169063cf2512739061142e9033908890600401613b1d565b6020604051808303816000875af115801561144d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114719190613d11565b505b60105462010000900460ff16156114fb5760075460405163f3d7443b60e01b81526001600160a01b039091169063f3d7443b906114b69033908890600401613b1d565b6020604051808303816000875af11580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190613d11565b505b601c54601a5461150a916133a6565b601b819055506000826001600160a01b0316632698d7076040518163ffffffff1660e01b8152600401602060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190613c7e565b90506000836001600160a01b031663e4c21cf26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115da9190613c7e565b90508082101580156115eb57508115155b1561186f576009546115fd90836133a6565b60095560015460009061161e9060649061161890869061340a565b9061348c565b600080546001600160a01b038881168084526013602090815260408086205460149092529485902054601054955163f6e99c0d60e01b8152948416600486015292166024840152604483019190915261010090920460ff16151560648201529192509063f6e99c0d906084016020604051808303816000875af11580156116a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cd9190613d11565b506040805180820182526001600160a01b038088166000818152601360209081528582205490931684523383850152818152601490925290839020549251634d2a907360e01b81529092634d2a90739261172f92909190600190600401613d2e565b6020604051808303816000875af115801561174e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117729190613c7e565b6001146117be5760405162461bcd60e51b815260206004820152601a60248201527966696e616c697a65206661696c6564206174207375636365737360301b6044820152606401610e5e565b6006546001600160a01b0386811660009081526013602090815260408083205460149092529091205492821692631d592a4d9291909116906118089060649061161890879061340a565b6040518363ffffffff1660e01b8152600401611825929190613b1d565b6020604051808303816000875af1158015611844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118689190613d11565b5050610c06565b8082108061187b575081155b15610c0657600a5461188d90836133a6565b600a556040805180820182526000808252336020808401919091526001600160a01b0388168083526014909152838220549351634d2a907360e01b81529093634d2a9073936118e0939092600401613d2e565b6020604051808303816000875af11580156118ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119239190613c7e565b600114610c065760405162461bcd60e51b8152602060048201526019602482015278199a5b985b1a5e994819985a5b195908185d081c99599d5b99603a1b6044820152606401610e5e565b6002546001600160a01b0316331461198557600080fd5b6010805460ff19166001179055565b6002546001600160a01b031633146119ab57600080fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156119e4573d6000803e3d6000fd5b50565b6002546001600160a01b031633146119fe57600080fd5b600b55565b601e5460ff16611a515760405162461bcd60e51b815260206004820152601960248201527818dc99585d1a5bdb88141c995cd85b1948191a5cd8589b1959603a1b6044820152606401610e5e565b84514210611a9c5760405162461bcd60e51b815260206004820152601860248201527773746172742074696d65206e6f7420696e2066757475726560401b6044820152606401610e5e565b600b54611ab2908660005b6020020151906133a6565b60208601511115611b055760405162461bcd60e51b815260206004820152601e60248201527f70726573616c65206475726174696f6e2065786365656473206c696d697400006044820152606401610e5e565b601d5484511015611b625760405162461bcd60e51b815260206004820152602160248201527f73636170206d7573742062652061746c65617374206d696e20726571756972656044820152601960fa1b6064820152608401610e5e565b602084015115801590611b785750604084015115155b8015611b875750606084015115155b611bc95760405162461bcd60e51b815260206004820152601360248201527276616c7565732063616e74206265207a65726f60681b6044820152606401610e5e565b606084015160808501511015611c205760405162461bcd60e51b815260206004820152601c60248201527b1b585e0818dbdb9d081b5d5cdd081899480f8f481b5a5b8818dbdb9d60221b6044820152606401610e5e565b6001600160a01b03821660009081526016602052604090205460ff16611c815760405162461bcd60e51b8152602060048201526016602482015275696e76616c696420726f75746572206164647265737360501b6044820152606401610e5e565b60105460ff1615611d2157604051602001611c9b90613d78565b6040516020818303038152906040528051906020012081604051602001611cc29190613d8b565b6040516020818303038152906040528051906020012014611d215760405162461bcd60e51b81526020600482015260196024820152781bdb9b1e48191959985d5b1d0818dbd91948185b1b1bddd959603a1b6044820152606401610e5e565b604051602001611d3090613d78565b6040516020818303038152906040528051906020012081604051602001611d579190613d8b565b6040516020818303038152906040528051906020012014158015611d7e575060105460ff16155b15612298576006546040516349e96fdd60e01b81526001600160a01b03909116906349e96fdd90611db39084906004016137c9565b6020604051808303816000875af1158015611dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df69190613d11565b611e3a5760405162461bcd60e51b8152602060048201526015602482015274696e76616c696420646973636f756e7420636f646560581b6044820152606401610e5e565b601c54600654604051635f51485160e11b8152611f3c929161161891611ec4916001600160a01b03169063bea290a290611e789088906004016137c9565b6020604051808303816000875af1158015611e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ebb9190613c7e565b601c54906134cb565b600854604051633ae42caf60e21b81526001600160a01b039091169063eb90b2bc90611ef590600d90600401613bd2565b602060405180830381865afa158015611f12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f369190613c7e565b9061340a565b341015611f9c5760405162461bcd60e51b815260206004820152602860248201527f6d73672e76616c7565206d75737420626520657175616c20746f20726566657260448201526772616c206665652160c01b6064820152608401610e5e565b600654604051630fc0b3fd60e01b815260009161202491606491611618916001600160a01b0390911690630fc0b3fd90611fda9088906004016137c9565b6020604051808303816000875af1158015611ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201d9190613c7e565b349061340a565b600654604051630f22420560e11b81529192506001600160a01b031690631e44840a906120559085906004016137c9565b6020604051808303816000875af1158015612074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120989190613b36565b6001600160a01b03166108fc829081150290604051600060405180830381858888f193505050501580156120d0573d6000803e3d6000fd5b50600054600654604051630fc0b3fd60e01b81526001600160a01b0392831692638b3c99e39261211c926064926116189261201d92911690630fc0b3fd90611e78908b906004016137c9565b6040516001600160e01b031960e084901b168152600360048201526024016000604051808303818588803b15801561215357600080fd5b505af1158015612167573d6000803e3d6000fd5b5050600654604051630f22420560e11b81526001600160a01b039091169350631d592a4d9250839150631e44840a906121a49087906004016137c9565b6020604051808303816000875af11580156121c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e79190613b36565b836040518363ffffffff1660e01b8152600401612205929190613b1d565b6020604051808303816000875af1158015612224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122489190613d11565b6122925760405162461bcd60e51b815260206004820152601b60248201527a1c9959995c9c995c905b5bdd5b9d155c19185d194819985a5b1959602a1b6044820152606401610e5e565b506123c9565b600854604051633ae42caf60e21b81526001600160a01b039091169063eb90b2bc906122c990600d90600401613bd2565b602060405180830381865afa1580156122e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230a9190613c7e565b3410156123695760405162461bcd60e51b815260206004820152602760248201527f6d73672e76616c7565206d75737420626520657175616c20746f2070726573616044820152666c65206665652160c81b6064820152608401610e5e565b600054604051638b3c99e360e01b81526004808201526001600160a01b0390911690638b3c99e39034906024016000604051808303818588803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b50505050505b60208501516123dc610258876000611aa7565b111561242a5760405162461bcd60e51b815260206004820181905260248201527f70726573616c6520706572696f64206c657373207468616e206d696e696d756d6044820152606401610e5e565b612438610258866001611aa7565b83511161249e5760405162461bcd60e51b815260206004820152602e60248201527f4c6f636b2074696d65206d75737420626520686967686572207468616e20707260448201526d6573616c6520656e642074696d6560901b6064820152608401610e5e565b60045460408401511161250a5760405162461bcd60e51b815260206004820152602e60248201527f556e69737761702070657263656e74616765206973206c6f776572207468616e60448201526d081b5a5b881d1a1c995cda1bdb1960921b6064820152608401610e5e565b600754835160408051606081018252600080825260208201526001818301529051630282544d60e21b81526001600160a01b0390931692630a09513492612558928b92339190600401613da7565b6020604051808303816000875af1158015612577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259b9190613d11565b6125e15760405162461bcd60e51b81526020600482015260176024820152761cdd1bdc9859d9481859191a5d1a5bdb8819985a5b1959604a1b6044820152606401610e5e565b600554604080516080810182523081523360208201526001600160a01b03898116928201929092528482166060820152600092919091169063d48f502990888888600260200201516040518060400160405280601a5481526020018b60006003811061264f5761264f613b53565b60200201518152506040518663ffffffff1660e01b8152600401612677959493929190613e21565b6020604051808303816000875af1158015612696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ba9190613b36565b600654604051630f22420560e11b81529192506001600160a01b031690631e44840a906126eb9085906004016137c9565b6020604051808303816000875af115801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190613b36565b6001600160a01b038281166000908152601360205260409081902080546001600160a01b031916938316939093179092556006549151630fc0b3fd60e01b8152911690630fc0b3fd906127859085906004016137c9565b6020604051808303816000875af11580156127a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c89190613c7e565b6001600160a01b03808316600090815260146020526040808220939093556007549251631996f55960e11b8152909261285e9260019291169063332deab2906128159033906004016135fd565b6020604051808303816000875af1158015612834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128589190613c7e565b906134cb565b600754604051638252401760e01b81529192506001600160a01b031690638252401790612895908c90869033908790600401613eac565b6020604051808303816000875af11580156128b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d89190613d11565b61291e5760405162461bcd60e51b81526020600482015260176024820152761c1c995cd85b19481859191c881859190819985a5b1959604a1b6044820152606401610e5e565b600654604051635ac066d560e01b81526001600160a01b0390911690635ac066d5906129509086908690600401613f17565b6020604051808303816000875af115801561296f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129939190613d11565b6129d85760405162461bcd60e51b815260206004820152601660248201527518dbd919481d5cd9481d5c19185d194819985a5b195960521b6044820152606401610e5e565b505050505050505050565b6002546001600160a01b031633146129fa57600080fd5b601e805460ff1916911515919091179055565b6002546001600160a01b03163314612a2457600080fd5b6010805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055565b6002546001600160a01b03163314612a6d57600080fd5b6001600160a01b038116612ac35760405162461bcd60e51b815260206004820152601d60248201527f666169722070726573616c6520646170702063616e74206265203078300000006044820152606401610e5e565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b03163314612afc57600080fd5b6001600160a01b038116612b225760405162461bcd60e51b8152600401610e5e90613c97565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b03163314612b5b57600080fd5b6064811115612ba55760405162461bcd60e51b81526020600482015260166024820152756f7574206f662072616e6765206665652076616c756560501b6044820152606401610e5e565b6001548103612bf35760405162461bcd60e51b815260206004820152601a6024820152794e6577206665652069732073616d65206173204f6c642066656560301b6044820152606401610e5e565b600155565b6002546001600160a01b03163314612c0f57600080fd5b6001600160a01b038116612c355760405162461bcd60e51b8152600401610e5e90613c97565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314612c6e57600080fd5b60075460405163d6b4441160e01b815260009182916001600160a01b039091169063d6b4441190612ca59087908790600401613b1d565b6040805180830381865afa158015612cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce59190613f41565b91509150612cff612cf68585612dfa565b600a54906133a6565b600a556040805160608101825260008082526001600160a01b0387811660208401528481168385015292516397993fd960e01b8152928516926397993fd992612d4c929091600401613f70565b6020604051808303816000875af1158015612d6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8f9190613c7e565b50600754604051634f647a1b60e11b81526001600160a01b0390911690639ec8f43690612dc29087908790600401613b1d565b600060405180830381600087803b158015612ddc57600080fd5b505af1158015612df0573d6000803e3d6000fd5b5050505050505050565b600754604051632b6419d360e11b815260009182916001600160a01b03909116906356c833a690612e319087908790600401613b1d565b602060405180830381865afa158015612e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e729190613b36565b90506000816001600160a01b0316632698d7076040518163ffffffff1660e01b8152600401602060405180830381865afa158015612eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed89190613c7e565b925050505b92915050565b600754604051632b6419d360e11b81526000916001600160a01b0316906356c833a690612f169033908690600401613b1d565b602060405180830381865afa158015612f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f579190613b36565b905060005b8351811015610d1a57816001600160a01b031663e43252d7858381518110612f8657612f86613b53565b60200260200101516040518263ffffffff1660e01b8152600401612faa91906135fd565b600060405180830381600087803b158015612fc457600080fd5b505af1158015612fd8573d6000803e3d6000fd5b505050508080612fe790613b7f565b915050612f5c565b6003546001600160a01b0316331461300657600080fd5b60075460405163d6b4441160e01b815260009182916001600160a01b039091169063d6b444119061303d9087908790600401613b1d565b6040805180830381865afa158015613059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061307d9190613f41565b9150915061308e612cf68585612dfa565b600a5560408051808201825260008082526001600160a01b038781166020808501919091529086168083526014909152838220549351634d2a907360e01b81529093634d2a9073936130e4939092600401613d2e565b6020604051808303816000875af1158015613103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131279190613c7e565b6001146131825760405162461bcd60e51b8152602060048201526024808201527f66696e616c697a65206661696c656420617420766f7465722063616c6c207265604482015263199d5b9960e21b6064820152608401610e5e565b600754604051634f647a1b60e11b81526001600160a01b0390911690639ec8f43690612dc29087908790600401613b1d565b6002546001600160a01b031633146131cb57600080fd5b6001600160a01b03811661321e5760405162461bcd60e51b815260206004820152601a6024820152792732bb9020b232391031b0b73a103132903d32b9379030b2323960311b6044820152606401610e5e565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b0316331461325757600080fd5b60648111156132a55760405162461bcd60e51b815260206004820152601a602482015279756e695065722076616c7565206f7574736964652072616e676560301b6044820152606401610e5e565b600455565b600d805461104390613b98565b6002546001600160a01b031633146132ce57600080fd5b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906132fa9084906004016135fd565b600060405180830381600087803b158015610bf257600080fd5b6002546001600160a01b0316331461332b57600080fd5b6119e48161350d565b6002546001600160a01b0316331461334b57600080fd5b601054610100900460ff16156133955760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b6044820152606401610e5e565b6010805461ff001916610100179055565b6000806133b38385613fb3565b9050838110156134035760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606401610e5e565b9392505050565b60008260000361341c57506000612edd565b60006134288385613fc6565b9050826134358583613fdd565b146134035760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e5e565b600061340383836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061357c565b600061340383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506135b3565b6001600160a01b03811661352057600080fd5b6002546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000818361359d5760405162461bcd60e51b8152600401610e5e91906137c9565b5060006135aa8486613fdd565b95945050505050565b600081848411156135d75760405162461bcd60e51b8152600401610e5e91906137c9565b5060006135aa8486613fff565b6000602082840312156135f657600080fd5b5035919050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b038111828210171561364a5761364a613611565b60405290565b604051601f8201601f191681016001600160401b038111828210171561367857613678613611565b604052919050565b6001600160a01b03811681146119e457600080fd5b80356136a081613680565b919050565b600080604083850312156136b857600080fd5b82356001600160401b03808211156136cf57600080fd5b818501915085601f8301126136e357600080fd5b81356020828211156136f7576136f7613611565b8160051b9250613708818401613650565b828152928401810192818101908985111561372257600080fd5b948201945b8486101561374c578535935061373c84613680565b8382529482019490820190613727565b9997909101359750505050505050565b60006020828403121561376e57600080fd5b813561340381613680565b60005b8381101561379457818101518382015260200161377c565b50506000910152565b600081518084526137b5816020860160208601613779565b601f01601f19169290920160200192915050565b602081526000613403602083018461379d565b600080604083850312156137ef57600080fd5b82356137fa81613680565b946020939093013593505050565b80151581146119e457600080fd5b60006020828403121561382857600080fd5b813561340381613808565b600082601f83011261384457600080fd5b81356001600160401b0381111561385d5761385d613611565b613870601f8201601f1916602001613650565b81815284602083860101111561388557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126138b357600080fd5b604080519081016001600160401b03811182821017156138d5576138d5613611565b80604052508060408401858111156138ec57600080fd5b845b818110156139065780358352602092830192016138ee565b509195945050505050565b600082601f83011261392257600080fd5b60405160a081016001600160401b038111828210171561394457613944613611565b6040528060a08401858111156138ec57600080fd5b600082601f83011261396a57600080fd5b604051606081016001600160401b038111828210171561398c5761398c613611565b6040528060608401858111156138ec57600080fd5b60008060008060008060006101c0888a0312156139bd57600080fd5b6001600160401b0388358110156139d357600080fd5b883589018a601f8201126139e657600080fd5b6139ee613627565b8061014083018d811115613a0157600080fd5b835b81811015613a34578581351115613a1957600080fd5b613a268f82358701613833565b845260209384019301613a03565b5050809a50505050613a4860208a01613695565b9650613a578a60408b016138a2565b9550613a668a60808b01613911565b9450613a768a6101208b01613959565b9350613a856101808a01613695565b92506101a089013581811115613a9a57600080fd5b613aa68b828c01613833565b9250505092959891949750929550565b60008060408385031215613ac957600080fd5b8235613ad481613808565b91506020830135613ae481613808565b809150509250929050565b60008060408385031215613b0257600080fd5b8235613b0d81613680565b91506020830135613ae481613680565b6001600160a01b03929092168252602082015260400190565b600060208284031215613b4857600080fd5b815161340381613680565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613b9157613b91613b69565b5060010190565b600181811c90821680613bac57607f821691505b602082108103613bcc57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208083526000845481600182811c915080831680613bf457607f831692505b8583108103613c1157634e487b7160e01b85526022600452602485fd5b878601838152602001818015613c2e5760018114613c4457613c6f565b60ff198616825284151560051b82019650613c6f565b60008b81526020902060005b86811015613c6957815484820152908501908901613c50565b83019750505b50949998505050505050505050565b600060208284031215613c9057600080fd5b5051919050565b602080825260139082015272616464722063616e6e6f74206265207a65726f60681b604082015260600190565b600080600060608486031215613cd957600080fd5b8351613ce481613680565b6020850151909350613cf581613680565b6040850151909250613d0681613680565b809150509250925092565b600060208284031215613d2357600080fd5b815161340381613808565b60808101818560005b6002811015613d5f5781516001600160a01b0316835260209283019290910190600101613d37565b5050508360408301528215156060830152949350505050565b66191959985d5b1d60ca1b815260070190565b60008251613d9d818460208701613779565b9190910192915050565b6001600160a01b0385811682526020808301869052908416604083015260c082019060608301908460005b6003811015613df1578151151584529282019290820190600101613dd2565b5050505095945050505050565b8060005b6002811015610d1a578151845260209384019390910190600101613e02565b6101c08101818760005b6004811015613e535781516001600160a01b0316835260209283019290910190600101613e2b565b505050613e636080830187613dfe565b60c082018560005b6005811015613e8a578151835260209283019290910190600101613e6b565b50505083610160830152613ea2610180830184613dfe565b9695505050505050565b60808082526000906101c0830190830187835b600a811015613ef157607f19868503018352613edc84835161379d565b93506020928301929190910190600101613ebf565b5050506001600160a01b0395861660208401529390941660408201526060015292915050565b604081526000613f2a604083018561379d565b905060018060a01b03831660208301529392505050565b60008060408385031215613f5457600080fd5b8251613f5f81613680565b6020840151909250613ae481613680565b60808101818460005b6003811015613fa15781516001600160a01b0316835260209283019290910190600101613f79565b50505082151560608301529392505050565b80820180821115612edd57612edd613b69565b8082028115828204841417612edd57612edd613b69565b600082613ffa57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115612edd57612edd613b6956fea26469706673582212207c499dab51f6cac6632c9d71a0d92a6ce781677f800acc4d975abdb52439ef6a64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009b2710f85ed4338e26a69481761f5fb8715a87150000000000000000000000000febb541ef3632925cd67daf9e82cdc8ec7a71ef00000000000000000000000037d79eea1f3d5475a7e0f0cd8f8130df8500ca29000000000000000000000000344129238deb523c02e8be4c0e7e630780711bc5000000000000000000000000c1b4c3862d252e4146ca7776faf4460b5bc2ffd9
-----Decoded View---------------
Arg [0] : _presaleDappAddr (address): 0x9B2710F85ED4338E26A69481761F5fb8715A8715
Arg [1] : _feeContract (address): 0x0FEbB541Ef3632925cD67DAf9e82CdC8Ec7a71ef
Arg [2] : _storageContract (address): 0x37d79eea1f3D5475a7e0F0CD8f8130dF8500CA29
Arg [3] : _referralContract (address): 0x344129238deB523C02e8be4C0e7E630780711BC5
Arg [4] : _feeCheckContract (address): 0xC1b4c3862d252e4146CA7776FaF4460B5bc2FFd9
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000009b2710f85ed4338e26a69481761f5fb8715a8715
Arg [1] : 0000000000000000000000000febb541ef3632925cd67daf9e82cdc8ec7a71ef
Arg [2] : 00000000000000000000000037d79eea1f3d5475a7e0f0cd8f8130df8500ca29
Arg [3] : 000000000000000000000000344129238deb523c02e8be4c0e7e630780711bc5
Arg [4] : 000000000000000000000000c1b4c3862d252e4146ca7776faf4460b5bc2ffd9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BASE | 100.00% | $3,407.01 | 0.00001009 | $0.03438 |
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.