Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 25 from a total of 3,320 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw | 18295281 | 880 days ago | IN | 0 ETH | 0.00085927 | ||||
| Withdraw | 18295042 | 880 days ago | IN | 0 ETH | 0.00085927 | ||||
| Reinvest | 17598075 | 978 days ago | IN | 0 ETH | 0.00138252 | ||||
| Reinvest | 17518539 | 989 days ago | IN | 0 ETH | 0.00137214 | ||||
| Reinvest | 17445125 | 999 days ago | IN | 0 ETH | 0.00329046 | ||||
| Reinvest | 16707054 | 1104 days ago | IN | 0 ETH | 0.00187032 | ||||
| Reinvest | 16440240 | 1141 days ago | IN | 0 ETH | 0.00151186 | ||||
| Reinvest | 16366065 | 1151 days ago | IN | 0 ETH | 0.00177221 | ||||
| Reinvest | 16235804 | 1169 days ago | IN | 0 ETH | 0.0011815 | ||||
| Reinvest | 16215019 | 1172 days ago | IN | 0 ETH | 0.00111241 | ||||
| Reinvest | 16178085 | 1178 days ago | IN | 0 ETH | 0.00235698 | ||||
| Reinvest | 16121747 | 1185 days ago | IN | 0 ETH | 0.00131921 | ||||
| Reinvest | 16120273 | 1186 days ago | IN | 0 ETH | 0.00159584 | ||||
| Reinvest | 16095951 | 1189 days ago | IN | 0 ETH | 0.00104739 | ||||
| Reinvest | 16090858 | 1190 days ago | IN | 0 ETH | 0.00132712 | ||||
| Withdraw | 16090763 | 1190 days ago | IN | 0 ETH | 0.00177746 | ||||
| Reinvest | 16089075 | 1190 days ago | IN | 0 ETH | 0.00132364 | ||||
| Withdraw | 16049044 | 1196 days ago | IN | 0 ETH | 0.00190355 | ||||
| Reinvest | 16048166 | 1196 days ago | IN | 0 ETH | 0.00118624 | ||||
| Reinvest | 16045829 | 1196 days ago | IN | 0 ETH | 0.00114131 | ||||
| Reinvest | 16043553 | 1196 days ago | IN | 0 ETH | 0.00119331 | ||||
| Reinvest | 16040239 | 1197 days ago | IN | 0 ETH | 0.00119515 | ||||
| Reinvest | 16038371 | 1197 days ago | IN | 0 ETH | 0.00152774 | ||||
| Reinvest | 16027508 | 1199 days ago | IN | 0 ETH | 0.00185539 | ||||
| Withdraw | 16020720 | 1200 days ago | IN | 0 ETH | 0.00154991 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 16020720 | 1200 days ago | 0.01406861 ETH | ||||
| Transfer | 16020720 | 1200 days ago | 0.00042205 ETH | ||||
| Transfer | 16020720 | 1200 days ago | 0.00056274 ETH | ||||
| Transfer | 16020720 | 1200 days ago | 0.00042205 ETH | ||||
| Transfer | 16018791 | 1200 days ago | 0.00402183 ETH | ||||
| Transfer | 16018791 | 1200 days ago | 0.00469213 ETH | ||||
| Transfer | 16018791 | 1200 days ago | 0.00536244 ETH | ||||
| Transfer | 16018791 | 1200 days ago | 0.00201091 ETH | ||||
| Transfer | 16018791 | 1200 days ago | 0.00268122 ETH | ||||
| Transfer | 16018791 | 1200 days ago | 0.00201091 ETH | ||||
| Transfer | 16018759 | 1200 days ago | 0.03036916 ETH | ||||
| Transfer | 16018759 | 1200 days ago | 0.00091107 ETH | ||||
| Transfer | 16018759 | 1200 days ago | 0.00121476 ETH | ||||
| Transfer | 16018759 | 1200 days ago | 0.00091107 ETH | ||||
| Transfer | 16018740 | 1200 days ago | 0.0022 ETH | ||||
| Transfer | 16018740 | 1200 days ago | 0.0033 ETH | ||||
| Transfer | 16018740 | 1200 days ago | 0.0066 ETH | ||||
| Transfer | 16018740 | 1200 days ago | 0.0077 ETH | ||||
| Transfer | 16018740 | 1200 days ago | 0.0088 ETH | ||||
| Transfer | 16018740 | 1200 days ago | 0.0033 ETH | ||||
| Transfer | 16018740 | 1200 days ago | 0.0044 ETH | ||||
| Transfer | 16018740 | 1200 days ago | 0.0033 ETH | ||||
| Transfer | 15945705 | 1210 days ago | 0.01060597 ETH | ||||
| Transfer | 15945705 | 1210 days ago | 0.00031817 ETH | ||||
| Transfer | 15945705 | 1210 days ago | 0.00042423 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BullFarm
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./interfaces/IBullFund.sol";
contract BullFarm {
// Structs
struct User {
address account;
address upline;
uint deposit;
uint withdraw;
uint x3Factor;
uint x3FactorCount;
uint lastDepositUpdate;
uint deferredProfit;
uint openLines;
uint[6] missedPartnersRewardByLine;
uint[6] partnersRewardByLine;
uint[6] partnersCountByLine;
}
// Constants
uint public constant MIN_DEPOSIT_VALUE = 0.1 ether;
uint public constant MIN_REINVEST_VALUE = 0.01 ether;
uint public constant MIN_WITHDRAWAL_VALUE = 0.01 ether;
uint public constant INITIAL_MAX_DEPOSIT = 1 ether;
uint public constant MAX_DEPOSIT_DAILY_STEP = 0.2 ether;
uint public constant MAX_DEPOSIT = 20 ether;
uint public constant STAGE_PERIOD = 3 days;
uint public constant MAX_LINES = 6;
uint public constant DEVS_FEE = 300; // 3%
uint public constant HONEY_BANK_FEE = 400; // 4%
uint public constant INSURANCE_FEE = 300; // 3%
uint public constant TOTAL_FEES = DEVS_FEE + HONEY_BANK_FEE + INSURANCE_FEE; // 10%
uint[4] public PROFIT_BY_STAGES = [500,400,300,200]; // [5%, 4%, 3%, 2%]
uint[6] public OPEN_LINE_MIN_DEPOSIT = [0.1 ether, 0.5 ether, 1 ether, 1.5 ether, 2 ether, 2.5 ether];
uint[][] public PARTNER_PROGRAMS; // [12%, 10%, 8%] -> [10%, 8%, 7%, 5%] -> [9%, 7%, 6%, 5%, 3%] -> [8%, 7%, 6%, 4%, 3%, 2%]
uint public PERCENTS_DIVISOR = 10000;
// State
mapping(address => User) users;
mapping(address => bool) waitingMigration;
address public admin;
address public lineManager;
uint public launchTimestamp;
uint[] public stageTimestamps;
mapping(address => bool) unlimited;
uint public totalUsers;
// Addresses for fee distribution
address public devAddress;
address public honeyFundAddress;
IBullFarmFund public insuranceFund;
// Events
event Deposit(address account, uint value);
event Reinvest(address account, uint value);
event Withdraw(address account, uint value);
event WithdrawTokens(address account, uint value);
event Registration(address account, address upline);
event PartnerReward(address account, address upline, uint reward);
event FailedPartnerReward(address account, address upline, uint reward);
event MissedPartnerReward(address account, address upline, uint reward);
event X3FactorApply(address account, uint deposit);
event Launch();
// Modifiers
modifier onlyRegistered() {
require(users[msg.sender].account != address(0), "User is not registered");
_;
}
constructor(address _devAddress, address _honeyFundAddress, IBullFarmFund _insuranceFund) {
devAddress = _devAddress;
honeyFundAddress = _honeyFundAddress;
insuranceFund = _insuranceFund;
admin = msg.sender;
users[admin].account = admin;
users[admin].upline = admin;
users[admin].openLines = MAX_LINES;
unlimited[admin] = true;
totalUsers++;
PARTNER_PROGRAMS.push([1200, 1000, 800]); //12%, 10%, 8%
PARTNER_PROGRAMS.push([1000, 800, 700, 500]); //10%, 8%, 7%, 5%
PARTNER_PROGRAMS.push([900, 700, 600, 500, 300]); //9%, 7%, 6%, 5%, 3%
PARTNER_PROGRAMS.push([800, 700, 600, 400, 300, 200]); //8%, 7%, 6%, 4%, 3%, 2%
}
receive() external payable { /* Do nothing */ }
// State changing functions
function registerAndDeposit(address upline) payable external {
register(upline);
depositTo(msg.sender);
}
function register(address upline) public {
if(users[upline].account == address(0)) {
upline = admin;
}
require(users[msg.sender].account == address(0), "User is already registered");
require(users[upline].account != address(0), "Upline is not registered");
users[msg.sender].account = msg.sender;
users[msg.sender].upline = upline;
totalUsers++;
address curUpline = upline;
for(uint line; line < MAX_LINES; line++) {
users[curUpline].partnersCountByLine[line]++;
if (curUpline != users[curUpline].upline) {
curUpline = users[curUpline].upline;
} else {
break;
}
}
emit Registration(msg.sender, upline);
}
function deposit() payable external onlyRegistered {
depositTo(msg.sender);
}
function depositTo(address account) payable public {
require(launchTimestamp > 0, "BullFarm: not launched");
require(users[account].account != address(0), "User is not registered");
require(msg.value >= MIN_DEPOSIT_VALUE, "Deposit value is too small");
require(users[account].deposit + msg.value <= getCurrentMaxDeposit(), "Deposit limit exceeded");
require(!waitingMigration[account], "Migration required before deposit");
users[account].deferredProfit += calcProfitForPeriod(users[account].deposit, users[account].lastDepositUpdate, block.timestamp);
users[account].lastDepositUpdate = block.timestamp;
users[account].deposit += msg.value;
users[account].x3Factor += msg.value * 3;
users[account].openLines = recalcOpenLines(account);
distributeFees(msg.value);
sendPartnerRewards(account, msg.value);
emit Deposit(account, msg.value);
}
function reinvest() external onlyRegistered {
require(launchTimestamp > 0, "BullFarm: not launched");
require(users[msg.sender].deposit > 0, "Nothing to reinvest");
uint availableProfit = calcAvailableProfit(msg.sender);
require(availableProfit >= MIN_REINVEST_VALUE, "Reinvest value is too small");
require(users[msg.sender].deposit + availableProfit <= getCurrentMaxDeposit(), "Reinvest value is too big");
users[msg.sender].deferredProfit = 0;
users[msg.sender].lastDepositUpdate = block.timestamp;
users[msg.sender].deposit += availableProfit;
users[msg.sender].x3Factor += availableProfit * 3;
users[msg.sender].openLines = recalcOpenLines(msg.sender);
uint feeAndPartnersReward = availableProfit * (getCurrentTotalPartnersRewardPercents() + TOTAL_FEES) / PERCENTS_DIVISOR;
if (address(this).balance >= feeAndPartnersReward) {
distributeFees(availableProfit);
sendPartnerRewards(msg.sender, availableProfit);
}
emit Reinvest(msg.sender, availableProfit);
}
function withdraw() external onlyRegistered {
require(users[msg.sender].lastDepositUpdate > 0, "No deposits");
uint profit = calcAvailableProfit(msg.sender);
require(profit > MIN_WITHDRAWAL_VALUE, "No profit available");
users[msg.sender].deferredProfit = 0;
users[msg.sender].lastDepositUpdate = block.timestamp;
if (profit * (PERCENTS_DIVISOR + TOTAL_FEES) / PERCENTS_DIVISOR <= address(this).balance) {
users[msg.sender].withdraw += profit;
users[msg.sender].x3Factor -= min(profit, users[msg.sender].x3Factor);
distributeFees(profit);
payable(msg.sender).transfer(profit);
emit Withdraw(msg.sender, profit);
} else if(users[msg.sender].withdraw < users[msg.sender].deposit) {
users[msg.sender].withdraw += profit;
users[msg.sender].x3Factor -= min(profit, users[msg.sender].x3Factor);
insuranceFund.sendTokens(msg.sender, profit);
emit WithdrawTokens(msg.sender, profit);
} else {
revert("Withdrawal failed");
}
if (users[msg.sender].x3Factor == 0) {
applyX3Factor(msg.sender);
}
}
function launch() external {
require(msg.sender == admin, "Only admin");
require(launchTimestamp == 0, "Launch can be used only once");
launchTimestamp = block.timestamp;
stageTimestamps = [
block.timestamp,
block.timestamp + STAGE_PERIOD,
block.timestamp + 2 * STAGE_PERIOD,
block.timestamp + 3 * STAGE_PERIOD
];
emit Launch();
}
function setUnlimited(address account) external {
require(msg.sender == admin, "Only admin");
require(launchTimestamp == 0, "Can be used only before launch");
require(users[account].account == account, "User is not registered");
unlimited[account] = true;
users[account].openLines = MAX_LINES;
}
function migrate(address account) external payable {
require(msg.sender == lineManager, "Only lineManager");
require(launchTimestamp > 0, "BullFarm: not launched");
require(users[account].account != address(0), "User is not registered");
require(waitingMigration[account], "Account not waiting for migration");
waitingMigration[account] = false;
if (users[account].x3Factor > 0) {
users[account].lastDepositUpdate = block.timestamp;
users[account].deposit = msg.value;
}
distributeFees(msg.value);
sendPartnerRewards(account, msg.value);
emit Deposit(account, msg.value);
}
function setOpenLines(address account, uint lines) external {
require(msg.sender == lineManager, "Only lineManager");
require(launchTimestamp == 0, "Can be used only before launch");
require(users[account].account == account, "User is not registered");
require(lines > 0 && lines <= MAX_LINES, "Invalid lines count");
users[account].openLines = lines;
users[account].x3Factor = OPEN_LINE_MIN_DEPOSIT[lines - 1] * 3;
waitingMigration[account] = true;
}
function setLineManager(address _lineManager) external {
require(msg.sender == admin, "Only admin");
lineManager = _lineManager;
}
// Private functions
function distributeFees(uint depositValue) private {
uint devFeeValue = depositValue * DEVS_FEE / PERCENTS_DIVISOR;
(bool devFeeSent,) = payable(devAddress).call{value : devFeeValue}("");
require(devFeeSent, "Failed to send dev fee");
uint honeyFundFeeValue = depositValue * HONEY_BANK_FEE / PERCENTS_DIVISOR;
(bool honeyFundFeeSent,) = payable(honeyFundAddress).call{value : honeyFundFeeValue}("");
require(honeyFundFeeSent, "Failed to send Honey Fund fee");
uint insuranceFeeValue = depositValue * INSURANCE_FEE / PERCENTS_DIVISOR;
bool insuranceFeeSent = payable(address(insuranceFund)).send(insuranceFeeValue);
require(insuranceFeeSent, "Failed to send Insurance Fund fee");
}
function sendPartnerRewards(address account, uint depositValue) private {
uint[] memory partnersProgram = getCurrentPartnersProgram();
address upline = users[account].upline;
for(uint line; line < partnersProgram.length; line++) {
uint reward = depositValue * partnersProgram[line] / PERCENTS_DIVISOR;
if (users[upline].openLines > line) {
bool sent = payable(upline).send(reward);
if (sent) {
users[upline].partnersRewardByLine[line] += reward;
users[upline].x3Factor -= min(reward, users[upline].x3Factor);
if(users[upline].x3Factor == 0) {
applyX3Factor(upline);
}
emit PartnerReward(account, upline, reward);
} else {
// Only if receiver is smart contract with broken handler
payable(admin).transfer(reward);
emit FailedPartnerReward(account, upline, reward);
}
} else {
users[upline].missedPartnersRewardByLine[line] += reward;
emit MissedPartnerReward(account, upline, reward);
}
upline = users[upline].upline;
}
}
function applyX3Factor(address account) private {
if (unlimited[account]) {
return;
}
users[account].x3FactorCount++;
users[account].withdraw = 0;
users[account].x3Factor = 0;
users[account].lastDepositUpdate = 0;
users[account].deferredProfit = 0;
users[account].openLines = 0;
emit X3FactorApply(account, users[account].deposit);
users[account].deposit = 0;
}
// View functions
function recalcOpenLines(address account) public view returns(uint) {
for(uint i = users[account].openLines; i < MAX_LINES; i++) {
if (users[account].deposit < OPEN_LINE_MIN_DEPOSIT[i]) {
return i;
}
}
return MAX_LINES;
}
function getCurrentPartnersProgram() public view returns(uint[] memory) {
return PARTNER_PROGRAMS[getCurrentStageIndex()];
}
function getCurrentProfitPercents() public view returns(uint) {
return PROFIT_BY_STAGES[getCurrentStageIndex()];
}
function calcAvailableProfit(address account) public view returns(uint) {
uint profit = users[account].deferredProfit + calcProfitForPeriod(users[account].deposit, users[account].lastDepositUpdate, block.timestamp);
if (unlimited[account]) {
return profit;
}
return profit > users[account].x3Factor ? users[account].x3Factor : profit;
}
function calcProfitForPeriod(uint depositValue, uint from, uint to) public view returns(uint) {
if (launchTimestamp == 0 || to <= from || to < stageTimestamps[0]) {
return 0;
}
uint result;
// Profit for stage 1
if (from < stageTimestamps[1]) {
result += calcProfitForStage(depositValue, 0, min(to, stageTimestamps[1]) - max(from, stageTimestamps[0]));
}
// Profit for stage 2
if (from < stageTimestamps[2] && to > stageTimestamps[1]) {
result += calcProfitForStage(depositValue, 1, min(to, stageTimestamps[2]) - max(from, stageTimestamps[1]));
}
// Profit for stage 3
if (from < stageTimestamps[3] && to > stageTimestamps[2]) {
result += calcProfitForStage(depositValue, 2, min(to, stageTimestamps[3]) - max(from, stageTimestamps[2]));
}
// Profit for stage 4
if (to >= stageTimestamps[3]) {
result += calcProfitForStage(depositValue, 3, to - max(from, stageTimestamps[3]));
}
return result;
}
function getCurrentMaxDeposit() public view returns(uint) {
uint curMaxDep = INITIAL_MAX_DEPOSIT + MAX_DEPOSIT_DAILY_STEP * ((block.timestamp - launchTimestamp) / 1 days);
return curMaxDep > MAX_DEPOSIT ? MAX_DEPOSIT : curMaxDep;
}
function getCurrentStageIndex() public view returns(uint) {
uint timeSpent = (block.timestamp - launchTimestamp);
if (timeSpent < STAGE_PERIOD) {
return 0;
} else if (timeSpent < STAGE_PERIOD * 2) {
return 1;
} else if (timeSpent < STAGE_PERIOD * 3) {
return 2;
} else {
return 3;
}
}
function getProfitByStages() external view returns(uint[4] memory) {
return PROFIT_BY_STAGES;
}
function getOpenLinesMinDeposit() external view returns(uint[6] memory) {
return OPEN_LINE_MIN_DEPOSIT;
}
function getUser(address account) external view returns(User memory) {
return users[account];
}
function calcProfitForStage(uint depositValue, uint stageIndex, uint duration) private view returns(uint) {
return depositValue * PROFIT_BY_STAGES[stageIndex] * duration * 10000 / 1 days / 10000 / PERCENTS_DIVISOR;
}
function getStageTimestamps() external view returns(uint[] memory) {
return stageTimestamps;
}
function getCurrentTotalPartnersRewardPercents() public view returns(uint) {
uint result;
uint[] memory rewardPercents = getCurrentPartnersProgram();
for(uint i; i < rewardPercents.length; i++) {
result += rewardPercents[i];
}
return result;
}
function min(uint value1, uint value2) private pure returns(uint) {
return value1 < value2 ? value1 : value2;
}
function max(uint value1, uint value2) private pure returns(uint) {
return value1 > value2 ? value1 : value2;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface IBullFarmFund {
function sendTokens(address to, uint ethAmount) external;
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_devAddress","type":"address"},{"internalType":"address","name":"_honeyFundAddress","type":"address"},{"internalType":"contract IBullFarmFund","name":"_insuranceFund","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"upline","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"FailedPartnerReward","type":"event"},{"anonymous":false,"inputs":[],"name":"Launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"upline","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"MissedPartnerReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"upline","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"PartnerReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"upline","type":"address"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Reinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"WithdrawTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"deposit","type":"uint256"}],"name":"X3FactorApply","type":"event"},{"inputs":[],"name":"DEVS_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HONEY_BANK_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INITIAL_MAX_DEPOSIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INSURANCE_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_DEPOSIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_DEPOSIT_DAILY_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_LINES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_DEPOSIT_VALUE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_REINVEST_VALUE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_WITHDRAWAL_VALUE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"OPEN_LINE_MIN_DEPOSIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"PARTNER_PROGRAMS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERCENTS_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"PROFIT_BY_STAGES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAGE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_FEES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"calcAvailableProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"depositValue","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"}],"name":"calcProfitForPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"depositTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentMaxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentPartnersProgram","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentProfitPercents","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentStageIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentTotalPartnersRewardPercents","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOpenLinesMinDeposit","outputs":[{"internalType":"uint256[6]","name":"","type":"uint256[6]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProfitByStages","outputs":[{"internalType":"uint256[4]","name":"","type":"uint256[4]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStageTimestamps","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getUser","outputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"upline","type":"address"},{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"uint256","name":"withdraw","type":"uint256"},{"internalType":"uint256","name":"x3Factor","type":"uint256"},{"internalType":"uint256","name":"x3FactorCount","type":"uint256"},{"internalType":"uint256","name":"lastDepositUpdate","type":"uint256"},{"internalType":"uint256","name":"deferredProfit","type":"uint256"},{"internalType":"uint256","name":"openLines","type":"uint256"},{"internalType":"uint256[6]","name":"missedPartnersRewardByLine","type":"uint256[6]"},{"internalType":"uint256[6]","name":"partnersRewardByLine","type":"uint256[6]"},{"internalType":"uint256[6]","name":"partnersCountByLine","type":"uint256[6]"}],"internalType":"struct BullFarm.User","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"honeyFundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"insuranceFund","outputs":[{"internalType":"contract IBullFarmFund","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lineManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"migrate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"recalcOpenLines","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"upline","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"upline","type":"address"}],"name":"registerAndDeposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reinvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lineManager","type":"address"}],"name":"setLineManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"lines","type":"uint256"}],"name":"setOpenLines","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setUnlimited","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stageTimestamps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405260405180608001604052806101f461ffff16815260200161019061ffff16815260200161012c61ffff16815260200160c861ffff1681525060009060046200004e929190620006a4565b506040518060c0016040528067016345785d8a000067ffffffffffffffff1681526020016706f05b59d3b2000067ffffffffffffffff168152602001670de0b6b3a764000067ffffffffffffffff1681526020016714d1120d7b16000067ffffffffffffffff168152602001671bc16d674ec8000067ffffffffffffffff1681526020016722b1c8c1227a000067ffffffffffffffff168152506004906006620000fa929190620006ef565b50612710600b553480156200010e57600080fd5b50604051620062c7380380620062c783398181016040528101906200013491906200096e565b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600c6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550600160126000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060136000815480929190620004bb9062000a03565b9190505550600a60405180606001604052806104b061ffff1681526020016103e861ffff16815260200161032061ffff16815250908060018154018082558091505060019003906000526020600020016000909190919091509060036200052492919062000740565b50600a60405180608001604052806103e861ffff16815260200161032061ffff1681526020016102bc61ffff1681526020016101f461ffff16815250908060018154018082558091505060019003906000526020600020016000909190919091509060046200059592919062000798565b50600a6040518060a0016040528061038461ffff1681526020016102bc61ffff16815260200161025861ffff1681526020016101f461ffff16815260200161012c61ffff168152509080600181540180825580915050600190039060005260206000200160009091909190915090600562000612929190620007f0565b50600a6040518060c0016040528061032061ffff1681526020016102bc61ffff16815260200161025861ffff16815260200161019061ffff16815260200161012c61ffff16815260200160c861ffff16815250908060018154018082558091505060019003906000526020600020016000909190919091509060066200069a92919062000848565b5050505062000a51565b8260048101928215620006dc579160200282015b82811115620006db578251829061ffff16905591602001919060010190620006b8565b5b509050620006eb9190620008a0565b5090565b82600681019282156200072d579160200282015b828111156200072c578251829067ffffffffffffffff1690559160200191906001019062000703565b5b5090506200073c9190620008a0565b5090565b82805482825590600052602060002090810192821562000785579160200282015b8281111562000784578251829061ffff1690559160200191906001019062000761565b5b509050620007949190620008a0565b5090565b828054828255906000526020600020908101928215620007dd579160200282015b82811115620007dc578251829061ffff16905591602001919060010190620007b9565b5b509050620007ec9190620008a0565b5090565b82805482825590600052602060002090810192821562000835579160200282015b8281111562000834578251829061ffff1690559160200191906001019062000811565b5b509050620008449190620008a0565b5090565b8280548282559060005260206000209081019282156200088d579160200282015b828111156200088c578251829061ffff1690559160200191906001019062000869565b5b5090506200089c9190620008a0565b5090565b5b80821115620008bb576000816000905550600101620008a1565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008f182620008c4565b9050919050565b6200090381620008e4565b81146200090f57600080fd5b50565b6000815190506200092381620008f8565b92915050565b60006200093682620008e4565b9050919050565b620009488162000929565b81146200095457600080fd5b50565b60008151905062000968816200093d565b92915050565b6000806000606084860312156200098a5762000989620008bf565b5b60006200099a8682870162000912565b9350506020620009ad8682870162000912565b9250506040620009c08682870162000957565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600062000a1082620009f9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000a465762000a45620009ca565b5b600182019050919050565b6158668062000a616000396000f3fe60806040526004361061028c5760003560e01c8063785e24ef1161015a578063cd9d6087116100c1578063dd5967c31161007a578063dd5967c31461099c578063e72c9228146109c7578063e7eaad99146109f2578063f851a44014610a0e578063fdb5a03e14610a39578063ff8ab49414610a5057610293565b8063cd9d6087146108ca578063ce5494bb146108f5578063cff4d33a14610911578063d025d3aa1461093c578063d0e30db014610967578063daa4cf881461097157610293565b8063b760faf911610113578063b760faf9146107c5578063b7902303146107e1578063bd2e85881461080c578063bff1f9e114610837578063c2d3d74c14610862578063cbbdb7f11461089f57610293565b8063785e24ef146106a15780637a125600146106ca5780637d62bd49146106f557806392a2da1e1461072057806392ca1e8d1461075d578063a3310a5f1461078857610293565b80633ad10ef6116101fe57806365cf7c9b116101b757806365cf7c9b1461058d5780636c1f4259146105b85780636e45d039146105e35780636e5524261461060e5780636f5b3ab5146106395780636f77926b1461066457610293565b80633ad10ef6146104915780633ccfd60b146104bc5780634420e486146104d3578063461f07d7146104fc5780635ac5c206146105395780635cec62611461056457610293565b80631fe8d94c116102505780631fe8d94c1461035b57806327ae66981461038657806329a667ef146103b15780632b27720b146103ee57806333b2f5ff1461042b57806337cea5cd1461045457610293565b806301339c21146102985780630e841ab9146102af5780631573b577146102da5780631a3b6998146103055780631fce8dc71461033057610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610a7b565b005b3480156102bb57600080fd5b506102c4610bf9565b6040516102d1919061458f565b60405180910390f35b3480156102e657600080fd5b506102ef610c00565b6040516102fc919061458f565b60405180910390f35b34801561031157600080fd5b5061031a610c06565b604051610327919061458f565b60405180910390f35b34801561033c57600080fd5b50610345610c29565b604051610352919061458f565b60405180910390f35b34801561036757600080fd5b50610370610c88565b60405161037d919061458f565b60405180910390f35b34801561039257600080fd5b5061039b610cf6565b6040516103a8919061458f565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d391906145db565b610d02565b6040516103e5919061458f565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190614666565b610d26565b604051610422919061458f565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190614666565b610efe565b005b34801561046057600080fd5b5061047b600480360381019061047691906145db565b611146565b604051610488919061458f565b60405180910390f35b34801561049d57600080fd5b506104a6611161565b6040516104b391906146a2565b60405180910390f35b3480156104c857600080fd5b506104d1611187565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190614666565b611880565b005b34801561050857600080fd5b50610523600480360381019061051e91906146bd565b611dcb565b604051610530919061458f565b60405180910390f35b34801561054557600080fd5b5061054e611e08565b60405161055b919061458f565b60405180910390f35b34801561057057600080fd5b5061058b60048036038101906105869190614666565b611e0e565b005b34801561059957600080fd5b506105a2611ee2565b6040516105af919061458f565b60405180910390f35b3480156105c457600080fd5b506105cd611ee8565b6040516105da919061458f565b60405180910390f35b3480156105ef57600080fd5b506105f8611ef4565b604051610605919061458f565b60405180910390f35b34801561061a57600080fd5b50610623611efa565b604051610630919061458f565b60405180910390f35b34801561064557600080fd5b5061064e611f05565b60405161065b91906147bb565b60405180910390f35b34801561067057600080fd5b5061068b60048036038101906106869190614666565b611f80565b6040516106989190614966565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c39190614982565b61219b565b005b3480156106d657600080fd5b506106df6124a7565b6040516106ec91906146a2565b60405180910390f35b34801561070157600080fd5b5061070a6124cd565b6040516107179190614a46565b60405180910390f35b34801561072c57600080fd5b50610747600480360381019061074291906145db565b612518565b604051610754919061458f565b60405180910390f35b34801561076957600080fd5b50610772612533565b60405161077f919061458f565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa9190614666565b612553565b6040516107bc919061458f565b60405180910390f35b6107df60048036038101906107da9190614666565b61262b565b005b3480156107ed57600080fd5b506107f6612b3b565b6040516108039190614ac0565b60405180910390f35b34801561081857600080fd5b50610821612b61565b60405161082e919061458f565b60405180910390f35b34801561084357600080fd5b5061084c612b67565b604051610859919061458f565b60405180910390f35b34801561086e57600080fd5b5061088960048036038101906108849190614adb565b612b6d565b604051610896919061458f565b60405180910390f35b3480156108ab57600080fd5b506108b4612e5f565b6040516108c191906146a2565b60405180910390f35b3480156108d657600080fd5b506108df612e85565b6040516108ec919061458f565b60405180910390f35b61090f600480360381019061090a9190614666565b612e90565b005b34801561091d57600080fd5b50610926613244565b60405161093391906147bb565b60405180910390f35b34801561094857600080fd5b5061095161329c565b60405161095e919061458f565b60405180910390f35b61096f6132a1565b005b34801561097d57600080fd5b5061098661337e565b604051610993919061458f565b60405180910390f35b3480156109a857600080fd5b506109b16133f1565b6040516109be919061458f565b60405180910390f35b3480156109d357600080fd5b506109dc6133fe565b6040516109e9919061458f565b60405180910390f35b610a0c6004803603810190610a079190614666565b61340a565b005b348015610a1a57600080fd5b50610a2361341f565b604051610a3091906146a2565b60405180910390f35b348015610a4557600080fd5b50610a4e613445565b005b348015610a5c57600080fd5b50610a6561390e565b604051610a729190614b90565b60405180910390f35b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290614c08565b60405180910390fd5b600060105414610b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4790614c74565b60405180910390fd5b4260108190555060405180608001604052804281526020016203f48042610b779190614cc3565b81526020016203f4806002610b8c9190614d19565b42610b979190614cc3565b81526020016203f4806003610bac9190614d19565b42610bb79190614cc3565b8152506011906004610bca929190614429565b507f02ac8168caf2f254b394bd39e19417c5c28124ab89c9bc2d44921b19808e266960405160405180910390a1565b6203f48081565b61012c81565b600080610c1161337e565b60048110610c2257610c21614d73565b5b0154905090565b6000806000610c36611f05565b905060005b8151811015610c7f57818181518110610c5757610c56614d73565b5b602002602001015183610c6a9190614cc3565b92508080610c7790614da2565b915050610c3b565b50819250505090565b6000806201518060105442610c9d9190614deb565b610ca79190614e4e565b6702c68af0bb140000610cba9190614d19565b670de0b6b3a7640000610ccd9190614cc3565b90506801158e460913d000008111610ce55780610cf0565b6801158e460913d000005b91505090565b6702c68af0bb14000081565b60118181548110610d1257600080fd5b906000526020600020016000915090505481565b600080610db8600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015442612b6d565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154610e059190614cc3565b9050601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e625780915050610ef9565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401548111610eb15780610ef5565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401545b9150505b919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8590614c08565b60405180910390fd5b600060105414610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca90614ecb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a90614f37565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555050565b6004816006811061115657600080fd5b016000915090505481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090614f37565b60405180910390fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154116112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590614fa3565b60405180910390fd5b60006112e933610d26565b9050662386f26fc100008111611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b9061500f565b60405180910390fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555042600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555047600b5461012c61019061012c6113da9190614cc3565b6113e49190614cc3565b600b546113f19190614cc3565b836113fc9190614d19565b6114069190614e4e565b116115965780600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461145d9190614cc3565b925050819055506114b081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154613959565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282546115019190614deb565b9250508190555061151181613972565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611557573d6000803e3d6000fd5b507f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364338260405161158992919061502f565b60405180910390a1611828565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015410156117ec5780600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546116749190614cc3565b925050819055506116c781600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154613959565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282546117189190614deb565b92505081905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ab421d33836040518363ffffffff1660e01b815260040161177c92919061502f565b600060405180830381600087803b15801561179657600080fd5b505af11580156117aa573d6000803e3d6000fd5b505050507f680f2e4f4032ebf1774e8cdbaddcb1b617a5a606411c8ca96257ada338d3833c33826040516117df92919061502f565b60405180910390a1611827565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e906150a4565b60405180910390fd5b5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561187d5761187c33613c0f565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561193d57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff16600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0590615110565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad79061517c565b60405180910390fd5b33600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060136000815480929190611bf590614da2565b9190505550600081905060005b6006811015611d8d57600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206015018160068110611c5f57611c5e614d73565b5b016000815480929190611c7190614da2565b9190505550600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d7557600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611d7a565b611d8d565b8080611d8590614da2565b915050611c02565b507f2a4f530ae55f002aac4686b649762fc68e96bd8b80ac835b41777145c94e1f8a3383604051611dbf92919061519c565b60405180910390a15050565b600a8281548110611ddb57600080fd5b906000526020600020018181548110611df357600080fd5b90600052602060002001600091509150505481565b61012c81565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9590614c08565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b67016345785d8a000081565b600b5481565b662386f26fc1000081565b6060600a611f1161337e565b81548110611f2257611f21614d73565b5b90600052602060002001805480602002602001604051908101604052809291908181526020018280548015611f7657602002820191906000526020600020905b815481526020019060010190808311611f62575b5050505050905090565b611f88614476565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806101800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201600680602002604051908101604052809291908260068015612101576020028201915b8154815260200190600101908083116120ed575b50505050508152602001600f8201600680602002604051908101604052809291908260068015612146576020028201915b815481526020019060010190808311612132575b505050505081526020016015820160068060200260405190810160405280929190826006801561218b576020028201915b815481526020019060010190808311612177575b5050505050815250509050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461222b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222290615211565b60405180910390fd5b600060105414612270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226790614ecb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790614f37565b60405180910390fd5b600081118015612351575060068111155b612390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123879061527d565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550600360046001836123e89190614deb565b600681106123f9576123f8614d73565b5b01546124059190614d19565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6124d5614515565b600060048060200260405190810160405280929190826004801561250e576020028201915b8154815260200190600101908083116124fa575b5050505050905090565b6000816004811061252857600080fd5b016000915090505481565b61012c61019061012c6125469190614cc3565b6125509190614cc3565b81565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015490505b600681101561262057600481600681106125b9576125b8614d73565b5b0154600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154101561260d5780915050612626565b808061261890614da2565b91505061259c565b50600690505b919050565b600060105411612670576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612667906152e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273990614f37565b60405180910390fd5b67016345785d8a000034101561278d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278490615355565b60405180910390fd5b612795610c88565b34600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546127e39190614cc3565b1115612824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281b906153c1565b60405180910390fd5b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a890615453565b60405180910390fd5b612940600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015442612b6d565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070160008282546129919190614cc3565b9250508190555042600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555034600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612a319190614cc3565b92505081905550600334612a459190614d19565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254612a969190614cc3565b92505081905550612aa681612553565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550612af534613972565b612aff8134613eed565b7fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c8134604051612b3092919061502f565b60405180910390a150565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61019081565b60135481565b6000806010541480612b7f5750828211155b80612ba857506011600081548110612b9a57612b99614d73565b5b906000526020600020015482105b15612bb65760009050612e58565b60006011600181548110612bcd57612bcc614d73565b5b9060005260206000200154841015612c5457612c46856000612c0e876011600081548110612bfe57612bfd614d73565b5b90600052602060002001546143a4565b612c37876011600181548110612c2757612c26614d73565b5b9060005260206000200154613959565b612c419190614deb565b6143bd565b81612c519190614cc3565b90505b6011600281548110612c6957612c68614d73565b5b906000526020600020015484108015612ca057506011600181548110612c9257612c91614d73565b5b906000526020600020015483115b15612d1a57612d0c856001612cd4876011600181548110612cc457612cc3614d73565b5b90600052602060002001546143a4565b612cfd876011600281548110612ced57612cec614d73565b5b9060005260206000200154613959565b612d079190614deb565b6143bd565b81612d179190614cc3565b90505b6011600381548110612d2f57612d2e614d73565b5b906000526020600020015484108015612d6657506011600281548110612d5857612d57614d73565b5b906000526020600020015483115b15612de057612dd2856002612d9a876011600281548110612d8a57612d89614d73565b5b90600052602060002001546143a4565b612dc3876011600381548110612db357612db2614d73565b5b9060005260206000200154613959565b612dcd9190614deb565b6143bd565b81612ddd9190614cc3565b90505b6011600381548110612df557612df4614d73565b5b90600052602060002001548310612e5357612e45856003612e35876011600381548110612e2557612e24614d73565b5b90600052602060002001546143a4565b86612e409190614deb565b6143bd565b81612e509190614cc3565b90505b809150505b9392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b662386f26fc1000081565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1790615211565b60405180910390fd5b600060105411612f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5c906152e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302e90614f37565b60405180910390fd5b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166130c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ba906154e5565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015411156131f55742600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555034600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b6131fe34613972565b6132088134613eed565b7fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c813460405161323992919061502f565b60405180910390a150565b6060601180548060200260200160405190810160405280929190818152602001828054801561329257602002820191906000526020600020905b81548152602001906001019080831161327e575b5050505050905090565b600681565b600073ffffffffffffffffffffffffffffffffffffffff16600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336a90614f37565b60405180910390fd5b61337c3361262b565b565b6000806010544261338f9190614deb565b90506203f4808110156133a65760009150506133ee565b60026203f4806133b69190614d19565b8110156133c75760019150506133ee565b60036203f4806133d79190614d19565b8110156133e85760029150506133ee565b60039150505b90565b6801158e460913d0000081565b670de0b6b3a764000081565b61341381611880565b61341c3361262b565b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350e90614f37565b60405180910390fd5b60006010541161355c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613553906152e9565b60405180910390fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154116135e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135d890615551565b60405180910390fd5b60006135ec33610d26565b9050662386f26fc10000811015613638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362f906155bd565b60405180910390fd5b613640610c88565b81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461368e9190614cc3565b11156136cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c690615629565b60405180910390fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555042600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282546137b09190614cc3565b925050819055506003816137c49190614d19565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282546138159190614cc3565b9250508190555061382533612553565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055506000600b5461012c61019061012c6138839190614cc3565b61388d9190614cc3565b613895610c29565b61389f9190614cc3565b836138aa9190614d19565b6138b49190614e4e565b90508047106138d1576138c682613972565b6138d03383613eed565b5b7fbd654390d0d973e8c8376ed6053be8658870df892687852cc5c914d700291b87338360405161390292919061502f565b60405180910390a15050565b613916614537565b600460068060200260405190810160405280929190826006801561394f576020028201915b81548152602001906001019080831161393b575b5050505050905090565b6000818310613968578161396a565b825b905092915050565b6000600b5461012c836139859190614d19565b61398f9190614e4e565b90506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516139d99061567a565b60006040518083038185875af1925050503d8060008114613a16576040519150601f19603f3d011682016040523d82523d6000602084013e613a1b565b606091505b5050905080613a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a56906156db565b60405180910390fd5b6000600b5461019085613a729190614d19565b613a7c9190614e4e565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613ac69061567a565b60006040518083038185875af1925050503d8060008114613b03576040519150601f19603f3d011682016040523d82523d6000602084013e613b08565b606091505b5050905080613b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b4390615747565b60405180910390fd5b6000600b5461012c87613b5f9190614d19565b613b699190614e4e565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050905080613c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bfd906157d9565b60405180910390fd5b50505050505050565b601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613c6657613eea565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000815480929190613cb990614da2565b91905055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701819055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055507f2e7da569650ff873bdc27804d093dd4f019058746b012d06b0f411ae57009c5281600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154604051613e9992919061502f565b60405180910390a16000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b50565b6000613ef7611f05565b90506000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b825181101561439d576000600b54848381518110613f8457613f83614d73565b5b602002602001015186613f979190614d19565b613fa19190614e4e565b905081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154111561427c5760008373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050905080156141d15781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600f01846006811061408157614080614d73565b5b0160008282546140919190614cc3565b925050819055506140e482600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154613959565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282546141359190614deb565b925050819055506000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015414156141915761419084613c0f565b5b7fe33f884cf2d2a4661aef41b48edddc3a8f19aa33bde11fa6554b81a55f0146248785846040516141c4939291906157f9565b60405180910390a1614276565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015614239573d6000803e3d6000fd5b507fbec9e11c00ecccfcf4d2eccfb872560256c650f162ab1e04ff04cb4710137e7f87858460405161426d939291906157f9565b60405180910390a15b50614324565b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060090183600681106142d1576142d0614d73565b5b0160008282546142e19190614cc3565b925050819055507ffc01aa0bed8b76340f973ef45d56a7a6fa55b04ff6f9e24b5d097b929c54801f86848360405161431b939291906157f9565b60405180910390a15b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050808061439590614da2565b915050613f63565b5050505050565b60008183116143b357816143b5565b825b905092915050565b6000600b546127106201518061271085600088600481106143e1576143e0614d73565b5b0154896143ee9190614d19565b6143f89190614d19565b6144029190614d19565b61440c9190614e4e565b6144169190614e4e565b6144209190614e4e565b90509392505050565b828054828255906000526020600020908101928215614465579160200282015b82811115614464578251825591602001919060010190614449565b5b5090506144729190614559565b5090565b604051806101800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016144f5614537565b8152602001614502614537565b815260200161450f614537565b81525090565b6040518060800160405280600490602082028036833780820191505090505090565b6040518060c00160405280600690602082028036833780820191505090505090565b5b8082111561457257600081600090555060010161455a565b5090565b6000819050919050565b61458981614576565b82525050565b60006020820190506145a46000830184614580565b92915050565b600080fd5b6145b881614576565b81146145c357600080fd5b50565b6000813590506145d5816145af565b92915050565b6000602082840312156145f1576145f06145aa565b5b60006145ff848285016145c6565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061463382614608565b9050919050565b61464381614628565b811461464e57600080fd5b50565b6000813590506146608161463a565b92915050565b60006020828403121561467c5761467b6145aa565b5b600061468a84828501614651565b91505092915050565b61469c81614628565b82525050565b60006020820190506146b76000830184614693565b92915050565b600080604083850312156146d4576146d36145aa565b5b60006146e2858286016145c6565b92505060206146f3858286016145c6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61473281614576565b82525050565b60006147448383614729565b60208301905092915050565b6000602082019050919050565b6000614768826146fd565b6147728185614708565b935061477d83614719565b8060005b838110156147ae5781516147958882614738565b97506147a083614750565b925050600181019050614781565b5085935050505092915050565b600060208201905081810360008301526147d5818461475d565b905092915050565b6147e681614628565b82525050565b600060069050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b614822816147ec565b61482c81846147f7565b925061483782614802565b8060005b8381101561486857815161484f8782614738565b965061485a8361480c565b92505060018101905061483b565b505050505050565b6103608201600082015161488760008501826147dd565b50602082015161489a60208501826147dd565b5060408201516148ad6040850182614729565b5060608201516148c06060850182614729565b5060808201516148d36080850182614729565b5060a08201516148e660a0850182614729565b5060c08201516148f960c0850182614729565b5060e082015161490c60e0850182614729565b50610100820151614921610100850182614729565b50610120820151614936610120850182614819565b5061014082015161494b6101e0850182614819565b506101608201516149606102a0850182614819565b50505050565b60006103608201905061497c6000830184614870565b92915050565b60008060408385031215614999576149986145aa565b5b60006149a785828601614651565b92505060206149b8858286016145c6565b9150509250929050565b600060049050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6149f8816149c2565b614a0281846149cd565b9250614a0d826149d8565b8060005b83811015614a3e578151614a258782614738565b9650614a30836149e2565b925050600181019050614a11565b505050505050565b6000608082019050614a5b60008301846149ef565b92915050565b6000819050919050565b6000614a86614a81614a7c84614608565b614a61565b614608565b9050919050565b6000614a9882614a6b565b9050919050565b6000614aaa82614a8d565b9050919050565b614aba81614a9f565b82525050565b6000602082019050614ad56000830184614ab1565b92915050565b600080600060608486031215614af457614af36145aa565b5b6000614b02868287016145c6565b9350506020614b13868287016145c6565b9250506040614b24868287016145c6565b9150509250925092565b600081905092915050565b614b42816147ec565b614b4c8184614b2e565b9250614b5782614802565b8060005b83811015614b88578151614b6f8782614738565b9650614b7a8361480c565b925050600181019050614b5b565b505050505050565b600060c082019050614ba56000830184614b39565b92915050565b600082825260208201905092915050565b7f4f6e6c792061646d696e00000000000000000000000000000000000000000000600082015250565b6000614bf2600a83614bab565b9150614bfd82614bbc565b602082019050919050565b60006020820190508181036000830152614c2181614be5565b9050919050565b7f4c61756e63682063616e2062652075736564206f6e6c79206f6e636500000000600082015250565b6000614c5e601c83614bab565b9150614c6982614c28565b602082019050919050565b60006020820190508181036000830152614c8d81614c51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cce82614576565b9150614cd983614576565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614d0e57614d0d614c94565b5b828201905092915050565b6000614d2482614576565b9150614d2f83614576565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d6857614d67614c94565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614dad82614576565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614de057614ddf614c94565b5b600182019050919050565b6000614df682614576565b9150614e0183614576565b925082821015614e1457614e13614c94565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614e5982614576565b9150614e6483614576565b925082614e7457614e73614e1f565b5b828204905092915050565b7f43616e2062652075736564206f6e6c79206265666f7265206c61756e63680000600082015250565b6000614eb5601e83614bab565b9150614ec082614e7f565b602082019050919050565b60006020820190508181036000830152614ee481614ea8565b9050919050565b7f55736572206973206e6f74207265676973746572656400000000000000000000600082015250565b6000614f21601683614bab565b9150614f2c82614eeb565b602082019050919050565b60006020820190508181036000830152614f5081614f14565b9050919050565b7f4e6f206465706f73697473000000000000000000000000000000000000000000600082015250565b6000614f8d600b83614bab565b9150614f9882614f57565b602082019050919050565b60006020820190508181036000830152614fbc81614f80565b9050919050565b7f4e6f2070726f66697420617661696c61626c6500000000000000000000000000600082015250565b6000614ff9601383614bab565b915061500482614fc3565b602082019050919050565b6000602082019050818103600083015261502881614fec565b9050919050565b60006040820190506150446000830185614693565b6150516020830184614580565b9392505050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b600061508e601183614bab565b915061509982615058565b602082019050919050565b600060208201905081810360008301526150bd81615081565b9050919050565b7f5573657220697320616c72656164792072656769737465726564000000000000600082015250565b60006150fa601a83614bab565b9150615105826150c4565b602082019050919050565b60006020820190508181036000830152615129816150ed565b9050919050565b7f55706c696e65206973206e6f7420726567697374657265640000000000000000600082015250565b6000615166601883614bab565b915061517182615130565b602082019050919050565b6000602082019050818103600083015261519581615159565b9050919050565b60006040820190506151b16000830185614693565b6151be6020830184614693565b9392505050565b7f4f6e6c79206c696e654d616e6167657200000000000000000000000000000000600082015250565b60006151fb601083614bab565b9150615206826151c5565b602082019050919050565b6000602082019050818103600083015261522a816151ee565b9050919050565b7f496e76616c6964206c696e657320636f756e7400000000000000000000000000600082015250565b6000615267601383614bab565b915061527282615231565b602082019050919050565b600060208201905081810360008301526152968161525a565b9050919050565b7f42756c6c4661726d3a206e6f74206c61756e6368656400000000000000000000600082015250565b60006152d3601683614bab565b91506152de8261529d565b602082019050919050565b60006020820190508181036000830152615302816152c6565b9050919050565b7f4465706f7369742076616c756520697320746f6f20736d616c6c000000000000600082015250565b600061533f601a83614bab565b915061534a82615309565b602082019050919050565b6000602082019050818103600083015261536e81615332565b9050919050565b7f4465706f736974206c696d697420657863656564656400000000000000000000600082015250565b60006153ab601683614bab565b91506153b682615375565b602082019050919050565b600060208201905081810360008301526153da8161539e565b9050919050565b7f4d6967726174696f6e207265717569726564206265666f7265206465706f736960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061543d602183614bab565b9150615448826153e1565b604082019050919050565b6000602082019050818103600083015261546c81615430565b9050919050565b7f4163636f756e74206e6f742077616974696e6720666f72206d6967726174696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006154cf602183614bab565b91506154da82615473565b604082019050919050565b600060208201905081810360008301526154fe816154c2565b9050919050565b7f4e6f7468696e6720746f207265696e7665737400000000000000000000000000600082015250565b600061553b601383614bab565b915061554682615505565b602082019050919050565b6000602082019050818103600083015261556a8161552e565b9050919050565b7f5265696e766573742076616c756520697320746f6f20736d616c6c0000000000600082015250565b60006155a7601b83614bab565b91506155b282615571565b602082019050919050565b600060208201905081810360008301526155d68161559a565b9050919050565b7f5265696e766573742076616c756520697320746f6f2062696700000000000000600082015250565b6000615613601983614bab565b915061561e826155dd565b602082019050919050565b6000602082019050818103600083015261564281615606565b9050919050565b600081905092915050565b50565b6000615664600083615649565b915061566f82615654565b600082019050919050565b600061568582615657565b9150819050919050565b7f4661696c656420746f2073656e64206465762066656500000000000000000000600082015250565b60006156c5601683614bab565b91506156d08261568f565b602082019050919050565b600060208201905081810360008301526156f4816156b8565b9050919050565b7f4661696c656420746f2073656e6420486f6e65792046756e6420666565000000600082015250565b6000615731601d83614bab565b915061573c826156fb565b602082019050919050565b6000602082019050818103600083015261576081615724565b9050919050565b7f4661696c656420746f2073656e6420496e737572616e63652046756e6420666560008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b60006157c3602183614bab565b91506157ce82615767565b604082019050919050565b600060208201905081810360008301526157f2816157b6565b9050919050565b600060608201905061580e6000830186614693565b61581b6020830185614693565b6158286040830184614580565b94935050505056fea26469706673582212205414b7137b7d55879715518a9a43d61a05643b3b9382152c388270584935613f64736f6c634300080900330000000000000000000000008c0cf0a4ea0b7eb42246e91ee48595f54893153c00000000000000000000000087968f1db67bf9cf07ec6a25b134394458be325600000000000000000000000069304855697e2805f2e5a93f3e64dfaa83117d6b
Deployed Bytecode
0x60806040526004361061028c5760003560e01c8063785e24ef1161015a578063cd9d6087116100c1578063dd5967c31161007a578063dd5967c31461099c578063e72c9228146109c7578063e7eaad99146109f2578063f851a44014610a0e578063fdb5a03e14610a39578063ff8ab49414610a5057610293565b8063cd9d6087146108ca578063ce5494bb146108f5578063cff4d33a14610911578063d025d3aa1461093c578063d0e30db014610967578063daa4cf881461097157610293565b8063b760faf911610113578063b760faf9146107c5578063b7902303146107e1578063bd2e85881461080c578063bff1f9e114610837578063c2d3d74c14610862578063cbbdb7f11461089f57610293565b8063785e24ef146106a15780637a125600146106ca5780637d62bd49146106f557806392a2da1e1461072057806392ca1e8d1461075d578063a3310a5f1461078857610293565b80633ad10ef6116101fe57806365cf7c9b116101b757806365cf7c9b1461058d5780636c1f4259146105b85780636e45d039146105e35780636e5524261461060e5780636f5b3ab5146106395780636f77926b1461066457610293565b80633ad10ef6146104915780633ccfd60b146104bc5780634420e486146104d3578063461f07d7146104fc5780635ac5c206146105395780635cec62611461056457610293565b80631fe8d94c116102505780631fe8d94c1461035b57806327ae66981461038657806329a667ef146103b15780632b27720b146103ee57806333b2f5ff1461042b57806337cea5cd1461045457610293565b806301339c21146102985780630e841ab9146102af5780631573b577146102da5780631a3b6998146103055780631fce8dc71461033057610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610a7b565b005b3480156102bb57600080fd5b506102c4610bf9565b6040516102d1919061458f565b60405180910390f35b3480156102e657600080fd5b506102ef610c00565b6040516102fc919061458f565b60405180910390f35b34801561031157600080fd5b5061031a610c06565b604051610327919061458f565b60405180910390f35b34801561033c57600080fd5b50610345610c29565b604051610352919061458f565b60405180910390f35b34801561036757600080fd5b50610370610c88565b60405161037d919061458f565b60405180910390f35b34801561039257600080fd5b5061039b610cf6565b6040516103a8919061458f565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d391906145db565b610d02565b6040516103e5919061458f565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190614666565b610d26565b604051610422919061458f565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190614666565b610efe565b005b34801561046057600080fd5b5061047b600480360381019061047691906145db565b611146565b604051610488919061458f565b60405180910390f35b34801561049d57600080fd5b506104a6611161565b6040516104b391906146a2565b60405180910390f35b3480156104c857600080fd5b506104d1611187565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190614666565b611880565b005b34801561050857600080fd5b50610523600480360381019061051e91906146bd565b611dcb565b604051610530919061458f565b60405180910390f35b34801561054557600080fd5b5061054e611e08565b60405161055b919061458f565b60405180910390f35b34801561057057600080fd5b5061058b60048036038101906105869190614666565b611e0e565b005b34801561059957600080fd5b506105a2611ee2565b6040516105af919061458f565b60405180910390f35b3480156105c457600080fd5b506105cd611ee8565b6040516105da919061458f565b60405180910390f35b3480156105ef57600080fd5b506105f8611ef4565b604051610605919061458f565b60405180910390f35b34801561061a57600080fd5b50610623611efa565b604051610630919061458f565b60405180910390f35b34801561064557600080fd5b5061064e611f05565b60405161065b91906147bb565b60405180910390f35b34801561067057600080fd5b5061068b60048036038101906106869190614666565b611f80565b6040516106989190614966565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c39190614982565b61219b565b005b3480156106d657600080fd5b506106df6124a7565b6040516106ec91906146a2565b60405180910390f35b34801561070157600080fd5b5061070a6124cd565b6040516107179190614a46565b60405180910390f35b34801561072c57600080fd5b50610747600480360381019061074291906145db565b612518565b604051610754919061458f565b60405180910390f35b34801561076957600080fd5b50610772612533565b60405161077f919061458f565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa9190614666565b612553565b6040516107bc919061458f565b60405180910390f35b6107df60048036038101906107da9190614666565b61262b565b005b3480156107ed57600080fd5b506107f6612b3b565b6040516108039190614ac0565b60405180910390f35b34801561081857600080fd5b50610821612b61565b60405161082e919061458f565b60405180910390f35b34801561084357600080fd5b5061084c612b67565b604051610859919061458f565b60405180910390f35b34801561086e57600080fd5b5061088960048036038101906108849190614adb565b612b6d565b604051610896919061458f565b60405180910390f35b3480156108ab57600080fd5b506108b4612e5f565b6040516108c191906146a2565b60405180910390f35b3480156108d657600080fd5b506108df612e85565b6040516108ec919061458f565b60405180910390f35b61090f600480360381019061090a9190614666565b612e90565b005b34801561091d57600080fd5b50610926613244565b60405161093391906147bb565b60405180910390f35b34801561094857600080fd5b5061095161329c565b60405161095e919061458f565b60405180910390f35b61096f6132a1565b005b34801561097d57600080fd5b5061098661337e565b604051610993919061458f565b60405180910390f35b3480156109a857600080fd5b506109b16133f1565b6040516109be919061458f565b60405180910390f35b3480156109d357600080fd5b506109dc6133fe565b6040516109e9919061458f565b60405180910390f35b610a0c6004803603810190610a079190614666565b61340a565b005b348015610a1a57600080fd5b50610a2361341f565b604051610a3091906146a2565b60405180910390f35b348015610a4557600080fd5b50610a4e613445565b005b348015610a5c57600080fd5b50610a6561390e565b604051610a729190614b90565b60405180910390f35b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290614c08565b60405180910390fd5b600060105414610b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4790614c74565b60405180910390fd5b4260108190555060405180608001604052804281526020016203f48042610b779190614cc3565b81526020016203f4806002610b8c9190614d19565b42610b979190614cc3565b81526020016203f4806003610bac9190614d19565b42610bb79190614cc3565b8152506011906004610bca929190614429565b507f02ac8168caf2f254b394bd39e19417c5c28124ab89c9bc2d44921b19808e266960405160405180910390a1565b6203f48081565b61012c81565b600080610c1161337e565b60048110610c2257610c21614d73565b5b0154905090565b6000806000610c36611f05565b905060005b8151811015610c7f57818181518110610c5757610c56614d73565b5b602002602001015183610c6a9190614cc3565b92508080610c7790614da2565b915050610c3b565b50819250505090565b6000806201518060105442610c9d9190614deb565b610ca79190614e4e565b6702c68af0bb140000610cba9190614d19565b670de0b6b3a7640000610ccd9190614cc3565b90506801158e460913d000008111610ce55780610cf0565b6801158e460913d000005b91505090565b6702c68af0bb14000081565b60118181548110610d1257600080fd5b906000526020600020016000915090505481565b600080610db8600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015442612b6d565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154610e059190614cc3565b9050601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e625780915050610ef9565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401548111610eb15780610ef5565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401545b9150505b919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8590614c08565b60405180910390fd5b600060105414610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca90614ecb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109a90614f37565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555050565b6004816006811061115657600080fd5b016000915090505481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125090614f37565b60405180910390fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154116112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d590614fa3565b60405180910390fd5b60006112e933610d26565b9050662386f26fc100008111611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b9061500f565b60405180910390fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555042600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555047600b5461012c61019061012c6113da9190614cc3565b6113e49190614cc3565b600b546113f19190614cc3565b836113fc9190614d19565b6114069190614e4e565b116115965780600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461145d9190614cc3565b925050819055506114b081600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154613959565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282546115019190614deb565b9250508190555061151181613972565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611557573d6000803e3d6000fd5b507f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364338260405161158992919061502f565b60405180910390a1611828565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015410156117ec5780600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546116749190614cc3565b925050819055506116c781600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154613959565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282546117189190614deb565b92505081905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166305ab421d33836040518363ffffffff1660e01b815260040161177c92919061502f565b600060405180830381600087803b15801561179657600080fd5b505af11580156117aa573d6000803e3d6000fd5b505050507f680f2e4f4032ebf1774e8cdbaddcb1b617a5a606411c8ca96257ada338d3833c33826040516117df92919061502f565b60405180910390a1611827565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e906150a4565b60405180910390fd5b5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154141561187d5761187c33613c0f565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561193d57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600073ffffffffffffffffffffffffffffffffffffffff16600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0590615110565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad79061517c565b60405180910390fd5b33600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060136000815480929190611bf590614da2565b9190505550600081905060005b6006811015611d8d57600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206015018160068110611c5f57611c5e614d73565b5b016000815480929190611c7190614da2565b9190505550600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d7557600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611d7a565b611d8d565b8080611d8590614da2565b915050611c02565b507f2a4f530ae55f002aac4686b649762fc68e96bd8b80ac835b41777145c94e1f8a3383604051611dbf92919061519c565b60405180910390a15050565b600a8281548110611ddb57600080fd5b906000526020600020018181548110611df357600080fd5b90600052602060002001600091509150505481565b61012c81565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9590614c08565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b67016345785d8a000081565b600b5481565b662386f26fc1000081565b6060600a611f1161337e565b81548110611f2257611f21614d73565b5b90600052602060002001805480602002602001604051908101604052809291908181526020018280548015611f7657602002820191906000526020600020905b815481526020019060010190808311611f62575b5050505050905090565b611f88614476565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806101800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201600680602002604051908101604052809291908260068015612101576020028201915b8154815260200190600101908083116120ed575b50505050508152602001600f8201600680602002604051908101604052809291908260068015612146576020028201915b815481526020019060010190808311612132575b505050505081526020016015820160068060200260405190810160405280929190826006801561218b576020028201915b815481526020019060010190808311612177575b5050505050815250509050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461222b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222290615211565b60405180910390fd5b600060105414612270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226790614ecb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790614f37565b60405180910390fd5b600081118015612351575060068111155b612390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123879061527d565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550600360046001836123e89190614deb565b600681106123f9576123f8614d73565b5b01546124059190614d19565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6124d5614515565b600060048060200260405190810160405280929190826004801561250e576020028201915b8154815260200190600101908083116124fa575b5050505050905090565b6000816004811061252857600080fd5b016000915090505481565b61012c61019061012c6125469190614cc3565b6125509190614cc3565b81565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015490505b600681101561262057600481600681106125b9576125b8614d73565b5b0154600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154101561260d5780915050612626565b808061261890614da2565b91505061259c565b50600690505b919050565b600060105411612670576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612667906152e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273990614f37565b60405180910390fd5b67016345785d8a000034101561278d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278490615355565b60405180910390fd5b612795610c88565b34600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546127e39190614cc3565b1115612824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281b906153c1565b60405180910390fd5b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a890615453565b60405180910390fd5b612940600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015442612b6d565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070160008282546129919190614cc3565b9250508190555042600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555034600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254612a319190614cc3565b92505081905550600334612a459190614d19565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254612a969190614cc3565b92505081905550612aa681612553565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550612af534613972565b612aff8134613eed565b7fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c8134604051612b3092919061502f565b60405180910390a150565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61019081565b60135481565b6000806010541480612b7f5750828211155b80612ba857506011600081548110612b9a57612b99614d73565b5b906000526020600020015482105b15612bb65760009050612e58565b60006011600181548110612bcd57612bcc614d73565b5b9060005260206000200154841015612c5457612c46856000612c0e876011600081548110612bfe57612bfd614d73565b5b90600052602060002001546143a4565b612c37876011600181548110612c2757612c26614d73565b5b9060005260206000200154613959565b612c419190614deb565b6143bd565b81612c519190614cc3565b90505b6011600281548110612c6957612c68614d73565b5b906000526020600020015484108015612ca057506011600181548110612c9257612c91614d73565b5b906000526020600020015483115b15612d1a57612d0c856001612cd4876011600181548110612cc457612cc3614d73565b5b90600052602060002001546143a4565b612cfd876011600281548110612ced57612cec614d73565b5b9060005260206000200154613959565b612d079190614deb565b6143bd565b81612d179190614cc3565b90505b6011600381548110612d2f57612d2e614d73565b5b906000526020600020015484108015612d6657506011600281548110612d5857612d57614d73565b5b906000526020600020015483115b15612de057612dd2856002612d9a876011600281548110612d8a57612d89614d73565b5b90600052602060002001546143a4565b612dc3876011600381548110612db357612db2614d73565b5b9060005260206000200154613959565b612dcd9190614deb565b6143bd565b81612ddd9190614cc3565b90505b6011600381548110612df557612df4614d73565b5b90600052602060002001548310612e5357612e45856003612e35876011600381548110612e2557612e24614d73565b5b90600052602060002001546143a4565b86612e409190614deb565b6143bd565b81612e509190614cc3565b90505b809150505b9392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b662386f26fc1000081565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1790615211565b60405180910390fd5b600060105411612f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5c906152e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302e90614f37565b60405180910390fd5b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166130c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ba906154e5565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015411156131f55742600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555034600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b6131fe34613972565b6132088134613eed565b7fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c813460405161323992919061502f565b60405180910390a150565b6060601180548060200260200160405190810160405280929190818152602001828054801561329257602002820191906000526020600020905b81548152602001906001019080831161327e575b5050505050905090565b600681565b600073ffffffffffffffffffffffffffffffffffffffff16600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336a90614f37565b60405180910390fd5b61337c3361262b565b565b6000806010544261338f9190614deb565b90506203f4808110156133a65760009150506133ee565b60026203f4806133b69190614d19565b8110156133c75760019150506133ee565b60036203f4806133d79190614d19565b8110156133e85760029150506133ee565b60039150505b90565b6801158e460913d0000081565b670de0b6b3a764000081565b61341381611880565b61341c3361262b565b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350e90614f37565b60405180910390fd5b60006010541161355c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613553906152e9565b60405180910390fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154116135e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135d890615551565b60405180910390fd5b60006135ec33610d26565b9050662386f26fc10000811015613638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362f906155bd565b60405180910390fd5b613640610c88565b81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461368e9190614cc3565b11156136cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c690615629565b60405180910390fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555042600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282546137b09190614cc3565b925050819055506003816137c49190614d19565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282546138159190614cc3565b9250508190555061382533612553565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055506000600b5461012c61019061012c6138839190614cc3565b61388d9190614cc3565b613895610c29565b61389f9190614cc3565b836138aa9190614d19565b6138b49190614e4e565b90508047106138d1576138c682613972565b6138d03383613eed565b5b7fbd654390d0d973e8c8376ed6053be8658870df892687852cc5c914d700291b87338360405161390292919061502f565b60405180910390a15050565b613916614537565b600460068060200260405190810160405280929190826006801561394f576020028201915b81548152602001906001019080831161393b575b5050505050905090565b6000818310613968578161396a565b825b905092915050565b6000600b5461012c836139859190614d19565b61398f9190614e4e565b90506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516139d99061567a565b60006040518083038185875af1925050503d8060008114613a16576040519150601f19603f3d011682016040523d82523d6000602084013e613a1b565b606091505b5050905080613a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a56906156db565b60405180910390fd5b6000600b5461019085613a729190614d19565b613a7c9190614e4e565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613ac69061567a565b60006040518083038185875af1925050503d8060008114613b03576040519150601f19603f3d011682016040523d82523d6000602084013e613b08565b606091505b5050905080613b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b4390615747565b60405180910390fd5b6000600b5461012c87613b5f9190614d19565b613b699190614e4e565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050905080613c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bfd906157d9565b60405180910390fd5b50505050505050565b601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613c6657613eea565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000815480929190613cb990614da2565b91905055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701819055506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055507f2e7da569650ff873bdc27804d093dd4f019058746b012d06b0f411ae57009c5281600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154604051613e9992919061502f565b60405180910390a16000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b50565b6000613ef7611f05565b90506000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b825181101561439d576000600b54848381518110613f8457613f83614d73565b5b602002602001015186613f979190614d19565b613fa19190614e4e565b905081600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154111561427c5760008373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050905080156141d15781600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600f01846006811061408157614080614d73565b5b0160008282546140919190614cc3565b925050819055506140e482600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154613959565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282546141359190614deb565b925050819055506000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015414156141915761419084613c0f565b5b7fe33f884cf2d2a4661aef41b48edddc3a8f19aa33bde11fa6554b81a55f0146248785846040516141c4939291906157f9565b60405180910390a1614276565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015614239573d6000803e3d6000fd5b507fbec9e11c00ecccfcf4d2eccfb872560256c650f162ab1e04ff04cb4710137e7f87858460405161426d939291906157f9565b60405180910390a15b50614324565b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060090183600681106142d1576142d0614d73565b5b0160008282546142e19190614cc3565b925050819055507ffc01aa0bed8b76340f973ef45d56a7a6fa55b04ff6f9e24b5d097b929c54801f86848360405161431b939291906157f9565b60405180910390a15b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050808061439590614da2565b915050613f63565b5050505050565b60008183116143b357816143b5565b825b905092915050565b6000600b546127106201518061271085600088600481106143e1576143e0614d73565b5b0154896143ee9190614d19565b6143f89190614d19565b6144029190614d19565b61440c9190614e4e565b6144169190614e4e565b6144209190614e4e565b90509392505050565b828054828255906000526020600020908101928215614465579160200282015b82811115614464578251825591602001919060010190614449565b5b5090506144729190614559565b5090565b604051806101800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016144f5614537565b8152602001614502614537565b815260200161450f614537565b81525090565b6040518060800160405280600490602082028036833780820191505090505090565b6040518060c00160405280600690602082028036833780820191505090505090565b5b8082111561457257600081600090555060010161455a565b5090565b6000819050919050565b61458981614576565b82525050565b60006020820190506145a46000830184614580565b92915050565b600080fd5b6145b881614576565b81146145c357600080fd5b50565b6000813590506145d5816145af565b92915050565b6000602082840312156145f1576145f06145aa565b5b60006145ff848285016145c6565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061463382614608565b9050919050565b61464381614628565b811461464e57600080fd5b50565b6000813590506146608161463a565b92915050565b60006020828403121561467c5761467b6145aa565b5b600061468a84828501614651565b91505092915050565b61469c81614628565b82525050565b60006020820190506146b76000830184614693565b92915050565b600080604083850312156146d4576146d36145aa565b5b60006146e2858286016145c6565b92505060206146f3858286016145c6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61473281614576565b82525050565b60006147448383614729565b60208301905092915050565b6000602082019050919050565b6000614768826146fd565b6147728185614708565b935061477d83614719565b8060005b838110156147ae5781516147958882614738565b97506147a083614750565b925050600181019050614781565b5085935050505092915050565b600060208201905081810360008301526147d5818461475d565b905092915050565b6147e681614628565b82525050565b600060069050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b614822816147ec565b61482c81846147f7565b925061483782614802565b8060005b8381101561486857815161484f8782614738565b965061485a8361480c565b92505060018101905061483b565b505050505050565b6103608201600082015161488760008501826147dd565b50602082015161489a60208501826147dd565b5060408201516148ad6040850182614729565b5060608201516148c06060850182614729565b5060808201516148d36080850182614729565b5060a08201516148e660a0850182614729565b5060c08201516148f960c0850182614729565b5060e082015161490c60e0850182614729565b50610100820151614921610100850182614729565b50610120820151614936610120850182614819565b5061014082015161494b6101e0850182614819565b506101608201516149606102a0850182614819565b50505050565b60006103608201905061497c6000830184614870565b92915050565b60008060408385031215614999576149986145aa565b5b60006149a785828601614651565b92505060206149b8858286016145c6565b9150509250929050565b600060049050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6149f8816149c2565b614a0281846149cd565b9250614a0d826149d8565b8060005b83811015614a3e578151614a258782614738565b9650614a30836149e2565b925050600181019050614a11565b505050505050565b6000608082019050614a5b60008301846149ef565b92915050565b6000819050919050565b6000614a86614a81614a7c84614608565b614a61565b614608565b9050919050565b6000614a9882614a6b565b9050919050565b6000614aaa82614a8d565b9050919050565b614aba81614a9f565b82525050565b6000602082019050614ad56000830184614ab1565b92915050565b600080600060608486031215614af457614af36145aa565b5b6000614b02868287016145c6565b9350506020614b13868287016145c6565b9250506040614b24868287016145c6565b9150509250925092565b600081905092915050565b614b42816147ec565b614b4c8184614b2e565b9250614b5782614802565b8060005b83811015614b88578151614b6f8782614738565b9650614b7a8361480c565b925050600181019050614b5b565b505050505050565b600060c082019050614ba56000830184614b39565b92915050565b600082825260208201905092915050565b7f4f6e6c792061646d696e00000000000000000000000000000000000000000000600082015250565b6000614bf2600a83614bab565b9150614bfd82614bbc565b602082019050919050565b60006020820190508181036000830152614c2181614be5565b9050919050565b7f4c61756e63682063616e2062652075736564206f6e6c79206f6e636500000000600082015250565b6000614c5e601c83614bab565b9150614c6982614c28565b602082019050919050565b60006020820190508181036000830152614c8d81614c51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cce82614576565b9150614cd983614576565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614d0e57614d0d614c94565b5b828201905092915050565b6000614d2482614576565b9150614d2f83614576565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d6857614d67614c94565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614dad82614576565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614de057614ddf614c94565b5b600182019050919050565b6000614df682614576565b9150614e0183614576565b925082821015614e1457614e13614c94565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614e5982614576565b9150614e6483614576565b925082614e7457614e73614e1f565b5b828204905092915050565b7f43616e2062652075736564206f6e6c79206265666f7265206c61756e63680000600082015250565b6000614eb5601e83614bab565b9150614ec082614e7f565b602082019050919050565b60006020820190508181036000830152614ee481614ea8565b9050919050565b7f55736572206973206e6f74207265676973746572656400000000000000000000600082015250565b6000614f21601683614bab565b9150614f2c82614eeb565b602082019050919050565b60006020820190508181036000830152614f5081614f14565b9050919050565b7f4e6f206465706f73697473000000000000000000000000000000000000000000600082015250565b6000614f8d600b83614bab565b9150614f9882614f57565b602082019050919050565b60006020820190508181036000830152614fbc81614f80565b9050919050565b7f4e6f2070726f66697420617661696c61626c6500000000000000000000000000600082015250565b6000614ff9601383614bab565b915061500482614fc3565b602082019050919050565b6000602082019050818103600083015261502881614fec565b9050919050565b60006040820190506150446000830185614693565b6150516020830184614580565b9392505050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b600061508e601183614bab565b915061509982615058565b602082019050919050565b600060208201905081810360008301526150bd81615081565b9050919050565b7f5573657220697320616c72656164792072656769737465726564000000000000600082015250565b60006150fa601a83614bab565b9150615105826150c4565b602082019050919050565b60006020820190508181036000830152615129816150ed565b9050919050565b7f55706c696e65206973206e6f7420726567697374657265640000000000000000600082015250565b6000615166601883614bab565b915061517182615130565b602082019050919050565b6000602082019050818103600083015261519581615159565b9050919050565b60006040820190506151b16000830185614693565b6151be6020830184614693565b9392505050565b7f4f6e6c79206c696e654d616e6167657200000000000000000000000000000000600082015250565b60006151fb601083614bab565b9150615206826151c5565b602082019050919050565b6000602082019050818103600083015261522a816151ee565b9050919050565b7f496e76616c6964206c696e657320636f756e7400000000000000000000000000600082015250565b6000615267601383614bab565b915061527282615231565b602082019050919050565b600060208201905081810360008301526152968161525a565b9050919050565b7f42756c6c4661726d3a206e6f74206c61756e6368656400000000000000000000600082015250565b60006152d3601683614bab565b91506152de8261529d565b602082019050919050565b60006020820190508181036000830152615302816152c6565b9050919050565b7f4465706f7369742076616c756520697320746f6f20736d616c6c000000000000600082015250565b600061533f601a83614bab565b915061534a82615309565b602082019050919050565b6000602082019050818103600083015261536e81615332565b9050919050565b7f4465706f736974206c696d697420657863656564656400000000000000000000600082015250565b60006153ab601683614bab565b91506153b682615375565b602082019050919050565b600060208201905081810360008301526153da8161539e565b9050919050565b7f4d6967726174696f6e207265717569726564206265666f7265206465706f736960008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061543d602183614bab565b9150615448826153e1565b604082019050919050565b6000602082019050818103600083015261546c81615430565b9050919050565b7f4163636f756e74206e6f742077616974696e6720666f72206d6967726174696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006154cf602183614bab565b91506154da82615473565b604082019050919050565b600060208201905081810360008301526154fe816154c2565b9050919050565b7f4e6f7468696e6720746f207265696e7665737400000000000000000000000000600082015250565b600061553b601383614bab565b915061554682615505565b602082019050919050565b6000602082019050818103600083015261556a8161552e565b9050919050565b7f5265696e766573742076616c756520697320746f6f20736d616c6c0000000000600082015250565b60006155a7601b83614bab565b91506155b282615571565b602082019050919050565b600060208201905081810360008301526155d68161559a565b9050919050565b7f5265696e766573742076616c756520697320746f6f2062696700000000000000600082015250565b6000615613601983614bab565b915061561e826155dd565b602082019050919050565b6000602082019050818103600083015261564281615606565b9050919050565b600081905092915050565b50565b6000615664600083615649565b915061566f82615654565b600082019050919050565b600061568582615657565b9150819050919050565b7f4661696c656420746f2073656e64206465762066656500000000000000000000600082015250565b60006156c5601683614bab565b91506156d08261568f565b602082019050919050565b600060208201905081810360008301526156f4816156b8565b9050919050565b7f4661696c656420746f2073656e6420486f6e65792046756e6420666565000000600082015250565b6000615731601d83614bab565b915061573c826156fb565b602082019050919050565b6000602082019050818103600083015261576081615724565b9050919050565b7f4661696c656420746f2073656e6420496e737572616e63652046756e6420666560008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b60006157c3602183614bab565b91506157ce82615767565b604082019050919050565b600060208201905081810360008301526157f2816157b6565b9050919050565b600060608201905061580e6000830186614693565b61581b6020830185614693565b6158286040830184614580565b94935050505056fea26469706673582212205414b7137b7d55879715518a9a43d61a05643b3b9382152c388270584935613f64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008c0cf0a4ea0b7eb42246e91ee48595f54893153c00000000000000000000000087968f1db67bf9cf07ec6a25b134394458be325600000000000000000000000069304855697e2805f2e5a93f3e64dfaa83117d6b
-----Decoded View---------------
Arg [0] : _devAddress (address): 0x8C0Cf0A4Ea0b7Eb42246e91eE48595F54893153C
Arg [1] : _honeyFundAddress (address): 0x87968f1DB67bF9CF07EC6A25b134394458bE3256
Arg [2] : _insuranceFund (address): 0x69304855697E2805f2e5A93f3E64Dfaa83117D6B
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000008c0cf0a4ea0b7eb42246e91ee48595f54893153c
Arg [1] : 00000000000000000000000087968f1db67bf9cf07ec6a25b134394458be3256
Arg [2] : 00000000000000000000000069304855697e2805f2e5a93f3e64dfaa83117d6b
Loading...
Loading
Loading...
Loading
Net Worth in USD
$1.97
Net Worth in ETH
0.000941
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,092.94 | 0.00094096 | $1.97 |
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.