false
true
0

Contract Address Details

0x9ed4801d002fD7b694EF9fC46cC2CAA58f80203c

Contract Name
MoonxSink
Creator
0x41fc09–45f742 at 0x9eb765–9b3db3
Balance
0 tPLS
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
25393497
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
MoonxSink




Optimization enabled
false
Compiler version
v0.8.24+commit.e11b9ed9




EVM Version




Verified at
2026-09-02T11:52:25.451218Z

Constructor Arguments

0000000000000000000000007cc05e3ad8f3e5711a20871e690501e2dd29e73600000000000000000000000041fc09bf4e4647f1375633bace8f0203cb45f742

Arg [0] (address) : 0x7cc05e3ad8f3e5711a20871e690501e2dd29e736
Arg [1] (address) : 0x41fc09bf4e4647f1375633bace8f0203cb45f742

              

src/MoonxSink.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

interface IERC20S {
    function transfer(address to, uint256 amt) external returns (bool);
    function approve(address spender, uint256 amt) external returns (bool);
    function balanceOf(address who) external view returns (uint256);
}

interface ISwapRouterS {
    /// @dev UniswapV2-router shape — PulseX implements it.
    function swapExactTokensForTokens(
        uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline
    ) external returns (uint256[] memory amounts);
}

/// @title MoonxSink — every family trade ends in a MOONX burn
/// @notice The decided economics (no $MOONS token): the protocol's 30% of
///         every pool's 1% fee lands here, in whatever asset the pool is
///         paired with, and `crank()` converts it — 80% market-buys MOONX and
///         burns it, 20% goes to ops. Permissionless crank: the burn cannot
///         be quietly withheld, delayed or skipped by anyone, including us.
///
///         This is the non-reflexive MOONX sink the diligence pack asked for:
///         MOONX demand traceable to OTHER PEOPLE'S tokens trading, not to
///         the act of earning more MOONX.
contract MoonxSink {
    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    uint256 public constant BURN_BPS = 8000; // of every crank
    uint256 public constant MIN_CRANK = 1e9; // dust guard: don't burn gas to burn dust

    IERC20S public immutable moonx;
    address public immutable ops;
    address public owner;
    bool public wiringFinal;

    ISwapRouterS public router;
    mapping(address => address[]) private pathOf; // paired asset => swap path to MOONX

    uint256 public totalBurned;   // MOONX sent to DEAD
    uint256 public totalToOps;    // per-asset ops amounts are in events

    event Cranked(address indexed asset, uint256 amountIn, uint256 moonxBurned, uint256 toOps);
    event PathSet(address indexed asset, address[] path);

    constructor(IERC20S _moonx, address _ops) {
        require(_ops != address(0), "zero ops");
        moonx = _moonx;
        ops = _ops;
        owner = msg.sender;
    }

    /// @dev Paths are configuration, not power: a path can only decide HOW a
    ///      paired asset reaches MOONX, never whether the 80/20 happens. One
    ///      way once finalized, same idiom as the rest of the family.
    function setRouter(ISwapRouterS _router) external {
        require(msg.sender == owner && !wiringFinal, "locked");
        router = _router;
    }

    function setPath(address asset, address[] calldata path) external {
        require(msg.sender == owner && !wiringFinal, "locked");
        require(path.length >= 2 && path[0] == asset && path[path.length - 1] == address(moonx), "bad path");
        pathOf[asset] = path;
        emit PathSet(asset, path);
    }

    function finalizeWiring() external {
        require(msg.sender == owner, "not owner");
        require(address(router) != address(0), "wire first");
        wiringFinal = true;
    }

    function pathFor(address asset) external view returns (address[] memory) {
        return pathOf[asset];
    }

    /// @notice Convert this sink's balance of `asset`: 80% -> MOONX -> DEAD,
    ///         20% -> ops. Anyone may call; `minMoonxOut` guards the swap the
    ///         same way every guarded execution in this ecosystem is guarded —
    ///         by the caller being unable to make it WORSE than the floor,
    ///         only stricter.
    function crank(address asset, uint256 minMoonxOut) external returns (uint256 burned) {
        uint256 bal = IERC20S(asset).balanceOf(address(this));
        require(bal >= MIN_CRANK, "dust");

        uint256 burnLeg = (bal * BURN_BPS) / 10000;
        uint256 opsLeg = bal - burnLeg;

        if (asset == address(moonx)) {
            // Pools paired directly against MOONX skip the market: fees are
            // already the thing we burn.
            require(moonx.transfer(DEAD, burnLeg), "burn");
            burned = burnLeg;
        } else {
            address[] memory path = pathOf[asset];
            require(path.length >= 2, "no path");
            require(IERC20S(asset).approve(address(router), burnLeg), "approve");
            uint256 before = moonx.balanceOf(address(this));
            router.swapExactTokensForTokens(burnLeg, minMoonxOut, path, address(this), block.timestamp);
            burned = moonx.balanceOf(address(this)) - before;
            require(burned >= minMoonxOut, "slippage");
            require(moonx.transfer(DEAD, burned), "burn");
        }
        totalBurned += burned;

        require(IERC20S(asset).transfer(ops, opsLeg), "ops");
        totalToOps += opsLeg;
        emit Cranked(asset, bal, burned, opsLeg);
    }
}
        

Compiler Settings

{"viaIR":true,"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}},"optimizer":{"runs":200,"enabled":true},"libraries":{},"evmVersion":"paris"}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_moonx","internalType":"contract IERC20S"},{"type":"address","name":"_ops","internalType":"address"}]},{"type":"event","name":"Cranked","inputs":[{"type":"address","name":"asset","internalType":"address","indexed":true},{"type":"uint256","name":"amountIn","internalType":"uint256","indexed":false},{"type":"uint256","name":"moonxBurned","internalType":"uint256","indexed":false},{"type":"uint256","name":"toOps","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"PathSet","inputs":[{"type":"address","name":"asset","internalType":"address","indexed":true},{"type":"address[]","name":"path","internalType":"address[]","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BURN_BPS","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"DEAD","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"MIN_CRANK","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"burned","internalType":"uint256"}],"name":"crank","inputs":[{"type":"address","name":"asset","internalType":"address"},{"type":"uint256","name":"minMoonxOut","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"finalizeWiring","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IERC20S"}],"name":"moonx","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"ops","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address[]","name":"","internalType":"address[]"}],"name":"pathFor","inputs":[{"type":"address","name":"asset","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract ISwapRouterS"}],"name":"router","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setPath","inputs":[{"type":"address","name":"asset","internalType":"address"},{"type":"address[]","name":"path","internalType":"address[]"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setRouter","inputs":[{"type":"address","name":"_router","internalType":"contract ISwapRouterS"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalBurned","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalToOps","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"wiringFinal","inputs":[]}]
              

Contract Creation Code

0x60c0346100e257601f610f6038819003918201601f19168301916001600160401b038311848410176100e75780849260409485528339810103126100e25780516001600160a01b039182821682036100e257602001519182168083036100e257156100b25760805260a052600080546001600160a01b03191633179055604051610e6290816100fe823960805181818161017801528181610abc0152610caa015260a05181818161020f01526107680152f35b60405162461bcd60e51b81526020600482015260086024820152677a65726f206f707360c01b6044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c918263036da69014610c965750816303fd2a4514610c79578163085daa8214610c5457816318133f7314610bb25781638da5cb5b14610b8a57816390f3fdc514610b6b578163a37a9fc014610b4e578163b2a7c9e2146108c8578163b4f339721461083d578163bdad1ffc1461081f578163c0d78655146107b6578163d89135cd14610797578163e70abe9214610753578163f1012dd3146100f5575063f887ea40146100ca57600080fd5b346100f157816003193601126100f15760015490516001600160a01b039091168152602090f35b5080fd5b8383346100f157806003193601126100f15761010f610cd9565b81516370a0823160e01b8152308582015260209490916001600160a01b039186846024818587165afa93841561074957869461071a575b50633b9aca0084106106f257611f40908185029185830414851517156106df57610174612710830486610d7a565b91887f0000000000000000000000000000000000000000000000000000000000000000861685871681036103335790899160448a518094819363a9059cbb60e01b835261dead89840152612710880460248401525af19081156103295761271092916101e7918b9161030c575b50610ded565b04965b6101f688600354610e1f565b600355865163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016838201908152602081018590528a90829081906040010381858a8a165af191821561030157916102d4575b50156102ab579181836102927f511a387d48d6f4071f31bfa35f7dccf714cc9cd25e17de91cffbf23a01dce9f6969460609654610e1f565b905586519586528789870152868601521692a251908152f35b855162461bcd60e51b815290810188905260036024820152626f707360e81b6044820152606490fd5b6102f49150893d8b116102fa575b6102ec8183610d9d565b810190610dd5565b8961025a565b503d6102e2565b8851903d90823e3d90fd5b61032391508c8d3d106102fa576102ec8183610d9d565b8c6101e1565b88513d8b823e3d90fd5b98919050858516825260028a528782208a89518092839183825491828152019187528387209387905b8282106106c65750505061037292500382610d9d565b600281511061069957600154895163095ea7b360e01b81529088166001600160a01b0316858201908152612710840460208201528c90829081906040010381878c8c165af190811561064557849161067c575b501561064f5788516370a0823160e01b81523085820152908b826024818e5afa91821561064557908a8592839461060f575b506127108361043795968c600154169351968795869485936338ed173960e01b8552048c840152602435602484015260a0604484015260a4830190610cf4565b30606483015242608483015203925af1801561055a57610564575b5087516370a0823160e01b81523084820152908a826024818d5afa801561055a578390610525575b6104849250610d7a565b9760243589106104f75789829160448b8b51948593849263a9059cbb60e01b845261dead8a85015260248401525af19081156104ed57906104cb9183916104d05750610ded565b6101ea565b6104e791508b3d8d116102fa576102ec8183610d9d565b8b6101e1565b88513d84823e3d90fd5b875162461bcd60e51b81528084018b90526008602482015267736c69707061676560c01b6044820152606490fd5b50908a81813d8311610553575b61053c8183610d9d565b8101031261054f5790610484915161047a565b8280fd5b503d610532565b89513d85823e3d90fd5b3d8084833e6105738183610d9d565b8101908b8183031261060b57805167ffffffffffffffff91828211610607570182601f820112156105f05780519182116105f4578c808360051b938d51906105bd83870183610d9d565b815201928201019283116105f057908c809201905b8382106105e157505050610452565b815181529082019082016105d2565b8480fd5b634e487b7160e01b855260418652602485fd5b8580fd5b8380fd5b92505091508b81813d831161063e575b6106298183610d9d565b8101031261060b57519083908a6127106103f7565b503d61061f565b8a513d86823e3d90fd5b885162461bcd60e51b81528085018c90526007602482015266617070726f766560c81b6044820152606490fd5b61069391508c8d3d106102fa576102ec8183610d9d565b8c6103c5565b885162461bcd60e51b81528085018c905260076024820152660dcde40e0c2e8d60cb1b6044820152606490fd5b85548d168452600195860195879550930192018f61035c565b634e487b7160e01b875260119052602486fd5b8660649186519162461bcd60e51b835281830152602482015263191d5cdd60e21b6044820152fd5b9093508681813d8311610742575b6107328183610d9d565b8101031261060757519287610146565b503d610728565b85513d88823e3d90fd5b5050346100f157816003193601126100f157517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346100f157816003193601126100f1576020906003549051908152f35b8390346100f15760203660031901126100f157356001600160a01b038181169182900361054f576107f590835490811633149081610810575b50610d31565b6bffffffffffffffffffffffff60a01b600154161760015580f35b60ff915060a01c1615846107ef565b90503461054f578260031936011261054f5760209250549051908152f35b5050346100f15760208060031936011261054f576001600160a01b039182610863610cd9565b168452600282528084209381518094848754928381520196835284832092905b8282106108af5786866108ab8761089c848d0385610d9d565b51928284938452830190610cf4565b0390f35b8354811688529685019660019384019390910190610883565b9190503461054f578060031936011261054f576108e3610cd9565b67ffffffffffffffff60248035828111610b4a5736602382011215610b4a5780860135928311610b4a578181019336838560051b84010111610b465787546001600160a01b0392906109409033858216149081610b375750610d31565b60028510159081610b08575b81610a92575b5015610a65578116958688526020926002845286892091680100000000000000008611610a545750508054848255808510610a2f575b5087528187209092919084885b848110610a0d5750505084519482828701838852528501939287905b8382106109e35788887f9742ab8a1a5df51ca29fb338bcb42ee2449fc9edc9f49be8f4ae6a7b2dfed0288989038aa280f35b9091929394853590828216809203610a09579081528301948301939291600101906109b1565b8980fd5b60019084610a1e8498969798610d66565b930192818501550194939294610995565b81895284848a2091820191015b818110610a495750610988565b898155600101610a3c565b634e487b7160e01b8a526041905288fd5b855162461bcd60e51b8152602081890152600881850152670c4c2c840e0c2e8d60c31b6044820152606490fd5b90506000198501858111610af65785811015610ae457610ab891859160051b0101610d66565b82167f000000000000000000000000000000000000000000000000000000000000000083161438610952565b634e487b7160e01b8a5260328952848afd5b634e487b7160e01b8a5260118952848afd5b90508415610b2557610b1986610d66565b8316828416149061094c565b634e487b7160e01b8952603288528389fd5b60ff915060a01c1615386107ef565b8780fd5b8680fd5b5050346100f157816003193601126100f15760209051611f408152f35b5050346100f157816003193601126100f15760209051633b9aca008152f35b5050346100f157816003193601126100f157905490516001600160a01b039091168152602090f35b90503461054f578260031936011261054f578254916001600160a01b038084163303610c25576001541615610bf557505060ff60a01b1916600160a01b17815580f35b906020606492519162461bcd60e51b8352820152600a6024820152691dda5c9948199a5c9cdd60b21b6044820152fd5b815162461bcd60e51b815260208185015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b5050346100f157816003193601126100f15760ff6020925460a01c1690519015158152f35b5050346100f157816003193601126100f1576020905161dead8152f35b8490346100f157816003193601126100f1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b0382168203610cef57565b600080fd5b90815180825260208080930193019160005b828110610d14575050505090565b83516001600160a01b031685529381019392810192600101610d06565b15610d3857565b60405162461bcd60e51b81526020600482015260066024820152651b1bd8dad95960d21b6044820152606490fd5b356001600160a01b0381168103610cef5790565b91908203918211610d8757565b634e487b7160e01b600052601160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610dbf57604052565b634e487b7160e01b600052604160045260246000fd5b90816020910312610cef57518015158103610cef5790565b15610df457565b606460405162461bcd60e51b8152602060048201526004602482015263313ab93760e11b6044820152fd5b91908201809211610d875756fea264697066735822122024702fe9986fd18cffb8323f62620983f5af14b4709b985d097822cf36a5d39f64736f6c634300081800330000000000000000000000007cc05e3ad8f3e5711a20871e690501e2dd29e73600000000000000000000000041fc09bf4e4647f1375633bace8f0203cb45f742

Deployed ByteCode

0x608060408181526004918236101561001657600080fd5b600092833560e01c918263036da69014610c965750816303fd2a4514610c79578163085daa8214610c5457816318133f7314610bb25781638da5cb5b14610b8a57816390f3fdc514610b6b578163a37a9fc014610b4e578163b2a7c9e2146108c8578163b4f339721461083d578163bdad1ffc1461081f578163c0d78655146107b6578163d89135cd14610797578163e70abe9214610753578163f1012dd3146100f5575063f887ea40146100ca57600080fd5b346100f157816003193601126100f15760015490516001600160a01b039091168152602090f35b5080fd5b8383346100f157806003193601126100f15761010f610cd9565b81516370a0823160e01b8152308582015260209490916001600160a01b039186846024818587165afa93841561074957869461071a575b50633b9aca0084106106f257611f40908185029185830414851517156106df57610174612710830486610d7a565b91887f0000000000000000000000007cc05e3ad8f3e5711a20871e690501e2dd29e736861685871681036103335790899160448a518094819363a9059cbb60e01b835261dead89840152612710880460248401525af19081156103295761271092916101e7918b9161030c575b50610ded565b04965b6101f688600354610e1f565b600355865163a9059cbb60e01b81526001600160a01b037f00000000000000000000000041fc09bf4e4647f1375633bace8f0203cb45f74216838201908152602081018590528a90829081906040010381858a8a165af191821561030157916102d4575b50156102ab579181836102927f511a387d48d6f4071f31bfa35f7dccf714cc9cd25e17de91cffbf23a01dce9f6969460609654610e1f565b905586519586528789870152868601521692a251908152f35b855162461bcd60e51b815290810188905260036024820152626f707360e81b6044820152606490fd5b6102f49150893d8b116102fa575b6102ec8183610d9d565b810190610dd5565b8961025a565b503d6102e2565b8851903d90823e3d90fd5b61032391508c8d3d106102fa576102ec8183610d9d565b8c6101e1565b88513d8b823e3d90fd5b98919050858516825260028a528782208a89518092839183825491828152019187528387209387905b8282106106c65750505061037292500382610d9d565b600281511061069957600154895163095ea7b360e01b81529088166001600160a01b0316858201908152612710840460208201528c90829081906040010381878c8c165af190811561064557849161067c575b501561064f5788516370a0823160e01b81523085820152908b826024818e5afa91821561064557908a8592839461060f575b506127108361043795968c600154169351968795869485936338ed173960e01b8552048c840152602435602484015260a0604484015260a4830190610cf4565b30606483015242608483015203925af1801561055a57610564575b5087516370a0823160e01b81523084820152908a826024818d5afa801561055a578390610525575b6104849250610d7a565b9760243589106104f75789829160448b8b51948593849263a9059cbb60e01b845261dead8a85015260248401525af19081156104ed57906104cb9183916104d05750610ded565b6101ea565b6104e791508b3d8d116102fa576102ec8183610d9d565b8b6101e1565b88513d84823e3d90fd5b875162461bcd60e51b81528084018b90526008602482015267736c69707061676560c01b6044820152606490fd5b50908a81813d8311610553575b61053c8183610d9d565b8101031261054f5790610484915161047a565b8280fd5b503d610532565b89513d85823e3d90fd5b3d8084833e6105738183610d9d565b8101908b8183031261060b57805167ffffffffffffffff91828211610607570182601f820112156105f05780519182116105f4578c808360051b938d51906105bd83870183610d9d565b815201928201019283116105f057908c809201905b8382106105e157505050610452565b815181529082019082016105d2565b8480fd5b634e487b7160e01b855260418652602485fd5b8580fd5b8380fd5b92505091508b81813d831161063e575b6106298183610d9d565b8101031261060b57519083908a6127106103f7565b503d61061f565b8a513d86823e3d90fd5b885162461bcd60e51b81528085018c90526007602482015266617070726f766560c81b6044820152606490fd5b61069391508c8d3d106102fa576102ec8183610d9d565b8c6103c5565b885162461bcd60e51b81528085018c905260076024820152660dcde40e0c2e8d60cb1b6044820152606490fd5b85548d168452600195860195879550930192018f61035c565b634e487b7160e01b875260119052602486fd5b8660649186519162461bcd60e51b835281830152602482015263191d5cdd60e21b6044820152fd5b9093508681813d8311610742575b6107328183610d9d565b8101031261060757519287610146565b503d610728565b85513d88823e3d90fd5b5050346100f157816003193601126100f157517f00000000000000000000000041fc09bf4e4647f1375633bace8f0203cb45f7426001600160a01b03168152602090f35b5050346100f157816003193601126100f1576020906003549051908152f35b8390346100f15760203660031901126100f157356001600160a01b038181169182900361054f576107f590835490811633149081610810575b50610d31565b6bffffffffffffffffffffffff60a01b600154161760015580f35b60ff915060a01c1615846107ef565b90503461054f578260031936011261054f5760209250549051908152f35b5050346100f15760208060031936011261054f576001600160a01b039182610863610cd9565b168452600282528084209381518094848754928381520196835284832092905b8282106108af5786866108ab8761089c848d0385610d9d565b51928284938452830190610cf4565b0390f35b8354811688529685019660019384019390910190610883565b9190503461054f578060031936011261054f576108e3610cd9565b67ffffffffffffffff60248035828111610b4a5736602382011215610b4a5780860135928311610b4a578181019336838560051b84010111610b465787546001600160a01b0392906109409033858216149081610b375750610d31565b60028510159081610b08575b81610a92575b5015610a65578116958688526020926002845286892091680100000000000000008611610a545750508054848255808510610a2f575b5087528187209092919084885b848110610a0d5750505084519482828701838852528501939287905b8382106109e35788887f9742ab8a1a5df51ca29fb338bcb42ee2449fc9edc9f49be8f4ae6a7b2dfed0288989038aa280f35b9091929394853590828216809203610a09579081528301948301939291600101906109b1565b8980fd5b60019084610a1e8498969798610d66565b930192818501550194939294610995565b81895284848a2091820191015b818110610a495750610988565b898155600101610a3c565b634e487b7160e01b8a526041905288fd5b855162461bcd60e51b8152602081890152600881850152670c4c2c840e0c2e8d60c31b6044820152606490fd5b90506000198501858111610af65785811015610ae457610ab891859160051b0101610d66565b82167f0000000000000000000000007cc05e3ad8f3e5711a20871e690501e2dd29e73683161438610952565b634e487b7160e01b8a5260328952848afd5b634e487b7160e01b8a5260118952848afd5b90508415610b2557610b1986610d66565b8316828416149061094c565b634e487b7160e01b8952603288528389fd5b60ff915060a01c1615386107ef565b8780fd5b8680fd5b5050346100f157816003193601126100f15760209051611f408152f35b5050346100f157816003193601126100f15760209051633b9aca008152f35b5050346100f157816003193601126100f157905490516001600160a01b039091168152602090f35b90503461054f578260031936011261054f578254916001600160a01b038084163303610c25576001541615610bf557505060ff60a01b1916600160a01b17815580f35b906020606492519162461bcd60e51b8352820152600a6024820152691dda5c9948199a5c9cdd60b21b6044820152fd5b815162461bcd60e51b815260208185015260096024820152683737ba1037bbb732b960b91b6044820152606490fd5b5050346100f157816003193601126100f15760ff6020925460a01c1690519015158152f35b5050346100f157816003193601126100f1576020905161dead8152f35b8490346100f157816003193601126100f1577f0000000000000000000000007cc05e3ad8f3e5711a20871e690501e2dd29e7366001600160a01b03168152602090f35b600435906001600160a01b0382168203610cef57565b600080fd5b90815180825260208080930193019160005b828110610d14575050505090565b83516001600160a01b031685529381019392810192600101610d06565b15610d3857565b60405162461bcd60e51b81526020600482015260066024820152651b1bd8dad95960d21b6044820152606490fd5b356001600160a01b0381168103610cef5790565b91908203918211610d8757565b634e487b7160e01b600052601160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610dbf57604052565b634e487b7160e01b600052604160045260246000fd5b90816020910312610cef57518015158103610cef5790565b15610df457565b606460405162461bcd60e51b8152602060048201526004602482015263313ab93760e11b6044820152fd5b91908201809211610d875756fea264697066735822122024702fe9986fd18cffb8323f62620983f5af14b4709b985d097822cf36a5d39f64736f6c63430008180033