0 txs
3.7k calls
constructor
constructor(address hub_, address hook_, address quoter_)
functions
computeSwap
viewfunction computeSwap(tuple key, uint256 inverseCumulativeAmountInput, uint256 totalLiquidity, bool zeroForOne, bool exactIn, int24 twapTick, int24, bytes32 ldfParams, bytes32 ldfState) view returns (bool success, int24 roundedTick, uint256 cumulativeAmount0_, uint256 cumulativeAmount1_, uint256 swapLiquidity)
cumulativeAmount0
viewfunction cumulativeAmount0(tuple key, int24 roundedTick, uint256 totalLiquidity, int24 twapTick, int24, bytes32 ldfParams, bytes32 ldfState) view returns (uint256)
cumulativeAmount1
viewfunction cumulativeAmount1(tuple key, int24 roundedTick, uint256 totalLiquidity, int24 twapTick, int24, bytes32 ldfParams, bytes32 ldfState) view returns (uint256)
isValidParams
purefunction isValidParams(tuple key, uint24 twapSecondsAgo, bytes32 ldfParams) pure returns (bool)
query
viewfunction query(tuple key, int24 roundedTick, int24 twapTick, int24, bytes32 ldfParams, bytes32 ldfState) view returns (uint256 liquidityDensityX96_, uint256 cumulativeAmount0DensityX96, uint256 cumulativeAmount1DensityX96, bytes32 newLdfState, bool shouldSurge)
events
No events.
errors
GuardedCall
error GuardedCall()
creation bytecode
0x610100346100a257601f61390638819003918201601f19168301916001600160401b038311848410176100a6578084926060946040528339810103126100a257610048816100ba565b90610061604061005a602084016100ba565b92016100ba565b913060805260a05260c05260e05260405161383790816100cf823960805181610b81015260a05181610aff015260c05181610c0a015260e05181610bca0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100a25756fe6101806040526004361015610012575f80fd5b5f3560e01c806322112ae9146104cb5780633e33e12714610459578063685056ff146101f5578063b50c7a98146101605763d5fac49314610051575f80fd5b3461015c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101a0811261015c5760a01361015c5760e435801515810361015c576101043590811515820361015c5761012435908160020b820361015c5760a0926100e0610122936100c4610542565b506100cd610ae8565b61016435906100da6105c3565b90610cc2565b9098919792969395939290836101843560f881901c6001149060e01c62ffffff1660020b9190610148575b5050506101166105c3565b9160c43560a43561101d565b9161012051604051941515855260020b6020850152604084015260608301526080820152f35b610153939550610efc565b915f808061010b565b5f80fd5b3461015c5760206101d3610193606061017836610553565b9793949691509194610188610ae8565b01936100da856105d3565b909a94966101ba819b9599949a939b969062ffffff60018360f81c149260e01c1660020b90565b91906101db575b5050506101cd906105d3565b91610fc8565b604051908152f35b6101cd939650906101ec9291610efc565b93908d806101c1565b3461015c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601610140811261015c5760a01361015c5760a4358060020b810361015c5760c435908160020b820361015c57610250610532565b50610259610ae8565b61026b5f9261010435906100da6105c3565b98968098969592949899610293610124359062ffffff60018360f81c149260e01c1660020b90565b9290610434575b50505088906102a76105c3565b608052868186868c878b886080516102be98611aeb565b9881876080516102ce908b61064c565b87878785878d6102de8382610f57565b6102e8908261166c565b926102f291610f57565b6102fc908961166c565b9660805161030a908661082c565b610314908561064c565b6080516103219489611705565b946080519061032f95611705565b61033891610f57565b9860805161034591610c88565b966103508282610f57565b61035a908261166c565b9361036491610f57565b61036d9161166c565b9660805161037b908661082c565b610385908561064c565b6080516103929489611b44565b94608051906103a095611b44565b6103a991610f57565b9362ffffff1663010000000163ffffffff81116104075760a0947fffffffff00000000000000000000000000000000000000000000000000000000926040519586526020860152604085015260e01b16606083015215156080820152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b829b50610445939950919091610efc565b809860020b8160020b141596908a8061029a565b3461015c5760206101d3610471606061017836610553565b909a9496610498819b9599949a939b969062ffffff60018360f81c149260e01c1660020b90565b91906104b1575b5050506104ab906105d3565b91610f64565b6104ab939650906104c29291610efc565b93908d8061049f565b3461015c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360160e0811261015c5760a01361015c5760a43562ffffff8116810361015c5761052860209160c435906105236105c3565b610843565b6040519015158152f35b60e435908160020b820361015c57565b61014435908160020b820361015c57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01610160811261015c5760a01361015c5760049060a4358060020b810361015c579060c4359060e4358060020b810361015c5790610104358060020b810361015c579061012435906101443590565b6064358060020b810361015c5790565b358060020b810361015c5790565b60020b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff83131761040757565b60020b60010190627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083121761040757565b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff83131761040757565b81810292915f82127f800000000000000000000000000000000000000000000000000000000000000082141661040757818405149015171561040757565b60020b9060020b908115610721577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000821416610407570590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114610407575f0390565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107be57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6020815191015190602081106107ff575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b9060020b9060020b02908160020b91820361040757565b918060f81c9162ffffff8260e01c1660020b9361ffff8360d01c1660010b63ffffffff8460b01c169063ffffffff8560901c169261ffff8660801c1660010b9463ffffffff808860601c169760401c16978261089e81611263565b0260020b836108ac81611291565b0260020b90846108bc8a8861064c565b8060020b627fffff6108d18460020b83610686565b13948515610ace575b50508315610aa9575b505050610a9b5760405160f882901b7fff0000000000000000000000000000000000000000000000000000000000000016602082015260e88b901b602182015260f088901b602482015260e089901b7fffffffff000000000000000000000000000000000000000000000000000000001660268201526109a29061099b9061099681602a81015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261077d565b6107eb565b83856112be565b998a6109f2575b505050876109e8575b876109de575b876109c8575b5050505050505090565b6109d297506114f0565b5f8080808080806109be565b86151597506109b8565b83151597506109b2565b839a5090610996610a13610a8b93610a0d610a92978c61082c565b9061064c565b60405160f89390931b7fff0000000000000000000000000000000000000000000000000000000000000016602084015260e81b602183015260f086901b602483015260e087901b7fffffffff0000000000000000000000000000000000000000000000000000000016602683015281602a810161096a565b90896112be565b965f80806109a9565b505050505050505050505f90565b610abe929350610ab89061074e565b926106c4565b60020b9060020b125f84816108e3565b610adc9192955083906106c4565b60020b12925f806108da565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633141580610bf2575b80610bb2575b80610ba9575b8015610b69575b610b4157565b7fd9711eeb000000000000000000000000000000000000000000000000000000005f5260045ffd5b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301415610b3b565b50331515610b34565b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016331415610b2e565b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016331415610b28565b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff83131761040757565b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083121761040757565b90918060f81c6004811015610ecf57809361ffff8360d01c1660010b9463ffffffff8460b01c169063ffffffff8560901c169261ffff8660801c1660010b9663ffffffff8760601c169663ffffffff8160401c16946305f5e1006fffffffff0000000000000000000000008075ffffffffffffffffffff0000000000000000000000008560501c161616916c01000000000000000000000000818404149015170215610ec2576305f5e1009004976305f5e1006fffffffff000000000000000000000000807fffffffffffffffffffffffffffffffffffffffff00000000000000000000000085161616916c01000000000000000000000000818404149015170215610ec2576305f5e100900496600314610eb157610df1610e159262ffffff859360e01c1660020b9061064c565b610dfb82826106c4565b90825f8260020b129182610e9b575b5050610e925761082c565b81610e1f81611263565b0260020b9180610e2e81611291565b0260020b908260020b8481125f14610e47575050505097565b9091929b9350610e69610e6383610e5e8d8f61064c565b61082c565b84610c88565b60020b12610e75575050565b610e8f929a50610e8990610e5e8a8c61064c565b90610c88565b97565b610e5e906116a9565b610ea592506112a2565b60020b1515825f610e0a565b60e01c62ffffff1660020b99915050565b63ad251c275f526004601cfd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b916004811015610ecf57600181149081610f46575b8115610f26575b50610f21575090565b905090565b600291501480610f37575b5f610f18565b508060020b8260020b12610f31565b90508160020b8360020b1390610f11565b9190820180921161040757565b9791929395610fbf9796610f9d610fb993610fc59c610f9781610f91610f8a828b610f57565b8a86611693565b98610f57565b91611693565b9385610fb2610fac828b61082c565b8961064c565b918c611705565b96611705565b90610f57565b90565b9791929395610fbf9796610fee61100493610fc59c610f9781610f91610f8a828b610f57565b9385610ffd610fac828b61082c565b918c611b44565b96611b44565b8181029291811591840414171561040757565b9b989a949b99939291959697996101605260e052610140526101005260a05260c0525f610120521515610140511515145f1461116f5761107160c05160a051878786868c6101005160e05161016051611ff0565b610120529586156111595761110192916110fc91610140515f14611136576110b960c05160a0518a8a8887876101005160e0516110b4610100516101205161064c565b610f64565b97610140515f14611107576110e260c05160a051838b8988886101005160e05161012051610fc8565b9760e0519560c0519460a051946101005161012051611aeb565b61100a565b60601c90565b61113160c05160a051838b8988886101005160e05161112c6101005161012051610c88565b610fc8565b6110e2565b61115460c05160a0518a8a8887876101005160e05161012051610f64565b6110b9565b505050925050505f905f610120525f905f905f90565b61119060c09594955160a051868886868c6101005160e05161016051611f5e565b610120529586156111595761110192916110fc91610140515f14611240576111d360c05160a051898b8887876101005160e05161112c6101005161012051610c88565b96610140515f14611216576111fc60c05160a051838c8988886101005160e05161012051610f64565b9860e0519560c0519460a051946101005161012051611aeb565b61123b60c05160a051838c8988886101005160e0516110b4610100516101205161064c565b6111fc565b61125e60c05160a051898b8887876101005160e05161012051610fc8565b6111d3565b60020b8015610721577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276180590565b60020b801561072157620d89e80590565b9060020b9081156107215760020b0790565b8115610721570490565b91826112c981611263565b0260020b836112d781611291565b0260020b908260f81c9062ffffff8460e01c1660020b9261ffff8560d01c1660010b9463ffffffff8160b01c1693600381116114e35760031496871590816114d5575b506114615761132988866112a2565b60020b611461575f86138015906114bd575b80156114a8575b8015611487575b611461576103e88410801561147a575b801561146d575b6114615760501c6fffffffff0000000000000000000000001683158482046c0100000000000000000000000014176305f5e1000215610ec2576305f5e10090049573ffffffffffffffffffffffffffffffffffffffff6113bf89612073565b16871461146157611420575b50506305f5e10010156113fc576113e29381612589565b6a4189374bc6a7ef9db22d0e116113f857600190565b5f90565b8361141661141061141b96610e5e86610c32565b8361064c565b612589565b6113e2565b61143361142d888761082c565b8561064c565b918412918215611454575b505061144b575f806113cb565b50505050505f90565b60020b1390505f8061143e565b50505050505050505f90565b506305f5e1008414611360565b506347868c008411611359565b506114918661074e565b61149b89856106c4565b60020b9060020b12611349565b506114b388836106c4565b60020b8613611342565b50627fffff6114cf8960020b88610686565b1361133b565b62ffffff915016155f61131a565b5050505050505050505f90565b959293918060601b916305f5e1006c01000000000000000000000000838504148315170215610ec2576305f5e1006115589304906305f5e10061153b6115368b8861082c565b6105e1565b93111561165257828961154d94612589565b84610f978582610f57565b946c01000000000000000000000000868060601b041486151760601b15610ec2576a4189374bc6a7ef9db22d0e9573ffffffffffffffffffffffffffffffffffffffff168611611648578460601b906305f5e1006c01000000000000000000000000878404148715170215610ec2576115ef95610f97936305f5e1008087950492115f1461162f576115e992612556565b93610f57565b6c01000000000000000000000000818060601b041481151760601b15610ec25773ffffffffffffffffffffffffffffffffffffffff16106113f857600190565b826116436115366115e995610e5e85610c32565b6123e5565b5050505050505f90565b611667928961141661141082610e5e86610c32565b61154d565b818173ffffffffffffffffffffffffffffffffffffffff8116140215610ec25760601b0490565b8181029181159183041417820215610ec2570490565b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114610407577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b9190820391821161040757565b92919390935f938060020b8460020b81125f14611aad5750505f5b73ffffffffffffffffffffffffffffffffffffffff6117518161174a6117458661074e565b612073565b1695612073565b16966c01000000000000000000000000811115611903578015610ec257780100000000000000000000000000000000000000000000000004600284810b9083900b126117a6575050505050610fc592506126ff565b9091929394506117b68285610c88565b9162ffffff86831193169073ffffffffffffffffffffffffffffffffffffffff6117fa6117456117e685876125d0565b946117f08961074e565b9060020b9061082c565b1693836c0100000000000000000000000003916c01000000000000000000000000831161040757610e5e61186261186894611745948c896118709b62ffffff9a845f146118f4579061184b916116f8565b925b156118eb579061185c916116f8565b916126be565b9761074e565b9416906125d0565b6c0100000000000000000000000003906c0100000000000000000000000082116104075773ffffffffffffffffffffffffffffffffffffffff6118b49316906126be565b906c0100000000000000000000000003926c01000000000000000000000000841161040757610fc5936118e6926126be565b6126ff565b61185c916116f8565b6118fd916116f8565b9261184d565b95969495939290600282810b9082900b126119285750505050505090610fc5916126ff565b9091928481959697500292848685041486151760601b15610ec25761195262ffffff8316876125d0565b9061196262ffffff8516886125d0565b966c0100000000000000000000000003926c0100000000000000000000000084116104075773ffffffffffffffffffffffffffffffffffffffff6119d16117456119e497610e5e6119cb6119de98866119c46117456119d89a610e5e8d61074e565b169061268f565b9661074e565b168861268f565b906116f8565b9061100a565b926c0100000000000000000000000003906c0100000000000000000000000082116104075760601c6c01000000000000000000000000036c01000000000000000000000000811161040757611a389161100a565b906c0100000000000000000000000003916c01000000000000000000000000831161040757611a66926126dc565b906c01000000000000000000000000611a7f82846131c1565b9209611a90575b90610fc5916126ff565b600101908115611aa05790611a86565b63ae47f7025f526004601cfd5b611ac0611aba848661082c565b8661064c565b60020b13611ad357505050505050505f90565b81611ae185611ae693610c88565b6106c4565b611720565b9287611b2c611b3e98611b3897610fbf968d9a96611b26610fc59f98611b32988c84611b20611b1a828a61082c565b8861064c565b91612589565b99612589565b9461100a565b9261100a565b92610f57565b906112b4565b9490939291948060020b8360020b81125f14611b6557505050505050505f90565b83918791611b7661142d848961082c565b60020b13611f4b57505050611b8a83610c32565b905b73ffffffffffffffffffffffffffffffffffffffff611baa87612073565b16956c01000000000000000000000000821115611d78578115610ec257817801000000000000000000000000000000000000000000000000045f8460020b125f14611c0057505050505050610fc591505f6126ff565b73ffffffffffffffffffffffffffffffffffffffff611c2a61174561186262ffffff8a16856125d0565b1695888402898582041460601b15610ec25760601c947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008501948511610407577fffffffffffffffffffffffffffffffffffffffff00000000000000000000000086019586116104075773ffffffffffffffffffffffffffffffffffffffff6119c4611745611ce696610e5e611cdb8c9862ffffff611cd4611ccf8a611ce19c610c88565b610c32565b16906125d0565b95610615565b6116f8565b926c0100000000000000000000000003926c01000000000000000000000000841161040757838160601b9173ffffffffffffffffffffffffffffffffffffffff8116140215610ec25783611d4094820491061515016126be565b907fffffffffffffffffffffffffffffffffffffffff000000000000000000000000840193841161040757610fc5936118e6926126be565b91925f8460029693960b125f14611d99575050505050610fc591505f6126ff565b611db773ffffffffffffffffffffffffffffffffffffffff91612073565b169286850290878683041486151760601b15610ec25773ffffffffffffffffffffffffffffffffffffffff6119c4611745611e109460601c96611e0a611cdb62ffffff611e0388610615565b168c6125d0565b9061082c565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000810190856c01000000000000000000000000036c01000000000000000000000000811161040757611eb99282611e89936c0100000000000000000000000011906c01000000000000000000000000038218021861100a565b9462ffffff7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000085019316906125d0565b6c0100000000000000000000000003906c0100000000000000000000000082116104075782611f0a936c0100000000000000000000000011906c01000000000000000000000000038218021861100a565b937fffffffffffffffffffffffffffffffffffffffff000000000000000000000000810190811161040757610fc5946118e693611f46926126dc565b61268f565b611f5892611ae191610c88565b90611b8c565b9890979391949697959295611f7d611f768387610f57565b8383611693565b94611f9e8a8a8a8a8a611f99611f93838661082c565b8461064c565b611b44565b808c11611fb857505050505050611fb4956127e5565b9091565b611fea959a50610a0d93989499965091611fe491610f97611fdd8a95611fb49f6116f8565b9a82610f57565b9461082c565b926127e5565b9297959796919490939661200d612007878461082c565b8261064c565b9661202261201b8c83610f57565b8288611693565b956120318b8b8b8b8b82611705565b9b8c871161204957505050505050611fb49650612d73565b93995093995094509550610f9781612067611fb49b61206d966116f8565b95610f57565b90612d73565b60020b908160ff1d82810118620d89e881116123b95763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a5940010270010000000000000000000000000000000018916002811661239d575b60048116612381575b60088116612365575b60108116612349575b6020811661232d575b60408116612311575b608081166122f5575b61010081166122d9575b61020081166122bd575b61040081166122a1575b6108008116612285575b6110008116612269575b612000811661224d575b6140008116612231575b6180008116612215575b6201000081166121f9575b6202000081166121de575b6204000081166121c3575b62080000166121aa575b5f12612183575b0160201c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0461217c565b6b048a170391f7dc42444e8fa290910260801c90612175565b6d2216e584f5fa1ea926041bedfe9890920260801c9161216b565b916e5d6af8dedb81196699c329225ee6040260801c91612160565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91612155565b916f31be135f97d08fd981231505542fcfa60260801c9161214a565b916f70d869a156d2a1b890bb3df62baf32f70260801c91612140565b916fa9f746462d870fdf8a65dc1f90e061e50260801c91612136565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161212c565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91612122565b916ff3392b0822b70005940c7a398e4b70f30260801c91612118565b916ff987a7253ac413176f2b074cf7815e540260801c9161210e565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91612104565b916ffe5dee046a99a2a811c461f1969c30530260801c916120fa565b916fff2ea16466c96a3843ec78b326b528610260801c916120f1565b916fff973b41fa98c081472e6896dfb254c00260801c916120e8565b916fffcb9843d60f6159c9db58835c9266440260801c916120df565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916120d6565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916120cd565b916ffff97272373d413259a46990580e213a0260801c916120c4565b827f8b86327a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9291928060020b5f8112908115612536575b5061252e5762ffffff91611ae15f61240e93610c88565b16916c010000000000000000000000008211156124c1578115610ec25761246061245a62ffffff84780100000000000000000000000000000000000000000000000004931694856116f8565b826125d0565b927fffffffffffffffffffffffffffffffffffffffff000000000000000000000000830192831161040757612494916125d0565b6c0100000000000000000000000003906c01000000000000000000000000821161040757610fc592613280565b9091826c0100000000000000000000000003926c0100000000000000000000000084116104075762ffffff6124f961250193836125d0565b9316906125d0565b6c0100000000000000000000000003906c01000000000000000000000000821161040757610fc592611693565b505050505f90565b905061254b612545848761082c565b5f61064c565b60020b13155f6123f7565b919091612566612545828561082c565b60020b5f12156125825761240e62ffffff91611ae15f80610c88565b5050505f90565b91909392938260020b8260020b81129081156125b6575b5061144b57611ae161240e9262ffffff94610c88565b90506125c5611f93838861082c565b60020b13155f6125a0565b919082811560601b936125e1575050565b90925060018316816c0100000000000000000000000018026c01000000000000000000000000189260011c90815b612617575050565b8080026b80000000000000000000000081019160801c908210176126825760601c906001811661264c575b60011c908161260f565b92818082026b8000000000000000000000008101928282851092041817612678575b5060601c92612642565b612682578161266e565b6349f7642b5f526004601cfd5b9080820290808383041483151760601b15610ec2576c010000000000000000000000009160601c920915150190565b818102929181159184041417810215610ec257808204910615150190565b9291906126ea828286613280565b93096126f257565b90600101908115611aa057565b919080830283158285830414171561273c576c010000000000000000000000009060601c915b82940961272f5750565b60010191508115611aa057565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828509818110820190038060601c1561277d5763ae47f7025f526004601cfd5b6c010000000000000000000000009160601c9060a01b0191612725565b907ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c0000820191821360011661040757565b9190915f838201938412911290801582169115161761040757565b959394958015612d5f576127f982826131c1565b73ffffffffffffffffffffffffffffffffffffffff61281785612073565b89159291168981028a81048214841760601b15610ec25760601c61283a81613325565b938a8c6c01000000000000000000000000811115612b32575050610ec25761288262ffffff8b168c7801000000000000000000000000000000000000000000000000046125d0565b9273ffffffffffffffffffffffffffffffffffffffff6128a46117458b61074e565b16917fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008d01918d8311610407577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000820191821161040757856c0100000000000000000000000003946c010000000000000000000000008611610407577fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081019081116104075761295c9461295792611693565b611693565b818102918183041490151760601b15610ec25760601c61297c8282610f57565b15612b2357916129c06129a56129a061299b6129c5956129ca97610f57565b613574565b613589565b6129ba6129b18d613589565b8c60020b610686565b906127ca565b6137b0565b61279a565b965b6129d587610c32565b60020b92670de0b6b3a7640000840293808505670de0b6b3a7640000149015171561040757838913612ae9575b505050506001948282612a1e670de0b6b3a764000084056137e0565b925f81139081612ad5575b50612abd575b612a3c90612a419361082c565b61064c565b938482612a4e8186610c88565b60020b9160020b918212928315612aa0575b505050612a9657612a719082610c88565b60020b8360020b1480612a8e575b612a865750565b600193509150565b506001612a7f565b505f935083925050565b612ab092935090611f939161082c565b60020b13155f8281612a60565b505060020b627fffff81146104075785018282612a2f565b670de0b6b3a764000091500715155f612a29565b879698509685858099611f99611f93612b07979899610e5e87610c32565b1015612b1757505050505f905f90565b9391925f808080612a02565b505f9850889750505050505050565b915093929173ffffffffffffffffffffffffffffffffffffffff612b558b612073565b1690612b9a7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082019362ffffff836c01000000000000000000000000119816906125d0565b6c01000000000000000000000000036c01000000000000000000000000811161040757612be49387612bde936c01000000000000000000000000038218021861100a565b936131c1565b917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000820191821161040757612c1892613280565b908080612d1b575b612cf55715612c9257886c01000000000000000000000000036c01000000000000000000000000811161040757612c56916112b4565b6c01000000000000000000000000036c01000000000000000000000000811161040757612c8c916129c06129a06129c593613574565b966129cc565b886c01000000000000000000000000036c01000000000000000000000000811161040757612cbf916112b4565b6c0100000000000000000000000001806c010000000000000000000000001161040757612c8c916129c06129a06129c593613574565b50505093949092809692612d099482611b44565b10612d145760019190565b5f91508190565b50896c01000000000000000000000000036c01000000000000000000000000811161040757612d4a90836112b4565b6c010000000000000000000000001115612c20565b5050919350612d6e9250610c88565b600191565b9095939492919281156131af57612d8a87836131c1565b876c01000000000000000000000000840961319a575b73ffffffffffffffffffffffffffffffffffffffff612dc16117458761074e565b1673ffffffffffffffffffffffffffffffffffffffff612de086612073565b1690808402928415938286820414851760601b15610ec25760601c93612e0585613589565b946c010000000000000000000000008711156130ad5750610ec2578478010000000000000000000000000000000000000000000000000490612e4c62ffffff8c16836125d0565b9083831194846c0100000000000000000000000003906c01000000000000000000000000821161040757612e7f926126be565b906c01000000000000000000000000036c01000000000000000000000000811161040757612eac9161268f565b9181841561309e5790612ebe916116f8565b905b6c0100000000000000000000000003906c01000000000000000000000000821161040757612eed926126be565b612efd6117458a610e5e8a61074e565b9180158061307e575b61305b57612f40612f5a94936129c093612f45935f1461303c5773ffffffffffffffffffffffffffffffffffffffff61299b921690610f57565b613325565b6129ba612f5186613325565b8b60020b610686565b965b5f881261300e575b505050612f9a81612a3c84600198612f85670de0b6b3a764000082056137e0565b905f81129081612ffa575b50610e925761082c565b90612fa961200784849761082c565b9160020b9060020b8112908115612fed575b50612a96578060020b8460020b1480612fe5575b612fd7575050565b90919350612d6e9250610c88565b506001612fcf565b90508160020b125f612fbb565b670de0b6b3a764000091500715155f612f90565b8695975095838581986130219596611705565b1015613030575050505f905f90565b5f9391925f8080612f64565b73ffffffffffffffffffffffffffffffffffffffff61299b92166116f8565b505050509183613077611410612d0996610e5e8a96999a610c32565b9788611705565b508173ffffffffffffffffffffffffffffffffffffffff84161115612f06565b6130a7916116f8565b90612ec0565b949362ffffff8c16939291506130c384886125d0565b6c0100000000000000000000000003906c01000000000000000000000000821161040757866c0100000000000000000000000003916c0100000000000000000000000083116104075761311f926131199161100a565b9261268f565b916c0100000000000000000000000003906c0100000000000000000000000082116104075761314d926126dc565b90846c0100000000000000000000000003916c0100000000000000000000000083116104075761319494610fbf612f409361318e6129c09661299b956112b4565b926125d0565b96612f5c565b60010180612da05763ae47f7025f526004601cfd5b5050919350610a0d90612d6e9361082c565b908160601b91816c010000000000000000000000008285041482151702156131e95750900490565b816c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81840985811086019003920990825f0383169281811115611aa05783900480600302600218808202600203028082026002030280820260020302808202600203028082026002030280910260020302936001848483030494805f0304019211900302170290565b8181029291811582850482141783021561329b575050900490565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8492840985811086019003920990825f0383169281811115611aa05783900480600302600218808202600203028082026002030280820260020302808202600203028082026002030280910260020302936001848483030494805f0304019211900302170290565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b175f821315613567577ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f1c7ffffffffffffffff5f6af8f7b3396644f18e15796000000000000000000000000816c465772b2bbbb5f824b15207a3001820260601d6d0388eaa27412d5aca026815d636e01820260601d6d0df99ac502031bf953eff472fdcc01820260601d6d13cdffb29d51d99322bdff5f221101820260601d6d0a0f742023def783a307a986912e01820260601d6d01920d8043ca89b5239253284e4201820260601d6c0b7a86d7375468fac667a0a52701917fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832817ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f817fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9818080806c29508e458543d8aa4df2abee78010260601d6d0139601a2efabe717e604cbb4894010260601d6d02247f7a7b6594320649aa03aba1010260601d010260601d010260601d010201056c058ca53c07678b86e4c893de470290609f0377b17217f7d1cf79abc9e3b39803f2f6af40f343267298b62d0201906bffffffffffffffffffffffff8260601d921661356057565b9060010190565b63e65fd7ca5f526004601cfd5b5f811215610fc5576335278d125f526004601cfd5b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b175f821315613567577ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f1c7ffffffffffffffff5f6af8f7b3396644f18e15796000000000000000000000000816c465772b2bbbb5f824b15207a3001820260601d6d0388eaa27412d5aca026815d636e01820260601d6d0df99ac502031bf953eff472fdcc01820260601d6d13cdffb29d51d99322bdff5f221101820260601d6d0a0f742023def783a307a986912e01820260601d6d01920d8043ca89b5239253284e4201820260601d6c0b7a86d7375468fac667a0a52701917fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832817ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f817fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9818080806c29508e458543d8aa4df2abee78010260601d6d0139601a2efabe717e604cbb4894010260601d6d02247f7a7b6594320649aa03aba1010260601d010260601d010260601d010201056c058ca53c07678b86e4c893de470290609f0377b17217f7d1cf79abc9e3b39803f2f6af40f343267298b62d020160601d90565b670de0b6b3a7640000810290670de0b6b3a76400008205148202156137d3570590565b635c43740d5f526004601cfd5b80628000000160181c156137fb576335278d125f526004601cfd5b60020b9056fea264697066735822122071ee6890164cff32c8f3ec07efd1fa54822cfff019920aa00072a90d8b391a4864736f6c634300081c0033000000000000000000000000000000dceb71f3107909b1b748424349bfde54930000000000000000000000000010d0d5db05933fa0d9f7038d365e1541a41888000000000000000000000000000000719604d7ea57be2d4480e429a4d3afef88