0 txs
2k calls
constructor
constructor()
functions
approvedHashes
viewfunction approvedHashes(address, bytes32) view returns (uint256)
checkNSignatures
viewfunction checkNSignatures(address executor, bytes32 dataHash, bytes signatures, uint256 requiredSignatures) view
checkSignatures
viewfunction checkSignatures(bytes32 dataHash, bytes signatures) view
domainSeparator
viewfunction domainSeparator() view returns (bytes32)
getFactory
viewfunction getFactory() view returns (address factoryAddress)
getIsProVault
viewfunction getIsProVault() view returns (bool)
getOwners
viewfunction getOwners() view returns (address[])
getThreshold
viewfunction getThreshold() view returns (uint256)
getTransactionHash
viewfunction getTransactionHash(address to, uint256 value, bytes data, uint8 operation, uint256 lockedVaultTxGas, uint256 baseGas, uint256 gasPrice, address gasToken, address refundReceiver, uint256 _nonce) view returns (bytes32)
isOwner
viewfunction isOwner(address owner) view returns (bool)
isRevoked
viewfunction isRevoked() view returns (bool)
isRevokedByRevokeAdmin
viewfunction isRevokedByRevokeAdmin() view returns (bool)
isRevokedByRevokeCosigner
viewfunction isRevokedByRevokeCosigner() view returns (bool)
nonce
viewfunction nonce() view returns (uint256)
notRevokable
viewfunction notRevokable() view returns (bool)
revokeAdmin
viewfunction revokeAdmin() view returns (address)
revokingEnabled
viewfunction revokingEnabled() view returns (bool)
signedMessages
viewfunction signedMessages(bytes32) view returns (uint256)
VERSION
viewfunction VERSION() view returns (string)
addOwnerWithThreshold
nonpayablefunction addOwnerWithThreshold(address owner, uint256 _threshold)
approveHash
nonpayablefunction approveHash(bytes32 hashToApprove)
changeThreshold
nonpayablefunction changeThreshold(uint256 _threshold)
execTransaction
payablefunction execTransaction(address to, uint256 value, bytes data, uint8 operation, uint256 lockedVaultTxGas, uint256 baseGas, uint256 gasPrice, address gasToken, address refundReceiver, bytes signatures) payable returns (bool success)
removeOwner
nonpayablefunction removeOwner(address prevOwner, address owner, uint256 _threshold)
revoke
nonpayablefunction revoke()
setAsNotRevokable
nonpayablefunction setAsNotRevokable()
setFallbackHandler
nonpayablefunction setFallbackHandler(address handler)
setup
nonpayablefunction setup(address[] _owners, uint256 _threshold, address _fallbackHandler, bool _isPro, address _revokeAdmin)
setupRevokeWallet
nonpayablefunction setupRevokeWallet(address _revokeAdmin)
swapOwner
nonpayablefunction swapOwner(address prevOwner, address oldOwner, address newOwner)
updateRevokeWallet
nonpayablefunction updateRevokeWallet(address _newRevokeAdmin)
events
AddedOwner
event AddedOwner(address indexed owner)
AddedRevokeWallet
event AddedRevokeWallet(address indexed revokeWallet)
ApproveHash
event ApproveHash(bytes32 indexed approvedHash, address indexed owner)
ChangedFallbackHandler
event ChangedFallbackHandler(address indexed handler)
ChangedThreshold
event ChangedThreshold(uint256 threshold)
ExecutionFailure
event ExecutionFailure(bytes32 indexed txHash, uint256 payment)
ExecutionSuccess
event ExecutionSuccess(bytes32 indexed txHash, uint256 payment)
LockedVaultReceived
event LockedVaultReceived(address indexed sender, uint256 value)
LockedVaultSetup
event LockedVaultSetup(address indexed initiator, address[] owners, uint256 threshold, address fallbackHandler, bool isPro, address revokeWallet)
RemovedOwner
event RemovedOwner(address indexed owner)
Revoked
event Revoked()
SetAsNotRevokable
event SetAsNotRevokable()
SignMsg
event SignMsg(bytes32 indexed msgHash)
UpdatedRevokeWallet
event UpdatedRevokeWallet(address indexed revokeWallet)
errors
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60c06040526005608090815264189718171960d91b60a052600990620000269082620000fa565b50600a80546001600160d01b03191690553480156200004457600080fd5b5060016005819055600455620001c6565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200008057607f821691505b602082108103620000a157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f557600081815260208120601f850160051c81016020861015620000d05750805b601f850160051c820191505b81811015620000f157828155600101620000dc565b5050505b505050565b81516001600160401b0381111562000116576200011662000055565b6200012e816200012784546200006b565b84620000a7565b602080601f8311600181146200016657600084156200014d5750858301515b600019600386901b1c1916600185901b178555620000f1565b600085815260208120601f198616915b82811015620001975788860151825594840194600190910190840162000176565b5085821015620001b65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6127a680620001d66000396000f3fe6080604052600436106101dc5760003560e01c806396123cd311610102578063e75235b811610095578063f698da2511610064578063f698da2514610604578063f8dc5dd914610619578063fe1e110714610639578063ffa1ad741461065957610218565b8063e75235b814610597578063ed516d51146105ac578063f003fd5f146105cc578063f08a0323146105e457610218565b8063b6549f75116100d1578063b6549f7514610522578063d4d9bdcd14610537578063d8d11f7814610557578063e318b52b1461057757610218565b806396123cd3146104aa5780639dbdeb34146104ca578063a0e67e2b146104ea578063affed0e01461050c57610218565b80632fc1e9da1161017a578063724b87da11610149578063724b87da1461041857806374b1efac1461043b5780637d8329741461045d57806388cc58e41461049557610218565b80632fc1e9da1461038b5780635ae6bd37146103aa578063694e80c3146103e55780636a7612021461040557610218565b80631b931792116101b65780631b931792146103055780631fcac7f31461031a5780632bc9ed021461033a5780632f54bf6e1461036b57610218565b80630d582f131461027f5780630d6aef04146102a15780631247e664146102e557610218565b366102185760405134815233907f3a1b509525df412d3bd91f7a5ff18859912393c68d958008b63114d2556ee1009060200160405180910390a2005b34801561022457600080fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d5548061024e57005b60405136600082373360601b3682015260008060143601836000865af191503d6000823e8161027b573d81fd5b3d81f35b34801561028b57600080fd5b5061029f61029a366004611f7b565b61067b565b005b3480156102ad57600080fd5b50600a546102c890600160301b90046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102f157600080fd5b5061029f610300366004611fa7565b610691565b34801561031157600080fd5b5061029f610713565b34801561032657600080fd5b5061029f610335366004612067565b6107ca565b34801561034657600080fd5b50600a5461035b906301000000900460ff1681565b60405190151581526020016102dc565b34801561037757600080fd5b5061035b610386366004611fa7565b610a71565b34801561039757600080fd5b50600a5461035b90610100900460ff1681565b3480156103b657600080fd5b506103d76103c53660046120c8565b60076020526000908152604090205481565b6040519081526020016102dc565b3480156103f157600080fd5b5061029f6104003660046120c8565b610aaa565b61035b610413366004612139565b610b13565b34801561042457600080fd5b50600a5461035b9065010000000000900460ff1681565b34801561044757600080fd5b50600a5461035b90640100000000900460ff1681565b34801561046957600080fd5b506103d7610478366004611f7b565b600860209081526000928352604080842090915290825290205481565b3480156104a157600080fd5b506001546102c8565b3480156104b657600080fd5b5061029f6104c5366004611fa7565b610d04565b3480156104d657600080fd5b5061029f6104e5366004612222565b610d18565b3480156104f657600080fd5b506104ff610e21565b6040516102dc91906122ce565b34801561051857600080fd5b506103d760065481565b34801561052e57600080fd5b5061029f610f12565b34801561054357600080fd5b5061029f6105523660046120c8565b6110ab565b34801561056357600080fd5b506103d761057236600461231b565b611121565b34801561058357600080fd5b5061029f6105923660046123dc565b61114e565b3480156105a357600080fd5b506004546103d7565b3480156105b857600080fd5b5061029f6105c7366004612427565b61134e565b3480156105d857600080fd5b50600a5460ff1661035b565b3480156105f057600080fd5b5061029f6105ff366004611fa7565b61137c565b34801561061057600080fd5b506103d76113c4565b34801561062557600080fd5b5061029f61063436600461246e565b61141e565b34801561064557600080fd5b50600a5461035b9062010000900460ff1681565b34801561066557600080fd5b5061066e6115b0565b6040516102dc91906124f5565b61068361163e565b61068d8282611658565b5050565b61069961163e565b600a5462010000900460ff166106ba576106ba6413158d4c0d60da1b6117e2565b600a80546601000000000000600160d01b031916600160301b6001600160a01b038416908102919091179091556040517ff83e8dfe9da64b4d4b96c578227f9905bd9a80fc3ebded6d81fcba301bb6b1d790600090a250565b61071b61163e565b600a54610100900460ff16156107905760405162461bcd60e51b815260206004820152603060248201527f546865207661756c7420697320616c726561647920636f6e666967757265642060448201526f6173206e6f74207265766f6b61626c6560801b606482015260840160405180910390fd5b600a805461ff0019166101001790556040517f411f4c05ac4268c6993156a639d79bb72bd8b47d6314f247cb7212ae8a05bcf390600090a1565b6107d5816041611807565b825110156107ee576107ee6404c563032360dc1b6117e2565b6000808060008060005b86811015610a655760418102880160208101516040820151606090920151600090811a965090945090925084900361086357919350839161083a876041611807565b82101561085257610852644c5630323160d81b6117e2565b61085e858a8a85611845565b6109ec565b836001036108ca578260001c9450846001600160a01b03168a6001600160a01b0316141580156108b457506001600160a01b03851660009081526008602090815260408083208c8452909152902054155b1561085e5761085e644c5630323560d81b6117e2565b601e84111561098c576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018a9052600190605c016040516020818303038152906040528051906020012060048661092c919061251e565b6040805160008152602081018083529390935260ff90911690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561097b573d6000803e3d6000fd5b5050506020604051035194506109ec565b6040805160008152602081018083528b905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa1580156109df573d6000803e3d6000fd5b5050506020604051035194505b856001600160a01b0316856001600160a01b0316111580610a2557506001600160a01b0385811660009081526002602052604090205416155b80610a3957506001600160a01b0385166001145b15610a4f57610a4f64262b18191b60d91b6117e2565b8495508080610a5d90612531565b9150506107f8565b50505050505050505050565b60006001600160a01b03821660011480610aa357506001600160a01b0382811660009081526002602052604090205416155b1592915050565b610ab261163e565b610abb81611942565b6001546001600160a01b0316635960a0306040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610af857600080fd5b505af1158015610b0c573d6000803e3d6000fd5b5050505050565b6000610b1d6119b1565b6000610b488d8d8d8d8d8d8d8d8d8d60066000815480929190610b3f90612531565b91905055611121565b9050610b54818461134e565b610b80610b63896109c461254a565b603f610b708b604061255d565b610b7a9190612574565b906119db565b610b8c906101f461254a565b5a1015610ba457610ba46404c563031360dc1b6117e2565b60005a9050610c158e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8b600014610c02578d6119f2565b6109c45a610c10919061251e565b6119f2565b9250610c225a8290611a39565b905082158015610c30575088155b8015610c3a575086155b15610c5057610c50644c5630313360d81b6117e2565b60008715610c6857610c65828a8a8a8a611a5c565b90505b8315610cad57827f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e82604051610ca091815260200190565b60405180910390a2610ce8565b827f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d2382604051610cdf91815260200190565b60405180910390a25b505050610cf56001600555565b9b9a5050505050505050505050565b610d0c61163e565b610d1581611b56565b50565b8115610d58576001600160a01b038116610d3d57610d3d644c5630303360d81b6117e2565b610d4681611b56565b600a805460ff19166001179055610d78565b6001600160a01b03811615610d7857610d786413158c0c0d60da1b6117e2565b610db6868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250611bf7915050565b6001600160a01b03831615610dce57610dce83611d8d565b336001600160a01b03167f7ea1e5d3ec42f14fe6cddc5dc0c0d97641320843481549cd7a704ea0289108a9878787878787604051610e1196959493929190612596565b60405180910390a2505050505050565b6060600060035467ffffffffffffffff811115610e4057610e40611fc4565b604051908082528060200260200182016040528015610e69578160200160208202803683370190505b506001600090815260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e054919250906001600160a01b03165b6001600160a01b038116600114610f0a5780838381518110610eca57610eca61260b565b6001600160a01b03928316602091820292909201810191909152918116600090815260029092526040909120541681610f0281612531565b925050610ea6565b509092915050565b600a5462010000900460ff16610f3357610f336413158d4c0d60da1b6117e2565b600a54600160301b90046001600160a01b03163314801590610f6b5750336000908152600260205260409020546001600160a01b0316155b15610f8157610f81644c5635303560d81b6117e2565b600a546301000000900460ff1615610fa457610fa464262b1a981b60d91b6117e2565b600a54600160301b90046001600160a01b03163303610fd757600a805464ff000000001916640100000000179055611022565b336000908152600260205260409020546001600160a01b03161561101157600a805465ff0000000000191665010000000000179055611022565b611022644c5635303560d81b6117e2565b600a54640100000000900460ff1680156110475750600a5465010000000000900460ff165b1561108057600a5460045461106c91600160301b90046001600160a01b031690611658565b600a805463ff0000ff191663010000001790555b6040517f44825a4b2df8acb19ce4e1afba9aa850c8b65cdb7942e2078f27d0b0960efee690600090a1565b336000908152600260205260409020546001600160a01b03166110d9576110d96404c563033360dc1b6117e2565b336000818152600860209081526040808320858452909152808220600190555183917ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c91a350565b60006111368c8c8c8c8c8c8c8c8c8c8c611dd2565b8051906020012090509b9a5050505050505050505050565b61115661163e565b6001600160a01b038116158061117557506001600160a01b0381166001145b8061118857506001600160a01b03811630145b1561119e5761119e644c5632303360d81b6117e2565b6001600160a01b0381811660009081526002602052604090205416156111cf576111cf6413158c8c0d60da1b6117e2565b6001600160a01b03821615806111ee57506001600160a01b0382166001145b1561120457611204644c5632303360d81b6117e2565b6001600160a01b0383811660009081526002602052604090205481169083161461123957611239644c5632303560d81b6117e2565b6001600160a01b03828116600081815260026020526040808220805486861680855283852080549288166001600160a01b031993841617905595891684529183208054831690951790945591905281541690556001546001600160a01b0316635960a0306040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156112c957600080fd5b505af11580156112dd573d6000803e3d6000fd5b50506040516001600160a01b03851692507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9150600090a26040516001600160a01b038216907f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2690600090a2505050565b600454600081900361136b5761136b644c5630303160d81b6117e2565b611377338484846107ca565b505050565b61138461163e565b61138d81611d8d565b6040516001600160a01b038216907f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b090600090a250565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a79469218602082015246918101829052306060820152600091906080016040516020818303038152906040528051906020012091505090565b61142661163e565b806001600354611436919061251e565b101561144d5761144d644c5632303160d81b6117e2565b6001600160a01b038216158061146c57506001600160a01b0382166001145b1561148257611482644c5632303360d81b6117e2565b6001600160a01b038381166000908152600260205260409020548116908316146114b7576114b7644c5632303560d81b6117e2565b6001600160a01b03828116600081815260026020526040808220805488861684529183208054929095166001600160a01b0319928316179094559181528254909116909155600380549161150a83612621565b90915550506040516001600160a01b038316907ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf90600090a280600454146115555761155581611942565b6001545b6001600160a01b0316635960a0306040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561159357600080fd5b505af11580156115a7573d6000803e3d6000fd5b50505050505050565b600980546115bd90612638565b80601f01602080910402602001604051908101604052809291908181526020018280546115e990612638565b80156116365780601f1061160b57610100808354040283529160200191611636565b820191906000526020600020905b81548152906001019060200180831161161957829003601f168201915b505050505081565b33301461165657611656644c5630333160d81b6117e2565b565b6001600160a01b038216158061167757506001600160a01b0382166001145b8061168a57506001600160a01b03821630145b156116a0576116a0644c5632303360d81b6117e2565b6001600160a01b0382811660009081526002602052604090205416156116d1576116d16413158c8c0d60da1b6117e2565b60026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b038481166000818152604081208054939094166001600160a01b03199384161790935560018352835490911617909155600380549161173e83612531565b90915550506040516001600160a01b038316907f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2690600090a280600454146117895761178981611942565b6001546001600160a01b0316635960a0306040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117c657600080fd5b505af11580156117da573d6000803e3d6000fd5b505050505050565b60405162461bcd60e51b81526020600482015260056024820152816044820152606481fd5b6000826000036118195750600061183f565b6000611825838561255d565b9050826118328583612574565b1461183c57600080fd5b90505b92915050565b8151611852826020611eab565b11156118695761186964262b18191960d91b6117e2565b600060208284010151905082516118948261188e602086611eab90919063ffffffff16565b90611eab565b11156118ab576118ab644c5630323360d81b6117e2565b604051630b135d3f60e11b808252848401602001916001600160a01b03881690631626ba7e906118e19089908690600401612672565b602060405180830381865afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611922919061268b565b6001600160e01b031916146117da576117da6413158c0c8d60da1b6117e2565b60035481111561195d5761195d644c5632303160d81b6117e2565b806000036119765761197664262b19181960d91b6117e2565b60048190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200160405180910390a150565b6002600554036119d457604051633ee5aeb560e01b815260040160405180910390fd5b6002600555565b6000818310156119eb578161183c565b5090919050565b60006001836001811115611a0857611a086126b5565b03611a20576000808551602087018986f49050611a30565b600080855160208701888a87f190505b95945050505050565b600082821115611a4857600080fd5b6000611a54838561251e565b949350505050565b6000806001600160a01b03831615611a745782611a76565b325b90506001600160a01b038416611b1c57611aa83a8610611a96573a611a98565b855b611aa28989611eab565b90611807565b91506000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611af7576040519150601f19603f3d011682016040523d82523d6000602084013e611afc565b606091505b5050905080611b1657611b16644c5630313160d81b6117e2565b50611b4c565b611b2a85611aa28989611eab565b9150611b37848284611ec7565b611b4c57611b4c64262b18189960d91b6117e2565b5095945050505050565b600a54610100900460ff1615611b7757611b77644c5635303160d81b6117e2565b600a5462010000900460ff1615611b9957611b9964262b1a981960d91b6117e2565b600a80546001600160a01b038316600160301b810265ffffff010000600160d01b03199092169190911762010000179091556040517f77b25aa776db659d749c3df62e3c97fa7e4e4761d17e3681c9eb2c5c616eb39c90600090a250565b60045415611c1057611c106404c563230360dc1b6117e2565b8151811115611c2a57611c2a644c5632303160d81b6117e2565b80600003611c4357611c4364262b19181960d91b6117e2565b600160005b8351811015611d50576000848281518110611c6557611c6561260b565b6020026020010151905060006001600160a01b0316816001600160a01b03161480611c9957506001600160a01b0381166001145b80611cac57506001600160a01b03811630145b80611cc85750806001600160a01b0316836001600160a01b0316145b15611cde57611cde644c5632303360d81b6117e2565b6001600160a01b038181166000908152600260205260409020541615611d0f57611d0f6413158c8c0d60da1b6117e2565b6001600160a01b03928316600090815260026020526040902080546001600160a01b0319169382169390931790925580611d4881612531565b915050611c48565b506001600160a01b038116600090815260026020526040902080546001600160a01b03191660011790558251600355600482905561155960015490565b306001600160a01b03821603611dae57611dae6404c563430360dc1b6117e2565b7f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b606060007fc7ac1b996aa2923d02fb8cb6b7637092b38b9d08b4b54d035a91d7a504c6f67260001b8d8d8d8d604051611e0c9291906126cb565b604051908190038120611e32949392918e908e908e908e908e908e908e906020016126db565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b611e5e6113c4565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b600080611eb8838561254a565b90508381101561183c57600080fd5b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180516001600160e01b031663a9059cbb60e01b1781528251600093929184919082896127105a03f13d8015611f395760208114611f415760009350611f4c565b819350611f4c565b600051158215171593505b5050509392505050565b6001600160a01b0381168114610d1557600080fd5b8035611f7681611f56565b919050565b60008060408385031215611f8e57600080fd5b8235611f9981611f56565b946020939093013593505050565b600060208284031215611fb957600080fd5b813561183c81611f56565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611feb57600080fd5b813567ffffffffffffffff8082111561200657612006611fc4565b604051601f8301601f19908116603f0116810190828211818310171561202e5761202e611fc4565b8160405283815286602085880101111561204757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561207d57600080fd5b843561208881611f56565b935060208501359250604085013567ffffffffffffffff8111156120ab57600080fd5b6120b787828801611fda565b949793965093946060013593505050565b6000602082840312156120da57600080fd5b5035919050565b60008083601f8401126120f357600080fd5b50813567ffffffffffffffff81111561210b57600080fd5b60208301915083602082850101111561212357600080fd5b9250929050565b803560028110611f7657600080fd5b60008060008060008060008060008060006101408c8e03121561215b57600080fd5b6121648c611f6b565b9a5060208c0135995067ffffffffffffffff8060408e0135111561218757600080fd5b6121978e60408f01358f016120e1565b909a5098506121a860608e0161212a565b975060808d0135965060a08d0135955060c08d013594506121cb60e08e01611f6b565b93506121da6101008e01611f6b565b9250806101208e013511156121ee57600080fd5b506122008d6101208e01358e01611fda565b90509295989b509295989b9093969950565b80358015158114611f7657600080fd5b60008060008060008060a0878903121561223b57600080fd5b863567ffffffffffffffff8082111561225357600080fd5b818901915089601f83011261226757600080fd5b81358181111561227657600080fd5b8a60208260051b850101111561228b57600080fd5b6020928301985096505087013593506122a660408801611f6b565b92506122b460608801612212565b91506122c260808801611f6b565b90509295509295509295565b6020808252825182820181905260009190848201906040850190845b8181101561230f5783516001600160a01b0316835292840192918401916001016122ea565b50909695505050505050565b60008060008060008060008060008060006101408c8e03121561233d57600080fd5b8b3561234881611f56565b9a5060208c0135995060408c013567ffffffffffffffff81111561236b57600080fd5b6123778e828f016120e1565b909a50985061238a905060608d0161212a565b965060808c0135955060a08c0135945060c08c0135935060e08c01356123af81611f56565b92506101008c01356123c081611f56565b809250506101208c013590509295989b509295989b9093969950565b6000806000606084860312156123f157600080fd5b83356123fc81611f56565b9250602084013561240c81611f56565b9150604084013561241c81611f56565b809150509250925092565b6000806040838503121561243a57600080fd5b82359150602083013567ffffffffffffffff81111561245857600080fd5b61246485828601611fda565b9150509250929050565b60008060006060848603121561248357600080fd5b833561248e81611f56565b9250602084013561249e81611f56565b929592945050506040919091013590565b6000815180845260005b818110156124d5576020818501810151868301820152016124b9565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061183c60208301846124af565b634e487b7160e01b600052601160045260246000fd5b8181038181111561183f5761183f612508565b60006001820161254357612543612508565b5060010190565b8082018082111561183f5761183f612508565b808202811582820484141761183f5761183f612508565b60008261259157634e487b7160e01b600052601260045260246000fd5b500490565b60a0808252810186905260008760c08301825b898110156125d95782356125bc81611f56565b6001600160a01b03168252602092830192909101906001016125a9565b50602084019790975250506001600160a01b039384166040820152911515606083015290911660809091015292915050565b634e487b7160e01b600052603260045260246000fd5b60008161263057612630612508565b506000190190565b600181811c9082168061264c57607f821691505b60208210810361266c57634e487b7160e01b600052602260045260246000fd5b50919050565b828152604060208201526000611a5460408301846124af565b60006020828403121561269d57600080fd5b81516001600160e01b03198116811461183c57600080fd5b634e487b7160e01b600052602160045260246000fd5b8183823760009101908152919050565b8b81526001600160a01b038b166020820152604081018a90526060810189905261016081016002891061271e57634e487b7160e01b600052602160045260246000fd5b8860808301528760a08301528660c08301528560e083015261274c6101008301866001600160a01b03169052565b6001600160a01b03939093166101208201526101400152999850505050505050505056fea2646970667358221220dc7a76334ac9b4d25615b4c7432c94533d956cdc7471b1665573d16100e5ef6664736f6c63430008140033