0 txs
0 calls
constructor
constructor()
functions
applyRatio
viewfunction applyRatio(address pos, address token, uint256 total0, uint256 total1) view returns (uint256 ratioStart, uint256 ratioEnd)
checkPriceChange
viewfunction checkPriceChange(address pos, uint32 _twapInterval, uint256 _priceThreshold) view returns (uint256 price)
clearDeposit
viewfunction clearDeposit(uint256 deposit0, uint256 deposit1, address to, address pos, uint256[4] minIn) view returns (bool cleared)
clearShares
viewfunction clearShares(address pos, uint256 shares) view returns (bool cleared)
deltaScale
viewfunction deltaScale() view returns (uint256)
depositDelta
viewfunction depositDelta() view returns (uint256)
getDepositAmount
viewfunction getDepositAmount(address pos, address token, uint256 _deposit) view returns (uint256 amountStart, uint256 amountEnd)
getListed
viewfunction getListed(address pos, address i) view returns (bool)
getSqrtTwapX96
viewfunction getSqrtTwapX96(address pos, uint32 _twapInterval) view returns (uint160 sqrtPriceX96)
owner
viewfunction owner() view returns (address)
positions
viewfunction positions(address) view returns (bool zeroDeposit, bool customRatio, bool customTwap, bool ratioRemoved, bool depositOverride, bool twapOverride, uint8 version, uint32 twapInterval, uint256 priceThreshold, uint256 deposit0Max, uint256 deposit1Max, uint256 maxTotalSupply, uint256 fauxTotal0, uint256 fauxTotal1)
priceThreshold
viewfunction priceThreshold() view returns (uint256)
twapCheck
viewfunction twapCheck() view returns (bool)
twapInterval
viewfunction twapInterval() view returns (uint32)
addPosition
nonpayablefunction addPosition(address pos, uint8 version)
appendList
nonpayablefunction appendList(address pos, address[] listed)
customDeposit
nonpayablefunction customDeposit(address pos, uint256 deposit0Max, uint256 deposit1Max, uint256 maxTotalSupply)
customRatio
nonpayablefunction customRatio(address pos, bool customRatio, uint256 fauxTotal0, uint256 fauxTotal1)
removeListed
nonpayablefunction removeListed(address pos, address listed)
removeRatio
nonpayablefunction removeRatio(address pos)
setDeltaScale
nonpayablefunction setDeltaScale(uint256 _deltaScale)
setDepositDelta
nonpayablefunction setDepositDelta(uint256 _depositDelta)
setPriceThreshold
nonpayablefunction setPriceThreshold(uint256 _priceThreshold)
setTwapInterval
nonpayablefunction setTwapInterval(uint32 _twapInterval)
setTwapOverride
nonpayablefunction setTwapOverride(address pos, bool twapOverride, uint32 _twapInterval, uint256 _priceThreshold)
toggleDepositOverride
nonpayablefunction toggleDepositOverride(address pos)
toggleDepositZeroOverride
nonpayablefunction toggleDepositZeroOverride(address pos)
toggleTwap
nonpayablefunction toggleTwap()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
CustomDeposit
event CustomDeposit(address, uint256, uint256, uint256)
CustomRatio
event CustomRatio(address pos, uint256 fauxTotal0, uint256 fauxTotal1)
DeltaScaleSet
event DeltaScaleSet(uint256 _deltaScale)
DepositDeltaSet
event DepositDeltaSet(uint256 _depositDelta)
DepositOverrideToggled
event DepositOverrideToggled(address pos)
DepositZeroOverrideToggled
event DepositZeroOverrideToggled(address pos)
DepositZeroToggled
event DepositZeroToggled()
ListAppended
event ListAppended(address pos, address[] listed)
ListRemoved
event ListRemoved(address pos, address listed)
PositionAdded
event PositionAdded(address, uint8)
PriceThresholdPosSet
event PriceThresholdPosSet(address pos, uint256 _priceThreshold)
PriceThresholdSet
event PriceThresholdSet(uint256 _priceThreshold)
RatioRemoved
event RatioRemoved(address pos)
TwapIntervalSet
event TwapIntervalSet(uint32 _twapInterval)
TwapOverrideSet
event TwapOverrideSet(address pos, bool twapOverride, uint32 _twapInterval, uint256 _priceThreshold)
TwapToggled
event TwapToggled()
errors
No errors.
creation bytecode
0x60806040526003805464ffffffffff19166178001790556103f26004556103e8600555606460065534801561003357600080fd5b506001600081905580546001600160a01b031916331790556135f18061005a6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806392e2507811610104578063d0645c51116100a2578063e1fd632e11610071578063e1fd632e146103c9578063f2fde38b146103dc578063f5474d84146103ef578063f7ad504314610402576101cf565b8063d0645c5114610388578063d26e1dff1461039b578063d3ad656b146103a3578063d3e703cf146103b6576101cf565b8063b2fb13c2116100de578063b2fb13c214610352578063b30075fc1461035a578063b9c947611461036d578063cc2f609314610380576101cf565b806392e2507814610319578063937084851461032c578063a6b6be8c1461033f576101cf565b8063686f38f0116101715780636b4049551161014b5780636b404955146102d6578063757c4e1c146102eb578063802fb940146102fe5780638da5cb5b14610311576101cf565b8063686f38f01461029b5780636a9dc0da146102b05780636aa29881146102c3576101cf565b806347628f60116101ad57806347628f601461021a5780634fb52c701461023a57806355f575101461024d5780635ccfb71d1461027a576101cf565b80631d27050f146101d457806331c14ac6146101e95780633c1d5df0146101fc575b600080fd5b6101e76101e2366004612fc3565b610415565b005b6101e76101f73660046129ed565b61049d565b610204610572565b60405161021191906134b5565b60405180910390f35b61022d610228366004612c57565b610583565b6040516102119190612ff4565b6101e7610248366004612ecb565b610836565b61026061025b3660046129ed565b610895565b6040516102119e9d9c9b9a99989796959493929190613162565b61028d610288366004612a41565b61091d565b6040516102119291906134a7565b6102a3610d90565b6040516102119190613157565b6101e76102be366004612ac6565b610d99565b6101e76102d1366004612cc8565b610ebe565b6102de61106f565b604051610211919061349e565b61028d6102f9366004612a81565b611075565b6101e761030c366004612b74565b611323565b61022d61144d565b6102a3610327366004612a09565b61145c565b6102de61033a366004612c8b565b61148e565b6102a361034d366004612bf2565b6115b5565b6101e76116dc565b6101e7610368366004612ecb565b611743565b6101e761037b366004612ba4565b6117a2565b6102de611898565b6101e7610396366004612a09565b61189e565b6102de61196f565b6101e76103b13660046129ed565b611975565b6101e76103c4366004612c1d565b611a3b565b6101e76103d7366004612ecb565b611b0c565b6101e76103ea3660046129ed565b611b6b565b6102a36103fd366004612f1e565b611bdd565b6101e76104103660046129ed565b611f11565b6001546001600160a01b031633146104485760405162461bcd60e51b815260040161043f90613389565b60405180910390fd5b6003805464ffffffff00191661010063ffffffff8416021790556040517fa715e512c9ea089998019d7ece21b384bb7161dc3caf500058fdcb05bc4232f8906104929083906134b5565b60405180910390a150565b6001546001600160a01b031633146104c75760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff1661050a5760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03831660009081526002602052604090819020805463ff0000001916630100000017815590517f3ab598f022d1ad649eef5db68128f85debd6a7bf6a29ae11d4b01dd110ef15b790610564908690612ff4565b60405180910390a150505050565b600354610100900463ffffffff1681565b6000826001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105be57600080fd5b505afa1580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f69190612e04565b6001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040160e06040518083038186803b15801561062e57600080fd5b505afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106669190612e3a565b50949550505063ffffffff85161592506108309150505760408051600280825260608201835260009260208301908036833701905050905082816000815181106106ac57fe5b602002602001019063ffffffff16908163ffffffff16815250506000816001815181106106d557fe5b602002602001019063ffffffff16908163ffffffff16815250506000846001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561072a57600080fd5b505afa15801561073e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107629190612e04565b6001600160a01b0316639d3a5241836040518263ffffffff1660e01b815260040161078d919061310d565b60006040518083038186803b1580156107a557600080fd5b505afa1580156107b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e19190810190612cf5565b505050905061082b8463ffffffff16826000815181106107fd57fe5b60200260200101518360018151811061081257fe5b60200260200101510360060b8161082557fe5b05611fe6565b925050505b92915050565b6001546001600160a01b031633146108605760405162461bcd60e51b815260040161043f90613389565b60068190556040517fa1e8a7779c35eb2e6161f5b0a5dbf6bcaf16f317d166788bfae1ea33eb210fc09061049290839061349e565b6002602081905260009182526040909120805460018201549282015460038301546004840154600585015460069095015460ff808616976101008704821697620100008804831697630100000081048416976401000000008204851697600160281b8304861697600160301b840490961696600160381b90930463ffffffff1695919390928e565b600080846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561095957600080fd5b505afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190612e04565b6001600160a01b0316846001600160a01b03161480610a315750846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e457600080fd5b505afa1580156109f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c9190612e04565b6001600160a01b0316846001600160a01b0316145b610a4d5760405162461bcd60e51b815260040161043f90613227565b60008311610a6d5760405162461bcd60e51b815260040161043f9061327f565b600080866001600160a01b031663c4a7761e6040518163ffffffff1660e01b8152600401604080518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae09190612efb565b91509150866001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1d57600080fd5b505afa158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190612ee3565b1580610b5f575081155b80610b68575080155b15610cec5760009350866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610baa57600080fd5b505afa158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be29190612e04565b6001600160a01b0316866001600160a01b03161415610c7357866001600160a01b0316634d461fbb6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3457600080fd5b505afa158015610c48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6c9190612ee3565b9250610ce7565b866001600160a01b031663648cab856040518163ffffffff1660e01b815260040160206040518083038186803b158015610cac57600080fd5b505afa158015610cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce49190612ee3565b92505b610d86565b6001600160a01b0387166000908152600260205260408120548190610100900460ff16610d2457610d1f89898686611075565b610d55565b6001600160a01b03891660009081526002602052604090206005810154600690910154610d55918b918b9190611075565b91509150610d6c87670de0b6b3a764000084612318565b9550610d8187670de0b6b3a764000083612318565b945050505b5050935093915050565b60035460ff1681565b6001546001600160a01b03163314610dc35760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03821660009081526002602052604090208054839190600160301b900460ff16610e065760405162461bcd60e51b815260040161043f90613427565b6001600160a01b0384166000908152600260205260408120905b84518160ff161015610e7d576001826007016000878460ff1681518110610e4357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610e20565b507f587820c8cbf51b999284b47677716a04cf5da2568b643ec21ef498bd201baea98585604051610eaf929190613022565b60405180910390a15050505050565b6001546001600160a01b03163314610ee85760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03821660009081526002602052604090208054600160301b900460ff1615610f295760405162461bcd60e51b815260040161043f906132e6565b60008260ff1611610f4c5760405162461bcd60e51b815260040161043f9061344a565b818160000160066101000a81548160ff021916908360ff160217905550610ff183600019856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa957600080fd5b505afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190612e04565b6001600160a01b031691906123c8565b61103183600019856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa957600080fd5b7f0ffbdaa00809b1cda17f454a21810d6fb0be19db2adc1be661c5ec0a86a2894c83836040516110629291906130f1565b60405180910390a1505050565b60045481565b600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b157600080fd5b505afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190612e04565b6001600160a01b0316856001600160a01b031614806111895750856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561113c57600080fd5b505afa158015611150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111749190612e04565b6001600160a01b0316856001600160a01b0316145b6111a55760405162461bcd60e51b815260040161043f90613227565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156111de57600080fd5b505afa1580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190612e04565b6001600160a01b0316856001600160a01b031614156112a95761126a611247600454866124e090919063ffffffff16565b670de0b6b3a7640000611265600554876124e090919063ffffffff16565b612318565b91506112a2611284600554866124e090919063ffffffff16565b670de0b6b3a7640000611265600454876124e090919063ffffffff16565b905061131a565b6112df6112c1600454856124e090919063ffffffff16565b670de0b6b3a7640000611265600554886124e090919063ffffffff16565b91506113176112f9600554856124e090919063ffffffff16565b670de0b6b3a7640000611265600454886124e090919063ffffffff16565b90505b94509492505050565b6001546001600160a01b0316331461134d5760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff166113905760405162461bcd60e51b815260040161043f90613427565b6001600160a01b0386166000908152600260205260409020546301000000900460ff16156113d05760405162461bcd60e51b815260040161043f906133e4565b6001600160a01b03861660009081526002602052604090819020805461ff00191661010088151502178155600581018690556006810185905590517f2b7e1c8a9a30964a7ada38c5149564ba064d3cb46ff06d7ff182775ad7a4713d9061143c908990889088906130aa565b60405180910390a150505050505050565b6001546001600160a01b031681565b6001600160a01b0391821660009081526002602090815260408083209390941682526007909201909152205460ff1690565b60008061150a856001600160a01b031663065e53606040518163ffffffff1660e01b815260040160206040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115059190612e20565b611fe6565b90506115356115226001600160a01b038316806124e0565b670de0b6b3a7640000600160c01b612318565b915060006115438686610583565b9050600061155d6115226001600160a01b038416806124e0565b9050846115758261156f8760646124e0565b90612539565b118061158e57508461158c8561156f8460646124e0565b115b156115ab5760405162461bcd60e51b815260040161043f9061346f565b5050509392505050565b6001600160a01b03821660009081526002602052604081208054849190600160301b900460ff166115f85760405162461bcd60e51b815260040161043f90613427565b6001600160a01b038516600090815260026020526040902060040154156116d15760026000866001600160a01b03166001600160a01b0316815260200190815260200160002060040154856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561167b57600080fd5b505afa15801561168f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b39190612ee3565b11156116d15760405162461bcd60e51b815260040161043f9061330d565b506001949350505050565b6001546001600160a01b031633146117065760405162461bcd60e51b815260040161043f90613389565b6003805460ff19811660ff909116151790556040517f31d2b42be69698b73ed0afb43a71872d1c2fa75bf4910edc3d5cf929ce11fb2d90600090a1565b6001546001600160a01b0316331461176d5760405162461bcd60e51b815260040161043f90613389565b60048190556040517f7173676a243594886893526e7121ae1217b9c8f1bf37d7182cf351c7243c33349061049290839061349e565b6001546001600160a01b031633146117cc5760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff1661180f5760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03861660009081526002602052604090819020805465ff00000000001916600160281b88151502176affffffff000000000000001916600160381b63ffffffff8816021781556001810185905590517f12588f80b3d955932fa6495825fce3e5a86e65babbb64fb0f03843c81948c6079061143c90899089908990899061307e565b60065481565b6001546001600160a01b031633146118c85760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03821660009081526002602052604090208054839190600160301b900460ff1661190b5760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03808516600090815260026020908152604080832093871683526007840190915290819020805460ff19169055517f327ebead4bc995c77eca4e68adf4a8709ea36622e0732ecd0e23dee6bcfb886990610eaf9087908790613008565b60055481565b6001546001600160a01b0316331461199f5760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff166119e25760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03831660009081526002602052604090819020805460ff19811660ff9091161517815590517fbd7dd9863bd3d126a99c32ad6b1f31c1fd44cdbf6cafca60e4f508228ee0a4d290610564908690612ff4565b6001546001600160a01b03163314611a655760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff16611aa85760405162461bcd60e51b815260040161043f90613427565b6001600160a01b038616600090815260026020819052604091829020908101879055600381018690556004810185905590517e43da711fca65981e4da1c2b18c362abff88d1aea1f55992a7beeb5e1ae17bb9061143c9089908990899089906130cb565b6001546001600160a01b03163314611b365760405162461bcd60e51b815260040161043f90613389565b60058190556040517f8cf1b5e61ca322007d7f7f14643afd8df1240cc40ddcf5e1cdf544f2bb0acae49061049290839061349e565b6001546001600160a01b03163314611b955760405162461bcd60e51b815260040161043f90613389565b6001600160a01b038116611bbb5760405162461bcd60e51b815260040161043f906132af565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821660009081526002602052604081208054849190600160301b900460ff16611c205760405162461bcd60e51b815260040161043f90613427565b6001600160a01b038616611c465760405162461bcd60e51b815260040161043f90613250565b6001600160a01b0385166000908152600260209081526040808320338452600781019092529091205460ff16611e1957805460ff16611cab57600089118015611c8f5750600088115b611cab5760405162461bcd60e51b815260040161043f906133ad565b8815611d6257600080611d2f88896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf157600080fd5b505afa158015611d05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d299190612e04565b8d61091d565b91509150818a10158015611d435750808a11155b611d5f5760405162461bcd60e51b815260040161043f906131ff565b50505b8715611e1957600080611de688896001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611da857600080fd5b505afa158015611dbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de09190612e04565b8c61091d565b91509150818b10158015611dfa5750808b11155b611e165760405162461bcd60e51b815260040161043f906131ff565b50505b60035460ff1680611e3257508054600160281b900460ff165b15611e94578054611e92908790600160281b900460ff16611e6057600354610100900463ffffffff16611e70565b8254600160381b900463ffffffff165b8354600160281b900460ff16611e885760065461033a565b836001015461148e565b505b8054640100000000900460ff1615611f0257600281015415611ed4578060020154891115611ed45760405162461bcd60e51b815260040161043f90613361565b600381015415611f02578060030154881115611f025760405162461bcd60e51b815260040161043f90613339565b50600198975050505050505050565b6001546001600160a01b03163314611f3b5760405162461bcd60e51b815260040161043f90613389565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff16611f7e5760405162461bcd60e51b815260040161043f90613427565b6001600160a01b03831660009081526002602052604090819020805464ff000000001981166401000000009182900460ff161590910217815590517f4681eb28f57cf4cc50d03460a4926f257ddd329f9e73b134ea189b3d757dd21090610564908690612ff4565b60008060008360020b12611ffd578260020b612005565b8260020b6000035b9050620d89e8811115612043576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b60006001821661205757600160801b612069565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561209d576ffff97272373d413259a46990580e213a0260801c5b60048216156120bc576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156120db576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156120fa576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612119576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612138576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612157576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612177576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612197576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156121b7576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156121d7576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156121f7576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612217576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612237576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612257576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612278576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612298576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156122b7576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156122d4576b048a170391f7dc42444e8fa20260801c5b60008460020b13156122ef5780600019816122eb57fe5b0490505b640100000000810615612303576001612306565b60005b60ff16602082901c0192505050919050565b600080806000198587098686029250828110908390030390508061234e576000841161234357600080fd5b5082900490506123c1565b80841161235a57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b80158061244e575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561242057600080fd5b505afa158015612434573d6000803e3d6000fd5b505050506040513d602081101561244a57600080fd5b5051155b6124895760405162461bcd60e51b81526004018080602001828103825260368152602001806135af6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526124db9084906125a0565b505050565b6000826124ef57506000610830565b828202828482816124fc57fe5b04146123c15760405162461bcd60e51b81526004018080602001828103825260218152602001806135646021913960400191505060405180910390fd5b600080821161258f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161259857fe5b049392505050565b60006125f5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126519092919063ffffffff16565b8051909150156124db5780806020019051602081101561261457600080fd5b50516124db5760405162461bcd60e51b815260040180806020018281038252602a815260200180613585602a913960400191505060405180910390fd5b60606126608484600085612668565b949350505050565b6060824710156126a95760405162461bcd60e51b815260040180806020018281038252602681526020018061353e6026913960400191505060405180910390fd5b6126b2856127c3565b612703576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106127415780518252601f199092019160209182019101612722565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146127a3576040519150601f19603f3d011682016040523d82523d6000602084013e6127a8565b606091505b50915091506127b88282866127cd565b979650505050505050565b803b15155b919050565b606083156127dc5750816123c1565b8251156127ec5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561283657818101518382015260200161281e565b50505050905090810190601f1680156128635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600082601f830112612881578081fd5b81516020612896612891836134ea565b6134c6565b82815281810190858301838502870184018810156128b2578586fd5b855b858110156128eb5781516dffffffffffffffffffffffffffff811681146128d9578788fd5b845292840192908401906001016128b4565b5090979650505050505050565b600082601f830112612908578081fd5b81516020612918612891836134ea565b8281528181019085830183850287018401881015612934578586fd5b855b858110156128eb57815161294981613508565b84529284019290840190600101612936565b600082601f83011261296b578081fd5b8151602061297b612891836134ea565b8281528181019085830183850287018401881015612997578586fd5b855b858110156128eb57815184529284019290840190600101612999565b8051600281900b81146127c857600080fd5b805161ffff811681146127c857600080fd5b803563ffffffff811681146127c857600080fd5b6000602082840312156129fe578081fd5b81356123c181613508565b60008060408385031215612a1b578081fd5b8235612a2681613508565b91506020830135612a3681613508565b809150509250929050565b600080600060608486031215612a55578081fd5b8335612a6081613508565b92506020840135612a7081613508565b929592945050506040919091013590565b60008060008060808587031215612a96578182fd5b8435612aa181613508565b93506020850135612ab181613508565b93969395505050506040820135916060013590565b60008060408385031215612ad8578182fd5b8235612ae381613508565b915060208381013567ffffffffffffffff811115612aff578283fd5b8401601f81018613612b0f578283fd5b8035612b1d612891826134ea565b81815283810190838501858402850186018a1015612b39578687fd5b8694505b83851015612b64578035612b5081613508565b835260019490940193918501918501612b3d565b5080955050505050509250929050565b60008060008060808587031215612b89578182fd5b8435612b9481613508565b93506020850135612ab181613520565b60008060008060808587031215612bb9578182fd5b8435612bc481613508565b93506020850135612bd481613520565b9250612be2604086016129d9565b9396929550929360600135925050565b60008060408385031215612c04578182fd5b8235612c0f81613508565b946020939093013593505050565b60008060008060808587031215612c32578182fd5b8435612c3d81613508565b966020860135965060408601359560600135945092505050565b60008060408385031215612c69578182fd5b8235612c7481613508565b9150612c82602084016129d9565b90509250929050565b600080600060608486031215612c9f578081fd5b8335612caa81613508565b9250612cb8602085016129d9565b9150604084013590509250925092565b60008060408385031215612cda578182fd5b8235612ce581613508565b91506020830135612a368161352e565b60008060008060808587031215612d0a578182fd5b845167ffffffffffffffff80821115612d21578384fd5b818701915087601f830112612d34578384fd5b81516020612d44612891836134ea565b82815281810190858301838502870184018d1015612d60578889fd5b8896505b84871015612d905780518060060b8114612d7c57898afd5b835260019690960195918301918301612d64565b50918a0151919850909350505080821115612da9578384fd5b612db5888389016128f8565b94506040870151915080821115612dca578384fd5b612dd688838901612871565b93506060870151915080821115612deb578283fd5b50612df88782880161295b565b91505092959194509250565b600060208284031215612e15578081fd5b81516123c181613508565b600060208284031215612e31578081fd5b6123c1826129b5565b600080600080600080600060e0888a031215612e54578485fd5b8751612e5f81613508565b9650612e6d602089016129b5565b9550612e7b604089016129c7565b9450612e89606089016129c7565b93506080880151612e998161352e565b60a0890151909350612eaa8161352e565b60c0890151909250612ebb81613520565b8091505092959891949750929550565b600060208284031215612edc578081fd5b5035919050565b600060208284031215612ef4578081fd5b5051919050565b60008060408385031215612f0d578182fd5b505080516020909101519092909150565b6000806000806000610100808789031215612f37578384fd5b8635955060208088013595506040880135612f5181613508565b94506060880135612f6181613508565b9350609f88018913612f71578283fd5b612f7b60806134c6565b8060808a018b858c011115612f8e578586fd5b8594505b6004851015612fb1578035835260019490940193918301918301612f92565b50809450505050509295509295909350565b600060208284031215612fd4578081fd5b6123c1826129d9565b15159052565b63ffffffff169052565b60ff169052565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015613070578551851683529483019491830191600101613052565b509098975050505050505050565b6001600160a01b03949094168452911515602084015263ffffffff166040830152606082015260800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6001600160a01b0392909216825260ff16602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561314b57835163ffffffff1683529284019291840191600101613129565b50909695505050505050565b901515815260200190565b8e151581528d151560208201526101c08101613181604083018f612fdd565b61318e606083018e612fdd565b61319b608083018d612fdd565b6131a860a083018c612fdd565b6131b560c083018b612fed565b6131c260e083018a612fe3565b8761010083015286610120830152856101408301528461016083015283610180830152826101a08301529f9e505050505050505050505050505050565b6020808252600e908201526d496d70726f70657220726174696f60901b604082015260600190565b6020808252600f908201526e0e8ded6cadc40dad2e6e8dac2e8c6d608b1b604082015260600190565b602080825260159082015274746f2073686f756c64206265206e6f6e2d7a65726f60581b604082015260600190565b6020808252601690820152756465706f736974732063616e2774206265207a65726f60501b604082015260600190565b6020808252601b908201527f6e65774f776e65722073686f756c64206265206e6f6e2d7a65726f0000000000604082015260600190565b6020808252600d908201526c185b1c9958591e481859191959609a1b604082015260600190565b60208082526012908201527165786365656473206d617820737570706c7960701b604082015260600190565b6020808252600e908201526d746f6b656e31206578636565647360901b604082015260600190565b6020808252600e908201526d746f6b656e30206578636565647360901b604082015260600190565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b6020808252601a908201527f6d757374206465706f73697420746f20626f7468207369646573000000000000604082015260600190565b60208082526023908201527f637573746f6d20726174696f206973206e6f206c6f6e67657220617661696c61604082015262626c6560e81b606082015260800190565b6020808252600990820152681b9bdd08185919195960ba1b604082015260600190565b6020808252600b908201526a76657273696f6e203c203160a81b604082015260600190565b6020808252601590820152745072696365206368616e6765204f766572666c6f7760581b604082015260600190565b90815260200190565b918252602082015260400190565b63ffffffff91909116815260200190565b60405181810167ffffffffffffffff811182821017156134e257fe5b604052919050565b600067ffffffffffffffff8211156134fe57fe5b5060209081020190565b6001600160a01b038116811461351d57600080fd5b50565b801515811461351d57600080fd5b60ff8116811461351d57600080fdfe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a164736f6c6343000706000a