// SPDX-License-Identifier: MIT
pragma solidity 0.8.28;
import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol";
import {BadLuckBrianBase} from "./BadLuckBrianBase.sol";
/**
* @title BadLuckBrian
* @notice A hookless Uniswap V4 launchpad, quoted in native ETH, charging 1% as the
* pool's own fee.
*
* Tokens minted here open with a fixed supply of 1,000,000,000: `creatorBps`
* to whoever creates the coin, the rest into a permanently locked single-sided
* position. There is no hook anywhere in the pool key, which is the shape the
* busiest tokens on this chain already trade in.
*
* This is the file whose name the deploy wizard rewrites, so it stays a thin
* shell over BadLuckBrianBase: everything worth auditing is in the base,
* identical for every pad, and only the name on the explorer changes.
*/
contract BadLuckBrian is BadLuckBrianBase {
constructor(IPoolManager poolManager_, address feeWallet_, uint256 creatorBps_, uint256 startMcWei_)
BadLuckBrianBase(poolManager_, feeWallet_, creatorBps_, startMcWei_)
{}
}[
{
"type": "constructor",
"inputs": [
{
"name": "poolManager_",
"type": "address",
"internalType": "contract IPoolManager"
},
{
"name": "feeWallet_",
"type": "address",
"internalType": "address"
},
{
"name": "creatorBps_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "startMcWei_",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "EnforcedPause",
"type": "error",
"inputs": []
},
{
"name": "EthNotNeeded",
"type": "error",
"inputs": []
},
{
"name": "ExpectedPause",
"type": "error",
"inputs": []
},
{
"name": "InvalidLaunchDefaults",
"type": "error",
"inputs": []
},
{
"name": "NotPoolManager",
"type": "error",
"inputs": []
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "UnknownCoin",
"type": "error",
"inputs": []
},
{
"name": "CoinCreated",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "creator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "poolId",
"type": "bytes32",
"indexed": true,
"internalType": "PoolId"
},
{
"name": "name",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "symbol",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "CoinMetadata",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "image",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "description",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "website",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "twitter",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "telegram",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "CreatorAllocation",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "wallet",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "DustSwept",
"type": "event",
"inputs": [
{
"name": "treasury",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "LiquidityLocked",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "poolId",
"type": "bytes32",
"indexed": true,
"internalType": "PoolId"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "tickLower",
"type": "int24",
"indexed": false,
"internalType": "int24"
},
{
"name": "tickUpper",
"type": "int24",
"indexed": false,
"internalType": "int24"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferStarted",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "Paused",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "PoolFeesCollected",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "quoteAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Unpaused",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "BAND",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "int24",
"internalType": "int24"
}
],
"stateMutability": "view"
},
{
"name": "BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MAX_CREATOR_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MIN_CREATOR_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "POOL_FEE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint24",
"internalType": "uint24"
}
],
"stateMutability": "view"
},
{
"name": "STACK_ID",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "START_TICK",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "int24",
"internalType": "int24"
}
],
"stateMutability": "view"
},
{
"name": "TICK_SPACING",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "int24",
"internalType": "int24"
}
],
"stateMutability": "view"
},
{
"name": "TOTAL_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "acceptOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "allCoins",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "coinCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "coins",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"components": [
{
"name": "creator",
"type": "address",
"internalType": "address"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "poolId",
"type": "bytes32",
"internalType": "PoolId"
},
{
"name": "marketTokens",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "vesting",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct BadLuckBrianBase.Coin"
}
],
"stateMutability": "view"
},
{
"name": "collectFees",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "quoteAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "createCoin",
"type": "function",
"inputs": [
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "symbol",
"type": "string",
"internalType": "string"
}
],
"outputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "createCoin",
"type": "function",
"inputs": [
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "symbol",
"type": "string",
"internalType": "string"
},
{
"name": "meta",
"type": "tuple",
"components": [
{
"name": "image",
"type": "string",
"internalType": "string"
},
{
"name": "description",
"type": "string",
"internalType": "string"
},
{
"name": "website",
"type": "string",
"internalType": "string"
},
{
"name": "twitter",
"type": "string",
"internalType": "string"
},
{
"name": "telegram",
"type": "string",
"internalType": "string"
}
],
"internalType": "struct BadLuckBrianToken.Meta"
}
],
"outputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "creatorBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "feeWallet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "lpIsLocked",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "marketBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "pause",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "paused",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "pendingCreatorFees",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "quoteAmount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenAmount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "pure"
},
{
"name": "pendingOwner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "poolKeyOf",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "poolManager",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IPoolManager"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "startMcWei",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "startSqrtPriceForTick",
"type": "function",
"inputs": [
{
"name": "tick",
"type": "int24",
"internalType": "int24"
}
],
"outputs": [
{
"name": "",
"type": "uint160",
"internalType": "uint160"
}
],
"stateMutability": "pure"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "unlockCallback",
"type": "function",
"inputs": [
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [
{
"name": "",
"type": "bytes",
"internalType": "bytes"
}
],
"stateMutability": "nonpayable"
},
{
"name": "unpause",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x610100346101bb57601f61432538819003918201601f19168301916001600160401b038311848410176101bf578084926080946040528339810103126101bb5780516001600160a01b038116918282036101bb5760208101516001600160a01b0381168082036101bb57606060408401519301519333156101a8576001545f8054336001600160a01b031982168117835560405199939290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36001600160a81b03191660019081556002551561018e576101f48410801561019d575b61018e57841561018e576080526101895750335b60a05260c05260e05261415190816101d48239608051818181601a0152818161032c0152818161063b01528181610e840152611b07015260a05181818161024e0152818161149e015281816114f60152611e60015260c0518181816102d8015281816108bf0152611988015260e0518181816103a101528181610b18015281816113a80152611ae10152f35b6100fd565b637bd5dc6360e11b5f5260045ffd5b50611f4084116100e9565b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610059575b3615610018575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004a57005b63a913111b60e01b5f5260045ffd5b5f3560e01c806306aebc0314610cf25780630ebab9ce14610cd657806310988fb914610cb957806313560cac14610c77578063172de6da14610ba9578063249d39e9146102fb5780633f4ba83a14610b3b57806344f0e81b14610b0157806346ca626b14610ae65780635c975abb14610ac1578063678fd28914610aa4578063715018a614610a4157806379ba5097146109bc5780637d0f7a881461090a5780637eaa3107146108ad5780638456cb591461084c5780638652edf9146107e85780638da5cb5b146107c1578063902d55a51461079b57806391dd73461461074b578063a1ad17ab14610709578063a480ca791461058e578063b1290b1e1461042f578063b29b86af146103da578063c1bf957814610384578063c598b2f91461035b578063dc4c90d314610317578063dd1b9c4a146102fb578063de90e29b146102c1578063e30c397814610299578063e88d1db21461027d578063f25f4b56146102395763f2fde38b0361000e5734610235576020366003190112610235576101e1610d82565b6101e9611ff9565b60018060a01b0316806001600160601b0360a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610235575f366003190112610235576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610235575f366003190112610235576020604051611f408152f35b34610235575f366003190112610235576001546040516001600160a01b039091168152602090f35b34610235575f3660031901126102355760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610235575f3660031901126102355760206040516127108152f35b34610235575f366003190112610235576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023557602036600319011261023557610374610d82565b50604080515f81525f6020820152f35b34610235575f3660031901126102355760206103cf6103ca6103c57f0000000000000000000000000000000000000000000000000000000000000000612103565b61214f565b61242f565b6040519060020b8152f35b34610235575f3660031901126102355761042b6040516103fb604082610e1a565b600f81526e696d6f7274616c2d686f6f642d763160881b6020820152604051918291602083526020830190610dac565b0390f35b34610235576060366003190112610235576004356001600160401b0381116102355761045f903690600401610d55565b6024356001600160401b0381116102355761047e903690600401610d55565b60443592916001600160401b0384116102355760a0600319853603011261023557604051926104ac84610dd0565b84600401356001600160401b038111610235576104cf9060043691880101611600565b845260248501356001600160401b038111610235576104f49060043691880101611600565b602085015260448501356001600160401b0381116102355761051c9060043691880101611600565b604085015260648501356001600160401b038111610235576105449060043691880101611600565b60608501526084850135956001600160401b0387116102355761057261057c96600460209936920101611600565b6080860152611973565b6040516001600160a01b039091168152f35b34610235576020366003190112610235576105a7610d82565b6105af6120a3565b6001600160a01b038181165f8181526003602052604090205490929116156106fa575f6105de610636926120c1565b6105f66040519160026020840152604083019061155b565b60e08101829052610100808201839052815261061461012082610e1a565b604051809381926348c8949160e01b8352602060048401526024830190610dac565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156106ef575f916106cd575b5060408180518101031261023557604091826020830151920151907f251551588ab2fefc5204a992ffe52b797e42bee3b0359226b84003bece36a0b6848051858152846020820152a2600160025582519182526020820152f35b6106e991503d805f833e6106e18183610e1a565b81019061159e565b82610673565b6040513d5f823e3d90fd5b6306c3ce4560e41b5f5260045ffd5b34610235576020366003190112610235576001600160a01b0361072a610d82565b165f526003602052602060018060a01b0360405f2054161515604051908152f35b34610235576020366003190112610235576004356001600160401b0381116102355761078761078161042b923690600401610d55565b90610e80565b604051918291602083526020830190610dac565b34610235575f3660031901126102355760206040516b033b2e3c9fd0803ce80000008152f35b34610235575f366003190112610235575f546040516001600160a01b039091168152602090f35b34610235576020366003190112610235576001600160a01b03610809610d82565b165f818152600360205260409020546001600160a01b0316156106fa5760a090604051905f82526020820152612710604082015260c860608201525f6080820152f35b34610235575f36600319011261023557610864611ff9565b61086c61247c565b6001805460ff60a01b1916600160a01b1790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a1005b34610235575f366003190112610235577f00000000000000000000000000000000000000000000000000000000000000006127100361271081116108f657602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461023557602036600319011261023557610923610d82565b61092b610e56565b5060018060a01b03165f52600360205260a060405f2060405161094d81610dd0565b8154600180851b5f1901918216808452908401548216602080850191825260028601546040808701918252600388015460608089019182526004909901548716608098890190815282519687529451871693860193909352905190840152519482019490945292511690820152f35b34610235575f36600319011261023557600154336001600160a01b0390911603610a2e57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610235575f36600319011261023557610a59611ff9565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610235575f366003190112610235576020600454604051908152f35b34610235575f36600319011261023557602060ff60015460a01c166040519015158152f35b34610235575f36600319011261023557602060405160c88152f35b34610235575f3660031901126102355760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610235575f36600319011261023557610b53611ff9565b60015460ff8160a01c1615610b9a5760ff60a01b19166001556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a1005b638dfc202b60e01b5f5260045ffd5b34610235576040366003190112610235576004356001600160401b03811161023557610bd9903690600401610d55565b602435906001600160401b03821161023557610bfc61057c923690600401610d55565b9060405192610c0a84610dd0565b602095604051610c1a8882610e1a565b5f81528552604051610c2c8882610e1a565b5f815287860152604051610c408882610e1a565b5f81526040860152604051610c558882610e1a565b5f81526060860152604051610c6a8882610e1a565b5f81526080860152611973565b346102355760203660031901126102355760043560045481101561023557610ca0602091610d29565b905460405160039290921b1c6001600160a01b03168152f35b34610235575f36600319011261023557602060405162010d888152f35b34610235575f3660031901126102355760206040516101f48152f35b34610235576020366003190112610235576004358060020b81036102355761057c602091611646565b35908160020b820361023557565b600454811015610d415760045f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b9181601f84011215610235578235916001600160401b038311610235576020838186019501011161023557565b600435906001600160a01b038216820361023557565b35906001600160a01b038216820361023557565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b03821117610deb57604052565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117610deb57604052565b90601f801991011681019081106001600160401b03821117610deb57604052565b6001600160401b038111610deb57601f01601f191660200190565b60405190610e6382610dd0565b5f6080838281528260208201528260408201528260608201520152565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381163381900361154c57835f958101039161010083126102355784359260ff84168094036102355760a090601f1901126102355760405193610eec85610dd0565b610ef860208701610d98565b8552610f0660408701610d98565b91602086019283528187013562ffffff81168103610235576040870152610f2f60808801610d1b565b8683015260a08701356001600160a01b0381168103610235576080870152600260e0610f5d60c08a01610d1b565b980135951461138d575050610f746111531961200c565b91610f7e86612021565b928060020b8460020b12611385575b506001600160801b03610f9f87611646565b610fa885611646565b9086610fb38a611646565b9182846001600160a01b0380831690821611611379575b50506001600160a01b03818116908516811161132b57505050610fec91612583565b169283156112f7576040805161103a9261100582610dff565b60020b9889825260020b95866020830152828201525f6060820152815180938192632d35e7ed60e11b83528a60048401612055565b03815f865af19081156106ef575f916112c7575b505f8160801d600f0b1261004a57600f0b905f82126110c3575b50509160609160a07f97867802120a4a93e6459e593fa2ab34cb51e6b7c7af3c35ecbf814cd6f1b2fe94600180831b0390511695209560405192835260208301526040820152a3604051906110be602083610e1a565b815290565b82516001600160a01b0316916f7fffffffffffffffffffffffffffffff1981146108f6575f036001600160801b0316918061118d5750602090600460405180948193630476982d60e21b83525af18015611182577f97867802120a4a93e6459e593fa2ab34cb51e6b7c7af3c35ecbf814cd6f1b2fe94926060949260a092611153575b505b929450819350611068565b6111749060203d60201161117b575b61116c8183610e1a565b810190611fd2565b505f611146565b503d611162565b6040513d89823e3d90fd5b9091823b1561023557604051632961046560e21b8152600481018390525f8160248183885af180156106ef576112ae575b5060405163a9059cbb60e01b81526001600160a01b03841660048201526024810191909152906020908290818b81604481015b03925af180156112a357916020918993611276575b50600460405180948193630476982d60e21b83525af18015611182577f97867802120a4a93e6459e593fa2ab34cb51e6b7c7af3c35ecbf814cd6f1b2fe94926060949260a092611257575b50611148565b61126f9060203d60201161117b5761116c8183610e1a565b505f611251565b61129590833d851161129c575b61128d8183610e1a565b810190611fe1565b505f611206565b503d611283565b6040513d8a823e3d90fd5b6112bc919299505f90610e1a565b5f97906111f16111be565b6112e9915060403d6040116112f0575b6112e18183610e1a565b81019061203f565b505f61104e565b503d6112d7565b60405162461bcd60e51b815260206004820152600c60248201526b6e6f206c697175696469747960a01b6044820152606490fd5b919290916001600160a01b038216111561136e579061134e611354939282612583565b93612549565b808316828416101561136757505b610fec565b9050610fec565b905061136292612549565b90945092505f80610fca565b92505f610f8d565b926114319195975060409296505f94506113cc6103ca6103c57f0000000000000000000000000000000000000000000000000000000000000000612103565b6113d86111531961200c565b906113e281612021565b918060020b8360020b12611544575b508451916113fe83610dff565b60020b825260020b6020820152858482015285878201528351958680948193632d35e7ed60e11b83528c60048401612055565b03925af19182156106ef575f92611522575b505f935f928060801d5f81600f0b136114d5575b506114849596505f81600f0b13611487575b50505060405193602085015260408401526040835282610e1a565b90565b90516001600160801b0390911692506114cd9183917f000000000000000000000000000000000000000000000000000000000000000091906001600160a01b031661249a565b5f8080611469565b61148496506001600160801b0361151b9116809860018060a01b03905116857f00000000000000000000000000000000000000000000000000000000000000009161249a565b8695611457565b61153c91925060403d6040116112f0576112e18183610e1a565b50905f611443565b91505f6113f1565b63570c108560e11b5f5260045ffd5b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602081830312610235578051906001600160401b038211610235570181601f82011215610235578051906115d182610e3b565b926115df6040519485610e1a565b8284526020838301011161023557815f9260208093018386015e8301015290565b81601f820112156102355780359061161782610e3b565b926116256040519485610e1a565b8284526020838301011161023557815f926020809301838601378301015290565b60020b908160ff1d82810118620d89e881116119605763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116611944575b60048116611928575b6008811661190c575b601081166118f0575b602081166118d4575b604081166118b8575b6080811661189c575b6101008116611880575b6102008116611864575b6104008116611848575b610800811661182c575b6110008116611810575b61200081166117f4575b61400081166117d8575b61800081166117bc575b6201000081166117a0575b620200008116611785575b62040000811661176a575b6208000016611751575b5f12611749575b0160201c90565b5f1904611742565b6b048a170391f7dc42444e8fa290910260801c9061173b565b6d2216e584f5fa1ea926041bedfe9890920260801c91611731565b916e5d6af8dedb81196699c329225ee6040260801c91611726565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161171b565b916f31be135f97d08fd981231505542fcfa60260801c91611710565b916f70d869a156d2a1b890bb3df62baf32f70260801c91611706565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916116fc565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916116f2565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916116e8565b916ff3392b0822b70005940c7a398e4b70f30260801c916116de565b916ff987a7253ac413176f2b074cf7815e540260801c916116d4565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916116ca565b916ffe5dee046a99a2a811c461f1969c30530260801c916116c0565b916fff2ea16466c96a3843ec78b326b528610260801c916116b7565b916fff973b41fa98c081472e6896dfb254c00260801c916116ae565b916fffcb9843d60f6159c9db58835c9266440260801c916116a5565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161169c565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91611693565b916ffff97272373d413259a46990580e213a0260801c9161168a565b826345c3193d60e11b5f5260045260245ffd5b92939161197e61247c565b6119866120a3565b7f000000000000000000000000000000000000000000000000000000000000000094604051926119d6808501908582106001600160401b03831117610deb57612746863960a081526119ee6119df60a08301848a611f94565b82810360208401528486611f94565b903360408201528860608201526080818303910152611a16865160a0835260a0830190610dac565b92611a2e602088019485518482036020860152610dac565b91611a46604089019384518382036040850152610dac565b9680611a77611a6260608c019a8b518682036060880152610dac565b60808c01948551906080818403910152610dac565b03905ff080156106ef576001600160a01b0316996b033b2e3c9fd0803ce800000080820291908204036108f657612710900498896b033b2e3c9fd0803ce800000003976b033b2e3c9fd0803ce800000089116108f657611ad68c6120c1565b611b056103ca6103c57f0000000000000000000000000000000000000000000000000000000000000000612103565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190611b3a81611646565b60405163313b65df60e11b815290611b55600483018561155b565b6001600160a01b031660a482015260208160c4815f885af19081156106ef578d91611f56575b505f938492611bc2611be69360405192839160e06020840161010081019360018252611baa602083018d61155b565b60020b60c0820152015203601f198101835282610e1a565b6040519586809481936348c8949160e01b8352602060048401526024830190610dac565b03925af19182156106ef578e602091602494611f3e575b506040516370a0823160e01b815230600482015293849182905afa80156106ef578e925f91611f09575b5080611e51575b5060a09150209860048d60405192611c4584610dd0565b3384528c602085015f8152604086019182526060860192835260808601935f85525f52600360205260405f209560018060a01b039060018060a01b03905116166001600160601b0360a01b87541617865560018060a01b03905116600186019060018060a01b03166001600160601b0360a01b82541617905551600285015551600384015560018060a01b0390511691019060018060a01b03166001600160601b0360a01b82541617905560045468010000000000000000811015610deb578c9a7f505c8cdc72ea698fd891ad179b5665326ae108a3197794d5f045b2793b3ed0dc9a611dd49a8d7f583c5ace241f3e47c9c6f13e68a9e83f02dcf4b80932be3aa086674391a532d9611df097611e0c9c611db3611dfe9c611d708a6001611de29c01600455610d29565b81546001600160a01b0389811660039390931b92831b921b191617905560408051818152948594611da392860191611f94565b9083820360208501523397611f94565b0390a451975195519151935195604051998a9960a08b5260a08b0190610dac565b9089820360208b0152610dac565b908782036040890152610dac565b908582036060870152610dac565b908382036080850152610dac565b0390a280611e1e575b50600160025590565b604051908152817fe0c3c67f503b3300202bb12cfd591b941507d2ad50554e2274719527d4c7b12a60203393a35f611e15565b60405163a9059cbb60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811660048301526024820183905293602090829060449082905f905af180156106ef5760a0947fa4e6799a53d037c8e49217233616ac11a98bf48a7f8a9f9c53d318febcbb1b6892602092611eee575b50604051938452600180871b031692a28d91611c2e565b611f0490833d851161129c5761128d8183610e1a565b611ed7565b9250506020823d602011611f36575b81611f2560209383610e1a565b81010312610235578d91515f611c27565b3d9150611f18565b611f51903d805f833e6106e18183610e1a565b611bfd565b90506020813d602011611f8c575b81611f7160209383610e1a565b8101031261023557518060020b810361023557508b5f611b7b565b3d9150611f64565b908060209392818452848401375f828201840152601f01601f1916010190565b8115611fbe570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312610235575190565b90816020910312610235575180151581036102355790565b5f546001600160a01b03163303610a2e57565b60c89060020b02908160020b9182036108f657565b60020b62010d87190190627fffff198212627fffff8313176108f657565b9190826040910312610235576020825192015190565b90610160926120668360609361155b565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b60028054146120b25760028055565b633ee5aeb560e01b5f5260045ffd5b6120c9610e56565b50604051906120d782610dd0565b5f8083526001600160a01b03919091166020830152612710604083015260c86060830152608082015290565b6121186b033b2e3c9fd0803ce8000000612500565b8060601b90808204600160601b14901517156108f6576001600160a01b039161214b919061214590612500565b90611fb4565b1690565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b03161161240f57602081901b640100000000600160c01b03168080156102355760ff826001600160801b031060071b83811c6001600160401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c821060031b177f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be85831c1c601f161a17169160808310155f146124035750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c6780000000000000001690607f190160401b1717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa919810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918282145f146123df5750905090565b6001600160a01b03908116906123f484611646565b16116123fe575090565b905090565b905081607f031b612224565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b60020b9061243f60c8830561200c565b915f8112908161246e575b5061245157565b9060020b60c71901627fffff198112627fffff8213176108f65790565b90508260020b14155f61244a565b60ff60015460a01c1661248b57565b63d93c066560e01b5f5260045ffd5b91906001600160a01b0316803b1561023557604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af180156106ef576124f45750565b5f6124fe91610e1a565b565b908115612544578160011c600181018091116108f657825b838210612523575050565b909250826125318183611fb4565b9081018091116108f65760011c90612518565b5f9150565b611484926125789290916001600160a01b038083169082161161257d575b90036001600160a01b0316906125cf565b612722565b90612567565b6114849161257891906001600160a01b03808216908316116125c9575b6125b66001600160a01b03828116908416612659565b9190036001600160a01b0316905f6126a2565b906125a0565b90606082901b905f19600160601b8409928280851094039380850394858411156102355714612652578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b1115610235571461269957600160601b910990828211900360a01b910360601c1790565b50505060601c90565b91818302915f1981850993838086109503948086039586851115610235571461271a579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b906001600160801b03821680920361273657565b6393dafdf160e01b5f5260045ffdfe61010060405234610bdb576119d68038038061001a81610bdf565b92833981019060a081830312610bdb5780516001600160401b038111610bdb5782610046918301610c04565b60208201519092906001600160401b038111610bdb5781610068918401610c04565b604083015191906001600160a01b03831690818403610bdb576060850151608086015190956001600160401b038211610bdb57019160a083850312610bdb576040519060a082016001600160401b038111838210176106125760405283516001600160401b038111610bdb57856100e0918601610c04565b825260208401516001600160401b038111610bdb5785610101918601610c04565b6020830190815260408501519093906001600160401b038111610bdb578661012a918701610c04565b6040840190815260608601519095906001600160401b038111610bdb5787610153918301610c04565b6060850190815260808201519097906001600160401b038111610bdb5761017a9201610c04565b60808401908152895190996001600160401b0382116106125760035490600182811c92168015610bd1575b60208310146105f45781601f849311610b63575b50602090601f8311600114610afd575f92610af2575b50508160011b915f199060031b1c1916176003555b8051906001600160401b0382116106125760045490600182811c92168015610ae8575b60208310146105f45781601f849311610a7a575b50602090601f8311600114610a14575f92610a09575b50508160011b915f199060031b1c1916176004555b156109d557612710861161099f573360805260a085905260c08690524260e052518051906001600160401b0382116106125760055490600182811c92168015610995575b60208310146105f45781601f849311610944575b50602090601f83116001146108de575f926108d3575b50508160011b915f199060031b1c1916176005555b518051906001600160401b0382116106125760065490600182811c921680156108c9575b60208310146105f45781601f84931161085b575b50602090601f83116001146107f5575f926107ea575b50508160011b915f199060031b1c1916176006555b518051906001600160401b0382116106125760075490600182811c921680156107e0575b60208310146105f45781601f849311610772575b50602090601f831160011461070c575f92610701575b50508160011b915f199060031b1c1916176007555b5180519093906001600160401b03811161061257600854600181811c911680156106f7575b60208210146105f457601f8111610694575b50602094601f8211600114610631579481929394955f92610626575b50508160011b915f199060031b1c1916176008555b5180519092906001600160401b03811161061257600954600181811c91168015610608575b60208210146105f457601f8111610591575b506020601f821160011461052e57819293945f92610523575b50508160011b915f199060031b1c1916176009555b806b033b2e3c9fd0803ce800000002906b033b2e3c9fd0803ce800000082040361050f576127109004806b033b2e3c9fd0803ce8000000036b033b2e3c9fd0803ce8000000811161050f576104b19033610c55565b806104ff575b604051610d0d9081610cc98239608051816107ae015260a05181818161048501526108a7015260c05181818161015801526104b4015260e05181818161011a01526104da0152f35b61050891610c55565b5f806104b7565b634e487b7160e01b5f52601160045260245ffd5b015190505f80610447565b601f1982169060095f52805f20915f5b81811061057957509583600195969710610561575b505050811b0160095561045c565b01515f1960f88460031b161c191690555f8080610553565b9192602060018192868b01518155019401920161053e565b60095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f830160051c810191602084106105ea575b601f0160051c01905b8181106105df575061042e565b5f81556001016105d2565b90915081906105c9565b634e487b7160e01b5f52602260045260245ffd5b90607f169061041c565b634e487b7160e01b5f52604160045260245ffd5b015190505f806103e2565b601f1982169560085f52805f20915f5b88811061067c57508360019596979810610664575b505050811b016008556103f7565b01515f1960f88460031b161c191690555f8080610656565b91926020600181928685015181550194019201610641565b60085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f830160051c810191602084106106ed575b601f0160051c01905b8181106106e257506103c6565b5f81556001016106d5565b90915081906106cc565b90607f16906103b4565b015190505f8061037a565b60075f9081528281209350601f198516905b81811061075a5750908460019594939210610742575b505050811b0160075561038f565b01515f1960f88460031b161c191690555f8080610734565b9293602060018192878601518155019501930161071e565b60075f529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106107d6575b90601f859493920160051c01905b8181106107c85750610364565b5f81558493506001016107bb565b90915081906107ad565b91607f1691610350565b015190505f80610317565b60065f9081528281209350601f198516905b818110610843575090846001959493921061082b575b505050811b0160065561032c565b01515f1960f88460031b161c191690555f808061081d565b92936020600181928786015181550195019301610807565b60065f529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106108bf575b90601f859493920160051c01905b8181106108b15750610301565b5f81558493506001016108a4565b9091508190610896565b91607f16916102ed565b015190505f806102b4565b60055f9081528281209350601f198516905b81811061092c5750908460019594939210610914575b505050811b016005556102c9565b01515f1960f88460031b161c191690555f8080610906565b929360206001819287860151815501950193016108f0565b90915060055f5260205f20601f840160051c8101916020851061098b575b90601f859493920160051c01905b81811061097d575061029e565b5f8155849350600101610970565b9091508190610962565b91607f169161028a565b60405162461bcd60e51b815260206004820152600e60248201526d63726561746f72203e203130302560901b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b3d32b9379031b932b0ba37b960a11b6044820152606490fd5b015190505f80610231565b60045f9081528281209350601f198516905b818110610a625750908460019594939210610a4a575b505050811b01600455610246565b01515f1960f88460031b161c191690555f8080610a3c565b92936020600181928786015181550195019301610a26565b60045f529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c81019160208510610ade575b90601f859493920160051c01905b818110610ad0575061021b565b5f8155849350600101610ac3565b9091508190610ab5565b91607f1691610207565b015190505f806101cf565b60035f9081528281209350601f198516905b818110610b4b5750908460019594939210610b33575b505050811b016003556101e4565b01515f1960f88460031b161c191690555f8080610b25565b92936020600181928786015181550195019301610b0f565b60035f529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81019160208510610bc7575b90601f859493920160051c01905b818110610bb957506101b9565b5f8155849350600101610bac565b9091508190610b9e565b91607f16916101a5565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761061257604052565b81601f82011215610bdb578051906001600160401b03821161061257610c33601f8301601f1916602001610bdf565b9282845260208383010111610bdb57815f9260208093018386015e8301015290565b6001600160a01b0316908115610cb5576002549080820180921161050f5760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3565b63ec442f0560e01b5f525f60045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816302d05d3f146108955750806306fdde031461087a578063095ea7b3146107f8578063135d088d146107dd57806316eebd1e1461079957806318160ddd1461077c57806323b872dd1461069c578063313ce5671461068157806347ecb665146105c657806370a082311461058f5780637284e41614610574578063902d55a51461054e57806395d89b4114610533578063a9059cbb14610502578063abb1dc4414610408578063abfaeee01461034d578063b29b86af146102d7578063beb0a416146101cb578063dd62ed3e1461017b578063de90e29b146101415763eae4c19f14610103575f80fd5b3461013d575f36600319011261013d5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b5f80fd5b3461013d575f36600319011261013d5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461013d57604036600319011261013d576101946108fa565b61019c610910565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461013d575f36600319011261013d576040515f6007548060011c906001811680156102cd575b6020831081146102b9578285529081156102955750600114610237575b6102338361021f81850382610926565b6040519182916020835260208301906108d6565b0390f35b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b80821061027b5750909150810160200161021f61020f565b919260018160209254838588010152019101909291610263565b60ff191660208086019190915291151560051b8401909101915061021f905061020f565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101f2565b3461013d575f36600319011261013d57604051604081019080821067ffffffffffffffff8311176103395761023391604052600f81526e696d6f7274616c2d686f6f642d763160881b60208201526040519182916020835260208301906108d6565b634e487b7160e01b5f52604160045260245ffd5b3461013d575f36600319011261013d576040515f6008548060011c906001811680156103fe575b6020831081146102b95782855290811561029557506001146103a0576102338361021f81850382610926565b60085f9081527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3939250905b8082106103e45750909150810160200161021f61020f565b9192600181602092548385880101520191019092916103cc565b91607f1691610374565b3461013d575f36600319011261013d57610459610423610948565b61048361042e610b6e565b610475610439610a16565b610467610444610ac2565b9360405197889760e0895260e08901906108d6565b9087820360208901526108d6565b9085820360408701526108d6565b9083820360608501526108d6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301520390f35b3461013d57604036600319011261013d5761052861051e6108fa565b6024359033610c1a565b602060405160018152f35b3461013d575f36600319011261013d5761023361021f610b6e565b3461013d575f36600319011261013d5760206040516b033b2e3c9fd0803ce80000008152f35b3461013d575f36600319011261013d5761023361021f610ac2565b3461013d57602036600319011261013d576001600160a01b036105b06108fa565b165f525f602052602060405f2054604051908152f35b3461013d575f36600319011261013d576040515f6009548060011c90600181168015610677575b6020831081146102b9578285529081156102955750600114610619576102338361021f81850382610926565b60095f9081527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af939250905b80821061065d5750909150810160200161021f61020f565b919260018160209254838588010152019101909291610645565b91607f16916105ed565b3461013d575f36600319011261013d57602060405160128152f35b3461013d57606036600319011261013d576106b56108fa565b6106bd610910565b6001600160a01b0382165f8181526001602081815260408084203385529091529091205491936044359392909181016106fc575b506105289350610c1a565b83811061076157841561074e57331561073b57610528945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846106f1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b3461013d575f36600319011261013d576020600254604051908152f35b3461013d575f36600319011261013d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013d575f36600319011261013d5761023361021f610a16565b3461013d57604036600319011261013d576108116108fa565b60243590331561074e576001600160a01b031690811561073b57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461013d575f36600319011261013d5761023361021f610948565b3461013d575f36600319011261013d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361013d57565b602435906001600160a01b038216820361013d57565b90601f8019910116810190811067ffffffffffffffff82111761033957604052565b604051905f6003548060011c9160018216918215610a0c575b6020841083146102b95783865285929081156109ed575060011461098e575b61098c92500383610926565b565b5060035f90815290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106109d157505090602061098c92820101610980565b60209193508060019154838589010152019101909184926109b9565b6020925061098c94915060ff191682840152151560051b820101610980565b92607f1692610961565b604051905f6005548060011c9160018216918215610ab8575b6020841083146102b95783865285929081156109ed5750600114610a595761098c92500383610926565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b818310610a9c57505090602061098c92820101610980565b6020919350806001915483858901015201910190918492610a84565b92607f1692610a2f565b604051905f6006548060011c9160018216918215610b64575b6020841083146102b95783865285929081156109ed5750600114610b055761098c92500383610926565b5060065f90815290917ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b818310610b4857505090602061098c92820101610980565b6020919350806001915483858901015201910190918492610b30565b92607f1692610adb565b604051905f6004548060011c9160018216918215610c10575b6020841083146102b95783865285929081156109ed5750600114610bb15761098c92500383610926565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818310610bf457505090602061098c92820101610980565b6020919350806001915483858901015201910190918492610bdc565b92607f1692610b87565b6001600160a01b0316908115610cc4576001600160a01b0316918215610cb157815f525f60205260405f2054818110610c9857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffdfea26469706673582212207dbcbdb516b846cfe0b2ab0e34970d32ca7eddfb6ac05b2c49d73aa7901f13f264736f6c634300081c0033a2646970667358221220ff3b168082ca7e38ecd666a68ce058ec107e099b1e3a48a9e2f0d878b3adb45664736f6c634300081c00330000000000000000000000008366a39cc670b4001a1121b8f6a443a643e40951000000000000000000000000bb1c5d95d90e75b99df1ec26bd89f03aee6c847b00000000000000000000000000000000000000000000000000000000000009c40000000000000000000000000000000000000000000000001bc16d674ec80000
0x60806040526004361015610059575b3615610018575f80fd5b7f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b0316330361004a57005b63a913111b60e01b5f5260045ffd5b5f3560e01c806306aebc0314610cf25780630ebab9ce14610cd657806310988fb914610cb957806313560cac14610c77578063172de6da14610ba9578063249d39e9146102fb5780633f4ba83a14610b3b57806344f0e81b14610b0157806346ca626b14610ae65780635c975abb14610ac1578063678fd28914610aa4578063715018a614610a4157806379ba5097146109bc5780637d0f7a881461090a5780637eaa3107146108ad5780638456cb591461084c5780638652edf9146107e85780638da5cb5b146107c1578063902d55a51461079b57806391dd73461461074b578063a1ad17ab14610709578063a480ca791461058e578063b1290b1e1461042f578063b29b86af146103da578063c1bf957814610384578063c598b2f91461035b578063dc4c90d314610317578063dd1b9c4a146102fb578063de90e29b146102c1578063e30c397814610299578063e88d1db21461027d578063f25f4b56146102395763f2fde38b0361000e5734610235576020366003190112610235576101e1610d82565b6101e9611ff9565b60018060a01b0316806001600160601b0360a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610235575f366003190112610235576040517f000000000000000000000000bb1c5d95d90e75b99df1ec26bd89f03aee6c847b6001600160a01b03168152602090f35b34610235575f366003190112610235576020604051611f408152f35b34610235575f366003190112610235576001546040516001600160a01b039091168152602090f35b34610235575f3660031901126102355760206040517f00000000000000000000000000000000000000000000000000000000000009c48152f35b34610235575f3660031901126102355760206040516127108152f35b34610235575f366003190112610235576040517f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b03168152602090f35b3461023557602036600319011261023557610374610d82565b50604080515f81525f6020820152f35b34610235575f3660031901126102355760206103cf6103ca6103c57f0000000000000000000000000000000000000000000000001bc16d674ec80000612103565b61214f565b61242f565b6040519060020b8152f35b34610235575f3660031901126102355761042b6040516103fb604082610e1a565b600f81526e696d6f7274616c2d686f6f642d763160881b6020820152604051918291602083526020830190610dac565b0390f35b34610235576060366003190112610235576004356001600160401b0381116102355761045f903690600401610d55565b6024356001600160401b0381116102355761047e903690600401610d55565b60443592916001600160401b0384116102355760a0600319853603011261023557604051926104ac84610dd0565b84600401356001600160401b038111610235576104cf9060043691880101611600565b845260248501356001600160401b038111610235576104f49060043691880101611600565b602085015260448501356001600160401b0381116102355761051c9060043691880101611600565b604085015260648501356001600160401b038111610235576105449060043691880101611600565b60608501526084850135956001600160401b0387116102355761057261057c96600460209936920101611600565b6080860152611973565b6040516001600160a01b039091168152f35b34610235576020366003190112610235576105a7610d82565b6105af6120a3565b6001600160a01b038181165f8181526003602052604090205490929116156106fa575f6105de610636926120c1565b6105f66040519160026020840152604083019061155b565b60e08101829052610100808201839052815261061461012082610e1a565b604051809381926348c8949160e01b8352602060048401526024830190610dac565b0381837f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b03165af19081156106ef575f916106cd575b5060408180518101031261023557604091826020830151920151907f251551588ab2fefc5204a992ffe52b797e42bee3b0359226b84003bece36a0b6848051858152846020820152a2600160025582519182526020820152f35b6106e991503d805f833e6106e18183610e1a565b81019061159e565b82610673565b6040513d5f823e3d90fd5b6306c3ce4560e41b5f5260045ffd5b34610235576020366003190112610235576001600160a01b0361072a610d82565b165f526003602052602060018060a01b0360405f2054161515604051908152f35b34610235576020366003190112610235576004356001600160401b0381116102355761078761078161042b923690600401610d55565b90610e80565b604051918291602083526020830190610dac565b34610235575f3660031901126102355760206040516b033b2e3c9fd0803ce80000008152f35b34610235575f366003190112610235575f546040516001600160a01b039091168152602090f35b34610235576020366003190112610235576001600160a01b03610809610d82565b165f818152600360205260409020546001600160a01b0316156106fa5760a090604051905f82526020820152612710604082015260c860608201525f6080820152f35b34610235575f36600319011261023557610864611ff9565b61086c61247c565b6001805460ff60a01b1916600160a01b1790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a1005b34610235575f366003190112610235577f00000000000000000000000000000000000000000000000000000000000009c46127100361271081116108f657602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461023557602036600319011261023557610923610d82565b61092b610e56565b5060018060a01b03165f52600360205260a060405f2060405161094d81610dd0565b8154600180851b5f1901918216808452908401548216602080850191825260028601546040808701918252600388015460608089019182526004909901548716608098890190815282519687529451871693860193909352905190840152519482019490945292511690820152f35b34610235575f36600319011261023557600154336001600160a01b0390911603610a2e57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610235575f36600319011261023557610a59611ff9565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610235575f366003190112610235576020600454604051908152f35b34610235575f36600319011261023557602060ff60015460a01c166040519015158152f35b34610235575f36600319011261023557602060405160c88152f35b34610235575f3660031901126102355760206040517f0000000000000000000000000000000000000000000000001bc16d674ec800008152f35b34610235575f36600319011261023557610b53611ff9565b60015460ff8160a01c1615610b9a5760ff60a01b19166001556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a1005b638dfc202b60e01b5f5260045ffd5b34610235576040366003190112610235576004356001600160401b03811161023557610bd9903690600401610d55565b602435906001600160401b03821161023557610bfc61057c923690600401610d55565b9060405192610c0a84610dd0565b602095604051610c1a8882610e1a565b5f81528552604051610c2c8882610e1a565b5f815287860152604051610c408882610e1a565b5f81526040860152604051610c558882610e1a565b5f81526060860152604051610c6a8882610e1a565b5f81526080860152611973565b346102355760203660031901126102355760043560045481101561023557610ca0602091610d29565b905460405160039290921b1c6001600160a01b03168152f35b34610235575f36600319011261023557602060405162010d888152f35b34610235575f3660031901126102355760206040516101f48152f35b34610235576020366003190112610235576004358060020b81036102355761057c602091611646565b35908160020b820361023557565b600454811015610d415760045f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b9181601f84011215610235578235916001600160401b038311610235576020838186019501011161023557565b600435906001600160a01b038216820361023557565b35906001600160a01b038216820361023557565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b03821117610deb57604052565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117610deb57604052565b90601f801991011681019081106001600160401b03821117610deb57604052565b6001600160401b038111610deb57601f01601f191660200190565b60405190610e6382610dd0565b5f6080838281528260208201528260408201528260608201520152565b60607f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b0381163381900361154c57835f958101039161010083126102355784359260ff84168094036102355760a090601f1901126102355760405193610eec85610dd0565b610ef860208701610d98565b8552610f0660408701610d98565b91602086019283528187013562ffffff81168103610235576040870152610f2f60808801610d1b565b8683015260a08701356001600160a01b0381168103610235576080870152600260e0610f5d60c08a01610d1b565b980135951461138d575050610f746111531961200c565b91610f7e86612021565b928060020b8460020b12611385575b506001600160801b03610f9f87611646565b610fa885611646565b9086610fb38a611646565b9182846001600160a01b0380831690821611611379575b50506001600160a01b03818116908516811161132b57505050610fec91612583565b169283156112f7576040805161103a9261100582610dff565b60020b9889825260020b95866020830152828201525f6060820152815180938192632d35e7ed60e11b83528a60048401612055565b03815f865af19081156106ef575f916112c7575b505f8160801d600f0b1261004a57600f0b905f82126110c3575b50509160609160a07f97867802120a4a93e6459e593fa2ab34cb51e6b7c7af3c35ecbf814cd6f1b2fe94600180831b0390511695209560405192835260208301526040820152a3604051906110be602083610e1a565b815290565b82516001600160a01b0316916f7fffffffffffffffffffffffffffffff1981146108f6575f036001600160801b0316918061118d5750602090600460405180948193630476982d60e21b83525af18015611182577f97867802120a4a93e6459e593fa2ab34cb51e6b7c7af3c35ecbf814cd6f1b2fe94926060949260a092611153575b505b929450819350611068565b6111749060203d60201161117b575b61116c8183610e1a565b810190611fd2565b505f611146565b503d611162565b6040513d89823e3d90fd5b9091823b1561023557604051632961046560e21b8152600481018390525f8160248183885af180156106ef576112ae575b5060405163a9059cbb60e01b81526001600160a01b03841660048201526024810191909152906020908290818b81604481015b03925af180156112a357916020918993611276575b50600460405180948193630476982d60e21b83525af18015611182577f97867802120a4a93e6459e593fa2ab34cb51e6b7c7af3c35ecbf814cd6f1b2fe94926060949260a092611257575b50611148565b61126f9060203d60201161117b5761116c8183610e1a565b505f611251565b61129590833d851161129c575b61128d8183610e1a565b810190611fe1565b505f611206565b503d611283565b6040513d8a823e3d90fd5b6112bc919299505f90610e1a565b5f97906111f16111be565b6112e9915060403d6040116112f0575b6112e18183610e1a565b81019061203f565b505f61104e565b503d6112d7565b60405162461bcd60e51b815260206004820152600c60248201526b6e6f206c697175696469747960a01b6044820152606490fd5b919290916001600160a01b038216111561136e579061134e611354939282612583565b93612549565b808316828416101561136757505b610fec565b9050610fec565b905061136292612549565b90945092505f80610fca565b92505f610f8d565b926114319195975060409296505f94506113cc6103ca6103c57f0000000000000000000000000000000000000000000000001bc16d674ec80000612103565b6113d86111531961200c565b906113e281612021565b918060020b8360020b12611544575b508451916113fe83610dff565b60020b825260020b6020820152858482015285878201528351958680948193632d35e7ed60e11b83528c60048401612055565b03925af19182156106ef575f92611522575b505f935f928060801d5f81600f0b136114d5575b506114849596505f81600f0b13611487575b50505060405193602085015260408401526040835282610e1a565b90565b90516001600160801b0390911692506114cd9183917f000000000000000000000000bb1c5d95d90e75b99df1ec26bd89f03aee6c847b91906001600160a01b031661249a565b5f8080611469565b61148496506001600160801b0361151b9116809860018060a01b03905116857f000000000000000000000000bb1c5d95d90e75b99df1ec26bd89f03aee6c847b9161249a565b8695611457565b61153c91925060403d6040116112f0576112e18183610e1a565b50905f611443565b91505f6113f1565b63570c108560e11b5f5260045ffd5b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602081830312610235578051906001600160401b038211610235570181601f82011215610235578051906115d182610e3b565b926115df6040519485610e1a565b8284526020838301011161023557815f9260208093018386015e8301015290565b81601f820112156102355780359061161782610e3b565b926116256040519485610e1a565b8284526020838301011161023557815f926020809301838601378301015290565b60020b908160ff1d82810118620d89e881116119605763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116611944575b60048116611928575b6008811661190c575b601081166118f0575b602081166118d4575b604081166118b8575b6080811661189c575b6101008116611880575b6102008116611864575b6104008116611848575b610800811661182c575b6110008116611810575b61200081166117f4575b61400081166117d8575b61800081166117bc575b6201000081166117a0575b620200008116611785575b62040000811661176a575b6208000016611751575b5f12611749575b0160201c90565b5f1904611742565b6b048a170391f7dc42444e8fa290910260801c9061173b565b6d2216e584f5fa1ea926041bedfe9890920260801c91611731565b916e5d6af8dedb81196699c329225ee6040260801c91611726565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161171b565b916f31be135f97d08fd981231505542fcfa60260801c91611710565b916f70d869a156d2a1b890bb3df62baf32f70260801c91611706565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916116fc565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916116f2565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916116e8565b916ff3392b0822b70005940c7a398e4b70f30260801c916116de565b916ff987a7253ac413176f2b074cf7815e540260801c916116d4565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916116ca565b916ffe5dee046a99a2a811c461f1969c30530260801c916116c0565b916fff2ea16466c96a3843ec78b326b528610260801c916116b7565b916fff973b41fa98c081472e6896dfb254c00260801c916116ae565b916fffcb9843d60f6159c9db58835c9266440260801c916116a5565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161169c565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91611693565b916ffff97272373d413259a46990580e213a0260801c9161168a565b826345c3193d60e11b5f5260045260245ffd5b92939161197e61247c565b6119866120a3565b7f00000000000000000000000000000000000000000000000000000000000009c494604051926119d6808501908582106001600160401b03831117610deb57612746863960a081526119ee6119df60a08301848a611f94565b82810360208401528486611f94565b903360408201528860608201526080818303910152611a16865160a0835260a0830190610dac565b92611a2e602088019485518482036020860152610dac565b91611a46604089019384518382036040850152610dac565b9680611a77611a6260608c019a8b518682036060880152610dac565b60808c01948551906080818403910152610dac565b03905ff080156106ef576001600160a01b0316996b033b2e3c9fd0803ce800000080820291908204036108f657612710900498896b033b2e3c9fd0803ce800000003976b033b2e3c9fd0803ce800000089116108f657611ad68c6120c1565b611b056103ca6103c57f0000000000000000000000000000000000000000000000001bc16d674ec80000612103565b7f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b03169190611b3a81611646565b60405163313b65df60e11b815290611b55600483018561155b565b6001600160a01b031660a482015260208160c4815f885af19081156106ef578d91611f56575b505f938492611bc2611be69360405192839160e06020840161010081019360018252611baa602083018d61155b565b60020b60c0820152015203601f198101835282610e1a565b6040519586809481936348c8949160e01b8352602060048401526024830190610dac565b03925af19182156106ef578e602091602494611f3e575b506040516370a0823160e01b815230600482015293849182905afa80156106ef578e925f91611f09575b5080611e51575b5060a09150209860048d60405192611c4584610dd0565b3384528c602085015f8152604086019182526060860192835260808601935f85525f52600360205260405f209560018060a01b039060018060a01b03905116166001600160601b0360a01b87541617865560018060a01b03905116600186019060018060a01b03166001600160601b0360a01b82541617905551600285015551600384015560018060a01b0390511691019060018060a01b03166001600160601b0360a01b82541617905560045468010000000000000000811015610deb578c9a7f505c8cdc72ea698fd891ad179b5665326ae108a3197794d5f045b2793b3ed0dc9a611dd49a8d7f583c5ace241f3e47c9c6f13e68a9e83f02dcf4b80932be3aa086674391a532d9611df097611e0c9c611db3611dfe9c611d708a6001611de29c01600455610d29565b81546001600160a01b0389811660039390931b92831b921b191617905560408051818152948594611da392860191611f94565b9083820360208501523397611f94565b0390a451975195519151935195604051998a9960a08b5260a08b0190610dac565b9089820360208b0152610dac565b908782036040890152610dac565b908582036060870152610dac565b908382036080850152610dac565b0390a280611e1e575b50600160025590565b604051908152817fe0c3c67f503b3300202bb12cfd591b941507d2ad50554e2274719527d4c7b12a60203393a35f611e15565b60405163a9059cbb60e01b81527f000000000000000000000000bb1c5d95d90e75b99df1ec26bd89f03aee6c847b6001600160a01b03811660048301526024820183905293602090829060449082905f905af180156106ef5760a0947fa4e6799a53d037c8e49217233616ac11a98bf48a7f8a9f9c53d318febcbb1b6892602092611eee575b50604051938452600180871b031692a28d91611c2e565b611f0490833d851161129c5761128d8183610e1a565b611ed7565b9250506020823d602011611f36575b81611f2560209383610e1a565b81010312610235578d91515f611c27565b3d9150611f18565b611f51903d805f833e6106e18183610e1a565b611bfd565b90506020813d602011611f8c575b81611f7160209383610e1a565b8101031261023557518060020b810361023557508b5f611b7b565b3d9150611f64565b908060209392818452848401375f828201840152601f01601f1916010190565b8115611fbe570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312610235575190565b90816020910312610235575180151581036102355790565b5f546001600160a01b03163303610a2e57565b60c89060020b02908160020b9182036108f657565b60020b62010d87190190627fffff198212627fffff8313176108f657565b9190826040910312610235576020825192015190565b90610160926120668360609361155b565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b60028054146120b25760028055565b633ee5aeb560e01b5f5260045ffd5b6120c9610e56565b50604051906120d782610dd0565b5f8083526001600160a01b03919091166020830152612710604083015260c86060830152608082015290565b6121186b033b2e3c9fd0803ce8000000612500565b8060601b90808204600160601b14901517156108f6576001600160a01b039161214b919061214590612500565b90611fb4565b1690565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b03161161240f57602081901b640100000000600160c01b03168080156102355760ff826001600160801b031060071b83811c6001600160401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c821060031b177f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be85831c1c601f161a17169160808310155f146124035750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c6780000000000000001690607f190160401b1717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa919810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918282145f146123df5750905090565b6001600160a01b03908116906123f484611646565b16116123fe575090565b905090565b905081607f031b612224565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b60020b9061243f60c8830561200c565b915f8112908161246e575b5061245157565b9060020b60c71901627fffff198112627fffff8213176108f65790565b90508260020b14155f61244a565b60ff60015460a01c1661248b57565b63d93c066560e01b5f5260045ffd5b91906001600160a01b0316803b1561023557604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af180156106ef576124f45750565b5f6124fe91610e1a565b565b908115612544578160011c600181018091116108f657825b838210612523575050565b909250826125318183611fb4565b9081018091116108f65760011c90612518565b5f9150565b611484926125789290916001600160a01b038083169082161161257d575b90036001600160a01b0316906125cf565b612722565b90612567565b6114849161257891906001600160a01b03808216908316116125c9575b6125b66001600160a01b03828116908416612659565b9190036001600160a01b0316905f6126a2565b906125a0565b90606082901b905f19600160601b8409928280851094039380850394858411156102355714612652578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b1115610235571461269957600160601b910990828211900360a01b910360601c1790565b50505060601c90565b91818302915f1981850993838086109503948086039586851115610235571461271a579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b906001600160801b03821680920361273657565b6393dafdf160e01b5f5260045ffdfe61010060405234610bdb576119d68038038061001a81610bdf565b92833981019060a081830312610bdb5780516001600160401b038111610bdb5782610046918301610c04565b60208201519092906001600160401b038111610bdb5781610068918401610c04565b604083015191906001600160a01b03831690818403610bdb576060850151608086015190956001600160401b038211610bdb57019160a083850312610bdb576040519060a082016001600160401b038111838210176106125760405283516001600160401b038111610bdb57856100e0918601610c04565b825260208401516001600160401b038111610bdb5785610101918601610c04565b6020830190815260408501519093906001600160401b038111610bdb578661012a918701610c04565b6040840190815260608601519095906001600160401b038111610bdb5787610153918301610c04565b6060850190815260808201519097906001600160401b038111610bdb5761017a9201610c04565b60808401908152895190996001600160401b0382116106125760035490600182811c92168015610bd1575b60208310146105f45781601f849311610b63575b50602090601f8311600114610afd575f92610af2575b50508160011b915f199060031b1c1916176003555b8051906001600160401b0382116106125760045490600182811c92168015610ae8575b60208310146105f45781601f849311610a7a575b50602090601f8311600114610a14575f92610a09575b50508160011b915f199060031b1c1916176004555b156109d557612710861161099f573360805260a085905260c08690524260e052518051906001600160401b0382116106125760055490600182811c92168015610995575b60208310146105f45781601f849311610944575b50602090601f83116001146108de575f926108d3575b50508160011b915f199060031b1c1916176005555b518051906001600160401b0382116106125760065490600182811c921680156108c9575b60208310146105f45781601f84931161085b575b50602090601f83116001146107f5575f926107ea575b50508160011b915f199060031b1c1916176006555b518051906001600160401b0382116106125760075490600182811c921680156107e0575b60208310146105f45781601f849311610772575b50602090601f831160011461070c575f92610701575b50508160011b915f199060031b1c1916176007555b5180519093906001600160401b03811161061257600854600181811c911680156106f7575b60208210146105f457601f8111610694575b50602094601f8211600114610631579481929394955f92610626575b50508160011b915f199060031b1c1916176008555b5180519092906001600160401b03811161061257600954600181811c91168015610608575b60208210146105f457601f8111610591575b506020601f821160011461052e57819293945f92610523575b50508160011b915f199060031b1c1916176009555b806b033b2e3c9fd0803ce800000002906b033b2e3c9fd0803ce800000082040361050f576127109004806b033b2e3c9fd0803ce8000000036b033b2e3c9fd0803ce8000000811161050f576104b19033610c55565b806104ff575b604051610d0d9081610cc98239608051816107ae015260a05181818161048501526108a7015260c05181818161015801526104b4015260e05181818161011a01526104da0152f35b61050891610c55565b5f806104b7565b634e487b7160e01b5f52601160045260245ffd5b015190505f80610447565b601f1982169060095f52805f20915f5b81811061057957509583600195969710610561575b505050811b0160095561045c565b01515f1960f88460031b161c191690555f8080610553565b9192602060018192868b01518155019401920161053e565b60095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f830160051c810191602084106105ea575b601f0160051c01905b8181106105df575061042e565b5f81556001016105d2565b90915081906105c9565b634e487b7160e01b5f52602260045260245ffd5b90607f169061041c565b634e487b7160e01b5f52604160045260245ffd5b015190505f806103e2565b601f1982169560085f52805f20915f5b88811061067c57508360019596979810610664575b505050811b016008556103f7565b01515f1960f88460031b161c191690555f8080610656565b91926020600181928685015181550194019201610641565b60085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f830160051c810191602084106106ed575b601f0160051c01905b8181106106e257506103c6565b5f81556001016106d5565b90915081906106cc565b90607f16906103b4565b015190505f8061037a565b60075f9081528281209350601f198516905b81811061075a5750908460019594939210610742575b505050811b0160075561038f565b01515f1960f88460031b161c191690555f8080610734565b9293602060018192878601518155019501930161071e565b60075f529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c810191602085106107d6575b90601f859493920160051c01905b8181106107c85750610364565b5f81558493506001016107bb565b90915081906107ad565b91607f1691610350565b015190505f80610317565b60065f9081528281209350601f198516905b818110610843575090846001959493921061082b575b505050811b0160065561032c565b01515f1960f88460031b161c191690555f808061081d565b92936020600181928786015181550195019301610807565b60065f529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c810191602085106108bf575b90601f859493920160051c01905b8181106108b15750610301565b5f81558493506001016108a4565b9091508190610896565b91607f16916102ed565b015190505f806102b4565b60055f9081528281209350601f198516905b81811061092c5750908460019594939210610914575b505050811b016005556102c9565b01515f1960f88460031b161c191690555f8080610906565b929360206001819287860151815501950193016108f0565b90915060055f5260205f20601f840160051c8101916020851061098b575b90601f859493920160051c01905b81811061097d575061029e565b5f8155849350600101610970565b9091508190610962565b91607f169161028a565b60405162461bcd60e51b815260206004820152600e60248201526d63726561746f72203e203130302560901b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b3d32b9379031b932b0ba37b960a11b6044820152606490fd5b015190505f80610231565b60045f9081528281209350601f198516905b818110610a625750908460019594939210610a4a575b505050811b01600455610246565b01515f1960f88460031b161c191690555f8080610a3c565b92936020600181928786015181550195019301610a26565b60045f529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c81019160208510610ade575b90601f859493920160051c01905b818110610ad0575061021b565b5f8155849350600101610ac3565b9091508190610ab5565b91607f1691610207565b015190505f806101cf565b60035f9081528281209350601f198516905b818110610b4b5750908460019594939210610b33575b505050811b016003556101e4565b01515f1960f88460031b161c191690555f8080610b25565b92936020600181928786015181550195019301610b0f565b60035f529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81019160208510610bc7575b90601f859493920160051c01905b818110610bb957506101b9565b5f8155849350600101610bac565b9091508190610b9e565b91607f16916101a5565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761061257604052565b81601f82011215610bdb578051906001600160401b03821161061257610c33601f8301601f1916602001610bdf565b9282845260208383010111610bdb57815f9260208093018386015e8301015290565b6001600160a01b0316908115610cb5576002549080820180921161050f5760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3565b63ec442f0560e01b5f525f60045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816302d05d3f146108955750806306fdde031461087a578063095ea7b3146107f8578063135d088d146107dd57806316eebd1e1461079957806318160ddd1461077c57806323b872dd1461069c578063313ce5671461068157806347ecb665146105c657806370a082311461058f5780637284e41614610574578063902d55a51461054e57806395d89b4114610533578063a9059cbb14610502578063abb1dc4414610408578063abfaeee01461034d578063b29b86af146102d7578063beb0a416146101cb578063dd62ed3e1461017b578063de90e29b146101415763eae4c19f14610103575f80fd5b3461013d575f36600319011261013d5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b5f80fd5b3461013d575f36600319011261013d5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461013d57604036600319011261013d576101946108fa565b61019c610910565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461013d575f36600319011261013d576040515f6007548060011c906001811680156102cd575b6020831081146102b9578285529081156102955750600114610237575b6102338361021f81850382610926565b6040519182916020835260208301906108d6565b0390f35b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b80821061027b5750909150810160200161021f61020f565b919260018160209254838588010152019101909291610263565b60ff191660208086019190915291151560051b8401909101915061021f905061020f565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101f2565b3461013d575f36600319011261013d57604051604081019080821067ffffffffffffffff8311176103395761023391604052600f81526e696d6f7274616c2d686f6f642d763160881b60208201526040519182916020835260208301906108d6565b634e487b7160e01b5f52604160045260245ffd5b3461013d575f36600319011261013d576040515f6008548060011c906001811680156103fe575b6020831081146102b95782855290811561029557506001146103a0576102338361021f81850382610926565b60085f9081527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3939250905b8082106103e45750909150810160200161021f61020f565b9192600181602092548385880101520191019092916103cc565b91607f1691610374565b3461013d575f36600319011261013d57610459610423610948565b61048361042e610b6e565b610475610439610a16565b610467610444610ac2565b9360405197889760e0895260e08901906108d6565b9087820360208901526108d6565b9085820360408701526108d6565b9083820360608501526108d6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301520390f35b3461013d57604036600319011261013d5761052861051e6108fa565b6024359033610c1a565b602060405160018152f35b3461013d575f36600319011261013d5761023361021f610b6e565b3461013d575f36600319011261013d5760206040516b033b2e3c9fd0803ce80000008152f35b3461013d575f36600319011261013d5761023361021f610ac2565b3461013d57602036600319011261013d576001600160a01b036105b06108fa565b165f525f602052602060405f2054604051908152f35b3461013d575f36600319011261013d576040515f6009548060011c90600181168015610677575b6020831081146102b9578285529081156102955750600114610619576102338361021f81850382610926565b60095f9081527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af939250905b80821061065d5750909150810160200161021f61020f565b919260018160209254838588010152019101909291610645565b91607f16916105ed565b3461013d575f36600319011261013d57602060405160128152f35b3461013d57606036600319011261013d576106b56108fa565b6106bd610910565b6001600160a01b0382165f8181526001602081815260408084203385529091529091205491936044359392909181016106fc575b506105289350610c1a565b83811061076157841561074e57331561073b57610528945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846106f1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b3461013d575f36600319011261013d576020600254604051908152f35b3461013d575f36600319011261013d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013d575f36600319011261013d5761023361021f610a16565b3461013d57604036600319011261013d576108116108fa565b60243590331561074e576001600160a01b031690811561073b57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461013d575f36600319011261013d5761023361021f610948565b3461013d575f36600319011261013d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361013d57565b602435906001600160a01b038216820361013d57565b90601f8019910116810190811067ffffffffffffffff82111761033957604052565b604051905f6003548060011c9160018216918215610a0c575b6020841083146102b95783865285929081156109ed575060011461098e575b61098c92500383610926565b565b5060035f90815290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106109d157505090602061098c92820101610980565b60209193508060019154838589010152019101909184926109b9565b6020925061098c94915060ff191682840152151560051b820101610980565b92607f1692610961565b604051905f6005548060011c9160018216918215610ab8575b6020841083146102b95783865285929081156109ed5750600114610a595761098c92500383610926565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b818310610a9c57505090602061098c92820101610980565b6020919350806001915483858901015201910190918492610a84565b92607f1692610a2f565b604051905f6006548060011c9160018216918215610b64575b6020841083146102b95783865285929081156109ed5750600114610b055761098c92500383610926565b5060065f90815290917ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b818310610b4857505090602061098c92820101610980565b6020919350806001915483858901015201910190918492610b30565b92607f1692610adb565b604051905f6004548060011c9160018216918215610c10575b6020841083146102b95783865285929081156109ed5750600114610bb15761098c92500383610926565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818310610bf457505090602061098c92820101610980565b6020919350806001915483858901015201910190918492610bdc565b92607f1692610b87565b6001600160a01b0316908115610cc4576001600160a01b0316918215610cb157815f525f60205260405f2054818110610c9857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffdfea26469706673582212207dbcbdb516b846cfe0b2ab0e34970d32ca7eddfb6ac05b2c49d73aa7901f13f264736f6c634300081c0033a2646970667358221220ff3b168082ca7e38ecd666a68ce058ec107e099b1e3a48a9e2f0d878b3adb45664736f6c634300081c0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x2ec68a…25a15b | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0xe0c3c6…b12a | [0] 0x000000000000…f7aae537 [1] 0x000000000000…ee6c847b data: 0x000000000000000000…3a000000 |
| 0x2ec68a…25a15b | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0x505c8c…d0dc | [0] 0x000000000000…f7aae537 data: 0x000000000000000000…00000000 |
| 0x2ec68a…25a15b | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0x583c5a…32d9 | [0] 0x000000000000…f7aae537 [1] 0x000000000000…ee6c847b [2] 0x436f228179ce…9cab2389 data: 0x000000000000000000…00000000 |
| 0x2ec68a…25a15b | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0xa4e679…1b68 | [0] 0x000000000000…ee6c847b data: 0x000000000000000000…0000514d |
| 0x2ec68a…25a15b | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0x978678…b2fe | [0] 0x000000000000…f7aae537 [1] 0x436f228179ce…9cab2389 data: 0x000000000000000000…00030e08 |
| 0xbc8d12…9d3dd5 | 7 hrs agoMon, 17 Aug 2026 20:14:43 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…ee6c847b |
| 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 | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 39,117,688 | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0x2ec68a…25a15b | CREATE | createCoin | 0xfcc9…f946 | OUT | 0x257c…e537 | 0 ETH |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x2ec68a…25a15b | createCoin | 39,117,688 | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0xbb1c…847b | IN | BadLuckBrian | $0.000 ETH | 0.00002695 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x2ec68abf…25a15b | Transfer | 39,117,688 | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0xfcc9…f946 | OUT | 0xbb1c…847b | 0.000000 BLB | Bad Luck Brian (BLB) | |
| 0x2ec68abf…25a15b | Transfer | 39,117,688 | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0xfcc9…f946 | OUT | 0x8366…0951 | 749,999,999.999999 BLB | Bad Luck Brian (BLB) | |
| 0x2ec68abf…25a15b | Transfer | 39,117,688 | 7 hrs agoMon, 17 Aug 2026 20:17:54 UTC | 0x0000…0000 | IN | 0xfcc9…f946 | 749,999,999.999999 BLB | Bad Luck Brian (BLB) |