0 txs
0 calls
constructor
No constructor.
functions
factory
viewfunction factory() view returns (address)
fee
viewfunction fee() view returns (uint16)
feeChargePercent
viewfunction feeChargePercent() view returns (uint24)
feeScaleX_128
viewfunction feeScaleX_128() view returns (uint256)
feeScaleY_128
viewfunction feeScaleY_128() view returns (uint256)
leftMostPt
viewfunction leftMostPt() view returns (int24)
limitOrderData
viewfunction limitOrderData(int24) view returns (uint128 sellingX, uint128 earnY, uint256 accEarnY, uint256 legacyAccEarnY, uint128 legacyEarnY, uint128 sellingY, uint128 earnX, uint128 legacyEarnX, uint256 accEarnX, uint256 legacyAccEarnX)
liquidities
viewfunction liquidities(bytes32) view returns (uint16 feeVote, uint128 liquidity, uint256 lastFeeScaleX_128, uint256 lastFeeScaleY_128, uint256 tokenOwedX, uint256 tokenOwedY)
maxLiquidPt
viewfunction maxLiquidPt() view returns (uint128)
observations
viewfunction observations(uint256) view returns (uint32 timestamp, int56 accPoint, bool init)
orderOrEndpoint
viewfunction orderOrEndpoint(int24) view returns (int24)
pointBitmap
viewfunction pointBitmap(int16) view returns (uint256)
pointDelta
viewfunction pointDelta() view returns (int24)
points
viewfunction points(int24) view returns (uint128 liquidSum, int128 liquidDelta, uint256 accFeeXOut_128, uint256 accFeeYOut_128, bool isEndpt, uint240 feeTimesL)
rightMostPt
viewfunction rightMostPt() view returns (int24)
state
viewfunction state() view returns (uint160 sqrtPrice_96, int24 currentPoint, uint16 observationCurrentIndex, uint16 observationQueueLen, uint16 observationNextQueueLen, bool locked, uint240 feeTimesL, uint16 fee, uint128 liquidity, uint128 liquidityX)
tokenX
viewfunction tokenX() view returns (address)
tokenY
viewfunction tokenY() view returns (address)
totalFeeXCharged
viewfunction totalFeeXCharged() view returns (uint256)
totalFeeYCharged
viewfunction totalFeeYCharged() view returns (uint256)
userEarnX
viewfunction userEarnX(bytes32) view returns (uint256 lastAccEarn, uint128 sellingRemain, uint128 sellingDec, uint128 earn, uint128 legacyEarn, uint128 earnAssign)
userEarnY
viewfunction userEarnY(bytes32) view returns (uint256 lastAccEarn, uint128 sellingRemain, uint128 sellingDec, uint128 earn, uint128 legacyEarn, uint128 earnAssign)
addLimOrderWithX
nonpayablefunction addLimOrderWithX(address recipient, int24 point, uint128 amountX, bytes data) returns (uint128 orderX, uint128 acquireY, uint128 claimSold, uint128 claimEarn)
addLimOrderWithY
nonpayablefunction addLimOrderWithY(address recipient, int24 point, uint128 amountY, bytes data) returns (uint128 orderY, uint128 acquireX, uint128 claimSold, uint128 claimEarn)
assignLimOrderEarnX
nonpayablefunction assignLimOrderEarnX(int24 point, uint128 assignX, bool fromLegacy) returns (uint128 actualAssignX)
assignLimOrderEarnY
nonpayablefunction assignLimOrderEarnY(int24 point, uint128 assignY, bool fromLegacy) returns (uint128 actualAssignY)
collectLimOrder
nonpayablefunction collectLimOrder(address recipient, int24 point, uint128 collectDec, uint128 collectEarn, bool isEarnY) returns (uint128 actualCollectDec, uint128 actualCollectEarn)
decLimOrderWithX
nonpayablefunction decLimOrderWithX(int24 point, uint128 deltaX) returns (uint128 actualDeltaX, uint256 legacyAccEarn, uint128 claimSold, uint128 claimEarn)
decLimOrderWithY
nonpayablefunction decLimOrderWithY(int24 point, uint128 deltaY) returns (uint128 actualDeltaY, uint256 legacyAccEarn, uint128 claimSold, uint128 claimEarn)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50612fef806100206000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80636d01843b11610104578063c19d93fb116100a2578063e556289f11610071578063e556289f14610838578063edcba3b214610843578063f0163ef414610866578063ff12504e1461087957600080fd5b8063c19d93fb146106f3578063c45a0155146107e9578063d3b16864146107fc578063ddca3f431461081057600080fd5b80638790aca3116100de5780638790aca31461056a57806387e7d5fe1461063857806398a0f72e146106c0578063b7d19fc4146106e057600080fd5b80636d01843b1461048057806375c0e0d51461049d57806381794fba1461053e57600080fd5b8063537c2d8e1161017157806358c51ce61161014b57806358c51ce6146103d257806362c944ca146103e657806362ccaafd146103f95780636ad1718f1461044d57600080fd5b8063537c2d8e1461037e578063544e70571461039e578063588e59ae146103c957600080fd5b80631aae2e55116101ad5780631aae2e55146102dc578063252c09d7146102f357806333005cd51461032d5780634cd70e911461033857600080fd5b80630e1552f0146101d45780631621835f1461021f57806316dc165b146102b1575b600080fd5b6101e76101e2366004612b23565b61088c565b604080516001600160801b03958616815293851660208501529184169183019190915290911660608201526080015b60405180910390f35b61027361022d366004612c44565b601060205260009081526040902080546001820154600283015460039093015491926001600160801b0380831693600160801b9384900482169383831693048216911686565b604080519687526001600160801b039586166020880152938516938601939093529083166060850152821660808401521660a082015260c001610216565b6002546102c4906001600160a01b031681565b6040516001600160a01b039091168152602001610216565b6102e560045481565b604051908152602001610216565b610306610301366004612c44565b610e80565b6040805163ffffffff909416845260069290920b6020840152151590820152606001610216565b6102e5620100115481565b61034b610346366004612c97565b610eb5565b604080516001600160801b0395861681526020810194909452918416918301919091529091166060820152608001610216565b60005461038b9060020b81565b60405160029190910b8152602001610216565b6103b16103ac366004612cc9565b6110b1565b6040516001600160801b039091168152602001610216565b6102e560055481565b60035461038b90600160b01b900460020b81565b61034b6103f4366004612c97565b61120a565b610273610407366004612c44565b600f60205260009081526040902080546001820154600283015460039093015491926001600160801b0380831693600160801b9384900482169383831693048216911686565b61046061045b366004612bc0565b6113bd565b604080516001600160801b03938416815292909116602083015201610216565b6000546103b190660100000000000090046001600160801b031681565b6104f96104ab366004612c7d565b600c6020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b929060ff81169061010090046001600160f01b031686565b604080516001600160801b039097168752600f9590950b6020870152938501929092526060840152151560808301526001600160f01b031660a082015260c001610216565b620100175461055690600160a01b900462ffffff1681565b60405162ffffff9091168152602001610216565b6105d7610578366004612c7d565b600e6020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160801b0380871697600160801b978890048216978583169581900483169480841694919004909216918a565b604080516001600160801b039b8c168152998b1660208b01528901979097526060880195909552928716608087015290861660a0860152851660c085015290931660e083015261010082019290925261012081019190915261014001610216565b610686610646366004612c44565b600a602052600090815260409020805460018201546002830154600384015460049094015461ffff841694620100009094046001600160801b0316939086565b6040805161ffff90971687526001600160801b039095166020870152938501929092526060840152608083015260a082015260c001610216565b6102e56106ce366004612c5c565b600b6020526000908152604090205481565b6003546102c4906001600160a01b031681565b600754600854600954610770926001600160a01b03811692600160a01b820460020b92600160b81b830461ffff90811693600160c81b8104821693600160d81b8204831693600160e81b90920460ff16926001600160f01b03821692600160f01b90920416906001600160801b0380821691600160801b9004168a565b604080516001600160a01b03909b168b5260029990990b60208b015261ffff978816988a01989098529486166060890152928516608088015290151560a08701526001600160f01b031660c08601529190911660e08401526001600160801b039081166101008401521661012082015261014001610216565b6001546102c4906001600160a01b031681565b60005461038b906301000000900460020b81565b60035461082590600160a01b900461ffff1681565b60405161ffff9091168152602001610216565b6102e5620100105481565b61038b610851366004612c7d565b600d6020526000908152604090205460020b81565b6103b1610874366004612cc9565b61154e565b6101e7610887366004612b23565b61155d565b6003546000908190819081906108ac90600160b01b900460020b89612f0b565b60020b156108d55760405162461bcd60e51b81526004016108cc90612dbc565b60405180910390fd5b600754600160a01b9004600290810b810b9089900b131561091d5760405162461bcd60e51b8152602060048201526002602482015261141360f21b60448201526064016108cc565b600054600290810b810b9089900b121561095e5760405162461bcd60e51b81526020600482015260026024820152614c4f60f01b60448201526064016108cc565b6000876001600160801b03161161099c5760405162461bcd60e51b8152602060048201526002602482015261059560f41b60448201526064016108cc565b600288810b900b6000908152600e60205260408120889550909350836109c18a611b46565b6040805160608101825284546001600160801b039081168083526003870154600160801b9004909116602083015260009282019290925291925015610aba57610a0f8a838360000151611f63565b6001600160801b0390911660408301819052909650610a2e9088612eb1565b96508581600001818151610a429190612eb1565b6001600160801b0390811690915260408301516001860154610a679350911690612e2c565b600184015560408101518354610a8d9190600160801b90046001600160801b0316612e01565b81516001600160801b039081169116600160801b026001600160801b0319168117845515610aba57600096505b6001600160801b03871615610b06578681602001818151610adb9190612e01565b6001600160801b039081169091526020830151600386018054918316600160801b0291909216179055505b6000610b14600f8e8e612001565b9050806000015484600601541115610b7b5760058401546004850154610b529183918b91908790600160801b90046001600160801b03166000612058565b6004870180546001600160801b03948516600160801b0294169390931790925596509450610bc8565b60058401546004850154610ba09183918b919087906001600160801b031660006121c4565b6004870180546001600160801b0319166001600160801b039490941693909317909255965094505b6003810154610be19088906001600160801b0316612e01565b6003820180546001600160801b0319166001600160801b03928316179055825116158015610c1a575060208201516001600160801b0316155b15610ca657600354600090610c3d90600d908f90600160b01b900460020b61222b565b90506000816001169050610c6e8e600360169054906101000a900460020b83600d612278909392919063ffffffff16565b8060020b60001415610c9f57610c9f8e600360169054906101000a900460020b600b6122bf9092919063ffffffff16565b5050610d39565b600354600090610cc490600d908f90600160b01b900460020b61222b565b90508060021660020b60001415610d37576000816002179050610d048e600360169054906101000a900460020b83600d612278909392919063ffffffff16565b8160020b60001415610d3557610d358e600360169054906101000a900460020b600b6123289092919063ffffffff16565b505b505b6000826040015189610d4b9190612e01565b6001600160801b031611610d875760405162461bcd60e51b81526020600482015260036024820152620703e360ec1b60448201526064016108cc565b6000610d91612390565b9050336001600160a01b0316638400eff6600085604001518c610db49190612e01565b8e8e6040518563ffffffff1660e01b8152600401610dd59493929190612d89565b600060405180830381600087803b158015610def57600080fd5b505af1158015610e03573d6000803e3d6000fd5b5050505082604001516001600160801b0316896001600160801b031682610e2a9190612e2c565b610e349190612e2c565b610e3c612390565b1015610e6f5760405162461bcd60e51b8152602060048201526002602482015261594560f01b60448201526064016108cc565b505050505095509550955095915050565b60118161ffff8110610e9157600080fd5b015463ffffffff81169150640100000000810460060b90600160581b900460ff1683565b600354600090819081908190610ed590600160b01b900460020b87612f0b565b60020b15610ef55760405162461bcd60e51b81526004016108cc90612dbc565b6000610f0360103389612001565b600288810b900b6000908152600e60205260408120919250610f2489611b46565b9050816002015495508260000154861115610f8c576001808301546003840154610f60928692600092909186916001600160801b031690612058565b6003850180546001600160801b0319166001600160801b039490941693909317909255955093506110a5565b6001828101548354610fb69286928c9290918691600160801b90046001600160801b031690612470565b85546001600160801b03938416600160801b029084168181178855949b50919850965089928592600092610ff09286929190911617612eb1565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000876001600160801b0316118015611035575081546001600160801b0316155b156110a55760035460009061105890600d908c90600160b01b900460020b61222b565b600354600191909116915061107c90600d908c90600160b01b900460020b84612278565b8060020b600014156110a3576003546110a390600b908c90600160b01b900460020b6122bf565b505b50505092959194509250565b8160006110c060103387612001565b9050821561114f5760028101546001600160801b03600160801b90910481169083161115611100576002810154600160801b90046001600160801b031691505b818160020160108282829054906101000a90046001600160801b03166111269190612eb1565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506111be565b60028101546001600160801b0390811690831611156111795760028101546001600160801b031691505b6002810180548391906000906111999084906001600160801b0316612eb1565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6003810180548391906000906111de9084906001600160801b0316612e01565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550509392505050565b60035460009081908190819061122a90600160b01b900460020b87612f0b565b60020b1561124a5760405162461bcd60e51b81526004016108cc90612dbc565b6000611258600f3389612001565b600288810b900b6000908152600e6020526040812091925061127989611b46565b90508160060154955082600001548611156112e357600582015460048301546112ba918591600091908590600160801b90046001600160801b031683612058565b6004850180546001600160801b03948516600160801b02941693909317909255955093506110a5565b600582015460048301546113089185918b919085906001600160801b03166000612470565b6004860180546001600160801b0319166001600160801b03948516179055600386018054949b5091985096508992909160109161134e918591600160801b900416612eb1565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000876001600160801b031611801561103557506003820154600160801b90046001600160801b03166110a55760035460009061105890600d908c90600160b01b900460020b61222b565b6000806000836113d8576113d3600f3389612001565b6113e4565b6113e460103389612001565b60018101548794509091506001600160801b03600160801b90910481169084161115611422576001810154600160801b90046001600160801b031692505b6001810154611442908490600160801b90046001600160801b0316612eb1565b6001820180546001600160801b03928316600160801b029083161790556003820154869350811690831611156114835760038101546001600160801b031691505b600381015461149c9083906001600160801b0316612eb1565b6003820180546001600160801b0319166001600160801b0392909216919091179055600080856114cd5783856114d0565b84845b6001600160801b031691506001600160801b031691506114f7826114f2612528565b612556565b9150611505816114f2612390565b9050811561152457600254611524906001600160a01b03168b84612570565b801561154157600354611541906001600160a01b03168b83612570565b5050509550959350505050565b8160006110c0600f3387612001565b60035460009081908190819061157d90600160b01b900460020b89612f0b565b60020b1561159d5760405162461bcd60e51b81526004016108cc90612dbc565b600754600160a01b9004600290810b810b9089900b12156115e55760405162461bcd60e51b8152602060048201526002602482015261504760f01b60448201526064016108cc565b60005463010000009004600290810b810b9089900b131561162d5760405162461bcd60e51b8152602060048201526002602482015261484f60f01b60448201526064016108cc565b6000876001600160801b03161161166b5760405162461bcd60e51b8152602060048201526002602482015261058560f41b60448201526064016108cc565b600288810b900b6000908152600e60205260408120889550909350836116908a611b46565b6040805160608101825284546001600160801b0390811682526003860154600160801b900416602082018190526000928201929092529192501561179f576116dd8a838360200151612671565b6001600160801b03909116604083018190529096506116fc9088612eb1565b965085816020018181516117109190612eb1565b6001600160801b03908116909152604083015160058601546117359350911690612e2c565b60058401556040810151600484015461175791906001600160801b0316612e01565b6004840180546001600160801b0319166001600160801b0392831617905560208201516003850180548316600160801b92909316918202929092179091551561179f57600096505b6001600160801b038716156117e35786816000018181516117c09190612e01565b6001600160801b03908116909152825185546001600160801b0319169116178455505b60006117f160108e8e612001565b90508360020154816000015410156118555760018085015460038601546118299284928c92909188916001600160801b031690612058565b6003870180546001600160801b0319166001600160801b0394909416939093179092559650945061189f565b600184810154855461187f9284928c9290918891600160801b90046001600160801b0316906121c4565b86546001600160801b03938416600160801b029316929092178655965094505b60038101546118b89088906001600160801b0316612e01565b6003820180546001600160801b0319166001600160801b039283161790558251161580156118f1575060208201516001600160801b0316155b1561197d5760035460009061191490600d908f90600160b01b900460020b61222b565b905060008160011690506119458e600360169054906101000a900460020b83600d612278909392919063ffffffff16565b8060020b60001415611976576119768e600360169054906101000a900460020b600b6122bf9092919063ffffffff16565b5050611a10565b60035460009061199b90600d908f90600160b01b900460020b61222b565b90508060021660020b60001415611a0e5760008160021790506119db8e600360169054906101000a900460020b83600d612278909392919063ffffffff16565b8160020b60001415611a0c57611a0c8e600360169054906101000a900460020b600b6123289092919063ffffffff16565b505b505b6000826040015189611a229190612e01565b6001600160801b031611611a5e5760405162461bcd60e51b81526020600482015260036024820152620703e360ec1b60448201526064016108cc565b6000611a68612528565b9050336001600160a01b0316638400eff684604001518b611a899190612e01565b60008e8e6040518563ffffffff1660e01b8152600401611aac9493929190612dd8565b600060405180830381600087803b158015611ac657600080fd5b505af1158015611ada573d6000803e3d6000fd5b5050505082604001516001600160801b0316896001600160801b031682611b019190612e2c565b611b0b9190612e2c565b611b13612528565b1015610e6f5760405162461bcd60e51b8152602060048201526002602482015261584560f01b60448201526064016108cc565b60008060008360020b12611b5d578260020b611b6a565b8260020b611b6a90612f62565b9050611b79620d89e719612f41565b60020b811115611baf5760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016108cc565b600060018216611bc357600160801b611bd5565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611c14576080611c0f826ffff97272373d413259a46990580e213a612e92565b901c90505b6004821615611c3e576080611c39826ffff2e50f5f656932ef12357cf3c7fdcc612e92565b901c90505b6008821615611c68576080611c63826fffe5caca7e10e4e61c3624eaa0941cd0612e92565b901c90505b6010821615611c92576080611c8d826fffcb9843d60f6159c9db58835c926644612e92565b901c90505b6020821615611cbc576080611cb7826fff973b41fa98c081472e6896dfb254c0612e92565b901c90505b6040821615611ce6576080611ce1826fff2ea16466c96a3843ec78b326b52861612e92565b901c90505b6080821615611d10576080611d0b826ffe5dee046a99a2a811c461f1969c3053612e92565b901c90505b610100821615611d3b576080611d36826ffcbe86c7900a88aedcffc83b479aa3a4612e92565b901c90505b610200821615611d66576080611d61826ff987a7253ac413176f2b074cf7815e54612e92565b901c90505b610400821615611d91576080611d8c826ff3392b0822b70005940c7a398e4b70f3612e92565b901c90505b610800821615611dbc576080611db7826fe7159475a2c29b7443b29c7fa6e889d9612e92565b901c90505b611000821615611de7576080611de2826fd097f3bdfd2022b8845ad8f792aa5825612e92565b901c90505b612000821615611e12576080611e0d826fa9f746462d870fdf8a65dc1f90e061e5612e92565b901c90505b614000821615611e3d576080611e38826f70d869a156d2a1b890bb3df62baf32f7612e92565b901c90505b618000821615611e68576080611e63826f31be135f97d08fd981231505542fcfa6612e92565b901c90505b62010000821615611e94576080611e8f826f09aa508b5b7a84e1c677de54f3e99bc9612e92565b901c90505b62020000821615611ebf576080611eba826e5d6af8dedb81196699c329225ee604612e92565b901c90505b62040000821615611ee9576080611ee4826d2216e584f5fa1ea926041bedfe98612e92565b901c90505b62080000821615611f11576080611f0c826b048a170391f7dc42444e8fa2612e92565b901c90505b60008460020b1315611f2c57611f2981600019612e7e565b90505b611f3b64010000000082612f2d565b15611f47576001611f4a565b60005b611f5b9060ff16602083901c612e2c565b949350505050565b6000806000611f89866001600160801b0316600160601b876001600160a01b0316612716565b9050611fb5611fa682600160601b886001600160a01b0316612716565b856001600160801b0316612556565b9150611fd8826001600160801b0316866001600160a01b0316600160601b6127c3565b90506000611ff482876001600160a01b0316600160601b6127c3565b9792965091945050505050565b6040805160609390931b6bffffffffffffffffffffffff191660208085019190915260029290920b60e81b603484015280516017818503018152603790930181528251928201929092206000908152929052902090565b60018601546000906001600160801b0316818082156121785784156120bc57600061209a846001600160801b0316896001600160a01b0316600160601b612716565b90506120b481896001600160a01b0316600160601b612716565b9150506120fd565b60006120df846001600160801b0316600160601b8a6001600160a01b0316612716565b90506120f981600160601b8a6001600160a01b0316612716565b9150505b856001600160801b031681111561211a57506001600160801b0385165b60018a0180546001600160801b031916905560028a018054829190601090612153908490600160801b90046001600160801b0316612e01565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b878a559050806121888187612eb1565b93506001600160801b038916156121b75760018a0180546001600160801b0319166001600160801b038b161790555b5096509650969350505050565b60008060006121d6898888888861281a565b60018c015492955090935091506121f79089906001600160801b0316612e01565b8960010160006101000a8154816001600160801b0302191690836001600160801b0316021790555096509650969350505050565b60006122378284612f0b565b60020b1561224757506000612271565b8360006122548486612e44565b600290810b810b8252602082019290925260400160002054900b90505b9392505050565b808460006122868587612e44565b60020b60020b815260200190815260200160002060006101000a81548162ffffff021916908360020b62ffffff16021790555050505050565b6122c98183612f0b565b60020b156122d657600080fd5b60006122e28284612e44565b9050600281900b60081d60006122fa61010084612f0b565b600192830b830b60009081526020979097526040909620805460ff9097169290921b19909516905550505050565b6123328183612f0b565b60020b1561233f57600080fd5b600061234b8284612e44565b9050600281900b60081d600061236361010084612f0b565b600192830b830b60009081526020979097526040909620805460ff9097169290921b909517905550505050565b600354604051306024820152600091829182916001600160a01b0316906370a0823160e01b906044015b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516123f89190612d50565b600060405180830381855afa9150503d8060008114612433576040519150601f19603f3d011682016040523d82523d6000602084013e612438565b606091505b509150915081801561244c57506020815110155b61245557600080fd5b808060200190518101906124699190612d0f565b9250505090565b6000806000806124838a8989898961281a565b60018d015492955090935091506124a4908a906001600160801b0316612a79565b60018b01549094506124c09085906001600160801b0316612eb1565b60018b0180546001600160801b0319166001600160801b0392831617908190556124f3918691600160801b900416612e01565b8a60010160106101000a8154816001600160801b0302191690836001600160801b031602179055509650965096509692505050565b600254604051306024820152600091829182916001600160a01b0316906370a0823160e01b906044016123ba565b60008183101561256757508161256a565b50805b92915050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916125cc9190612d50565b6000604051808303816000865af19150503d8060008114612609576040519150601f19603f3d011682016040523d82523d6000602084013e61260e565b606091505b50915091508180156126385750805115806126385750808060200190518101906126389190612c28565b61266a5760405162461bcd60e51b8152602060048201526003602482015262544e5360e81b60448201526064016108cc565b5050505050565b6000806000612697866001600160801b0316866001600160a01b0316600160601b612716565b90506126b96126b482876001600160a01b0316600160601b612716565b612a9c565b9150836001600160801b0316826001600160801b031611156126d9578391505b6126fa826001600160801b0316600160601b876001600160a01b03166127c3565b90506000611ff482600160601b886001600160a01b03166127c3565b600080806000198587098587029250828110838203039150508060001415612750576000841161274557600080fd5b508290049050612271565b80841161275c57600080fd5b6000848688096001861981018716968790046003810260029081188083028203028083028203028083028203028083028203028083028203029182029003026000889003889004909101858311909403939093029303949094049190911702949350505050565b60006127d0848484612716565b9050600082806127f057634e487b7160e01b600052601260045260246000fd5b848609111561227157600019811061280757600080fd5b8061281181612ef0565b95945050505050565b6040805160c081018252865480825260018801546001600160801b038082166020850152600160801b91829004811694840194909452600289015480851660608501520483166080830152600388015490921660a0820152600091829182918290612885908a612ed9565b9050866001600160801b03168111156128a457506001600160801b0386165b600086156128e85760006128c683600160601b8c6001600160a01b03166127c3565b90506128e081600160601b8c6001600160a01b03166127c3565b915050612920565b6000612902838b6001600160a01b0316600160601b6127c3565b905061291c818b6001600160a01b0316600160601b6127c3565b9150505b82602001516001600160801b03168111156129be575060208201516001600160801b03168615612986576000612964828b6001600160a01b0316600160601b612716565b905061297e818b6001600160a01b0316600160601b612716565b9250506129be565b60006129a082600160601b8c6001600160a01b0316612716565b90506129ba81600160601b8c6001600160a01b0316612716565b9250505b81836060018181516129d09190612e01565b6001600160801b03169052506020830180518291906129f0908390612eb1565b6001600160801b0316905250898b558115612a2c57606083015160028c0180546001600160801b0319166001600160801b039092169190911790555b8015612a5957602083015160018c0180546001600160801b0319166001600160801b039092169190911790555b935091508183612a698289612eb1565b9550505050955095509592505050565b6000816001600160801b0316836001600160801b0316101561256757508161256a565b806001600160801b0381168114612ade5760405162461bcd60e51b81526004016108cc906020808252600490820152630866264760e31b604082015260600190565b919050565b80356001600160a01b0381168114612ade57600080fd5b8035600281900b8114612ade57600080fd5b80356001600160801b0381168114612ade57600080fd5b600080600080600060808688031215612b3a578081fd5b612b4386612ae3565b9450612b5160208701612afa565b9350612b5f60408701612b0c565b9250606086013567ffffffffffffffff80821115612b7b578283fd5b818801915088601f830112612b8e578283fd5b813581811115612b9c578384fd5b896020828501011115612bad578384fd5b9699959850939650602001949392505050565b600080600080600060a08688031215612bd7578081fd5b612be086612ae3565b9450612bee60208701612afa565b9350612bfc60408701612b0c565b9250612c0a60608701612b0c565b91506080860135612c1a81612fa8565b809150509295509295909350565b600060208284031215612c39578081fd5b815161227181612fa8565b600060208284031215612c55578081fd5b5035919050565b600060208284031215612c6d578081fd5b81358060010b8114612271578182fd5b600060208284031215612c8e578081fd5b61227182612afa565b60008060408385031215612ca9578182fd5b612cb283612afa565b9150612cc060208401612b0c565b90509250929050565b600080600060608486031215612cdd578283fd5b612ce684612afa565b9250612cf460208501612b0c565b91506040840135612d0481612fa8565b809150509250925092565b600060208284031215612d20578081fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008251815b81811015612d705760208186018101518583015201612d56565b81811115612d7e5782828501525b509190910192915050565b8481526001600160801b0384166020820152606060408201526000612db2606083018486612d27565b9695505050505050565b602080825260029082015261141160f21b604082015260600190565b6001600160801b0385168152836020820152606060408201526000612db2606083018486612d27565b60006001600160801b03808316818516808303821115612e2357612e23612f7c565b01949350505050565b60008219821115612e3f57612e3f612f7c565b500190565b60008160020b8360020b80612e5b57612e5b612f92565b627fffff19821460001982141615612e7557612e75612f7c565b90059392505050565b600082612e8d57612e8d612f92565b500490565b6000816000190483118215151615612eac57612eac612f7c565b500290565b60006001600160801b0383811690831681811015612ed157612ed1612f7c565b039392505050565b600082821015612eeb57612eeb612f7c565b500390565b6000600019821415612f0457612f04612f7c565b5060010190565b60008260020b80612f1e57612f1e612f92565b808360020b0791505092915050565b600082612f3c57612f3c612f92565b500690565b60008160020b627fffff19811415612f5b57612f5b612f7c565b9003919050565b6000600160ff1b821415612f7857612f78612f7c565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b8015158114612fb657600080fd5b5056fea2646970667358221220f615ab26343d0db35a8d87ed618684e01de2d0f992837de6016a46bb541e47ee64736f6c63430008040033