[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "creator_", "type": "address" }, { "internalType": "address", "name": "protocol_", "type": "address" }, { "components": [ { "internalType": "string", "name": "id", "type": "string" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "internalType": "struct Token.AirdropWave[]", "name": "airdropWaves_", "type": "tuple[]" }, { "internalType": "bytes32", "name": "rewardsMerkleRoot_", "type": "bytes32" }, { "internalType": "uint256", "name": "amountToDistributeClaimableRewards", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AllowanceOverflow", "type": "error" }, { "inputs": [], "name": "AllowanceUnderflow", "type": "error" }, { "inputs": [], "name": "BeliefToken_AirdropNotEligible", "type": "error" }, { "inputs": [], "name": "BeliefToken_AirdropWaveNotEnabled", "type": "error" }, { "inputs": [], "name": "BeliefToken_AlreadyClaimed", "type": "error" }, { "inputs": [], "name": "BeliefToken_MaxSupplyOverflow", "type": "error" }, { "inputs": [], "name": "BeliefToken_NotAParentChain", "type": "error" }, { "inputs": [], "name": "BeliefToken_Unauthorized", "type": "error" }, { "inputs": [], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InvalidPermit", "type": "error" }, { "inputs": [], "name": "PermitExpired", "type": "error" }, { "inputs": [], "name": "TotalSupplyOverflow", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "waveId", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "name": "BeliefToken_ClaimAirdropWave", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "BeliefToken_ClaimReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "waveId", "type": "string" }, { "indexed": false, "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" } ], "name": "BeliefToken_EnableAirdropWave", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "CrosschainBurn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "CrosschainMint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "result", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "waveId", "type": "string" } ], "name": "airdropWaves", "outputs": [ { "internalType": "string", "name": "id", "type": "string" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "waveId", "type": "string" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "name": "claimAirdropWave", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "waveId", "type": "string" }, { "internalType": "address", "name": "holder", "type": "address" } ], "name": "claimedAirdropWaveStatusOf", "outputs": [ { "internalType": "bool", "name": "claimed", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "userId", "type": "string" } ], "name": "claimedRewardStatusOf", "outputs": [ { "internalType": "bool", "name": "claimed", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "crosschainBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "crosschainMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "waveId", "type": "string" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" } ], "name": "enableAirdropWave", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "protocol", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardsMerkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "_interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60c0604052346106ae57611f1a80380380610019816106b2565b92833981019060e0818303126106ae5780516001600160401b0381116106ae57826100459183016106d7565b60208201516001600160401b0381116106ae57836100649184016106d7565b61007060408401610728565b61007c60608501610728565b60808501519092906001600160401b0381116106ae5785019580601f880112156106ae578651966001600160401b0388116103ce578760051b916020806100c48186016106b2565b809b81520193830101918183116106ae5760208101935b83851061062c57505050505060c060a08601519501519380519060018060401b0382116103ce575f5490600182811c92168015610622575b60208310146103b05781601f8493116105b5575b50602090601f8311600114610552575f92610547575b50508160011b915f199060031b1c1916175f555b60a08390528051906001600160401b0382116103ce5760015490600182811c9216801561053d575b60208310146103b05781601f8493116104cf575b50602090601f8311600114610469575f9261045e575b50508160011b915f199060031b1c1916176001555b6080526101c3610771565b61021a575b6040516116879081610893823960805181611075015260a0518181816103be015281816105f301528181610cc901528181610e4201528181610f33015281816111000152818161146501526115700152f35b5f91825b85518410156103e257610231848761073c565b5160208061023f878a61073c565b5151604051928184925191829101835e8101600381520301902090805180519060018060401b0382116103ce578354600181811c911680156103c4575b60208210146103b057601f811161036b575b50602090601f83116001146102fd5760019593836102ea96946002946040945f926102f2575b50505f19600383901b1c191690881b1784555b602081015187850155015191015560406102e1878a61073c565b51015190610764565b93019261021e565b015190505f806102b4565b90601f19831691855f52815f20925f5b81811061035357508460029460409460019a98946102ea9a988c951061033b575b505050811b0184556102c7565b01515f1960f88460031b161c191690555f808061032e565b9293602060018192878601518155019501930161030d565b845f5260205f20601f840160051c810191602085106103a6575b601f0160051c01905b81811061039b575061028e565b5f815560010161038e565b9091508190610385565b634e487b7160e01b5f52602260045260245ffd5b90607f169061027c565b634e487b7160e01b5f52604160045260245ffd5b925092909350600555806b033b2e3c9fd0803ce800000003916b033b2e3c9fd0803ce8000000831161044a578082016b033b2e3c9fd0803ce80000000392831161044a5761043661043b9361044195610789565b610764565b30610789565b5f8080806101c8565b634e487b7160e01b5f52601160045260245ffd5b015190505f806101a3565b60015f9081528281209350601f198516905b8181106104b7575090846001959493921061049f575b505050811b016001556101b8565b01515f1960f88460031b161c191690555f8080610491565b9293602060018192878601518155019501930161047b565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c81019160208510610533575b90601f859493920160051c01905b818110610525575061018d565b5f8155849350600101610518565b909150819061050a565b91607f1691610179565b015190505f8061013d565b5f8080528281209350601f198516905b81811061059d5750908460019594939210610585575b505050811b015f55610151565b01515f1960f88460031b161c191690555f8080610578565b92936020600181928786015181550195019301610562565b5f80529091507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f840160051c81019160208510610618575b90601f859493920160051c01905b81811061060a5750610127565b5f81558493506001016105fd565b90915081906105ef565b91607f1691610113565b84516001600160401b0381116106ae5782016060818503601f1901126106ae5760405191606083016001600160401b038111848210176103ce576040526020820151926001600160401b0384116106ae576060836106918860208098819801016106d7565b8352604081015185840152015160408201528152019401936100db565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176103ce57604052565b81601f820112156106ae578051906001600160401b0382116103ce57610706601f8301601f19166020016106b2565b92828452602083830101116106ae57815f9260208093018386015e8301015290565b51906001600160a01b03821682036106ae57565b80518210156107505760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b9190820180921161044a57565b6121054614801561077f5790565b5062014a34461490565b610791610771565b610809575b6805345cdf77eb68f44c548281019081106107fc576805345cdf77eb68f44c556387a211a2600c525f526020600c20818154019055602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3565b63e5cfe9575f526004601cfd5b60a0516001600160a01b03908116908216811480610876575b61082d575b50610796565b602052637f5e9f20600c525f196034600c20555f195f52602c5160601c5f7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602082a35f610827565b5080602052637f5e9f20600c525f80526034600c20541561082256fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146111bf57508063028e2485146110a457806302d05d3f1461106057806306fdde0314611045578063095ea7b314610fed578063174e31c414610ef857806318160ddd14610ed357806318bf507714610d6e57806323b872dd14610bf25780632b8c49e314610b74578063313ce56714610b5957806332cb6b0c14610b335780633644e51514610aab5780633b7854681461087257806342966c681461085357806354fd4d501461080557806370a08231146107d35780637ecebe00146107a157806384920bbd146107465780638c674c03146106225780638ce74426146105de57806390d2f54e1461056757806395d89b411461045b578063a9059cbb14610333578063b5890a1314610316578063d505accf1461018d5763dd62ed3e14610145575f80fd5b346101895760403660031901126101895760206101816101636112da565b61016b6112f0565b602052637f5e9f20600c525f526034600c205490565b604051908152f35b5f80fd5b346101895760e0366003190112610189576101a66112da565b6101ae6112f0565b6084359160643560443560ff85168503610189576101ca611306565b6020815191012090824211610309576040519360018060a01b03169460018060a01b03169565383775081901600e52855f5260c06020600c20958654957f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252602082019586528660408301967fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc688528b6060850198468a528c608087019330855260a08820602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9885252528688525260a082015220604e526042602c205f5260ff1660205260a43560405260c43560605260208060805f60015afa93853d51036102fc575f8051602061163283398151915294602094019055856303faf4f960a51b176040526034602c2055a3005b63ddafbaef5f526004601cfd5b631a15a3cc5f526004601cfd5b34610189575f366003190112610189576020600554604051908152f35b346101895760403660031901126101895761034c6112da565b602435906103586113e9565b6103bc575b6387a211a2600c52335f526020600c2080548084116103af5783900390555f526020600c20818154019055602052600c5160601c335f80516020611612833981519152602080a3602060405160018152f35b63f4d678b85f526004601cfd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038281169082161480610438575b6103fd575b5061035d565b602052637f5e9f203360601b17600c525f196034600c20555f195f52602c5160601c335f8051602061163283398151915260205fa3826103f7565b50610455813390602052637f5e9f20600c525f526034600c205490565b156103f2565b34610189575f366003190112610189576040515f6001548060011c9060018116801561055d575b6020831081146105495782855290811561052557506001146104c7575b6104c3836104af8185038261122a565b6040519182916020835260208301906112b6565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b80821061050b575090915081016020016104af61049f565b9192600181602092548385880101520191019092916104f3565b60ff191660208086019190915291151560051b840190910191506104af905061049f565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610482565b346101895760403660031901126101895760043567ffffffffffffffff811161018957610598903690600401611260565b6020806105a36112f0565b92604051928184925191829101835e810160028152030190209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610189575f366003190112610189576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101895760203660031901126101895760043567ffffffffffffffff811161018957602061065681923690600401611260565b604051928184925191829101835e810160038152030190206040515f9180548060011c9060018116801561073c575b6020831081146105495782855290811561071857506001146106df575b506106b2826106d094038361122a565b600260018201549101546040519384936060855260608501906112b6565b91602084015260408301520390f35b9250805f5260205f205f905b8482106107025750820160200192506106b26106a2565b60018160209254838588010152019101906106eb565b60ff191660208086019190915291151560051b840190910193506106b290506106a2565b91607f1691610685565b346101895760203660031901126101895760043567ffffffffffffffff81116101895760ff60208061077d81943690600401611260565b604051928184925191829101835e8101600481520301902054166040519015158152f35b34610189576020366003190112610189576107ba6112da565b6338377508600c525f52602080600c2054604051908152f35b34610189576020366003190112610189576107ec6112da565b6387a211a2600c525f52602080600c2054604051908152f35b34610189575f366003190112610189576104c360405161082660408261122a565b600c81526b0625c605c605ac4cae8c25c760a31b60208201526040519182916020835260208301906112b6565b34610189576020366003190112610189576108706004353361150a565b005b346101895760603660031901126101895760043567ffffffffffffffff8111610189576108a3903690600401611260565b6044359060243567ffffffffffffffff8311610189573660238401121561018957826004013567ffffffffffffffff811161018957602484019060248160051b80960101368111610189576108f66113e9565b15610a9c57604051855190602081818901938085835e8101600281520301902060018060a01b0333165f5260205260ff60405f205416610a8d57600160405160208189518086835e81016003815203019020015415610a7e57600183916040516020818a518085835e81016002815203019020828060a01b0333165f5260205260405f208260ff19825416179055602060405180928a518091835e8101600381520301902001549160405160208101903360601b8252876034820152603481526109c160548261122a565b51902091610a52575b5003610a43576109db833330611401565b6109f0604051946060865260608601906112b6565b602085019390935283830360408501528083526001600160fb1b03106101895783827f26065fb4d131171e2476eb17b938a9e211cf521be70d22c52c83244ce1c54d8a95859360208096013701030190a1005b635b64090160e11b5f5260045ffd5b84915b602083359182811160051b9081521852602060405f20920191818310610a5557915050876109ca565b63fb5f54ef60e01b5f5260045ffd5b6306dfe52560e31b5f5260045ffd5b634c0fc89d60e11b5f5260045ffd5b34610189575f36600319011261018957602060a0610ac7611306565b828151910120604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252838201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015220604051908152f35b34610189575f3660031901126101895760206040516b033b2e3c9fd0803ce80000008152f35b34610189575f36600319011261018957602060405160128152f35b3461018957604036600319011261018957610b8d6112da565b6024356027602160991b01193301610be357610ba9818361150a565b60405190815233916001600160a01b0316907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd490602090a3005b631f9831d360e11b5f5260045ffd5b3461018957606036600319011261018957610c0b6112da565b610c136112f0565b60443590610c1f6113e9565b610cc7575b8260601b33602052637f5e9f208117600c526034600c209081549160018301610ca3575b506387a211a2915017600c526020600c2080548084116103af5783900390555f526020600c20818154019055602052600c5160601c9060018060a01b03165f80516020611612833981519152602080a3602060405160018152f35b828511610cba57846387a211a29303905585610c48565b6313be252b5f526004601cfd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038281169082161480610d4b575b610d08575b50610c24565b602052637f5e9f208360601b17600c525f196034600c20555f195f52602c5160601c60018060a01b0384165f8051602061163283398151915260205fa383610d02565b50610d68818590602052637f5e9f20600c525f526034600c205490565b15610cfd565b3461018957604036600319011261018957610d876112da565b6024356027602160991b01193301610be357610da16113e9565b610e40575b6805345cdf77eb68f44c54818101908110610e33576805345cdf77eb68f44c556387a211a2600c52815f526020600c2081815401905580602052600c5160601c5f5f80516020611612833981519152602080a360405190815233916001600160a01b0316907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0490602090a3005b63e5cfe9575f526004601cfd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038381169082161480610eb7575b610e81575b50610da6565b602052637f5e9f20600c525f196034600c20555f195f52602c5160601c5f5f80516020611632833981519152602082a382610e7b565b5080602052637f5e9f20600c525f80526034600c205415610e76565b34610189575f3660031901126101895760206805345cdf77eb68f44c54604051908152f35b3461018957604036600319011261018957610f116112da565b6040516302abd8c960e11b8152336004820152602480359291906020908290817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610fe2575f91610fb3575b5015610be357602081610fa0847fa7e0801466cad990c2143c2c40a4924862c5503ee26b103582962c5e61e69a149430611401565b6040519384526001600160a01b031692a2005b610fd5915060203d602011610fdb575b610fcd818361122a565b8101906113d1565b83610f6b565b503d610fc3565b6040513d5f823e3d90fd5b34610189576040366003190112610189576110066112da565b60243590602052637f5e9f20600c52335f52806034600c20555f52602c5160601c335f8051602061163283398151915260205fa3602060405160018152f35b34610189575f366003190112610189576104c36104af611306565b34610189575f366003190112610189576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101895760403660031901126101895760043567ffffffffffffffff8111610189576110d5903690600401611260565b6024356110e06113e9565b15610a9c57604051630bda7b5560e21b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610fe2575f916111a0575b5015610be3577f08f9536f4dbd4a3a46a8531d13a42875526412cad47ce602b0b77d30667b861f9181611195926001604051602081865180838901835e8101600381520301902001556040519283926040845260408401906112b6565b9060208301520390a1005b6111b9915060203d602011610fdb57610fcd818361122a565b83611138565b34610189576020366003190112610189576004359063ffffffff60e01b821680920361018957602091630cccc66560e21b8114908115611219575b8115611208575b5015158152f35b6301ffc9a760e01b14905083611201565b6336372b0760e01b811491506111fa565b90601f8019910116810190811067ffffffffffffffff82111761124c57604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156101895780359067ffffffffffffffff821161124c5760405192611295601f8401601f19166020018561122a565b8284526020838301011161018957815f926020809301838601378301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361018957565b602435906001600160a01b038216820361018957565b604051905f80548060011c91600182169182156113c7575b6020841083146105495783865285929081156113a8575060011461134b575b6113499250038361122a565b565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061138c5750509060206113499282010161133d565b6020919350806001915483858901015201910190918492611374565b6020925061134994915060ff191682840152151560051b82010161133d565b92607f169261131e565b90816020910312610189575180151581036101895790565b612105461480156113f75790565b5062014a34461490565b919061140b6113e9565b611463575b6387a211a28360601b17600c526020600c2080548084116103af5783900390555f526020600c20818154019055602052600c5160601c9060018060a01b03165f80516020611612833981519152602080a3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0382811690821614806114e7575b6114a4575b50611410565b602052637f5e9f208360601b17600c525f196034600c20555f195f52602c5160601c60018060a01b0384165f8051602061163283398151915260205fa35f61149e565b50611504818590602052637f5e9f20600c525f526034600c205490565b15611499565b6115126113e9565b61156e575b6387a211a2600c52805f526020600c20918254928382116103af57815f94039055806805345cdf77eb68f44c54036805345cdf77eb68f44c55825260018060a01b03165f80516020611612833981519152602083a3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811615806115ee575b6115ab575b50611517565b602052637f5e9f208160601b17600c525f196034600c20555f195f52602c5160601c60018060a01b0382165f8051602061163283398151915260205fa35f6115a5565b5061160b818390602052637f5e9f20600c525f526034600c205490565b156115a056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a26469706673582212203921c3a96b78dd7021cde64d26356677d2c2185c2f921fb405300d3a6363641164736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000aaa472e3ca0f6e20d001599bbae4fb1d6b7e5f900000000000000000000000007a306c63a1ccc180cbf60fa2a92fbb31e16904f40000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009474947415452554d5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009474947415452554d5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000