0 txs
44.2k 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 _depositor) 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)
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 recipient, uint256 entryFeeAmount)
ExitFeeMinted
event ExitFeeMinted(address recipient, 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
0x608060405234801561001057600080fd5b50615eb880620000216000396000f3fe608060405234801561001057600080fd5b50600436106101e85760003560e01c8063750226de1161010b578063750226de146103825780637714f39d14610395578063778063921461039d5780637ae7cfb5146103b05780637ff9b596146103c3578063920f5c84146103cb57806394138e97146103de57806395d89b41146103f1578063a457c2d7146103f9578063a77134e41461040c578063a9059cbb14610414578063a971a91314610427578063aee883341461043a578063b8ea2b6e1461044d578063c45a015514610460578063cc3c6df614610468578063d8270dce14610470578063dd62ed3e14610478578063de6eb1331461048b578063df8ff12f1461049e576101e8565b806302d05d3f146101ed57806306fdde031461020b578063095ea7b3146102205780630acc7f2514610240578063150b7a021461025557806318160ddd146102755780631c5918d21461028a5780631e50a4a61461029f578063205c2878146102a757806323b872dd146102ba57806329d16ee8146102cd5780632e1a7d4d146102e0578063313ce567146102f357806339509351146103085780633babaad51461031b57806347e7ef241461032e5780635426f81d1461034157806359b5e75e1461035457806370a082311461035c5780637481de661461036f575b600080fd5b6101f56104a6565b60405161020291906153f1565b60405180910390f35b6102136104ba565b60405161020291906156fa565b61023361022e366004614e46565b610550565b60405161020291906156cb565b61025361024e3660046152c6565b61056e565b005b610268610263366004614cba565b61057d565b60405161020291906156d6565b61027d6106e8565b6040516102029190615b41565b6102926106ee565b6040516102029190615a6a565b6101f561082d565b6102536102b5366004614e46565b61083c565b6102336102c8366004614c7a565b610921565b61027d6102db366004614c0a565b6109a9565b6102536102ee366004615296565b6109bb565b6102fb610aa2565b6040516102029190615b98565b610233610316366004614e46565b610aab565b610253610329366004615133565b610af9565b61027d61033c366004614e46565b610b7f565b61025361034f366004614d6f565b610b94565b610233610c9b565b61027d61036a366004614c0a565b610ca4565b61027d61037d366004614c0a565b610cc3565b610253610390366004614c0a565b610cd5565b61027d610e1e565b6102536103ab366004614e71565b610e24565b6102336103be366004614df4565b610e34565b61027d610e7e565b6102336103d9366004614f14565b610eba565b61027d6103ec366004615296565b6112e4565b61021361132b565b610233610407366004614e46565b61138c565b61027d6113f4565b610233610422366004614e46565b611413565b6102536104353660046150f4565b611427565b61027d610448366004614c0a565b6114d0565b61027d61045b366004614c0a565b6114e2565b6101f5611530565b61025361153f565b61027d6116d1565b61027d610486366004614c42565b6116d7565b61027d610499366004614d2a565b611702565b61027d6117e9565b60975461010090046001600160a01b031681565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105465780601f1061051b57610100808354040283529160200191610546565b820191906000526020600020905b81548152906001019060200180831161052957829003601f168201915b5050505050905090565b600061056461055d6117ef565b84846117f3565b5060015b92915050565b6105793383836118df565b5050565b609954604051634f8419b960e01b815260009182916001600160a01b0390911690634f8419b9906105b2908a906004016153f1565b60206040518083038186803b1580156105ca57600080fd5b505afa1580156105de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106029190614c26565b90506001600160a01b0381166106335760405162461bcd60e51b815260040161062a90615924565b60405180910390fd5b6040516306baeff360e11b81526001600160a01b03821690630d75dfe690610667908a908a908a908a908a90600401615558565b602060405180830381600087803b15801561068157600080fd5b505af1158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b9919061514f565b6106d55760405162461bcd60e51b815260040161062a906158af565b50630a85bd0160e11b9695505050505050565b60355490565b6106f661477e565b60008060008060006107066120c6565b94509450945094509450604051806101a001604052806107246104ba565b81526020016107316106e8565b815260200161073e612165565b815260200161074b6121e2565b6001600160a01b03168152602001609c60009054906101000a90046001600160a01b03166001600160a01b031663fed4416a6040518163ffffffff1660e01b815260040160006040518083038186803b1580156107a757600080fd5b505afa1580156107bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e3919081019061516b565b8152609854602082015260975460ff16151560408201526060810196909652608086019490945260a0850181905260c085019190915260e084015261010090920191909152905090565b609c546001600160a01b031681565b6105798282609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b15801561088f57600080fd5b505afa1580156108a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108cb9190810190614fe9565b516001600160401b03811180156108e157600080fd5b5060405190808252806020026020018201604052801561091b57816020015b6109086147f1565b8152602001906001900390816109005790505b506118df565b600061092e84848461225f565b61099e8461093a6117ef565b61099985604051806060016040528060288152602001615dac602891396001600160a01b038a166000908152603460205260408120906109786117ef565b6001600160a01b0316815260208101919091526040016000205491906123aa565b6117f3565b5060015b9392505050565b609b6020526000908152604090205481565b610a9f3382609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a0e57600080fd5b505afa158015610a22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4a9190810190614fe9565b516001600160401b0381118015610a6057600080fd5b5060405190808252806020026020018201604052801561091b57816020015b610a876147f1565b815260200190600190039081610a7f579050506118df565b50565b60385460ff1690565b6000610564610ab86117ef565b846109998560346000610ac96117ef565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612441565b610b016121e2565b6001600160a01b0316336001600160a01b031614610b315760405162461bcd60e51b815260040161062a90615960565b6097805460ff19168215151790556040517f8d75e9ede4188432084b863d70b3416010c97547dfeb4fc17734d2e997ee0f3990610b6f9083906156cb565b60405180910390a1610a9f612499565b60006109a2338484610b8f612503565b612548565b600054610100900460ff1680610bad5750610bad612d0e565b80610bbb575060005460ff16155b610bf65760405162461bcd60e51b815260040180806020018281038252602e815260200180615d5d602e913960400191505060405180910390fd5b600054610100900460ff16158015610c21576000805460ff1961ff0019909116610100171660011790555b610c2b8383612d1f565b610c33612dd4565b609980546001600160a01b0319166001600160a01b0387161790556097805460ff191685151517610100600160a81b0319166101003302179055426098819055609e55670de0b6b3a7640000609a558015610c94576000805461ff00191690555b5050505050565b60975460ff1681565b6001600160a01b0381166000908152603360205260409020545b919050565b609f6020526000908152604090205481565b6001600160a01b038116610cfb5760405162461bcd60e51b815260040161062a90615924565b6099546001600160a01b0316331480610daa5750609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d959190614c26565b6001600160a01b0316336001600160a01b0316145b610dc65760405162461bcd60e51b815260040161062a90615855565b609c80546001600160a01b0319166001600160a01b0383161790556040517f63fb64c359a4cae97e1bf003c1ab11390b5f0e18cc5b3d67b90bd61c0f5c52fd90610e139083903390615429565b60405180910390a150565b609a5481565b610e2f8383836118df565b505050565b6000610e768484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e7d92505050565b949350505050565b600080610e89612165565b90506000610ea7610e99836112e4565b610ea16106e8565b90612441565b9050610eb38282613628565b9250505090565b60006001600160a01b0384163014610ee45760405162461bcd60e51b815260040161062a90615891565b609954604051633f30232f60e21b81526000916001600160a01b03169063fcc08cbc90610f159033906004016153f1565b60206040518083038186803b158015610f2d57600080fd5b505afa158015610f41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f659190614c26565b90506001600160a01b038116158015906110005750806001600160a01b031663e9d337b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb357600080fd5b505afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190614c26565b6001600160a01b0316336001600160a01b0316145b61101c5760405162461bcd60e51b815260040161062a906159d5565b60008b8b600081811061102b57fe5b90506020020160208101906110409190614c0a565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161106b91906153f1565b60206040518083038186803b15801561108357600080fd5b505afa158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb91906152ae565b90506000826001600160a01b031663989dccf8308f8f60008181106110dc57fe5b90506020020160208101906110f19190614c0a565b8e8e60008181106110fe57fe5b905060200201358d8d600081811061111257fe5b905060200201358b8b6040518763ffffffff1660e01b815260040161113c9695949392919061558c565b60006040518083038186803b15801561115457600080fd5b505afa158015611168573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261119091908101906150c2565b905060005b81518110156111f2576111e88282815181106111ad57fe5b6020026020010151602001518383815181106111c557fe5b6020026020010151600001516001600160a01b031661365890919063ffffffff16565b9450600101611195565b508c8c600081811061120057fe5b90506020020160208101906112159190614c0a565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161124091906153f1565b60206040518083038186803b15801561125857600080fd5b505afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129091906152ae565b6112b68a8a60008181106112a057fe5b905060200201358461244190919063ffffffff16565b11156112d45760405162461bcd60e51b815260040161062a9061572b565b5050509998505050505050505050565b6000806000806112f26120c6565b9450505092509250600080611311876113096106e8565b87878761368b565b90925090506113208282612441565b979650505050505050565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105465780601f1061051b57610100808354040283529160200191610546565b60006105646113996117ef565b8461099985604051806060016040528060258152602001615e5e60259139603460006113c36117ef565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906123aa565b600061140e611401612165565b6114096106e8565b613628565b905090565b60006105646114206117ef565b848461225f565b60005b81811015610e2f576114c783838381811061144157fe5b90506020028101906114539190615bea565b611461906020810190614c0a565b84848481811061146d57fe5b905060200281019061147f9190615bea565b61148d906020810190615ba6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e7d92505050565b5060010161142a565b609d6020526000908152604090205481565b6001600160a01b0381166000908152609f6020908152604080832054609b90925282205482916115129190612441565b905042811015611526576000915050610cbe565b6109a2814261376d565b6099546001600160a01b031681565b60026065541415611585576040805162461bcd60e51b815260206004820152601f6024820152600080516020615cd3833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b1580156115cf57600080fd5b505afa1580156115e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611607919061514f565b156116245760405162461bcd60e51b815260040161062a90615907565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906116549030906004016153f1565b60206040518083038186803b15801561166c57600080fd5b505afa158015611680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a4919061514f565b156116c15760405162461bcd60e51b815260040161062a906158cd565b6116c96137ca565b506001606555565b60985481565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609954604051632927233b60e01b81526000916001600160a01b031690632927233b906117339033906004016153f1565b60206040518083038186803b15801561174b57600080fd5b505afa15801561175f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611783919061514f565b61179f5760405162461bcd60e51b815260040161062a906157fd565b61012c82101580156117b857506117b4612503565b8211155b6117d45760405162461bcd60e51b815260040161062a9061597d565b6117e085858585612548565b95945050505050565b609e5481565b3390565b6001600160a01b0383166118385760405162461bcd60e51b8152600401808060200182810382526024815260200180615e3a6024913960400191505060405180910390fd5b6001600160a01b03821661187d5760405162461bcd60e51b8152600401808060200182810382526022815260200180615d156022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60026065541415611925576040805162461bcd60e51b815260206004820152601f6024820152600080516020615cd3833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561196f57600080fd5b505afa158015611983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a7919061514f565b156119c45760405162461bcd60e51b815260040161062a90615907565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906119f49030906004016153f1565b60206040518083038186803b158015611a0c57600080fd5b505afa158015611a20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a44919061514f565b15611a615760405162461bcd60e51b815260040161062a906158cd565b336000908152609b60205260409020544211611a8f5760405162461bcd60e51b815260040161062a906159f3565b81611a9933610ca4565b1015611ab75760405162461bcd60e51b815260040161062a90615749565b611abf61481b565b611ac76137ca565b8152609c546099546040516348cfc41b60e11b8152600092733725f0e1a0fac84a4a8f6d74103342219cedcde19263919f883692611b189289926001600160a01b0391821692911690600401615b4a565b60806040518083038186803b158015611b3057600080fd5b505af4158015611b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b689190615204565b9050611b726106e8565b602083018190528151611b85919061376d565b60408301819052620186a0111580611b9f57506040820151155b611bbb5760405162461bcd60e51b815260040161062a90615a2e565b6000611bea8360200151611be4670de0b6b3a764000085606001516139fa90919063ffffffff16565b90613a53565b9050611bfa338360000151613ab7565b602082015115611c79576000611c0e6121e2565b9050611c1e818460200151611413565b611c3a5760405162461bcd60e51b815260040161062a90615942565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab818460200151604051611c6f9291906156b2565b60405180910390a1505b604082015115611d6b576099546040805163084c71a360e21b815290516000926001600160a01b031691632131c68c916004808301926020929190829003018186803b158015611cc857600080fd5b505afa158015611cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190614c26565b9050611d10818460400151611413565b611d2c5760405162461bcd60e51b815260040161062a90615942565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab818460400151604051611d619291906156b2565b60405180910390a1505b6040830151611d8157670de0b6b3a7640000609a555b609c546040805163e5406dbf60e01b815290516000926001600160a01b03169163e5406dbf9160048083019286929190829003018186803b158015611dc557600080fd5b505afa158015611dd9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e019190810190614fe9565b9050600081516001600160401b0381118015611e1c57600080fd5b50604051908082528060200260200182016040528015611e5657816020015b611e43614843565b815260200190600190039081611e3b5790505b5090506000805b8351811015611f96576000806000611ea1878581518110611e7a57fe5b6020026020010151600001518e8a8e8881518110611e9457fe5b6020026020010151613ba1565b919450925090508115611f36576001600160a01b038316611ed45760405162461bcd60e51b815260040161062a90615767565b611f3463a9059cbb60e01b8e84604051602401611ef29291906156b2565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b03851690613658565b505b8080611f425750600082115b15611f8b576040518060600160405280846001600160a01b03168152602001838152602001821515815250868681518110611f7957fe5b60209081029190910101526001909401935b505050600101611e5d565b508251600090611fa6908361376d565b9050808351038352611fd1670de0b6b3a7640000611be48960000151886139fa90919063ffffffff16565b60608801819052611fe99066038d7ea4c68000612441565b611ffc611ff4612165565b89519061376d565b111561201a5760405162461bcd60e51b815260040161062a90615a4c565b6120226106e8565b8760400151146120445760405162461bcd60e51b815260040161062a90615873565b7ffad3d7f9ed107ffa7fc8ce8baa521effc3650ec48a4d1dd36bdb9c4b91db1295308b89606001518c6120768f610ca4565b60608d01518d516120869161376d565b61208e6106e8565b8a426040516120a599989796959493929190615609565b60405180910390a16120b5612499565b505060016065555050505050505050565b6000806000806000609c60009054906101000a90046001600160a01b03166001600160a01b031663ced72f876040518163ffffffff1660e01b815260040160a06040518083038186803b15801561211c57600080fd5b505afa158015612130573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612154919061532d565b939992985090965094509092509050565b609c5460408051632b583ff360e21b815290516000926001600160a01b03169163ad60ffcc916004808301926020929190829003018186803b1580156121aa57600080fd5b505afa1580156121be573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e91906152ae565b609c546040805163481c6a7560e01b815290516000926001600160a01b03169163481c6a75916004808301926020929190829003018186803b15801561222757600080fd5b505afa15801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e9190614c26565b6001600160a01b0383166122a45760405162461bcd60e51b8152600401808060200182810382526025815260200180615e156025913960400191505060405180910390fd5b6001600160a01b0382166122e95760405162461bcd60e51b8152600401808060200182810382526023815260200180615cb06023913960400191505060405180910390fd5b6122f483838361407b565b61233181604051806060016040528060268152602001615d37602691396001600160a01b03861660009081526033602052604090205491906123aa565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546123609082612441565b6001600160a01b038084166000818152603360209081526040918290209490945580518581529051919392871692600080516020615dd483398151915292918290030190a3505050565b600081848411156124395760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123fe5781810151838201526020016123e6565b50505050905090810190601f16801561242b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156109a2576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b609960009054906101000a90046001600160a01b03166001600160a01b03166325c4121b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156124e957600080fd5b505af11580156124fd573d6000803e3d6000fd5b50505050565b609954604080516308a0361160e31b815290516000926001600160a01b031691634501b088916004808301926020929190829003018186803b1580156121aa57600080fd5b600060026065541415612590576040805162461bcd60e51b815260206004820152601f6024820152600080516020615cd3833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b1580156125da57600080fd5b505afa1580156125ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612612919061514f565b1561262f5760405162461bcd60e51b815260040161062a90615907565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c079061265f9030906004016153f1565b60206040518083038186803b15801561267757600080fd5b505afa15801561268b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126af919061514f565b156126cc5760405162461bcd60e51b815260040161062a906158cd565b60006126d66121e2565b9050806001600160a01b0316866001600160a01b031614806126fb575060975460ff16155b8061270a575061270a86614283565b6127265760405162461bcd60e51b815260040161062a90615a11565b609c5460405163bdbef07d60e01b81526001600160a01b039091169063bdbef07d906127569088906004016153f1565b60206040518083038186803b15801561276e57600080fd5b505afa158015612782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a6919061514f565b6127c25760405162461bcd60e51b815260040161062a906158ea565b600080866001600160a01b03166175306301ffc9a760e01b6380ac58cd60e01b6040516024016127f291906156d6565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161283091906153d5565b6000604051808303818686fa925050503d806000811461286c576040519150601f19603f3d011682016040523d82523d6000602084013e612871565b606091505b5091509150811580612894575080806020019051810190612892919061514f565b155b6128b05760405162461bcd60e51b815260040161062a9061581a565b50506128ba614863565b6128c26137ca565b8152604051612928906323b872dd60e01b906128e690339030908a90602401615405565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b03881690613658565b506129338686614304565b60208201526000733725f0e1a0fac84a4a8f6d74103342219cedcde163e3969ba361295c6106e8565b60208501518551609c546099546040516001600160e01b031960e088901b16815261299a959493926001600160a01b03908116921690600401615b69565b60606040518083038186803b1580156129b257600080fd5b505af41580156129c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ea91906151b0565b9050612a286129f889610ca4565b82516001600160a01b038b166000908152609f6020908152604080832054609b9092529091205489919042614387565b6001600160a01b0389166000908152609f6020908152604080832093909355609b9052204290558051620186a01115612a735760405162461bcd60e51b815260040161062a90615a2e565b612a81888260000151614435565b602081015115612ad757612a99838260200151614435565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb3838260200151604051612ace9291906156b2565b60405180910390a15b604081015115612bad576099546040805163084c71a360e21b815290516000926001600160a01b031691632131c68c916004808301926020929190829003018186803b158015612b2657600080fd5b505afa158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e9190614c26565b9050612b6e818360400151614435565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb3818360400151604051612ba39291906156b2565b60405180910390a1505b6000612bb889610ca4565b60208401518451919250600091612bce91612441565b90506000612bda6106e8565b9050609c60009054906101000a90046001600160a01b03166001600160a01b03166350b721a76040518163ffffffff1660e01b815260040160206040518083038186803b158015612c2a57600080fd5b505afa158015612c3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6291906152ae565b612c82670de0b6b3a7640000611be4612c7b8686613628565b87906139fa565b1015612ca05760405162461bcd60e51b815260040161062a906157df565b7f97e6c213c123075e233a6f2323f33d8319141b993ab05e9e2f7eb2eda08cb944308c8c8c8960200151896000015189898942604051612ce99a99989796959493929190615443565b60405180910390a1612cf9612499565b50509051600160655598975050505050505050565b6000612d1930614515565b15905090565b600054610100900460ff1680612d385750612d38612d0e565b80612d46575060005460ff16155b612d815760405162461bcd60e51b815260040180806020018281038252602e815260200180615d5d602e913960400191505060405180910390fd5b600054610100900460ff16158015612dac576000805460ff1961ff0019909116610100171660011790555b612db461451b565b612dbe83836145bb565b8015610e2f576000805461ff0019169055505050565b600054610100900460ff1680612ded5750612ded612d0e565b80612dfb575060005460ff16155b612e365760405162461bcd60e51b815260040180806020018281038252602e815260200180615d5d602e913960400191505060405180910390fd5b600054610100900460ff16158015612e61576000805460ff1961ff0019909116610100171660011790555b612e69614693565b8015610a9f576000805461ff001916905550565b600060026065541415612ec5576040805162461bcd60e51b815260206004820152601f6024820152600080516020615cd3833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015612f0f57600080fd5b505afa158015612f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f47919061514f565b15612f645760405162461bcd60e51b815260040161062a90615907565b609954604051635989571960e01b81526001600160a01b0390911690635989571990612f949030906004016153f1565b60206040518083038186803b158015612fac57600080fd5b505afa158015612fc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe4919061514f565b156130015760405162461bcd60e51b815260040161062a9061599a565b6001600160a01b0383166130275760405162461bcd60e51b815260040161062a90615924565b609954604051634f8419b960e01b81526000916001600160a01b031690634f8419b9906130589087906004016153f1565b60206040518083038186803b15801561307057600080fd5b505afa158015613084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a89190614c26565b905060008080806001600160a01b0385161561314e57609c54604051636179309d60e01b81528694506001600160a01b0380861692636179309d926130f792909116908c908c90600401615499565b6040805180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131489190615262565b90925090505b61ffff821661341757609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90613187908b906004016153f1565b60206040518083038186803b15801561319f57600080fd5b505afa1580156131b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d79190614c26565b93506001600160a01b0384166132eb576099546040805163795053d360e01b815290516000926001600160a01b03169163795053d3916004808301926020929190829003018186803b15801561322c57600080fd5b505afa158015613240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132649190614c26565b60405162a950c360e81b81529091506001600160a01b0382169063a950c30090613293906000906004016156eb565b60206040518083038186803b1580156132ab57600080fd5b505afa1580156132bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e39190614c26565b945050613387565b609c54604051634df48c7360e11b81526001600160a01b0390911690639be918e69061331b908b906004016153f1565b60206040518083038186803b15801561333357600080fd5b505afa158015613347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061336b919061514f565b6133875760405162461bcd60e51b815260040161062a9061570d565b609c54604051636179309d60e01b81528594506001600160a01b0380861692636179309d926133c092909116908c908c90600401615499565b6040805180830381600087803b1580156133d957600080fd5b505af11580156133ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134119190615262565b90925090505b60008261ffff161161343b5760405162461bcd60e51b815260040161062a906157a3565b808061345f575061344a6121e2565b6001600160a01b0316336001600160a01b0316145b80613482575061346d614739565b6001600160a01b0316336001600160a01b0316145b61349e5760405162461bcd60e51b815260040161062a90615837565b6134b16001600160a01b03891688613658565b60408051600481526024810182526020810180516001600160e01b0316637bf9811960e01b179052905191975060009182916001600160a01b038716916134f891906153d5565b6000604051808303816000865af19150503d8060008114613535576040519150601f19603f3d011682016040523d82523d6000602084013e61353a565b606091505b509150915081801561355b57508080602001905181019061355b919061514f565b156135c957609c54604051637b364ee960e11b81526001600160a01b038781169263f66c9dd29261359692909116908e908e90600401615499565b600060405180830381600087803b1580156135b057600080fd5b505af11580156135c4573d6000803e3d6000fd5b505050505b7f14464fb67b1871a79e726fa7af525f8fff56e9e5649d511e47f3a357ae31d207306135f36121e2565b864260405161360594939291906154c5565b60405180910390a1613615612499565b5050600160655550939695505050505050565b6000811580613635575082155b1561364257506000610568565b6109a282611be485670de0b6b3a76400006139fa565b60008060008351602085016000875af1905080156001811461367957613684565b3d806000803e806000fd5b5092915050565b600080851580613699575086155b156136a957506000905080613763565b60006136c187611be48a670de0b6b3a76400006139fa565b9050609a548111156137245760006137076136e486670de0b6b3a76400006139fa565b611be48a6137018b613701609a548961376d90919063ffffffff16565b906139fa565b90506137206137168a8361376d565b611be4838b6139fa565b9350505b609e5415613761576000613743609e544261376d90919063ffffffff16565b905061375d6301e13380611be487818a6137018e886139fa565b9250505b505b9550959350505050565b6000828211156137c4576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006137d4612165565b905060006137e06106e8565b905060008060006137ef6120c6565b9450505092509250600080613807878787878761368b565b909250905060006138188383612441565b6099546040805163272b69b960e21b8152815193945060009384936001600160a01b031692639cada6e49260048082019391829003018186803b15801561385e57600080fd5b505afa158015613872573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613896919061530a565b909250905060006138ab82611be486866139fa565b905060006138b9858361376d565b905060006138c78d8d613628565b905080609a5410156138d957609a8190555b60008711806138e6575089155b806138ef57508b155b156138f95742609e555b8215613983576099546040805163084c71a360e21b81529051613983926001600160a01b031691632131c68c916004808301926020929190829003018186803b15801561394557600080fd5b505afa158015613959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397d9190614c26565b84614435565b811561399a5761399a6139946121e2565b83614435565b7f755a8059d66d8d243bc9f6913f429a811f154599d0538bb0b6a2ac23f23d2ccd306139c46121e2565b609a546040516139db9392918b91899189916155d3565b60405180910390a16139eb612499565b50505050505050505050505090565b600082613a0957506000610568565b82820282848281613a1657fe5b04146109a25760405162461bcd60e51b8152600401808060200182810382526021815260200180615d8b6021913960400191505060405180910390fd5b6000808211613aa6576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b818381613aaf57fe5b049392505050565b6001600160a01b038216613afc5760405162461bcd60e51b8152600401808060200182810382526021815260200180615df46021913960400191505060405180910390fd5b613b088260008361407b565b613b4581604051806060016040528060228152602001615cf3602291396001600160a01b03851660009081526033602052604090205491906123aa565b6001600160a01b038316600090815260336020526040902055603554613b6b908261376d565b6035556040805182815290516000916001600160a01b03851691600080516020615dd48339815191529181900360200190a35050565b6000806000613bae61487d565b609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90613bde908b906004016153f1565b60206040518083038186803b158015613bf657600080fd5b505afa158015613c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2e9190614c26565b6001600160a01b031660608201819052613c5a5760405162461bcd60e51b815260040161062a90615924565b613cec670de0b6b3a7640000611be48884606001516001600160a01b031663d4fac45d308e6040518363ffffffff1660e01b8152600401613c9c929190615429565b60206040518083038186803b158015613cb457600080fd5b505afa158015613cc8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061370191906152ae565b808252613cfa908990614304565b6020808301919091528501515160609015613dda5785516001600160a01b038a8116911614613d3b5760405162461bcd60e51b815260040161062a90615785565b6060820151602087015160405163056f626f60e01b81526001600160a01b039092169163056f626f91613d789130918e918d918f9160040161551d565b600060405180830381600087803b158015613d9257600080fd5b505af1158015613da6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613dce9190810190614ec7565b91965094509050613e75565b81606001516001600160a01b0316636f8ae202308b8a8c6040518563ffffffff1660e01b8152600401613e1094939291906154f2565b600060405180830381600087803b158015613e2a57600080fd5b505af1158015613e3e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e669190810190614ec7565b60016040860152919650945090505b80518015613ff45760006001600160a01b03871615613f0d576040516370a0823160e01b81526001600160a01b038816906370a0823190613eba9030906004016153f1565b60206040518083038186803b158015613ed257600080fd5b505afa158015613ee6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f0a91906152ae565b90505b60005b82811015613f4957613f3f848281518110613f2757fe5b6020026020010151602001518583815181106111c557fe5b9550600101613f10565b506001600160a01b03871615613ff2576040516370a0823160e01b81526000906001600160a01b038916906370a0823190613f889030906004016153f1565b60206040518083038186803b158015613fa057600080fd5b505afa158015613fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fd891906152ae565b9050613fee613fe7828461376d565b8890612441565b9650505b505b826040015180156140085750604087015115155b801561401c57506001600160a01b03861615155b1561406e57614046612710611be489604001516127100386602001516139fa90919063ffffffff16565b6140508787614304565b101561406e5760405162461bcd60e51b815260040161062a906157c1565b5050509450945094915050565b609960009054906101000a90046001600160a01b03166001600160a01b031663b187bd266040518163ffffffff1660e01b815260040160206040518083038186803b1580156140c957600080fd5b505afa1580156140dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614101919061514f565b1561411e5760405162461bcd60e51b815260040161062a90615907565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c079061414e9030906004016153f1565b60206040518083038186803b15801561416657600080fd5b505afa15801561417a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061419e919061514f565b156141bb5760405162461bcd60e51b815260040161062a906158cd565b6001600160a01b0383166141ce57610e2f565b609954604051637065accb60e11b81526001600160a01b039091169063e0cb5996906141fe9085906004016153f1565b60206040518083038186803b15801561421657600080fd5b505afa15801561422a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061424e919061514f565b15156001141561425d57610e2f565b614266836114e2565b15610e2f5760405162461bcd60e51b815260040161062a906159b8565b609c5460405163bbbf725b60e01b81526000916001600160a01b03169063bbbf725b906142b49085906004016153f1565b60206040518083038186803b1580156142cc57600080fd5b505afa1580156142e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610568919061514f565b609c546040516314e03fdd60e11b81526000916001600160a01b0316906329c07fba9061433790869086906004016156b2565b60206040518083038186803b15801561434f57600080fd5b505afa158015614363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a291906152ae565b6000806143948486612441565b905060008382106143ae576143a9828561376d565b6143b1565b60005b9050881580156143bf575087155b156143cd5760009250614429565b886143da57869250614429565b8715806143e657508087105b156143f357809250614429565b600061440782610ea18c611be48c8e6139fa565b9050878111614423578061441c57600161441e565b805b614425565b875b9350505b50509695505050505050565b6001600160a01b038216614490576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61449c6000838361407b565b6035546144a99082612441565b6035556001600160a01b0382166000908152603360205260409020546144cf9082612441565b6001600160a01b0383166000818152603360209081526040808320949094558351858152935192939192600080516020615dd48339815191529281900390910190a35050565b3b151590565b600054610100900460ff16806145345750614534612d0e565b80614542575060005460ff16155b61457d5760405162461bcd60e51b815260040180806020018281038252602e815260200180615d5d602e913960400191505060405180910390fd5b600054610100900460ff16158015612e69576000805460ff1961ff0019909116610100171660011790558015610a9f576000805461ff001916905550565b600054610100900460ff16806145d457506145d4612d0e565b806145e2575060005460ff16155b61461d5760405162461bcd60e51b815260040180806020018281038252602e815260200180615d5d602e913960400191505060405180910390fd5b600054610100900460ff16158015614648576000805460ff1961ff0019909116610100171660011790555b825161465b9060369060208601906148b0565b50815161466f9060379060208501906148b0565b506038805460ff191660121790558015610e2f576000805461ff0019169055505050565b600054610100900460ff16806146ac57506146ac612d0e565b806146ba575060005460ff16155b6146f55760405162461bcd60e51b815260040180806020018281038252602e815260200180615d5d602e913960400191505060405180910390fd5b600054610100900460ff16158015614720576000805460ff1961ff0019909116610100171660011790555b60016065558015610a9f576000805461ff001916905550565b609c5460408051631758078b60e01b815290516000926001600160a01b031691631758078b916004808301926020929190829003018186803b15801561222757600080fd5b604051806101a0016040528060608152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b604051806040016040528060008152602001600081525090565b6040518060800160405280600081526020016000815260200160001515815260200160006001600160a01b031681525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826148e6576000855561492c565b82601f106148ff57805160ff191683800117855561492c565b8280016001018555821561492c579182015b8281111561492c578251825591602001919060010190614911565b5061493892915061493c565b5090565b5b80821115614938576000815560010161493d565b600061496461495f84615c3f565b615bff565b905082815283838301111561497857600080fd5b828260208301376000602084830101529392505050565b600061499d61495f84615c3f565b90508281528383830111156149b157600080fd5b6109a2836020830184615c60565b60008083601f8401126149d0578182fd5b5081356001600160401b038111156149e6578182fd5b6020830191508360208083028501011115614a0057600080fd5b9250929050565b600082601f830112614a17578081fd5b81356020614a2761495f83615c22565b82815281810190858301855b85811015614ad65781358801606080601f19838d03011215614a53578889fd5b604080518281016001600160401b038282108183111715614a7057fe5b908352848a013590614a8182615c8c565b908252848301359080821115614a95578c8dfd5b508401603f81018e13614aa6578b8cfd5b614ab68e8b830135858401614951565b828b01525092909101359082015284529284019290840190600101614a33565b5090979650505050505050565b600082601f830112614af3578081fd5b81516020614b0361495f83615c22565b82815281810190858301855b85811015614ad65781518801604080601f19838d03011215614b2f578889fd5b80518181016001600160401b038282108183111715614b4a57fe5b9083528389015190614b5b82615c8c565b908252838301519080821115614b6f578b8cfd5b508084019350508b603f840112614b8457898afd5b614b948c8985015184860161498f565b81890152865250509284019290840190600101614b0f565b60008083601f840112614bbd578182fd5b5081356001600160401b03811115614bd3578182fd5b602083019150836020828501011115614a0057600080fd5b600082601f830112614bfb578081fd5b6109a283833560208501614951565b600060208284031215614c1b578081fd5b81356109a281615c8c565b600060208284031215614c37578081fd5b81516109a281615c8c565b60008060408385031215614c54578081fd5b8235614c5f81615c8c565b91506020830135614c6f81615c8c565b809150509250929050565b600080600060608486031215614c8e578081fd5b8335614c9981615c8c565b92506020840135614ca981615c8c565b929592945050506040919091013590565b600080600080600060808688031215614cd1578283fd5b8535614cdc81615c8c565b94506020860135614cec81615c8c565b93506040860135925060608601356001600160401b03811115614d0d578182fd5b614d1988828901614bac565b969995985093965092949392505050565b60008060008060808587031215614d3f578182fd5b8435614d4a81615c8c565b93506020850135614d5a81615c8c565b93969395505050506040820135916060013590565b60008060008060808587031215614d84578182fd5b8435614d8f81615c8c565b93506020850135614d9f81615ca1565b925060408501356001600160401b0380821115614dba578384fd5b614dc688838901614beb565b93506060870135915080821115614ddb578283fd5b50614de887828801614beb565b91505092959194509250565b600080600060408486031215614e08578081fd5b8335614e1381615c8c565b925060208401356001600160401b03811115614e2d578182fd5b614e3986828701614bac565b9497909650939450505050565b60008060408385031215614e58578182fd5b8235614e6381615c8c565b946020939093013593505050565b600080600060608486031215614e85578081fd5b8335614e9081615c8c565b92506020840135915060408401356001600160401b03811115614eb1578182fd5b614ebd86828701614a07565b9150509250925092565b600080600060608486031215614edb578081fd5b8351614ee681615c8c565b6020850151604086015191945092506001600160401b03811115614f08578182fd5b614ebd86828701614ae3565b600080600080600080600080600060a08a8c031215614f31578687fd5b89356001600160401b0380821115614f47578889fd5b614f538d838e016149bf565b909b50995060208c0135915080821115614f6b578889fd5b614f778d838e016149bf565b909950975060408c0135915080821115614f8f578586fd5b614f9b8d838e016149bf565b909750955060608c01359150614fb082615c8c565b90935060808b01359080821115614fc5578384fd5b50614fd28c828d01614bac565b915080935050809150509295985092959850929598565b60006020808385031215614ffb578182fd5b82516001600160401b0380821115615011578384fd5b818501915085601f830112615024578384fd5b815161503261495f82615c22565b818152848101908486016040808502870188018b1015615050578889fd5b8896505b848710156150b35780828c03121561506a578889fd5b8051818101818110888211171561507d57fe5b8252825161508a81615c8c565b81528289015161509981615ca1565b818a01528452600196909601959287019290810190615054565b50909998505050505050505050565b6000602082840312156150d3578081fd5b81516001600160401b038111156150e8578182fd5b610e7684828501614ae3565b60008060208385031215615106578182fd5b82356001600160401b0381111561511b578283fd5b615127858286016149bf565b90969095509350505050565b600060208284031215615144578081fd5b81356109a281615ca1565b600060208284031215615160578081fd5b81516109a281615ca1565b60006020828403121561517c578081fd5b81516001600160401b03811115615191578182fd5b8201601f810184136151a1578182fd5b610e768482516020840161498f565b6000606082840312156151c1578081fd5b604051606081018181106001600160401b03821117156151dd57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060808284031215615215578081fd5b604051608081018181106001600160401b038211171561523157fe5b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b60008060408385031215615274578182fd5b825161ffff81168114615285578283fd5b6020840151909250614c6f81615ca1565b6000602082840312156152a7578081fd5b5035919050565b6000602082840312156152bf578081fd5b5051919050565b600080604083850312156152d8578182fd5b8235915060208301356001600160401b038111156152f4578182fd5b61530085828601614a07565b9150509250929050565b6000806040838503121561531c578182fd5b505080516020909101519092909150565b600080600080600060a08688031215615344578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526153c1816020860160208601615c60565b601f01601f19169290920160200192915050565b600082516153e7818460208701615c60565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039a8b168152988a1660208a01529690981660408801526060870194909452608086019290925260a085015260c084015260e08301526101008201929092526101208101919091526101400190565b6001600160a01b038481168252831660208201526060604082018190526000906117e0908301846153a9565b6001600160a01b03948516815292909316602083015261ffff166040820152606081019190915260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b0386811682528581166020830152604082018590528316606082015260a060808201819052600090611320908301846153a9565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090611320908301848661537f565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906155c7908301848661537f565b98975050505050505050565b6001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b600061012080830160018060a01b03808e1685526020818e168187015260408d8188015260608d818901528c60808901528b60a08901528a60c08901528560e0890152849550895180865261014089019650838b019550875b8181101561569357865180518716895285810151868a01528401511515848901529682019695840195600101615662565b505050505061010094909401949094529b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6001600160e01b031991909116815260200190565b61ffff91909116815260200190565b6000602082526109a260208301846153a9565b6020808252600490820152633234191960e11b604082015260600190565b6020808252600490820152636468323760e01b604082015260600190565b6020808252600490820152633234189960e11b604082015260600190565b6020808252600490820152636468313560e01b604082015260600190565b6020808252600490820152636468313960e01b604082015260600190565b6020808252600490820152636468323360e01b604082015260600190565b6020808252600490820152633234191b60e11b604082015260600190565b6020808252600490820152636468323560e01b604082015260600190565b60208082526003908201526264683560e81b604082015260600190565b60208082526003908201526264683960e81b604082015260600190565b602080825260049082015263191a0c8d60e21b604082015260600190565b6020808252600490820152630c8d064760e31b604082015260600190565b6020808252600490820152636468313760e01b604082015260600190565b6020808252600490820152636468323960e01b604082015260600190565b6020808252600490820152636468323160e01b604082015260600190565b60208082526003908201526232341960e91b604082015260600190565b6020808252600390820152620c8d0760eb1b604082015260600190565b60208082526003908201526264683160e81b604082015260600190565b6020808252600490820152630c8d062760e31b604082015260600190565b602080825260049082015263191a0c4d60e21b604082015260600190565b602080825260039082015262191a0d60ea1b604082015260600190565b60208082526003908201526232341b60e91b604082015260600190565b6020808252600490820152630646832360e41b604082015260600190565b60208082526003908201526264683360e81b604082015260600190565b6020808252600490820152630646833360e41b604082015260600190565b6020808252600490820152636468313160e01b604082015260600190565b60208082526003908201526264683760e81b604082015260600190565b6020808252600490820152630646831360e41b604082015260600190565b6020808252600490820152633234189b60e11b604082015260600190565b60006020825282516101a0806020850152615a896101c08501836153a9565b915060208501516040850152604085015160608501526060850151615ab1608086018261536c565b506080850151848303601f190160a0860152615acd83826153a9565b92505060a085015160c085015260c0850151615aec60e0860182615379565b5060e08501516101008581019190915285015161012080860191909152850151610140808601919091528501516101608086019190915285015161018080860191909152909401519390920192909252919050565b90815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b948552602085019390935260408401919091526001600160a01b03908116606084015216608082015260a00190565b60ff91909116815260200190565b6000808335601e19843603018112615bbc578283fd5b8301803591506001600160401b03821115615bd5578283fd5b602001915036819003821315614a0057600080fd5b60008235603e198336030181126153e7578182fd5b6040518181016001600160401b0381118282101715615c1a57fe5b604052919050565b60006001600160401b03821115615c3557fe5b5060209081020190565b60006001600160401b03821115615c5257fe5b50601f01601f191660200190565b60005b83811015615c7b578181015183820152602001615c63565b838111156124fd5750506000910152565b6001600160a01b0381168114610a9f57600080fd5b8015158114610a9f57600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122027413a05f6a69ce639fedfb6ad0d4cc7601f9287bc1168847fc5e7c576d5339364736f6c63430007060033