0 txs
0 calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
calculateAvailableManagerFee
viewfunction calculateAvailableManagerFee(uint256 fundValue) view returns (uint256 fee)
creationTime
viewfunction creationTime() view returns (uint256)
creator
viewfunction creator() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
factory
viewfunction factory() view returns (address)
getExitRemainingCooldown
viewfunction getExitRemainingCooldown(address sender) view returns (uint256 remaining)
getFundSummary
viewfunction getFundSummary() view returns (tuple)
lastDeposit
viewfunction lastDeposit(address) view returns (uint256)
lastExitCooldown
viewfunction lastExitCooldown(address) view returns (uint256)
lastFeeMintTime
viewfunction lastFeeMintTime() view returns (uint256)
lastWhitelistTransfer
viewfunction lastWhitelistTransfer(address) view returns (uint256)
name
viewfunction name() view returns (string)
poolManagerLogic
viewfunction poolManagerLogic() view returns (address)
privatePool
viewfunction privatePool() view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenPrice
viewfunction tokenPrice() view returns (uint256 price)
tokenPriceAtLastFeeMint
viewfunction tokenPriceAtLastFeeMint() view returns (uint256)
tokenPriceWithoutManagerFee
viewfunction tokenPriceWithoutManagerFee() view returns (uint256 price)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(address _asset, uint256 _amount) returns (uint256 liquidityMinted)
depositFor
nonpayablefunction depositFor(address _recipient, address _asset, uint256 _amount) returns (uint256 liquidityMinted)
depositForWithCustomCooldown
nonpayablefunction depositForWithCustomCooldown(address _recipient, address _asset, uint256 _amount, uint256 _cooldown) returns (uint256 liquidityMinted)
execTransaction
nonpayablefunction execTransaction(address to, bytes data) returns (bool success)
execTransactions
nonpayablefunction execTransactions(tuple[] txs)
executeOperation
nonpayablefunction executeOperation(address[] assets, uint256[] amounts, uint256[] premiums, address initiator, bytes params) returns (bool success)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _factory, bool _privatePool, string _fundName, string _fundSymbol)
mintManagerFee
nonpayablefunction mintManagerFee()
onERC721Received
nonpayablefunction onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns (bytes4 magicSelector)
setPoolManagerLogic
nonpayablefunction setPoolManagerLogic(address _poolManagerLogic)
setPoolPrivate
nonpayablefunction setPoolPrivate(bool _privatePool)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
withdraw
nonpayablefunction withdraw(uint256 _fundTokenAmount)
withdrawSafe
nonpayablefunction withdrawSafe(uint256 _fundTokenAmount, tuple[] _complexAssetsData)
withdrawTo
nonpayablefunction withdrawTo(address _recipient, uint256 _fundTokenAmount)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, tuple[] _complexAssetsData)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address fundAddress, address investor, address assetDeposited, uint256 amountDeposited, uint256 valueDeposited, uint256 fundTokensReceived, uint256 totalInvestorFundTokens, uint256 fundValue, uint256 totalSupply, uint256 time)
EntryFeeMinted
event EntryFeeMinted(address manager, uint256 entryFeeAmount)
ExitFeeMinted
event ExitFeeMinted(address manager, uint256 exitFeeAmount)
ManagerFeeMinted
event ManagerFeeMinted(address pool, address manager, uint256 available, uint256 daoFee, uint256 managerFee, uint256 tokenPriceAtLastFeeMint)
PoolManagerLogicSet
event PoolManagerLogicSet(address poolManagerLogic, address from)
PoolPrivacyUpdated
event PoolPrivacyUpdated(bool isPoolPrivate)
TransactionExecuted
event TransactionExecuted(address pool, address manager, uint16 transactionType, uint256 time)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdrawal
event Withdrawal(address fundAddress, address investor, uint256 valueWithdrawn, uint256 fundTokensWithdrawn, uint256 totalInvestorFundTokens, uint256 fundValue, uint256 totalSupply, (address asset, uint256 amount, bool externalWithdrawProcessed)[] withdrawnAssets, uint256 time)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615c0880620000216000396000f3fe608060405234801561001057600080fd5b50600436106101f35760003560e01c8063750226de11610116578063750226de1461038d5780637714f39d146103a057806377806392146103a85780637ae7cfb5146103bb5780637ff9b596146103ce578063920f5c84146103d657806394138e97146103e957806395d89b41146103fc578063a457c2d714610404578063a77134e414610417578063a9059cbb1461041f578063a971a91314610432578063aee8833414610445578063b3db428b14610458578063b8ea2b6e1461046b578063c45a01551461047e578063cc3c6df614610486578063d8270dce1461048e578063dd62ed3e14610496578063de6eb133146104a9578063df8ff12f146104bc576101f3565b806302d05d3f146101f857806306fdde0314610216578063095ea7b31461022b5780630acc7f251461024b578063150b7a021461026057806318160ddd146102805780631c5918d2146102955780631e50a4a6146102aa578063205c2878146102b257806323b872dd146102c557806329d16ee8146102d85780632e1a7d4d146102eb578063313ce567146102fe57806339509351146103135780633babaad51461032657806347e7ef24146103395780635426f81d1461034c57806359b5e75e1461035f57806370a08231146103675780637481de661461037a575b600080fd5b6102006104c4565b60405161020d9190614f97565b60405180910390f35b61021e6104d8565b60405161020d91906152a0565b61023e610239366004614a9e565b61056e565b60405161020d9190615271565b61025e610259366004614e6c565b61058c565b005b61027361026e366004614912565b61059b565b60405161020d919061527c565b610288610706565b60405161020d91906158df565b61029d61070c565b60405161020d9190615808565b61020061084b565b61025e6102c0366004614a9e565b61085a565b61023e6102d33660046148d2565b61093f565b6102886102e6366004614862565b6109c7565b61025e6102f9366004614e3c565b6109d9565b610306610ac0565b60405161020d91906158e8565b61023e610321366004614a9e565b610ac9565b61025e610334366004614d8b565b610b17565b610288610347366004614a9e565b610b9d565b61025e61035a3660046149c7565b610bb2565b61023e610cb9565b610288610375366004614862565b610cc2565b610288610388366004614862565b610ce1565b61025e61039b366004614862565b610cf3565b610288610e3c565b61025e6103b6366004614ac9565b610e42565b61023e6103c9366004614a4c565b610e52565b610288610e9c565b61023e6103e4366004614b6c565b610ed8565b6102886103f7366004614e3c565b6112dd565b61021e611324565b61023e610412366004614a9e565b611385565b6102886113ed565b61023e61042d366004614a9e565b61140c565b61025e610440366004614d4c565b611420565b610288610453366004614862565b6114e4565b6102886104663660046148d2565b6114f6565b610288610479366004614862565b611506565b610200611554565b61025e611563565b6102886116f6565b6102886104a436600461489a565b6116fc565b6102886104b7366004614982565b611727565b61028861180e565b60975461010090046001600160a01b031681565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b600061058261057b611814565b8484611818565b5060015b92915050565b610597338383611904565b5050565b609954604051634f8419b960e01b815260009182916001600160a01b0390911690634f8419b9906105d0908a90600401614f97565b60206040518083038186803b1580156105e857600080fd5b505afa1580156105fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610620919061487e565b90506001600160a01b0381166106515760405162461bcd60e51b8152600401610648906157ac565b60405180910390fd5b6040516306baeff360e11b81526001600160a01b03821690630d75dfe690610685908a908a908a908a908a906004016151a7565b602060405180830381600087803b15801561069f57600080fd5b505af11580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d79190614da7565b6106f35760405162461bcd60e51b815260040161064890615365565b50630a85bd0160e11b9695505050505050565b60355490565b6107146143f7565b6000806000806000610724611ff9565b94509450945094509450604051806101a001604052806107426104d8565b815260200161074f610706565b815260200161075c612098565b8152602001610769612115565b6001600160a01b03168152602001609c60009054906101000a90046001600160a01b03166001600160a01b031663fed4416a6040518163ffffffff1660e01b815260040160006040518083038186803b1580156107c557600080fd5b505afa1580156107d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108019190810190614dc3565b8152609854602082015260975460ff16151560408201526060810196909652608086019490945260a0850181905260c085019190915260e084015261010090920191909152905090565b609c546001600160a01b031681565b6105978282609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156108ad57600080fd5b505afa1580156108c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108e99190810190614c41565b516001600160401b03811180156108ff57600080fd5b5060405190808252806020026020018201604052801561093957816020015b61092661446a565b81526020019060019003908161091e5790505b50611904565b600061094c848484612192565b6109bc84610958611814565b6109b785604051806060016040528060288152602001615afc602891396001600160a01b038a16600090815260346020526040812090610996611814565b6001600160a01b0316815260208101919091526040016000205491906122dd565b611818565b5060015b9392505050565b609b6020526000908152604090205481565b610abd3382609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a2c57600080fd5b505afa158015610a40573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a689190810190614c41565b516001600160401b0381118015610a7e57600080fd5b5060405190808252806020026020018201604052801561093957816020015b610aa561446a565b815260200190600190039081610a9d57905050611904565b50565b60385460ff1690565b6000610582610ad6611814565b846109b78560346000610ae7611814565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612374565b610b1f612115565b6001600160a01b0316336001600160a01b031614610b4f5760405162461bcd60e51b815260040161064890615497565b6097805460ff19168215151790556040517f8d75e9ede4188432084b863d70b3416010c97547dfeb4fc17734d2e997ee0f3990610b8d908390615271565b60405180910390a1610abd6123cc565b60006109c0338484610bad612436565b61247b565b600054610100900460ff1680610bcb5750610bcb612aee565b80610bd9575060005460ff16155b610c145760405162461bcd60e51b815260040180806020018281038252602e815260200180615aad602e913960400191505060405180910390fd5b600054610100900460ff16158015610c3f576000805460ff1961ff0019909116610100171660011790555b610c498383612aff565b610c51612bb4565b609980546001600160a01b0319166001600160a01b0387161790556097805460ff191685151517610100600160a81b0319166101003302179055426098819055609e55670de0b6b3a7640000609a558015610cb2576000805461ff00191690555b5050505050565b60975460ff1681565b6001600160a01b0381166000908152603360205260409020545b919050565b609f6020526000908152604090205481565b6001600160a01b038116610d195760405162461bcd60e51b815260040161064890615547565b6099546001600160a01b0316331480610dc85750609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7b57600080fd5b505afa158015610d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db3919061487e565b6001600160a01b0316336001600160a01b0316145b610de45760405162461bcd60e51b8152600401610648906153e5565b609c80546001600160a01b0319166001600160a01b0383161790556040517f63fb64c359a4cae97e1bf003c1ab11390b5f0e18cc5b3d67b90bd61c0f5c52fd90610e319083903390614fcf565b60405180910390a150565b609a5481565b610e4d838383611904565b505050565b6000610e948484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c5d92505050565b949350505050565b600080610ea7612098565b90506000610ec5610eb7836112dd565b610ebf610706565b90612374565b9050610ed1828261336b565b9250505090565b60006001600160a01b0384163014610f025760405162461bcd60e51b8152600401610648906154e9565b609954604051633f30232f60e21b81526000916001600160a01b03169063fcc08cbc90610f33903390600401614f97565b60206040518083038186803b158015610f4b57600080fd5b505afa158015610f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f83919061487e565b90506001600160a01b0381161580159061101e5750806001600160a01b031663e9d337b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610fd157600080fd5b505afa158015610fe5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611009919061487e565b6001600160a01b0316336001600160a01b0316145b61103a5760405162461bcd60e51b8152600401610648906157da565b60008b8b600081811061104957fe5b905060200201602081019061105e9190614862565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016110899190614f97565b60206040518083038186803b1580156110a157600080fd5b505afa1580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d99190614e54565b90506000826001600160a01b031663989dccf8308f8f60008181106110fa57fe5b905060200201602081019061110f9190614862565b8e8e600081811061111c57fe5b905060200201358d8d600081811061113057fe5b905060200201358b8b6040518763ffffffff1660e01b815260040161115a969594939291906151db565b60006040518083038186803b15801561117257600080fd5b505afa158015611186573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111ae9190810190614d1a565b905060005b8151811015611210576112068282815181106111cb57fe5b6020026020010151602001518383815181106111e357fe5b6020026020010151600001516001600160a01b031661339b90919063ffffffff16565b94506001016111b3565b508c8c600081811061121e57fe5b90506020020160208101906112339190614862565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161125e9190614f97565b60206040518083038186803b15801561127657600080fd5b505afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614e54565b8211156112cd5760405162461bcd60e51b81526004016106489061565b565b5050509998505050505050505050565b6000806000806112eb611ff9565b945050509250925060008061130a87611302610706565b8787876133ce565b90925090506113198282612374565b979650505050505050565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105645780601f1061053957610100808354040283529160200191610564565b6000610582611392611814565b846109b785604051806060016040528060258152602001615bae60259139603460006113bc611814565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906122dd565b60006114076113fa612098565b611402610706565b61336b565b905090565b6000610582611419611814565b8484612192565b60005b81811015610e4d576114c083838381811061143a57fe5b905060200281019061144c919061593a565b61145a906020810190614862565b84848481811061146657fe5b9050602002810190611478919061593a565b6114869060208101906158f6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c5d92505050565b6114dc5760405162461bcd60e51b8152600401610648906155e6565b600101611423565b609d6020526000908152604090205481565b6000610e94848484610bad612436565b6001600160a01b0381166000908152609f6020908152604080832054609b90925282205482916115369190612374565b90504281101561154a576000915050610cdc565b6109c081426134b0565b6099546001600160a01b031681565b600260655414156115a9576040805162461bcd60e51b815260206004820152601f6024820152600080516020615a23833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b1580156115f357600080fd5b505afa158015611607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162b9190614da7565b156116485760405162461bcd60e51b81526004016106489061570c565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790611678903090600401614f97565b60206040518083038186803b15801561169057600080fd5b505afa1580156116a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c89190614da7565b156116e55760405162461bcd60e51b81526004016106489061575d565b6116ed61350d565b50506001606555565b60985481565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609954604051632927233b60e01b81526000916001600160a01b031690632927233b90611758903390600401614f97565b60206040518083038186803b15801561177057600080fd5b505afa158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a89190614da7565b6117c45760405162461bcd60e51b8152600401610648906155c0565b61012c82101580156117dd57506117d9612436565b8211155b6117f95760405162461bcd60e51b815260040161064890615609565b6118058585858561247b565b95945050505050565b609e5481565b3390565b6001600160a01b03831661185d5760405162461bcd60e51b8152600401808060200182810382526024815260200180615b8a6024913960400191505060405180910390fd5b6001600160a01b0382166118a25760405162461bcd60e51b8152600401808060200182810382526022815260200180615a656022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6002606554141561194a576040805162461bcd60e51b815260206004820152601f6024820152600080516020615a23833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561199457600080fd5b505afa1580156119a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cc9190614da7565b156119e95760405162461bcd60e51b81526004016106489061570c565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790611a19903090600401614f97565b60206040518083038186803b158015611a3157600080fd5b505afa158015611a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a699190614da7565b15611a865760405162461bcd60e51b81526004016106489061575d565b336000908152609b60205260409020544211611ab45760405162461bcd60e51b8152600401610648906156b1565b81611abe33610cc2565b1015611adc5760405162461bcd60e51b8152600401610648906154bd565b611ae4614494565b611af683611af0610706565b906134b0565b808252620186a0111580611b0957508051155b611b255760405162461bcd60e51b8152600401610648906152b3565b611b2d61350d565b60408301526020820152600080611b42611ff9565b945094505050506000821115611bf3576000611b6882611b6288866137a8565b90613801565b9050611b7486826134b0565b8451909650611b839082612374565b84526000611b8f612115565b9050611b9b818361140c565b611bb75760405162461bcd60e51b815260040161064890615570565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab8183604051611be8929190615258565b60405180910390a150505b50506000611c14611c02610706565b611b6286670de0b6b3a76400006137a8565b9050611c203385613865565b611c28610706565b611c3957670de0b6b3a7640000609a555b609c546040805163e5406dbf60e01b815290516000926001600160a01b03169163e5406dbf9160048083019286929190829003018186803b158015611c7d57600080fd5b505afa158015611c91573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cb99190810190614c41565b9050600081516001600160401b0381118015611cd457600080fd5b50604051908082528060200260200182016040528015611d0e57816020015b611cfb6144b5565b815260200190600190039081611cf35790505b5090506000805b8351811015611e4e576000806000611d59878581518110611d3257fe5b6020026020010151600001518d8a8d8881518110611d4c57fe5b602002602001015161394f565b919450925090508115611dee576001600160a01b038316611d8c5760405162461bcd60e51b81526004016106489061538b565b611dec63a9059cbb60e01b8d84604051602401611daa929190615258565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b0385169061339b565b505b8080611dfa5750600082115b15611e43576040518060600160405280846001600160a01b03168152602001838152602001821515815250868681518110611e3157fe5b60209081029190910101526001909401935b505050600101611d15565b508251600090611e5e90836134b0565b90508083510383526000611e8b670de0b6b3a7640000611b628960200151896137a890919063ffffffff16565b9050611e9e8166038d7ea4c68000612374565b609c54604080516335fd4a6360e11b81529051611f29926001600160a01b031691636bfa94c69160048083019260209291908290030181600087803b158015611ee657600080fd5b505af1158015611efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e9190614e54565b60208a0151906134b0565b1115611f475760405162461bcd60e51b815260040161064890615598565b611f4f610706565b60408801518851611f5f91612374565b14611f7c5760405162461bcd60e51b81526004016106489061551e565b7ffad3d7f9ed107ffa7fc8ce8baa521effc3650ec48a4d1dd36bdb9c4b91db12953033838c611faa33610cc2565b60208d0151611fb990886134b0565b611fc1610706565b8b42604051611fd899989796959493929190614fe9565b60405180910390a1611fe86123cc565b505060016065555050505050505050565b6000806000806000609c60009054906101000a90046001600160a01b03166001600160a01b031663ced72f876040518163ffffffff1660e01b815260040160a06040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190614ed3565b939992985090965094509092509050565b609c5460408051632b583ff360e21b815290516000926001600160a01b03169163ad60ffcc916004808301926020929190829003018186803b1580156120dd57600080fd5b505afa1580156120f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114079190614e54565b609c546040805163481c6a7560e01b815290516000926001600160a01b03169163481c6a75916004808301926020929190829003018186803b15801561215a57600080fd5b505afa15801561216e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611407919061487e565b6001600160a01b0383166121d75760405162461bcd60e51b8152600401808060200182810382526025815260200180615b656025913960400191505060405180910390fd5b6001600160a01b03821661221c5760405162461bcd60e51b8152600401808060200182810382526023815260200180615a006023913960400191505060405180910390fd5b612227838383613e29565b61226481604051806060016040528060268152602001615a87602691396001600160a01b03861660009081526033602052604090205491906122dd565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546122939082612374565b6001600160a01b038084166000818152603360209081526040918290209490945580518581529051919392871692600080516020615b2483398151915292918290030190a3505050565b6000818484111561236c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612331578181015183820152602001612319565b50505050905090810190601f16801561235e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156109c0576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b609960009054906101000a90046001600160a01b03166001600160a01b03166325c4121b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561241c57600080fd5b505af1158015612430573d6000803e3d6000fd5b50505050565b609954604080516308a0361160e31b815290516000926001600160a01b031691634501b088916004808301926020929190829003018186803b1580156120dd57600080fd5b6000600260655414156124c3576040805162461bcd60e51b815260206004820152601f6024820152600080516020615a23833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561250d57600080fd5b505afa158015612521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125459190614da7565b156125625760405162461bcd60e51b81526004016106489061570c565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790612592903090600401614f97565b60206040518083038186803b1580156125aa57600080fd5b505afa1580156125be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e29190614da7565b156125ff5760405162461bcd60e51b81526004016106489061575d565b6000612609612115565b9050806001600160a01b0316866001600160a01b0316148061262e575060975460ff16155b8061263d575061263d86613efc565b6126595760405162461bcd60e51b815260040161064890615471565b609c5460405163bdbef07d60e01b81526001600160a01b039091169063bdbef07d90612689908890600401614f97565b60206040518083038186803b1580156126a157600080fd5b505afa1580156126b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d99190614da7565b6126f55760405162461bcd60e51b815260040161064890615682565b600080866001600160a01b03166175306301ffc9a760e01b6380ac58cd60e01b604051602401612725919061527c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516127639190614f7b565b6000604051808303818686fa925050503d806000811461279f576040519150601f19603f3d011682016040523d82523d6000602084013e6127a4565b606091505b50915091508115806127c75750808060200190518101906127c59190614da7565b155b6127e35760405162461bcd60e51b815260040161064890615339565b505060006127ef61350d565b50905060006127fc610706565b90506128606323b872dd60e01b33308960405160240161281e93929190614fab565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b0389169061339b565b50600061286d8888613f7d565b9050811561288a5761288383611b6283856137a8565b945061288e565b8094505b600080612899611ff9565b94505093505050600082111561290c5760006128b982611b628a866137a8565b90506128c588826134b0565b97506128d18782614000565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb38782604051612902929190615258565b60405180910390a1505b620186a087101561292f5760405162461bcd60e51b815260040161064890615308565b6129398b88614000565b50506129766129478a610cc2565b6001600160a01b038b166000908152609f6020908152604080832054609b9092529091205488918a91426140e0565b6001600160a01b038a166000908152609f6020908152604080832093909355609b90529081204290556129a88a610cc2565b905060006129b68584612374565b905060006129c2610706565b9050609c60009054906101000a90046001600160a01b03166001600160a01b03166350b721a76040518163ffffffff1660e01b815260040160206040518083038186803b158015612a1257600080fd5b505afa158015612a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4a9190614e54565b612a6a670de0b6b3a7640000611b62612a63868661336b565b87906137a8565b1015612a885760405162461bcd60e51b815260040161064890615782565b7f97e6c213c123075e233a6f2323f33d8319141b993ab05e9e2f7eb2eda08cb944308d8d8d888d89898942604051612ac99a99989796959493929190615092565b60405180910390a150612ada6123cc565b505060016065555092979650505050505050565b6000612af93061418e565b15905090565b600054610100900460ff1680612b185750612b18612aee565b80612b26575060005460ff16155b612b615760405162461bcd60e51b815260040180806020018281038252602e815260200180615aad602e913960400191505060405180910390fd5b600054610100900460ff16158015612b8c576000805460ff1961ff0019909116610100171660011790555b612b94614194565b612b9e8383614234565b8015610e4d576000805461ff0019169055505050565b600054610100900460ff1680612bcd5750612bcd612aee565b80612bdb575060005460ff16155b612c165760405162461bcd60e51b815260040180806020018281038252602e815260200180615aad602e913960400191505060405180910390fd5b600054610100900460ff16158015612c41576000805460ff1961ff0019909116610100171660011790555b612c4961430c565b8015610abd576000805461ff001916905550565b600060026065541415612ca5576040805162461bcd60e51b815260206004820152601f6024820152600080516020615a23833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015612cef57600080fd5b505afa158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d279190614da7565b15612d445760405162461bcd60e51b81526004016106489061570c565b6001600160a01b038316612d6a5760405162461bcd60e51b815260040161064890615547565b609954604051634f8419b960e01b81526000916001600160a01b031690634f8419b990612d9b908790600401614f97565b60206040518083038186803b158015612db357600080fd5b505afa158015612dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612deb919061487e565b905060008080806001600160a01b03851615612e9157609c54604051636179309d60e01b81528694506001600160a01b0380861692636179309d92612e3a92909116908c908c906004016150e8565b6040805180830381600087803b158015612e5357600080fd5b505af1158015612e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8b9190614e08565b90925090505b61ffff821661315a57609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90612eca908b90600401614f97565b60206040518083038186803b158015612ee257600080fd5b505afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a919061487e565b93506001600160a01b03841661302e576099546040805163795053d360e01b815290516000926001600160a01b03169163795053d3916004808301926020929190829003018186803b158015612f6f57600080fd5b505afa158015612f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa7919061487e565b60405162a950c360e81b81529091506001600160a01b0382169063a950c30090612fd690600090600401615291565b60206040518083038186803b158015612fee57600080fd5b505afa158015613002573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613026919061487e565b9450506130ca565b609c54604051634df48c7360e11b81526001600160a01b0390911690639be918e69061305e908b90600401614f97565b60206040518083038186803b15801561307657600080fd5b505afa15801561308a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ae9190614da7565b6130ca5760405162461bcd60e51b815260040161064890615633565b609c54604051636179309d60e01b81528594506001600160a01b0380861692636179309d9261310392909116908c908c906004016150e8565b6040805180830381600087803b15801561311c57600080fd5b505af1158015613130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131549190614e08565b90925090505b60008261ffff161161317e5760405162461bcd60e51b8152600401610648906153b8565b80806131a2575061318d612115565b6001600160a01b0316336001600160a01b0316145b806131c557506131b06143b2565b6001600160a01b0316336001600160a01b0316145b6131e15760405162461bcd60e51b81526004016106489061543b565b6131f46001600160a01b0389168861339b565b60408051600481526024810182526020810180516001600160e01b0316637bf9811960e01b179052905191975060009182916001600160a01b0387169161323b9190614f7b565b6000604051808303816000865af19150503d8060008114613278576040519150601f19603f3d011682016040523d82523d6000602084013e61327d565b606091505b509150915081801561329e57508080602001905181019061329e9190614da7565b1561330c57609c54604051637b364ee960e11b81526001600160a01b038781169263f66c9dd2926132d992909116908e908e906004016150e8565b600060405180830381600087803b1580156132f357600080fd5b505af1158015613307573d6000803e3d6000fd5b505050505b7f14464fb67b1871a79e726fa7af525f8fff56e9e5649d511e47f3a357ae31d20730613336612115565b86426040516133489493929190615114565b60405180910390a16133586123cc565b5050600160655550939695505050505050565b6000811580613378575082155b1561338557506000610586565b6109c082611b6285670de0b6b3a76400006137a8565b60008060008351602085016000875af190508015600181146133bc576133c7565b3d806000803e806000fd5b5092915050565b6000808515806133dc575086155b156133ec575060009050806134a6565b600061340487611b628a670de0b6b3a76400006137a8565b9050609a5481111561346757600061344a61342786670de0b6b3a76400006137a8565b611b628a6134448b613444609a54896134b090919063ffffffff16565b906137a8565b90506134636134598a836134b0565b611b62838b6137a8565b9350505b609e54156134a4576000613486609e54426134b090919063ffffffff16565b90506134a06301e13380611b6287818a6134448e886137a8565b9250505b505b9550959350505050565b600082821115613507576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080609c60009054906101000a90046001600160a01b03166001600160a01b0316636bfa94c66040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561356057600080fd5b505af1158015613574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135989190614e54565b915060006135a4610706565b905060008060006135b3611ff9565b94505050925092506000806135cb88878787876133ce565b90925090506135da8282612374565b6099546040805163272b69b960e21b81528151939a5060009384936001600160a01b031692639cada6e49260048082019391829003018186803b15801561362057600080fd5b505afa158015613634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136589190614eb0565b9092509050600061366d82611b628c866137a8565b9050600061367b8b836134b0565b905060006136898d8c61336b565b905080609a54101561369b57609a8190555b85156136a65742609e555b8215613730576099546040805163084c71a360e21b81529051613730926001600160a01b031691632131c68c916004808301926020929190829003018186803b1580156136f257600080fd5b505afa158015613706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372a919061487e565b84614000565b811561374757613747613741612115565b83614000565b7f755a8059d66d8d243bc9f6913f429a811f154599d0538bb0b6a2ac23f23d2ccd30613771612115565b8e8686609a5460405161378996959493929190615222565b60405180910390a16137996123cc565b50505050505050505050509091565b6000826137b757506000610586565b828202828482816137c457fe5b04146109c05760405162461bcd60e51b8152600401808060200182810382526021815260200180615adb6021913960400191505060405180910390fd5b6000808211613854576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b81838161385d57fe5b049392505050565b6001600160a01b0382166138aa5760405162461bcd60e51b8152600401808060200182810382526021815260200180615b446021913960400191505060405180910390fd5b6138b682600083613e29565b6138f381604051806060016040528060228152602001615a43602291396001600160a01b03851660009081526033602052604090205491906122dd565b6001600160a01b03831660009081526033602052604090205560355461391990826134b0565b6035556040805182815290516000916001600160a01b03851691600080516020615b248339815191529181900360200190a35050565b600080600061395c6144d5565b609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc9061398c908b90600401614f97565b60206040518083038186803b1580156139a457600080fd5b505afa1580156139b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139dc919061487e565b6001600160a01b031660608201819052613a085760405162461bcd60e51b815260040161064890615736565b613a9a670de0b6b3a7640000611b628884606001516001600160a01b031663d4fac45d308e6040518363ffffffff1660e01b8152600401613a4a929190614fcf565b60206040518083038186803b158015613a6257600080fd5b505afa158015613a76573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134449190614e54565b808252613aa8908990613f7d565b6020808301919091528501515160609015613b885785516001600160a01b038a8116911614613ae95760405162461bcd60e51b8152600401610648906152dc565b6060820151602087015160405163056f626f60e01b81526001600160a01b039092169163056f626f91613b269130918e918d918f9160040161516c565b600060405180830381600087803b158015613b4057600080fd5b505af1158015613b54573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b7c9190810190614b1f565b91965094509050613c23565b81606001516001600160a01b0316636f8ae202308b8a8c6040518563ffffffff1660e01b8152600401613bbe9493929190615141565b600060405180830381600087803b158015613bd857600080fd5b505af1158015613bec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c149190810190614b1f565b60016040860152919650945090505b80518015613da25760006001600160a01b03871615613cbb576040516370a0823160e01b81526001600160a01b038816906370a0823190613c68903090600401614f97565b60206040518083038186803b158015613c8057600080fd5b505afa158015613c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cb89190614e54565b90505b60005b82811015613cf757613ced848281518110613cd557fe5b6020026020010151602001518583815181106111e357fe5b9550600101613cbe565b506001600160a01b03871615613da0576040516370a0823160e01b81526000906001600160a01b038916906370a0823190613d36903090600401614f97565b60206040518083038186803b158015613d4e57600080fd5b505afa158015613d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d869190614e54565b9050613d9c613d9582846134b0565b8890612374565b9650505b505b82604001518015613db65750604087015115155b8015613dca57506001600160a01b03861615155b15613e1c57613df4612710611b6289604001516127100386602001516137a890919063ffffffff16565b613dfe8787613f7d565b1015613e1c5760405162461bcd60e51b8152600401610648906156dc565b5050509450945094915050565b613e34838383610e4d565b6001600160a01b038316613e4757610e4d565b609954604051637065accb60e11b81526001600160a01b039091169063e0cb599690613e77908590600401614f97565b60206040518083038186803b158015613e8f57600080fd5b505afa158015613ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ec79190614da7565b151560011415613ed657610e4d565b613edf83611506565b15610e4d5760405162461bcd60e51b815260040161064890615412565b609c5460405163bbbf725b60e01b81526000916001600160a01b03169063bbbf725b90613f2d908590600401614f97565b60206040518083038186803b158015613f4557600080fd5b505afa158015613f59573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190614da7565b609c546040516314e03fdd60e11b81526000916001600160a01b0316906329c07fba90613fb09086908690600401615258565b60206040518083038186803b158015613fc857600080fd5b505afa158015613fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190614e54565b6001600160a01b03821661405b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61406760008383613e29565b6035546140749082612374565b6035556001600160a01b03821660009081526033602052604090205461409a9082612374565b6001600160a01b0383166000818152603360209081526040808320949094558351858152935192939192600080516020615b248339815191529281900390910190a35050565b6000806140ed8486612374565b905060008382106141075761410282856134b0565b61410a565b60005b905088158015614118575087155b156141265760009250614182565b8861413357869250614182565b87158061413f57508087105b1561414c57809250614182565b600061416082610ebf8c611b628c8e6137a8565b905087811161417c5780614175576001614177565b805b61417e565b875b9350505b50509695505050505050565b3b151590565b600054610100900460ff16806141ad57506141ad612aee565b806141bb575060005460ff16155b6141f65760405162461bcd60e51b815260040180806020018281038252602e815260200180615aad602e913960400191505060405180910390fd5b600054610100900460ff16158015612c49576000805460ff1961ff0019909116610100171660011790558015610abd576000805461ff001916905550565b600054610100900460ff168061424d575061424d612aee565b8061425b575060005460ff16155b6142965760405162461bcd60e51b815260040180806020018281038252602e815260200180615aad602e913960400191505060405180910390fd5b600054610100900460ff161580156142c1576000805460ff1961ff0019909116610100171660011790555b82516142d4906036906020860190614508565b5081516142e8906037906020850190614508565b506038805460ff191660121790558015610e4d576000805461ff0019169055505050565b600054610100900460ff16806143255750614325612aee565b80614333575060005460ff16155b61436e5760405162461bcd60e51b815260040180806020018281038252602e815260200180615aad602e913960400191505060405180910390fd5b600054610100900460ff16158015614399576000805460ff1961ff0019909116610100171660011790555b60016065558015610abd576000805461ff001916905550565b609c5460408051631758078b60e01b815290516000926001600160a01b031691631758078b916004808301926020929190829003018186803b15801561215a57600080fd5b604051806101a0016040528060608152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160001515815260200160006001600160a01b031681525090565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261453e5760008555614584565b82601f1061455757805160ff1916838001178555614584565b82800160010185558215614584579182015b82811115614584578251825591602001919060010190614569565b50614590929150614594565b5090565b5b808211156145905760008155600101614595565b60006145bc6145b78461598f565b61594f565b90508281528383830111156145d057600080fd5b828260208301376000602084830101529392505050565b60006145f56145b78461598f565b905082815283838301111561460957600080fd5b6109c08360208301846159b0565b60008083601f840112614628578182fd5b5081356001600160401b0381111561463e578182fd5b602083019150836020808302850101111561465857600080fd5b9250929050565b600082601f83011261466f578081fd5b8135602061467f6145b783615972565b82815281810190858301855b8581101561472e5781358801606080601f19838d030112156146ab578889fd5b604080518281016001600160401b0382821081831117156146c857fe5b908352848a0135906146d9826159dc565b9082528483013590808211156146ed578c8dfd5b508401603f81018e136146fe578b8cfd5b61470e8e8b8301358584016145a9565b828b0152509290910135908201528452928401929084019060010161468b565b5090979650505050505050565b600082601f83011261474b578081fd5b8151602061475b6145b783615972565b82815281810190858301855b8581101561472e5781518801604080601f19838d03011215614787578889fd5b80518181016001600160401b0382821081831117156147a257fe5b90835283890151906147b3826159dc565b9082528383015190808211156147c7578b8cfd5b508084019350508b603f8401126147dc57898afd5b6147ec8c898501518486016145e7565b81890152865250509284019290840190600101614767565b60008083601f840112614815578182fd5b5081356001600160401b0381111561482b578182fd5b60208301915083602082850101111561465857600080fd5b600082601f830112614853578081fd5b6109c0838335602085016145a9565b600060208284031215614873578081fd5b81356109c0816159dc565b60006020828403121561488f578081fd5b81516109c0816159dc565b600080604083850312156148ac578081fd5b82356148b7816159dc565b915060208301356148c7816159dc565b809150509250929050565b6000806000606084860312156148e6578081fd5b83356148f1816159dc565b92506020840135614901816159dc565b929592945050506040919091013590565b600080600080600060808688031215614929578283fd5b8535614934816159dc565b94506020860135614944816159dc565b93506040860135925060608601356001600160401b03811115614965578182fd5b61497188828901614804565b969995985093965092949392505050565b60008060008060808587031215614997578182fd5b84356149a2816159dc565b935060208501356149b2816159dc565b93969395505050506040820135916060013590565b600080600080608085870312156149dc578182fd5b84356149e7816159dc565b935060208501356149f7816159f1565b925060408501356001600160401b0380821115614a12578384fd5b614a1e88838901614843565b93506060870135915080821115614a33578283fd5b50614a4087828801614843565b91505092959194509250565b600080600060408486031215614a60578081fd5b8335614a6b816159dc565b925060208401356001600160401b03811115614a85578182fd5b614a9186828701614804565b9497909650939450505050565b60008060408385031215614ab0578182fd5b8235614abb816159dc565b946020939093013593505050565b600080600060608486031215614add578081fd5b8335614ae8816159dc565b92506020840135915060408401356001600160401b03811115614b09578182fd5b614b158682870161465f565b9150509250925092565b600080600060608486031215614b33578081fd5b8351614b3e816159dc565b6020850151604086015191945092506001600160401b03811115614b60578182fd5b614b158682870161473b565b600080600080600080600080600060a08a8c031215614b89578687fd5b89356001600160401b0380821115614b9f578889fd5b614bab8d838e01614617565b909b50995060208c0135915080821115614bc3578889fd5b614bcf8d838e01614617565b909950975060408c0135915080821115614be7578586fd5b614bf38d838e01614617565b909750955060608c01359150614c08826159dc565b90935060808b01359080821115614c1d578384fd5b50614c2a8c828d01614804565b915080935050809150509295985092959850929598565b60006020808385031215614c53578182fd5b82516001600160401b0380821115614c69578384fd5b818501915085601f830112614c7c578384fd5b8151614c8a6145b782615972565b818152848101908486016040808502870188018b1015614ca8578889fd5b8896505b84871015614d0b5780828c031215614cc2578889fd5b80518181018181108882111715614cd557fe5b82528251614ce2816159dc565b815282890151614cf1816159f1565b818a01528452600196909601959287019290810190614cac565b50909998505050505050505050565b600060208284031215614d2b578081fd5b81516001600160401b03811115614d40578182fd5b610e948482850161473b565b60008060208385031215614d5e578182fd5b82356001600160401b03811115614d73578283fd5b614d7f85828601614617565b90969095509350505050565b600060208284031215614d9c578081fd5b81356109c0816159f1565b600060208284031215614db8578081fd5b81516109c0816159f1565b600060208284031215614dd4578081fd5b81516001600160401b03811115614de9578182fd5b8201601f81018413614df9578182fd5b610e94848251602084016145e7565b60008060408385031215614e1a578182fd5b825161ffff81168114614e2b578283fd5b60208401519092506148c7816159f1565b600060208284031215614e4d578081fd5b5035919050565b600060208284031215614e65578081fd5b5051919050565b60008060408385031215614e7e578182fd5b8235915060208301356001600160401b03811115614e9a578182fd5b614ea68582860161465f565b9150509250929050565b60008060408385031215614ec2578182fd5b505080516020909101519092909150565b600080600080600060a08688031215614eea578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452614f678160208601602086016159b0565b601f01601f19169290920160200192915050565b60008251614f8d8184602087016159b0565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b600061012080830160018060a01b03808e1685526020818e168187015260408d8188015260608d818901528c60808901528b60a08901528a60c08901528560e0890152849550895180865261014089019650838b019550875b8181101561507357865180518716895285810151868a01528401511515848901529682019695840195600101615042565b505050505061010094909401949094529b9a5050505050505050505050565b6001600160a01b039a8b168152988a1660208a01529690981660408801526060870194909452608086019290925260a085015260c084015260e08301526101008201929092526101208101919091526101400190565b6001600160a01b0384811682528316602082015260606040820181905260009061180590830184614f4f565b6001600160a01b03948516815292909316602083015261ffff166040820152606081019190915260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b0386811682528581166020830152604082018590528316606082015260a06080820181905260009061131990830184614f4f565b6001600160a01b03868116825285166020820152604081018490526080606082018190526000906113199083018486614f25565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906152169083018486614f25565b98975050505050505050565b6001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6001600160e01b031991909116815260200190565b61ffff91909116815260200190565b6000602082526109c06020830184614f4f565b6020808252600f908201526e18995b1bddc81d1a1c995cda1bdb19608a1b604082015260600190565b602080825260129082015271696e76616c6964206173736574206461746160701b604082015260600190565b6020808252601790820152761a5b9d985b1a59081b1a5c5d5a591a5d1e535a5b9d1959604a1b604082015260600190565b6020808252601290820152711391951cc81b9bdd081cdd5c1c1bdc9d195960721b604082015260600190565b6020808252600c908201526b1b9bdd081d995c9a599a595960a21b604082015260600190565b6020808252601390820152721b995959081dda5d1a191c985dc8185cdcd95d606a1b604082015260600190565b60208082526013908201527234b73b30b634b2103a3930b739b0b1ba34b7b760691b604082015260600190565b6020808252601390820152726f6e6c79206f776e65722c20666163746f727960681b604082015260600190565b6020808252600f908201526e636f6f6c646f776e2061637469766560881b604082015260600190565b6020808252601c908201527b6f6e6c79206d616e616765722c207472616465722c207075626c696360201b604082015260600190565b6020808252600c908201526b6f6e6c79206d656d6265727360a01b604082015260600190565b6020808252600c908201526b37b7363c9036b0b730b3b2b960a11b604082015260600190565b6020808252601290820152716e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601b908201527a37b7363c903837b7b610333630b9b4103637b0b71037b934b3b4b760291b604082015260600190565b6020808252600f908201526e0e6eae0e0d8f240dad2e6dac2e8c6d608b1b604082015260600190565b6020808252600f908201526e696e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d195e1a5d1199594819985a5b195960921b604082015260600190565b6020808252600e908201526d0ecc2d8eaca40dad2e6dac2e8c6d60931b604082015260600190565b6020808252600c908201526b1bdb9b1e48185b1b1bddd95960a21b604082015260600190565b6020808252600990820152681d1e0819985a5b195960ba1b604082015260600190565b60208082526010908201526f34b73b30b634b21031b7b7b63237bbb760811b604082015260600190565b6020808252600e908201526d185cdcd95d08191a5cd8589b195960921b604082015260600190565b6020808252600d908201526c6869676820736c69707061676560981b604082015260600190565b6020808252601590820152741a5b9d985b1a590819195c1bdcda5d08185cdcd95d605a1b604082015260600190565b60208082526011908201527031b0b7103bb4ba34323930bb9039b7b7b760791b604082015260600190565b6020808252601690820152756869676820776974686472617720736c69707061676560501b604082015260600190565b60208082526010908201526f18dbdb9d1c9858dd1cc81c185d5cd95960821b604082015260600190565b6020808252600d908201526c1a5b9d985b1a590819dd585c99609a1b604082015260600190565b6020808252600b908201526a1c1bdbdb081c185d5cd95960aa1b604082015260600190565b60208082526010908201526f1b995959081b5a5b8819195c1bdcda5d60821b604082015260600190565b6020808252601490820152736f6e6c792067756172646564206164647265737360601b604082015260600190565b6020808252601490820152731a5b9d985b1a59081b195b991a5b99c81c1bdbdb60621b604082015260600190565b60006020825282516101a08060208501526158276101c0850183614f4f565b91506020850151604085015260408501516060850152606085015161584f6080860182614f12565b506080850151848303601f190160a086015261586b8382614f4f565b92505060a085015160c085015260c085015161588a60e0860182614f1f565b5060e08501516101008581019190915285015161012080860191909152850151610140808601919091528501516101608086019190915285015161018080860191909152909401519390920192909252919050565b90815260200190565b60ff91909116815260200190565b6000808335601e1984360301811261590c578283fd5b8301803591506001600160401b03821115615925578283fd5b60200191503681900382131561465857600080fd5b60008235603e19833603018112614f8d578182fd5b6040518181016001600160401b038111828210171561596a57fe5b604052919050565b60006001600160401b0382111561598557fe5b5060209081020190565b60006001600160401b038211156159a257fe5b50601f01601f191660200190565b60005b838110156159cb5781810151838201526020016159b3565b838111156124305750506000910152565b6001600160a01b0381168114610abd57600080fd5b8015158114610abd57600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204d06efe46ba21d1833004236ac2a6b830e963152f1e5c1f57510f62ecbcce3da64736f6c63430007060033