0 txs
0 calls
constructor
constructor()
functions
azoriusModule
viewfunction azoriusModule() view returns (address)
BASIS_DENOMINATOR
viewfunction BASIS_DENOMINATOR() view returns (uint256)
basisNumerator
viewfunction basisNumerator() view returns (uint256)
getAllTokenAddresses
viewfunction getAllTokenAddresses() view returns (address[])
getProposalVotes
viewfunction getProposalVotes(uint32 _proposalId) view returns (uint256 noVotes, uint256 yesVotes, uint256 abstainVotes, uint32 startBlock, uint32 endBlock)
getTokenWeight
viewfunction getTokenWeight(address _tokenAddress) view returns (uint256)
getVersion
viewfunction getVersion() view returns (uint16)
getWhitelistedHatIds
viewfunction getWhitelistedHatIds() view returns (uint256[])
hasVoted
viewfunction hasVoted(uint32 _proposalId, address _tokenAddress, uint256 _tokenId) view returns (bool)
hatsContract
viewfunction hatsContract() view returns (address)
isPassed
viewfunction isPassed(uint32 _proposalId) view returns (bool)
isProposer
viewfunction isProposer(address _address) view returns (bool)
isWearingWhitelistedHat
viewfunction isWearingWhitelistedHat(address _address) view returns (bool)
lightAccountFactory
viewfunction lightAccountFactory() view returns (address)
meetsBasis
viewfunction meetsBasis(uint256 _yesVotes, uint256 _noVotes) view returns (bool)
owner
viewfunction owner() view returns (address)
proposalVotes
viewfunction proposalVotes(uint256) view returns (uint32 votingStartBlock, uint32 votingEndBlock, uint256 noVotes, uint256 yesVotes, uint256 abstainVotes)
proposerThreshold
viewfunction proposerThreshold() view returns (uint256)
quorumThreshold
viewfunction quorumThreshold() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenAddresses
viewfunction tokenAddresses(uint256) view returns (address)
tokenWeights
viewfunction tokenWeights(address) view returns (uint256)
votingEndBlock
viewfunction votingEndBlock(uint32 _proposalId) view returns (uint32)
votingPeriod
viewfunction votingPeriod() view returns (uint32)
addGovernanceToken
nonpayablefunction addGovernanceToken(address _tokenAddress, uint256 _weight)
initializeProposal
nonpayablefunction initializeProposal(bytes _data)
removeGovernanceToken
nonpayablefunction removeGovernanceToken(address _tokenAddress)
renounceOwnership
nonpayablefunction renounceOwnership()
setAzorius
nonpayablefunction setAzorius(address _azoriusModule)
setUp
nonpayablefunction setUp(bytes initializeParams)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unwhitelistHat
nonpayablefunction unwhitelistHat(uint256 _hatId)
updateBasisNumerator
nonpayablefunction updateBasisNumerator(uint256 _basisNumerator)
updateProposerThreshold
nonpayablefunction updateProposerThreshold(uint256 _proposerThreshold)
updateQuorumThreshold
nonpayablefunction updateQuorumThreshold(uint256 _quorumThreshold)
updateVotingPeriod
nonpayablefunction updateVotingPeriod(uint32 _votingPeriod)
vote
nonpayablefunction vote(uint32 _proposalId, uint8 _voteType, address[] _tokenAddresses, uint256[] _tokenIds)
whitelistHat
nonpayablefunction whitelistHat(uint256 _hatId)
events
AzoriusSet
event AzoriusSet(address indexed azoriusModule)
BasisNumeratorUpdated
event BasisNumeratorUpdated(uint256 basisNumerator)
GovernanceTokenAdded
event GovernanceTokenAdded(address token, uint256 weight)
GovernanceTokenRemoved
event GovernanceTokenRemoved(address token)
HatUnwhitelisted
event HatUnwhitelisted(uint256 hatId)
HatWhitelisted
event HatWhitelisted(uint256 hatId)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProposalInitialized
event ProposalInitialized(uint32 proposalId, uint32 votingEndBlock)
ProposerThresholdUpdated
event ProposerThresholdUpdated(uint256 proposerThreshold)
QuorumThresholdUpdated
event QuorumThresholdUpdated(uint256 quorumThreshold)
StrategySetUp
event StrategySetUp(address indexed azoriusModule, address indexed owner)
Voted
event Voted(address voter, uint32 proposalId, uint8 voteType, address[] tokenAddresses, uint256[] tokenIds)
VotingPeriodUpdated
event VotingPeriodUpdated(uint32 votingPeriod)
errors
HatAlreadyWhitelisted
error HatAlreadyWhitelisted()
HatNotWhitelisted
error HatNotWhitelisted()
IdAlreadyVoted
error IdAlreadyVoted(uint256 tokenId)
IdNotOwned
error IdNotOwned(uint256 tokenId)
InvalidBasisNumerator
error InvalidBasisNumerator()
InvalidCallData
error InvalidCallData()
InvalidInnerCallDataLength
error InvalidInnerCallDataLength()
InvalidParams
error InvalidParams()
InvalidProposal
error InvalidProposal()
InvalidSmartAccount
error InvalidSmartAccount()
InvalidTokenAddress
error InvalidTokenAddress()
InvalidUserOpCallDataLength
error InvalidUserOpCallDataLength()
InvalidVote
error InvalidVote()
MissingHatsContract
error MissingHatsContract()
NoHatsWhitelisted
error NoHatsWhitelisted()
NoVotingWeight
error NoVotingWeight()
OnlyAzorius
error OnlyAzorius()
TokenAlreadySet
error TokenAlreadySet()
TokenNotSet
error TokenNotSet()
VotingEnded
error VotingEnded()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000054565b6200002662000054565b6200003062000054565b6200003a62000054565b6200004462000054565b6200004e62000054565b62000116565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61265980620001266000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637b7a91dd11610130578063ab2f3ad4116100b8578063d877ee1d1161007c578063d877ee1d146105ab578063deb61c15146105b4578063e5df8b841461062d578063e8575a7f14610640578063f2fde38b1461065357600080fd5b8063ab2f3ad41461050f578063b1d1196f1461052f578063bf7e2c7f14610542578063c0dce37f1461054b578063c909c3b11461055e57600080fd5b8063918f84bf116100ff578063918f84bf146104b057806397e39fef146104c3578063a09c4f68146104d6578063a4f9edbf146104e9578063a77a81d0146104fc57600080fd5b80637b7a91dd146104795780637e902d57146104825780638081be91146104955780638da5cb5b1461049f57600080fd5b80634e2addad116101be57806366b629551161018257806366b62955146104095780636d4ae68014610434578063715018a61461044957806372d75d761461045157806374ec29a01461046657600080fd5b80634e2addad1461032b57806353a8b3201461033e578063544ffc9c1461035157806355a9dbd9146103c6578063589fe72e146103f657600080fd5b8063210a5e8711610205578063210a5e87146102a8578063250aa683146102bb57806333f48a5e146102f257806337938ab31461030557806344cfa6e51461031857600080fd5b806301ffc9a71461023757806302a251a31461025f5780630d8e6e2c146102845780631dc4894714610293575b600080fd5b61024a610245366004611b6e565b610666565b60405190151581526020015b60405180910390f35b606a5461026f9063ffffffff1681565b60405163ffffffff9091168152602001610256565b60405160018152602001610256565b6102a66102a1366004611b98565b610677565b005b6102a66102b6366004611b98565b61068b565b6102e46102c9366004611bc6565b6001600160a01b031660009081526069602052604090205490565b604051908152602001610256565b6102a6610300366004611bf5565b61069c565b6102a6610313366004611bc6565b6106ad565b6102a6610326366004611b98565b6106ff565b6102a6610339366004611ce8565b61081c565b61024a61034c366004611bf5565b610859565b61039661035f366004611b98565b606760205260009081526040902080546001820154600283015460039093015463ffffffff80841694600160201b90940416929085565b6040805163ffffffff9687168152959094166020860152928401919091526060830152608082015260a001610256565b61026f6103d4366004611bf5565b63ffffffff908116600090815260676020526040902054600160201b90041690565b61024a610404366004611bc6565b6108e5565b60655461041c906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b61043c6109c0565b6040516102569190611e1b565b6102a6610a22565b610459610a36565b6040516102569190611e5e565b61024a610474366004611bc6565b610a8d565b6102e4606b5481565b606d5461041c906001600160a01b031681565b6102e4620f424081565b6033546001600160a01b031661041c565b61024a6104be366004611e71565b610a98565b606e5461041c906001600160a01b031681565b6102a66104e4366004611b98565b610aca565b6102a66104f7366004611e93565b610adb565b6102a661050a366004611e93565b610b82565b6102e461051d366004611bc6565b60696020526000908152604090205481565b6102a661053d366004611f28565b610c61565b6102e460665481565b6102a6610559366004611bc6565b610c77565b61024a61056c366004611f54565b63ffffffff831660009081526067602090815260408083206001600160a01b0386168452600401825280832084845290915290205460ff169392505050565b6102e4606c5481565b6105fc6105c2366004611bf5565b63ffffffff908116600090815260676020526040902060018101546002820154600383015492549194909382811692600160201b90041690565b6040805195865260208601949094529284019190915263ffffffff908116606084015216608082015260a001610256565b61041c61063b366004611b98565b610e01565b6102a661064e366004611b98565b610e2b565b6102a6610661366004611bc6565b610e3c565b600061067182610eb7565b92915050565b61067f610edc565b61068881610f36565b50565b610693610edc565b61068881610f72565b6106a4610edc565b61068881610fa7565b6106b5610edc565b606580546001600160a01b0319166001600160a01b0383169081179091556040517fac8d831a6ed53a98387842e08d9e0893c1d478f4a3710b254e22bd58c06b269090600090a250565b610707610edc565b6000805b606f548110156107c55782606f828154811061072957610729611f95565b9060005260206000200154036107b357606f805461074990600190611fc1565b8154811061075957610759611f95565b9060005260206000200154606f828154811061077757610777611f95565b600091825260209091200155606f80548061079457610794611fd4565b60019003818190600052602060002001600090559055600191506107c5565b806107bd81611fea565b91505061070b565b50806107e457604051634b8d041f60e01b815260040160405180910390fd5b6040518281527ffcebee8b5aeaffbed7a0040c626c7f0c6319f022779a749d81fedda71d2a8a4b906020015b60405180910390a15050565b805182511461083e57604051635435b28960e11b815260040160405180910390fd5b6108538461084b33610fef565b858585611015565b50505050565b63ffffffff8082166000908152606760205260408120549091600160201b90910416431180156108b4575063ffffffff8216600090815260676020526040902060038101546002909101546108ae9190612003565b606b5411155b8015610671575063ffffffff8216600090815260676020526040902060028101546001909101546106719190610a98565b6000805b606f548110156109b757606e54606f80546001600160a01b0390921691634352409a9186918590811061091e5761091e611f95565b6000918252602090912001546040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190612016565b156109a55750600192915050565b806109af81611fea565b9150506108e9565b50600092915050565b60606068805480602002602001604051908101604052809291908181526020018280548015610a1857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109fa575b5050505050905090565b610a2a610edc565b610a34600061132c565b565b6060606f805480602002602001604051908101604052809291908181526020018280548015610a1857602002820191906000526020600020905b815481526020019060010190808311610a70575050505050905090565b6000610671826108e5565b6000620f42406066548385610aad9190612003565b610ab79190612038565b610ac1919061204f565b90921192915050565b610ad2610edc565b6106888161137e565b6000806000806000806000806000808a806020019051810190610afe919061214b565b9950995099509950995099509950995099509950610b4b8a8a8a8a8a8a60008b89604051602001610b379998979695949392919061223c565b604051602081830303815290604052611440565b610b758383604051602001610b619291906122b7565b6040516020818303038152906040526114d8565b5050505050505050505050565b6065546001600160a01b03163314610bad576040516358c30ce160e01b815260040160405180910390fd5b600081806020019051810190610bc391906122e3565b606a54909150600090610bdc9063ffffffff1643612300565b63ffffffff838116600081815260676020908152604091829020805467ffffffffffffffff1916600160201b87871690810263ffffffff1916919091174390961695909517905581519283528201929092529192507f80d0ad93bba25e53bf67fa9f2d13df59f04795ec2f91b9b3c1f607666daf9d64910160405180910390a1505050565b610c69610edc565b610c738282611598565b5050565b610c7f610edc565b6001600160a01b0381166000908152606960205260408120549003610cb757604051634b62f01360e01b815260040160405180910390fd5b6001600160a01b0381166000908152606960205260408120819055606854905b81811015610dc75760688181548110610cf257610cf2611f95565b6000918252602090912001546001600160a01b0390811690841603610dbf576000610d1e600184611fc1565b905060688181548110610d3357610d33611f95565b600091825260209091200154606880546001600160a01b039092169184908110610d5f57610d5f611f95565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060688181548110610da057610da0611f95565b600091825260209091200180546001600160a01b031916905550610dc7565b600101610cd7565b506040516001600160a01b03831681527f14236c39816f331325d02993fa15113b739aff01c21ab8f38cc5253205299fb190602001610810565b60688181548110610e1157600080fd5b6000918252602090912001546001600160a01b0316905081565b610e33610edc565b6106888161170c565b610e44610edc565b6001600160a01b038116610eae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6106888161132c565b60006001600160e01b03198216632cfc661d60e11b148061067157506106718261177c565b6033546001600160a01b03163314610a345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ea5565b606c8190556040518181527f48f79e03d92b3595f74bc3c64746cf148e464673dd036633d34f8afb029482c9906020015b60405180910390a150565b606b8190556040518181527fbc589fccf641d342b7853c2c6faca39631d4d19efbe77e71e5611e31678c220e90602001610f67565b606a805463ffffffff191663ffffffff83169081179091556040519081527f70770ce479f70673c3ed8fff63cfb758a6ffdddc30cab7c63d54c8d825e3948890602001610f67565b6000806000610ffd846117a1565b915091508161100e57509192915050565b9392505050565b6000805b83518110156111d157600084828151811061103657611036611f95565b60200260200101519050600084838151811061105457611054611f95565b60200260200101519050816001600160a01b0316636352211e826040518263ffffffff1660e01b815260040161108c91815260200190565b602060405180830381865afa1580156110a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cd9190612324565b6001600160a01b0316886001600160a01b03161461110157604051639b936ae960e01b815260048101829052602401610ea5565b63ffffffff891660009081526067602090815260408083206001600160a01b0386168452600401825280832084845290915290205460ff16151560010361115e57604051639602f71160e01b815260048101829052602401610ea5565b6001600160a01b0382166000908152606960205260409020546111819085612003565b63ffffffff8a1660009081526067602090815260408083206001600160a01b0390961683526004909501815284822093825292909252919020805460ff1916600190811790915590925001611019565b50806000036111f35760405163923d21f560e01b815260040160405180910390fd5b63ffffffff808716600090815260676020526040812080549092600160201b90910416900361123557604051631dc0650160e31b815260040160405180910390fd5b8054600160201b900463ffffffff1643111561126457604051637a19ed0560e01b815260040160405180910390fd5b60ff851661128b57818160010160008282546112809190612003565b909155506112e49050565b60001960ff8616016112ab57818160020160008282546112809190612003565b60011960ff8616016112cb57818160030160008282546112809190612003565b604051636aee863360e11b815260040160405180910390fd5b7f08b8dec2438455807ba4dae88b27939d599858b97389310c0af8f42acd58d620868887878760405161131b959493929190612341565b60405180910390a150505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005b606f548110156113da5781606f828154811061139f5761139f611f95565b9060005260206000200154036113c85760405163634a456360e01b815260040160405180910390fd5b806113d281611fea565b915050611381565b50606f80546001810182556000919091527f39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711018190556040518181527f30590a8684cec4e5a2b48765f391c996b9a004652478a8f41dc46658ccb699ed90602001610f67565b6000806000806000806000806000898060200190518101906114629190612398565b9850985098509850985098509850985098506114aa8989898989898989604051602001611496989796959493929190612461565b6040516020818303038152906040526118b4565b6114cc81606d80546001600160a01b0319166001600160a01b03831617905550565b50505050505050505050565b600080828060200190518101906114ef91906124cc565b90925090506001600160a01b03821661151b5760405163101c05e560e21b815260040160405180910390fd5b606e80546001600160a01b0319166001600160a01b038416179055805160000361155857604051632a2b50e760e01b815260040160405180910390fd5b60005b81518110156108535761158682828151811061157957611579611f95565b602002602001015161137e565b8061159081611fea565b91505061155b565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa1580156115e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116079190612016565b61162457604051630f58058360e11b815260040160405180910390fd5b806000036116455760405163923d21f560e01b815260040160405180910390fd5b6001600160a01b0382166000908152606960205260409020541561167c576040516371168e4f60e11b815260040160405180910390fd5b60688054600181019091557fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b038416908117909155600081815260696020908152604091829020849055815192835282018390527fbf2b7f9fc6e849fdef9ff7366d8b63b608bc69ca778200c53d77372d953dc6b69101610810565b620f424081118061172957506117266002620f424061204f565b81105b15611747576040516302396b6b60e61b815260040160405180910390fd5b60668190556040518181527f406c076eac4d3dde1c5d55793e80239daa8c60ee971390ce3d9f90ca4206295390602001610f67565b60006001600160e01b0319821663250aa68360e01b1480610671575061067182611adf565b600080823b8082036117b95750600093849350915050565b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611813575060408051601f3d908101601f1916820190925261181091810190612324565b60015b6118235750600093849350915050565b606d5460405163119709c360e31b81526001600160a01b038381166004830152600060248301819052921690638cb84e1890604401602060405180830381865afa158015611875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118999190612324565b6001600160a01b039081169616959095149590945092505050565b600054610100900460ff16158080156118d45750600054600160ff909116105b806118ee5750303b1580156118ee575060005460ff166001145b6119515760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ea5565b6000805460ff191660011790558015611974576000805461ff0019166101001790555b60008060008060008060008089806020019051810190611994919061251d565b9750975097509750975097509750975085518751146119c657604051635435b28960e11b815260040160405180910390fd5b60005b8751811015611a1657611a0e8882815181106119e7576119e7611f95565b6020026020010151888381518110611a0157611a01611f95565b6020026020010151611598565b6001016119c9565b50611a1f611b14565b611a2888610e3c565b611a31856106b5565b611a3a83610f72565b611a4382610f36565b611a4c8161170c565b611a5584610fa7565b876001600160a01b0316856001600160a01b03167fca32f512f02914f6bc16a49e786443029061b9adc5a987fd2f6efa56c0116a1660405160405180910390a350505050505050508015610c73576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610810565b60006001600160e01b031982166303639b8b60e21b148061067157506301ffc9a760e01b6001600160e01b0319831614610671565b600054610100900460ff16611b3b5760405162461bcd60e51b8152600401610ea5906125d8565b610a34600054610100900460ff16611b655760405162461bcd60e51b8152600401610ea5906125d8565b610a343361132c565b600060208284031215611b8057600080fd5b81356001600160e01b03198116811461100e57600080fd5b600060208284031215611baa57600080fd5b5035919050565b6001600160a01b038116811461068857600080fd5b600060208284031215611bd857600080fd5b813561100e81611bb1565b63ffffffff8116811461068857600080fd5b600060208284031215611c0757600080fd5b813561100e81611be3565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c5157611c51611c12565b604052919050565b600067ffffffffffffffff821115611c7357611c73611c12565b5060051b60200190565b600082601f830112611c8e57600080fd5b81356020611ca3611c9e83611c59565b611c28565b82815260059290921b84018101918181019086841115611cc257600080fd5b8286015b84811015611cdd5780358352918301918301611cc6565b509695505050505050565b60008060008060808587031215611cfe57600080fd5b8435611d0981611be3565b935060208581013560ff81168114611d2057600080fd5b9350604086013567ffffffffffffffff80821115611d3d57600080fd5b818801915088601f830112611d5157600080fd5b8135611d5f611c9e82611c59565b81815260059190911b8301840190848101908b831115611d7e57600080fd5b938501935b82851015611da5578435611d9681611bb1565b82529385019390850190611d83565b965050506060880135925080831115611dbd57600080fd5b5050611dcb87828801611c7d565b91505092959194509250565b600081518084526020808501945080840160005b83811015611e105781516001600160a01b031687529582019590820190600101611deb565b509495945050505050565b60208152600061100e6020830184611dd7565b600081518084526020808501945080840160005b83811015611e1057815187529582019590820190600101611e42565b60208152600061100e6020830184611e2e565b60008060408385031215611e8457600080fd5b50508035926020909101359150565b60006020808385031215611ea657600080fd5b823567ffffffffffffffff80821115611ebe57600080fd5b818501915085601f830112611ed257600080fd5b813581811115611ee457611ee4611c12565b611ef6601f8201601f19168501611c28565b91508082528684828501011115611f0c57600080fd5b8084840185840137600090820190930192909252509392505050565b60008060408385031215611f3b57600080fd5b8235611f4681611bb1565b946020939093013593505050565b600080600060608486031215611f6957600080fd5b8335611f7481611be3565b92506020840135611f8481611bb1565b929592945050506040919091013590565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561067157610671611fab565b634e487b7160e01b600052603160045260246000fd5b600060018201611ffc57611ffc611fab565b5060010190565b8082018082111561067157610671611fab565b60006020828403121561202857600080fd5b8151801515811461100e57600080fd5b808202811582820484141761067157610671611fab565b60008261206c57634e487b7160e01b600052601260045260246000fd5b500490565b805161207c81611bb1565b919050565b600082601f83011261209257600080fd5b815160206120a2611c9e83611c59565b82815260059290921b840181019181810190868411156120c157600080fd5b8286015b84811015611cdd5780516120d881611bb1565b83529183019183016120c5565b600082601f8301126120f657600080fd5b81516020612106611c9e83611c59565b82815260059290921b8401810191818101908684111561212557600080fd5b8286015b84811015611cdd5780518352918301918301612129565b805161207c81611be3565b6000806000806000806000806000806101408b8d03121561216b57600080fd5b6121748b612071565b995060208b015167ffffffffffffffff8082111561219157600080fd5b61219d8e838f01612081565b9a5060408d01519150808211156121b357600080fd5b6121bf8e838f016120e5565b99506121cd60608e01612071565b98506121db60808e01612140565b975060a08d0151965060c08d015195506121f760e08e01612071565b94506101008d015191508082111561220e57600080fd5b5061221b8d828e016120e5565b92505061222b6101208c01612071565b90509295989b9194979a5092959850565b6001600160a01b038a81168252610120602083018190526000916122628483018d611dd7565b91508382036040850152612276828c611e2e565b998116606085015263ffffffff989098166080840152505060a081019490945260ff9290921660c084015260e0830152909116610100909101529392505050565b6001600160a01b03831681526040602082018190526000906122db90830184611e2e565b949350505050565b6000602082840312156122f557600080fd5b815161100e81611be3565b63ffffffff81811683821601908082111561231d5761231d611fab565b5092915050565b60006020828403121561233657600080fd5b815161100e81611bb1565b6001600160a01b038616815263ffffffff8516602082015260ff8416604082015260a06060820181905260009061237a90830185611dd7565b828103608084015261238c8185611e2e565b98975050505050505050565b60008060008060008060008060006101208a8c0312156123b757600080fd5b89516123c281611bb1565b60208b015190995067ffffffffffffffff808211156123e057600080fd5b6123ec8d838e01612081565b995060408c015191508082111561240257600080fd5b5061240f8c828d016120e5565b97505060608a015161242081611bb1565b955061242e60808b01612140565b945060a08a0151935060c08a0151925060e08a015191506124526101008b01612071565b90509295985092959850929598565b6001600160a01b038981168252610100602083018190526000916124878483018c611dd7565b9150838203604085015261249b828b611e2e565b98166060840152505063ffffffff94909416608085015260a084019290925260c083015260e0909101529392505050565b600080604083850312156124df57600080fd5b82516124ea81611bb1565b602084015190925067ffffffffffffffff81111561250757600080fd5b612513858286016120e5565b9150509250929050565b600080600080600080600080610100898b03121561253a57600080fd5b885161254581611bb1565b60208a015190985067ffffffffffffffff8082111561256357600080fd5b61256f8c838d01612081565b985060408b015191508082111561258557600080fd5b506125928b828c016120e5565b96505060608901516125a381611bb1565b60808a01519095506125b481611be3565b60a08a015160c08b015160e0909b0151999c989b5096999598909790945092505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220d9fbd8da0bcd9ac3fdcae82ad86c82c81963a3c092128d04e7759d50a25040fe64736f6c63430008130033