0 txs
2 calls
constructor
constructor(address _ibcHandler)
functions
authority
viewfunction authority() view returns (address)
getClientState
viewfunction getClientState(uint32 clientId) view returns (bytes)
getConsensusState
viewfunction getConsensusState(uint32 clientId, uint64 height) view returns (bytes)
getLatestHeight
viewfunction getLatestHeight(uint32 clientId) view returns (uint64)
getTimestampAtHeight
viewfunction getTimestampAtHeight(uint32 clientId, uint64 height) view returns (uint64)
gitRev
purefunction gitRev() pure returns (string)
IBC_HANDLER
viewfunction IBC_HANDLER() view returns (address)
isConsumingScheduledOp
viewfunction isConsumingScheduledOp() view returns (bytes4)
isFrozen
viewfunction isFrozen(uint32 clientId) view returns (bool)
paused
viewfunction paused() view returns (bool)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
createClient
nonpayablefunction createClient(address, uint32 clientId, bytes clientStateBytes, bytes consensusStateBytes, address) returns (tuple update, string counterpartyChainId)
initialize
nonpayablefunction initialize(address authority)
misbehaviour
nonpayablefunction misbehaviour(address, uint32 clientId, bytes clientMessageBytes, address)
pause
nonpayablefunction pause()
setAuthority
nonpayablefunction setAuthority(address newAuthority)
unpause
nonpayablefunction unpause()
updateClient
nonpayablefunction updateClient(address, uint32 clientId, bytes clientMessageBytes, address) returns (tuple)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
verifyMembership
nonpayablefunction verifyMembership(uint32 clientId, uint64 height, bytes proof_stream, bytes path, bytes value) returns (bool)
verifyNonMembership
nonpayablefunction verifyNonMembership(uint32 clientId, uint64 height, bytes proof_stream, bytes path) returns (bool)
events
AuthorityUpdated
event AuthorityUpdated(address authority)
CreateLensClient
event CreateLensClient(uint32 indexed clientId, uint32 indexed l1ClientId, uint32 indexed l2ClientId, string l2ChainId)
Initialized
event Initialized(uint64 version)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
AccessManagedInvalidAuthority
error AccessManagedInvalidAuthority(address authority)
AccessManagedRequiredDelay
error AccessManagedRequiredDelay(address caller, uint32 delay)
AccessManagedUnauthorized
error AccessManagedUnauthorized(address caller)
AddressEmptyCode
error AddressEmptyCode(address target)
EnforcedPause
error EnforcedPause()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ErrInvalidInitialConsensusState
error ErrInvalidInitialConsensusState()
ErrInvalidL1Proof
error ErrInvalidL1Proof()
ErrNotIBC
error ErrNotIBC()
ErrUnsupported
error ErrUnsupported()
ExpectedPause
error ExpectedPause()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60c03461012c57601f612a2e38819003918201601f19168301916001600160401b038311848410176101305780849260209460405283398101031261012c57516001600160a01b038116810361012c57306080525f516020612a0e5f395f51905f525460ff8160401c1661011d576002600160401b03196001600160401b038216016100c7575b5060a0526040516128c9908161014582396080518181816106760152610868015260a051818181610c2d0152818161124001528181611628015261200c0152f35b6001600160401b0319166001600160401b039081175f516020612a0e5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f610086565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80630d27062c146101745780632886a3a31461016f578063384a3c301461016a5780633f4ba83a146101655780633fd413de146101605780634f1ef2861461015b57806352d1902d1461015657806355393174146101515780635c975abb1461014c5780636d6f2120146101475780637a9e5e4b146101425780638456cb591461013d5780638f2a4930146101385780638fb3603714610133578063a9f9396e1461012e578063ad3cb1cc14610129578063b4b5250814610124578063b6719c891461011f578063bf7e214f1461011a578063c4d66de814610115578063e079e299146101105763e9946fc31461010b575f80fd5b61164c565b6115fc565b61139e565b61134c565b6111c2565b611175565b6110f1565b611058565b610fc5565b610ba2565b610abc565b6109e3565b61098f565b61094e565b61090b565b610841565b610615565b6104b1565b6103b7565b610323565b610250565b6101ac565b5f91031261018357565b5f80fd5b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b34610183575f600319360112610183576102316040516101cd606082610591565b602881527f326436636362616166386463623664323832653865343939353834646539333760208201527f66393731393036360000000000000000000000000000000000000000000000006040820152604051918291602083526020830190610187565b0390f35b63ffffffff81160361018357565b359061024e82610235565b565b346101835760206003193601126101835763ffffffff60043561027281610235565b165f525f602052602067ffffffffffffffff600160405f20015460401c16604051908152f35b73ffffffffffffffffffffffffffffffffffffffff81160361018357565b9181601f840112156101835782359167ffffffffffffffff8311610183576020838186019501011161018357565b80610313608092610320959467ffffffffffffffff604080928051855260208101516020860152015116910152565b8160608201520190610187565b90565b346101835760a06003193601126101835760043561034081610298565b6024359061034d82610235565b60443567ffffffffffffffff81116101835761036d9036906004016102b6565b926064359367ffffffffffffffff8511610183576103926103a79536906004016102b6565b939092608435956103a287610298565b611be6565b90610231604051928392836102e4565b34610183575f600319360112610183576103d1363361216c565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff81161561046c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b7f8dfc202b000000000000000000000000000000000000000000000000000000005f5260045ffd5b67ffffffffffffffff81160361018357565b359061024e82610494565b34610183576080600319360112610183576104cd600435610235565b6104d8602435610494565b60443567ffffffffffffffff8111610183576104f89036906004016102b6565b505060643567ffffffffffffffff81116101835761051a9036906004016102b6565b5050602060405160018152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60c0810190811067ffffffffffffffff82111761057057604052565b610527565b6040810190811067ffffffffffffffff82111761057057604052565b90601f601f19910116810190811067ffffffffffffffff82111761057057604052565b6040519061024e606083610591565b67ffffffffffffffff811161057057601f01601f191660200190565b9291926105eb826105c3565b916105f96040519384610591565b829481845281830111610183578281602093845f960137010152565b60406003193601126101835760043561062d81610298565b60243567ffffffffffffffff811161018357366023820112156101835761065e9036906024816004013591016105df565b9073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168030149081156107ff575b506107d7576106b0363361216c565b604051917f52d1902d00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff86165afa5f93816107a6575b50610745577f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff821660045260245ffd5b907f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8303610779576107779250612632565b005b7faa1d49a4000000000000000000000000000000000000000000000000000000005f52600483905260245ffd5b6107c991945060203d6020116107d0575b6107c18183610591565b8101906123da565b925f6106fe565b503d6107b7565b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614155f6106a1565b34610183575f6003193601126101835773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107d75760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6080600319820112610183576004356108d081610298565b916024356108dd81610235565b916044359067ffffffffffffffff8211610183576108fd916004016102b6565b909160643561032081610298565b3461018357610919366108b8565b5050505050610926611ff5565b7f7a86b613000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610183575f60031936011261018357602060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166040519015158152f35b346101835760206003193601126101835763ffffffff6004356109b181610235565b165f525f6020526102316109cf6109ca60405f20611d7e565b6123e9565b604051918291602083526020830190610187565b3461018357602060031936011261018357600435610a0081610298565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054163303610a9057803b15610a4e576107779061246a565b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610183575f60031936011261018357610ad6363361216c565b610ade61205c565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005416177fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b61024e90929192606081019367ffffffffffffffff604080928051855260208101516020860152015116910152565b3461018357610bb0366108b8565b50509150610bbc61169a565b50610bc5611ff5565b610bdc8163ffffffff165f525f60205260405f2090565b916001830190815490610bf28263ffffffff1690565b6040517fdea5a72300000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152926020846024817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff165afa938415610f8f575f94610f94575b50610c7c836116c9565b93610c8a60408501856116d3565b9260201c63ffffffff16956020860196610ca3886116c9565b610cac91612515565b9460405180966020820190610cc49160209181520190565b03601f1981018752610cd69087610591565b6060870195610ce587896116d3565b3690610cf0926105df565b805190602001209060405180926020820190610d0f9160209181520190565b03601f1981018352610d219083610591565b6040517fa9f9396e0000000000000000000000000000000000000000000000000000000081529687958695610d599560048801611ee0565b039173ffffffffffffffffffffffffffffffffffffffff1691815a6020945f91f1908115610f8f575f91610f60575b5015610f3857610d97916116d3565b3690610da2926105df565b9281835493610db68561ffff9060801c1690565b86016020015167ffffffffffffffff1695609086901c61ffff16016020015194610ddf836116c9565b9060401c67ffffffffffffffff1667ffffffffffffffff169067ffffffffffffffff1611610ea161023198610ed997610e97610e61610e42610eb799610eb199610eac99610ea699610ee5575b505063ffffffff165f52600160205260405f2090565b610e4b8b6116c9565b67ffffffffffffffff165f5260205260405f2090565b9a8b9067ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000825416179055565b60018a0155611d7e565b6120af565b95611f34565b6120c2565b916116c9565b90610ec06105b4565b938452602084015267ffffffffffffffff166040830152565b60405191829182610b73565b610ef1610f31926116c9565b7fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff000000000000000083549260401b169116179055565b8b5f610e2c565b7f5b39c7c1000000000000000000000000000000000000000000000000000000005f5260045ffd5b610f82915060203d602011610f88575b610f7a8183610591565b810190611ec8565b5f610d88565b503d610f70565b611ebd565b610fb791945060203d602011610fbe575b610faf8183610591565b810190611ea8565b925f610c72565b503d610fa5565b34610183575f600319360112610183577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156110505760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f611026565b346101835760a060031936011261018357611074600435610235565b61107f602435610494565b60443567ffffffffffffffff81116101835761109f9036906004016102b6565b505060643567ffffffffffffffff8111610183576110c19036906004016102b6565b505060843567ffffffffffffffff8111610183576110e39036906004016102b6565b505060405160018152602090f35b34610183575f60031936011261018357610231604051611112604082610591565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610187565b60031960409101126101835760043561116881610235565b9060243561032081610494565b34610183576102316109cf6111bd6111b863ffffffff61119436611150565b91165f52600160205260405f209067ffffffffffffffff165f5260205260405f2090565b611f34565b612552565b346101835760206003193601126101835761120560016111fa6004356111e781610235565b63ffffffff165f525f60205260405f2090565b015463ffffffff1690565b6040517fdea5a72300000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152906020826024817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff165afa918215610f8f5773ffffffffffffffffffffffffffffffffffffffff926020926112e5925f9261132d575b506040519485809481937fb6719c890000000000000000000000000000000000000000000000000000000083526004830191909163ffffffff6020820193169052565b0392165afa8015610f8f57610231915f9161130e575b5060405190151581529081906020820190565b611327915060203d602011610f8857610f7a8183610591565b5f6112fb565b611345919250843d8611610fbe57610faf8183610591565b905f6112a2565b34610183575f60031936011261018357602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610183576020600319360112610183576004356113bb81610298565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549067ffffffffffffffff61140160ff604085901c16159367ffffffffffffffff1690565b16801590816115f4575b60011490816115ea575b1590816115e1575b506115b95761149e908261149560017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b61153e57611f5c565b6114a457005b61150f7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6115b4680100000000000000007fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b611f5c565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050155f61141d565b303b159150611415565b83915061140b565b34610183575f60031936011261018357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461018357602067ffffffffffffffff61169063ffffffff61166d36611150565b91165f526001845260405f209067ffffffffffffffff165f5260205260405f2090565b5416604051908152f35b604051906060820182811067ffffffffffffffff821117610570576040525f6040838281528260208201520152565b3561032081610494565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610183570180359067ffffffffffffffff82116101835760200191813603831361018357565b90600182811c9216801561176b575b602083101461173e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611733565b601f821161178257505050565b5f5260205f20906020601f840160051c830193106117ba575b601f0160051c01905b8181106117af575050565b5f81556001016117a4565b909150819061179b565b3561032081610235565b61ffff81160361018357565b35610320816117ce565b91906117f081806116d3565b67ffffffffffffffff819592951161057057611816816118108454611724565b84611775565b5f601f82116001146119f2576119a39261186e8360a09460019461024e999a5f926119e7575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b81555b01926118b3611882602083016117c4565b859063ffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000825416179055565b6118fb6118c2604083016117c4565b85547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1660209190911b67ffffffff0000000016178555565b61194b61190a606083016116c9565b85547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff1660409190911b6fffffffffffffffff000000000000000016178555565b61199d61195a608083016117da565b85547fffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff1660809190911b71ffff0000000000000000000000000000000016178555565b016117da565b7fffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff73ffff00000000000000000000000000000000000083549260901b169116179055565b013590505f8061183c565b601f19821690611a05845f5260205f2090565b915f5b818110611a6e57508360019361024e98996119a3979460a097879510611a36575b505050811b018155611871565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690555f8080611a29565b9192602060018192868c013581550194019201611a08565b906020600191611acf8135611a9a81610494565b859067ffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000825416179055565b0135910155565b601f8260209493601f1993818652868601375f8582860101520116010190565b916020610320938181520191611ad6565b359061024e826117ce565b91909160c0818403126101835760405190611b2c82610554565b8193813567ffffffffffffffff81116101835782019080601f830112156101835760a092611b648492846020611bb0963591016105df565b8552611b7260208201610243565b6020860152611b8360408201610243565b6040860152611b94606082016104a6565b6060860152611ba560808201611b07565b608086015201611b07565b910152565b919082604091031261018357604051611bcd81610575565b60208082948035611bdd81610494565b84520135910152565b5093509194935050611bf661169a565b50611bff611ff5565b611c0761205c565b606081019067ffffffffffffffff611c1e836116c9565b16158015611d5e575b611d3657611d29611d2f9284611c5684611c516103209863ffffffff165f525f60205260405f2090565b6117e4565b611c8388611c7e611c758463ffffffff165f52600160205260405f2090565b610e4b866116c9565b611a86565b611c8f602085016117c4565b90611ce67f349a1a93f38692eaae48ffbdb3739dd4d706d84c77bee098e211ed96b146227f63ffffffff611cc5604089016117c4565b611ccf89806116d3565b838060409793975195869516991697169583611af6565b0390a4611d07610eb1610eac611cff610ea13688611b12565b993690611bb5565b90611d106105b4565b978852602088015267ffffffffffffffff166040870152565b806116d3565b36916105df565b7f920ed63f000000000000000000000000000000000000000000000000000000005f5260045ffd5b50611d78611d6b866116c9565b67ffffffffffffffff1690565b15611c27565b90604051611d8b81610554565b80926040515f8254611d9c81611724565b8084529060018116908115611e675750600114611e2c575b50600161024e949383611dce60a095611e23950382610591565b8552015463ffffffff8116602085015263ffffffff602082901c16604085015267ffffffffffffffff604082901c166060850152611e19608082901c61ffff1661ffff166080860152565b60901c61ffff1690565b61ffff16910152565b5f848152602081209092505b818310611e4d57505081016020016001611db4565b600181602092949394548385880101520191019190611e38565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915060019050611db4565b90816020910312610183575161032081610298565b6040513d5f823e3d90fd5b90816020910312610183575180151581036101835790565b949192610320969467ffffffffffffffff611f269563ffffffff611f189516895216602088015260a0604088015260a0870191611ad6565b908482036060860152610187565b916080818403910152610187565b90604051611f4181610575565b60206001829467ffffffffffffffff81541684520154910152565b611f7590611f68612763565b611f70612763565b61246a565b611f7d612763565b611f85612763565b611f8d612763565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330055565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361203457565b7fe54f8f9d000000000000000000000000000000000000000000000000000000005f5260045ffd5b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300541661208757565b7fd93c0665000000000000000000000000000000000000000000000000000000005f5260045ffd5b6120b8906123e9565b6020815191012090565b6120b890612552565b906004116101835790600490565b919091357fffffffff000000000000000000000000000000000000000000000000000000008116926004811061210d575050565b7fffffffff00000000000000000000000000000000000000000000000000000000929350829060040360031b1b161690565b60409073ffffffffffffffffffffffffffffffffffffffff61032095931681528160208201520191611ad6565b6121c96121ad7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005473ffffffffffffffffffffffffffffffffffffffff1690565b6121c06121ba855f6120cb565b906120d9565b90833091612580565b90156121d457505050565b63ffffffff161561239957612261740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055565b6122be6122a56122a57ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b91823b1561018357612304925f808094604051968795869485937f94c7d7ee0000000000000000000000000000000000000000000000000000000085526004850161213f565b03925af18015610f8f5761237f575b5061024e7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055565b8061238d5f61239393610591565b80610179565b5f612313565b7f068ca9d8000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff1660045260245ffd5b90816020910312610183575190565b6103206124429180519063ffffffff6020820151169063ffffffff6040820151169067ffffffffffffffff60608201511661ffff60a081608085015116930151169260405197889660c0602089015260e0880190610187565b9460408701526060860152608085015260a084015260c083015203601f198101835282610591565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9067ffffffffffffffff6040519163ffffffff6020840194600186521660408401521660608201526060815261254c608082610591565b51902090565b602067ffffffffffffffff825116910151604051916020830152604082015260408152610320606082610591565b5f9060409295939582967fffffffff00000000000000000000000000000000000000000000000000000000849773ffffffffffffffffffffffffffffffffffffffff8751938160208601967fb70096130000000000000000000000000000000000000000000000000000000088521660248601521660448401521660648201526064815261260f608482610591565b8380528360205251915afa61262057565b9150505f51906020518060201c150290565b90813b156127215773ffffffffffffffffffffffffffffffffffffffff8216807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156126f0576126ed916127ba565b50565b5050346126f957565b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff827f4c9c8ce3000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561279257565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f8061032093602081519101845af43d156127f6573d916127da836105c3565b926127e86040519485610591565b83523d5f602085013e6127fa565b6060915b90612837575080511561280f57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061288a575b612848575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561284056fea2646970667358221220c6ca78162a49b1b274b1499bd2269bcc3eee436f79b9c2fbfb10c3af17481b2064736f6c634300081b0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00000000000000000000000000ee4ea8d358473f0fcebf0329feed95d56e8c04d7