0 txs
725 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)
withdrawSafe
nonpayablefunction withdrawSafe(uint256 _fundTokenAmount, uint256 _slippageTolerance)
withdrawTo
nonpayablefunction withdrawTo(address _recipient, uint256 _fundTokenAmount)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, tuple[] _complexAssetsData)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, uint256 _slippageTolerance)
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
0x608060405234801561001057600080fd5b50615f7680620000216000396000f3fe608060405234801561001057600080fd5b50600436106102095760003560e01c80637714f39d116101215780637714f39d146103b657806377806392146103be5780637ae7cfb5146103d15780637ff9b596146103e4578063920f5c84146103ec57806394138e97146103ff57806395d89b4114610412578063a457c2d71461041a578063a77134e41461042d578063a9059cbb14610435578063a971a91314610448578063aee883341461045b578063b3db428b1461046e578063b8ea2b6e14610481578063c45a015514610494578063cc3c6df61461049c578063d8270dce146104a4578063dd62ed3e146104ac578063de6eb133146104bf578063df8164cf146104d2578063df8ff12f146104e5578063e4262edd146104ed57610209565b806302d05d3f1461020e57806306fdde031461022c578063095ea7b3146102415780630acc7f2514610261578063150b7a021461027657806318160ddd146102965780631c5918d2146102ab5780631e50a4a6146102c0578063205c2878146102c857806323b872dd146102db57806329d16ee8146102ee5780632e1a7d4d14610301578063313ce5671461031457806339509351146103295780633babaad51461033c57806347e7ef241461034f5780635426f81d1461036257806359b5e75e1461037557806370a082311461037d5780637481de6614610390578063750226de146103a3575b600080fd5b610216610500565b60405161022391906152da565b60405180910390f35b610234610514565b60405161022391906155e3565b61025461024f366004614d8c565b6105aa565b60405161022391906155b4565b61027461026f36600461518e565b6105c8565b005b610289610284366004614c00565b6105da565b60405161022391906155bf565b61029e610745565b6040516102239190615c4d565b6102b361074b565b6040516102239190615b76565b61021661088a565b6102746102d6366004614d8c565b610899565b6102546102e9366004614bc0565b610981565b61029e6102fc366004614b50565b610a09565b61027461030f36600461515e565b610a1b565b61031c610b05565b6040516102239190615c56565b610254610337366004614d8c565b610b0e565b61027461034a3660046150ad565b610b5c565b61029e61035d366004614d8c565b610be2565b610274610370366004614cb5565b610bf7565b610254610cfe565b61029e61038b366004614b50565b610d07565b61029e61039e366004614b50565b610d26565b6102746103b1366004614b50565b610d38565b61029e610e81565b6102746103cc366004614db7565b610e87565b6102546103df366004614d3a565b610e9a565b61029e610ee4565b6102546103fa366004614e8e565b610f20565b61029e61040d36600461515e565b611325565b61023461136c565b610254610428366004614d8c565b6113cd565b61029e611435565b610254610443366004614d8c565b611454565b61027461045636600461506e565b611468565b61029e610469366004614b50565b61152c565b61029e61047c366004614bc0565b61153e565b61029e61048f366004614b50565b61154e565b61021661159c565b6102746115ab565b61029e61173e565b61029e6104ba366004614b88565b611744565b61029e6104cd366004614c70565b61176f565b6102746104e03660046151d2565b611856565b61029e61193b565b6102746104fb366004614e5a565b611941565b60975461010090046001600160a01b031681565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105a05780601f10610575576101008083540402835291602001916105a0565b820191906000526020600020905b81548152906001019060200180831161058357829003601f168201915b5050505050905090565b60006105be6105b7611a26565b8484611a2a565b5060015b92915050565b6105d6338361271084611b16565b5050565b609954604051634f8419b960e01b815260009182916001600160a01b0390911690634f8419b99061060f908a906004016152da565b60206040518083038186803b15801561062757600080fd5b505afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190614b6c565b90506001600160a01b0381166106905760405162461bcd60e51b815260040161068790615b1a565b60405180910390fd5b6040516306baeff360e11b81526001600160a01b03821690630d75dfe6906106c4908a908a908a908a908a906004016154ea565b602060405180830381600087803b1580156106de57600080fd5b505af11580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071691906150c9565b6107325760405162461bcd60e51b8152600401610687906156a8565b50630a85bd0160e11b9695505050505050565b60355490565b6107536146e5565b6000806000806000610763612229565b94509450945094509450604051806101a00160405280610781610514565b815260200161078e610745565b815260200161079b6122c8565b81526020016107a8612345565b6001600160a01b03168152602001609c60009054906101000a90046001600160a01b03166001600160a01b031663fed4416a6040518163ffffffff1660e01b815260040160006040518083038186803b15801561080457600080fd5b505afa158015610818573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261084091908101906150e5565b8152609854602082015260975460ff16151560408201526060810196909652608086019490945260a0850181905260c085019190915260e084015261010090920191909152905090565b609c546001600160a01b031681565b6105d68282612710609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156108ef57600080fd5b505afa158015610903573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092b9190810190614f63565b516001600160401b038111801561094157600080fd5b5060405190808252806020026020018201604052801561097b57816020015b610968614758565b8152602001906001900390816109605790505b50611b16565b600061098e8484846123c2565b6109fe8461099a611a26565b6109f985604051806060016040528060288152602001615e6a602891396001600160a01b038a166000908152603460205260408120906109d8611a26565b6001600160a01b03168152602081019190915260400160002054919061250d565b611a2a565b5060015b9392505050565b609b6020526000908152604090205481565b610b023382612710609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aad9190810190614f63565b516001600160401b0381118015610ac357600080fd5b5060405190808252806020026020018201604052801561097b57816020015b610aea614758565b815260200190600190039081610ae257905050611b16565b50565b60385460ff1690565b60006105be610b1b611a26565b846109f98560346000610b2c611a26565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906125a4565b610b64612345565b6001600160a01b0316336001600160a01b031614610b945760405162461bcd60e51b8152600401610687906157da565b6097805460ff19168215151790556040517f8d75e9ede4188432084b863d70b3416010c97547dfeb4fc17734d2e997ee0f3990610bd29083906155b4565b60405180910390a1610b026125fc565b6000610a02338484610bf2612666565b6126ab565b600054610100900460ff1680610c105750610c10612d1e565b80610c1e575060005460ff16155b610c595760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1b602e913960400191505060405180910390fd5b600054610100900460ff16158015610c84576000805460ff1961ff0019909116610100171660011790555b610c8e8383612d2f565b610c96612de4565b609980546001600160a01b0319166001600160a01b0387161790556097805460ff191685151517610100600160a81b0319166101003302179055426098819055609e55670de0b6b3a7640000609a558015610cf7576000805461ff00191690555b5050505050565b60975460ff1681565b6001600160a01b0381166000908152603360205260409020545b919050565b609f6020526000908152604090205481565b6001600160a01b038116610d5e5760405162461bcd60e51b81526004016106879061588a565b6099546001600160a01b0316331480610e0d5750609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc057600080fd5b505afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df89190614b6c565b6001600160a01b0316336001600160a01b0316145b610e295760405162461bcd60e51b815260040161068790615728565b609c80546001600160a01b0319166001600160a01b0383161790556040517f63fb64c359a4cae97e1bf003c1ab11390b5f0e18cc5b3d67b90bd61c0f5c52fd90610e769083903390615312565b60405180910390a150565b609a5481565b610e95838361271084611b16565b505050565b6000610edc8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e8d92505050565b949350505050565b600080610eef6122c8565b90506000610f0d610eff83611325565b610f07610745565b906125a4565b9050610f19828261359b565b9250505090565b60006001600160a01b0384163014610f4a5760405162461bcd60e51b81526004016106879061582c565b609954604051633f30232f60e21b81526000916001600160a01b03169063fcc08cbc90610f7b9033906004016152da565b60206040518083038186803b158015610f9357600080fd5b505afa158015610fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcb9190614b6c565b90506001600160a01b038116158015906110665750806001600160a01b031663e9d337b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561101957600080fd5b505afa15801561102d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110519190614b6c565b6001600160a01b0316336001600160a01b0316145b6110825760405162461bcd60e51b815260040161068790615b48565b60008b8b600081811061109157fe5b90506020020160208101906110a69190614b50565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016110d191906152da565b60206040518083038186803b1580156110e957600080fd5b505afa1580156110fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111219190615176565b90506000826001600160a01b031663989dccf8308f8f600081811061114257fe5b90506020020160208101906111579190614b50565b8e8e600081811061116457fe5b905060200201358d8d600081811061117857fe5b905060200201358b8b6040518763ffffffff1660e01b81526004016111a29695949392919061551e565b60006040518083038186803b1580156111ba57600080fd5b505afa1580156111ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111f6919081019061503c565b905060005b81518110156112585761124e82828151811061121357fe5b60200260200101516020015183838151811061122b57fe5b6020026020010151600001516001600160a01b03166135cb90919063ffffffff16565b94506001016111fb565b508c8c600081811061126657fe5b905060200201602081019061127b9190614b50565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016112a691906152da565b60206040518083038186803b1580156112be57600080fd5b505afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f69190615176565b8211156113155760405162461bcd60e51b8152600401610687906159c9565b5050509998505050505050505050565b600080600080611333612229565b94505050925092506000806113528761134a610745565b8787876135fe565b909250905061136182826125a4565b979650505050505050565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105a05780601f10610575576101008083540402835291602001916105a0565b60006105be6113da611a26565b846109f985604051806060016040528060258152602001615f1c6025913960346000611404611a26565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061250d565b600061144f6114426122c8565b61144a610745565b61359b565b905090565b60006105be611461611a26565b84846123c2565b60005b81811015610e955761150883838381811061148257fe5b90506020028101906114949190615ca8565b6114a2906020810190614b50565b8484848181106114ae57fe5b90506020028101906114c09190615ca8565b6114ce906020810190615c64565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e8d92505050565b6115245760405162461bcd60e51b815260040161068790615929565b60010161146b565b609d6020526000908152604090205481565b6000610edc848484610bf2612666565b6001600160a01b0381166000908152609f6020908152604080832054609b909252822054829161157e91906125a4565b905042811015611592576000915050610d21565b610a0281426136e0565b6099546001600160a01b031681565b600260655414156115f1576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d91833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561163b57600080fd5b505afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167391906150c9565b156116905760405162461bcd60e51b815260040161068790615a7a565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906116c09030906004016152da565b60206040518083038186803b1580156116d857600080fd5b505afa1580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906150c9565b1561172d5760405162461bcd60e51b815260040161068790615acb565b61173561373d565b50506001606555565b60985481565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609954604051632927233b60e01b81526000916001600160a01b031690632927233b906117a09033906004016152da565b60206040518083038186803b1580156117b857600080fd5b505afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906150c9565b61180c5760405162461bcd60e51b815260040161068790615903565b61012c82101580156118255750611821612666565b8211155b6118415760405162461bcd60e51b81526004016106879061594c565b61184d858585856126ab565b95945050505050565b6105d6338383609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118e69190810190614f63565b516001600160401b03811180156118fc57600080fd5b5060405190808252806020026020018201604052801561097b57816020015b611923614758565b81526020019060019003908161191b57905050611b16565b609e5481565b610e95838383609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b15801561199557600080fd5b505afa1580156119a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119d19190810190614f63565b516001600160401b03811180156119e757600080fd5b5060405190808252806020026020018201604052801561097b57816020015b611a0e614758565b815260200190600190039081611a0657905050611b16565b3390565b6001600160a01b038316611a6f5760405162461bcd60e51b8152600401808060200182810382526024815260200180615ef86024913960400191505060405180910390fd5b6001600160a01b038216611ab45760405162461bcd60e51b8152600401808060200182810382526022815260200180615dd36022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60026065541415611b5c576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d91833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015611ba657600080fd5b505afa158015611bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bde91906150c9565b15611bfb5760405162461bcd60e51b815260040161068790615a7a565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790611c2b9030906004016152da565b60206040518083038186803b158015611c4357600080fd5b505afa158015611c57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7b91906150c9565b15611c985760405162461bcd60e51b815260040161068790615acb565b336000908152609b60205260409020544211611cc65760405162461bcd60e51b815260040161068790615a1f565b82611cd033610d07565b1015611cee5760405162461bcd60e51b815260040161068790615800565b612710821115611d105760405162461bcd60e51b81526004016106879061599e565b611d18614782565b611d2a84611d24610745565b906136e0565b808252620186a0111580611d3d57508051155b611d595760405162461bcd60e51b8152600401610687906155f6565b611d6161373d565b60408301526020820152600080611d76612229565b945094505050506000821115611e27576000611d9c82611d9689866139d8565b90613a31565b9050611da887826136e0565b8451909750611db790826125a4565b84526000611dc3612345565b9050611dcf8183611454565b611deb5760405162461bcd60e51b8152600401610687906158b3565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab8183604051611e1c92919061559b565b60405180910390a150505b50506000611e48611e36610745565b611d9687670de0b6b3a76400006139d8565b9050611e543386613a95565b611e5c610745565b611e6d57670de0b6b3a7640000609a555b609c546040805163e5406dbf60e01b815290516000926001600160a01b03169163e5406dbf9160048083019286929190829003018186803b158015611eb157600080fd5b505afa158015611ec5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611eed9190810190614f63565b9050600081516001600160401b0381118015611f0857600080fd5b50604051908082528060200260200182016040528015611f4257816020015b611f2f6147a3565b815260200190600190039081611f275790505b5090506000805b8351811015612083576000806000611f8e878581518110611f6657fe5b6020026020010151600001518e8a8e8e8981518110611f8157fe5b6020026020010151613b7f565b919450925090508115612023576001600160a01b038316611fc15760405162461bcd60e51b8152600401610687906156ce565b61202163a9059cbb60e01b8e84604051602401611fdf92919061559b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038516906135cb565b505b808061202f5750600082115b15612078576040518060600160405280846001600160a01b0316815260200183815260200182151581525086868151811061206657fe5b60209081029190910101526001909401935b505050600101611f49565b50825160009061209390836136e0565b905080835103835260006120c0670de0b6b3a7640000611d968960200151896139d890919063ffffffff16565b90506120cd8160016125a4565b609c54604080516335fd4a6360e11b81529051612158926001600160a01b031691636bfa94c69160048083019260209291908290030181600087803b15801561211557600080fd5b505af1158015612129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214d9190615176565b60208a0151906136e0565b11156121765760405162461bcd60e51b8152600401610687906158db565b61217e610745565b6040880151885161218e916125a4565b146121ab5760405162461bcd60e51b815260040161068790615861565b7ffad3d7f9ed107ffa7fc8ce8baa521effc3650ec48a4d1dd36bdb9c4b91db12953033838d6121d933610d07565b60208d01516121e890886136e0565b6121f0610745565b8b426040516122079998979695949392919061532c565b60405180910390a16122176125fc565b50506001606555505050505050505050565b6000806000806000609c60009054906101000a90046001600160a01b03166001600160a01b031663ced72f876040518163ffffffff1660e01b815260040160a06040518083038186803b15801561227f57600080fd5b505afa158015612293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b79190615216565b939992985090965094509092509050565b609c5460408051632b583ff360e21b815290516000926001600160a01b03169163ad60ffcc916004808301926020929190829003018186803b15801561230d57600080fd5b505afa158015612321573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144f9190615176565b609c546040805163481c6a7560e01b815290516000926001600160a01b03169163481c6a75916004808301926020929190829003018186803b15801561238a57600080fd5b505afa15801561239e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144f9190614b6c565b6001600160a01b0383166124075760405162461bcd60e51b8152600401808060200182810382526025815260200180615ed36025913960400191505060405180910390fd5b6001600160a01b03821661244c5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d6e6023913960400191505060405180910390fd5b612457838383614117565b61249481604051806060016040528060268152602001615df5602691396001600160a01b038616600090815260336020526040902054919061250d565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546124c390826125a4565b6001600160a01b038084166000818152603360209081526040918290209490945580518581529051919392871692600080516020615e9283398151915292918290030190a3505050565b6000818484111561259c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612561578181015183820152602001612549565b50505050905090810190601f16801561258e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610a02576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b609960009054906101000a90046001600160a01b03166001600160a01b03166325c4121b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561264c57600080fd5b505af1158015612660573d6000803e3d6000fd5b50505050565b609954604080516308a0361160e31b815290516000926001600160a01b031691634501b088916004808301926020929190829003018186803b15801561230d57600080fd5b6000600260655414156126f3576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d91833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561273d57600080fd5b505afa158015612751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277591906150c9565b156127925760405162461bcd60e51b815260040161068790615a7a565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906127c29030906004016152da565b60206040518083038186803b1580156127da57600080fd5b505afa1580156127ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061281291906150c9565b1561282f5760405162461bcd60e51b815260040161068790615acb565b6000612839612345565b9050806001600160a01b0316866001600160a01b0316148061285e575060975460ff16155b8061286d575061286d866141ea565b6128895760405162461bcd60e51b8152600401610687906157b4565b609c5460405163bdbef07d60e01b81526001600160a01b039091169063bdbef07d906128b99088906004016152da565b60206040518083038186803b1580156128d157600080fd5b505afa1580156128e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290991906150c9565b6129255760405162461bcd60e51b8152600401610687906159f0565b600080866001600160a01b03166175306301ffc9a760e01b6380ac58cd60e01b60405160240161295591906155bf565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161299391906152be565b6000604051808303818686fa925050503d80600081146129cf576040519150601f19603f3d011682016040523d82523d6000602084013e6129d4565b606091505b50915091508115806129f75750808060200190518101906129f591906150c9565b155b612a135760405162461bcd60e51b81526004016106879061567c565b50506000612a1f61373d565b5090506000612a2c610745565b9050612a906323b872dd60e01b333089604051602401612a4e939291906152ee565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038916906135cb565b506000612a9d888861426b565b90508115612aba57612ab383611d9683856139d8565b9450612abe565b8094505b600080612ac9612229565b945050935050506000821115612b3c576000612ae982611d968a866139d8565b9050612af588826136e0565b9750612b0187826142ee565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb38782604051612b3292919061559b565b60405180910390a1505b620186a0871015612b5f5760405162461bcd60e51b81526004016106879061564b565b612b698b886142ee565b5050612ba6612b778a610d07565b6001600160a01b038b166000908152609f6020908152604080832054609b9092529091205488918a91426143ce565b6001600160a01b038a166000908152609f6020908152604080832093909355609b9052908120429055612bd88a610d07565b90506000612be685846125a4565b90506000612bf2610745565b9050609c60009054906101000a90046001600160a01b03166001600160a01b03166350b721a76040518163ffffffff1660e01b815260040160206040518083038186803b158015612c4257600080fd5b505afa158015612c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7a9190615176565b612c9a670de0b6b3a7640000611d96612c93868661359b565b87906139d8565b1015612cb85760405162461bcd60e51b815260040161068790615af0565b7f97e6c213c123075e233a6f2323f33d8319141b993ab05e9e2f7eb2eda08cb944308d8d8d888d89898942604051612cf99a999897969594939291906153d5565b60405180910390a150612d0a6125fc565b505060016065555092979650505050505050565b6000612d293061447c565b15905090565b600054610100900460ff1680612d485750612d48612d1e565b80612d56575060005460ff16155b612d915760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1b602e913960400191505060405180910390fd5b600054610100900460ff16158015612dbc576000805460ff1961ff0019909116610100171660011790555b612dc4614482565b612dce8383614522565b8015610e95576000805461ff0019169055505050565b600054610100900460ff1680612dfd5750612dfd612d1e565b80612e0b575060005460ff16155b612e465760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1b602e913960400191505060405180910390fd5b600054610100900460ff16158015612e71576000805460ff1961ff0019909116610100171660011790555b612e796145fa565b8015610b02576000805461ff001916905550565b600060026065541415612ed5576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d91833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015612f1f57600080fd5b505afa158015612f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5791906150c9565b15612f745760405162461bcd60e51b815260040161068790615a7a565b6001600160a01b038316612f9a5760405162461bcd60e51b81526004016106879061588a565b609954604051634f8419b960e01b81526000916001600160a01b031690634f8419b990612fcb9087906004016152da565b60206040518083038186803b158015612fe357600080fd5b505afa158015612ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301b9190614b6c565b905060008080806001600160a01b038516156130c157609c54604051636179309d60e01b81528694506001600160a01b0380861692636179309d9261306a92909116908c908c9060040161542b565b6040805180830381600087803b15801561308357600080fd5b505af1158015613097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bb919061512a565b90925090505b61ffff821661338a57609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc906130fa908b906004016152da565b60206040518083038186803b15801561311257600080fd5b505afa158015613126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314a9190614b6c565b93506001600160a01b03841661325e576099546040805163795053d360e01b815290516000926001600160a01b03169163795053d3916004808301926020929190829003018186803b15801561319f57600080fd5b505afa1580156131b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d79190614b6c565b60405162a950c360e81b81529091506001600160a01b0382169063a950c30090613206906000906004016155d4565b60206040518083038186803b15801561321e57600080fd5b505afa158015613232573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132569190614b6c565b9450506132fa565b609c54604051634df48c7360e11b81526001600160a01b0390911690639be918e69061328e908b906004016152da565b60206040518083038186803b1580156132a657600080fd5b505afa1580156132ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132de91906150c9565b6132fa5760405162461bcd60e51b815260040161068790615976565b609c54604051636179309d60e01b81528594506001600160a01b0380861692636179309d9261333392909116908c908c9060040161542b565b6040805180830381600087803b15801561334c57600080fd5b505af1158015613360573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613384919061512a565b90925090505b60008261ffff16116133ae5760405162461bcd60e51b8152600401610687906156fb565b80806133d257506133bd612345565b6001600160a01b0316336001600160a01b0316145b806133f557506133e06146a0565b6001600160a01b0316336001600160a01b0316145b6134115760405162461bcd60e51b81526004016106879061577e565b6134246001600160a01b038916886135cb565b60408051600481526024810182526020810180516001600160e01b0316637bf9811960e01b179052905191975060009182916001600160a01b0387169161346b91906152be565b6000604051808303816000865af19150503d80600081146134a8576040519150601f19603f3d011682016040523d82523d6000602084013e6134ad565b606091505b50915091508180156134ce5750808060200190518101906134ce91906150c9565b1561353c57609c54604051637b364ee960e11b81526001600160a01b038781169263f66c9dd29261350992909116908e908e9060040161542b565b600060405180830381600087803b15801561352357600080fd5b505af1158015613537573d6000803e3d6000fd5b505050505b7f14464fb67b1871a79e726fa7af525f8fff56e9e5649d511e47f3a357ae31d20730613566612345565b86426040516135789493929190615457565b60405180910390a16135886125fc565b5050600160655550939695505050505050565b60008115806135a8575082155b156135b5575060006105c2565b610a0282611d9685670de0b6b3a76400006139d8565b60008060008351602085016000875af190508015600181146135ec576135f7565b3d806000803e806000fd5b5092915050565b60008085158061360c575086155b1561361c575060009050806136d6565b600061363487611d968a670de0b6b3a76400006139d8565b9050609a5481111561369757600061367a61365786670de0b6b3a76400006139d8565b611d968a6136748b613674609a54896136e090919063ffffffff16565b906139d8565b90506136936136898a836136e0565b611d96838b6139d8565b9350505b609e54156136d45760006136b6609e54426136e090919063ffffffff16565b90506136d06301e13380611d9687818a6136748e886139d8565b9250505b505b9550959350505050565b600082821115613737576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080609c60009054906101000a90046001600160a01b03166001600160a01b0316636bfa94c66040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561379057600080fd5b505af11580156137a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c89190615176565b915060006137d4610745565b905060008060006137e3612229565b94505050925092506000806137fb88878787876135fe565b909250905061380a82826125a4565b6099546040805163272b69b960e21b81528151939a5060009384936001600160a01b031692639cada6e49260048082019391829003018186803b15801561385057600080fd5b505afa158015613864573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388891906151f3565b9092509050600061389d82611d968c866139d8565b905060006138ab8b836136e0565b905060006138b98d8c61359b565b905080609a5410156138cb57609a8190555b85156138d65742609e555b8215613960576099546040805163084c71a360e21b81529051613960926001600160a01b031691632131c68c916004808301926020929190829003018186803b15801561392257600080fd5b505afa158015613936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395a9190614b6c565b846142ee565b811561397757613977613971612345565b836142ee565b7f755a8059d66d8d243bc9f6913f429a811f154599d0538bb0b6a2ac23f23d2ccd306139a1612345565b8e8686609a546040516139b996959493929190615565565b60405180910390a16139c96125fc565b50505050505050505050509091565b6000826139e7575060006105c2565b828202828482816139f457fe5b0414610a025760405162461bcd60e51b8152600401808060200182810382526021815260200180615e496021913960400191505060405180910390fd5b6000808211613a84576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b818381613a8d57fe5b049392505050565b6001600160a01b038216613ada5760405162461bcd60e51b8152600401808060200182810382526021815260200180615eb26021913960400191505060405180910390fd5b613ae682600083614117565b613b2381604051806060016040528060228152602001615db1602291396001600160a01b038516600090815260336020526040902054919061250d565b6001600160a01b038316600090815260336020526040902055603554613b4990826136e0565b6035556040805182815290516000916001600160a01b03851691600080516020615e928339815191529181900360200190a35050565b6000806000613b8c6147c3565b609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90613bbc908c906004016152da565b60206040518083038186803b158015613bd457600080fd5b505afa158015613be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0c9190614b6c565b6001600160a01b031660608201819052613c385760405162461bcd60e51b815260040161068790615aa4565b613cca670de0b6b3a7640000611d968984606001516001600160a01b031663d4fac45d308f6040518363ffffffff1660e01b8152600401613c7a929190615312565b60206040518083038186803b158015613c9257600080fd5b505afa158015613ca6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136749190615176565b808252613cd8908a9061426b565b6020808301919091528501515160609015613db75785516001600160a01b038b8116911614613d195760405162461bcd60e51b81526004016106879061561f565b81606001516001600160a01b031663056f626f308c8b8d8b602001516040518663ffffffff1660e01b8152600401613d559594939291906154af565b600060405180830381600087803b158015613d6f57600080fd5b505af1158015613d83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613dab9190810190614e0d565b91965094509050613e52565b81606001516001600160a01b0316636f8ae202308c8b8d6040518563ffffffff1660e01b8152600401613ded9493929190615484565b600060405180830381600087803b158015613e0757600080fd5b505af1158015613e1b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e439190810190614e0d565b60016040860152919650945090505b80518015613fd15760006001600160a01b03871615613eea576040516370a0823160e01b81526001600160a01b038816906370a0823190613e979030906004016152da565b60206040518083038186803b158015613eaf57600080fd5b505afa158015613ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee79190615176565b90505b60005b82811015613f2657613f1c848281518110613f0457fe5b60200260200101516020015185838151811061122b57fe5b9550600101613eed565b506001600160a01b03871615613fcf576040516370a0823160e01b81526000906001600160a01b038916906370a0823190613f659030906004016152da565b60206040518083038186803b158015613f7d57600080fd5b505afa158015613f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb59190615176565b9050613fcb613fc482846136e0565b88906125a4565b9650505b505b606083015160408051600481526024810182526020810180516001600160e01b0316631f32d1a360e11b179052905160009283926001600160a01b039091169161401b91906152be565b6000604051808303816000865af19150503d8060008114614058576040519150601f19603f3d011682016040523d82523d6000602084013e61405d565b606091505b5091509150846040015180156140705750815b801561408b57508080602001905181019061408b91906150c9565b801561409f57506001600160a01b03881615155b156141075760008960400151116140b657896140bc565b88604001515b99506140df612710611d968c6127100388602001516139d890919063ffffffff16565b6140e9898961426b565b10156141075760405162461bcd60e51b815260040161068790615a4a565b5050505050955095509592505050565b614122838383610e95565b6001600160a01b03831661413557610e95565b609954604051637065accb60e11b81526001600160a01b039091169063e0cb5996906141659085906004016152da565b60206040518083038186803b15801561417d57600080fd5b505afa158015614191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141b591906150c9565b1515600114156141c457610e95565b6141cd8361154e565b15610e955760405162461bcd60e51b815260040161068790615755565b609c5460405163bbbf725b60e01b81526000916001600160a01b03169063bbbf725b9061421b9085906004016152da565b60206040518083038186803b15801561423357600080fd5b505afa158015614247573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c291906150c9565b609c546040516314e03fdd60e11b81526000916001600160a01b0316906329c07fba9061429e908690869060040161559b565b60206040518083038186803b1580156142b657600080fd5b505afa1580156142ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a029190615176565b6001600160a01b038216614349576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61435560008383614117565b60355461436290826125a4565b6035556001600160a01b03821660009081526033602052604090205461438890826125a4565b6001600160a01b0383166000818152603360209081526040808320949094558351858152935192939192600080516020615e928339815191529281900390910190a35050565b6000806143db84866125a4565b905060008382106143f5576143f082856136e0565b6143f8565b60005b905088158015614406575087155b156144145760009250614470565b8861442157869250614470565b87158061442d57508087105b1561443a57809250614470565b600061444e82610f078c611d968c8e6139d8565b905087811161446a5780614463576001614465565b805b61446c565b875b9350505b50509695505050505050565b3b151590565b600054610100900460ff168061449b575061449b612d1e565b806144a9575060005460ff16155b6144e45760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1b602e913960400191505060405180910390fd5b600054610100900460ff16158015612e79576000805460ff1961ff0019909116610100171660011790558015610b02576000805461ff001916905550565b600054610100900460ff168061453b575061453b612d1e565b80614549575060005460ff16155b6145845760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1b602e913960400191505060405180910390fd5b600054610100900460ff161580156145af576000805460ff1961ff0019909116610100171660011790555b82516145c29060369060208601906147f6565b5081516145d69060379060208501906147f6565b506038805460ff191660121790558015610e95576000805461ff0019169055505050565b600054610100900460ff16806146135750614613612d1e565b80614621575060005460ff16155b61465c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1b602e913960400191505060405180910390fd5b600054610100900460ff16158015614687576000805460ff1961ff0019909116610100171660011790555b60016065558015610b02576000805461ff001916905550565b609c5460408051631758078b60e01b815290516000926001600160a01b031691631758078b916004808301926020929190829003018186803b15801561238a57600080fd5b604051806101a0016040528060608152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160001515815260200160006001600160a01b031681525090565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261482c5760008555614872565b82601f1061484557805160ff1916838001178555614872565b82800160010185558215614872579182015b82811115614872578251825591602001919060010190614857565b5061487e929150614882565b5090565b5b8082111561487e5760008155600101614883565b60006148aa6148a584615cfd565b615cbd565b90508281528383830111156148be57600080fd5b828260208301376000602084830101529392505050565b60006148e36148a584615cfd565b90508281528383830111156148f757600080fd5b610a02836020830184615d1e565b60008083601f840112614916578182fd5b5081356001600160401b0381111561492c578182fd5b602083019150836020808302850101111561494657600080fd5b9250929050565b600082601f83011261495d578081fd5b8135602061496d6148a583615ce0565b82815281810190858301855b85811015614a1c5781358801606080601f19838d03011215614999578889fd5b604080518281016001600160401b0382821081831117156149b657fe5b908352848a0135906149c782615d4a565b9082528483013590808211156149db578c8dfd5b508401603f81018e136149ec578b8cfd5b6149fc8e8b830135858401614897565b828b01525092909101359082015284529284019290840190600101614979565b5090979650505050505050565b600082601f830112614a39578081fd5b81516020614a496148a583615ce0565b82815281810190858301855b85811015614a1c5781518801604080601f19838d03011215614a75578889fd5b80518181016001600160401b038282108183111715614a9057fe5b9083528389015190614aa182615d4a565b908252838301519080821115614ab5578b8cfd5b508084019350508b603f840112614aca57898afd5b614ada8c898501518486016148d5565b81890152865250509284019290840190600101614a55565b60008083601f840112614b03578182fd5b5081356001600160401b03811115614b19578182fd5b60208301915083602082850101111561494657600080fd5b600082601f830112614b41578081fd5b610a0283833560208501614897565b600060208284031215614b61578081fd5b8135610a0281615d4a565b600060208284031215614b7d578081fd5b8151610a0281615d4a565b60008060408385031215614b9a578081fd5b8235614ba581615d4a565b91506020830135614bb581615d4a565b809150509250929050565b600080600060608486031215614bd4578081fd5b8335614bdf81615d4a565b92506020840135614bef81615d4a565b929592945050506040919091013590565b600080600080600060808688031215614c17578283fd5b8535614c2281615d4a565b94506020860135614c3281615d4a565b93506040860135925060608601356001600160401b03811115614c53578182fd5b614c5f88828901614af2565b969995985093965092949392505050565b60008060008060808587031215614c85578182fd5b8435614c9081615d4a565b93506020850135614ca081615d4a565b93969395505050506040820135916060013590565b60008060008060808587031215614cca578182fd5b8435614cd581615d4a565b93506020850135614ce581615d5f565b925060408501356001600160401b0380821115614d00578384fd5b614d0c88838901614b31565b93506060870135915080821115614d21578283fd5b50614d2e87828801614b31565b91505092959194509250565b600080600060408486031215614d4e578081fd5b8335614d5981615d4a565b925060208401356001600160401b03811115614d73578182fd5b614d7f86828701614af2565b9497909650939450505050565b60008060408385031215614d9e578182fd5b8235614da981615d4a565b946020939093013593505050565b600080600060608486031215614dcb578081fd5b8335614dd681615d4a565b92506020840135915060408401356001600160401b03811115614df7578182fd5b614e038682870161494d565b9150509250925092565b600080600060608486031215614e21578081fd5b8351614e2c81615d4a565b6020850151604086015191945092506001600160401b03811115614e4e578182fd5b614e0386828701614a29565b600080600060608486031215614e6e578081fd5b8335614e7981615d4a565b95602085013595506040909401359392505050565b600080600080600080600080600060a08a8c031215614eab578687fd5b89356001600160401b0380821115614ec1578889fd5b614ecd8d838e01614905565b909b50995060208c0135915080821115614ee5578889fd5b614ef18d838e01614905565b909950975060408c0135915080821115614f09578586fd5b614f158d838e01614905565b909750955060608c01359150614f2a82615d4a565b90935060808b01359080821115614f3f578384fd5b50614f4c8c828d01614af2565b915080935050809150509295985092959850929598565b60006020808385031215614f75578182fd5b82516001600160401b0380821115614f8b578384fd5b818501915085601f830112614f9e578384fd5b8151614fac6148a582615ce0565b818152848101908486016040808502870188018b1015614fca578889fd5b8896505b8487101561502d5780828c031215614fe4578889fd5b80518181018181108882111715614ff757fe5b8252825161500481615d4a565b81528289015161501381615d5f565b818a01528452600196909601959287019290810190614fce565b50909998505050505050505050565b60006020828403121561504d578081fd5b81516001600160401b03811115615062578182fd5b610edc84828501614a29565b60008060208385031215615080578182fd5b82356001600160401b03811115615095578283fd5b6150a185828601614905565b90969095509350505050565b6000602082840312156150be578081fd5b8135610a0281615d5f565b6000602082840312156150da578081fd5b8151610a0281615d5f565b6000602082840312156150f6578081fd5b81516001600160401b0381111561510b578182fd5b8201601f8101841361511b578182fd5b610edc848251602084016148d5565b6000806040838503121561513c578182fd5b825161ffff8116811461514d578283fd5b6020840151909250614bb581615d5f565b60006020828403121561516f578081fd5b5035919050565b600060208284031215615187578081fd5b5051919050565b600080604083850312156151a0578182fd5b8235915060208301356001600160401b038111156151bc578182fd5b6151c88582860161494d565b9150509250929050565b600080604083850312156151e4578182fd5b50508035926020909101359150565b60008060408385031215615205578182fd5b505080516020909101519092909150565b600080600080600060a0868803121561522d578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526152aa816020860160208601615d1e565b601f01601f19169290920160200192915050565b600082516152d0818460208701615d1e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b600061012080830160018060a01b03808e1685526020818e168187015260408d8188015260608d818901528c60808901528b60a08901528a60c08901528560e0890152849550895180865261014089019650838b019550875b818110156153b657865180518716895285810151868a01528401511515848901529682019695840195600101615385565b505050505061010094909401949094529b9a5050505050505050505050565b6001600160a01b039a8b168152988a1660208a01529690981660408801526060870194909452608086019290925260a085015260c084015260e08301526101008201929092526101208101919091526101400190565b6001600160a01b0384811682528316602082015260606040820181905260009061184d90830184615292565b6001600160a01b03948516815292909316602083015261ffff166040820152606081019190915260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b0386811682528581166020830152604082018590528316606082015260a06080820181905260009061136190830184615292565b6001600160a01b03868116825285166020820152604081018490526080606082018190526000906113619083018486615268565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906155599083018486615268565b98975050505050505050565b6001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6001600160e01b031991909116815260200190565b61ffff91909116815260200190565b600060208252610a026020830184615292565b6020808252600f908201526e18995b1bddc81d1a1c995cda1bdb19608a1b604082015260600190565b602080825260129082015271696e76616c6964206173736574206461746160701b604082015260600190565b6020808252601790820152761a5b9d985b1a59081b1a5c5d5a591a5d1e535a5b9d1959604a1b604082015260600190565b6020808252601290820152711391951cc81b9bdd081cdd5c1c1bdc9d195960721b604082015260600190565b6020808252600c908201526b1b9bdd081d995c9a599a595960a21b604082015260600190565b6020808252601390820152721b995959081dda5d1a191c985dc8185cdcd95d606a1b604082015260600190565b60208082526013908201527234b73b30b634b2103a3930b739b0b1ba34b7b760691b604082015260600190565b6020808252601390820152726f6e6c79206f776e65722c20666163746f727960681b604082015260600190565b6020808252600f908201526e636f6f6c646f776e2061637469766560881b604082015260600190565b6020808252601c908201527b6f6e6c79206d616e616765722c207472616465722c207075626c696360201b604082015260600190565b6020808252600c908201526b6f6e6c79206d656d6265727360a01b604082015260600190565b6020808252600c908201526b37b7363c9036b0b730b3b2b960a11b604082015260600190565b6020808252601290820152716e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601b908201527a37b7363c903837b7b610333630b9b4103637b0b71037b934b3b4b760291b604082015260600190565b6020808252600f908201526e0e6eae0e0d8f240dad2e6dac2e8c6d608b1b604082015260600190565b6020808252600f908201526e696e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d195e1a5d1199594819985a5b195960921b604082015260600190565b6020808252600e908201526d0ecc2d8eaca40dad2e6dac2e8c6d60931b604082015260600190565b6020808252600c908201526b1bdb9b1e48185b1b1bddd95960a21b604082015260600190565b6020808252600990820152681d1e0819985a5b195960ba1b604082015260600190565b60208082526010908201526f34b73b30b634b21031b7b7b63237bbb760811b604082015260600190565b6020808252600e908201526d185cdcd95d08191a5cd8589b195960921b604082015260600190565b602080825260119082015270696e76616c696420746f6c6572616e636560781b604082015260600190565b6020808252600d908201526c6869676820736c69707061676560981b604082015260600190565b6020808252601590820152741a5b9d985b1a590819195c1bdcda5d08185cdcd95d605a1b604082015260600190565b60208082526011908201527031b0b7103bb4ba34323930bb9039b7b7b760791b604082015260600190565b6020808252601690820152756869676820776974686472617720736c69707061676560501b604082015260600190565b60208082526010908201526f18dbdb9d1c9858dd1cc81c185d5cd95960821b604082015260600190565b6020808252600d908201526c1a5b9d985b1a590819dd585c99609a1b604082015260600190565b6020808252600b908201526a1c1bdbdb081c185d5cd95960aa1b604082015260600190565b60208082526010908201526f1b995959081b5a5b8819195c1bdcda5d60821b604082015260600190565b6020808252601490820152736f6e6c792067756172646564206164647265737360601b604082015260600190565b6020808252601490820152731a5b9d985b1a59081b195b991a5b99c81c1bdbdb60621b604082015260600190565b60006020825282516101a0806020850152615b956101c0850183615292565b915060208501516040850152604085015160608501526060850151615bbd6080860182615255565b506080850151848303601f190160a0860152615bd98382615292565b92505060a085015160c085015260c0850151615bf860e0860182615262565b5060e08501516101008581019190915285015161012080860191909152850151610140808601919091528501516101608086019190915285015161018080860191909152909401519390920192909252919050565b90815260200190565b60ff91909116815260200190565b6000808335601e19843603018112615c7a578283fd5b8301803591506001600160401b03821115615c93578283fd5b60200191503681900382131561494657600080fd5b60008235603e198336030181126152d0578182fd5b6040518181016001600160401b0381118282101715615cd857fe5b604052919050565b60006001600160401b03821115615cf357fe5b5060209081020190565b60006001600160401b03821115615d1057fe5b50601f01601f191660200190565b60005b83811015615d39578181015183820152602001615d21565b838111156126605750506000910152565b6001600160a01b0381168114610b0257600080fd5b8015158114610b0257600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b25b79c4dca4334fddea161d035947951ca33a264e6939d0beee473418888cdc64736f6c63430007060033