0 txs
3.1k calls
constructor
No constructor.
functions
BORROW_POSITION_PROXY
viewfunction BORROW_POSITION_PROXY() view returns (address)
DOLOMITE_MARGIN
viewfunction DOLOMITE_MARGIN() view returns (address)
dolomiteRegistry
viewfunction dolomiteRegistry() view returns (address)
isExternalRedemptionPaused
viewfunction isExternalRedemptionPaused() view returns (bool)
marketId
viewfunction marketId() view returns (uint256)
OWNER
viewfunction OWNER() view returns (address)
registry
viewfunction registry() view returns (address)
UNDERLYING_TOKEN
viewfunction UNDERLYING_TOKEN() view returns (address)
underlyingBalanceOf
viewfunction underlyingBalanceOf() view returns (uint256)
VAULT_FACTORY
viewfunction VAULT_FACTORY() view returns (address)
addCollateralAndSwapExactInputForOutput
payablefunction addCollateralAndSwapExactInputForOutput(uint256 _fromAccountNumber, uint256 _borrowAccountNumber, uint256[] _marketIdsPath, uint256 _inputAmountWei, uint256 _minOutputAmountWei, tuple[] _tradersPath, tuple[] _makerAccounts, tuple _userConfig) payable
closeBorrowPositionWithOtherTokens
nonpayablefunction closeBorrowPositionWithOtherTokens(uint256 _borrowAccountNumber, uint256 _toAccountNumber, uint256[] _collateralMarketIds)
closeBorrowPositionWithUnderlyingVaultToken
nonpayablefunction closeBorrowPositionWithUnderlyingVaultToken(uint256 _borrowAccountNumber, uint256 _toAccountNumber)
depositIntoVaultForDolomiteMargin
nonpayablefunction depositIntoVaultForDolomiteMargin(uint256 _toAccountNumber, uint256 _amountWei)
executeDepositIntoVault
nonpayablefunction executeDepositIntoVault(address _from, uint256 _amount)
executeWithdrawalFromVault
nonpayablefunction executeWithdrawalFromVault(address _recipient, uint256 _amount)
initialize
nonpayablefunction initialize()
multicall
nonpayablefunction multicall(bytes[] _calls)
openBorrowPosition
payablefunction openBorrowPosition(uint256 _fromAccountNumber, uint256 _toAccountNumber, uint256 _amountWei) payable
openMarginPosition
payablefunction openMarginPosition(uint256 _fromAccountNumber, uint256 _toAccountNumber, uint256 _borrowMarketId, uint256 _amountWei) payable
repayAllForBorrowPosition
nonpayablefunction repayAllForBorrowPosition(uint256 _fromAccountNumber, uint256 _borrowAccountNumber, uint256 _marketId, uint8 _balanceCheckFlag)
swapExactInputForOutput
payablefunction swapExactInputForOutput(uint256 _tradeAccountNumber, uint256[] _marketIdsPath, uint256 _inputAmountWei, uint256 _minOutputAmountWei, tuple[] _tradersPath, tuple[] _makerAccounts, tuple _userConfig) payable
swapExactInputForOutputAndRemoveCollateral
payablefunction swapExactInputForOutputAndRemoveCollateral(uint256 _toAccountNumber, uint256 _borrowAccountNumber, uint256[] _marketIdsPath, uint256 _inputAmountWei, uint256 _minOutputAmountWei, tuple[] _tradersPath, tuple[] _makerAccounts, tuple _userConfig) payable
transferFromPositionWithOtherToken
nonpayablefunction transferFromPositionWithOtherToken(uint256 _borrowAccountNumber, uint256 _toAccountNumber, uint256 _marketId, uint256 _amountWei, uint8 _balanceCheckFlag)
transferFromPositionWithUnderlyingToken
nonpayablefunction transferFromPositionWithUnderlyingToken(uint256 _borrowAccountNumber, uint256 _toAccountNumber, uint256 _amountWei)
transferIntoPositionWithOtherToken
nonpayablefunction transferIntoPositionWithOtherToken(uint256 _fromAccountNumber, uint256 _borrowAccountNumber, uint256 _marketId, uint256 _amountWei, uint8 _balanceCheckFlag)
transferIntoPositionWithUnderlyingToken
nonpayablefunction transferIntoPositionWithUnderlyingToken(uint256 _fromAccountNumber, uint256 _borrowAccountNumber, uint256 _amountWei)
withdrawFromVaultForDolomiteMargin
nonpayablefunction withdrawFromVaultForDolomiteMargin(uint256 _fromAccountNumber, uint256 _amountWei)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613adc806100206000396000f3fe6080604052600436106101b75760003560e01c8063797b5125116100ec578063a9f471581161008a578063bd12584f11610064578063bd12584f1461044c578063bdd019e914610461578063f4a2924c14610481578063fa93d69a146104a157600080fd5b8063a9f47158146103f9578063ac9650d81461040c578063b0463d5c1461042c57600080fd5b80638bc179b8116100c65780638bc179b81461038f5780638ddab4e5146103b15780639cd7a1c4146103d1578063a4668594146103e657600080fd5b8063797b5125146103455780637b103999146103655780638129fc1c1461037a57600080fd5b806329db1be611610159578063565e424011610133578063565e4240146102dd5780636ed71ede146102f05780636ee3102114610312578063739a09b81461032557600080fd5b806329db1be6146102a05780632ee3d92f146102b5578063359e125f146102ca57600080fd5b8063117803e311610195578063117803e31461022957806315c14a4a1461023e578063258aecf61461026057806325ffd1361461028057600080fd5b806304a192cd146101bc5780630d423941146101de578063103f2907146101fe575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046124f9565b6104c1565b005b3480156101ea57600080fd5b506101dc6101f9366004612571565b6104f0565b34801561020a57600080fd5b50610213610519565b60405161022091906125ce565b60405180910390f35b34801561023557600080fd5b50610213610552565b34801561024a57600080fd5b50610253610582565b60405161022091906125fb565b34801561026c57600080fd5b506101dc61027b366004612609565b6105fc565b34801561028c57600080fd5b506101dc61029b366004612609565b610627565b3480156102ac57600080fd5b50610213610644565b3480156102c157600080fd5b506102536106be565b6101dc6102d836600461270f565b610700565b6101dc6102eb36600461281e565b6107ab565b3480156102fc57600080fd5b506103056108b9565b604051610220919061291f565b6101dc61032036600461270f565b610933565b34801561033157600080fd5b506101dc6103403660046124f9565b6109c8565b34801561035157600080fd5b506101dc610360366004612941565b6109e7565b34801561037157600080fd5b50610253610a27565b34801561038657600080fd5b506101dc610a69565b34801561039b57600080fd5b506103a4610a73565b604051610220919061296b565b3480156103bd57600080fd5b506101dc6103cc366004612941565b610b5d565b3480156103dd57600080fd5b50610305610b86565b6101dc6103f4366004612979565b610bd3565b6101dc610407366004612609565b610c08565b34801561041857600080fd5b506101dc610427366004612b8c565b610c2d565b34801561043857600080fd5b506101dc610447366004612bc6565b610cab565b34801561045857600080fd5b50610253610cc9565b34801561046d57600080fd5b506101dc61047c366004612c1e565b610d0b565b34801561048d57600080fd5b506101dc61049c366004612571565b610d29565b3480156104ad57600080fd5b506101dc6104bc366004612571565b610d45565b6104c9610d61565b336104d381610df0565b6104e08686868686610e3e565b506104e9610ebc565b5050505050565b6104f8610d61565b3361050281610df0565b61050c8383610ef0565b50610515610ebc565b5050565b600061054d61054960017f4c711eee7e3094af1816c5450bcb78a8ffe46729a7979be7e0bf539fb4d4eef3612ca1565b5490565b905090565b600061054d61054960017fa7b53796fd2d99cb1f5ae019b54f9e024446c3d12b483f733ccc62ed04eb126b612ca1565b600061058c610519565b6001600160a01b03166315c14a4a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105c457600080fd5b505afa1580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054d9190612ccc565b610604610d61565b3361060e81610df0565b610619848484610f2b565b50610622610ebc565b505050565b61062f610d61565b3361063981610df0565b610619848484610f41565b600061064e610519565b6001600160a01b03166329db1be66040518163ffffffff1660e01b815260040160206040518083038186803b15801561068657600080fd5b505afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054d9190612cf8565b60006106c8610519565b6001600160a01b0316632ee3d92f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105c457600080fd5b610708610d61565b3361071281610fb3565b61071a611091565b6107958c8c8c8c8c8c61072d8c8e612e12565b8b8b808060200260200160405190810160405280939291908181526020016000905b8282101561077b5761076c60408302860136819003810190612e69565b8152602001906001019061074f565b506107909350505050368c90038c018c612f00565b6110bd565b5061079e610ebc565b5050505050505050505050565b6107b3610d61565b336107bd81610fb3565b6107c5611091565b60006040518060e001604052808d81526020018c8c80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505090825250602081018b9052604081018a9052606001610829888a612e12565b81526020018686808060200260200160405190810160405280939291908181526020016000905b8282101561087c5761086d60408302860136819003810190612e69565b81526020019060010190610850565b505050918352505060200161089636869003860186612f00565b905290506108a381611141565b50506108ad610ebc565b50505050505050505050565b60006108c3610519565b6001600160a01b0316636ed71ede6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108fb57600080fd5b505afa15801561090f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054d9190612f2c565b61093b610d61565b3361094581610fb3565b61094d611091565b6107958c8c8c8c8c8c6109608c8e612e12565b8b8b808060200260200160405190810160405280939291908181526020016000905b828210156109ae5761099f60408302860136819003810190612e69565b81526020019060010190610982565b506109c39350505050368c90038c018c612f00565b61170e565b6109d0610d61565b336109da81610df0565b6104e08686868686611757565b336109f18161185c565b6001600160a01b038316301415610a0a57610a0a612f4d565b6106228383610a17610644565b6001600160a01b031691906118a9565b6000610a31610519565b6001600160a01b03166353769bbf6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105c457600080fd5b610a716118ff565b565b6000610a7d610a27565b6001600160a01b031663287b448d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed9190612ccc565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b2557600080fd5b505afa158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054d9190612f76565b33610b678161185c565b610622833084610b75610644565b6001600160a01b031692919061195c565b6000610b90610644565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401610bbb91906125ce565b60206040518083038186803b1580156108fb57600080fd5b610bdb610d61565b33610be581610df0565b610bed611091565b610bf98585858561197d565b50610c02610ebc565b50505050565b610c10610d61565b33610c1a81610df0565b610c22611091565b6106198484846119f2565b33610c3781610df0565b73a665ef04a4da96205981c8844abc054311b555cf638ae060f083610c5a610cc9565b6040518363ffffffff1660e01b8152600401610c77929190613067565b60006040518083038186803b158015610c8f57600080fd5b505af4158015610ca3573d6000803e3d6000fd5b505050505050565b610cb3610d61565b33610cbd81610df0565b610bf985858585611a08565b6000610cd3610a27565b6001600160a01b031663bd12584f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105c457600080fd5b610d13610d61565b33610d1d81610df0565b610bf985858585611a47565b610d31610d61565b33610d3b81610df0565b61050c8383611a6d565b610d4d610d61565b33610d5781611aa8565b61050c8383611b20565b610dbc6002610d9461054960017f2055d34ef4e6ac2e46f60705e95454cb98afb4f8e76d000ade51a7e920260b62612ca1565b1415600080516020613a878339815191526d1499595b9d1c985b9d0818d85b1b60921b611b5b565b610a71610dea60017f2055d34ef4e6ac2e46f60705e95454cb98afb4f8e76d000ade51a7e920260b62612ca1565b60029055565b610e3b610dfb610552565b6001600160a01b0316826001600160a01b031614600080516020613a878339815191527213db9b1e481bdddb995c8818d85b8818d85b1b606a1b84611bb9565b50565b604051634dcae86960e01b815273a665ef04a4da96205981c8844abc054311b555cf90634dcae86990610e85903090899089908990899089906001906000906004016130cb565b60006040518083038186803b158015610e9d57600080fd5b505af4158015610eb1573d6000803e3d6000fd5b505050505050505050565b610a71610eea60017f2055d34ef4e6ac2e46f60705e95454cb98afb4f8e76d000ade51a7e920260b62612ca1565b60019055565b60405163043e6d7160e41b815273a665ef04a4da96205981c8844abc054311b555cf906343e6d71090610c7790309086908690600401613142565b828282610f36611bff565b610ca3868686611c40565b6040516302be155360e31b815273a665ef04a4da96205981c8844abc054311b555cf906315f0aa9890610f7e90309087908790879060040161316a565b60006040518083038186803b158015610f9657600080fd5b505af4158015610faa573d6000803e3d6000fd5b50505050505050565b610e3b610fbe610552565b6001600160a01b0316826001600160a01b0316148061105b5750610fe0610519565b6001600160a01b03166316774ba0836040518263ffffffff1660e01b815260040161100b91906125ce565b60206040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105b9190612f76565b600080516020613a878339815191527f4f6e6c79206f776e6572206f7220636f6e7665727465722063616e2063616c6c84611bb9565b610a713415600080516020613a878339815191526e086c2dcdcdee840e6cadcc8408aa89608b1b611b5b565b60405163b59abc5f60e01b815273a665ef04a4da96205981c8844abc054311b555cf9063b59abc5f906111069030908d908d908d908d908d908d908d908d908d9060040161337e565b60006040518083038186803b15801561111e57600080fd5b505af4158015611132573d6000803e3d6000fd5b50505050505050505050505050565b8051602082015160408301516000611157610a73565b6040805180820190915260008082526020820152909150604080518082019091523081526020810186905282156112c057600085600187516111999190612ca1565b815181106111a9576111a961341b565b602002602001015190506111f76111be6108b9565b821415600080516020613a678339815191527f43616e6e6f74207a617020746f206d61726b6574207768656e2070617573656484611c7d565b6111ff610582565b6001600160a01b031663c190c2ec83836040518363ffffffff1660e01b815260040161122c929190613431565b604080518083038186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127b919061348a565b92506112be61128984611ca9565b600080516020613a678339815191527f5a6170732063616e206f6e6c79207265706179207768656e2070617573656400611b5b565b505b6112c987611cc5565b8215610faa5760006112d9610582565b90506000866000815181106112f0576112f061341b565b602002602001015190506000876001895161130b9190612ca1565b8151811061131b5761131b61341b565b602002602001015190506000836001600160a01b03166347d1b53c86856040518363ffffffff1660e01b8152600401611355929190613431565b604080518083038186803b15801561136c57600080fd5b505afa158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613503565b90506113fe6113b282611d56565b806113c8575060208201516001600160801b0316155b600080516020613a678339815191527f43616e6e6f74206c65766572207570207768656e20706175736564000000000086611c7d565b60405163306430bb60e21b81526000906001600160a01b0386169063c190c2ec9061142f9089908790600401613431565b604080518083038186803b15801561144657600080fd5b505afa15801561145a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147e919061348a565b9050600061148c8289611d75565b90506000866001600160a01b0316638928378e876040518263ffffffff1660e01b81526004016114bc919061291f565b60206040518083038186803b1580156114d457600080fd5b505afa1580156114e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150c919061355a565b51611517908c61357b565b90506000876001600160a01b0316638928378e876040518263ffffffff1660e01b8152600401611547919061291f565b60206040518083038186803b15801561155f57600080fd5b505afa158015611573573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611597919061355a565b5160208401516115a7919061357b565b905060006115b3610cc9565b6001600160a01b0316632ba813046040518163ffffffff1660e01b815260040160206040518083038186803b1580156115eb57600080fd5b505afa1580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116239190612f2c565b9050600061162f610cc9565b6001600160a01b031663389bc5d36040518163ffffffff1660e01b815260040160206040518083038186803b15801561166757600080fd5b505afa15801561167b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169f9190612f2c565b90506116fb816116af848761357b565b6116b991906135b0565b6116c39086612ca1565b841015600080516020613a678339815191527f556e61636365707461626c65207472616465207768656e207061757365640000611b5b565b5050505050505050505050505050505050565b60405163967c6f6b60e01b815273a665ef04a4da96205981c8844abc054311b555cf9063967c6f6b906111069030908d908d908d908d908d908d908d908d908d9060040161337e565b84848484846000611766610582565b6040805180820182523081526020810189905290516311f46d4f60e21b81526001600160a01b0392909216916347d1b53c916117a6918890600401613431565b604080518083038186803b1580156117bd57600080fd5b505afa1580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f59190613503565b90506118048b8b8b8b8b611dc3565b61180c610a73565b1561079e5761185361181d82611d56565b600080516020613a678339815191527f43616e6e6f74206c65766572207570207768656e20706175736564000000000087611c7d565b61079e86611e07565b610e3b611867610519565b6001600160a01b0316826001600160a01b031614600080516020613a878339815191527413db9b1e48199858dd1bdc9e4818d85b8818d85b1b605a1b84611bb9565b6106228363a9059cbb60e01b84846040516024016118c89291906135c4565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611edb565b610ebc61193061054960017f059687b4dba0a8c0c94866b6d34b3f94074057ac6e4d8d39cf07d3a0a55f2050612ca1565b15600080516020613a8783398151915272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b611b5b565b610c02846323b872dd60e01b8585856040516024016118c8939291906135df565b6040516359b3526560e01b815273a665ef04a4da96205981c8844abc054311b555cf906359b35265906119bc90309088908890889088906004016135fa565b60006040518083038186803b1580156119d457600080fd5b505af41580156119e8573d6000803e3d6000fd5b5050505050505050565b8282826119fd611bff565b610ca3868686611f6d565b60405163508f47dd60e11b815273a665ef04a4da96205981c8844abc054311b555cf9063a11e8fba906119bc9030908890889088908890600401613646565b83838383611a5788888888611fa9565b611a5f610a73565b156119e8576119e884611e07565b60405163d5e3aed360e01b815273a665ef04a4da96205981c8844abc054311b555cf9063d5e3aed390610c7790309086908690600401613142565b610e3b611ab3610552565b6001600160a01b0316826001600160a01b03161480611aea5750611ad5610519565b6001600160a01b0316826001600160a01b0316145b600080516020613a878339815191527f4f6e6c79206f776e6572206f7220666163746f72792063616e2063616c6c000084611bb9565b604051631dfa88e760e11b815273a665ef04a4da96205981c8844abc054311b555cf90633bf511ce90610c7790309086908690600401613142565b8261062257611b6982611feb565b6101d160f51b611b7883611feb565b604051602001611b8a939291906136ba565b60408051601f198184030181529082905262461bcd60e51b8252611bb0916004016136e2565b60405180910390fd5b83610c0257611bc783611feb565b6101d160f51b611bd684611feb565b61080f60f21b611be585612086565b604051611b8a959493929190601f60f91b90602001613703565b610a71611c0a610a73565b15600080516020613a678339815191527f43616e6e6f742065786563757465207768656e20706175736564000000000000611b5b565b60405163225f6bc760e21b815273a665ef04a4da96205981c8844abc054311b555cf9063897daf1c90610f7e90309087908790879060040161316a565b83610c0257611c8b83611feb565b6101d160f51b611c9a84611feb565b61080f60f21b611be5856121cc565b8051600090158015611cbf575060008260200151115b92915050565b805160208201516040808401516060850151608086015160a087015160c088015194516323b0865760e01b815273a665ef04a4da96205981c8844abc054311b555cf976323b0865797611d2a97309792969195929491936001906000906004016137b3565b60006040518083038186803b158015611d4257600080fd5b505af41580156104e9573d6000803e3d6000fd5b80516000908015611cbf575050602001516001600160801b0316151590565b604080518082018252600080825260208083018290528351808501855282815281019190915282518084019093528351158352838101519083015290611dbc9084906122d7565b9392505050565b604051637e0f4c7f60e01b815273a665ef04a4da96205981c8844abc054311b555cf90637e0f4c7f90610e859030908990899089908990899060009060040161384e565b6000611e11610582565b6040805180820182523081526020810185905290516317b5052560e01b81526001600160a01b0392909216916317b5052591611e4f916004016138b6565b60206040518083038186803b158015611e6757600080fd5b505afa158015611e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9f9190612f2c565b90506105158115600080516020613a678339815191527f43616e6e6f74206c65766572207570207768656e207061757365640000000000611b5b565b6000611f30826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123819092919063ffffffff16565b9050805160001480611f51575080806020019051810190611f519190612f76565b6106225760405162461bcd60e51b8152600401611bb09061390e565b60405162987d3960e61b815273a665ef04a4da96205981c8844abc054311b555cf9063261f4e4090610f7e90309087908790879060040161316a565b604051600162396b2560e21b0319815273a665ef04a4da96205981c8844abc054311b555cf9063ff1a536c906119bc903090889088908890889060040161391e565b60606000826040516020016120009190613959565b60408051601f19818403018152919052905060205b801561206b57806120258161396e565b91505081818151811061203a5761203a61341b565b01602001516001600160f81b0319161561206657600061205b826001613985565b835250909392505050565b612015565b5060408051600080825260208201909252905b509392505050565b60408051602a80825260608281019093526001600160a01b03841691600091602082018180368337019050509050603060f81b816000815181106120cc576120cc61341b565b60200101906001600160f81b031916908160001a905350607860f81b816001815181106120fb576120fb61341b565b60200101906001600160f81b031916908160001a90535060005b601481101561207e57600061212b82600261357b565b9050612139600f8516612398565b83612145836029612ca1565b815181106121555761215561341b565b60200101906001600160f81b031916908160001a905350600484901c935061217f600f8516612398565b8361218b836028612ca1565b8151811061219b5761219b61341b565b60200101906001600160f81b031916908160001a9053505060049290921c91806121c48161399d565b915050612115565b6060816121f05750506040805180820190915260018152600360fc1b602082015290565b8160005b811561221a57806122048161399d565b91506122139050600a836135b0565b91506121f4565b6000816001600160401b03811115612234576122346129dd565b6040519080825280601f01601f19166020018201604052801561225e576020820181803683370190505b508593509050815b80156122ce57806122768161396e565b91506122859050600a856139b8565b612290906030613985565b60f81b8282815181106122a5576122a561341b565b60200101906001600160f81b031916908160001a9053506122c7600a856135b0565b9350612266565b50949350505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152825184511515901515141561233257835115158152602080840151908501516123289190613985565b6020820152611dbc565b826020015184602001511061235b57835115158152602080840151908501516123289190612ca1565b825115158152602080850151908401516123759190612ca1565b60208201529392505050565b606061239084846000856123c2565b949350505050565b6000600a8210156123b7576123ae603083613985565b60f81b92915050565b6123ae605783613985565b6060824710156123e45760405162461bcd60e51b8152600401611bb090613a0f565b600080866001600160a01b031685876040516124009190613a1f565b60006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b50915091506124538783838761245e565b979650505050505050565b6060831561249a578251612493576001600160a01b0385163b6124935760405162461bcd60e51b8152600401611bb090613a2b565b5081612390565b61239083838151156124af5781518083602001fd5b8060405162461bcd60e51b8152600401611bb091906136e2565b805b8114610e3b57600080fd5b8035611cbf816124c9565b60048110610e3b57600080fd5b8035611cbf816124e1565b600080600080600060a0868803121561251457612514600080fd5b600061252088886124d6565b9550506020612531888289016124d6565b9450506040612542888289016124d6565b9350506060612553888289016124d6565b9250506080612564888289016124ee565b9150509295509295909350565b6000806040838503121561258757612587600080fd5b600061259385856124d6565b92505060206125a4858286016124d6565b9150509250929050565b60006001600160a01b038216611cbf565b6125c8816125ae565b82525050565b60208101611cbf82846125bf565b6000611cbf826125ae565b6000611cbf826125dc565b6125c8816125e7565b60208101611cbf82846125f2565b60008060006060848603121561262157612621600080fd5b600061262d86866124d6565b935050602061263e868287016124d6565b925050604061264f868287016124d6565b9150509250925092565b60008083601f84011261266e5761266e600080fd5b5081356001600160401b0381111561268857612688600080fd5b6020830191508360208202830111156126a3576126a3600080fd5b9250929050565b60008083601f8401126126bf576126bf600080fd5b5081356001600160401b038111156126d9576126d9600080fd5b6020830191508360408202830111156126a3576126a3600080fd5b60006060828403121561270957612709600080fd5b50919050565b60008060008060008060008060008060006101408c8e03121561273457612734600080fd5b60006127408e8e6124d6565b9b505060206127518e828f016124d6565b9a505060408c01356001600160401b0381111561277057612770600080fd5b61277c8e828f01612659565b9950995050606061278f8e828f016124d6565b97505060806127a08e828f016124d6565b96505060a08c01356001600160401b038111156127bf576127bf600080fd5b6127cb8e828f01612659565b955095505060c08c01356001600160401b038111156127ec576127ec600080fd5b6127f88e828f016126aa565b935093505060e061280b8e828f016126f4565b9150509295989b509295989b9093969950565b6000806000806000806000806000806101208b8d03121561284157612841600080fd5b600061284d8d8d6124d6565b9a505060208b01356001600160401b0381111561286c5761286c600080fd5b6128788d828e01612659565b9950995050604061288b8d828e016124d6565b975050606061289c8d828e016124d6565b96505060808b01356001600160401b038111156128bb576128bb600080fd5b6128c78d828e01612659565b955095505060a08b01356001600160401b038111156128e8576128e8600080fd5b6128f48d828e016126aa565b935093505060c06129078d828e016126f4565b9150509295989b9194979a5092959850565b806125c8565b60208101611cbf8284612919565b6124cb816125ae565b8035611cbf8161292d565b6000806040838503121561295757612957600080fd5b60006125938585612936565b8015156125c8565b60208101611cbf8284612963565b6000806000806080858703121561299257612992600080fd5b600061299e87876124d6565b94505060206129af878288016124d6565b93505060406129c0878288016124d6565b92505060606129d1878288016124d6565b91505092959194509250565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715612a1857612a186129dd565b6040525050565b6000612a2a60405190565b9050612a3682826129f3565b919050565b60006001600160401b03821115612a5457612a546129dd565b5060209081020190565b60006001600160401b03821115612a7757612a776129dd565b601f19601f83011660200192915050565b82818337506000910152565b6000612aa7612aa284612a5e565b612a1f565b905082815260208101848484011115612ac257612ac2600080fd5b61207e848285612a88565b600082601f830112612ae157612ae1600080fd5b8135612390848260208601612a94565b6000612aff612aa284612a3b565b83815290506020808201908402830185811115612b1e57612b1e600080fd5b835b81811015612b5e5780356001600160401b03811115612b4157612b41600080fd5b808601612b4e8982612acd565b8552505060209283019201612b20565b5050509392505050565b600082601f830112612b7c57612b7c600080fd5b8135612390848260208601612af1565b600060208284031215612ba157612ba1600080fd5b81356001600160401b03811115612bba57612bba600080fd5b61239084828501612b68565b60008060008060808587031215612bdf57612bdf600080fd5b6000612beb87876124d6565b9450506020612bfc878288016124d6565b9350506040612c0d878288016124d6565b92505060606129d1878288016124ee565b60008060008060608587031215612c3757612c37600080fd5b6000612c4387876124d6565b9450506020612c54878288016124d6565b93505060408501356001600160401b03811115612c7357612c73600080fd5b612c7f87828801612659565b95989497509550505050565b634e487b7160e01b600052601160045260246000fd5b600082821015612cb357612cb3612c8b565b500390565b6124cb816125dc565b8051611cbf81612cb8565b600060208284031215612ce157612ce1600080fd5b60006123908484612cc1565b8051611cbf8161292d565b600060208284031215612d0d57612d0d600080fd5b60006123908484612ced565b600060808284031215612d2e57612d2e600080fd5b612d386080612a1f565b90506000612d4684846124ee565b8252506020612d57848483016124d6565b6020830152506040612d6b84828501612936565b60408301525060608201356001600160401b03811115612d8d57612d8d600080fd5b612d9984828501612acd565b60608301525092915050565b6000612db3612aa284612a3b565b83815290506020808201908402830185811115612dd257612dd2600080fd5b835b81811015612b5e5780356001600160401b03811115612df557612df5600080fd5b808601612e028982612d19565b8552505060209283019201612dd4565b6000611dbc368484612da5565b600060408284031215612e3457612e34600080fd5b612e3e6040612a1f565b90506000612e4c8484612936565b8252506020612e5d848483016124d6565b60208301525092915050565b600060408284031215612e7e57612e7e600080fd5b60006123908484612e1f565b60038110610e3b57600080fd5b8035611cbf81612e8a565b600060608284031215612eb757612eb7600080fd5b612ec16060612a1f565b90506000612ecf84846124d6565b8252506020612ee0848483016124ee565b6020830152506040612ef484828501612e97565b60408301525092915050565b600060608284031215612f1557612f15600080fd5b60006123908484612ea2565b8051611cbf816124c9565b600060208284031215612f4157612f41600080fd5b60006123908484612f21565b634e487b7160e01b600052600160045260246000fd5b8015156124cb565b8051611cbf81612f63565b600060208284031215612f8b57612f8b600080fd5b60006123908484612f6b565b60005b83811015612fb2578181015183820152602001612f9a565b83811115610c025750506000910152565b6000612fcd825190565b808452602084019350612fe4818560208601612f97565b601f01601f19169290920192915050565b6000611dbc8383612fc3565b600061300b825190565b808452602084019350836020820285016130258560200190565b8060005b8581101561305a57848403895281516130428582612ff5565b94506020830160209a909a0199925050600101613029565b5091979650505050505050565b604080825281016130788185613001565b9050611dbc60208301846125f2565b634e487b7160e01b600052602160045260246000fd5b60048110610e3b57610e3b613087565b80612a368161309d565b6000611cbf826130ad565b6125c8816130b7565b61010081016130da828b6125f2565b6130e7602083018a612919565b6130f46040830189612919565b6131016060830188612919565b61310e6080830187612919565b61311b60a08301866130c2565b61312860c0830185612963565b61313560e0830184612963565b9998505050505050505050565b6060810161315082866125f2565b61315d6020830185612919565b6123906040830184612919565b6080810161317882876125f2565b6131856020830186612919565b6131926040830185612919565b61319f6060830184612919565b95945050505050565b81835260006020840193506001600160fb1b038311156131ca576131ca600080fd5b6020830292506131db838584612a88565b50500190565b805160009060808401906131f585826130c2565b5060208301516132086020860182612919565b50604083015161321b60408601826125bf565b506060830151848203606086015261319f8282612fc3565b6000611dbc83836131e1565b6000613249825190565b808452602084019350836020820285016132638560200190565b8060005b8581101561305a57848403895281516132808582613233565b94506020830160209a909a0199925050600101613267565b805160408301906132a984826125bf565b506020820151610c026020850182612919565b60006132c88383613298565b505060400190565b60006132da825190565b80845260209384019383018060005b8381101561330e5781516132fd88826132bc565b9750602083019250506001016132e9565b509495945050505050565b60038110610e3b57610e3b613087565b80612a3681613319565b6000611cbf82613329565b6125c881613333565b805160608301906133588482612919565b50602082015161336b60208501826130c2565b506040820151610c02604085018261333e565b610160810161338d828d6125f2565b61339a602083018c612919565b6133a7604083018b612919565b81810360608301526133ba81898b6131a8565b90506133c96080830188612919565b6133d660a0830187612919565b81810360c08301526133e8818661323f565b905081810360e08301526133fc81856132d0565b905061340c610100830184613347565b9b9a5050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b6060810161343f8285613298565b611dbc6040830184612919565b60006040828403121561346157613461600080fd5b61346b6040612a1f565b905060006134798484612f6b565b8252506020612e5d84848301612f21565b60006040828403121561349f5761349f600080fd5b6000612390848461344c565b6001600160801b0381166124cb565b8051611cbf816134ab565b6000604082840312156134da576134da600080fd5b6134e46040612a1f565b905060006134f28484612f6b565b8252506020612e5d848483016134ba565b60006040828403121561351857613518600080fd5b600061239084846134c5565b60006020828403121561353957613539600080fd5b6135436020612a1f565b905060006135518484612f21565b82525092915050565b60006020828403121561356f5761356f600080fd5b60006123908484613524565b600081600019048311821515161561359557613595612c8b565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826135bf576135bf61359a565b500490565b604081016135d282856125bf565b611dbc6020830184612919565b606081016135ed82866125bf565b61315d60208301856125bf565b60a0810161360882886125f2565b6136156020830187612919565b6136226040830186612919565b61362f6060830185612919565b61363c6080830184612919565b9695505050505050565b60a0810161365482886125f2565b6136616020830187612919565b61366e6040830186612919565b61367b6060830185612919565b61363c60808301846130c2565b6000613692825190565b6136a0818560208601612f97565b9290920192915050565b6001600160f01b031981166125c8565b60006136c68286613688565b91506136d282856136aa565b60028201915061319f8284613688565b60208082528101611dbc8184612fc3565b6001600160f81b031981166125c8565b600061370f8289613688565b915061371b82886136aa565b60028201915061372b8287613688565b915061373782866136aa565b6002820191506137478285613688565b915061375382846136f3565b506001019695505050505050565b600061376d8383612919565b505060200190565b600061377f825190565b80845260209384019383018060005b8381101561330e5781516137a28882613761565b97506020830192505060010161378e565b61018081016137c2828d6125f2565b6137cf602083018c612919565b81810360408301526137e1818b613775565b90506137f0606083018a612919565b6137fd6080830189612919565b81810360a083015261380f818861323f565b905081810360c083015261382381876132d0565b905061383260e0830186613347565b613840610140830185612963565b61340c610160830184612963565b60e0810161385c828a6125f2565b6138696020830189612919565b6138766040830188612919565b6138836060830187612919565b6138906080830186612919565b61389d60a08301856130c2565b6138aa60c0830184612963565b98975050505050505050565b60408101611cbf8284613298565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015291505b5060400190565b60208082528101611cbf816138c4565b6080810161392c82886125f2565b6139396020830187612919565b6139466040830186612919565b81810360608301526124538184866131a8565b60006139658284612919565b50602001919050565b60008161397d5761397d612c8b565b506000190190565b6000821982111561399857613998612c8b565b500190565b60006000198214156139b1576139b1612c8b565b5060010190565b6000826139c7576139c761359a565b500690565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b60208201529150613907565b60208082528101611cbf816139cc565b6000611dbc8284613688565b60208082528101611cbf81601d81527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060208201526040019056fe49736f6c6174696f6e4d6f64655661756c7456315061757361626c650000000049736f6c6174696f6e4d6f6465546f6b656e5661756c74563100000000000000a2646970667358221220dcbf65386b150b6b0cb29f81e1f1348e563d7d85dcc193747df6ef0ed9ec3b5e64736f6c63430008090033