Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 205 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 14533336 | 1433 days ago | IN | 0 ETH | 0.00308127 | ||||
| Transfer | 14395636 | 1454 days ago | IN | 0.03 ETH | 0.00341498 | ||||
| Transfer | 9226204 | 2254 days ago | IN | 0 ETH | 0.00003234 | ||||
| Transfer | 9221661 | 2255 days ago | IN | 0 ETH | 0.00003234 | ||||
| Transfer | 9221644 | 2255 days ago | IN | 0 ETH | 0.00003234 | ||||
| Transfer | 9221211 | 2255 days ago | IN | 0 ETH | 0.00003234 | ||||
| Transfer | 9220604 | 2255 days ago | IN | 0 ETH | 0.00234089 | ||||
| Transfer | 9220603 | 2255 days ago | IN | 0.556 ETH | 0.00036414 | ||||
| Transfer | 9220428 | 2255 days ago | IN | 0 ETH | 0.00003234 | ||||
| Transfer | 9215979 | 2256 days ago | IN | 0.02 ETH | 0.00036414 | ||||
| Disqualify Addre... | 9214072 | 2256 days ago | IN | 0 ETH | 0.00012236 | ||||
| Disqualify Addre... | 9214070 | 2256 days ago | IN | 0 ETH | 0.00012245 | ||||
| Transfer | 9214050 | 2256 days ago | IN | 0.01 ETH | 0.00373247 | ||||
| Transfer | 9210202 | 2257 days ago | IN | 0 ETH | 0.0000269 | ||||
| Transfer | 9208571 | 2257 days ago | IN | 0 ETH | 0.00005709 | ||||
| Transfer | 9207762 | 2257 days ago | IN | 0 ETH | 0.0000269 | ||||
| Transfer | 9207730 | 2257 days ago | IN | 0 ETH | 0.0000269 | ||||
| Transfer | 9207416 | 2257 days ago | IN | 0 ETH | 0.00011419 | ||||
| Transfer | 9207278 | 2257 days ago | IN | 0 ETH | 0.0000269 | ||||
| Transfer | 9207243 | 2257 days ago | IN | 0 ETH | 0.0000269 | ||||
| Transfer | 9202386 | 2258 days ago | IN | 0 ETH | 0.00234089 | ||||
| Transfer | 9201712 | 2258 days ago | IN | 0 ETH | 0.00005709 | ||||
| Transfer | 9200803 | 2258 days ago | IN | 0 ETH | 0.00005381 | ||||
| Transfer | 9196453 | 2259 days ago | IN | 0 ETH | 0.00005709 | ||||
| Transfer | 9196103 | 2259 days ago | IN | 0 ETH | 0.00005709 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 14533336 | 1433 days ago | 0.06433143 ETH | ||||
| - | 14395636 | 1454 days ago | 0.00165 ETH | ||||
| - | 14395636 | 1454 days ago | 0.00285 ETH | ||||
| - | 9220604 | 2255 days ago | 0.91167499 ETH | ||||
| - | 9220603 | 2255 days ago | 0.03058 ETH | ||||
| - | 9220603 | 2255 days ago | 0.05282 ETH | ||||
| - | 9215979 | 2256 days ago | 0.0011 ETH | ||||
| - | 9215979 | 2256 days ago | 0.0019 ETH | ||||
| - | 9214050 | 2256 days ago | 0.00055 ETH | ||||
| - | 9214050 | 2256 days ago | 0.00095 ETH | ||||
| - | 9208571 | 2257 days ago | 0.00391159 ETH | ||||
| - | 9207416 | 2257 days ago | 0.02114283 ETH | ||||
| - | 9202386 | 2258 days ago | 0.96951551 ETH | ||||
| - | 9201712 | 2258 days ago | 0.00373145 ETH | ||||
| - | 9196453 | 2259 days ago | 0.00416893 ETH | ||||
| - | 9196103 | 2259 days ago | 0.01135586 ETH | ||||
| - | 9195620 | 2259 days ago | 0.00055 ETH | ||||
| - | 9195620 | 2259 days ago | 0.00095 ETH | ||||
| - | 9191889 | 2260 days ago | 0.11292518 ETH | ||||
| - | 9190818 | 2260 days ago | 0.01105703 ETH | ||||
| - | 9190812 | 2260 days ago | 0.00373145 ETH | ||||
| - | 9185766 | 2261 days ago | 0.00370571 ETH | ||||
| - | 9185675 | 2261 days ago | 0.00411152 ETH | ||||
| - | 9185675 | 2261 days ago | 0.00710172 ETH | ||||
| - | 9181629 | 2262 days ago | 0.10716369 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
HedgeFund
Compiler Version
v0.4.25+commit.59dbf8f1
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2019-11-20
*/
pragma solidity 0.4.25;
/**
*
* This is s hedge fund based on the cryptocurrencies that helps to all investors in our fund
* to Minimize the risks of investing in cryptocurrencies and
* Maximize your ETH profits from 9.99% per day, 299.7% per month, 3596.4% per year.
*
*
*/
library Math {
function min(uint a, uint b) internal pure returns(uint) {
if (a > b) {
return b;
}
return a;
}
}
library Zero {
function requireNotZero(address addr) internal pure {
require(addr != address(0), "require not zero address");
}
function requireNotZero(uint val) internal pure {
require(val != 0, "require not zero value");
}
function notZero(address addr) internal pure returns(bool) {
return !(addr == address(0));
}
function isZero(address addr) internal pure returns(bool) {
return addr == address(0);
}
function isZero(uint a) internal pure returns(bool) {
return a == 0;
}
function notZero(uint a) internal pure returns(bool) {
return a != 0;
}
}
library Percent {
struct percent {
uint num;
uint den;
}
function mul(percent storage p, uint a) internal view returns (uint) {
if (a == 0) {
return 0;
}
return a*p.num/p.den;
}
function div(percent storage p, uint a) internal view returns (uint) {
return a/p.num*p.den;
}
function sub(percent storage p, uint a) internal view returns (uint) {
uint b = mul(p, a);
if (b >= a) {
return 0;
}
return a - b;
}
function add(percent storage p, uint a) internal view returns (uint) {
return a + mul(p, a);
}
function toMemory(percent storage p) internal view returns (Percent.percent memory) {
return Percent.percent(p.num, p.den);
}
function mmul(percent memory p, uint a) internal pure returns (uint) {
if (a == 0) {
return 0;
}
return a*p.num/p.den;
}
function mdiv(percent memory p, uint a) internal pure returns (uint) {
return a/p.num*p.den;
}
function msub(percent memory p, uint a) internal pure returns (uint) {
uint b = mmul(p, a);
if (b >= a) {
return 0;
}
return a - b;
}
function madd(percent memory p, uint a) internal pure returns (uint) {
return a + mmul(p, a);
}
}
library Address {
function toAddress(bytes source) internal pure returns(address addr) {
assembly { addr := mload(add(source,0x14)) }
return addr;
}
function isNotContract(address addr) internal view returns(bool) {
uint length;
assembly { length := extcodesize(addr) }
return length == 0;
}
}
/**
* @title SafeMath
* @dev Math operations with safety checks that revert on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, reverts on overflow.
*/
function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
if (_a == 0) {
return 0;
}
uint256 c = _a * _b;
require(c / _a == _b);
return c;
}
/**
* @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
*/
function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
require(_b > 0); // Solidity only automatically asserts when dividing by 0
uint256 c = _a / _b;
// assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
require(_b <= _a);
uint256 c = _a - _b;
return c;
}
/**
* @dev Adds two numbers, reverts on overflow.
*/
function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
uint256 c = _a + _b;
require(c >= _a);
return c;
}
/**
* @dev Divides two numbers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
contract Accessibility {
address private owner;
modifier onlyOwner() {
require(msg.sender == owner, "access denied");
_;
}
constructor() public {
owner = msg.sender;
}
function disown() internal {
delete owner;
}
}
contract Rev1Storage {
function investorShortInfo(address addr) public view returns(uint value, uint refBonus);
}
contract Rev2Storage {
function investorInfo(address addr) public view returns(uint investment, uint paymentTime);
}
library PrivateEntrance {
using PrivateEntrance for privateEntrance;
using Math for uint;
struct privateEntrance {
Rev1Storage rev1Storage;
Rev2Storage rev2Storage;
uint investorMaxInvestment;
uint endTimestamp;
mapping(address=>bool) hasAccess;
}
function isActive(privateEntrance storage pe) internal view returns(bool) {
return pe.endTimestamp > now;
}
function maxInvestmentFor(privateEntrance storage pe, address investorAddr) internal view returns(uint) {
if (!pe.hasAccess[investorAddr]) {
return 0;
}
(uint maxInvestment, ) = pe.rev1Storage.investorShortInfo(investorAddr);
if (maxInvestment == 0) {
return 0;
}
maxInvestment = Math.min(maxInvestment, pe.investorMaxInvestment);
(uint currInvestment, ) = pe.rev2Storage.investorInfo(investorAddr);
if (currInvestment >= maxInvestment) {
return 0;
}
return maxInvestment-currInvestment;
}
function provideAccessFor(privateEntrance storage pe, address[] addrs) internal {
for (uint16 i; i < addrs.length; i++) {
pe.hasAccess[addrs[i]] = true;
}
}
}
contract InvestorsStorage is Accessibility {
struct Investor {
uint investment;
uint paymentTime;
}
uint public size;
mapping (address => Investor) private investors;
function isInvestor(address addr) public view returns (bool) {
return investors[addr].investment > 0;
}
function investorInfo(address addr) public view returns(uint investment, uint paymentTime) {
investment = investors[addr].investment;
paymentTime = investors[addr].paymentTime;
}
function newInvestor(address addr, uint investment, uint paymentTime) public onlyOwner returns (bool) {
Investor storage inv = investors[addr];
if (inv.investment != 0 || investment == 0) {
return false;
}
inv.investment = investment;
inv.paymentTime = paymentTime;
size++;
return true;
}
function addInvestment(address addr, uint investment) public onlyOwner returns (bool) {
if (investors[addr].investment == 0) {
return false;
}
investors[addr].investment += investment;
return true;
}
function setPaymentTime(address addr, uint paymentTime) public onlyOwner returns (bool) {
if (investors[addr].investment == 0) {
return false;
}
investors[addr].paymentTime = paymentTime;
return true;
}
function disqalify(address addr) public onlyOwner returns (bool) {
if (isInvestor(addr)) {
investors[addr].investment = 0;
}
}
}
library RapidGrowthProtection {
using RapidGrowthProtection for rapidGrowthProtection;
struct rapidGrowthProtection {
uint startTimestamp;
uint maxDailyTotalInvestment;
uint8 activityDays;
mapping(uint8 => uint) dailyTotalInvestment;
}
function maxInvestmentAtNow(rapidGrowthProtection storage rgp) internal view returns(uint) {
uint day = rgp.currDay();
if (day == 0 || day > rgp.activityDays) {
return 0;
}
if (rgp.dailyTotalInvestment[uint8(day)] >= rgp.maxDailyTotalInvestment) {
return 0;
}
return rgp.maxDailyTotalInvestment - rgp.dailyTotalInvestment[uint8(day)];
}
function isActive(rapidGrowthProtection storage rgp) internal view returns(bool) {
uint day = rgp.currDay();
return day != 0 && day <= rgp.activityDays;
}
function saveInvestment(rapidGrowthProtection storage rgp, uint investment) internal returns(bool) {
uint day = rgp.currDay();
if (day == 0 || day > rgp.activityDays) {
return false;
}
if (rgp.dailyTotalInvestment[uint8(day)] + investment > rgp.maxDailyTotalInvestment) {
return false;
}
rgp.dailyTotalInvestment[uint8(day)] += investment;
return true;
}
function startAt(rapidGrowthProtection storage rgp, uint timestamp) internal {
rgp.startTimestamp = timestamp;
// restart
for (uint8 i = 1; i <= rgp.activityDays; i++) {
if (rgp.dailyTotalInvestment[i] != 0) {
delete rgp.dailyTotalInvestment[i];
}
}
}
function currDay(rapidGrowthProtection storage rgp) internal view returns(uint day) {
if (rgp.startTimestamp > now) {
return 0;
}
day = (now - rgp.startTimestamp) / 24 hours + 1;
}
}
contract HedgeFund is Accessibility {
using RapidGrowthProtection for RapidGrowthProtection.rapidGrowthProtection;
using PrivateEntrance for PrivateEntrance.privateEntrance;
using Percent for Percent.percent;
using SafeMath for uint;
using Math for uint;
// easy read for investors
using Address for *;
using Zero for *;
RapidGrowthProtection.rapidGrowthProtection private m_rgp;
PrivateEntrance.privateEntrance private m_privEnter;
mapping(address => bool) private m_referrals;
InvestorsStorage private m_investors;
// automatically generates getters
uint public constant minInvesment = 10 finney;
uint public constant maxBalance = 333e5 ether;
address public advertisingAddress;
address public adminsAddress;
uint public investmentsNumber;
uint public waveStartup;
// percents
Percent.percent private m_5_percent = Percent.percent(999,10000); // 999/10000 *100% = 9.99%
Percent.percent private m_6_percent = Percent.percent(15,100); // 15/100 *100% = 15%
Percent.percent private m_7_percent = Percent.percent(19,100); // 19/100 *100% = 19%
Percent.percent private m_8_percent = Percent.percent(18,100); // 18/100 *100% = 12%
Percent.percent private m_9_percent = Percent.percent(13,100); // 13/100 *100% = 13%
Percent.percent private m_10_percent = Percent.percent(14,100); // 14/100 *100% = 14%
Percent.percent private m_11_percent = Percent.percent(15,100); // 15/100 *100% = 15%
Percent.percent private m_12_percent = Percent.percent(16,100); // 16/100 *100% = 16%
Percent.percent private m_referal_percent = Percent.percent(10,100); // 10/100 *100% = 10%
Percent.percent private m_referrer_percent = Percent.percent(10,100); // 10/100 *100% = 10%
Percent.percent private m_referrer_percentMax = Percent.percent(15,100); // 15/100 *100% = 15%
Percent.percent private m_adminsPercent = Percent.percent(55, 1000); // 55/100 *100% = 5.5%
Percent.percent private m_advertisingPercent = Percent.percent(95, 1000);// 95/1000 *100% = 9.5%
// more events for easy read from blockchain
event LogPEInit(uint when, address rev1Storage, address rev2Storage, uint investorMaxInvestment, uint endTimestamp);
event LogSendExcessOfEther(address indexed addr, uint when, uint value, uint investment, uint excess);
event LogNewReferral(address indexed addr, address indexed referrerAddr, uint when, uint refBonus);
event LogRGPInit(uint when, uint startTimestamp, uint maxDailyTotalInvestment, uint activityDays);
event LogRGPInvestment(address indexed addr, uint when, uint investment, uint indexed day);
event LogNewInvesment(address indexed addr, uint when, uint investment, uint value);
event LogAutomaticReinvest(address indexed addr, uint when, uint investment);
event LogPayDividends(address indexed addr, uint when, uint dividends);
event LogNewInvestor(address indexed addr, uint when);
event LogBalanceChanged(uint when, uint balance);
event LogNextWave(uint when);
event LogDisown(uint when);
modifier balanceChanged {
_;
emit LogBalanceChanged(now, address(this).balance);
}
modifier notFromContract() {
require(msg.sender.isNotContract(), "only externally accounts");
_;
}
constructor() public {
adminsAddress = msg.sender;
advertisingAddress = msg.sender;
nextWave();
}
function() public payable {
// investor get him dividends
if (msg.value.isZero()) {
getMyDividends();
return;
}
// sender do invest
doInvest(msg.data.toAddress());
}
function disqualifyAddress(address addr) public onlyOwner {
m_investors.disqalify(addr);
}
function doDisown() public onlyOwner {
disown();
emit LogDisown(now);
}
function init(address rev1StorageAddr, uint timestamp) public onlyOwner {
// init Rapid Growth Protection
m_rgp.startTimestamp = timestamp + 1;
m_rgp.maxDailyTotalInvestment = 500 ether;
m_rgp.activityDays = 21;
emit LogRGPInit(
now,
m_rgp.startTimestamp,
m_rgp.maxDailyTotalInvestment,
m_rgp.activityDays
);
// init Private Entrance
m_privEnter.rev1Storage = Rev1Storage(rev1StorageAddr);
m_privEnter.rev2Storage = Rev2Storage(address(m_investors));
m_privEnter.investorMaxInvestment = 50 ether;
m_privEnter.endTimestamp = timestamp;
emit LogPEInit(
now,
address(m_privEnter.rev1Storage),
address(m_privEnter.rev2Storage),
m_privEnter.investorMaxInvestment,
m_privEnter.endTimestamp
);
}
function setAdvertisingAddress(address addr) public onlyOwner {
addr.requireNotZero();
advertisingAddress = addr;
}
function setAdminsAddress(address addr) public onlyOwner {
addr.requireNotZero();
adminsAddress = addr;
}
function privateEntranceProvideAccessFor(address[] addrs) public onlyOwner {
m_privEnter.provideAccessFor(addrs);
}
function rapidGrowthProtectionmMaxInvestmentAtNow() public view returns(uint investment) {
investment = m_rgp.maxInvestmentAtNow();
}
function investorsNumber() public view returns(uint) {
return m_investors.size();
}
function balanceETH() public view returns(uint) {
return address(this).balance;
}
function advertisingPercent() public view returns(uint numerator, uint denominator) {
(numerator, denominator) = (m_advertisingPercent.num, m_advertisingPercent.den);
}
function adminsPercent() public view returns(uint numerator, uint denominator) {
(numerator, denominator) = (m_adminsPercent.num, m_adminsPercent.den);
}
function investorInfo(address investorAddr) public view returns(uint investment, uint paymentTime, bool isReferral) {
(investment, paymentTime) = m_investors.investorInfo(investorAddr);
isReferral = m_referrals[investorAddr];
}
function investorDividendsAtNow(address investorAddr) public view returns(uint dividends) {
dividends = calcDividends(investorAddr);
}
function dailyPercentAtNow() public view returns(uint numerator, uint denominator) {
Percent.percent memory p = dailyPercent();
(numerator, denominator) = (p.num, p.den);
}
function getMyDividends() public notFromContract balanceChanged {
// calculate dividends
//check if 1 day passed after last payment
require(now.sub(getMemInvestor(msg.sender).paymentTime) > 24 hours);
uint dividends = calcDividends(msg.sender);
require (dividends.notZero(), "cannot to pay zero dividends");
// update investor payment timestamp
assert(m_investors.setPaymentTime(msg.sender, now));
// check enough eth - goto next wave if needed
if (address(this).balance <= dividends) {
nextWave();
dividends = address(this).balance;
}
// transfer dividends to investor
msg.sender.transfer(dividends);
emit LogPayDividends(msg.sender, now, dividends);
}
function doInvest(address referrerAddr) public payable notFromContract balanceChanged {
uint investment = msg.value;
uint receivedEther = msg.value;
require(investment >= minInvesment, "investment must be >= minInvesment");
require(address(this).balance <= maxBalance, "the contract eth balance limit");
if (m_rgp.isActive()) {
// use Rapid Growth Protection if needed
uint rpgMaxInvest = m_rgp.maxInvestmentAtNow();
rpgMaxInvest.requireNotZero();
investment = Math.min(investment, rpgMaxInvest);
assert(m_rgp.saveInvestment(investment));
emit LogRGPInvestment(msg.sender, now, investment, m_rgp.currDay());
} else if (m_privEnter.isActive()) {
// use Private Entrance if needed
uint peMaxInvest = m_privEnter.maxInvestmentFor(msg.sender);
peMaxInvest.requireNotZero();
investment = Math.min(investment, peMaxInvest);
}
// send excess of ether if needed
if (receivedEther > investment) {
uint excess = receivedEther - investment;
msg.sender.transfer(excess);
receivedEther = investment;
emit LogSendExcessOfEther(msg.sender, now, msg.value, investment, excess);
}
// commission
advertisingAddress.send(m_advertisingPercent.mul(receivedEther));
adminsAddress.send(m_adminsPercent.mul(receivedEther));
bool senderIsInvestor = m_investors.isInvestor(msg.sender);
// ref system works only once and only on first invest
if (referrerAddr.notZero() && !senderIsInvestor && !m_referrals[msg.sender] &&
referrerAddr != msg.sender && m_investors.isInvestor(referrerAddr)) {
m_referrals[msg.sender] = true;
// add referral bonus to investor`s and referral`s investments
uint referrerBonus = m_referrer_percent.mmul(investment);
if (investment > 10 ether) {
referrerBonus = m_referrer_percentMax.mmul(investment);
}
uint referalBonus = m_referal_percent.mmul(investment);
assert(m_investors.addInvestment(referrerAddr, referrerBonus)); // add referrer bonus
investment += referalBonus; // add referral bonus
emit LogNewReferral(msg.sender, referrerAddr, now, referalBonus);
}
// automatic reinvest - prevent burning dividends
uint dividends = calcDividends(msg.sender);
if (senderIsInvestor && dividends.notZero()) {
investment += dividends;
emit LogAutomaticReinvest(msg.sender, now, dividends);
}
if (senderIsInvestor) {
// update existing investor
assert(m_investors.addInvestment(msg.sender, investment));
assert(m_investors.setPaymentTime(msg.sender, now));
} else {
// create new investor
assert(m_investors.newInvestor(msg.sender, investment, now));
emit LogNewInvestor(msg.sender, now);
}
investmentsNumber++;
emit LogNewInvesment(msg.sender, now, investment, receivedEther);
}
function getMemInvestor(address investorAddr) internal view returns(InvestorsStorage.Investor memory) {
(uint investment, uint paymentTime) = m_investors.investorInfo(investorAddr);
return InvestorsStorage.Investor(investment, paymentTime);
}
function calcDividends(address investorAddr) internal view returns(uint dividends) {
InvestorsStorage.Investor memory investor = getMemInvestor(investorAddr);
// safe gas if dividends will be 0
if (investor.investment.isZero() || now.sub(investor.paymentTime) < 10 minutes) {
return 0;
}
// for prevent burning daily dividends if 24h did not pass - calculate it per 10 min interval
Percent.percent memory p = dailyPercent();
dividends = (now.sub(investor.paymentTime) / 10 minutes) * p.mmul(investor.investment) / 144;
}
function dailyPercent() internal view returns(Percent.percent memory p) {
uint balance = address(this).balance;
if (balance < 500 ether) {
p = m_5_percent.toMemory();
} else if ( 500 ether <= balance && balance <= 1000 ether) {
p = m_6_percent.toMemory();
} else if ( 1000 ether <= balance && balance <= 2500 ether) {
p = m_7_percent.toMemory();
} else if ( 2500 ether <= balance && balance <= 10000 ether) {
p = m_8_percent.toMemory();
} else if ( 10000 ether <= balance && balance <= 20000 ether) {
p = m_9_percent.toMemory();
} else if ( 20000 ether <= balance && balance <= 30000 ether) {
p = m_10_percent.toMemory();
} else if ( 30000 ether <= balance && balance <= 50000 ether) {
p = m_11_percent.toMemory();
} else {
p = m_12_percent.toMemory();
}
}
function nextWave() private {
m_investors = new InvestorsStorage();
investmentsNumber = 0;
waveStartup = now;
m_rgp.startAt(now);
emit LogRGPInit(now , m_rgp.startTimestamp, m_rgp.maxDailyTotalInvestment, m_rgp.activityDays);
emit LogNextWave(now);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"privateEntranceProvideAccessFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"disqualifyAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"advertisingAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rev1StorageAddr","type":"address"},{"name":"timestamp","type":"uint256"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minInvesment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"investorAddr","type":"address"}],"name":"investorDividendsAtNow","outputs":[{"name":"dividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rapidGrowthProtectionmMaxInvestmentAtNow","outputs":[{"name":"investment","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advertisingPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdminsAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"investmentsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dailyPercentAtNow","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdvertisingAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getMyDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"referrerAddr","type":"address"}],"name":"doInvest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"investorAddr","type":"address"}],"name":"investorInfo","outputs":[{"name":"investment","type":"uint256"},{"name":"paymentTime","type":"uint256"},{"name":"isReferral","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"waveStartup","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doDisown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"rev1Storage","type":"address"},{"indexed":false,"name":"rev2Storage","type":"address"},{"indexed":false,"name":"investorMaxInvestment","type":"uint256"},{"indexed":false,"name":"endTimestamp","type":"uint256"}],"name":"LogPEInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":false,"name":"excess","type":"uint256"}],"name":"LogSendExcessOfEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"referrerAddr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"refBonus","type":"uint256"}],"name":"LogNewReferral","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"startTimestamp","type":"uint256"},{"indexed":false,"name":"maxDailyTotalInvestment","type":"uint256"},{"indexed":false,"name":"activityDays","type":"uint256"}],"name":"LogRGPInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":true,"name":"day","type":"uint256"}],"name":"LogRGPInvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewInvesment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"}],"name":"LogAutomaticReinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"dividends","type":"uint256"}],"name":"LogPayDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNewInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogBalanceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNextWave","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogDisown","type":"event"}]Contract Creation Code
6103e7608081905261271060a08190526010918255601155600f60c0819052606460e08190526012828155601382815561010081905261012083905260145560158290556101408190526101608290526016556017819055600d6101808190526101a08290526018556019819055600e6101c08190526101e0829052601a55601b819055610200829052610220819052601c829055601d819055610240839052610260819052601e92909255601f829055600a6102808190526102a0839052602081905560218390556102c08190526102e0839052602255602382905561030081905261032082905260245560255560376103408190526103e861036081905260269190915560278190556103c0604052605f6103808190526103a08290526028556029553480156200013157600080fd5b506000805433600160a060020a03199182168117909255600d8054821683179055600c805490911690911790556200017164010000000062000177810204565b620002d6565b62000181620002c5565b604051809103906000f0801580156200019e573d6000803e3d6000fd5b50600b8054600160a060020a031916600160a060020a03929092169190911790556000600e5542600f819055620001e6906001906401000000006200026d810262001ee31704565b6001546002546003546040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a16040805142815290517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b80825560015b600283015460ff90811690821611620002c05760ff8116600090815260038401602052604090205415620002b75760ff811660009081526003840160205260408120555b60010162000273565b505050565b6040516104c6806200277783390190565b61249180620002e66000396000f3006080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306127a11811461018657806315aa6833146101db5780631686531a146101fc578063399ae7241461022d5780633d7ac9f81461025157806362d2c55514610278578063653c31741461028d57806373ad468a146102a2578063900334b1146102b757806390b0636f146102d85780639396df32146102ed57806395a23c3a1461031b578063984d4a93146103305780639ec6e05414610351578063b8fde2a414610366578063cb192f2c1461037b578063d50030ad1461039c578063d82fa3f1146103b1578063dbcbaca4146103c5578063eafecc7a14610406578063ecbdbb321461041b578063fc7c41af14610430575b61013034610445565b156101425761013d61044d565b610184565b61018461017f6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375061069d945050505050565b6106a4565b005b34801561019257600080fd5b506040805160206004803580820135838102808601850190965280855261018495369593946024949385019291829185019084908082843750949750610ff39650505050505050565b3480156101e757600080fd5b50610184600160a060020a0360043516611057565b34801561020857600080fd5b5061021161113e565b60408051600160a060020a039092168252519081900360200190f35b34801561023957600080fd5b50610184600160a060020a036004351660243561114d565b34801561025d57600080fd5b506102666112b2565b60408051918252519081900360200190f35b34801561028457600080fd5b506102116112bd565b34801561029957600080fd5b506102666112cc565b3480156102ae57600080fd5b5061026661135c565b3480156102c357600080fd5b50610266600160a060020a036004351661136b565b3480156102e457600080fd5b5061026661137c565b3480156102f957600080fd5b5061030261138d565b6040805192835260208301919091528051918290030190f35b34801561032757600080fd5b50610302611397565b34801561033c57600080fd5b50610184600160a060020a03600435166113a1565b34801561035d57600080fd5b50610266611432565b34801561037257600080fd5b50610302611438565b34801561038757600080fd5b50610184600160a060020a036004351661145d565b3480156103a857600080fd5b5061018461044d565b610184600160a060020a03600435166106a4565b3480156103d157600080fd5b506103e6600160a060020a03600435166114ee565b604080519384526020840192909252151582820152519081900360600190f35b34801561041257600080fd5b506102666115b4565b34801561042757600080fd5b506102666115ba565b34801561043c57600080fd5b506101846115bf565b80155b919050565b60006104583361164c565b15156104ae576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b620151806104cf6104be33611658565b60200151429063ffffffff61171c16565b116104d957600080fd5b6104e23361173a565b90506104ed816117ec565b1515610543576040805160e560020a62461bcd02815260206004820152601c60248201527f63616e6e6f7420746f20706179207a65726f206469766964656e647300000000604482015290519081900360640190fd5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b1580156105af57600080fd5b505af11580156105c3573d6000803e3d6000fd5b505050506040513d60208110156105d957600080fd5b505115156105e357fe5b303181106105f7576105f36117f1565b5030315b604051339082156108fc029083906000818181858888f19350505050158015610624573d6000803e3d6000fd5b506040805142815260208101839052815133927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150565b6014015190565b600080808080808080806106b73361164c565b151561070d576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b349850889750662386f26fc10000881015610798576040805160e560020a62461bcd02815260206004820152602260248201527f696e766573746d656e74206d757374206265203e3d206d696e496e7665736d6560448201527f6e74000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6a1b8b8c9e000e82a4800000303111156107fc576040805160e560020a62461bcd02815260206004820152601e60248201527f74686520636f6e7472616374206574682062616c616e6365206c696d69740000604482015290519081900360640190fd5b61080660016118e1565b1561088e57610815600161190c565b965061082087611986565b61082a89886119dd565b985061083d60018a63ffffffff6119f516565b151561084557fe5b61084f6001611a72565b60408051428152602081018c9052815133927f21cd51cc98547f9914bc0b314a40e645408acad21d1289eecb4dfb534fda7cfc928290030190a36108c6565b6108986005611a9c565b156108c6576108ae60053363ffffffff611aa516565b95506108b986611986565b6108c389876119dd565b98505b8888111561094e576040518989039550339086156108fc029087906000818181858888f19350505050158015610900573d6000803e3d6000fd5b50604080514281523460208201528082018b90526060810187905290518a995033917faac472d912a7451062b64c942775db41d65cce271603099e1c4760e072050951919081900360800190a25b600c54600160a060020a03166108fc61096e60288b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600d54600160a060020a031692506108fc91506109a8905060268b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600b54604080517fcee2a9cf0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216945063cee2a9cf935060248082019350602092918290030181600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b505050506040513d6020811015610a4d57600080fd5b50519350610a63600160a060020a038b16611c65565b8015610a6d575083155b8015610a895750336000908152600a602052604090205460ff16155b8015610a9e5750600160a060020a038a163314155b8015610b3a5750600b54604080517fcee2a9cf000000000000000000000000000000000000000000000000000000008152600160a060020a038d811660048301529151919092169163cee2a9cf9160248083019260209291908290030181600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b505050506040513d6020811015610b3757600080fd5b50515b15610cd657336000908152600a6020908152604091829020805460ff191660011790558151808301909252602254825260235490820152610b81908a63ffffffff611c7316565b9250678ac7230489e80000891115610bbd576040805180820190915260245481526025546020820152610bba908a63ffffffff611c7316565b92505b6040805180820190915260208054825260215490820152610be4908a63ffffffff611c7316565b600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152600160a060020a038e811660048301526024820188905291519395509116916320987e64916044808201926020929091908290030181600087803b158015610c5557600080fd5b505af1158015610c69573d6000803e3d6000fd5b505050506040513d6020811015610c7f57600080fd5b50511515610c8957fe5b604080514281526020810184905281519a84019a600160a060020a038d169233927fc04fb14bddd876003a335c37b1fe6524ac1dbf74eb64dd08cd085fba4b97d592929081900390910190a35b610cdf3361173a565b9050838015610cf25750610cf2816117ec565b15610d3657604080514281526020810183905281519a83019a33927f149822e3a65d38c9b6f40e835864c61ef5ca0866219afc2db638e3f85ae78866928290030190a25b8315610e8257600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152336004820152602481018c90529051600160a060020a03909216916320987e64916044808201926020929091908290030181600087803b158015610da957600080fd5b505af1158015610dbd573d6000803e3d6000fd5b505050506040513d6020811015610dd357600080fd5b50511515610ddd57fe5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b158015610e4957600080fd5b505af1158015610e5d573d6000803e3d6000fd5b505050506040513d6020811015610e7357600080fd5b50511515610e7d57fe5b610f60565b600b54604080517f41b2121c000000000000000000000000000000000000000000000000000000008152336004820152602481018c90524260448201529051600160a060020a03909216916341b2121c916064808201926020929091908290030181600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b50511515610f2957fe5b60408051428152905133917fc8616cf56c542aa2540734215ee474180fc3b9cc7c2fad288000504632cacf18919081900360200190a25b600e8054600101905560408051428152602081018b90528082018a9052905133917fd5a986028ae9e04f72859f7d3c1d8ae8b649c26be5b99d4c2d98ca4a19a0502e919081900360600190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050505050505050565b600054600160a060020a03163314611043576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b61105460058263ffffffff611c9616565b50565b600054600160a060020a031633146110a7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b600b54604080517fd597d06f000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151919092169163d597d06f9160248083019260209291908290030181600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b505050506040513d602081101561113957600080fd5b505050565b600c54600160a060020a031681565b600054600160a060020a0316331461119d576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b600180820190819055681b1ae4d6e2ef50000060028190556003805460ff1916601517908190556040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a160058054600160a060020a0380851673ffffffffffffffffffffffffffffffffffffffff199283161792839055600b546006805490931690821617918290556802b5e3af16b1880000600781905560088590556040805142815294831660208601529290911683830152606083015260808201839052517f7e13d111fea1199cb6fb21cb38766240cfad970317820e8e5713da7a708285309181900360a00190a15050565b662386f26fc1000081565b600d54600160a060020a031681565b600b54604080517f949d225d0000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163949d225d91600480830192602092919082900301818787803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b505050506040513d602081101561135557600080fd5b5051905090565b6a1b8b8c9e000e82a480000081565b60006113768261173a565b92915050565b6000611388600161190c565b905090565b6028546029549091565b6026546027549091565b600054600160a060020a031633146113f1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b61140381600160a060020a0316611cfa565b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600e5481565b600080611443611f58565b61144b611d5a565b80516020909101519094909350915050565b600054600160a060020a031633146114ad576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b6114bf81600160a060020a0316611cfa565b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152825160009485948594939091169263dbcbaca4926024808301939282900301818787803b15801561155857600080fd5b505af115801561156c573d6000803e3d6000fd5b505050506040513d604081101561158257600080fd5b508051602091820151600160a060020a039096166000908152600a909252604090912054909560ff9091169350915050565b600f5481565b303190565b600054600160a060020a0316331461160f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b611617611ec4565b6040805142815290517f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd5519181900360200190a1565b803b8015905b50919050565b611660611f58565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528251600094859492169263dbcbaca492602480830193919282900301818787803b1580156116c757600080fd5b505af11580156116db573d6000803e3d6000fd5b505050506040513d60408110156116f157600080fd5b50805160209182015160408051808201909152828152928301819052919450925090505b5050919050565b6000808383111561172c57600080fd5b5050808203805b5092915050565b6000611744611f58565b61174c611f58565b61175584611658565b91506117648260000151610445565b80611786575061025861178483602001514261171c90919063ffffffff16565b105b156117945760009250611715565b61179c611d5a565b82519091506090906117b590839063ffffffff611c7316565b6102586117cf85602001514261171c90919063ffffffff16565b8115156117d857fe5b04028115156117e357fe5b04949350505050565b151590565b6117f9611f6f565b604051809103906000f080158015611815573d6000803e3d6000fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600e5542600f81905561185a90600190611ee3565b6001546002546003546040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a16040805142815290517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b6000806118ed83611a72565b905080158015906119055750600283015460ff168111155b9392505050565b60008061191883611a72565b905080158061192d5750600283015460ff1681115b1561193b5760009150611652565b600183015460ff82166000908152600385016020526040902054106119635760009150611652565b60ff81166000908152600384016020526040902054600184015403915050919050565b801515611054576040805160e560020a62461bcd02815260206004820152601660248201527f72657175697265206e6f74207a65726f2076616c756500000000000000000000604482015290519081900360640190fd5b6000818311156119ee575080611376565b5090919050565b600080611a0184611a72565b9050801580611a165750600284015460ff1681115b15611a245760009150611733565b600184015460ff8216600090815260038601602052604090205484011115611a4f5760009150611733565b60ff16600090815260039390930160205250604090912080549091019055600190565b60004282600001541115611a8857506000610448565b815462015180904203046001019050919050565b60030154421090565b600160a060020a03811660009081526004830160205260408120548190819060ff161515611ad65760009250611c32565b8454604080517f993d3489000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152825193169263993d3489926024808401939192918290030181600087803b158015611b3957600080fd5b505af1158015611b4d573d6000803e3d6000fd5b505050506040513d6040811015611b6357600080fd5b50519150811515611b775760009250611c32565b611b858286600201546119dd565b6001860154604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015282519496509092169263dbcbaca49260248082019392918290030181600087803b158015611bee57600080fd5b505af1158015611c02573d6000803e3d6000fd5b505050506040513d6040811015611c1857600080fd5b50519050818110611c2c5760009250611c32565b80820392505b505092915050565b6000811515611c4b57506000611376565b600183015483548302811515611c5d57fe5b049392505050565b600160a060020a0316151590565b6000811515611c8457506000611376565b602083015183518302811515611c5d57fe5b60005b81518161ffff161015611139576001836004016000848461ffff16815181101515611cc057fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055600101611c99565b600160a060020a0381161515611054576040805160e560020a62461bcd02815260206004820152601860248201527f72657175697265206e6f74207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b611d62611f58565b3031681b1ae4d6e2ef500000811015611d8657611d7f6010611f33565b9150611ec0565b80681b1ae4d6e2ef50000011158015611da85750683635c9adc5dea000008111155b15611db757611d7f6012611f33565b80683635c9adc5dea0000011158015611dd9575068878678326eac9000008111155b15611de857611d7f6014611f33565b8068878678326eac90000011158015611e0b575069021e19e0c9bab24000008111155b15611e1a57611d7f6016611f33565b8069021e19e0c9bab240000011158015611e3e575069043c33c19375648000008111155b15611e4d57611d7f6018611f33565b8069043c33c193756480000011158015611e71575069065a4da25d3016c000008111155b15611e8057611d7f601a611f33565b8069065a4da25d3016c0000011158015611ea45750690a968163f0a57b4000008111155b15611eb357611d7f601c611f33565b611ebd601e611f33565b91505b5090565b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b80825560015b600283015460ff908116908216116111395760ff8116600090815260038401602052604090205415611f2b5760ff811660009081526003840160205260408120555b600101611ee9565b611f3b611f58565b506040805180820190915281548152600190910154602082015290565b604080518082019091526000808252602082015290565b6040516104c680611f80833901905600608060405260008054600160a060020a031916331790556104a1806100256000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320987e64811461008757806341b2121c146100bf57806344013585146100e6578063949d225d1461010a578063cee2a9cf14610131578063d597d06f14610152578063dbcbaca414610173575b600080fd5b34801561009357600080fd5b506100ab600160a060020a03600435166024356101ad565b604080519115158252519081900360200190f35b3480156100cb57600080fd5b506100ab600160a060020a036004351660243560443561024d565b3480156100f257600080fd5b506100ab600160a060020a03600435166024356102f0565b34801561011657600080fd5b5061011f61038f565b60408051918252519081900360200190f35b34801561013d57600080fd5b506100ab600160a060020a0360043516610395565b34801561015e57600080fd5b506100ab600160a060020a03600435166103b5565b34801561017f57600080fd5b50610194600160a060020a0360043516610432565b6040805192835260208301919091528051918290030190f35b60008054600160a060020a031633146101fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561022557506000610247565b50600160a060020a038216600090815260026020526040902080548201905560015b92915050565b600080548190600160a060020a031633146102a0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b50600160a060020a038416600090815260026020526040902080541515806102c6575083155b156102d457600091506102e8565b838155600180820184905580548101815591505b509392505050565b60008054600160a060020a03163314610341576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561036857506000610247565b50600160a060020a0382166000908152600260205260409020600190810182905592915050565b60015481565b600160a060020a038116600090815260026020526040812054115b919050565b60008054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b61040f82610395565b156103b057600160a060020a038216600090815260026020526040812055919050565b600160a060020a031660009081526002602052604090208054600190910154909156006163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820686cef0f9be796a89136a04a608e6a9e15278e40fc1ef0a2161f97e48dac3a8800296163636573732064656e69656400000000000000000000000000000000000000a165627a7a723058201be784ea20805f25d2556184b25cc8fc9552f1a59dc29f14a9c9e0f39641db280029608060405260008054600160a060020a031916331790556104a1806100256000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320987e64811461008757806341b2121c146100bf57806344013585146100e6578063949d225d1461010a578063cee2a9cf14610131578063d597d06f14610152578063dbcbaca414610173575b600080fd5b34801561009357600080fd5b506100ab600160a060020a03600435166024356101ad565b604080519115158252519081900360200190f35b3480156100cb57600080fd5b506100ab600160a060020a036004351660243560443561024d565b3480156100f257600080fd5b506100ab600160a060020a03600435166024356102f0565b34801561011657600080fd5b5061011f61038f565b60408051918252519081900360200190f35b34801561013d57600080fd5b506100ab600160a060020a0360043516610395565b34801561015e57600080fd5b506100ab600160a060020a03600435166103b5565b34801561017f57600080fd5b50610194600160a060020a0360043516610432565b6040805192835260208301919091528051918290030190f35b60008054600160a060020a031633146101fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561022557506000610247565b50600160a060020a038216600090815260026020526040902080548201905560015b92915050565b600080548190600160a060020a031633146102a0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b50600160a060020a038416600090815260026020526040902080541515806102c6575083155b156102d457600091506102e8565b838155600180820184905580548101815591505b509392505050565b60008054600160a060020a03163314610341576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561036857506000610247565b50600160a060020a0382166000908152600260205260409020600190810182905592915050565b60015481565b600160a060020a038116600090815260026020526040812054115b919050565b60008054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b61040f82610395565b156103b057600160a060020a038216600090815260026020526040812055919050565b600160a060020a031660009081526002602052604090208054600190910154909156006163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820686cef0f9be796a89136a04a608e6a9e15278e40fc1ef0a2161f97e48dac3a880029
Deployed Bytecode
0x6080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306127a11811461018657806315aa6833146101db5780631686531a146101fc578063399ae7241461022d5780633d7ac9f81461025157806362d2c55514610278578063653c31741461028d57806373ad468a146102a2578063900334b1146102b757806390b0636f146102d85780639396df32146102ed57806395a23c3a1461031b578063984d4a93146103305780639ec6e05414610351578063b8fde2a414610366578063cb192f2c1461037b578063d50030ad1461039c578063d82fa3f1146103b1578063dbcbaca4146103c5578063eafecc7a14610406578063ecbdbb321461041b578063fc7c41af14610430575b61013034610445565b156101425761013d61044d565b610184565b61018461017f6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375061069d945050505050565b6106a4565b005b34801561019257600080fd5b506040805160206004803580820135838102808601850190965280855261018495369593946024949385019291829185019084908082843750949750610ff39650505050505050565b3480156101e757600080fd5b50610184600160a060020a0360043516611057565b34801561020857600080fd5b5061021161113e565b60408051600160a060020a039092168252519081900360200190f35b34801561023957600080fd5b50610184600160a060020a036004351660243561114d565b34801561025d57600080fd5b506102666112b2565b60408051918252519081900360200190f35b34801561028457600080fd5b506102116112bd565b34801561029957600080fd5b506102666112cc565b3480156102ae57600080fd5b5061026661135c565b3480156102c357600080fd5b50610266600160a060020a036004351661136b565b3480156102e457600080fd5b5061026661137c565b3480156102f957600080fd5b5061030261138d565b6040805192835260208301919091528051918290030190f35b34801561032757600080fd5b50610302611397565b34801561033c57600080fd5b50610184600160a060020a03600435166113a1565b34801561035d57600080fd5b50610266611432565b34801561037257600080fd5b50610302611438565b34801561038757600080fd5b50610184600160a060020a036004351661145d565b3480156103a857600080fd5b5061018461044d565b610184600160a060020a03600435166106a4565b3480156103d157600080fd5b506103e6600160a060020a03600435166114ee565b604080519384526020840192909252151582820152519081900360600190f35b34801561041257600080fd5b506102666115b4565b34801561042757600080fd5b506102666115ba565b34801561043c57600080fd5b506101846115bf565b80155b919050565b60006104583361164c565b15156104ae576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b620151806104cf6104be33611658565b60200151429063ffffffff61171c16565b116104d957600080fd5b6104e23361173a565b90506104ed816117ec565b1515610543576040805160e560020a62461bcd02815260206004820152601c60248201527f63616e6e6f7420746f20706179207a65726f206469766964656e647300000000604482015290519081900360640190fd5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b1580156105af57600080fd5b505af11580156105c3573d6000803e3d6000fd5b505050506040513d60208110156105d957600080fd5b505115156105e357fe5b303181106105f7576105f36117f1565b5030315b604051339082156108fc029083906000818181858888f19350505050158015610624573d6000803e3d6000fd5b506040805142815260208101839052815133927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150565b6014015190565b600080808080808080806106b73361164c565b151561070d576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b349850889750662386f26fc10000881015610798576040805160e560020a62461bcd02815260206004820152602260248201527f696e766573746d656e74206d757374206265203e3d206d696e496e7665736d6560448201527f6e74000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6a1b8b8c9e000e82a4800000303111156107fc576040805160e560020a62461bcd02815260206004820152601e60248201527f74686520636f6e7472616374206574682062616c616e6365206c696d69740000604482015290519081900360640190fd5b61080660016118e1565b1561088e57610815600161190c565b965061082087611986565b61082a89886119dd565b985061083d60018a63ffffffff6119f516565b151561084557fe5b61084f6001611a72565b60408051428152602081018c9052815133927f21cd51cc98547f9914bc0b314a40e645408acad21d1289eecb4dfb534fda7cfc928290030190a36108c6565b6108986005611a9c565b156108c6576108ae60053363ffffffff611aa516565b95506108b986611986565b6108c389876119dd565b98505b8888111561094e576040518989039550339086156108fc029087906000818181858888f19350505050158015610900573d6000803e3d6000fd5b50604080514281523460208201528082018b90526060810187905290518a995033917faac472d912a7451062b64c942775db41d65cce271603099e1c4760e072050951919081900360800190a25b600c54600160a060020a03166108fc61096e60288b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600d54600160a060020a031692506108fc91506109a8905060268b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600b54604080517fcee2a9cf0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216945063cee2a9cf935060248082019350602092918290030181600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b505050506040513d6020811015610a4d57600080fd5b50519350610a63600160a060020a038b16611c65565b8015610a6d575083155b8015610a895750336000908152600a602052604090205460ff16155b8015610a9e5750600160a060020a038a163314155b8015610b3a5750600b54604080517fcee2a9cf000000000000000000000000000000000000000000000000000000008152600160a060020a038d811660048301529151919092169163cee2a9cf9160248083019260209291908290030181600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b505050506040513d6020811015610b3757600080fd5b50515b15610cd657336000908152600a6020908152604091829020805460ff191660011790558151808301909252602254825260235490820152610b81908a63ffffffff611c7316565b9250678ac7230489e80000891115610bbd576040805180820190915260245481526025546020820152610bba908a63ffffffff611c7316565b92505b6040805180820190915260208054825260215490820152610be4908a63ffffffff611c7316565b600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152600160a060020a038e811660048301526024820188905291519395509116916320987e64916044808201926020929091908290030181600087803b158015610c5557600080fd5b505af1158015610c69573d6000803e3d6000fd5b505050506040513d6020811015610c7f57600080fd5b50511515610c8957fe5b604080514281526020810184905281519a84019a600160a060020a038d169233927fc04fb14bddd876003a335c37b1fe6524ac1dbf74eb64dd08cd085fba4b97d592929081900390910190a35b610cdf3361173a565b9050838015610cf25750610cf2816117ec565b15610d3657604080514281526020810183905281519a83019a33927f149822e3a65d38c9b6f40e835864c61ef5ca0866219afc2db638e3f85ae78866928290030190a25b8315610e8257600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152336004820152602481018c90529051600160a060020a03909216916320987e64916044808201926020929091908290030181600087803b158015610da957600080fd5b505af1158015610dbd573d6000803e3d6000fd5b505050506040513d6020811015610dd357600080fd5b50511515610ddd57fe5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b158015610e4957600080fd5b505af1158015610e5d573d6000803e3d6000fd5b505050506040513d6020811015610e7357600080fd5b50511515610e7d57fe5b610f60565b600b54604080517f41b2121c000000000000000000000000000000000000000000000000000000008152336004820152602481018c90524260448201529051600160a060020a03909216916341b2121c916064808201926020929091908290030181600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b50511515610f2957fe5b60408051428152905133917fc8616cf56c542aa2540734215ee474180fc3b9cc7c2fad288000504632cacf18919081900360200190a25b600e8054600101905560408051428152602081018b90528082018a9052905133917fd5a986028ae9e04f72859f7d3c1d8ae8b649c26be5b99d4c2d98ca4a19a0502e919081900360600190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050505050505050565b600054600160a060020a03163314611043576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b61105460058263ffffffff611c9616565b50565b600054600160a060020a031633146110a7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b600b54604080517fd597d06f000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151919092169163d597d06f9160248083019260209291908290030181600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b505050506040513d602081101561113957600080fd5b505050565b600c54600160a060020a031681565b600054600160a060020a0316331461119d576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b600180820190819055681b1ae4d6e2ef50000060028190556003805460ff1916601517908190556040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a160058054600160a060020a0380851673ffffffffffffffffffffffffffffffffffffffff199283161792839055600b546006805490931690821617918290556802b5e3af16b1880000600781905560088590556040805142815294831660208601529290911683830152606083015260808201839052517f7e13d111fea1199cb6fb21cb38766240cfad970317820e8e5713da7a708285309181900360a00190a15050565b662386f26fc1000081565b600d54600160a060020a031681565b600b54604080517f949d225d0000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163949d225d91600480830192602092919082900301818787803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b505050506040513d602081101561135557600080fd5b5051905090565b6a1b8b8c9e000e82a480000081565b60006113768261173a565b92915050565b6000611388600161190c565b905090565b6028546029549091565b6026546027549091565b600054600160a060020a031633146113f1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b61140381600160a060020a0316611cfa565b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600e5481565b600080611443611f58565b61144b611d5a565b80516020909101519094909350915050565b600054600160a060020a031633146114ad576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b6114bf81600160a060020a0316611cfa565b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152825160009485948594939091169263dbcbaca4926024808301939282900301818787803b15801561155857600080fd5b505af115801561156c573d6000803e3d6000fd5b505050506040513d604081101561158257600080fd5b508051602091820151600160a060020a039096166000908152600a909252604090912054909560ff9091169350915050565b600f5481565b303190565b600054600160a060020a0316331461160f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b611617611ec4565b6040805142815290517f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd5519181900360200190a1565b803b8015905b50919050565b611660611f58565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528251600094859492169263dbcbaca492602480830193919282900301818787803b1580156116c757600080fd5b505af11580156116db573d6000803e3d6000fd5b505050506040513d60408110156116f157600080fd5b50805160209182015160408051808201909152828152928301819052919450925090505b5050919050565b6000808383111561172c57600080fd5b5050808203805b5092915050565b6000611744611f58565b61174c611f58565b61175584611658565b91506117648260000151610445565b80611786575061025861178483602001514261171c90919063ffffffff16565b105b156117945760009250611715565b61179c611d5a565b82519091506090906117b590839063ffffffff611c7316565b6102586117cf85602001514261171c90919063ffffffff16565b8115156117d857fe5b04028115156117e357fe5b04949350505050565b151590565b6117f9611f6f565b604051809103906000f080158015611815573d6000803e3d6000fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600e5542600f81905561185a90600190611ee3565b6001546002546003546040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a16040805142815290517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b6000806118ed83611a72565b905080158015906119055750600283015460ff168111155b9392505050565b60008061191883611a72565b905080158061192d5750600283015460ff1681115b1561193b5760009150611652565b600183015460ff82166000908152600385016020526040902054106119635760009150611652565b60ff81166000908152600384016020526040902054600184015403915050919050565b801515611054576040805160e560020a62461bcd02815260206004820152601660248201527f72657175697265206e6f74207a65726f2076616c756500000000000000000000604482015290519081900360640190fd5b6000818311156119ee575080611376565b5090919050565b600080611a0184611a72565b9050801580611a165750600284015460ff1681115b15611a245760009150611733565b600184015460ff8216600090815260038601602052604090205484011115611a4f5760009150611733565b60ff16600090815260039390930160205250604090912080549091019055600190565b60004282600001541115611a8857506000610448565b815462015180904203046001019050919050565b60030154421090565b600160a060020a03811660009081526004830160205260408120548190819060ff161515611ad65760009250611c32565b8454604080517f993d3489000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152825193169263993d3489926024808401939192918290030181600087803b158015611b3957600080fd5b505af1158015611b4d573d6000803e3d6000fd5b505050506040513d6040811015611b6357600080fd5b50519150811515611b775760009250611c32565b611b858286600201546119dd565b6001860154604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015282519496509092169263dbcbaca49260248082019392918290030181600087803b158015611bee57600080fd5b505af1158015611c02573d6000803e3d6000fd5b505050506040513d6040811015611c1857600080fd5b50519050818110611c2c5760009250611c32565b80820392505b505092915050565b6000811515611c4b57506000611376565b600183015483548302811515611c5d57fe5b049392505050565b600160a060020a0316151590565b6000811515611c8457506000611376565b602083015183518302811515611c5d57fe5b60005b81518161ffff161015611139576001836004016000848461ffff16815181101515611cc057fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055600101611c99565b600160a060020a0381161515611054576040805160e560020a62461bcd02815260206004820152601860248201527f72657175697265206e6f74207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b611d62611f58565b3031681b1ae4d6e2ef500000811015611d8657611d7f6010611f33565b9150611ec0565b80681b1ae4d6e2ef50000011158015611da85750683635c9adc5dea000008111155b15611db757611d7f6012611f33565b80683635c9adc5dea0000011158015611dd9575068878678326eac9000008111155b15611de857611d7f6014611f33565b8068878678326eac90000011158015611e0b575069021e19e0c9bab24000008111155b15611e1a57611d7f6016611f33565b8069021e19e0c9bab240000011158015611e3e575069043c33c19375648000008111155b15611e4d57611d7f6018611f33565b8069043c33c193756480000011158015611e71575069065a4da25d3016c000008111155b15611e8057611d7f601a611f33565b8069065a4da25d3016c0000011158015611ea45750690a968163f0a57b4000008111155b15611eb357611d7f601c611f33565b611ebd601e611f33565b91505b5090565b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b80825560015b600283015460ff908116908216116111395760ff8116600090815260038401602052604090205415611f2b5760ff811660009081526003840160205260408120555b600101611ee9565b611f3b611f58565b506040805180820190915281548152600190910154602082015290565b604080518082019091526000808252602082015290565b6040516104c680611f80833901905600608060405260008054600160a060020a031916331790556104a1806100256000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320987e64811461008757806341b2121c146100bf57806344013585146100e6578063949d225d1461010a578063cee2a9cf14610131578063d597d06f14610152578063dbcbaca414610173575b600080fd5b34801561009357600080fd5b506100ab600160a060020a03600435166024356101ad565b604080519115158252519081900360200190f35b3480156100cb57600080fd5b506100ab600160a060020a036004351660243560443561024d565b3480156100f257600080fd5b506100ab600160a060020a03600435166024356102f0565b34801561011657600080fd5b5061011f61038f565b60408051918252519081900360200190f35b34801561013d57600080fd5b506100ab600160a060020a0360043516610395565b34801561015e57600080fd5b506100ab600160a060020a03600435166103b5565b34801561017f57600080fd5b50610194600160a060020a0360043516610432565b6040805192835260208301919091528051918290030190f35b60008054600160a060020a031633146101fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561022557506000610247565b50600160a060020a038216600090815260026020526040902080548201905560015b92915050565b600080548190600160a060020a031633146102a0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b50600160a060020a038416600090815260026020526040902080541515806102c6575083155b156102d457600091506102e8565b838155600180820184905580548101815591505b509392505050565b60008054600160a060020a03163314610341576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561036857506000610247565b50600160a060020a0382166000908152600260205260409020600190810182905592915050565b60015481565b600160a060020a038116600090815260026020526040812054115b919050565b60008054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b61040f82610395565b156103b057600160a060020a038216600090815260026020526040812055919050565b600160a060020a031660009081526002602052604090208054600190910154909156006163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820686cef0f9be796a89136a04a608e6a9e15278e40fc1ef0a2161f97e48dac3a8800296163636573732064656e69656400000000000000000000000000000000000000a165627a7a723058201be784ea20805f25d2556184b25cc8fc9552f1a59dc29f14a9c9e0f39641db280029
Deployed Bytecode Sourcemap
9155:12206:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12729:18;:9;:16;:18::i;:::-;12725:72;;;12758:16;:14;:16::i;:::-;12783:7;;12725:72;12830:30;12839:20;:8;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12839:18:0;;-1:-1:-1;;;;;12839:20:0:i;:::-;12830:8;:30::i;:::-;9155:12206;14158:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14158:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14158:123:0;;-1:-1:-1;14158:123:0;;-1:-1:-1;;;;;;;14158:123:0;12872:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12872:98:0;-1:-1:-1;;;;;12872:98:0;;;;;9860:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9860:33:0;;;;;;;;-1:-1:-1;;;;;9860:33:0;;;;;;;;;;;;;;13066:828;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13066:828:0;-1:-1:-1;;;;;13066:828:0;;;;;;;9758:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9758:45:0;;;;;;;;;;;;;;;;;;;;9898:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9898:28:0;;;;14434:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14434:91:0;;;;9809:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9809:45:0;;;;15221:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15221:142:0;-1:-1:-1;;;;;15221:142:0;;;;;14287:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14287:141:0;;;;14626:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14626:176:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14808:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14808:161:0;;;;14034:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14034:118:0;-1:-1:-1;;;;;14034:118:0;;;;;9931:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9931:29:0;;;;15369:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15369:185:0;;;;13900:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13900:128:0;-1:-1:-1;;;;;13900:128:0;;;;;15560:750;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15560:750:0;;;;16316:3015;;-1:-1:-1;;;;;16316:3015:0;;;;;14975:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14975:240:0;-1:-1:-1;;;;;14975:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9965:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9965:23:0;;;;14531:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14531:89:0;;;;12976:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12976:84:0;;;;903:78;969:6;;903:78;;;;:::o;15560:750::-;15789:14;12461:26;:10;:24;:26::i;:::-;12453:63;;;;;;;-1:-1:-1;;;;;12453:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15771:8;15721:47;15729:26;15744:10;15729:14;:26::i;:::-;:38;;;15721:3;;:47;:7;:47;:::i;:::-;:58;15713:67;;;;;;15806:25;15820:10;15806:13;:25::i;:::-;15789:42;;15847:19;:9;:17;:19::i;:::-;15838:61;;;;;;;-1:-1:-1;;;;;15838:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15957:11;;:43;;;;;;15984:10;15957:43;;;;15996:3;15957:43;;;;;;-1:-1:-1;;;;;15957:11:0;;;;:26;;:43;;;;;;;;;;;;;;;:11;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;15957:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15957:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15957:43:0;15950:51;;;;;;16074:4;16066:21;:34;-1:-1:-1;16062:109:0;;16111:10;:8;:10::i;:::-;-1:-1:-1;16150:4:0;16142:21;16062:109;16219:30;;:10;;:30;;;;;16239:9;;16219:30;;;;16239:9;16219:10;:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;16261:43:0;;;16289:3;16261:43;;;;;;;;;;16277:10;;16261:43;;;;;;;;12362:45;;;12380:3;12362:45;;12393:4;12385:21;12362:45;;;;;;;;;;;;;;;;;15560:750;:::o;2390:143::-;2502:4;2491:16;2485:23;;2390:143::o;16316:3015::-;16409:15;;;;;;;;;12461:26;:10;:24;:26::i;:::-;12453:63;;;;;;;-1:-1:-1;;;;;12453:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16427:9;;-1:-1:-1;16427:9:0;;-1:-1:-1;9794:9:0;16488:26;;;16480:73;;;;;-1:-1:-1;;;;;16480:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9843:11;16576:4;16568:21;:35;;16560:78;;;;;-1:-1:-1;;;;;16560:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16651:16;:5;:14;:16::i;:::-;16647:604;;;16747:26;:5;:24;:26::i;:::-;16727:46;;16782:29;:12;:27;:29::i;:::-;16833:34;16842:10;16854:12;16833:8;:34::i;:::-;16820:47;-1:-1:-1;16883:32:0;:5;16820:47;16883:32;:20;:32;:::i;:::-;16876:40;;;;;;16976:15;:5;:13;:15::i;:::-;16930:62;;;16959:3;16930:62;;;;;;;;;;16947:10;;16930:62;;;;;;;;16647:604;;;17018:22;:11;:20;:22::i;:::-;17014:237;;;17111:40;:11;17140:10;17111:40;:28;:40;:::i;:::-;17092:59;;17160:28;:11;:26;:28::i;:::-;17210:33;17219:10;17231:11;17210:8;:33::i;:::-;17197:46;;17014:237;17318:10;17302:13;:26;17298:242;;;17388:27;;17353:26;;;;-1:-1:-1;17388:10:0;;:27;;;;;17353:26;;17388:27;;;;17353:26;17388:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;17464:68:0;;;17497:3;17464:68;;17502:9;17464:68;;;;;;;;;;;;;;;;;;17440:10;;-1:-1:-1;17485:10:0;;17464:68;;;;;;;;;;17298:242;17567:18;;-1:-1:-1;;;;;17567:18:0;:64;17591:39;:20;17616:13;17591:39;:24;:39;:::i;:::-;17567:64;;;;;;;;;;;;;;;;-1:-1:-1;;17638:13:0;;-1:-1:-1;;;;;17638:13:0;;-1:-1:-1;17638:54:0;;-1:-1:-1;17657:34:0;;-1:-1:-1;17657:15:0;17677:13;17657:34;:19;:34;:::i;:::-;17638:54;;;;;;;;;;;;;;;;-1:-1:-1;;17725:11:0;;:34;;;;;;17748:10;17725:34;;;;;;-1:-1:-1;;;;;17725:11:0;;;;-1:-1:-1;17725:22:0;;-1:-1:-1;17725:34:0;;;;;-1:-1:-1;17725:34:0;;;;;;;;:11;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;17725:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17725:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17725:34:0;;-1:-1:-1;17832:22:0;-1:-1:-1;;;;;17832:20:0;;;:22::i;:::-;:43;;;;;17859:16;17858:17;17832:43;:71;;;;-1:-1:-1;17892:10:0;17880:23;;;;:11;:23;;;;;;;;17879:24;17832:71;:108;;;;-1:-1:-1;;;;;;17914:26:0;;17930:10;17914:26;;17832:108;:148;;;;-1:-1:-1;17944:11:0;;:36;;;;;;-1:-1:-1;;;;;17944:36:0;;;;;;;;;:11;;;;;:22;;:36;;;;;;;;;;;;;;:11;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;17944:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17944:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17944:36:0;17832:148;17828:783;;;18011:10;17999:23;;;;:11;:23;;;;;;;;;:30;;-1:-1:-1;;17999:30:0;18025:4;17999:30;;;18129:23;;;;;;;;:18;:23;;;;;;;;;:35;;18153:10;18129:35;:23;:35;:::i;:::-;18108:56;;18190:8;18177:10;:21;18173:102;;;18227:26;;;;;;;;;:21;:26;;;;;;;;;:38;;18254:10;18227:38;:26;:38;:::i;:::-;18211:54;;18173:102;18311:22;;;;;;;;;:17;:22;;;;;;;;;;:34;;18334:10;18311:34;:22;:34;:::i;:::-;18361:11;;:54;;;;;;-1:-1:-1;;;;;18361:54:0;;;;;;;;;;;;;;;18291;;-1:-1:-1;18361:11:0;;;:25;;:54;;;;;;;;;;;;;;;:11;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;18361:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18361:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18361:54:0;18354:62;;;;;;18544:59;;;18585:3;18544:59;;;;;;;;;;18447:26;;;;-1:-1:-1;;;;;18544:59:0;;;18559:10;;18544:59;;;;;;;;;;;17828:783;18691:25;18705:10;18691:13;:25::i;:::-;18674:42;;18727:16;:39;;;;;18747:19;:9;:17;:19::i;:::-;18723:147;;;18814:48;;;18847:3;18814:48;;;;;;;;;;18777:23;;;;18835:10;;18814:48;;;;;;;;18723:147;18882:16;18878:349;;;18951:11;;:49;;;;;;18977:10;18951:49;;;;;;;;;;;;-1:-1:-1;;;;;18951:11:0;;;;:25;;:49;;;;;;;;;;;;;;;:11;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;18951:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18951:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18951:49:0;18944:57;;;;;;19017:11;;:43;;;;;;19044:10;19017:43;;;;19056:3;19017:43;;;;;;-1:-1:-1;;;;;19017:11:0;;;;:26;;:43;;;;;;;;;;;;;;;:11;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;19017:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19017:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19017:43:0;19010:51;;;;;;18878:349;;;19121:11;;:52;;;;;;19145:10;19121:52;;;;;;;;;;19169:3;19121:52;;;;;;-1:-1:-1;;;;;19121:11:0;;;;:23;;:52;;;;;;;;;;;;;;;:11;;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;19121:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19121:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19121:52:0;19114:60;;;;;;19188:31;;;19215:3;19188:31;;;;19203:10;;19188:31;;;;;;;;;;18878:349;19235:17;:19;;;;;;19266:59;;;19294:3;19266:59;;;;;;;;;;;;;;;;19282:10;;19266:59;;;;;;;;;;12362:45;;;12380:3;12362:45;;12393:4;12385:21;12362:45;;;;;;;;;;;;;;;;;16316:3015;;;;;;;;;;:::o;14158:123::-;4321:5;;-1:-1:-1;;;;;4321:5:0;4307:10;:19;4299:45;;;;;-1:-1:-1;;;;;4299:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4299:45:0;;;;;;;;;;;;;;;14240:35;:11;14269:5;14240:35;:28;:35;:::i;:::-;14158:123;:::o;12872:98::-;4321:5;;-1:-1:-1;;;;;4321:5:0;4307:10;:19;4299:45;;;;;-1:-1:-1;;;;;4299:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4299:45:0;;;;;;;;;;;;;;;12937:11;;:27;;;;;;-1:-1:-1;;;;;12937:27:0;;;;;;;;;:11;;;;;:21;;:27;;;;;;;;;;;;;;:11;;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;12937:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12937:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;12872:98:0:o;9860:33::-;;;-1:-1:-1;;;;;9860:33:0;;:::o;13066:828::-;4321:5;;-1:-1:-1;;;;;4321:5:0;4307:10;:19;4299:45;;;;;-1:-1:-1;;;;;4299:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4299:45:0;;;;;;;;;;;;;;;13217:1;13205:13;;;13182:36;;;;13257:9;13225:29;:41;;;13273:18;:23;;-1:-1:-1;;13273:23:0;13294:2;13273:23;;;;;13308:124;;;13327:3;13308:124;;;;;;;;;;;;;;;;13273:23;13407:18;13308:124;;;;;;;;;;;;;;13473:11;:54;;-1:-1:-1;;;;;13473:54:0;;;-1:-1:-1;;13473:54:0;;;;;;;;13580:11;;13534:23;:59;;;;;13580:11;;;13534:59;;;;;13636:8;13600:33;:44;;;13651:24;:36;;;13699:189;;;13717:3;13699:189;;13738:23;;;13699:189;;;;13780:23;;;;13699:189;;;;;;;;;;;;;;;;;;;;;;;;13066:828;;:::o;9758:45::-;9794:9;9758:45;:::o;9898:28::-;;;-1:-1:-1;;;;;9898:28:0;;:::o;14434:91::-;14501:11;;:18;;;;;;;;14481:4;;-1:-1:-1;;;;;14501:11:0;;:16;;:18;;;;;;;;;;;;;;14481:4;14501:11;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;14501:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14501:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14501:18:0;;-1:-1:-1;14434:91:0;:::o;9809:45::-;9843:11;9809:45;:::o;15221:142::-;15295:14;15330:27;15344:12;15330:13;:27::i;:::-;15318:39;15221:142;-1:-1:-1;;15221:142:0:o;14287:141::-;14359:15;14396:26;:5;:24;:26::i;:::-;14383:39;;14287:141;:::o;14626:176::-;14745:20;:24;14771;;14745;;14626:176::o;14808:161::-;14922:15;:19;14943;;14922;;14808:161::o;14034:118::-;4321:5;;-1:-1:-1;;;;;4321:5:0;4307:10;:19;4299:45;;;;;-1:-1:-1;;;;;4299:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4299:45:0;;;;;;;;;;;;;;;14098:21;:4;-1:-1:-1;;;;;14098:19:0;;:21::i;:::-;14126:13;:20;;-1:-1:-1;;14126:20:0;-1:-1:-1;;;;;14126:20:0;;;;;;;;;;14034:118::o;9931:29::-;;;;:::o;15369:185::-;15418:14;15434:16;15459:24;;:::i;:::-;15486:14;:12;:14::i;:::-;15535:5;;15542;;;;;15535;;15542;;-1:-1:-1;15369:185:0;-1:-1:-1;;15369:185:0:o;13900:128::-;4321:5;;-1:-1:-1;;;;;4321:5:0;4307:10;:19;4299:45;;;;;-1:-1:-1;;;;;4299:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4299:45:0;;;;;;;;;;;;;;;13969:21;:4;-1:-1:-1;;;;;13969:19:0;;:21::i;:::-;13997:18;:25;;-1:-1:-1;;13997:25:0;-1:-1:-1;;;;;13997:25:0;;;;;;;;;;13900:128::o;14975:240::-;15126:11;;:38;;;;;;-1:-1:-1;;;;;15126:38:0;;;;;;;;;15039:15;;;;;;15126:11;;;;;:24;;:38;;;;;;;;;;;15039:15;15126:11;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;15126:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15126:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15126:38:0;;;;;;;-1:-1:-1;;;;;15184:25:0;;;;;;;:11;:25;;;15126:38;15184:25;;;;15126:38;;15184:25;;;;;-1:-1:-1;14975:240:0;-1:-1:-1;;14975:240:0:o;9965:23::-;;;;:::o;14531:89::-;14601:4;14593:21;14531:89;:::o;12976:84::-;4321:5;;-1:-1:-1;;;;;4321:5:0;4307:10;:19;4299:45;;;;;-1:-1:-1;;;;;4299:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4299:45:0;;;;;;;;;;;;;;;13020:8;:6;:8::i;:::-;13040:14;;;13050:3;13040:14;;;;;;;;;;;;;12976:84::o;2539:160::-;2650:17;;2682:11;;;2539:160;;;;;:::o;19337:255::-;19405:25;;:::i;:::-;19484:11;;:38;;;;;;-1:-1:-1;;;;;19484:38:0;;;;;;;;;19447:15;;;;19484:11;;;:24;;:38;;;;;;;;;;;;19447:15;19484:11;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;19484:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19484:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19484:38:0;;;;;;;;19536:50;;;;;;;;;;;;;;;;;;;-1:-1:-1;19484:38:0;-1:-1:-1;19484:38:0;-1:-1:-1;19337:255:0;;;;;;:::o;3605:142::-;3665:7;;3689:8;;;;3681:17;;;;;;-1:-1:-1;;3717:7:0;;;;3605:142;;;;;;:::o;19598:573::-;19665:14;19688:41;;:::i;:::-;20025:24;;:::i;:::-;19732:28;19747:12;19732:14;:28::i;:::-;19688:72;;19813:28;:8;:19;;;:26;:28::i;:::-;:74;;;;19877:10;19845:29;19853:8;:20;;;19845:3;:7;;:29;;;;:::i;:::-;:42;19813:74;19809:105;;;19905:1;19898:8;;;;19809:105;20052:14;:12;:14::i;:::-;20139:19;;20025:41;;-1:-1:-1;20162:3:0;;20132:27;;20025:41;;20132:27;:6;:27;:::i;:::-;20118:10;20086:29;20094:8;:20;;;20086:3;:7;;:29;;;;:::i;:::-;:42;;;;;;;;20085:74;:80;;;;;;;;;19598:573;-1:-1:-1;;;;19598:573:0:o;987:79::-;1054:6;;;987:79::o;21075:283::-;21124:22;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;21110:11:0;:36;;-1:-1:-1;;21110:36:0;-1:-1:-1;;;;;21110:36:0;;;;;;;;;;-1:-1:-1;21153:17:0;:21;21195:3;21181:11;:17;;;21205:18;;-1:-1:-1;;21205:13:0;:18::i;:::-;21252:5;:20;21274:29;;21305:18;;21235:89;;;21246:3;21235:89;;;;;;;;;;;;;;;;21305:18;;21235:89;;;;;;;;;;;;;;21336:16;;;21348:3;21336:16;;;;;;;;;;;;;21075:283::o;8051:167::-;8126:4;8139:8;8150:13;:3;:11;:13::i;:::-;8139:24;-1:-1:-1;8177:8:0;;;;;:35;;-1:-1:-1;8196:16:0;;;;;;8189:23;;;8177:35;8170:42;8051:167;-1:-1:-1;;;8051:167:0:o;7662:383::-;7747:4;7760:8;7771:13;:3;:11;:13::i;:::-;7760:24;-1:-1:-1;7795:8:0;;;:34;;-1:-1:-1;7813:16:0;;;;;;7807:22;;7795:34;7791:65;;;7847:1;7840:8;;;;7791:65;7906:27;;;;7866:36;;;;;;;:24;;;:36;;;;;;:67;7862:98;;7951:1;7944:8;;;;7862:98;8003:36;;;;;;;:24;;;:36;;;;;;7973:27;;;;:66;;-1:-1:-1;7662:383:0;;;;:::o;585:104::-;648:8;;;640:43;;;;;-1:-1:-1;;;;;640:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;312:120;363:4;384:1;380;:5;376:36;;;-1:-1:-1;403:1:0;396:8;;376:36;-1:-1:-1;425:1:0;;312:120;-1:-1:-1;312:120:0:o;8224:406::-;8317:4;8330:8;8341:13;:3;:11;:13::i;:::-;8330:24;-1:-1:-1;8365:8:0;;;:34;;-1:-1:-1;8383:16:0;;;;;;8377:22;;8365:34;8361:69;;;8417:5;8410:12;;;;8361:69;8492:27;;;;8440:36;;;;;;;:24;;;:36;;;;;;:49;;:79;8436:114;;;8537:5;8530:12;;;;8436:114;8556:36;;;;;;:24;;;;;:36;;-1:-1:-1;8556:36:0;;;;:50;;;;;;;-1:-1:-1;;8224:406:0:o;8942:206::-;9016:8;9058:3;9037;:18;;;:24;9033:55;;;-1:-1:-1;9079:1:0;9072:8;;9033:55;9107:18;;9129:8;;9101:3;:24;9100:37;9140:1;9100:41;9094:47;;8942:206;;;:::o;5024:115::-;5112:15;;;5130:3;-1:-1:-1;;5024:115:0:o;5145:575::-;-1:-1:-1;;;;;5261:26:0;;5243:4;5261:26;;;:12;;;:26;;;;;;5243:4;;;;5261:26;;5260:27;5256:58;;;5305:1;5298:8;;;;5256:58;5347:14;;:46;;;;;;-1:-1:-1;;;;;5347:46:0;;;;;;;;;:14;;;:32;;:46;;;;;;;;;;;;;:14;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;5347:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5347:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5347:46:0;;-1:-1:-1;5404:18:0;;5400:49;;;5440:1;5433:8;;;;5400:49;5471;5480:13;5495:2;:24;;;5471:8;:49::i;:::-;5555:14;;;;:41;;;;;;-1:-1:-1;;;;;5555:41:0;;;;;;;;;5455:65;;-1:-1:-1;5555:14:0;;;;:27;;:41;;;;;;;;;;;;:14;;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;5555:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5555:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5555:41:0;;-1:-1:-1;5613:31:0;;;5609:62;;5662:1;5655:8;;;;5609:62;5700:14;5686:13;:28;5679:35;;5145:575;;;;;;;:::o;1155:145::-;1218:4;1235:6;;1231:37;;;-1:-1:-1;1259:1:0;1252:8;;1231:37;1289:5;;;;1283;;1281:7;;:13;;;;;;;;;1155:145;-1:-1:-1;;;1155:145:0:o;695:100::-;-1:-1:-1;;;;;770:18:0;;768:21;;695:100::o;1829:145::-;1892:4;1909:6;;1905:37;;;-1:-1:-1;1933:1:0;1926:8;;1905:37;1963:5;;;;1957;;1955:7;;:13;;;;;;5726:176;5818:8;5813:84;5832:5;:12;5828:1;:16;;;5813:84;;;5885:4;5860:2;:12;;:22;5873:5;5879:1;5873:8;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5860:22:0;;;;;;;;;;;-1:-1:-1;5860:22:0;:29;;-1:-1:-1;;5860:29:0;;;;;;;;;;-1:-1:-1;5846:3:0;5813:84;;459:120;-1:-1:-1;;;;;526:18:0;;;;518:55;;;;;-1:-1:-1;;;;;518:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20177:892;20223:24;;:::i;:::-;20279:4;20271:21;20315:9;20305:19;;20301:762;;;20340:22;:11;:20;:22::i;:::-;20336:26;;20301:762;;;20395:7;20382:9;:20;;:45;;;;;20417:10;20406:7;:21;;20382:45;20377:686;;;20442:22;:11;:20;:22::i;20377:686::-;20501:7;20487:10;:21;;:46;;;;;20523:10;20512:7;:21;;20487:46;20482:581;;;20548:22;:11;:20;:22::i;20482:581::-;20606:7;20592:10;:21;;:47;;;;;20628:11;20617:7;:22;;20592:47;20587:476;;;20654:22;:11;:20;:22::i;20587:476::-;20712:7;20697:11;:22;;:48;;;;;20734:11;20723:7;:22;;20697:48;20692:371;;;20760:22;:11;:20;:22::i;20692:371::-;20820:7;20805:11;:22;;:48;;;;;20842:11;20831:7;:22;;20805:48;20800:263;;;20868:23;:12;:21;:23::i;20800:263::-;20927:7;20912:11;:22;;:48;;;;;20949:11;20938:7;:22;;20912:48;20907:156;;;20975:23;:12;:21;:23::i;20907:156::-;21028:23;:12;:21;:23::i;:::-;21024:27;;20907:156;20177:892;;:::o;4422:52::-;4463:5;4456:12;;-1:-1:-1;;4456:12:0;;;4422:52::o;8636:300::-;8721:30;;;8791:1;8776:155;8799:16;;;;;;;;8794:21;;;;8776:155;;8835:27;;;;;;;:24;;;:27;;;;;;:32;8831:93;;8887:27;;;;;;;:24;;;:27;;;;;8880:34;8831:93;8817:3;;8776:155;;1690:133;1750:15;;:::i;:::-;-1:-1:-1;1788:29:0;;;;;;;;;1804:5;;1788:29;;1811:5;;;;;1788:29;;;;;1690:133::o;9155:12206::-;;;;;;;;;;-1:-1:-1;9155:12206:0;;;;;;;;:::o;:::-;;;;;;;;;;:::o
Swarm Source
bzzr://686cef0f9be796a89136a04a608e6a9e15278e40fc1ef0a2161f97e48dac3a88
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.16
Net Worth in ETH
0.000081
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,005.07 | 0.00008053 | $0.161467 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.