46 txs
47 calls
constructor
constructor(address initialAdmin)
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (uint64)
canCall
viewfunction canCall(address caller, address target, bytes4 selector) view returns (bool immediate, uint32 delay)
expiration
viewfunction expiration() view returns (uint32)
getAccess
viewfunction getAccess(uint64 roleId, address account) view returns (uint48 since, uint32 currentDelay, uint32 pendingDelay, uint48 effect)
getNonce
viewfunction getNonce(bytes32 id) view returns (uint32)
getRoleAdmin
viewfunction getRoleAdmin(uint64 roleId) view returns (uint64)
getRoleGrantDelay
viewfunction getRoleGrantDelay(uint64 roleId) view returns (uint32)
getRoleGuardian
viewfunction getRoleGuardian(uint64 roleId) view returns (uint64)
getSchedule
viewfunction getSchedule(bytes32 id) view returns (uint48)
getTargetAdminDelay
viewfunction getTargetAdminDelay(address target) view returns (uint32)
getTargetFunctionRole
viewfunction getTargetFunctionRole(address target, bytes4 selector) view returns (uint64)
hashOperation
viewfunction hashOperation(address caller, address target, bytes data) view returns (bytes32)
hasRole
viewfunction hasRole(uint64 roleId, address account) view returns (bool isMember, uint32 executionDelay)
isTargetClosed
viewfunction isTargetClosed(address target) view returns (bool)
minSetback
viewfunction minSetback() view returns (uint32)
PUBLIC_ROLE
viewfunction PUBLIC_ROLE() view returns (uint64)
cancel
nonpayablefunction cancel(address caller, address target, bytes data) returns (uint32)
consumeScheduledOp
nonpayablefunction consumeScheduledOp(address caller, bytes data)
execute
payablefunction execute(address target, bytes data) payable returns (uint32)
grantRole
nonpayablefunction grantRole(uint64 roleId, address account, uint32 executionDelay)
labelRole
nonpayablefunction labelRole(uint64 roleId, string label)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
renounceRole
nonpayablefunction renounceRole(uint64 roleId, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(uint64 roleId, address account)
schedule
nonpayablefunction schedule(address target, bytes data, uint48 when) returns (bytes32 operationId, uint32 nonce)
setGrantDelay
nonpayablefunction setGrantDelay(uint64 roleId, uint32 newDelay)
setRoleAdmin
nonpayablefunction setRoleAdmin(uint64 roleId, uint64 admin)
setRoleGuardian
nonpayablefunction setRoleGuardian(uint64 roleId, uint64 guardian)
setTargetAdminDelay
nonpayablefunction setTargetAdminDelay(address target, uint32 newDelay)
setTargetClosed
nonpayablefunction setTargetClosed(address target, bool closed)
setTargetFunctionRole
nonpayablefunction setTargetFunctionRole(address target, bytes4[] selectors, uint64 roleId)
updateAuthority
nonpayablefunction updateAuthority(address target, address newAuthority)
events
OperationCanceled
event OperationCanceled(bytes32 indexed operationId, uint32 indexed nonce)
OperationExecuted
event OperationExecuted(bytes32 indexed operationId, uint32 indexed nonce)
OperationScheduled
event OperationScheduled(bytes32 indexed operationId, uint32 indexed nonce, uint48 schedule, address caller, address target, bytes data)
RoleAdminChanged
event RoleAdminChanged(uint64 indexed roleId, uint64 indexed admin)
RoleGrantDelayChanged
event RoleGrantDelayChanged(uint64 indexed roleId, uint32 delay, uint48 since)
RoleGranted
event RoleGranted(uint64 indexed roleId, address indexed account, uint32 delay, uint48 since, bool newMember)
RoleGuardianChanged
event RoleGuardianChanged(uint64 indexed roleId, uint64 indexed guardian)
RoleLabel
event RoleLabel(uint64 indexed roleId, string label)
RoleRevoked
event RoleRevoked(uint64 indexed roleId, address indexed account)
TargetAdminDelayUpdated
event TargetAdminDelayUpdated(address indexed target, uint32 delay, uint48 since)
TargetClosed
event TargetClosed(address indexed target, bool closed)
TargetFunctionRoleUpdated
event TargetFunctionRoleUpdated(address indexed target, bytes4 selector, uint64 indexed roleId)
errors
AccessManagerAlreadyScheduled
error AccessManagerAlreadyScheduled(bytes32 operationId)
AccessManagerBadConfirmation
error AccessManagerBadConfirmation()
AccessManagerExpired
error AccessManagerExpired(bytes32 operationId)
AccessManagerInvalidInitialAdmin
error AccessManagerInvalidInitialAdmin(address initialAdmin)
AccessManagerLockedAccount
error AccessManagerLockedAccount(address account)
AccessManagerLockedRole
error AccessManagerLockedRole(uint64 roleId)
AccessManagerNotReady
error AccessManagerNotReady(bytes32 operationId)
AccessManagerNotScheduled
error AccessManagerNotScheduled(bytes32 operationId)
AccessManagerUnauthorizedAccount
error AccessManagerUnauthorizedAccount(address msgsender, uint64 roleId)
AccessManagerUnauthorizedCall
error AccessManagerUnauthorizedCall(address caller, address target, bytes4 selector)
AccessManagerUnauthorizedCancel
error AccessManagerUnauthorizedCancel(address msgsender, address caller, address target, bytes4 selector)
AccessManagerUnauthorizedConsume
error AccessManagerUnauthorizedConsume(address target)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
creation bytecode
0x60803461026257601f6124f038819003918201601f1916830192916001600160401b03919082851184861017610139578084926040968752833960209384918101031261026257516001600160a01b038116929083900361026257821561024b575f805260018152835f20835f52815265ffffffffffff9081855f2054161590815f14610161578261009042610266565b169183831161014d5782918751948886019686881090881117610139579588529284525f848401818152818052600185528882208883528552888220955186549151600160301b600160a01b0360309190911b166001600160a01b0319909216908816600160301b600160a01b031916171790945592935f805160206124d08339815191529360609390915b885193878552169083015286820152a35161223790816102998239f35b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b92505f805260018352845f20845f52835281855f205461018042610266565b63ffffffff9283929116607082901c8616116102415760301c16905b818116801561023a5781811161014d575b16836101b842610266565b16019183831161014d575f8080526001865287812087825286528781208054600160301b600160a01b031916858a1b6dffffffffffff00000000000000001694881b67ffffffff00000000169490941760301b600160301b600160a01b03169390931790925590935f805160206124d08339815191529360609392919061011c565b505f6101ad565b60501c169061019c565b8351630409d6d160e11b81525f6004820152602490fd5b5f80fd5b65ffffffffffff90818111610279571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfe60406080815260049081361015610014575f80fd5b5f905f3560e01c806308d6122d146114f15780630b0a93ba146114a857806312be872714611452578063167bd395146113a957806318ff183c1461131f5780631cff79cd146111f257806325c471a014610f365780633078f11414610edd57806330cae18714610e335780633adc277a14610e0c5780633ca7c02a14610deb5780634136a33c14610dba5780634665096d14610d9d5780634c1da1e214610d735780635296295214610cb2578063530dd45614610c645780636d5115bd14610c0757806375b238fc14610bed578063853551b814610b3a57806394c7d7ee14610a75578063a166aa8914610a32578063a64d95ce1461093b578063abd9bd2a14610916578063ac9650d814610740578063b7009613146106f5578063b7d2b162146106c4578063cc1b6c81146106a7578063d1f856ee14610657578063d22b598914610593578063d6bb62c6146103cf578063f801a698146101d15763fe0776f51461017e575f80fd5b346101cd57806003193601126101cd57610196611627565b61019e6115e1565b91336001600160a01b038416036101be5750906101ba91611c93565b5080f35b51635f159e6360e01b81528490fd5b5080fd5b5091346101cd5760603660031901126101cd576101ec6115cb565b6024356001600160401b0381116103cb5761020a9036908401611653565b92906044359365ffffffffffff958686168096036103c85761022e82848733611a85565b96905061023a426121cf565b61024c63ffffffff80991680926119af565b901580156103b3575b6103645788919082168082111561035d57505b16936102768385883361183c565b9788835260026020528983205416801515908161034c575b506103355750926103267f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b49369ffffffff0000000000009796938a878b80995260026020522080548560018b8360301c16019a8b169b8c9b60301b169169ffffffffffffffffffff1916171790558a51948594855233602086015260018060a01b03168b85015260806060850152608084019161181c565b0390a382519182526020820152f35b885163813e945960e01b8152908101889052602490fd5b6103569150611c6a565b155f61028e565b9050610268565b50505061037587916103af93611acc565b90516381c6f24b60e01b8152339381019384526001600160a01b0390941660208401526001600160e01b0319166040830152829160600190565b0390fd5b50811515801561025557508881168210610255565b80fd5b8380fd5b5082903461058f576103fb906103e4366116d6565b6103f381839499959793611acc565b92888761183c565b938483526020966002885265ffffffffffff91828686205416155f1461043257855163060a299b60e41b8152808901889052602490fd5b9396949594936001600160a01b03908116913383036104a2575b505050505050907fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f7918084526002855263ffffffff82852080549065ffffffffffff198216905560301c16928392519480a38152f35b5f805260018a52875f20335f528a52875f20546104cd6001600160701b038683169260301c16611c30565b5050508015159485610577575b505016918288528789528688209363ffffffff60e01b169384895289526105313361052c6001600160401b038a8c2054166001600160401b038091165f526001602052600160405f20015460401c1690565b611958565b509015908161056e575b5061054757808061044c565b60849450855193630ff89d4760e21b85523390850152602484015260448301526064820152fd5b9050158961053b565b90919450610584426121cf565b161015928a806104da565b8280fd5b50346101cd57806003193601126101cd577fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c6105cd6115cb565b916105d66116c3565b926105df6119dd565b60018060a01b031692838552846020526106516001600160701b039261060d83856001848b20015416612142565b94878952886020526001838a200191166001600160701b0319825416179055519283928390929165ffffffffffff60209163ffffffff604085019616845216910152565b0390a280f35b50346101cd57806003193601126101cd576106a390610685610677611627565b61067f6115e1565b90611958565b9151901515815263ffffffff90911660208201529081906040820190565b0390f35b50346101cd57816003193601126101cd5760209051620697808152f35b50346101cd573660031901126103c8576101ba6106df611627565b6106e76115e1565b906106f06119dd565b611c93565b5090346103c85760603660031901126103c857506107116115cb565b9061071a6115e1565b916044356001600160e01b03198116810361073c576106a393610685926118c5565b5f80fd5b5091346101cd5760208060031936011261058f576001600160401b039082358281116109125761077390369085016115f7565b909286519083820195828710828811176108ff575085889497985287825261079a83611886565b956107a785519788611723565b8387526107b384611886565b601f19969087018a5b8181106108f0575050895b8581106108465750505050505080519380850191818652845180935281818701918460051b880101950193875b8489106108015787870388f35b909192939495848080600193603f198c820301885286601f838d518051918291828752018686015e8885828601015201160101980194019801979190949392946107f4565b8060059b9a979b1b820135601e19833603018112156108ec5782018035908582116108e85788019080360382136108e8578b80600194938f6108b48d6108c8968b8e94519482869385850198893783019084820190898252519283915e018683820152038084520182611723565b5190305af46108c1611c01565b90306120df565b6108d2828c61189d565b526108dd818b61189d565b5001999598996107c7565b8b80fd5b8a80fd5b60608a82018c01528a016107bc565b604190634e487b7160e01b5f525260245ffd5b8480fd5b50346101cd5760209061093461092b366116d6565b9291909161183c565b9051908152f35b50346101cd57806003193601126101cd57610954611627565b9061095d6116c3565b936109666119dd565b6001600160401b03809316928314610a1d57507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b48908483855260016020526106516109c3826001600160701b036001868a20015460801c16612142565b93908688526001602052600182892001908154906001600160701b0360801b9060801b16906001600160701b0360801b1916179055519283928390929165ffffffffffff60209163ffffffff604085019616845216910152565b82602492519163061c6a4360e21b8352820152fd5b50346101cd5760203660031901126101cd5760209160ff9060019083906001600160a01b03610a5f6115cb565b16815280865220015460701c1690519015158152f35b5082903461058f57610a8636611680565b9390928051638fb3603760e01b908181526020818581335afa908115610b30578891610ae9575b506001600160e01b03191603610ad257856101ba610acd8787338861183c565b611ae2565b602492505190630641fee960e31b82523390820152fd5b90506020813d602011610b28575b81610b0460209383611723565b81010312610b2457516001600160e01b031981168103610b245788610aad565b8780fd5b3d9150610af7565b83513d8a823e3d90fd5b5091346101cd57826003193601126101cd57610b54611627565b6001600160401b03916024358381116109125790610b76849236908301611653565b929093610b816119dd565b16938415908115610be3575b50610bcc57506106517f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4509394955192839260208452602084019161181c565b855163061c6a4360e21b8152908101849052602490fd5b905084145f610b8d565b50346101cd57816003193601126101cd5751908152602090f35b50346101cd57806003193601126101cd57610c206115cb565b6024359063ffffffff60e01b821680920361073c576001600160a01b031683526020838152828420918452908152918190205490516001600160401b039091168152f35b50346101cd5760203660031901126101cd576020906001600160401b03610caa610c8c611627565b6001600160401b038091165f526001602052600160405f2001541690565b915191168152f35b5082903461058f578060031936011261058f57610ccd611627565b90610cd661163d565b90610cdf6119dd565b6001600160401b038093169384158015610d6a575b610d55575083855260016020526001818620019067ffffffffffffffff60401b838354921b169067ffffffffffffffff60401b191617905516907f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae28380a380f35b84602492519163061c6a4360e21b8352820152fd5b50838514610cf4565b50346101cd5760203660031901126101cd5760209063ffffffff610caa610d986115cb565b6117f0565b50346101cd57816003193601126101cd576020905162093a808152f35b50823461058f57602036600319011261058f578160209363ffffffff9235815260028552205460301c169051908152f35b50346101cd57816003193601126101cd57602090516001600160401b038152f35b5090346103c85760203660031901126103c8575065ffffffffffff610caa602093356117c6565b50823461058f578160031936011261058f57610e4d611627565b610e5561163d565b92610e5e6119dd565b6001600160401b038092169283158015610ed4575b610ebf575060019083865281602052852001921691826001600160401b03198254161790557f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63408380a380f35b83602492519163061c6a4360e21b8352820152fd5b50828414610e73565b50346101cd57806003193601126101cd57608090610f0a610efc611627565b610f046115e1565b90611773565b91849194519465ffffffffffff809516865263ffffffff80921660208701521690840152166060820152f35b5082903461058f57606036600319011261058f57610f52611627565b90610f5b6115e1565b926044359163ffffffff9182841680940361073c57610f786119dd565b6001600160401b038095169485885260019060209282845284610fad8b856001600160701b0393849220015460801c16611c30565b505093838a146111db57898c52808652868c209a60018060a01b03169a8b5f52865265ffffffffffff9485885f2054161598895f146110ab5790610ffc91610ff4426121cf565b9116906119af565b9387519388850191858310908311176108ff5750926060989694928a8d8f9a7ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9d9b8f9661109a97839c9a84528a8a1688528b880195865282528a5220905f52875285885f2093511665ffffffffffff198454161783555116600160301b600160a01b0382549160301b1690600160301b600160a01b031916179055565b83519586521690840152820152a380f35b9290506110d0919394508a8d52838752878d208c5f528752875f205460301c16611c30565b5050928184168c8b8b83115f1461119f5750508990039082821161118c57508b7ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf999795938b61113360609b999795611187955b1661112e426121cf565b6119af565b92528552858d208c5f528552855f209065ffffffffffff60401b67ffffffff000000008295881b1691881b16178817600160301b600160a01b0382549160301b1690600160301b600160a01b031916179055565b61109a565b601190634e487b7160e01b5f525260245ffd5b61118793507ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9b99979591925061113360609b9997955f611124565b865163061c6a4360e21b81528084018b9052602490fd5b50906111fd36611680565b939194909261120e85858833611a85565b94901580611311575b611301576112278682893361183c565b95829663ffffffff809716158015906112e8575b6112d6575b50600354936112586112528385611acc565b8a611bba565b60035561126482611758565b9161127187519384611723565b8083526020830193368282011161073c57815f926020928737840101523447106112bf57509180602098926112b494519034855af16112ae611c01565b916120df565b506003555191168152f35b60249086519063cd78605960e01b82523090820152fd5b6112e1919750611ae2565b955f611240565b5065ffffffffffff6112f9826117c6565b16151561123b565b826103af85610375898b95611acc565b5063ffffffff851615611217565b5082903461073c578060031936011261073c5761133a6115cb565b916113436115e1565b61134b6119dd565b6001600160a01b0393841693843b1561073c5760245f928386519788948593637a9e5e4b60e01b855216878401525af1801561139f57611389578380f35b909192506001600160401b0383116108ff575052005b82513d5f823e3d90fd5b83823461073c578060031936011261073c576113c36115cb565b906024359182151580930361073c576113da6119dd565b6001600160a01b03169230841461143d57505f838152602081815290829020600101805460ff60701b1916607085901b60ff60701b1617905590519182527f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb13891a2005b836024925191630b40d17960e31b8352820152fd5b503461073c57602036600319011261073c576020906001600160401b03611477611627565b165f526001825263ffffffff61149e6001600160701b036001845f20015460801c16611c30565b5050915191168152f35b503461073c57602036600319011261073c576020906001600160401b03610caa6114d0611627565b6001600160401b038091165f526001602052600160405f20015460401c1690565b50823461073c57606036600319011261073c5761150c6115cb565b906024356001600160401b039182821161073c5761152c913691016115f7565b9060443592831680930361073c576115459391936119dd565b6001600160a01b03909116905f5b84811061155c57005b8060051b8201359063ffffffff60e01b821680920361073c5784847f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151600194825f526020905f82528b5f20815f5282528b5f20856001600160401b03198254161790558b51908152a301611553565b600435906001600160a01b038216820361073c57565b602435906001600160a01b038216820361073c57565b9181601f8401121561073c578235916001600160401b03831161073c576020808501948460051b01011161073c57565b600435906001600160401b038216820361073c57565b602435906001600160401b038216820361073c57565b9181601f8401121561073c578235916001600160401b03831161073c576020838186019501011161073c57565b90604060031983011261073c576004356001600160a01b038116810361073c5791602435906001600160401b03821161073c576116bf91600401611653565b9091565b6024359063ffffffff8216820361073c57565b606060031982011261073c576001600160a01b0391600435838116810361073c5792602435908116810361073c5791604435906001600160401b03821161073c576116bf91600401611653565b90601f801991011681019081106001600160401b0382111761174457604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161174457601f01601f191660200190565b6001600160401b03165f9081526001602090815260408083206001600160a01b039094168352929052205465ffffffffffff916117bc603083901c6001600160701b0316611c30565b9490931693909291565b5f52600260205265ffffffffffff60405f2054166117e381611c6a565b156117ed57505f90565b90565b60018060a01b03165f525f6020526118176001600160701b03600160405f20015416611c30565b505090565b908060209392818452848401375f828201840152601f01601f1916010190565b611872611880929493604051948593602085019760018060a01b038092168952166040850152606080850152608084019161181c565b03601f198101835282611723565b51902090565b6001600160401b0381116117445760051b60200190565b80518210156118b15760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b91909160018060a01b038084165f525f60205260405f209060ff600183015460701c165f146118f95750505050505f905f90565b821630036119165750506119109060035492611bba565b14905f90565b909161193e935063ffffffff60e01b165f526020526001600160401b0360405f205416611958565b9190156119515763ffffffff8216159190565b5f91508190565b906001600160401b03808316036119725750506001905f90565b61197b91611773565b5050919065ffffffffffff8091168015159182611999575b50509190565b9091506119a5426121cf565b1610155f80611993565b91909165ffffffffffff808094169116019182116119c957565b634e487b7160e01b5f52601160045260245ffd5b6119e73633611d32565b90156119f05750565b63ffffffff16611a2d576044611a0536611dfa565b5060405163f07e038f60e01b81523360048201526001600160401b0390911660248201529050fd5b611a826040516020810190338252306040820152606080820152366080820152365f60a08301375f60a03683010152611a7a60a082601f19601f3601168101036080810184520182611723565b519020611ae2565b50565b909291906001600160a01b0384163003611aa3576116bf9350611dbf565b9192906004841015611ab957505050505f905f90565b6116bf93611ac691611acc565b916118c5565b9060041161073c57356001600160e01b03191690565b805f52600260205260405f205465ffffffffffff9063ffffffff8282169160301c169181155f14611b265760405163060a299b60e41b815260048101859052602490fd5b611b2f426121cf565b16811115611b5057604051630c65b5bd60e11b815260048101849052602490fd5b611b5c90929192611c6a565b611ba2578190805f52600260205260405f2065ffffffffffff1981541690557f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d5f80a390565b60249060405190631e2975b960e21b82526004820152fd5b604080516001600160a01b03909216602083019081526001600160e01b0319909316828201528152606081016001600160401b038111828210176117445760405251902090565b3d15611c2b573d90611c1282611758565b91611c206040519384611723565b82523d5f602084013e565b606090565b611c39426121cf565b63ffffffff8281169265ffffffffffff604082901c811693168311611c63575091925f9250829150565b60201c1692565b62093a8065ffffffffffff80921601908082116119c95780611c8b426121cf565b169116111590565b6001600160401b03809116908114611d1a57805f52600160205260405f209160018060a01b031691825f5260205265ffffffffffff60405f20541615611d1457805f52600160205260405f20825f526020525f60408120557ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c1665f80a3600190565b50505f90565b6024906040519063061c6a4360e21b82526004820152fd5b9060048110611d8d576001600160a01b0382163014611d9e57611d5490611dfa565b92909115611d9557611d6591611958565b9015611d8d5763ffffffff91821690821680821115611d8657505b16801591565b9050611d80565b50505f905f90565b5050505f905f90565b905060041161073c576003546119105f356001600160e01b03191630611bba565b919060048210611d95576001600160a01b0383163014611de35790611d5491611f72565b611ded9250611acc565b6119106003549130611bba565b60048110611f69578060041161073c575f356001600160e01b0319166310a6aa3760e31b81148015611f59575b8015611f49575b8015611f39575b8015611f29575b611f1e5763063fc60f60e21b81148015611f0e575b8015611efe575b611ed05763012e238d60e51b8114908115611ebf575b50611e7c57505f905f905f90565b60241161073c576004356001600160401b038116810361073c57611eb8906001600160401b038091165f526001602052600160405f2001541690565b6001915f90565b635be958b160e11b1490505f611e6e565b5060241161073c576004356001600160a01b0381169081900361073c57611ef6906117f0565b6001915f9190565b506308d6122d60e01b8114611e58565b5063167bd39560e01b8114611e51565b50506001905f905f90565b5063d22b598960e01b8114611e3c565b50635326cae760e11b8114611e35565b5063294b14a960e11b8114611e2e565b506330cae18760e01b8114611e27565b505f905f905f90565b90600481106120d5576001600160e01b0319611f8e8284611acc565b166310a6aa3760e31b811480156120c5575b80156120b5575b80156120a5575b8015612095575b6120895763063fc60f60e21b81148015612079575b8015612069575b6120445763012e238d60e51b8114908115612033575b50611ff65750505f905f905f90565b60241161073c57600401356001600160401b038116810361073c57611eb8906001600160401b038091165f526001602052600160405f2001541690565b635be958b160e11b1490505f611fe7565b5060241161073c576004013560018060a01b03811680910361073c57611ef6906117f0565b506308d6122d60e01b8114611fd1565b5063167bd39560e01b8114611fca565b5050506001905f905f90565b5063d22b598960e01b8114611fb5565b50635326cae760e11b8114611fae565b5063294b14a960e11b8114611fa7565b506330cae18760e01b8114611fa0565b50505f905f905f90565b9061210657508051156120f457805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580612139575b612117575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561210f565b61214e90929192611c30565b50509163ffffffff80911690818185168181115f146121b957038181116119c9578167ffffffff0000000092612198925b620697809116808211156121b257501661112e426121cf565b9360201b1665ffffffffffff60401b8460401b1617179190565b9050611124565b50506121988167ffffffff00000000925f61217f565b65ffffffffffff908181116121e2571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fdfea2646970667358221220263cf8f3d95f0f5f3cd3db05447431be06db73d06571ad2095ee8c07a55182a964736f6c63430008190033f98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf00000000000000000000000079fa1f70fbba4dd07510b21b32525b602fadf31c