{"abi":[{"type":"function","name":"afterAddLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterAddLiquidityData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"afterDonate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterDonateData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"afterInitialize","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"uint160","internalType":"uint160"},{"name":"","type":"int24","internalType":"int24"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterInitializeData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"afterRemoveLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterRemoveLiquidityData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"afterSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int128","internalType":"int128"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterSwapData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"beforeAddLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeAddLiquidityData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"beforeDonate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeDonateData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"beforeInitialize","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeInitializeData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"beforeRemoveLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeRemoveLiquidityData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"beforeSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BeforeSwapDelta"},{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeSwapData","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"lpFees","inputs":[{"name":"","type":"bytes32","internalType":"PoolId"}],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"returnValues","inputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"setReturnValue","inputs":[{"name":"key","type":"bytes4","internalType":"bytes4"},{"name":"value","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setlpFee","inputs":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"value","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60808060405234601557612c71908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630a2d5827146127d757806317bd61231461278b57806321d0ee70146124f9578063259982e5146122675780634d081c7e146121a457806350cd07eb146120e4578063542e936914612021578063575e24b414611cc45780635941b5bb14611c04578063622e60de14611b415780636c2bbe7e146118c45780636fe7e6eb146115b057806370b28eda146114ed5780637a3385f5146113d45780637e472fb2146113115780639f063efc14611048578063a2bc94ad14610fb4578063af57c18414610ef1578063b47b2fb114610b9b578063b6a8b0fa146108fd578063b85164661461083a578063db6d76a214610724578063dc98354e146104145763e1b4af6914610121575f80fd5b346104105761012f36612bc3565b93509350505067ffffffffffffffff81116103e35761014f60095461289a565b601f8111610380575b505f601f82116001146102c85781906101a4935f926102bd575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6009555b7fe1b4af69000000000000000000000000000000000000000000000000000000005f52600a6020527f3e1cff7e09cc4cb604c0c017add856c5756522d5e4dfc08fa794b6e2e9f5c0e95460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166102695760207fe1b4af69000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b7fe1b4af69000000000000000000000000000000000000000000000000000000005f52600a60209081527f3e1cff7e09cc4cb604c0c017add856c5756522d5e4dfc08fa794b6e2e9f5c0e95460e01b61023f565b013590505f80610172565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af915f5b85811061036857508360019510610330575b505050811b016009556101a8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690555f8080610322565b90926020600181928686013581550194019101610310565b60095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f830160051c810191602084106103d9575b601f0160051c01905b8181106103ce5750610158565b5f81556001016103c1565b90915081906103b8565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80fd5b346104105760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104105761044b612974565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126104105761047e612b90565b5060405161048d60a0826128eb565b607b81526080366020830137805167ffffffffffffffff81116103e3576104b45f5461289a565b601f81116106c2575b50602091601f821160011461060957610509925f91836105fe5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b5f555b7fdc98354e000000000000000000000000000000000000000000000000000000005f52600a6020527fe9af230b075368827a096d210a4bb5b0ba070196fed557f29cf81f034c65cada5460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166105aa576040517fdc98354e000000000000000000000000000000000000000000000000000000008152602090f35b7fdc98354e000000000000000000000000000000000000000000000000000000005f52600a60209081527fe9af230b075368827a096d210a4bb5b0ba070196fed557f29cf81f034c65cada5460e01b61023f565b015190508380610172565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216925f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563915f5b8581106106aa57508360019510610673575b505050811b015f5561050c565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055828080610666565b91926020600181928685015181550194019201610654565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c8101916020841061071a575b601f0160051c01905b81811061070f57506104bd565b5f8155600101610702565b90915081906106f9565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f6002546107628161289a565b80845290600181169081156107f8575060011461079a575b6107968361078a818503826128eb565b6040519182918261292c565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106107de5750909150810160200161078a61077a565b9192600181602092548385880101520191019092916107c6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061078a905061077a565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f6003546108788161289a565b80845290600181169081156107f8575060011461089f576107968361078a818503826128eb565b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b8082106108e35750909150810160200161078a61077a565b9192600181602092548385880101520191019092916108cb565b346104105761090b36612bc3565b93509350505067ffffffffffffffff81116103e35761092b60085461289a565b601f8111610b38575b505f601f8211600114610a8057819061097f935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6008555b7fb6a8b0fa000000000000000000000000000000000000000000000000000000005f52600a6020527fc020f4cb7a0ae9ba5c590fbb2728bbab87fc8f068a74c7042ca3f2f27cc519f75460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016610a21576040517fb6a8b0fa000000000000000000000000000000000000000000000000000000008152602090f35b7fb6a8b0fa000000000000000000000000000000000000000000000000000000005f52600a60209081527fc020f4cb7a0ae9ba5c590fbb2728bbab87fc8f068a74c7042ca3f2f27cc519f75460e01b61023f565b013590508380610172565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3915f5b858110610b2057508360019510610ae8575b505050811b01600855610983565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080610ada565b90926020600181928686013581550194019101610ac8565b60085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f830160051c81019160208410610b91575b601f0160051c01905b818110610b865750610934565b5f8155600101610b79565b9091508190610b70565b34610410576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261041057610bd3612974565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126104105760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610410576101443567ffffffffffffffff811161041057610c49903690600401612997565b67ffffffffffffffff81116103e357610c6360075461289a565b601f8111610e8e575b505f601f8211600114610dd6578190610cb7935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6007555b7fb47b2fb1000000000000000000000000000000000000000000000000000000005f52600a6020527f2491b1a3e05eb915595dd2d17535e9dd4280b7e1dc3e97bd1382883e4c8628635460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016610d815760407fb47b2fb1000000000000000000000000000000000000000000000000000000005b7fffffffff000000000000000000000000000000000000000000000000000000008251911681525f6020820152f35b7fb47b2fb1000000000000000000000000000000000000000000000000000000005f52600a6020527f2491b1a3e05eb915595dd2d17535e9dd4280b7e1dc3e97bd1382883e4c8628635460409060e01b610d52565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688915f5b858110610e7657508360019510610e3e575b505050811b01600755610cbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080610e30565b90926020600181928686013581550194019101610e1e565b60075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f830160051c81019160208410610ee7575b601f0160051c01905b818110610edc5750610c6c565b5f8155600101610ecf565b9091508190610ec6565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f600854610f2f8161289a565b80845290600181169081156107f85750600114610f56576107968361078a818503826128eb565b60085f9081527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3939250905b808210610f9a5750909150810160200161078a61077a565b919260018160209254838588010152019101909291610f82565b346104105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410577fffffffff0000000000000000000000000000000000000000000000000000000061100c612a90565b165f52600a602052602060405f205460e01b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b346104105761105636612abf565b9450945050505067ffffffffffffffff81116103e35761107760035461289a565b601f81116112ae575b505f601f82116001146111f65781906110cb935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6003555b7f9f063efc000000000000000000000000000000000000000000000000000000005f52600a6020527fa34b77616cf9980164957428ccd599e1fe45c8cfb6fe19170f221f0880d599d25460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166111a0576107967f9f063efc000000000000000000000000000000000000000000000000000000005b604080517fffffffff0000000000000000000000000000000000000000000000000000000090921682525f602083015290918291820190565b7f9f063efc000000000000000000000000000000000000000000000000000000005f52600a6020527fa34b77616cf9980164957428ccd599e1fe45c8cfb6fe19170f221f0880d599d2546107969060e01b611167565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b8581106112965750836001951061125e575b505050811b016003556110cf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080611250565b9092602060018192868601358155019401910161123e565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410611307575b601f0160051c01905b8181106112fc5750611080565b5f81556001016112ef565b90915081906112e6565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f60055461134f8161289a565b80845290600181169081156107f85750600114611376576107968361078a818503826128eb565b60055f9081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b8082106113ba5750909150810160200161078a61077a565b9192600181602092548385880101520191019092916113a2565b34610410577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360160c081126104105760a0136104105760a43561ffff81168091036104105760405160a0810181811067ffffffffffffffff8211176103e35760405261143f612974565b815260243573ffffffffffffffffffffffffffffffffffffffff8116810361041057602082015260443562ffffff811681036104105760408201526064358060020b81036104105760608201526084359073ffffffffffffffffffffffffffffffffffffffff821682036104105760a0916080820152205f52600b60205260405f20907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00008254161790555f80f35b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f60095461152b8161289a565b80845290600181169081156107f85750600114611552576107968361078a818503826128eb565b60095f9081527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af939250905b8082106115965750909150810160200161078a61077a565b91926001816020925483858801015201910190929161157e565b34610410576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576115e8612974565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126104105761161b612b90565b50611624612bb3565b5060405161163360a0826128eb565b607b81526080366020830137805167ffffffffffffffff81116103e35761165b60015461289a565b601f8111611861575b50602091601f82116001146117a6576116b0925f91836105fe5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6001555b7f6fe7e6eb000000000000000000000000000000000000000000000000000000005f52600a6020527f60ebf593746d2e2866623a7ab8917e472a604dce3ffb917d2854c19cb1163cb85460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016611752576040517f6fe7e6eb000000000000000000000000000000000000000000000000000000008152602090f35b7f6fe7e6eb000000000000000000000000000000000000000000000000000000005f52600a60209081527f60ebf593746d2e2866623a7ab8917e472a604dce3ffb917d2854c19cb1163cb85460e01b61023f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169260015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f5b85811061184957508360019510611812575b505050811b016001556116b4565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055828080611804565b919260206001819286850151815501940192016117f2565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c810191602084106118ba575b601f0160051c01905b8181106118af5750611664565b5f81556001016118a2565b9091508190611899565b34610410576118d236612abf565b9450945050505067ffffffffffffffff81116103e3576118f360055461289a565b601f8111611afb575b505f601f8211600114611a43578190611947935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6005555b7f6c2bbe7e000000000000000000000000000000000000000000000000000000005f52600a6020527f493715af9853ab3fd3f151791a8667a739e059bb7da693d353a4db0e7735ef025460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166119ed57604080517f6c2bbe7e0000000000000000000000000000000000000000000000000000000081525f6020820152f35b7f6c2bbe7e000000000000000000000000000000000000000000000000000000005f52600a6020527f493715af9853ab3fd3f151791a8667a739e059bb7da693d353a4db0e7735ef02546107969060e01b611167565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b858110611ae357508360019510611aab575b505050811b0160055561194b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080611a9d565b90926020600181928686013581550194019101611a8b565b60055f5260205f20601f830160051c81019160208410611b37575b601f0160051c01905b818110611b2c57506118fc565b5f8155600101611b1f565b9091508190611b16565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f600754611b7f8161289a565b80845290600181169081156107f85750600114611ba6576107968361078a818503826128eb565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210611bea5750909150810160200161078a61077a565b919260018160209254838588010152019101909291611bd2565b346104105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261041057611c3b612a90565b602435907fffffffff0000000000000000000000000000000000000000000000000000000082168203610410577fffffffff00000000000000000000000000000000000000000000000000000000165f52600a60205260405f209060e01c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008254161790555f80f35b34610410576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261041057611cfc612974565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126104105760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610410576101243567ffffffffffffffff811161041057611d72903690600401612997565b67ffffffffffffffff81116103e357611d8c60065461289a565b601f8111611fbe575b505f601f8211600114611f06578190611de0935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6006555b7f575e24b4000000000000000000000000000000000000000000000000000000005f52600a6020527f8f4f5a3132b3286a8e7a4ddb5cd55fe3b98d5fc42a66d217eae1c84b873ebaf25460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016611eb15760607f575e24b4000000000000000000000000000000000000000000000000000000005b7fffffffff00000000000000000000000000000000000000000000000000000000604051911681525f60208201525f6040820152f35b7f575e24b4000000000000000000000000000000000000000000000000000000005f52600a6020527f8f4f5a3132b3286a8e7a4ddb5cd55fe3b98d5fc42a66d217eae1c84b873ebaf25460609060e01b611e7b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b858110611fa657508360019510611f6e575b505050811b01600655611de4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080611f60565b90926020600181928686013581550194019101611f4e565b60065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f830160051c81019160208410612017575b601f0160051c01905b81811061200c5750611d95565b5f8155600101611fff565b9091508190611ff6565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f60065461205f8161289a565b80845290600181169081156107f85750600114612086576107968361078a818503826128eb565b60065f9081527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f939250905b8082106120ca5750909150810160200161078a61077a565b9192600181602092548385880101520191019092916120b2565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f80546121218161289a565b80845290600181169081156107f85750600114612148576107968361078a818503826128eb565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b80821061218a5750909150810160200161078a61077a565b919260018160209254838588010152019101909291612172565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f6004546121e28161289a565b80845290600181169081156107f85750600114612209576107968361078a818503826128eb565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b80821061224d5750909150810160200161078a61077a565b919260018160209254838588010152019101909291612235565b3461041057612275366129c5565b925092505067ffffffffffffffff81116103e35761229460025461289a565b601f8111612496575b505f601f82116001146123de5781906122e8935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6002555b7f259982e5000000000000000000000000000000000000000000000000000000005f52600a6020527fc3eb8857b979a39a232f594aca1feb3d3a12b1f808751651f517ed9effc532795460e01b7fffffffff000000000000000000000000000000000000000000000000000000001661238a576040517f259982e5000000000000000000000000000000000000000000000000000000008152602090f35b7f259982e5000000000000000000000000000000000000000000000000000000005f52600a60209081527fc3eb8857b979a39a232f594aca1feb3d3a12b1f808751651f517ed9effc532795460e01b61023f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f5b85811061247e57508360019510612446575b505050811b016002556122ec565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080612438565b90926020600181928686013581550194019101612426565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106124ef575b601f0160051c01905b8181106124e4575061229d565b5f81556001016124d7565b90915081906124ce565b3461041057612507366129c5565b925092505067ffffffffffffffff81116103e35761252660045461289a565b601f8111612728575b505f601f821160011461267057819061257a935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6004555b7f21d0ee70000000000000000000000000000000000000000000000000000000005f52600a6020527f3ca76996c4de3804eeab337bff8d944de8de2379662c8666e6ffe7bfa23a1b435460e01b7fffffffff000000000000000000000000000000000000000000000000000000001661261c576040517f21d0ee70000000000000000000000000000000000000000000000000000000008152602090f35b7f21d0ee70000000000000000000000000000000000000000000000000000000005f52600a60209081527f3ca76996c4de3804eeab337bff8d944de8de2379662c8666e6ffe7bfa23a1b435460e01b61023f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b858110612710575083600195106126d8575b505050811b0160045561257e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558280806126ca565b909260206001819286860135815501940191016126b8565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410612781575b601f0160051c01905b818110612776575061252f565b5f8155600101612769565b9091508190612760565b346104105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576004355f52600b602052602061ffff60405f205416604051908152f35b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f6001546128158161289a565b80845290600181169081156107f8575060011461283c576107968361078a818503826128eb565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106128805750909150810160200161078a61077a565b919260018160209254838588010152019101909291612868565b90600182811c921680156128e1575b60208310146128b457565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916128a9565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176103e357604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361041057565b9181601f840112156104105782359167ffffffffffffffff8311610410576020838186019501011161041057565b906101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126104105760043573ffffffffffffffffffffffffffffffffffffffff81168103610410579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8201126104105760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c8301126104105760c491610144359067ffffffffffffffff821161041057612a8c91600401612997565b9091565b600435907fffffffff000000000000000000000000000000000000000000000000000000008216820361041057565b906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126104105760043573ffffffffffffffffffffffffffffffffffffffff81168103610410579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8201126104105760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c8301126104105760c49161014435916101643591610184359067ffffffffffffffff821161041057612a8c91600401612997565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361041057565b60e435908160020b820361041057565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126104105760043573ffffffffffffffffffffffffffffffffffffffff81168103610410579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8301126104105760249160c4359160e43591610104359067ffffffffffffffff821161041057612a8c9160040161299756fea164736f6c634300081a000a","sourceMap":"553:4663:83:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80630a2d5827146127d757806317bd61231461278b57806321d0ee70146124f9578063259982e5146122675780634d081c7e146121a457806350cd07eb146120e4578063542e936914612021578063575e24b414611cc45780635941b5bb14611c04578063622e60de14611b415780636c2bbe7e146118c45780636fe7e6eb146115b057806370b28eda146114ed5780637a3385f5146113d45780637e472fb2146113115780639f063efc14611048578063a2bc94ad14610fb4578063af57c18414610ef1578063b47b2fb114610b9b578063b6a8b0fa146108fd578063b85164661461083a578063db6d76a214610724578063dc98354e146104145763e1b4af6914610121575f80fd5b346104105761012f36612bc3565b93509350505067ffffffffffffffff81116103e35761014f60095461289a565b601f8111610380575b505f601f82116001146102c85781906101a4935f926102bd575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6009555b7fe1b4af69000000000000000000000000000000000000000000000000000000005f52600a6020527f3e1cff7e09cc4cb604c0c017add856c5756522d5e4dfc08fa794b6e2e9f5c0e95460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166102695760207fe1b4af69000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b7fe1b4af69000000000000000000000000000000000000000000000000000000005f52600a60209081527f3e1cff7e09cc4cb604c0c017add856c5756522d5e4dfc08fa794b6e2e9f5c0e95460e01b61023f565b013590505f80610172565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af915f5b85811061036857508360019510610330575b505050811b016009556101a8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690555f8080610322565b90926020600181928686013581550194019101610310565b60095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f830160051c810191602084106103d9575b601f0160051c01905b8181106103ce5750610158565b5f81556001016103c1565b90915081906103b8565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80fd5b346104105760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104105761044b612974565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126104105761047e612b90565b5060405161048d60a0826128eb565b607b81526080366020830137805167ffffffffffffffff81116103e3576104b45f5461289a565b601f81116106c2575b50602091601f821160011461060957610509925f91836105fe5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b5f555b7fdc98354e000000000000000000000000000000000000000000000000000000005f52600a6020527fe9af230b075368827a096d210a4bb5b0ba070196fed557f29cf81f034c65cada5460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166105aa576040517fdc98354e000000000000000000000000000000000000000000000000000000008152602090f35b7fdc98354e000000000000000000000000000000000000000000000000000000005f52600a60209081527fe9af230b075368827a096d210a4bb5b0ba070196fed557f29cf81f034c65cada5460e01b61023f565b015190508380610172565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216925f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563915f5b8581106106aa57508360019510610673575b505050811b015f5561050c565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055828080610666565b91926020600181928685015181550194019201610654565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c8101916020841061071a575b601f0160051c01905b81811061070f57506104bd565b5f8155600101610702565b90915081906106f9565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f6002546107628161289a565b80845290600181169081156107f8575060011461079a575b6107968361078a818503826128eb565b6040519182918261292c565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106107de5750909150810160200161078a61077a565b9192600181602092548385880101520191019092916107c6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061078a905061077a565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f6003546108788161289a565b80845290600181169081156107f8575060011461089f576107968361078a818503826128eb565b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b8082106108e35750909150810160200161078a61077a565b9192600181602092548385880101520191019092916108cb565b346104105761090b36612bc3565b93509350505067ffffffffffffffff81116103e35761092b60085461289a565b601f8111610b38575b505f601f8211600114610a8057819061097f935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6008555b7fb6a8b0fa000000000000000000000000000000000000000000000000000000005f52600a6020527fc020f4cb7a0ae9ba5c590fbb2728bbab87fc8f068a74c7042ca3f2f27cc519f75460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016610a21576040517fb6a8b0fa000000000000000000000000000000000000000000000000000000008152602090f35b7fb6a8b0fa000000000000000000000000000000000000000000000000000000005f52600a60209081527fc020f4cb7a0ae9ba5c590fbb2728bbab87fc8f068a74c7042ca3f2f27cc519f75460e01b61023f565b013590508380610172565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3915f5b858110610b2057508360019510610ae8575b505050811b01600855610983565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080610ada565b90926020600181928686013581550194019101610ac8565b60085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f830160051c81019160208410610b91575b601f0160051c01905b818110610b865750610934565b5f8155600101610b79565b9091508190610b70565b34610410576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261041057610bd3612974565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126104105760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610410576101443567ffffffffffffffff811161041057610c49903690600401612997565b67ffffffffffffffff81116103e357610c6360075461289a565b601f8111610e8e575b505f601f8211600114610dd6578190610cb7935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6007555b7fb47b2fb1000000000000000000000000000000000000000000000000000000005f52600a6020527f2491b1a3e05eb915595dd2d17535e9dd4280b7e1dc3e97bd1382883e4c8628635460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016610d815760407fb47b2fb1000000000000000000000000000000000000000000000000000000005b7fffffffff000000000000000000000000000000000000000000000000000000008251911681525f6020820152f35b7fb47b2fb1000000000000000000000000000000000000000000000000000000005f52600a6020527f2491b1a3e05eb915595dd2d17535e9dd4280b7e1dc3e97bd1382883e4c8628635460409060e01b610d52565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688915f5b858110610e7657508360019510610e3e575b505050811b01600755610cbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080610e30565b90926020600181928686013581550194019101610e1e565b60075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f830160051c81019160208410610ee7575b601f0160051c01905b818110610edc5750610c6c565b5f8155600101610ecf565b9091508190610ec6565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f600854610f2f8161289a565b80845290600181169081156107f85750600114610f56576107968361078a818503826128eb565b60085f9081527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3939250905b808210610f9a5750909150810160200161078a61077a565b919260018160209254838588010152019101909291610f82565b346104105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410577fffffffff0000000000000000000000000000000000000000000000000000000061100c612a90565b165f52600a602052602060405f205460e01b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b346104105761105636612abf565b9450945050505067ffffffffffffffff81116103e35761107760035461289a565b601f81116112ae575b505f601f82116001146111f65781906110cb935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6003555b7f9f063efc000000000000000000000000000000000000000000000000000000005f52600a6020527fa34b77616cf9980164957428ccd599e1fe45c8cfb6fe19170f221f0880d599d25460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166111a0576107967f9f063efc000000000000000000000000000000000000000000000000000000005b604080517fffffffff0000000000000000000000000000000000000000000000000000000090921682525f602083015290918291820190565b7f9f063efc000000000000000000000000000000000000000000000000000000005f52600a6020527fa34b77616cf9980164957428ccd599e1fe45c8cfb6fe19170f221f0880d599d2546107969060e01b611167565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b8581106112965750836001951061125e575b505050811b016003556110cf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080611250565b9092602060018192868601358155019401910161123e565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410611307575b601f0160051c01905b8181106112fc5750611080565b5f81556001016112ef565b90915081906112e6565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f60055461134f8161289a565b80845290600181169081156107f85750600114611376576107968361078a818503826128eb565b60055f9081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b8082106113ba5750909150810160200161078a61077a565b9192600181602092548385880101520191019092916113a2565b34610410577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360160c081126104105760a0136104105760a43561ffff81168091036104105760405160a0810181811067ffffffffffffffff8211176103e35760405261143f612974565b815260243573ffffffffffffffffffffffffffffffffffffffff8116810361041057602082015260443562ffffff811681036104105760408201526064358060020b81036104105760608201526084359073ffffffffffffffffffffffffffffffffffffffff821682036104105760a0916080820152205f52600b60205260405f20907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00008254161790555f80f35b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f60095461152b8161289a565b80845290600181169081156107f85750600114611552576107968361078a818503826128eb565b60095f9081527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af939250905b8082106115965750909150810160200161078a61077a565b91926001816020925483858801015201910190929161157e565b34610410576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576115e8612974565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126104105761161b612b90565b50611624612bb3565b5060405161163360a0826128eb565b607b81526080366020830137805167ffffffffffffffff81116103e35761165b60015461289a565b601f8111611861575b50602091601f82116001146117a6576116b0925f91836105fe5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6001555b7f6fe7e6eb000000000000000000000000000000000000000000000000000000005f52600a6020527f60ebf593746d2e2866623a7ab8917e472a604dce3ffb917d2854c19cb1163cb85460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016611752576040517f6fe7e6eb000000000000000000000000000000000000000000000000000000008152602090f35b7f6fe7e6eb000000000000000000000000000000000000000000000000000000005f52600a60209081527f60ebf593746d2e2866623a7ab8917e472a604dce3ffb917d2854c19cb1163cb85460e01b61023f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169260015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f5b85811061184957508360019510611812575b505050811b016001556116b4565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055828080611804565b919260206001819286850151815501940192016117f2565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c810191602084106118ba575b601f0160051c01905b8181106118af5750611664565b5f81556001016118a2565b9091508190611899565b34610410576118d236612abf565b9450945050505067ffffffffffffffff81116103e3576118f360055461289a565b601f8111611afb575b505f601f8211600114611a43578190611947935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6005555b7f6c2bbe7e000000000000000000000000000000000000000000000000000000005f52600a6020527f493715af9853ab3fd3f151791a8667a739e059bb7da693d353a4db0e7735ef025460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166119ed57604080517f6c2bbe7e0000000000000000000000000000000000000000000000000000000081525f6020820152f35b7f6c2bbe7e000000000000000000000000000000000000000000000000000000005f52600a6020527f493715af9853ab3fd3f151791a8667a739e059bb7da693d353a4db0e7735ef02546107969060e01b611167565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b858110611ae357508360019510611aab575b505050811b0160055561194b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080611a9d565b90926020600181928686013581550194019101611a8b565b60055f5260205f20601f830160051c81019160208410611b37575b601f0160051c01905b818110611b2c57506118fc565b5f8155600101611b1f565b9091508190611b16565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f600754611b7f8161289a565b80845290600181169081156107f85750600114611ba6576107968361078a818503826128eb565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210611bea5750909150810160200161078a61077a565b919260018160209254838588010152019101909291611bd2565b346104105760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261041057611c3b612a90565b602435907fffffffff0000000000000000000000000000000000000000000000000000000082168203610410577fffffffff00000000000000000000000000000000000000000000000000000000165f52600a60205260405f209060e01c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008254161790555f80f35b34610410576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261041057611cfc612974565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126104105760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610410576101243567ffffffffffffffff811161041057611d72903690600401612997565b67ffffffffffffffff81116103e357611d8c60065461289a565b601f8111611fbe575b505f601f8211600114611f06578190611de0935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6006555b7f575e24b4000000000000000000000000000000000000000000000000000000005f52600a6020527f8f4f5a3132b3286a8e7a4ddb5cd55fe3b98d5fc42a66d217eae1c84b873ebaf25460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016611eb15760607f575e24b4000000000000000000000000000000000000000000000000000000005b7fffffffff00000000000000000000000000000000000000000000000000000000604051911681525f60208201525f6040820152f35b7f575e24b4000000000000000000000000000000000000000000000000000000005f52600a6020527f8f4f5a3132b3286a8e7a4ddb5cd55fe3b98d5fc42a66d217eae1c84b873ebaf25460609060e01b611e7b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b858110611fa657508360019510611f6e575b505050811b01600655611de4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080611f60565b90926020600181928686013581550194019101611f4e565b60065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f830160051c81019160208410612017575b601f0160051c01905b81811061200c5750611d95565b5f8155600101611fff565b9091508190611ff6565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f60065461205f8161289a565b80845290600181169081156107f85750600114612086576107968361078a818503826128eb565b60065f9081527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f939250905b8082106120ca5750909150810160200161078a61077a565b9192600181602092548385880101520191019092916120b2565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f80546121218161289a565b80845290600181169081156107f85750600114612148576107968361078a818503826128eb565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b80821061218a5750909150810160200161078a61077a565b919260018160209254838588010152019101909291612172565b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f6004546121e28161289a565b80845290600181169081156107f85750600114612209576107968361078a818503826128eb565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b80821061224d5750909150810160200161078a61077a565b919260018160209254838588010152019101909291612235565b3461041057612275366129c5565b925092505067ffffffffffffffff81116103e35761229460025461289a565b601f8111612496575b505f601f82116001146123de5781906122e8935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6002555b7f259982e5000000000000000000000000000000000000000000000000000000005f52600a6020527fc3eb8857b979a39a232f594aca1feb3d3a12b1f808751651f517ed9effc532795460e01b7fffffffff000000000000000000000000000000000000000000000000000000001661238a576040517f259982e5000000000000000000000000000000000000000000000000000000008152602090f35b7f259982e5000000000000000000000000000000000000000000000000000000005f52600a60209081527fc3eb8857b979a39a232f594aca1feb3d3a12b1f808751651f517ed9effc532795460e01b61023f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f5b85811061247e57508360019510612446575b505050811b016002556122ec565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055828080612438565b90926020600181928686013581550194019101612426565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106124ef575b601f0160051c01905b8181106124e4575061229d565b5f81556001016124d7565b90915081906124ce565b3461041057612507366129c5565b925092505067ffffffffffffffff81116103e35761252660045461289a565b601f8111612728575b505f601f821160011461267057819061257a935f92610a755750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b6004555b7f21d0ee70000000000000000000000000000000000000000000000000000000005f52600a6020527f3ca76996c4de3804eeab337bff8d944de8de2379662c8666e6ffe7bfa23a1b435460e01b7fffffffff000000000000000000000000000000000000000000000000000000001661261c576040517f21d0ee70000000000000000000000000000000000000000000000000000000008152602090f35b7f21d0ee70000000000000000000000000000000000000000000000000000000005f52600a60209081527f3ca76996c4de3804eeab337bff8d944de8de2379662c8666e6ffe7bfa23a1b435460e01b61023f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216927f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b858110612710575083600195106126d8575b505050811b0160045561257e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558280806126ca565b909260206001819286860135815501940191016126b8565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410612781575b601f0160051c01905b818110612776575061252f565b5f8155600101612769565b9091508190612760565b346104105760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576004355f52600b602052602061ffff60405f205416604051908152f35b34610410575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610410576040515f6001546128158161289a565b80845290600181169081156107f8575060011461283c576107968361078a818503826128eb565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106128805750909150810160200161078a61077a565b919260018160209254838588010152019101909291612868565b90600182811c921680156128e1575b60208310146128b457565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916128a9565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176103e357604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361041057565b9181601f840112156104105782359167ffffffffffffffff8311610410576020838186019501011161041057565b906101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126104105760043573ffffffffffffffffffffffffffffffffffffffff81168103610410579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8201126104105760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c8301126104105760c491610144359067ffffffffffffffff821161041057612a8c91600401612997565b9091565b600435907fffffffff000000000000000000000000000000000000000000000000000000008216820361041057565b906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126104105760043573ffffffffffffffffffffffffffffffffffffffff81168103610410579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8201126104105760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c8301126104105760c49161014435916101643591610184359067ffffffffffffffff821161041057612a8c91600401612997565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361041057565b60e435908160020b820361041057565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126104105760043573ffffffffffffffffffffffffffffffffffffffff81168103610410579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8301126104105760249160c4359160e43591610104359067ffffffffffffffff821161041057612a8c9160040161299756fea164736f6c634300081a000a","sourceMap":"553:4663:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4816:26;553:4663;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4816:26;553:4663;;4870:30;553:4663;;4917:12;553:4663;;;;;;;;4917:71;;553:4663;4870:30;4917:71;553:4663;;;;;;;;4917:71;4870:30;553:4663;;4917:12;553:4663;;;;;;;;4917:71;;553:4663;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4816:26;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4816:26;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1235:3;553:4663;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1267:35;553:4663;;1319:12;553:4663;;;;;;;;1319:71;;553:4663;;1267:35;553:4663;;;;;1319:71;1267:35;553:4663;;1319:12;553:4663;;;;;;;;1319:71;;553:4663;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;694:35;553:4663;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;694:35;553:4663;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;735:34;553:4663;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;735:34;553:4663;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4465:27;553:4663;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:27;553:4663;;4520:31;553:4663;;4568:12;553:4663;;;;;;;;4568:71;;553:4663;;4520:31;553:4663;;;;;4568:71;4520:31;553:4663;;4568:12;553:4663;;;;;;;;4568:71;;553:4663;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:27;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:27;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4114:24;553:4663;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4114:24;553:4663;;4166:28;553:4663;;4212:12;553:4663;;;;;;;;4212:71;;553:4663;4166:28;4212:71;553:4663;;;;;;;;;;;;;4212:71;4166:28;553:4663;;4212:12;553:4663;;;;;;;;4212:71;;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;4114:24;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4114:24;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;927:29;553:4663;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;927:29;553:4663;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;997:45;553:4663;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;2351:32;553:4663;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2351:32;553:4663;;2411:36;553:4663;;2465:12;553:4663;;;;;;;;2465:71;;553:4663;2411:36;2465:71;553:4663;;;;;;;;;;;;;;;;;;;;;;2465:71;2411:36;553:4663;;2465:12;553:4663;;;;;;;;2465:71;;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;2351:32;553:4663;;;;;;;2351:32;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2351:32;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;819:37;553:4663;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;819:37;553:4663;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;357:173:108;553:4663:83;;5181:6;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;962:28;553:4663;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;962:28;553:4663;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;1548:3;553:4663;;;;;;;;;;;;;;;;1516:36;553:4663;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:36;553:4663;;1580:34;553:4663;;1631:12;553:4663;;;;;;;;1631:71;;553:4663;;1580:34;553:4663;;;;;1631:71;1580:34;553:4663;;1631:12;553:4663;;;;;;;;1631:71;;553:4663;;;;;1516:36;553:4663;;;;;;;;;;;;;1516:36;553:4663;;;;;;;;;;;1516:36;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;1516:36;553:4663;;;;;;;;;;;;;;;;1516:36;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:36;553:4663;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;3230:35;553:4663;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3230:35;553:4663;;3293:39;553:4663;;3350:12;553:4663;;;;;;;;3350:71;;553:4663;;;3293:39;553:4663;;;;;;;;3350:71;3293:39;553:4663;;3350:12;553:4663;;;;;;;;3350:71;;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;3230:35;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3230:35;553:4663;;;;;;;;3230:35;553:4663;;;;;;;;;;;;3230:35;553:4663;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;895:26;553:4663;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;895:26;553:4663;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;5070:12;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;3658:25;553:4663;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3658:25;553:4663;;3711:29;553:4663;;3771:12;553:4663;;;;;;;;3771:71;;553:4663;3711:29;3771:71;553:4663;;;;;;;;;;;;;;;;;;3771:71;3711:29;553:4663;;3771:12;553:4663;;;;;;;;3771:71;;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;3658:25;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3658:25;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;862:27;553:4663;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;862:27;553:4663;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1900:33;553:4663;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1900:33;553:4663;;1961:37;553:4663;;2015:12;553:4663;;;;;;;;2015:71;;553:4663;;1961:37;553:4663;;;;;2015:71;1961:37;553:4663;;2015:12;553:4663;;;;;;;;2015:71;;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;1900:33;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1900:33;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2834:40;553:4663;;2891:12;553:4663;;;;;;;;2891:71;;553:4663;;2834:40;553:4663;;;;;2891:71;2834:40;553:4663;;2891:12;553:4663;;;;;;;;2891:71;;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;553:4663:83;;;;;;;;;;;;;;;;;;;1049:39;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;656:32;553:4663;;;;:::i;:::-;;;;;656:32;553:4663;;;656:32;;;;553:4663;;;;;;;;;;;;;:::i;:::-;656:32;553:4663;;;;;;;-1:-1:-1;553:4663:83;;;;;;;-1:-1:-1;553:4663:83;;-1:-1:-1;553:4663:83;;;;;;;;;;656:32;553:4663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":"9f063efc","afterAddLiquidityData()":"b8516466","afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":"e1b4af69","afterDonateData()":"70b28eda","afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)":"6fe7e6eb","afterInitializeData()":"0a2d5827","afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":"6c2bbe7e","afterRemoveLiquidityData()":"7e472fb2","afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)":"b47b2fb1","afterSwapData()":"622e60de","beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"259982e5","beforeAddLiquidityData()":"db6d76a2","beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":"b6a8b0fa","beforeDonateData()":"af57c184","beforeInitialize(address,(address,address,uint24,int24,address),uint160)":"dc98354e","beforeInitializeData()":"50cd07eb","beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"21d0ee70","beforeRemoveLiquidityData()":"4d081c7e","beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)":"575e24b4","beforeSwapData()":"542e9369","lpFees(bytes32)":"17bd6123","returnValues(bytes4)":"a2bc94ad","setReturnValue(bytes4,bytes4)":"5941b5bb","setlpFee((address,address,uint24,int24,address),uint16)":"7a3385f5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterAddLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"afterAddLiquidityData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterDonate\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"afterDonateData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"name\":\"afterInitialize\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"afterInitializeData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterRemoveLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"afterRemoveLiquidityData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterSwap\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"int128\",\"name\":\"\",\"type\":\"int128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"afterSwapData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeAddLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beforeAddLiquidityData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeDonate\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beforeDonateData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"}],\"name\":\"beforeInitialize\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beforeInitializeData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeRemoveLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beforeRemoveLiquidityData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeSwap\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BeforeSwapDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beforeSwapData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"PoolId\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"lpFees\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"returnValues\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"key\",\"type\":\"bytes4\"},{\"internalType\":\"bytes4\",\"name\":\"value\",\"type\":\"bytes4\"}],\"name\":\"setReturnValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"value\",\"type\":\"uint16\"}],\"name\":\"setlpFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/MockHooks.sol\":\"MockHooks\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"src/libraries/Hooks.sol\":{\"keccak256\":\"0xd679b4b2d429689bc44f136050ebc958fb2d7d0d3a3c7b3e48c08ab4fba09aaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287190cb72840e5eb63cc7a8a1d0b9150af17d8e4ea0323f47c7e7928f2033cb\",\"dweb:/ipfs/QmVfqWBnAQM2jUcuREDdvjcP21gNuLU35CoL3NG5CEhNcx\"]},\"src/libraries/LPFeeLibrary.sol\":{\"keccak256\":\"0xbf6914e01014e7c1044111feb7df7a3d96bb503b3da827ad8464b1955580d13b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33823c20a91882c9aacdcbb02f0558c05209f4d5954aa6dd4fa17c95664db475\",\"dweb:/ipfs/QmR7owkFgpfztpp1QUg3ut3nw9iPVQqLGP4hzgmZtRUQ2J\"]},\"src/libraries/ParseBytes.sol\":{\"keccak256\":\"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17\",\"dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa\"]},\"src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"src/test/MockHooks.sol\":{\"keccak256\":\"0x0b993118e854d52d41a3354982d80c16dd0820d6e61464c7bd6a514fca4698c7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2b3f775045850f098a85196ddf596dc225e8efb6830ef56cf8bb8cad258f1136\",\"dweb:/ipfs/QmNYByfEjatdeZW9aVq6J93pPnQmeoQher22KFxdsLDCxq\"]},\"src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct ModifyLiquidityParams","name":"","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"afterAddLiquidityData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"afterDonateData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint160","name":"","type":"uint160"},{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"afterInitializeData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct ModifyLiquidityParams","name":"","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"afterRemoveLiquidityData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct SwapParams","name":"","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","type":"int128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"afterSwapData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct ModifyLiquidityParams","name":"","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"beforeAddLiquidityData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"beforeDonateData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"beforeInitializeData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct ModifyLiquidityParams","name":"","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"beforeRemoveLiquidityData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct SwapParams","name":"","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"beforeSwapData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"PoolId","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"lpFees","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function","name":"returnValues","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"bytes4","name":"key","type":"bytes4"},{"internalType":"bytes4","name":"value","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"setReturnValue"},{"inputs":[{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint16","name":"value","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"setlpFee"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solmate/=lib/solmate/"],"optimizer":{"enabled":true,"runs":44444444},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/test/MockHooks.sol":"MockHooks"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"src/libraries/Hooks.sol":{"keccak256":"0xd679b4b2d429689bc44f136050ebc958fb2d7d0d3a3c7b3e48c08ab4fba09aaa","urls":["bzz-raw://287190cb72840e5eb63cc7a8a1d0b9150af17d8e4ea0323f47c7e7928f2033cb","dweb:/ipfs/QmVfqWBnAQM2jUcuREDdvjcP21gNuLU35CoL3NG5CEhNcx"],"license":"MIT"},"src/libraries/LPFeeLibrary.sol":{"keccak256":"0xbf6914e01014e7c1044111feb7df7a3d96bb503b3da827ad8464b1955580d13b","urls":["bzz-raw://33823c20a91882c9aacdcbb02f0558c05209f4d5954aa6dd4fa17c95664db475","dweb:/ipfs/QmR7owkFgpfztpp1QUg3ut3nw9iPVQqLGP4hzgmZtRUQ2J"],"license":"MIT"},"src/libraries/ParseBytes.sol":{"keccak256":"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15","urls":["bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17","dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa"],"license":"MIT"},"src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"src/test/MockHooks.sol":{"keccak256":"0x0b993118e854d52d41a3354982d80c16dd0820d6e61464c7bd6a514fca4698c7","urls":["bzz-raw://2b3f775045850f098a85196ddf596dc225e8efb6830ef56cf8bb8cad258f1136","dweb:/ipfs/QmNYByfEjatdeZW9aVq6J93pPnQmeoQher22KFxdsLDCxq"],"license":"UNLICENSED"},"src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"}},"version":1},"id":83}