// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {IBimoToken} from "./interfaces/IBimoToken.sol";
import {IBIMOExecutionCoordinator, ILaunchBurner} from "./interfaces/IBIMOV1.sol";
import {SafeTransfer} from "./utils/SafeTransfer.sol";
import {BIMOConstants} from "./BIMOConstants.sol";
/// @notice Immutable fixed-price BIMO sale, fission distribution, and V4 batch accounting vault.
contract BIMOImmutableLaunchVault {
using SafeTransfer for address;
uint256 public constant TOTAL_SUPPLY = BIMOConstants.TOTAL_SUPPLY;
uint256 public constant PROJECT_RESERVE = BIMOConstants.PROJECT_RESERVE;
uint256 public constant LAUNCH_INVENTORY = BIMOConstants.LAUNCH_INVENTORY;
uint256 public constant MAX_MINT_UNITS = BIMOConstants.MAX_MINT_UNITS;
uint256 public constant MAX_MINTS_PER_WALLET = BIMOConstants.MAX_MINTS_PER_WALLET;
uint8 public constant MAX_MINTS_PER_TRANSACTION = BIMOConstants.MAX_MINTS_PER_TRANSACTION;
uint256 public constant LP_PRICE_PER_UNIT = BIMOConstants.LP_PRICE_PER_UNIT;
uint256 public constant MINTER_AMOUNT_PER_UNIT = BIMOConstants.MINTER_AMOUNT_PER_UNIT;
uint256 public constant FISSION_AMOUNT_PER_UNIT = BIMOConstants.FISSION_AMOUNT_PER_UNIT;
uint256 public constant FISSION_AMOUNT_PER_ADDRESS = BIMOConstants.FISSION_AMOUNT_PER_ADDRESS;
uint256 public constant LP_BIMO_PER_UNIT = BIMOConstants.LP_BIMO_PER_UNIT;
uint256 public constant BATCH_SIZE = BIMOConstants.BATCH_SIZE;
uint256 public constant BATCH_ETH = BIMOConstants.BATCH_ETH;
uint256 public constant BATCH_BIMO = BIMOConstants.BATCH_BIMO;
uint256 public constant MINT_DURATION = BIMOConstants.MINT_DURATION;
uint256 public constant MAX_FISSION_RECIPIENTS_PER_CALL = 100;
IBimoToken public bimo;
address public bSingleSigner;
address public airdropVault;
address public hook;
address public deployer;
address public coordinator;
address public locker;
uint256 public mintEnd;
bool public active;
bool public finalized;
uint256 public totalMintedUnits;
uint256 public processedUnits;
uint256 public processedFullBatches;
uint256 public fissionSlotsCreated;
uint256 public fissionSlotsDistributed;
uint256 public fissionBimoReserved;
uint256 public fissionBimoDistributed;
uint256 public fissionBimoFinalized;
uint256 public lpEthReserved;
uint256 public operationsReserve;
uint256 public totalOperationsFeesCollected;
uint256 public totalExecutionRewardsPaid;
uint256 public operationsFeePerUnit;
uint256 public addLiquidityExecutionReward;
uint256 public fissionExecutionRewardPerRecipient;
uint256 public buybackExecutionReward;
uint256 private _entered;
mapping(address wallet => uint256 units) public walletMints;
mapping(uint256 batchId => bool) public addLiquidityRewardPaid;
mapping(bytes32 rewardId => bool) private _operationRewardPaid;
bool public finalPartialBatchReleased;
bool public fissionFinalized;
uint256 public freeInventoryFinalized;
error Unauthorized();
error Reentrancy();
error InvalidAddress();
error InvalidConfiguration();
error IncorrectPayment();
error InvalidQuantity();
error MintLimitExceeded();
error SoldOut();
error MintClosed();
error NotActive();
error InventoryNotFunded();
error InvalidFissionRecipient();
error FissionSlotsExceeded();
error FissionBatchTooLarge();
error FissionNotFinalized();
error FissionAlreadyFinalized();
error OperationAlreadyRewarded();
error NoFullBatchAvailable();
error OutOfOrderBatch();
error FinalPartialUnavailable();
error NotFinalizable();
error AlreadyFinalized();
error InsufficientFreeInventory();
error DirectEthDisabled();
event Configured(address indexed locker, address indexed coordinator);
event Activated(uint256 indexed mintEnd);
event Minted(
address indexed minter, uint256 quantity, uint256 firstUnit, uint256 lpEth, uint256 operationsFee
);
event BatchReady(uint256 indexed batchId, uint256 indexed units, uint256 ethAmount, uint256 bimoAmount);
event FissionSlotsReserved(uint256 indexed firstSlot, uint256 slots, uint256 bimoReserved);
event FissionDistributed(address indexed recipient, uint256 indexed slotId, uint256 amount);
event UnclaimedFissionFinalized(uint256 amount);
event ExecutionRewardPaid(
bytes32 indexed operationId, address indexed executor, uint256 requested, uint256 paid
);
event FullBatchReleased(uint256 indexed batchId, uint256 ethAmount, uint256 bimoAmount);
event FinalPartialBatchReleased(uint256 indexed units, uint256 ethAmount, uint256 bimoAmount);
event FreeInventoryBurned(uint256 amount);
event FreeInventorySentToAirdropVault(uint256 amount);
event FreeInventorySentToB(uint256 amount);
event UnusedOperationsReserveSwept(address indexed recipient, uint256 amount);
event Finalized();
event UnexpectedEthSwept(address indexed recipient, uint256 amount);
modifier onlyB() {
if (msg.sender != bSingleSigner) revert Unauthorized();
_;
}
modifier onlyCoordinator() {
if (msg.sender != coordinator) revert Unauthorized();
_;
}
modifier nonReentrant() {
if (_entered != 0) revert Reentrancy();
_entered = 1;
_;
_entered = 0;
}
constructor(
address bimo_,
address bSingleSigner_,
address airdropVault_,
address hook_,
address deployer_,
uint256 operationsFeePerUnit_,
uint256 addLiquidityExecutionReward_,
uint256 fissionExecutionRewardPerRecipient_,
uint256 buybackExecutionReward_
) {
if (
bimo_ == address(0) || bSingleSigner_ == address(0) || airdropVault_ == address(0)
|| hook_ == address(0) || deployer_ == address(0) || airdropVault_ == bSingleSigner_
|| airdropVault_.code.length == 0 || hook_.code.length == 0
) {
revert InvalidAddress();
}
bimo = IBimoToken(bimo_);
bSingleSigner = bSingleSigner_;
airdropVault = airdropVault_;
hook = hook_;
deployer = deployer_;
operationsFeePerUnit = operationsFeePerUnit_;
addLiquidityExecutionReward = addLiquidityExecutionReward_;
fissionExecutionRewardPerRecipient = fissionExecutionRewardPerRecipient_;
buybackExecutionReward = buybackExecutionReward_;
}
function configure(address locker_, address coordinator_) external {
if (msg.sender != deployer) revert Unauthorized();
if (active || locker != address(0) || coordinator != address(0)) revert InvalidConfiguration();
if (
locker_ == address(0) || coordinator_ == address(0) || locker_.code.length == 0
|| coordinator_.code.length == 0
) {
revert InvalidAddress();
}
IBIMOExecutionCoordinator coordinatorContract = IBIMOExecutionCoordinator(coordinator_);
if (coordinatorContract.executor() == airdropVault) revert InvalidAddress();
if (coordinatorContract.launch() != address(this) || coordinatorContract.locker() != locker_) {
revert InvalidConfiguration();
}
locker = locker_;
coordinator = coordinator_;
emit Configured(locker_, coordinator_);
}
function activate() external {
if (msg.sender != deployer) revert Unauthorized();
if (active || locker == address(0) || coordinator == address(0)) revert InvalidConfiguration();
if (bimo.balanceOf(address(this)) != LAUNCH_INVENTORY) revert InventoryNotFunded();
active = true;
mintEnd = block.timestamp + MINT_DURATION;
deployer = address(0);
emit Activated(mintEnd);
}
function mint(uint8 quantity) external payable nonReentrant {
if (!active) revert NotActive();
if (block.timestamp >= mintEnd) revert MintClosed();
if (quantity == 0 || quantity > MAX_MINTS_PER_TRANSACTION) revert InvalidQuantity();
if (walletMints[msg.sender] + quantity > MAX_MINTS_PER_WALLET) revert MintLimitExceeded();
if (totalMintedUnits + quantity > MAX_MINT_UNITS) revert SoldOut();
uint256 lpEth = uint256(quantity) * LP_PRICE_PER_UNIT;
uint256 operationsFee = uint256(quantity) * operationsFeePerUnit;
if (msg.value != lpEth + operationsFee) revert IncorrectPayment();
uint256 requiredBimo =
uint256(quantity) * (MINTER_AMOUNT_PER_UNIT + FISSION_AMOUNT_PER_UNIT + LP_BIMO_PER_UNIT);
if (bimo.balanceOf(address(this)) < requiredBimo) revert InventoryNotFunded();
uint256 firstUnit = totalMintedUnits + 1;
uint256 firstSlot = fissionSlotsCreated + 1;
uint256 previousFullBatches = totalMintedUnits / BATCH_SIZE;
walletMints[msg.sender] += quantity;
totalMintedUnits += quantity;
fissionSlotsCreated += uint256(quantity) * 2;
fissionBimoReserved += uint256(quantity) * FISSION_AMOUNT_PER_UNIT;
lpEthReserved += lpEth;
operationsReserve += operationsFee;
totalOperationsFeesCollected += operationsFee;
address(bimo).safeTransfer(msg.sender, uint256(quantity) * MINTER_AMOUNT_PER_UNIT);
emit Minted(msg.sender, quantity, firstUnit, lpEth, operationsFee);
emit FissionSlotsReserved(
firstSlot, uint256(quantity) * 2, uint256(quantity) * FISSION_AMOUNT_PER_UNIT
);
uint256 newFullBatches = totalMintedUnits / BATCH_SIZE;
for (uint256 batchId = previousFullBatches + 1; batchId <= newFullBatches; ++batchId) {
emit BatchReady(batchId, BATCH_SIZE, BATCH_ETH, BATCH_BIMO);
}
}
function distributeFission(address[] calldata recipients) external onlyCoordinator nonReentrant {
if (fissionFinalized) revert FissionAlreadyFinalized();
uint256 count = recipients.length;
if (count == 0 || count > MAX_FISSION_RECIPIENTS_PER_CALL) revert FissionBatchTooLarge();
if (fissionSlotsDistributed + count > fissionSlotsCreated) revert FissionSlotsExceeded();
for (uint256 i; i < count; ++i) {
if (recipients[i] == address(0)) revert InvalidFissionRecipient();
}
uint256 firstSlot = fissionSlotsDistributed + 1;
fissionSlotsDistributed += count;
uint256 distributed = count * FISSION_AMOUNT_PER_ADDRESS;
fissionBimoDistributed += distributed;
for (uint256 i; i < count; ++i) {
address recipient = recipients[i];
address(bimo).safeTransfer(recipient, FISSION_AMOUNT_PER_ADDRESS);
emit FissionDistributed(recipient, firstSlot + i, FISSION_AMOUNT_PER_ADDRESS);
}
_payExecutionReward(
keccak256(abi.encodePacked("FISSION", firstSlot, count)),
fissionExecutionRewardPerRecipient * count
);
}
function availableFullBatches() public view returns (uint256) {
return totalMintedUnits / BATCH_SIZE - processedFullBatches;
}
function availableLiquidityBatches() public view returns (uint256) {
uint256 fullBatches = availableFullBatches();
if (fullBatches != 0) return fullBatches;
if ((block.timestamp < mintEnd && totalMintedUnits != MAX_MINT_UNITS) || finalPartialBatchReleased) {
return 0;
}
return totalMintedUnits > processedUnits ? 1 : 0;
}
function pendingFissionBimo() public view returns (uint256) {
return fissionBimoReserved - fissionBimoDistributed - fissionBimoFinalized;
}
function pendingLiquidityBimo() public view returns (uint256) {
return (totalMintedUnits - processedUnits) * LP_BIMO_PER_UNIT;
}
function freeInventory() public view returns (uint256) {
uint256 balance = bimo.balanceOf(address(this));
uint256 reserved = pendingFissionBimo() + pendingLiquidityBimo();
return balance > reserved ? balance - reserved : 0;
}
function releaseLiquidityBatches(uint256 firstBatchId, uint256 batchCount)
external
onlyCoordinator
nonReentrant
returns (uint256 ethAmount, uint256 bimoAmount, uint256 units)
{
if (firstBatchId != processedFullBatches + 1) revert OutOfOrderBatch();
uint256 fullBatches = availableFullBatches();
if (fullBatches != 0) {
if (batchCount == 0 || batchCount > fullBatches) revert NoFullBatchAvailable();
units = batchCount * BATCH_SIZE;
processedFullBatches += batchCount;
processedUnits += units;
ethAmount = batchCount * BATCH_ETH;
bimoAmount = batchCount * BATCH_BIMO;
lpEthReserved -= ethAmount;
_sendEth(locker, ethAmount);
address(bimo).safeTransfer(locker, bimoAmount);
emit FullBatchReleased(firstBatchId, ethAmount, bimoAmount);
return (ethAmount, bimoAmount, units);
}
if (batchCount != 1) revert FinalPartialUnavailable();
if (block.timestamp < mintEnd && totalMintedUnits != MAX_MINT_UNITS) revert MintClosed();
if (finalPartialBatchReleased) revert FinalPartialUnavailable();
units = totalMintedUnits - processedUnits;
if (units == 0 || units >= BATCH_SIZE) revert FinalPartialUnavailable();
processedUnits += units;
finalPartialBatchReleased = true;
ethAmount = units * LP_PRICE_PER_UNIT;
bimoAmount = units * LP_BIMO_PER_UNIT;
lpEthReserved -= ethAmount;
_sendEth(locker, ethAmount);
address(bimo).safeTransfer(locker, bimoAmount);
emit FinalPartialBatchReleased(units, ethAmount, bimoAmount);
}
function settleAddLiquidityExecutionReward(uint256 batchId) external onlyCoordinator nonReentrant {
uint256 finalPartialBatchId = totalMintedUnits / BATCH_SIZE + 1;
bool releasedFullBatch = batchId != 0 && batchId <= processedFullBatches;
bool releasedFinalPartialBatch =
finalPartialBatchReleased && batchId == finalPartialBatchId && totalMintedUnits % BATCH_SIZE != 0;
if ((!releasedFullBatch && !releasedFinalPartialBatch) || addLiquidityRewardPaid[batchId]) {
revert OperationAlreadyRewarded();
}
addLiquidityRewardPaid[batchId] = true;
_payExecutionReward(
keccak256(abi.encodePacked("ADD_LIQUIDITY", batchId)), addLiquidityExecutionReward
);
}
function settleFinalPartialLiquidityExecutionReward() external pure {
revert OperationAlreadyRewarded();
}
function settleBuybackExecutionReward(bytes32 operationId) external onlyCoordinator nonReentrant {
_payExecutionReward(operationId, buybackExecutionReward);
}
function burnFreeInventory(uint256 amount) external onlyB nonReentrant {
_consumeFreeInventory(amount);
address(bimo).safeTransfer(locker, amount);
ILaunchBurner(locker).burnLaunchBimo(amount);
emit FreeInventoryBurned(amount);
}
function sendFreeInventoryToAirdropVault(uint256 amount) external onlyB nonReentrant {
if (IBIMOExecutionCoordinator(coordinator).executor() == airdropVault) {
revert InvalidConfiguration();
}
_consumeFreeInventory(amount);
address(bimo).safeTransfer(airdropVault, amount);
emit FreeInventorySentToAirdropVault(amount);
}
function sendFreeInventoryToB(uint256 amount) external onlyB nonReentrant {
_consumeFreeInventory(amount);
address(bimo).safeTransfer(bSingleSigner, amount);
emit FreeInventorySentToB(amount);
}
function sweepUnusedOperationsReserve() external onlyB nonReentrant returns (uint256 amount) {
if (block.timestamp < mintEnd && totalMintedUnits != MAX_MINT_UNITS) revert NotFinalizable();
if (pendingLiquidityBimo() != 0 || pendingFissionBimo() != 0) revert NotFinalizable();
amount = operationsReserve;
if (amount == 0) revert InsufficientFreeInventory();
operationsReserve = 0;
_sendEth(bSingleSigner, amount);
emit UnusedOperationsReserveSwept(bSingleSigner, amount);
}
function finalizeUnclaimedFission() external onlyB nonReentrant {
if (fissionFinalized) revert FissionAlreadyFinalized();
if (block.timestamp < mintEnd && totalMintedUnits != MAX_MINT_UNITS) revert MintClosed();
uint256 amount = fissionBimoReserved - fissionBimoDistributed;
fissionFinalized = true;
fissionBimoFinalized = amount;
if (amount != 0) bimo.burn(amount);
emit UnclaimedFissionFinalized(amount);
}
function finalize() external onlyB nonReentrant {
if (finalized) revert AlreadyFinalized();
if (block.timestamp < mintEnd && totalMintedUnits != MAX_MINT_UNITS) revert NotFinalizable();
if (
pendingLiquidityBimo() != 0 || pendingFissionBimo() != 0 || freeInventory() != 0
|| operationsReserve != 0 || processedUnits != totalMintedUnits
) revert NotFinalizable();
finalized = true;
emit Finalized();
}
function sweepUnexpectedEth(address recipient) external onlyB nonReentrant returns (uint256 amount) {
if (recipient != bSingleSigner) revert InvalidAddress();
uint256 accounted = lpEthReserved + operationsReserve;
if (address(this).balance <= accounted) return 0;
amount = address(this).balance - accounted;
_sendEth(recipient, amount);
emit UnexpectedEthSwept(recipient, amount);
}
function _sendEth(address recipient, uint256 amount) private {
(bool sent,) = recipient.call{value: amount}("");
if (!sent) revert InvalidConfiguration();
}
function _payExecutionReward(bytes32 operationId, uint256 requested) private {
if (_operationRewardPaid[operationId]) revert OperationAlreadyRewarded();
_operationRewardPaid[operationId] = true;
uint256 paid = requested > operationsReserve ? operationsReserve : requested;
if (paid != 0) {
operationsReserve -= paid;
totalExecutionRewardsPaid += paid;
(bool sent,) = IBIMOExecutionCoordinator(coordinator).executor().call{value: paid}("");
if (!sent) revert InvalidConfiguration();
}
emit ExecutionRewardPaid(
operationId, IBIMOExecutionCoordinator(coordinator).executor(), requested, paid
);
}
function _consumeFreeInventory(uint256 amount) private {
if (block.timestamp < mintEnd && totalMintedUnits != MAX_MINT_UNITS) {
revert NotFinalizable();
}
if (amount == 0 || amount > freeInventory()) revert InsufficientFreeInventory();
freeInventoryFinalized += amount;
}
receive() external payable {
revert DirectEthDisabled();
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "bimo_",
"type": "address",
"internalType": "address"
},
{
"name": "bSingleSigner_",
"type": "address",
"internalType": "address"
},
{
"name": "airdropVault_",
"type": "address",
"internalType": "address"
},
{
"name": "hook_",
"type": "address",
"internalType": "address"
},
{
"name": "deployer_",
"type": "address",
"internalType": "address"
},
{
"name": "operationsFeePerUnit_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "addLiquidityExecutionReward_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "fissionExecutionRewardPerRecipient_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "buybackExecutionReward_",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AlreadyFinalized",
"type": "error",
"inputs": []
},
{
"name": "DirectEthDisabled",
"type": "error",
"inputs": []
},
{
"name": "FinalPartialUnavailable",
"type": "error",
"inputs": []
},
{
"name": "FissionAlreadyFinalized",
"type": "error",
"inputs": []
},
{
"name": "FissionBatchTooLarge",
"type": "error",
"inputs": []
},
{
"name": "FissionNotFinalized",
"type": "error",
"inputs": []
},
{
"name": "FissionSlotsExceeded",
"type": "error",
"inputs": []
},
{
"name": "IncorrectPayment",
"type": "error",
"inputs": []
},
{
"name": "InsufficientFreeInventory",
"type": "error",
"inputs": []
},
{
"name": "InvalidAddress",
"type": "error",
"inputs": []
},
{
"name": "InvalidConfiguration",
"type": "error",
"inputs": []
},
{
"name": "InvalidFissionRecipient",
"type": "error",
"inputs": []
},
{
"name": "InvalidQuantity",
"type": "error",
"inputs": []
},
{
"name": "InventoryNotFunded",
"type": "error",
"inputs": []
},
{
"name": "MintClosed",
"type": "error",
"inputs": []
},
{
"name": "MintLimitExceeded",
"type": "error",
"inputs": []
},
{
"name": "NoFullBatchAvailable",
"type": "error",
"inputs": []
},
{
"name": "NotActive",
"type": "error",
"inputs": []
},
{
"name": "NotFinalizable",
"type": "error",
"inputs": []
},
{
"name": "OperationAlreadyRewarded",
"type": "error",
"inputs": []
},
{
"name": "OutOfOrderBatch",
"type": "error",
"inputs": []
},
{
"name": "Reentrancy",
"type": "error",
"inputs": []
},
{
"name": "SoldOut",
"type": "error",
"inputs": []
},
{
"name": "TokenCallFailed",
"type": "error",
"inputs": []
},
{
"name": "Unauthorized",
"type": "error",
"inputs": []
},
{
"name": "Activated",
"type": "event",
"inputs": [
{
"name": "mintEnd",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "BatchReady",
"type": "event",
"inputs": [
{
"name": "batchId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "units",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "ethAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "bimoAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Configured",
"type": "event",
"inputs": [
{
"name": "locker",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "coordinator",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "ExecutionRewardPaid",
"type": "event",
"inputs": [
{
"name": "operationId",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "executor",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "requested",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "paid",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FinalPartialBatchReleased",
"type": "event",
"inputs": [
{
"name": "units",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "ethAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "bimoAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Finalized",
"type": "event",
"inputs": [],
"anonymous": false
},
{
"name": "FissionDistributed",
"type": "event",
"inputs": [
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "slotId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FissionSlotsReserved",
"type": "event",
"inputs": [
{
"name": "firstSlot",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "slots",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "bimoReserved",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FreeInventoryBurned",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FreeInventorySentToAirdropVault",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FreeInventorySentToB",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FullBatchReleased",
"type": "event",
"inputs": [
{
"name": "batchId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "ethAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "bimoAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Minted",
"type": "event",
"inputs": [
{
"name": "minter",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "quantity",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "firstUnit",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "lpEth",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "operationsFee",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "UnclaimedFissionFinalized",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "UnexpectedEthSwept",
"type": "event",
"inputs": [
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "UnusedOperationsReserveSwept",
"type": "event",
"inputs": [
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "BATCH_BIMO",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "BATCH_ETH",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "BATCH_SIZE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "FISSION_AMOUNT_PER_ADDRESS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "FISSION_AMOUNT_PER_UNIT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "LAUNCH_INVENTORY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "LP_BIMO_PER_UNIT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "LP_PRICE_PER_UNIT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MAX_FISSION_RECIPIENTS_PER_CALL",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MAX_MINTS_PER_TRANSACTION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "MAX_MINTS_PER_WALLET",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MAX_MINT_UNITS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MINTER_AMOUNT_PER_UNIT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MINT_DURATION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "PROJECT_RESERVE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "TOTAL_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "activate",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "active",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "addLiquidityExecutionReward",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "addLiquidityRewardPaid",
"type": "function",
"inputs": [
{
"name": "batchId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "airdropVault",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "availableFullBatches",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "availableLiquidityBatches",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "bSingleSigner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "bimo",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IBimoToken"
}
],
"stateMutability": "view"
},
{
"name": "burnFreeInventory",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "buybackExecutionReward",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "configure",
"type": "function",
"inputs": [
{
"name": "locker_",
"type": "address",
"internalType": "address"
},
{
"name": "coordinator_",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "coordinator",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "deployer",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "distributeFission",
"type": "function",
"inputs": [
{
"name": "recipients",
"type": "address[]",
"internalType": "address[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "finalPartialBatchReleased",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "finalize",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "finalizeUnclaimedFission",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "finalized",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "fissionBimoDistributed",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "fissionBimoFinalized",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "fissionBimoReserved",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "fissionExecutionRewardPerRecipient",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "fissionFinalized",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "fissionSlotsCreated",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "fissionSlotsDistributed",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "freeInventory",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "freeInventoryFinalized",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "hook",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "locker",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "lpEthReserved",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "mint",
"type": "function",
"inputs": [
{
"name": "quantity",
"type": "uint8",
"internalType": "uint8"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "mintEnd",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "operationsFeePerUnit",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "operationsReserve",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pendingFissionBimo",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pendingLiquidityBimo",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "processedFullBatches",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "processedUnits",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "releaseLiquidityBatches",
"type": "function",
"inputs": [
{
"name": "firstBatchId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "batchCount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "ethAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "bimoAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "units",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "sendFreeInventoryToAirdropVault",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "sendFreeInventoryToB",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "settleAddLiquidityExecutionReward",
"type": "function",
"inputs": [
{
"name": "batchId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "settleBuybackExecutionReward",
"type": "function",
"inputs": [
{
"name": "operationId",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "settleFinalPartialLiquidityExecutionReward",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "pure"
},
{
"name": "sweepUnexpectedEth",
"type": "function",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "sweepUnusedOperationsReserve",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "totalExecutionRewardsPaid",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalMintedUnits",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalOperationsFeesCollected",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "walletMints",
"type": "function",
"inputs": [
{
"name": "wallet",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "units",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x608060405234801562000010575f80fd5b5060405162003a5038038062003a50833981016040819052620000339162000182565b6001600160a01b03891615806200005157506001600160a01b038816155b806200006457506001600160a01b038716155b806200007757506001600160a01b038616155b806200008a57506001600160a01b038516155b80620000a75750876001600160a01b0316876001600160a01b0316145b80620000bb57506001600160a01b0387163b155b80620000cf57506001600160a01b0386163b155b15620000ee5760405163e6c4247b60e01b815260040160405180910390fd5b5f80546001600160a01b03199081166001600160a01b039b8c1617909155600180548216998b1699909917909855600280548916978a16979097179096556003805488169589169590951790945560048054909616929096169190911790935560159290925560169290925560175560185562000213565b80516001600160a01b03811681146200017d575f80fd5b919050565b5f805f805f805f805f6101208a8c0312156200019c575f80fd5b620001a78a62000166565b9850620001b760208b0162000166565b9750620001c760408b0162000166565b9650620001d760608b0162000166565b9550620001e760808b0162000166565b945060a08a0151935060c08a0151925060e08a015191506101008a015190509295985092959850929598565b61382f80620002215f395ff3fe608060405260043610610404575f3560e01c80638ec6f3b71161021d578063c0fba98811610122578063ea2b4ab2116100b7578063f1b4bfc611610087578063f37bfc8f1161006d578063f37bfc8f14610b1c578063fbaf882714610b56578063ff05fe9d146106d3575f80fd5b8063f1b4bfc614610adc578063f2cc434d14610af1575f80fd5b8063ea2b4ab214610a68578063eea9018e14610a7d578063ef4bb4e514610a9c578063f0293fd314610ab1575f80fd5b8063d96059b2116100f2578063d96059b214610a03578063e470d5cf14610a20578063e78fba2214610a3f578063e9caec8d14610a53575f80fd5b8063c0fba98814610977578063d01a96bb1461098c578063d5f39488146109ab578063d7b96d4e146109d7575f80fd5b8063a48b34c9116101b2578063abec166311610182578063b1efc79011610168578063b1efc79014610926578063b3f05b9714610945578063b4c8a65914610963575f80fd5b8063abec1663146108f0578063ad63118014610909575f80fd5b8063a48b34c914610873578063a50a42d714610899578063a670ce15146108ae578063abb9dff9146108dc575f80fd5b80639c855de7116101ed5780639c855de71461080c5780639e9311fc14610821578063a078210614610836578063a19e3b8614610854575f80fd5b80638ec6f3b7146107a6578063902d55a5146107bb578063966b32bb146107d957806396c1466e146107f8575f80fd5b80634916d01b1161032357806362bc5f7b116102b857806375bfb5d61161028857806383bb85161161026e57806383bb85161461075d57806389e6a0f3146107725780638c003e6f14610787575f80fd5b806375bfb5d6146107175780637f5a7c7b14610731575f80fd5b806362bc5f7b146106bd5780636886954f146106d35780636cdaa102146106ef5780636ecd230614610704575f80fd5b80634ba6c23c116102f35780634ba6c23c146106475780634bb278f3146106795780634bcd6ea61461068d57806350daf069146106a1575f80fd5b80634916d01b1461061e578063493562091461063257806349faa4d4146106475780634b6e45031461065b575f80fd5b806325e43e911161039957806332c900991161036957806332c90099146105b457806337928c6b146105e05780633e8f995f146105f457806346aab71614610609575f80fd5b806325e43e91146105605780632c687f7d146105765780632d5dfdb61461058a57806331a5b1c51461059f575f80fd5b80631706b7ea116103d45780631706b7ea146104f75780631985a3b31461050b5780631f546a8314610526578063247e8dc614610541575f80fd5b806302fb0c5e1461043f57806307ecafce1461046d5780630a009097146104905780630f15f4c0146104e1575f80fd5b3661043b576040517f4cb975e000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80fd5b34801561044a575f80fd5b506008546104589060ff1681565b60405190151581526020015b60405180910390f35b348015610478575f80fd5b5061048260185481565b604051908152602001610464565b34801561049b575f80fd5b506005546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610464565b3480156104ec575f80fd5b506104f5610b82565b005b348015610502575f80fd5b50610482610db2565b348015610516575f80fd5b50610482678ac7230489e8000081565b348015610531575f80fd5b5061048267016345785d8a000081565b34801561054c575f80fd5b506104f561055b366004613512565b610dd5565b34801561056b575f80fd5b5061048262017ae881565b348015610581575f80fd5b50610482610fc1565b348015610595575f80fd5b50610482600f5481565b3480156105aa575f80fd5b50610482600b5481565b3480156105bf575f80fd5b506002546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105eb575f80fd5b50610482611024565b3480156105ff575f80fd5b5061048260145481565b348015610614575f80fd5b5061048260175481565b348015610629575f80fd5b50610482611037565b34801561063d575f80fd5b5061048260105481565b348015610652575f80fd5b50610482606481565b348015610666575f80fd5b506104826a10d983e9a52a8c5740000081565b348015610684575f80fd5b506104f561105c565b348015610698575f80fd5b506104f5611251565b3480156106ac575f80fd5b506104826801158e460913d0000081565b3480156106c8575f80fd5b5061048262ed4e0081565b3480156106de575f80fd5b5061048268052663ccab1e1c000081565b3480156106fa575f80fd5b50610482600e5481565b6104f5610712366004613529565b611283565b348015610722575f80fd5b5061048266038d7ea4c6800081565b34801561073c575f80fd5b506003546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610768575f80fd5b5061048260135481565b34801561077d575f80fd5b50610482600d5481565b348015610792575f80fd5b506104f56107a1366004613512565b611823565b3480156107b1575f80fd5b50610482600c5481565b3480156107c6575f80fd5b506104826a115eec47f6cf7e3500000081565b3480156107e4575f80fd5b506104826107f3366004613574565b6119b3565b348015610803575f80fd5b50610482611b2d565b348015610817575f80fd5b5061048260125481565b34801561082c575f80fd5b5061048260095481565b348015610841575f80fd5b50601d5461045890610100900460ff1681565b34801561085f575f80fd5b506104f561086e366004613512565b611bfa565b34801561087e575f80fd5b50610887601581565b60405160ff9091168152602001610464565b3480156108a4575f80fd5b5061048260165481565b3480156108b9575f80fd5b506104586108c8366004613512565b601b6020525f908152604090205460ff1681565b3480156108e7575f80fd5b50610482611cec565b3480156108fb575f80fd5b50601d546104589060ff1681565b348015610914575f80fd5b506104826985685e51a4f1ddc0000081565b348015610931575f80fd5b506104f5610940366004613512565b611ed6565b348015610950575f80fd5b5060085461045890610100900460ff1681565b34801561096e575f80fd5b506104f5611f7b565b348015610982575f80fd5b50610482600a5481565b348015610997575f80fd5b506104f56109a6366004613512565b612193565b3480156109b6575f80fd5b506004546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109e2575f80fd5b506006546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610a0e575f80fd5b50610482690202fefbf2d7c2f0000081565b348015610a2b575f80fd5b506104f5610a3a36600461358f565b61236b565b348015610a4a575f80fd5b50610482601581565b348015610a5e575f80fd5b50610482601e5481565b348015610a73575f80fd5b5061048260075481565b348015610a88575f80fd5b506104f5610a973660046135c6565b6127c9565b348015610aa7575f80fd5b5061048260115481565b348015610abc575f80fd5b50610482610acb366004613574565b601a6020525f908152604090205481565b348015610ae7575f80fd5b5061048260155481565b348015610afc575f80fd5b505f546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610b27575f80fd5b50610b3b610b36366004613635565b612b44565b60408051938452602084019290925290820152606001610464565b348015610b61575f80fd5b506001546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b60045473ffffffffffffffffffffffffffffffffffffffff163314610bd3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085460ff1680610bfa575060065473ffffffffffffffffffffffffffffffffffffffff16155b80610c1b575060055473ffffffffffffffffffffffffffffffffffffffff16155b15610c52576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526a10d983e9a52a8c574000009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610cc8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cec9190613655565b14610d23576040517fff4b64bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610d5b62ed4e0042613699565b6007819055600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040517f3ec796be1be7d03bff3a62b9fa594a60e947c1809bced06d929f145308ae57ce905f90a2565b5f601054600f54600e54610dc691906136b2565b610dd091906136b2565b905090565b60055473ffffffffffffffffffffffffffffffffffffffff163314610e26576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415610e60576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016019556009545f90610e76906064906136f2565b610e81906001613699565b90505f8215801590610e955750600b548311155b601d549091505f9060ff168015610eab57508284145b8015610ec457506064600954610ec19190613705565b15155b905081158015610ed2575080155b80610eea57505f848152601b602052604090205460ff165b15610f21576040517f706a4eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f848152601b602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559051610fb791610f99918791017f4144445f4c4951554944495459000000000000000000000000000000000000008152600d810191909152602d0190565b60405160208183030381529060405280519060200120601654612fae565b50505f6019555050565b5f80610fcb611024565b90508015610fd857919050565b60075442108015610fee575062017ae860095414155b80610ffb5750601d5460ff165b15611007575f91505090565b600a5460095411611018575f61101b565b60015b60ff1691505090565b5f600b546064600954610dc691906136f2565b5f68052663ccab1e1c0000600a5460095461105291906136b2565b610dd09190613718565b60015473ffffffffffffffffffffffffffffffffffffffff1633146110ad576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601954156110e7576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955600854610100900460ff161561112e576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075442108015611144575062017ae860095414155b1561117a576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611182611037565b1515806111955750611192610db2565b15155b806111a657506111a3611b2d565b15155b806111b2575060125415155b806111c15750600954600a5414155b156111f7576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b17681905f90a15f601955565b6040517f706a4eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601954156112bd576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160195560085460ff166112fe576040517f80cb55e200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007544210611339576040517f589ed34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff8116158061134c5750601560ff8216115b15611383576040517f524f409b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f908152601a60205260409020546015906113a39060ff841690613699565b11156113db576040517fb643bfa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62017ae88160ff166009546113f09190613699565b1115611428576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61143d66038d7ea4c6800060ff8416613718565b90505f6015548360ff166114519190613718565b905061145d8183613699565b3414611495576040517f569e8c1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f68052663ccab1e1c00006114b36801158e460913d0000082613699565b6114bd9190613699565b6114ca9060ff8616613718565b5f546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152919250829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561153a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155e9190613655565b1015611596576040517fff4b64bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60095460016115a69190613699565b90505f600c5460016115b89190613699565b90505f60646009546115ca91906136f2565b335f908152601a60205260408120805492935060ff8a16929091906115f0908490613699565b925050819055508660ff1660095f82825461160b9190613699565b9091555061161f905060ff88166002613718565b600c5f82825461162f9190613699565b9091555061164b90506801158e460913d0000060ff8916613718565b600e5f82825461165b9190613699565b925050819055508560115f8282546116739190613699565b925050819055508460125f82825461168b9190613699565b925050819055508460135f8282546116a39190613699565b909155506116e29050336116c368052663ccab1e1c000060ff8b16613718565b5f5473ffffffffffffffffffffffffffffffffffffffff169190613288565b6040805160ff89168152602081018590529081018790526060810186905233907f19f5f791ee407773427bf7b970bbbc3375065c32edd1ab142e23a84f94b0719b9060800160405180910390a2817f74c0da2dec93f951501448e66d9bc8d50e589e6952e2e4fcf55ab4456bcb397c61175f60ff8a166002613718565b6117756801158e460913d0000060ff8c16613718565b6040805192835260208301919091520160405180910390a25f606460095461179d91906136f2565b90505f6117ab836001613699565b90505b818111611814576040805167016345785d8a00008152690202fefbf2d7c2f00000602082015260649183917fd201de24a55f120e3e303c53aff47bb249ab7b4e4b74becd6464612c29a30edb910160405180910390a361180d8161372f565b90506117ae565b50505f60195550505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314611874576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601954156118ae576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016019556118bc816133c8565b6006545f546118e59173ffffffffffffffffffffffffffffffffffffffff918216911683613288565b6006546040517fa1ba76c20000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff9091169063a1ba76c2906024016020604051808303815f875af1158015611953573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119779190613655565b506040518181527f23943053eef07b7c0a47c8a45cb322b905ff8fd978fc56520a65a0b5f94c8d06906020015b60405180910390a1505f601955565b6001545f9073ffffffffffffffffffffffffffffffffffffffff163314611a06576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415611a40576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160198190555473ffffffffffffffffffffffffffffffffffffffff838116911614611a99576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f601254601154611aaa9190613699565b9050804711611abc575f915050611b24565b611ac681476136b2565b9150611ad28383613477565b8273ffffffffffffffffffffffffffffffffffffffff167f2c2adeb4362c3800b7ba14f74ca88db2d49482462cb2f47d4a65d4031d53d84783604051611b1a91815260200190565b60405180910390a2505b5f601955919050565b5f80546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152829173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611b99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bbd9190613655565b90505f611bc8611037565b611bd0610db2565b611bda9190613699565b9050808211611be9575f611bf3565b611bf381836136b2565b9250505090565b60015473ffffffffffffffffffffffffffffffffffffffff163314611c4b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415611c85576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955611c93816133c8565b6001545f54611cbc9173ffffffffffffffffffffffffffffffffffffffff918216911683613288565b6040518181527f40c82f98946d9365180ecb016cbcb0ac9e387be93f2811845d941dbead21c58f906020016119a4565b6001545f9073ffffffffffffffffffffffffffffffffffffffff163314611d3f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415611d79576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160195560075442108015611d94575062017ae860095414155b15611dca576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611dd2611037565b151580611de55750611de2610db2565b15155b15611e1b576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6012549050805f03611e59576040517f6868d68e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f601255600154611e809073ffffffffffffffffffffffffffffffffffffffff1682613477565b60015460405182815273ffffffffffffffffffffffffffffffffffffffff909116907fea25f2905574f45eefb23a0774529fd1d0e56bb08294e93d300faf0891cdc4a09060200160405180910390a25f60195590565b60055473ffffffffffffffffffffffffffffffffffffffff163314611f27576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415611f61576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955601854611f74908290612fae565b505f601955565b60015473ffffffffffffffffffffffffffffffffffffffff163314611fcc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415612006576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955601d54610100900460ff161561204d576040517fe219b9ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075442108015612063575062017ae860095414155b1561209a576040517f589ed34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600f54600e546120ab91906136b2565b601d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055601081905590508015612163575f546040517f42966c680000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906342966c68906024015f604051808303815f87803b15801561214c575f80fd5b505af115801561215e573d5f803e3d5ffd5b505050505b6040518181527f7c5847ac01f81aa51f923f03d3d274463bfa8c0e1a3c81462239b00cc5603646906020016119a4565b60015473ffffffffffffffffffffffffffffffffffffffff1633146121e4576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6019541561221e576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955600254600554604080517fc34c08e5000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416939092169163c34c08e5916004808201926020929091908290030181865afa158015612298573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122bc9190613766565b73ffffffffffffffffffffffffffffffffffffffff1603612309576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612312816133c8565b6002545f5461233b9173ffffffffffffffffffffffffffffffffffffffff918216911683613288565b6040518181527f109f7bc2a29a0e642496472de58a137e8b6325dcd4e1db0f092f082801ecc3eb906020016119a4565b60045473ffffffffffffffffffffffffffffffffffffffff1633146123bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085460ff16806123e4575060065473ffffffffffffffffffffffffffffffffffffffff1615155b80612406575060055473ffffffffffffffffffffffffffffffffffffffff1615155b1561243d576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82161580612474575073ffffffffffffffffffffffffffffffffffffffff8116155b80612494575073ffffffffffffffffffffffffffffffffffffffff82163b155b806124b4575073ffffffffffffffffffffffffffffffffffffffff81163b155b156124eb576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254604080517fc34c08e50000000000000000000000000000000000000000000000000000000081529051839273ffffffffffffffffffffffffffffffffffffffff908116929084169163c34c08e5916004808201926020929091908290030181865afa15801561255f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125839190613766565b73ffffffffffffffffffffffffffffffffffffffff16036125d0576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff166301339c216040518163ffffffff1660e01b8152600401602060405180830381865afa158015612630573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126549190613766565b73ffffffffffffffffffffffffffffffffffffffff1614158061270f57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663d7b96d4e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126f69190613766565b73ffffffffffffffffffffffffffffffffffffffff1614155b15612746576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff868116918217909355600580549092169285169283179091556040517fcff941fc1d1ad89b3d5de05ccd516eec43fa7e5d8552f3c32f83cec7cd9080d1905f90a3505050565b60055473ffffffffffffffffffffffffffffffffffffffff16331461281a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415612854576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955601d54610100900460ff161561289b576040517fe219b9ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808015806128a95750606481115b156128e0576040517ff593aa6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5481600d546128f19190613699565b1115612929576040517f7443be3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b818110156129b0575f84848381811061294657612946613781565b905060200201602081019061295b9190613574565b73ffffffffffffffffffffffffffffffffffffffff16036129a8576040517fd1ce36b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60010161292b565b505f600d5460016129c19190613699565b905081600d5f8282546129d49190613699565b909155505f90506129ed678ac7230489e8000084613718565b905080600f5f828254612a009190613699565b909155505f90505b83811015612ad1575f868683818110612a2357612a23613781565b9050602002016020810190612a389190613574565b5f54909150612a669073ffffffffffffffffffffffffffffffffffffffff1682678ac7230489e80000613288565b612a708285613699565b8173ffffffffffffffffffffffffffffffffffffffff167f2843d246dbfff1bdf6390a3851951ec2824d9ccfaa9509603a89cd72e6c310ff678ac7230489e80000604051612ac091815260200190565b60405180910390a350600101612a08565b506040517f46495353494f4e0000000000000000000000000000000000000000000000000060208201526027810183905260478101849052612b39906067016040516020818303038152906040528051906020012084601754612b349190613718565b612fae565b50505f601955505050565b6005545f908190819073ffffffffffffffffffffffffffffffffffffffff163314612b9b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415612bd5576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016019819055600b54612be891613699565b8514612c20576040517f818642f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f612c29611024565b90508015612d7d57841580612c3d57508085115b15612c74576040517f50075e6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c7f606486613718565b915084600b5f828254612c929190613699565b9250508190555081600a5f828254612caa9190613699565b90915550612cc2905067016345785d8a000086613718565b9350612cd8690202fefbf2d7c2f0000086613718565b92508360115f828254612ceb91906136b2565b9091555050600654612d139073ffffffffffffffffffffffffffffffffffffffff1685613477565b6006545f54612d3c9173ffffffffffffffffffffffffffffffffffffffff918216911685613288565b604080518581526020810185905287917f2f4b99b9ad2ddc0f916a1263eaa3d2ac40421813e6553afa79b8961cc6724430910160405180910390a250612fa0565b84600114612db7576040517f827e3d8e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075442108015612dcd575062017ae860095414155b15612e04576040517f589ed34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601d5460ff1615612e41576040517f827e3d8e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a54600954612e5191906136b2565b9150811580612e61575060648210155b15612e98576040517f827e3d8e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600a5f828254612ea99190613699565b9091555050601d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055612eea66038d7ea4c6800083613718565b9350612eff68052663ccab1e1c000083613718565b92508360115f828254612f1291906136b2565b9091555050600654612f3a9073ffffffffffffffffffffffffffffffffffffffff1685613477565b6006545f54612f639173ffffffffffffffffffffffffffffffffffffffff918216911685613288565b604080518581526020810185905283917fd9baeacdf4690e578b1999313beea2d346158380a2a677c87e7df7630bb9748d910160405180910390a2505b5f6019819055509250925092565b5f828152601c602052604090205460ff1615612ff6576040517f706a4eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152601c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055601254821161303b578161303f565b6012545b9050801561319c578060125f82825461305891906136b2565b925050819055508060145f8282546130709190613699565b9091555050600554604080517fc34c08e500000000000000000000000000000000000000000000000000000000815290515f9273ffffffffffffffffffffffffffffffffffffffff169163c34c08e59160048083019260209291908290030181865afa1580156130e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131069190613766565b73ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f811461315a576040519150601f19603f3d011682016040523d82523d5f602084013e61315f565b606091505b505090508061319a576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c34c08e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613206573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061322a9190613766565b73ffffffffffffffffffffffffffffffffffffffff16837f9fcd1078911df6e011c020f0b6f7a1f04a3103847fe3ca14f82eb36e0c8df238848460405161327b929190918252602082015260400190565b60405180910390a3505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291515f9283929087169161331e91906137ae565b5f604051808303815f865af19150503d805f8114613357576040519150601f19603f3d011682016040523d82523d5f602084013e61335c565b606091505b509150915081158061338a575080511580159061338a57508080602001905181019061338891906137da565b155b156133c1576040517f3f409f9a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b600754421080156133de575062017ae860095414155b15613414576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015806134275750613424611b2d565b81115b1561345e576040517f6868d68e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80601e5f82825461346f9190613699565b909155505050565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146134cd576040519150601f19603f3d011682016040523d82523d5f602084013e6134d2565b606091505b505090508061350d576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b5f60208284031215613522575f80fd5b5035919050565b5f60208284031215613539575f80fd5b813560ff81168114613549575f80fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114613571575f80fd5b50565b5f60208284031215613584575f80fd5b813561354981613550565b5f80604083850312156135a0575f80fd5b82356135ab81613550565b915060208301356135bb81613550565b809150509250929050565b5f80602083850312156135d7575f80fd5b823567ffffffffffffffff808211156135ee575f80fd5b818501915085601f830112613601575f80fd5b81358181111561360f575f80fd5b8660208260051b8501011115613623575f80fd5b60209290920196919550909350505050565b5f8060408385031215613646575f80fd5b50508035926020909101359150565b5f60208284031215613665575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156136ac576136ac61366c565b92915050565b818103818111156136ac576136ac61366c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82613700576137006136c5565b500490565b5f82613713576137136136c5565b500690565b80820281158282048414176136ac576136ac61366c565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361375f5761375f61366c565b5060010190565b5f60208284031215613776575f80fd5b815161354981613550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82515f5b818110156137cd57602081860181015185830152016137b3565b505f920191825250919050565b5f602082840312156137ea575f80fd5b81518015158114613549575f80fdfea2646970667358221220d1627fa276b92677e2f077d9241a06c895ffc14aa3bd958c1d539b55602e9b8764736f6c63430008180033000000000000000000000000222fe12a2f52fe00dfb18a2ac1a0e06aa5c1d9040000000000000000000000005fa65d26d5267274c28a7fb9361ddf13c27f4b07000000000000000000000000510d5bfb23df0008ab7e45de98e2e28b56663159000000000000000000000000eaa5cbea263e0d003990f55aed653e7eaa6930cc000000000000000000000000bd556b6244a39044fb3a2c52169f4cee291df893000000000000000000000000000000000000000000000000000009184e72a0000000000000000000000000000000000000000000000000000001c6bf52634000000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000005af3107a4000
0x608060405260043610610404575f3560e01c80638ec6f3b71161021d578063c0fba98811610122578063ea2b4ab2116100b7578063f1b4bfc611610087578063f37bfc8f1161006d578063f37bfc8f14610b1c578063fbaf882714610b56578063ff05fe9d146106d3575f80fd5b8063f1b4bfc614610adc578063f2cc434d14610af1575f80fd5b8063ea2b4ab214610a68578063eea9018e14610a7d578063ef4bb4e514610a9c578063f0293fd314610ab1575f80fd5b8063d96059b2116100f2578063d96059b214610a03578063e470d5cf14610a20578063e78fba2214610a3f578063e9caec8d14610a53575f80fd5b8063c0fba98814610977578063d01a96bb1461098c578063d5f39488146109ab578063d7b96d4e146109d7575f80fd5b8063a48b34c9116101b2578063abec166311610182578063b1efc79011610168578063b1efc79014610926578063b3f05b9714610945578063b4c8a65914610963575f80fd5b8063abec1663146108f0578063ad63118014610909575f80fd5b8063a48b34c914610873578063a50a42d714610899578063a670ce15146108ae578063abb9dff9146108dc575f80fd5b80639c855de7116101ed5780639c855de71461080c5780639e9311fc14610821578063a078210614610836578063a19e3b8614610854575f80fd5b80638ec6f3b7146107a6578063902d55a5146107bb578063966b32bb146107d957806396c1466e146107f8575f80fd5b80634916d01b1161032357806362bc5f7b116102b857806375bfb5d61161028857806383bb85161161026e57806383bb85161461075d57806389e6a0f3146107725780638c003e6f14610787575f80fd5b806375bfb5d6146107175780637f5a7c7b14610731575f80fd5b806362bc5f7b146106bd5780636886954f146106d35780636cdaa102146106ef5780636ecd230614610704575f80fd5b80634ba6c23c116102f35780634ba6c23c146106475780634bb278f3146106795780634bcd6ea61461068d57806350daf069146106a1575f80fd5b80634916d01b1461061e578063493562091461063257806349faa4d4146106475780634b6e45031461065b575f80fd5b806325e43e911161039957806332c900991161036957806332c90099146105b457806337928c6b146105e05780633e8f995f146105f457806346aab71614610609575f80fd5b806325e43e91146105605780632c687f7d146105765780632d5dfdb61461058a57806331a5b1c51461059f575f80fd5b80631706b7ea116103d45780631706b7ea146104f75780631985a3b31461050b5780631f546a8314610526578063247e8dc614610541575f80fd5b806302fb0c5e1461043f57806307ecafce1461046d5780630a009097146104905780630f15f4c0146104e1575f80fd5b3661043b576040517f4cb975e000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80fd5b34801561044a575f80fd5b506008546104589060ff1681565b60405190151581526020015b60405180910390f35b348015610478575f80fd5b5061048260185481565b604051908152602001610464565b34801561049b575f80fd5b506005546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610464565b3480156104ec575f80fd5b506104f5610b82565b005b348015610502575f80fd5b50610482610db2565b348015610516575f80fd5b50610482678ac7230489e8000081565b348015610531575f80fd5b5061048267016345785d8a000081565b34801561054c575f80fd5b506104f561055b366004613512565b610dd5565b34801561056b575f80fd5b5061048262017ae881565b348015610581575f80fd5b50610482610fc1565b348015610595575f80fd5b50610482600f5481565b3480156105aa575f80fd5b50610482600b5481565b3480156105bf575f80fd5b506002546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156105eb575f80fd5b50610482611024565b3480156105ff575f80fd5b5061048260145481565b348015610614575f80fd5b5061048260175481565b348015610629575f80fd5b50610482611037565b34801561063d575f80fd5b5061048260105481565b348015610652575f80fd5b50610482606481565b348015610666575f80fd5b506104826a10d983e9a52a8c5740000081565b348015610684575f80fd5b506104f561105c565b348015610698575f80fd5b506104f5611251565b3480156106ac575f80fd5b506104826801158e460913d0000081565b3480156106c8575f80fd5b5061048262ed4e0081565b3480156106de575f80fd5b5061048268052663ccab1e1c000081565b3480156106fa575f80fd5b50610482600e5481565b6104f5610712366004613529565b611283565b348015610722575f80fd5b5061048266038d7ea4c6800081565b34801561073c575f80fd5b506003546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610768575f80fd5b5061048260135481565b34801561077d575f80fd5b50610482600d5481565b348015610792575f80fd5b506104f56107a1366004613512565b611823565b3480156107b1575f80fd5b50610482600c5481565b3480156107c6575f80fd5b506104826a115eec47f6cf7e3500000081565b3480156107e4575f80fd5b506104826107f3366004613574565b6119b3565b348015610803575f80fd5b50610482611b2d565b348015610817575f80fd5b5061048260125481565b34801561082c575f80fd5b5061048260095481565b348015610841575f80fd5b50601d5461045890610100900460ff1681565b34801561085f575f80fd5b506104f561086e366004613512565b611bfa565b34801561087e575f80fd5b50610887601581565b60405160ff9091168152602001610464565b3480156108a4575f80fd5b5061048260165481565b3480156108b9575f80fd5b506104586108c8366004613512565b601b6020525f908152604090205460ff1681565b3480156108e7575f80fd5b50610482611cec565b3480156108fb575f80fd5b50601d546104589060ff1681565b348015610914575f80fd5b506104826985685e51a4f1ddc0000081565b348015610931575f80fd5b506104f5610940366004613512565b611ed6565b348015610950575f80fd5b5060085461045890610100900460ff1681565b34801561096e575f80fd5b506104f5611f7b565b348015610982575f80fd5b50610482600a5481565b348015610997575f80fd5b506104f56109a6366004613512565b612193565b3480156109b6575f80fd5b506004546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109e2575f80fd5b506006546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610a0e575f80fd5b50610482690202fefbf2d7c2f0000081565b348015610a2b575f80fd5b506104f5610a3a36600461358f565b61236b565b348015610a4a575f80fd5b50610482601581565b348015610a5e575f80fd5b50610482601e5481565b348015610a73575f80fd5b5061048260075481565b348015610a88575f80fd5b506104f5610a973660046135c6565b6127c9565b348015610aa7575f80fd5b5061048260115481565b348015610abc575f80fd5b50610482610acb366004613574565b601a6020525f908152604090205481565b348015610ae7575f80fd5b5061048260155481565b348015610afc575f80fd5b505f546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610b27575f80fd5b50610b3b610b36366004613635565b612b44565b60408051938452602084019290925290820152606001610464565b348015610b61575f80fd5b506001546104bc9073ffffffffffffffffffffffffffffffffffffffff1681565b60045473ffffffffffffffffffffffffffffffffffffffff163314610bd3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085460ff1680610bfa575060065473ffffffffffffffffffffffffffffffffffffffff16155b80610c1b575060055473ffffffffffffffffffffffffffffffffffffffff16155b15610c52576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526a10d983e9a52a8c574000009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015610cc8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cec9190613655565b14610d23576040517fff4b64bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610d5b62ed4e0042613699565b6007819055600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040517f3ec796be1be7d03bff3a62b9fa594a60e947c1809bced06d929f145308ae57ce905f90a2565b5f601054600f54600e54610dc691906136b2565b610dd091906136b2565b905090565b60055473ffffffffffffffffffffffffffffffffffffffff163314610e26576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415610e60576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016019556009545f90610e76906064906136f2565b610e81906001613699565b90505f8215801590610e955750600b548311155b601d549091505f9060ff168015610eab57508284145b8015610ec457506064600954610ec19190613705565b15155b905081158015610ed2575080155b80610eea57505f848152601b602052604090205460ff165b15610f21576040517f706a4eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f848152601b602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790559051610fb791610f99918791017f4144445f4c4951554944495459000000000000000000000000000000000000008152600d810191909152602d0190565b60405160208183030381529060405280519060200120601654612fae565b50505f6019555050565b5f80610fcb611024565b90508015610fd857919050565b60075442108015610fee575062017ae860095414155b80610ffb5750601d5460ff165b15611007575f91505090565b600a5460095411611018575f61101b565b60015b60ff1691505090565b5f600b546064600954610dc691906136f2565b5f68052663ccab1e1c0000600a5460095461105291906136b2565b610dd09190613718565b60015473ffffffffffffffffffffffffffffffffffffffff1633146110ad576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601954156110e7576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955600854610100900460ff161561112e576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075442108015611144575062017ae860095414155b1561117a576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611182611037565b1515806111955750611192610db2565b15155b806111a657506111a3611b2d565b15155b806111b2575060125415155b806111c15750600954600a5414155b156111f7576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b17681905f90a15f601955565b6040517f706a4eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601954156112bd576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160195560085460ff166112fe576040517f80cb55e200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007544210611339576040517f589ed34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff8116158061134c5750601560ff8216115b15611383576040517f524f409b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f908152601a60205260409020546015906113a39060ff841690613699565b11156113db576040517fb643bfa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62017ae88160ff166009546113f09190613699565b1115611428576040517f52df9fe500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61143d66038d7ea4c6800060ff8416613718565b90505f6015548360ff166114519190613718565b905061145d8183613699565b3414611495576040517f569e8c1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f68052663ccab1e1c00006114b36801158e460913d0000082613699565b6114bd9190613699565b6114ca9060ff8616613718565b5f546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152919250829173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561153a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155e9190613655565b1015611596576040517fff4b64bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60095460016115a69190613699565b90505f600c5460016115b89190613699565b90505f60646009546115ca91906136f2565b335f908152601a60205260408120805492935060ff8a16929091906115f0908490613699565b925050819055508660ff1660095f82825461160b9190613699565b9091555061161f905060ff88166002613718565b600c5f82825461162f9190613699565b9091555061164b90506801158e460913d0000060ff8916613718565b600e5f82825461165b9190613699565b925050819055508560115f8282546116739190613699565b925050819055508460125f82825461168b9190613699565b925050819055508460135f8282546116a39190613699565b909155506116e29050336116c368052663ccab1e1c000060ff8b16613718565b5f5473ffffffffffffffffffffffffffffffffffffffff169190613288565b6040805160ff89168152602081018590529081018790526060810186905233907f19f5f791ee407773427bf7b970bbbc3375065c32edd1ab142e23a84f94b0719b9060800160405180910390a2817f74c0da2dec93f951501448e66d9bc8d50e589e6952e2e4fcf55ab4456bcb397c61175f60ff8a166002613718565b6117756801158e460913d0000060ff8c16613718565b6040805192835260208301919091520160405180910390a25f606460095461179d91906136f2565b90505f6117ab836001613699565b90505b818111611814576040805167016345785d8a00008152690202fefbf2d7c2f00000602082015260649183917fd201de24a55f120e3e303c53aff47bb249ab7b4e4b74becd6464612c29a30edb910160405180910390a361180d8161372f565b90506117ae565b50505f60195550505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314611874576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601954156118ae576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016019556118bc816133c8565b6006545f546118e59173ffffffffffffffffffffffffffffffffffffffff918216911683613288565b6006546040517fa1ba76c20000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff9091169063a1ba76c2906024016020604051808303815f875af1158015611953573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119779190613655565b506040518181527f23943053eef07b7c0a47c8a45cb322b905ff8fd978fc56520a65a0b5f94c8d06906020015b60405180910390a1505f601955565b6001545f9073ffffffffffffffffffffffffffffffffffffffff163314611a06576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415611a40576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160198190555473ffffffffffffffffffffffffffffffffffffffff838116911614611a99576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f601254601154611aaa9190613699565b9050804711611abc575f915050611b24565b611ac681476136b2565b9150611ad28383613477565b8273ffffffffffffffffffffffffffffffffffffffff167f2c2adeb4362c3800b7ba14f74ca88db2d49482462cb2f47d4a65d4031d53d84783604051611b1a91815260200190565b60405180910390a2505b5f601955919050565b5f80546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152829173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611b99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bbd9190613655565b90505f611bc8611037565b611bd0610db2565b611bda9190613699565b9050808211611be9575f611bf3565b611bf381836136b2565b9250505090565b60015473ffffffffffffffffffffffffffffffffffffffff163314611c4b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415611c85576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955611c93816133c8565b6001545f54611cbc9173ffffffffffffffffffffffffffffffffffffffff918216911683613288565b6040518181527f40c82f98946d9365180ecb016cbcb0ac9e387be93f2811845d941dbead21c58f906020016119a4565b6001545f9073ffffffffffffffffffffffffffffffffffffffff163314611d3f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415611d79576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160195560075442108015611d94575062017ae860095414155b15611dca576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611dd2611037565b151580611de55750611de2610db2565b15155b15611e1b576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6012549050805f03611e59576040517f6868d68e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f601255600154611e809073ffffffffffffffffffffffffffffffffffffffff1682613477565b60015460405182815273ffffffffffffffffffffffffffffffffffffffff909116907fea25f2905574f45eefb23a0774529fd1d0e56bb08294e93d300faf0891cdc4a09060200160405180910390a25f60195590565b60055473ffffffffffffffffffffffffffffffffffffffff163314611f27576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415611f61576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955601854611f74908290612fae565b505f601955565b60015473ffffffffffffffffffffffffffffffffffffffff163314611fcc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415612006576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955601d54610100900460ff161561204d576040517fe219b9ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075442108015612063575062017ae860095414155b1561209a576040517f589ed34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600f54600e546120ab91906136b2565b601d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055601081905590508015612163575f546040517f42966c680000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906342966c68906024015f604051808303815f87803b15801561214c575f80fd5b505af115801561215e573d5f803e3d5ffd5b505050505b6040518181527f7c5847ac01f81aa51f923f03d3d274463bfa8c0e1a3c81462239b00cc5603646906020016119a4565b60015473ffffffffffffffffffffffffffffffffffffffff1633146121e4576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6019541561221e576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955600254600554604080517fc34c08e5000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff938416939092169163c34c08e5916004808201926020929091908290030181865afa158015612298573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122bc9190613766565b73ffffffffffffffffffffffffffffffffffffffff1603612309576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612312816133c8565b6002545f5461233b9173ffffffffffffffffffffffffffffffffffffffff918216911683613288565b6040518181527f109f7bc2a29a0e642496472de58a137e8b6325dcd4e1db0f092f082801ecc3eb906020016119a4565b60045473ffffffffffffffffffffffffffffffffffffffff1633146123bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085460ff16806123e4575060065473ffffffffffffffffffffffffffffffffffffffff1615155b80612406575060055473ffffffffffffffffffffffffffffffffffffffff1615155b1561243d576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82161580612474575073ffffffffffffffffffffffffffffffffffffffff8116155b80612494575073ffffffffffffffffffffffffffffffffffffffff82163b155b806124b4575073ffffffffffffffffffffffffffffffffffffffff81163b155b156124eb576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254604080517fc34c08e50000000000000000000000000000000000000000000000000000000081529051839273ffffffffffffffffffffffffffffffffffffffff908116929084169163c34c08e5916004808201926020929091908290030181865afa15801561255f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125839190613766565b73ffffffffffffffffffffffffffffffffffffffff16036125d0576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff166301339c216040518163ffffffff1660e01b8152600401602060405180830381865afa158015612630573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126549190613766565b73ffffffffffffffffffffffffffffffffffffffff1614158061270f57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663d7b96d4e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126f69190613766565b73ffffffffffffffffffffffffffffffffffffffff1614155b15612746576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff868116918217909355600580549092169285169283179091556040517fcff941fc1d1ad89b3d5de05ccd516eec43fa7e5d8552f3c32f83cec7cd9080d1905f90a3505050565b60055473ffffffffffffffffffffffffffffffffffffffff16331461281a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415612854576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001601955601d54610100900460ff161561289b576040517fe219b9ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808015806128a95750606481115b156128e0576040517ff593aa6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5481600d546128f19190613699565b1115612929576040517f7443be3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b818110156129b0575f84848381811061294657612946613781565b905060200201602081019061295b9190613574565b73ffffffffffffffffffffffffffffffffffffffff16036129a8576040517fd1ce36b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60010161292b565b505f600d5460016129c19190613699565b905081600d5f8282546129d49190613699565b909155505f90506129ed678ac7230489e8000084613718565b905080600f5f828254612a009190613699565b909155505f90505b83811015612ad1575f868683818110612a2357612a23613781565b9050602002016020810190612a389190613574565b5f54909150612a669073ffffffffffffffffffffffffffffffffffffffff1682678ac7230489e80000613288565b612a708285613699565b8173ffffffffffffffffffffffffffffffffffffffff167f2843d246dbfff1bdf6390a3851951ec2824d9ccfaa9509603a89cd72e6c310ff678ac7230489e80000604051612ac091815260200190565b60405180910390a350600101612a08565b506040517f46495353494f4e0000000000000000000000000000000000000000000000000060208201526027810183905260478101849052612b39906067016040516020818303038152906040528051906020012084601754612b349190613718565b612fae565b50505f601955505050565b6005545f908190819073ffffffffffffffffffffffffffffffffffffffff163314612b9b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60195415612bd5576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016019819055600b54612be891613699565b8514612c20576040517f818642f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f612c29611024565b90508015612d7d57841580612c3d57508085115b15612c74576040517f50075e6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612c7f606486613718565b915084600b5f828254612c929190613699565b9250508190555081600a5f828254612caa9190613699565b90915550612cc2905067016345785d8a000086613718565b9350612cd8690202fefbf2d7c2f0000086613718565b92508360115f828254612ceb91906136b2565b9091555050600654612d139073ffffffffffffffffffffffffffffffffffffffff1685613477565b6006545f54612d3c9173ffffffffffffffffffffffffffffffffffffffff918216911685613288565b604080518581526020810185905287917f2f4b99b9ad2ddc0f916a1263eaa3d2ac40421813e6553afa79b8961cc6724430910160405180910390a250612fa0565b84600114612db7576040517f827e3d8e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60075442108015612dcd575062017ae860095414155b15612e04576040517f589ed34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601d5460ff1615612e41576040517f827e3d8e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a54600954612e5191906136b2565b9150811580612e61575060648210155b15612e98576040517f827e3d8e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600a5f828254612ea99190613699565b9091555050601d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055612eea66038d7ea4c6800083613718565b9350612eff68052663ccab1e1c000083613718565b92508360115f828254612f1291906136b2565b9091555050600654612f3a9073ffffffffffffffffffffffffffffffffffffffff1685613477565b6006545f54612f639173ffffffffffffffffffffffffffffffffffffffff918216911685613288565b604080518581526020810185905283917fd9baeacdf4690e578b1999313beea2d346158380a2a677c87e7df7630bb9748d910160405180910390a2505b5f6019819055509250925092565b5f828152601c602052604090205460ff1615612ff6576040517f706a4eda00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152601c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055601254821161303b578161303f565b6012545b9050801561319c578060125f82825461305891906136b2565b925050819055508060145f8282546130709190613699565b9091555050600554604080517fc34c08e500000000000000000000000000000000000000000000000000000000815290515f9273ffffffffffffffffffffffffffffffffffffffff169163c34c08e59160048083019260209291908290030181865afa1580156130e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131069190613766565b73ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f811461315a576040519150601f19603f3d011682016040523d82523d5f602084013e61315f565b606091505b505090508061319a576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c34c08e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613206573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061322a9190613766565b73ffffffffffffffffffffffffffffffffffffffff16837f9fcd1078911df6e011c020f0b6f7a1f04a3103847fe3ca14f82eb36e0c8df238848460405161327b929190918252602082015260400190565b60405180910390a3505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291515f9283929087169161331e91906137ae565b5f604051808303815f865af19150503d805f8114613357576040519150601f19603f3d011682016040523d82523d5f602084013e61335c565b606091505b509150915081158061338a575080511580159061338a57508080602001905181019061338891906137da565b155b156133c1576040517f3f409f9a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b600754421080156133de575062017ae860095414155b15613414576040517ee8f46600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015806134275750613424611b2d565b81115b1561345e576040517f6868d68e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80601e5f82825461346f9190613699565b909155505050565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146134cd576040519150601f19603f3d011682016040523d82523d5f602084013e6134d2565b606091505b505090508061350d576040517fc52a9bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b5f60208284031215613522575f80fd5b5035919050565b5f60208284031215613539575f80fd5b813560ff81168114613549575f80fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114613571575f80fd5b50565b5f60208284031215613584575f80fd5b813561354981613550565b5f80604083850312156135a0575f80fd5b82356135ab81613550565b915060208301356135bb81613550565b809150509250929050565b5f80602083850312156135d7575f80fd5b823567ffffffffffffffff808211156135ee575f80fd5b818501915085601f830112613601575f80fd5b81358181111561360f575f80fd5b8660208260051b8501011115613623575f80fd5b60209290920196919550909350505050565b5f8060408385031215613646575f80fd5b50508035926020909101359150565b5f60208284031215613665575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156136ac576136ac61366c565b92915050565b818103818111156136ac576136ac61366c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82613700576137006136c5565b500490565b5f82613713576137136136c5565b500690565b80820281158282048414176136ac576136ac61366c565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361375f5761375f61366c565b5060010190565b5f60208284031215613776575f80fd5b815161354981613550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82515f5b818110156137cd57602081860181015185830152016137b3565b505f920191825250919050565b5f602082840312156137ea575f80fd5b81518015158114613549575f80fdfea2646970667358221220d1627fa276b92677e2f077d9241a06c895ffc14aa3bd958c1d539b55602e9b8764736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| BIMO (BIMO) | BIMO | 20,328,000 | — | — |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x6c5dbb55…0f7673 | Transfer | 25,167,620 | 16 days agoSat, 01 Aug 2026 16:03:25 UTC | 0x608c…8f95 | OUT | 0x0577…a3b1 | 9,500.000000 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00f4…261b | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00f4…742a | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00f3…0b97 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00f2…0850 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00f1…b1da | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00f0…5a5d | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00f0…fd33 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ef…0be2 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ee…30d5 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ee…819c | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ee…6f2d | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ee…afbe | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ee…11bf | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ed…47e4 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ec…7076 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ec…04c3 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00eb…b77e | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ea…4a9d | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00ea…c410 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00e9…37c3 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00e9…f679 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00e8…b210 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00e7…0571 | 10 BIMO | BIMO (BIMO) | |
| 0x006916fb…e2af98 | Transfer | 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x608c…8f95 | OUT | 0x00e6…453d | 10 BIMO | BIMO (BIMO) |
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xb6e48d…788fe5 | 15 days agoSun, 02 Aug 2026 05:28:22 UTC | 0x9fcd10…f238 | [0] 0xbb222d30a5da…aaf6604d [1] 0x000000000000…92bd41d4 data: 0x000000000000000000…107a4000 |
| 0x6c5dbb…0f7673 | 16 days agoSat, 01 Aug 2026 16:03:25 UTC | 0x9fcd10…f238 | [0] 0xcabcc19a1cbb…16486718 [1] 0x000000000000…92bd41d4 data: 0x000000000000000000…52634000 |
| 0x6c5dbb…0f7673 | 16 days agoSat, 01 Aug 2026 16:03:25 UTC | 0x2f4b99…4430 | [0] 0x000000000000…00000002 data: 0x000000000000000000…c2f00000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x9fcd10…f238 | [0] 0x2eea7ddff41e…863c9189 [1] 0x000000000000…92bd41d4 data: 0x000000000000000000…dad16000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…8613261b [1] 0x000000000000…00000190 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…76f6742a [1] 0x000000000000…0000018f data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…4c440b97 [1] 0x000000000000…0000018e data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…4e3f0850 [1] 0x000000000000…0000018d data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…1acab1da [1] 0x000000000000…0000018c data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…31625a5d [1] 0x000000000000…0000018b data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…f1d2fd33 [1] 0x000000000000…0000018a data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…ff3d0be2 [1] 0x000000000000…00000189 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…d68f30d5 [1] 0x000000000000…00000188 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…e58b819c [1] 0x000000000000…00000187 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…da946f2d [1] 0x000000000000…00000186 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…8e86afbe [1] 0x000000000000…00000185 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…4b6a11bf [1] 0x000000000000…00000184 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…bdcb47e4 [1] 0x000000000000…00000183 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…48e27076 [1] 0x000000000000…00000182 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…442d04c3 [1] 0x000000000000…00000181 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…dcf2b77e [1] 0x000000000000…00000180 data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…1de24a9d [1] 0x000000000000…0000017f data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…189dc410 [1] 0x000000000000…0000017e data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…ea0937c3 [1] 0x000000000000…0000017d data: 0x000000000000000000…89e80000 |
| 0x006916…e2af98 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x2843d2…10ff | [0] 0x000000000000…0b8df679 [1] 0x000000000000…0000017c data: 0x000000000000000000…89e80000 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x7faf45…6e542d | mint | 24,797,115 | 16 days agoSat, 01 Aug 2026 05:43:34 UTC | 0xf06f…941c | IN | BIMOImmutableLaunchVault | $11.540.00606 ETH | 0.00000257 | |
| 0x527c20…f65cd6 | mint | 24,795,410 | 16 days agoSat, 01 Aug 2026 05:40:44 UTC | 0x5fa6…4b07 | IN | BIMOImmutableLaunchVault | $40.400.02121 ETH | 0.00000218 | |
| 0x251f14…60c0bc | mint | 19,010,724 | 23 days agoSat, 25 Jul 2026 12:30:05 UTC | 0x42ba…f84b | IN | BIMOImmutableLaunchVault | $40.400.02121 ETH | 0.00001062 | |
| 0xe3a756…9bfb72 | mint | 19,005,693 | 23 days agoSat, 25 Jul 2026 12:21:40 UTC | 0x0c2e…8d39 | IN | BIMOImmutableLaunchVault | $38.470.0202 ETH | 0.00000752 | |
| 0x1750da…ad40ec | mint | 19,005,354 | 23 days agoSat, 25 Jul 2026 12:21:06 UTC | 0x4c0f…0d15 | IN | BIMOImmutableLaunchVault | $1.920.00101 ETH | 0.00000895 | |
| 0x96e0bd…a75ef6 | mint | 19,005,197 | 23 days agoSat, 25 Jul 2026 12:20:50 UTC | 0x0c2e…8d39 | IN | BIMOImmutableLaunchVault | $1.920.00101 ETH | 0.00001039 | |
| 0xeb5d39…8443a3 | mint | 19,005,063 | 23 days agoSat, 25 Jul 2026 12:20:37 UTC | 0x4c0f…0d15 | IN | BIMOImmutableLaunchVault | $1.920.00101 ETH | 0.00001031 | |
| 0x215e92…49cc20 | mint | 19,003,929 | 23 days agoSat, 25 Jul 2026 12:18:43 UTC | 0x68b4…fe50 | IN | BIMOImmutableLaunchVault | $40.400.02121 ETH | 0.00001035 | |
| 0x316e65…844a24 | mint | 18,999,231 | 23 days agoSat, 25 Jul 2026 12:10:52 UTC | 0xc9be…e3d0 | IN | BIMOImmutableLaunchVault | $1.920.00101 ETH | 0.00000752 | |
| 0x35a09c…aba778 | mint | 18,997,332 | 23 days agoSat, 25 Jul 2026 12:07:41 UTC | 0xc9be…e3d0 | IN | BIMOImmutableLaunchVault | $1.920.00101 ETH | 0.00001032 | |
| 0x44edbc…17e06b | mint | 18,980,085 | 23 days agoSat, 25 Jul 2026 11:38:50 UTC | 0xa992…8c34 | IN | BIMOImmutableLaunchVault | $1.920.00101 ETH | 0.00001040 | |
| 0xec2a1b…e7fffb | mint | 18,971,823 | 23 days agoSat, 25 Jul 2026 11:25:00 UTC | 0x510a…520f | IN | BIMOImmutableLaunchVault | $40.400.02121 ETH | 0.00001062 | |
| 0x464555…8c3816 | mint | 18,971,450 | 23 days agoSat, 25 Jul 2026 11:24:22 UTC | 0xc996…556a | IN | BIMOImmutableLaunchVault | $40.400.02121 ETH | 0.00001050 | |
| 0xe3a3e4…f267a9 | mint | 18,971,142 | 23 days agoSat, 25 Jul 2026 11:23:51 UTC | 0x0fbc…f250 | IN | BIMOImmutableLaunchVault | $40.400.02121 ETH | 0.00001053 | |
| 0xf8a255…141860 | mint | 18,970,883 | 23 days agoSat, 25 Jul 2026 11:23:25 UTC | 0xc1ed…5ea4 | IN | BIMOImmutableLaunchVault | $40.400.02121 ETH | 0.00001047 | |
| 0x85e222…018aeb | mint | 18,970,235 | 23 days agoSat, 25 Jul 2026 11:22:20 UTC | 0xd405…e6a5 | IN | BIMOImmutableLaunchVault | $40.400.02121 ETH | 0.00001918 | |
| 0xe98e05…b5b44c | activate | 18,651,639 | 23 days agoSat, 25 Jul 2026 02:28:27 UTC | 0xbd55…f893 | IN | BIMOImmutableLaunchVault | $0.000 ETH | 0.00000802 | |
| 0x345032…c1a5f6 | configure | 18,634,069 | 23 days agoSat, 25 Jul 2026 01:59:03 UTC | 0xbd55…f893 | IN | BIMOImmutableLaunchVault | $0.000 ETH | 0.00000958 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 25,649,341 | 15 days agoSun, 02 Aug 2026 05:28:22 UTC | 0xb6e48d…788fe5 | CALL | buybackAndBurn | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.0001 ETH |
| 25,167,620 | 16 days agoSat, 01 Aug 2026 16:03:25 UTC | 0x6c5dbb…0f7673 | CALL | processReadyBatches | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.0005 ETH |
| 25,167,620 | 16 days agoSat, 01 Aug 2026 16:03:25 UTC | 0x6c5dbb…0f7673 | CALL | processReadyBatches | 0x608c…8f95 | OUT | 0x0577…a3b1 | 0.1 ETH |
| 25,143,059 | 16 days agoSat, 01 Aug 2026 15:22:21 UTC | 0x006916…e2af98 | CALL | distributeFission | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.00005 ETH |
| 19,014,316 | 23 days agoSat, 25 Jul 2026 12:36:06 UTC | 0x3f9082…cca64e | CALL | distributeFission | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.00004 ETH |
| 19,008,335 | 23 days agoSat, 25 Jul 2026 12:26:06 UTC | 0xfff533…f91c82 | CALL | distributeFission | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.00008 ETH |
| 19,002,360 | 23 days agoSat, 25 Jul 2026 12:16:06 UTC | 0xccaeee…e61bf5 | CALL | distributeFission | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.00000 ETH |
| 18,984,428 | 23 days agoSat, 25 Jul 2026 11:46:06 UTC | 0x67d28d…08d37b | CALL | distributeFission | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.00000 ETH |
| 18,975,466 | 23 days agoSat, 25 Jul 2026 11:31:06 UTC | 0xa587e6…0c91fd | CALL | distributeFission | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.00006 ETH |
| 18,973,439 | 23 days agoSat, 25 Jul 2026 11:27:42 UTC | 0xba1464…440f2a | CALL | processReadyBatches | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.0005 ETH |
| 18,973,439 | 23 days agoSat, 25 Jul 2026 11:27:42 UTC | 0xba1464…440f2a | CALL | processReadyBatches | 0x608c…8f95 | OUT | 0x0577…a3b1 | 0.1 ETH |
| 18,973,424 | 23 days agoSat, 25 Jul 2026 11:27:41 UTC | 0xc46ec1…801577 | CALL | distributeFission | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.0001 ETH |
| 18,972,478 | 23 days agoSat, 25 Jul 2026 11:26:06 UTC | 0x9abfbb…716448 | CALL | distributeFission | 0x608c…8f95 | OUT | 0x37e8…41d4 | 0.00004 ETH |