@zoralabs/limit-orders 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.abi-stability +0 -21
- package/.turbo/turbo-build$colon$js.log +51 -51
- package/AUDIT_NOTES.md +0 -1
- package/CHANGELOG.md +19 -0
- package/README.md +6 -9
- package/SPEC.md +5 -5
- package/abis/ContractVersionBase.json +15 -0
- package/abis/IVersionedContract.json +15 -0
- package/abis/SwapWithLimitOrders.json +13 -0
- package/abis/ZoraLimitOrderBook.json +13 -0
- package/cache/solidity-files-cache.json +1 -1
- package/dist/index.cjs +14 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/wagmiGenerated.d.ts +20 -0
- package/dist/wagmiGenerated.d.ts.map +1 -1
- package/out/BytesLib.sol/BytesLib.json +1 -1
- package/out/ContractVersionBase.sol/ContractVersionBase.json +1 -0
- package/out/ISwapRouter.sol/ISwapRouter.json +1 -1
- package/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json +1 -1
- package/out/IVersionedContract.sol/IVersionedContract.json +1 -0
- package/out/IZoraLimitOrderBook.sol/IZoraLimitOrderBook.json +1 -1
- package/out/LimitOrderBitmap.sol/LimitOrderBitmap.json +1 -1
- package/out/LimitOrderCommon.sol/LimitOrderCommon.json +1 -1
- package/out/LimitOrderCreate.sol/LimitOrderCreate.json +1 -1
- package/out/LimitOrderFill.sol/LimitOrderFill.json +1 -1
- package/out/LimitOrderLiquidity.sol/LimitOrderLiquidity.json +1 -1
- package/out/LimitOrderQueues.sol/LimitOrderQueues.json +1 -1
- package/out/LimitOrderStorage.sol/LimitOrderStorage.json +1 -1
- package/out/LimitOrderTypes.sol/LimitOrderTypes.json +1 -1
- package/out/LimitOrderViews.sol/LimitOrderViews.json +1 -1
- package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -1
- package/out/Path.sol/Path.json +1 -1
- package/out/Permit2Payments.sol/Permit2Payments.json +1 -1
- package/out/PermittedCallers.sol/PermittedCallers.json +1 -1
- package/out/SwapLimitOrders.sol/SwapLimitOrders.json +1 -1
- package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -1
- package/out/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -1
- package/out/build-info/{68b2e124c4a02a45.json → b6efea4394bdeb7d.json} +1 -1
- package/package/wagmiGenerated.ts +14 -0
- package/package.json +2 -2
- package/src/ZoraLimitOrderBook.sol +4 -1
- package/src/router/SwapWithLimitOrders.sol +2 -2
- package/src/version/ContractVersionBase.sol +14 -0
- package/test/LimitOrderAccessControl.t.sol +8 -2
- package/AUDIT_RFP.md +0 -408
- package/abis/ISetLimitOrderConfig.json +0 -27
- package/out/ISetLimitOrderConfig.sol/ISetLimitOrderConfig.json +0 -1
- package/src/router/ISetLimitOrderConfig.sol +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"contract IPoolManager"},{"name":"zoraLimitOrderBook_","type":"address","internalType":"contract IZoraLimitOrderBook"},{"name":"swapRouter_","type":"address","internalType":"contract ISwapRouter"},{"name":"permit2_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getLimitOrderConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimitOrderConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISwapRouter"}],"stateMutability":"view"},{"type":"function","name":"swapWithLimitOrders","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"limitOrderConfig","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]},{"name":"inputCurrency","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"v3Route","type":"bytes","internalType":"bytes"},{"name":"v4Route","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":"minAmountOut","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"delta","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"payable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"zoraLimitOrderBook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraLimitOrderBook"}],"stateMutability":"view"},{"type":"event","name":"LimitOrderConfigUpdated","inputs":[{"name":"multiples","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SwapWithLimitOrdersExecuted","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"poolKey","type":"tuple","indexed":false,"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":"tickBeforeSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"tickAfterSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"amount0","type":"int128","indexed":false,"internalType":"int128"},{"name":"amount1","type":"int128","indexed":false,"internalType":"int128"},{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"orders","type":"tuple[]","indexed":false,"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","components":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"multiple","type":"uint256","internalType":"uint256"},{"name":"percentage","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"EmptyV4Route","inputs":[]},{"type":"error","name":"InsufficientInputCurrency","inputs":[{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"availableAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientOutputAmount","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidLimitOrderConfig","inputs":[]},{"type":"error","name":"InvalidMultiple","inputs":[]},{"type":"error","name":"InvalidPercent","inputs":[]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"OnlyPoolManager","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PercentOverflow","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnsafeCast","inputs":[]},{"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart","inputs":[]},{"type":"error","name":"ZeroSwapDelta","inputs":[]}],"bytecode":{"object":"0x610100346102e157601f613a4e38819003918201601f19168301916001600160401b038311848410176102e55780849260a0946040528339810103126102e1578051906001600160a01b038216908183036102e15760208101516001600160a01b038116929091908383036102e1576040820151936001600160a01b038516918286036102e157610092606085016102f9565b936001600160a01b03906100a8906080016102f9565b169081156102ce57600180546001600160a01b03199081169091555f80549182168417815560405193916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a31561028c57501561023d57156101f8576001600160a01b03169283156101b35760805260a05260c05260e052604051613740908161030e823960805181818161076701528181610a8c01528181610f880152818161167d015281816118b101528181611af301528181611d5b01528181611e2a0152611ede015260a0518181816103e001528181611b9d01528181611c8a0152612406015260c0518181816105d801526107e3015260e0518161070a0152f35b60405162461bcd60e51b815260206004820152601660248201527f5065726d6974322063616e6e6f74206265207a65726f000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f53776170526f757465722063616e6e6f74206265207a65726f000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602160248201527f5a6f72614c696d69744f72646572426f6f6b2063616e6e6f74206265207a65726044820152606f60f81b6064820152608490fd5b62461bcd60e51b815260206004820152601a60248201527f506f6f6c4d616e616765722063616e6e6f74206265207a65726f0000000000006044820152606490fd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102e15756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100e95780636baaa167146100e4578063715018a6146100df57806379ba5097146100da5780638da5cb5b146100d557806391dd7346146100d0578063c31c9c07146100cb578063c48677f4146100c6578063d737d0c7146100c1578063dc4c90d3146100bc578063e30c3978146100b7578063e3e8580c146100b25763f2fde38b0361000e57610bf8565b610b40565b610abb565b610a77565b610a45565b610607565b6105c3565b610556565b6104f7565b610472565b61040f565b6103cb565b61027f565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761011d57604052565b6100ee565b60a081019081106001600160401b0382111761011d57604052565b606081019081106001600160401b0382111761011d57604052565b90601f801991011681019081106001600160401b0382111761011d57604052565b60405190610188608083610158565b565b6040519061018860c083610158565b60405190610188606083610158565b6001600160401b03811161011d5760051b60200190565b9080601f8301121561021c5781356101d6816101a8565b926101e46040519485610158565b81845260208085019260051b82010192831161021c57602001905b82821061020c5750505090565b81358152602091820191016101ff565b5f80fd5b919060408382031261021c576040519061023982610102565b819380356001600160401b03811161021c57826102579183016101bf565b83526020810135916001600160401b03831161021c5760209261027a92016101bf565b910152565b3461021c57602036600319011261021c576004356001600160401b03811161021c576102af903690600401610220565b6102b76114d3565b6102c08161153c565b5080518051906001600160401b03821161011d57600160401b821161011d576002548260025580831061037d575b5060025f526020017f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f5b838110610369577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c8560208101906103518251610c80565b5190519061036460405192839283610d3b565b0390a1005b600190602084519401938184015501610319565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083015b8181106103b657506102ee565b5f81556001016103a9565b5f91031261021c57565b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576104276114d3565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021c575f36600319011261021c57600154336001600160a01b03909116036104e457600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461021c575f36600319011261021c575f546040516001600160a01b039091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061055392818152019061051e565b90565b3461021c57602036600319011261021c576004356001600160401b03811161021c573660238201121561021c578060040135906001600160401b03821161021c57366024838301011161021c576105bf9160246105b39201610f86565b60405191829182610542565b0390f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602036600319011261021c576004356001600160401b03811161021c578060040160e0600319833603011261021c5761063f81611091565b5f5160206137205f395f51905f525d602482019061065d828261109b565b610666906110b0565b61066f9061153c565b5061067a828261109b565b610683906110b0565b61068c90611fe3565b60a4830161069a81836110bb565b6106a6915015156110f0565b60848401926106b58484611106565b959060448201966106c588611091565b906106d086886110bb565b93909136906106de92611153565b9236906106ea92610de3565b906106f492612099565b6106fd86611091565b91606482013592343033867f00000000000000000000000000000000000000000000000000000000000000009461073395612123565b61073d84866110bb565b61074786886110bb565b6107519150611189565b9061075b926111b0565b610764906111c5565b967f00000000000000000000000000000000000000000000000000000000000000009360a0892061079590866121d8565b5050986107a3915088611106565b926107ad90611091565b906107b6610179565b9336906107c292611153565b83526001600160a01b031660208301526040820152306060820152610807907f00000000000000000000000000000000000000000000000000000000000000006122cb565b9061081187611091565b9561081c90886110bb565b9460c401359361082c908961109b565b9461083561018a565b6001600160a01b039098168852369061084d92610de3565b602087015260408601526001600160a01b0316606085015260808401523661087491610220565b60a08301526040518092602082019061088c91611213565b03601f198101835261089e9083610158565b6040516348c8949160e01b815291829081906108bd9060048301610542565b6001600160a01b039093169203815a5f948591f18015610a1e576108f2915f91610a23575b506020808251830101910161134d565b925090959261091f610913610913610913608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa928315610a1e577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f60966109b194610990925f916109ef575b5015806109df575b6109cf57611091565b9360405195869560018060a01b031699339983600f0b9360801d9288611435565b0390a35f5f5160206137205f395f51905f525d6040515f8152602090f35b6109da8a8a896123f5565b611091565b508960020b8960020b1415610987565b610a11915060203d602011610a17575b610a098183610158565b810190611421565b5f61097f565b503d6109ff565b61131f565b610a3f91503d805f833e610a378183610158565b8101906112bd565b5f6108e2565b3461021c575f36600319011261021c576040516001600160a01b035f5160206137205f395f51905f525c168152602090f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576001546040516001600160a01b039091168152602090f35b90602080835192838152019201905f5b818110610b005750505090565b8251845260209384019390920191600101610af3565b610553916020610b2f8351604084526040840190610ae3565b920151906020818403910152610ae3565b3461021c575f36600319011261021c5760606020604051610b6081610102565b8281520152604051610b7181610102565b60405190600254808352602083019060025f5260205f20905f5b818110610bc6576105bf8587610ba381880382610158565b8152610bad61148b565b6020820152604051918291602083526020830190610b16565b8254845260209093019260019283019201610b8b565b6001600160a01b0381160361021c57565b359061018882610bdc565b3461021c57602036600319011261021c57600435610c1581610bdc565b610c1d6114d3565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b634e487b7160e01b5f52601160045260245ffd5b8051906001600160401b03821161011d57600160401b821161011d5760035482600355808310610cf7575b5060035f526020017fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f5b838110610ce35750505050565b600190602084519401938184015501610cd6565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019083015b818110610d305750610cab565b5f8155600101610d23565b9091610d5261055393604084526040840190610ae3565b916020818403910152610ae3565b8060020b0361021c57565b91908260a091031261021c57604051610d8381610122565b80928035610d9081610bdc565b82526020810135610da081610bdc565b6020830152604081013562ffffff8116810361021c57608091829160408501526060810135610dce81610d60565b6060850152013591610ddf83610bdc565b0152565b90929192610df0816101a8565b93610dfe6040519586610158565b60a060208684815201920283019281841161021c57915b838310610e225750505050565b602060a091610e318486610d6b565b815201920191610e15565b9080601f8301121561021c5781602061055393359101610de3565b60208183031261021c578035906001600160401b03821161021c570160c08183031261021c57610e8561018a565b91610e8f82610bed565b835260208201356001600160401b03811161021c5781610eb0918401610e3c565b602084015260408201356040840152610ecb60608301610bed565b60608401526080820135608084015260a08201356001600160401b03811161021c57610ef79201610220565b60a082015290565b90602080835192838152019201905f5b818110610f1c5750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610f0f565b919594939092610f6460809460a0855260a0850190610eff565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361108257610fc291810190610e57565b610553610fce82611610565b6110746110386110626040610ffa6020880151610ff4602088015160018060a01b031690565b90611852565b9691939098611008856118a8565b9690958b878961101e885160018060801b031690565b60a0870151875190948f916001600160a01b031696611ab9565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611d46565b01519160405196879560208701610f4a565b03601f198101835282610158565b63f655705d60e01b5f5260045ffd5b3561055381610bdc565b903590603e198136030182121561021c570190565b610553903690610220565b903590601e198136030182121561021c57018035906001600160401b03821161021c576020019160a082023603831361021c57565b156110f757565b63cbd130a960e01b5f5260045ffd5b903590601e198136030182121561021c57018035906001600160401b03821161021c5760200191813603831361021c57565b6001600160401b03811161011d57601f01601f191660200190565b92919261115f82611138565b9161116d6040519384610158565b82948184528183011161021c578281602093845f960137010152565b5f1981019190821161119757565b610c6c565b634e487b7160e01b5f52603260045260245ffd5b91908110156111c05760a0020190565b61119c565b610553903690610d6b565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b81811061129d5750505060a08460406105539596015160608401526112806060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f1982850301910152610b16565b909193602060a0826112b260019489516111d0565b01950192910161124c565b60208183031261021c578051906001600160401b03821161021c570181601f8201121561021c578051906112f082611138565b926112fe6040519485610158565b8284526020838301011161021c57815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b5190811515820361021c57565b519061018882610d60565b519061018882610bdc565b9060a08282031261021c5781516001600160401b03811161021c57820181601f8201121561021c57805190611381826101a8565b9261138f6040519485610158565b8284526020606081860194028301019181831161021c57602001925b8284106113e55750505050916113c36020830161132a565b916113d060408201611337565b9160806113df60608401611342565b92015190565b60608483031261021c5760206060916040516114008161013d565b865181528287015183820152604087015160408201528152019301926113ab565b9081602091031261021c576105539061132a565b939092610160959261144c866105539a99966111d0565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610eff565b60405190600354808352826020810160035f5260205f20925f5b8181106114ba57505061018892500383610158565b84548352600194850194879450602090930192016114a5565b5f546001600160a01b031633036104e457565b80518210156111c05760209160051b010190565b1561150157565b635c974e3d60e11b5f5260045ffd5b1561151757565b63b29d78b760e01b5f5260045ffd5b1561152d57565b63d88409d360e01b5f5260045ffd5b8051515f9291811515806115ce575b156115bf57905f915b81831061156c57505050610188612710831115611526565b9091936001906115b486602085016115906115888383516114e6565b5115156114fa565b6115ae670de0b6b3a76400006115a78489516114e6565b5111611510565b516114e6565b510194019190611554565b631fec674760e31b5f5260045ffd5b50602081015151821461154b565b604051906115e98261013d565b5f6040838281528260208201520152565b1561160157565b6342301c2360e01b5f5260045ffd5b6116186115dc565b50602081015190604081015160018060a01b03606083015116936040519361163f8561013d565b8452602084019182526040840194855261167961166b61165d6115dc565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561180557509160206116fe9994926117356116ea6116d48b6117509a986114e6565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b61248b565b82156117ea576401000276a4905b61171e611717610199565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b835285600484016124a2565b03815f8a5af1948515610a1e575f956117b7575b50600190858a156117a857828060801b03165b991561179957602001516001600160a01b03165b9601959193979092976116aa565b516001600160a01b031661178b565b60801d828060801b0316611777565b60019195506117dc9060203d81116117e3575b6117d48183610158565b8101906121c9565b9490611764565b503d6117ca565b73fffd8963efd1fc6a506488495d951d5263988d259061170c565b6001600160801b039092168952509295506101889450909250611832906001600160a01b03166020870152565b60408501528351608091909101516001600160801b0390911610156115fa565b9190915f608060405161186481610122565b828152826020820152826040820152826060820152015280515f19810190811161119757611891916114e6565b51805190926001600160a01b039081169116811491565b60a06118d591207f00000000000000000000000000000000000000000000000000000000000000006121d8565b50509091565b60405190608082018281106001600160401b0382111761011d57604052606080838181528160208201528160408201520152565b6040519061191e602083610158565b5f80835282815b82811061193157505050565b60209061193c6115dc565b82828501015201611925565b90611952826101a8565b61195f6040519182610158565b8281528092611970601f19916101a8565b01905f5b82811061198057505050565b60209061198b6115dc565b82828501015201611974565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b60208183031261021c578051906001600160401b03821161021c57019080601f8301121561021c5781516119f4816101a8565b92611a026040519485610158565b81845260208085019260051b82010192831161021c57602001905b828210611a2a5750505090565b8151815260209182019101611a1d565b959493929091611a4d87611a67946111d0565b151560a087015261012060c0870152610120860190610ae3565b84810360e0860152602080835192838152019201905f5b818110611aa0575050506001600160a01b039091166101009390930192909252565b825160020b845260209384019390920191600101611a7e565b959193611ad5939897959198611acd6118db565b50898861254e565b94919496855151151580611d34575b15611d22576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b1561021c575f6040518096630b0d9c0960e01b8252818381611b3f89308960048501611997565b03925af1948515610a1e575f95611d08575b5080151592838614611d015785935b611c73575b5050855192611b9060208801519660405197889687958695633ac1fb4960e21b875260048701611a3a565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a1e575f91611c51575b50611be08151611948565b935f5b8251811015611c4a5780611bf9600192856114e6565b51611c088260408801516114e6565b51611c178360608901516114e6565b5190611c21610199565b92835260208301526040820152611c3882896114e6565b52611c4381886114e6565b5001611be3565b5092915050565b611c6d91503d805f833e611c658183610158565b8101906119c1565b5f611bd5565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af1938415610a1e575f94611ce2575b80611b65565b611cfa9060203d602011610a1757610a098183610158565b505f611cdc565b8093611b60565b80611d1687611d1c93610158565b806103c1565b5f611b51565b50505050505090611d3161190f565b91565b506001600160801b0382161515611ae4565b9192916001600160a01b0316908115611edb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af1938415610a1e57611ded602094611df3935f97611ec7575b50611de785611dd68186612c5e565b94611de2848383612cc6565b612c5e565b92612757565b14612764565b600460405180948193630476982d60e21b83525af18015610a1e57611ea8575b505b6001600160801b038116611e2857505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051630b0d9c0960e01b8152935f938593849286928492611e899290916001600160a01b031660048501611997565b03925af18015610a1e57611e9a5750565b80611d165f61018893610158565b611ec09060203d6020116117e3576117d48183610158565b505f611e13565b80611d1689611ed593610158565b5f611dc7565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af1918215610a1e57602092611f89575b50600460405180948193630476982d60e21b83525af18015610a1e57611f6a575b50611e15565b611f829060203d6020116117e3576117d48183610158565b505f611f64565b80611d165f611f9793610158565b5f611f43565b15611fa457565b636741e8e960e11b5f5260045ffd5b6002548110156111c05760025f5260205f2001905f90565b6003548110156111c05760035f5260205f2001905f90565b60025490811561207f57818151511480612071575b61200190611f9d565b5f5b82811061200f57505050565b8061201d60019284516114e6565b5161203461202a83611fb3565b90549060031b1c90565b148061204a575b61204490611f9d565b01612003565b5061204461205c8260208601516114e6565b5161206961202a84611fcb565b14905061203b565b506020810151518214611ff8565b5050565b1561208a57565b63bdcc3d9760e01b5f5260045ffd5b8251156121005780516120f157505b8151156111c057602091909101518051610188926001600160a01b03908116911681149182156120da575b5050612083565b602001516001600160a01b03161490505f806120d3565b6120fb915061277a565b6120a8565b505050565b1561210e575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616612148575050506101889250808214612105565b90929193806121b357506001600160a01b03169061216590612864565b91813b1561021c57604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611e89565b635d0165db60e01b5f525f60045260245260445ffd5b9081602091031261021c575190565b602090612223939260405183810191825260066040820152604081526121ff606082610158565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa918215610a1e575f92612266575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b61228091925060203d6020116117e3576117d48183610158565b905f61223e565b60208152608060606122a4845183602086015260a085019061051e565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b919091825151156123dd5760208381018051909261236f916001600160a01b0316806123bc575b508551606087015190949061234c90610913906001600160a01b03169260408a0193612334855191612322610179565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6123b45751935b60405194858094819363b858183f60e01b835260048301612287565b03926001600160a01b03165af18015610a1e57610553915f91612395575b50925161277a565b6123ae915060203d6020116117e3576117d48183610158565b5f61238d565b505f93612353565b60408701516123d7916001600160a01b03848116911661288d565b5f6122f2565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114612100577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c575f92836101449261245c946040519788968795632fc7dd6b60e11b875260048701906111d0565b80821360a486015260c485015260e484015281610104840152816101248401525af18015610a1e57611e9a5750565b600f0b60016001607f1b03198114611197575f0390565b90916124b182610140946111d0565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b906124f4826101a8565b6125016040519182610158565b8281528092612512601f19916101a8565b0190602036910137565b6001600160801b03918216908216019190821161119757565b6001600160801b03918216908216039190821161119757565b959395949190929461255e6118db565b965f966001600160801b0384161561273b5773fffd8963efd1fc6a506488495d951d5263988d256401000276a4871561272457506001600160a01b0390811690831610155b61271a579493929190835151926125b9846124ea565b8a526125c4846124ea565b60208b01526125d2846124ea565b60408b01526125e0846124ea565b60608b0152955f955f955b858710612614575050505050505080855152806020860151528060408601515260608501515290565b9091929394959661263f61262f896020859e9c9e01516114e6565b516001600160801b038d166129c3565b98891561270e5761265a906001600160801b038b169061251c565b9a61266f906001600160801b038b1690612535565b98818d8a85519061267f916114e6565b5161268d908989898d612b0a565b928282519061269b916114e6565b5260200151906126aa916114e6565b906126b7919060020b9052565b8b81898451906126c6916114e6565b519160400151906126d6916114e6565b528b81896020850151906126e9916114e6565b519160600151906126f9916114e6565b52600101966001905b019594939291906125eb565b9a985096600190612702565b5091949350505050565b6001600160a01b03908116908416111590506125a3565b505f96508695945050505050565b90601f820180921161119757565b9190820180921161119757565b1561276b57565b637627529f60e01b5f5260045ffd5b80511561285f575f9160179160429084905b805182611197578661119757831161284a57805190858203918083116111975786906127c2846127bb81612749565b1015613233565b6127d0826127bb8682612757565b6127e683516127df8685612757565b1115613270565b036127ff5750506040515f81526020810160405261278c565b60405191601f81169187831560051b80858701019484860193010101905b8084106128375750508252601f01601f191660405261278c565b909260208091855181520193019061281d565b92945050506128599150612d57565b50905090565b505f90565b6001600160a01b03811161287e576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa928315610a1e575f936129a2575b5082018092116111975760205f604051938285019063095ea7b360e01b825260018060a01b0387166024870152604486015260448552612911606486610158565b84519082855af15f51903d81612976575b501590505b61293057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610188926129719061296b8160648101611074565b826132f4565b6132f4565b1515905061299657506129276001600160a01b0382163b15155b5f612922565b60016129279114612990565b6129bc91935060203d6020116117e3576117d48183610158565b915f6128d0565b808202905f1983820990828083109203918083039283612710111561021c5714612a21577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca00111561021c5714612a8e577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b634e487b7160e01b5f52601260045260245ffd5b8115612ab9570490565b612a9b565b60020b627fffff198114611197575f0390565b60020b60010190627fffff8213627fffff1983121761119757565b9060020b9060020b0190627fffff198212627fffff83131761119757565b91949392612b2e612b449294612b29670de0b6b3a76400008211611510565b612dd7565b908415612c45575b6001600160a01b0316612a2c565b6001600160a01b038111612c37575b612b8190606090612b6c906001600160a01b0316612e1d565b920191612b7a835160020b90565b90846130b8565b612b94612b8f835160020b90565b613147565b90612b9e82612abe565b8160020b8360020b81135f14612c105750505090612bc7612bd992955b825160020b90856130b8565b908315612c03575160020b5b90612aec565b9015612bf3578060020b8360020b12612bef5750565b9150565b8060020b8360020b13612bef5750565b51612bd39060020b612abe565b90809297935060020b13612c2d575b5090612bc7612bd992612bbb565b9450612bc7612c1f565b506001600160a01b03612b53565b90612c5890670de0b6b3a7640000612aaf565b90612b36565b6001600160a01b038116612c7157503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610a1e575f91612cad575090565b610553915060203d6020116117e3576117d48183610158565b9091906001600160a01b038116612cf357505f808080612ce794865af11590565b612cee5750565b6131ca565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612d495750565b6001600160a01b031661315d565b90612d666014835110156132b0565b602082015160601c916017815110612d9b57601781015190602b81612d926017926020945110156132b0565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116111975760011c905b838210612dfd575050610188821515611510565b909250828015612ab9578082049081018091116111975760011c90612de9565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b03161161305d5760018060a01b0316612e5b8160201b90565b80612e6e612e688361336c565b60ff1690565b91608083106130505750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa9198101612ffe9060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f146130305750905090565b6001600160a01b03613041846133ef565b161161304b575090565b905090565b905081607f031b90612e80565b61334c565b600291820b910b0390627fffff198212627fffff83131761119757565b60020b9060020b908115612ab957627fffff1981145f19831416611197570590565b9060020b9060020b02908160020b91820361119757565b909190156130fc575f8260020b125f146130ef576130ea816130e56130e08261055396613062565b612ad1565b61307f565b6130a1565b6130ea816105539361307f565b905f8160020b125f1461311757906130ea816105539361307f565b8161312191612aec565b60020b5f190190627fffff198212627fffff831317611197576130ea816105539361307f565b8060020b8015612ab957620d89e8050260020b90565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561323a57565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561327757565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b156132b757565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af11561131f575f513d61334357506001600160a01b0381163b155b6133235750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561331c565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b801561021c577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116137095763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b1891600281166136ed575b600481166136d1575b600881166136b5575b60108116613699575b6020811661367d575b60408116613661575b60808116613645575b6101008116613629575b610200811661360d575b61040081166135f1575b61080081166135d5575b61100081166135b9575b612000811661359d575b6140008116613581575b6180008116613565575b620100008116613549575b62020000811661352e575b620400008116613513575b62080000166134fa575b5f126134f2575b0160201c90565b5f19046134eb565b6b048a170391f7dc42444e8fa290910260801c906134e4565b6d2216e584f5fa1ea926041bedfe9890920260801c916134da565b916e5d6af8dedb81196699c329225ee6040260801c916134cf565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916134c4565b916f31be135f97d08fd981231505542fcfa60260801c916134b9565b916f70d869a156d2a1b890bb3df62baf32f70260801c916134af565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916134a5565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161349b565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91613491565b916ff3392b0822b70005940c7a398e4b70f30260801c91613487565b916ff987a7253ac413176f2b074cf7815e540260801c9161347d565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91613473565b916ffe5dee046a99a2a811c461f1969c30530260801c91613469565b916fff2ea16466c96a3843ec78b326b528610260801c91613460565b916fff973b41fa98c081472e6896dfb254c00260801c91613457565b916fffcb9843d60f6159c9db58835c9266440260801c9161344e565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91613445565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c9161343c565b916ffff97272373d413259a46990580e213a0260801c91613433565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2771:19161:92:-:0;;;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;2771:19161:92;;;;;;:::i;:::-;;1273:26:0;;;1269:95;;2771:19161:92;;;-1:-1:-1;;;;;;2771:19161:92;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;3052:40:0;;-1:-1:-1;3052:40:0;7497:35:92;2771:19161;;7581:42;;2771:19161;;7679:34;2771:19161;;-1:-1:-1;;;;;2771:19161:92;;7761:22;;2771:19161;;;7820:26;2771:19161;7856:40;7906:24;;7940:38;;2771:19161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7906:24;2771:19161;;;;;;;;;;7940:38;2771:19161;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;1269:95:0;1322:31;;;-1:-1:-1;1322:31:0;-1:-1:-1;1322:31:0;2771:19161:92;;-1:-1:-1;1322:31:0;2771:19161:92;-1:-1:-1;2771:19161:92;;;;;;-1:-1:-1;2771:19161:92;;;;;-1:-1:-1;2771:19161:92;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100e95780636baaa167146100e4578063715018a6146100df57806379ba5097146100da5780638da5cb5b146100d557806391dd7346146100d0578063c31c9c07146100cb578063c48677f4146100c6578063d737d0c7146100c1578063dc4c90d3146100bc578063e30c3978146100b7578063e3e8580c146100b25763f2fde38b0361000e57610bf8565b610b40565b610abb565b610a77565b610a45565b610607565b6105c3565b610556565b6104f7565b610472565b61040f565b6103cb565b61027f565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761011d57604052565b6100ee565b60a081019081106001600160401b0382111761011d57604052565b606081019081106001600160401b0382111761011d57604052565b90601f801991011681019081106001600160401b0382111761011d57604052565b60405190610188608083610158565b565b6040519061018860c083610158565b60405190610188606083610158565b6001600160401b03811161011d5760051b60200190565b9080601f8301121561021c5781356101d6816101a8565b926101e46040519485610158565b81845260208085019260051b82010192831161021c57602001905b82821061020c5750505090565b81358152602091820191016101ff565b5f80fd5b919060408382031261021c576040519061023982610102565b819380356001600160401b03811161021c57826102579183016101bf565b83526020810135916001600160401b03831161021c5760209261027a92016101bf565b910152565b3461021c57602036600319011261021c576004356001600160401b03811161021c576102af903690600401610220565b6102b76114d3565b6102c08161153c565b5080518051906001600160401b03821161011d57600160401b821161011d576002548260025580831061037d575b5060025f526020017f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f5b838110610369577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c8560208101906103518251610c80565b5190519061036460405192839283610d3b565b0390a1005b600190602084519401938184015501610319565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083015b8181106103b657506102ee565b5f81556001016103a9565b5f91031261021c57565b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576104276114d3565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021c575f36600319011261021c57600154336001600160a01b03909116036104e457600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461021c575f36600319011261021c575f546040516001600160a01b039091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061055392818152019061051e565b90565b3461021c57602036600319011261021c576004356001600160401b03811161021c573660238201121561021c578060040135906001600160401b03821161021c57366024838301011161021c576105bf9160246105b39201610f86565b60405191829182610542565b0390f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602036600319011261021c576004356001600160401b03811161021c578060040160e0600319833603011261021c5761063f81611091565b5f5160206137205f395f51905f525d602482019061065d828261109b565b610666906110b0565b61066f9061153c565b5061067a828261109b565b610683906110b0565b61068c90611fe3565b60a4830161069a81836110bb565b6106a6915015156110f0565b60848401926106b58484611106565b959060448201966106c588611091565b906106d086886110bb565b93909136906106de92611153565b9236906106ea92610de3565b906106f492612099565b6106fd86611091565b91606482013592343033867f00000000000000000000000000000000000000000000000000000000000000009461073395612123565b61073d84866110bb565b61074786886110bb565b6107519150611189565b9061075b926111b0565b610764906111c5565b967f00000000000000000000000000000000000000000000000000000000000000009360a0892061079590866121d8565b5050986107a3915088611106565b926107ad90611091565b906107b6610179565b9336906107c292611153565b83526001600160a01b031660208301526040820152306060820152610807907f00000000000000000000000000000000000000000000000000000000000000006122cb565b9061081187611091565b9561081c90886110bb565b9460c401359361082c908961109b565b9461083561018a565b6001600160a01b039098168852369061084d92610de3565b602087015260408601526001600160a01b0316606085015260808401523661087491610220565b60a08301526040518092602082019061088c91611213565b03601f198101835261089e9083610158565b6040516348c8949160e01b815291829081906108bd9060048301610542565b6001600160a01b039093169203815a5f948591f18015610a1e576108f2915f91610a23575b506020808251830101910161134d565b925090959261091f610913610913610913608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa928315610a1e577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f60966109b194610990925f916109ef575b5015806109df575b6109cf57611091565b9360405195869560018060a01b031699339983600f0b9360801d9288611435565b0390a35f5f5160206137205f395f51905f525d6040515f8152602090f35b6109da8a8a896123f5565b611091565b508960020b8960020b1415610987565b610a11915060203d602011610a17575b610a098183610158565b810190611421565b5f61097f565b503d6109ff565b61131f565b610a3f91503d805f833e610a378183610158565b8101906112bd565b5f6108e2565b3461021c575f36600319011261021c576040516001600160a01b035f5160206137205f395f51905f525c168152602090f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576001546040516001600160a01b039091168152602090f35b90602080835192838152019201905f5b818110610b005750505090565b8251845260209384019390920191600101610af3565b610553916020610b2f8351604084526040840190610ae3565b920151906020818403910152610ae3565b3461021c575f36600319011261021c5760606020604051610b6081610102565b8281520152604051610b7181610102565b60405190600254808352602083019060025f5260205f20905f5b818110610bc6576105bf8587610ba381880382610158565b8152610bad61148b565b6020820152604051918291602083526020830190610b16565b8254845260209093019260019283019201610b8b565b6001600160a01b0381160361021c57565b359061018882610bdc565b3461021c57602036600319011261021c57600435610c1581610bdc565b610c1d6114d3565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b634e487b7160e01b5f52601160045260245ffd5b8051906001600160401b03821161011d57600160401b821161011d5760035482600355808310610cf7575b5060035f526020017fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f5b838110610ce35750505050565b600190602084519401938184015501610cd6565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019083015b818110610d305750610cab565b5f8155600101610d23565b9091610d5261055393604084526040840190610ae3565b916020818403910152610ae3565b8060020b0361021c57565b91908260a091031261021c57604051610d8381610122565b80928035610d9081610bdc565b82526020810135610da081610bdc565b6020830152604081013562ffffff8116810361021c57608091829160408501526060810135610dce81610d60565b6060850152013591610ddf83610bdc565b0152565b90929192610df0816101a8565b93610dfe6040519586610158565b60a060208684815201920283019281841161021c57915b838310610e225750505050565b602060a091610e318486610d6b565b815201920191610e15565b9080601f8301121561021c5781602061055393359101610de3565b60208183031261021c578035906001600160401b03821161021c570160c08183031261021c57610e8561018a565b91610e8f82610bed565b835260208201356001600160401b03811161021c5781610eb0918401610e3c565b602084015260408201356040840152610ecb60608301610bed565b60608401526080820135608084015260a08201356001600160401b03811161021c57610ef79201610220565b60a082015290565b90602080835192838152019201905f5b818110610f1c5750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610f0f565b919594939092610f6460809460a0855260a0850190610eff565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361108257610fc291810190610e57565b610553610fce82611610565b6110746110386110626040610ffa6020880151610ff4602088015160018060a01b031690565b90611852565b9691939098611008856118a8565b9690958b878961101e885160018060801b031690565b60a0870151875190948f916001600160a01b031696611ab9565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611d46565b01519160405196879560208701610f4a565b03601f198101835282610158565b63f655705d60e01b5f5260045ffd5b3561055381610bdc565b903590603e198136030182121561021c570190565b610553903690610220565b903590601e198136030182121561021c57018035906001600160401b03821161021c576020019160a082023603831361021c57565b156110f757565b63cbd130a960e01b5f5260045ffd5b903590601e198136030182121561021c57018035906001600160401b03821161021c5760200191813603831361021c57565b6001600160401b03811161011d57601f01601f191660200190565b92919261115f82611138565b9161116d6040519384610158565b82948184528183011161021c578281602093845f960137010152565b5f1981019190821161119757565b610c6c565b634e487b7160e01b5f52603260045260245ffd5b91908110156111c05760a0020190565b61119c565b610553903690610d6b565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b81811061129d5750505060a08460406105539596015160608401526112806060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f1982850301910152610b16565b909193602060a0826112b260019489516111d0565b01950192910161124c565b60208183031261021c578051906001600160401b03821161021c570181601f8201121561021c578051906112f082611138565b926112fe6040519485610158565b8284526020838301011161021c57815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b5190811515820361021c57565b519061018882610d60565b519061018882610bdc565b9060a08282031261021c5781516001600160401b03811161021c57820181601f8201121561021c57805190611381826101a8565b9261138f6040519485610158565b8284526020606081860194028301019181831161021c57602001925b8284106113e55750505050916113c36020830161132a565b916113d060408201611337565b9160806113df60608401611342565b92015190565b60608483031261021c5760206060916040516114008161013d565b865181528287015183820152604087015160408201528152019301926113ab565b9081602091031261021c576105539061132a565b939092610160959261144c866105539a99966111d0565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610eff565b60405190600354808352826020810160035f5260205f20925f5b8181106114ba57505061018892500383610158565b84548352600194850194879450602090930192016114a5565b5f546001600160a01b031633036104e457565b80518210156111c05760209160051b010190565b1561150157565b635c974e3d60e11b5f5260045ffd5b1561151757565b63b29d78b760e01b5f5260045ffd5b1561152d57565b63d88409d360e01b5f5260045ffd5b8051515f9291811515806115ce575b156115bf57905f915b81831061156c57505050610188612710831115611526565b9091936001906115b486602085016115906115888383516114e6565b5115156114fa565b6115ae670de0b6b3a76400006115a78489516114e6565b5111611510565b516114e6565b510194019190611554565b631fec674760e31b5f5260045ffd5b50602081015151821461154b565b604051906115e98261013d565b5f6040838281528260208201520152565b1561160157565b6342301c2360e01b5f5260045ffd5b6116186115dc565b50602081015190604081015160018060a01b03606083015116936040519361163f8561013d565b8452602084019182526040840194855261167961166b61165d6115dc565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561180557509160206116fe9994926117356116ea6116d48b6117509a986114e6565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b61248b565b82156117ea576401000276a4905b61171e611717610199565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b835285600484016124a2565b03815f8a5af1948515610a1e575f956117b7575b50600190858a156117a857828060801b03165b991561179957602001516001600160a01b03165b9601959193979092976116aa565b516001600160a01b031661178b565b60801d828060801b0316611777565b60019195506117dc9060203d81116117e3575b6117d48183610158565b8101906121c9565b9490611764565b503d6117ca565b73fffd8963efd1fc6a506488495d951d5263988d259061170c565b6001600160801b039092168952509295506101889450909250611832906001600160a01b03166020870152565b60408501528351608091909101516001600160801b0390911610156115fa565b9190915f608060405161186481610122565b828152826020820152826040820152826060820152015280515f19810190811161119757611891916114e6565b51805190926001600160a01b039081169116811491565b60a06118d591207f00000000000000000000000000000000000000000000000000000000000000006121d8565b50509091565b60405190608082018281106001600160401b0382111761011d57604052606080838181528160208201528160408201520152565b6040519061191e602083610158565b5f80835282815b82811061193157505050565b60209061193c6115dc565b82828501015201611925565b90611952826101a8565b61195f6040519182610158565b8281528092611970601f19916101a8565b01905f5b82811061198057505050565b60209061198b6115dc565b82828501015201611974565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b60208183031261021c578051906001600160401b03821161021c57019080601f8301121561021c5781516119f4816101a8565b92611a026040519485610158565b81845260208085019260051b82010192831161021c57602001905b828210611a2a5750505090565b8151815260209182019101611a1d565b959493929091611a4d87611a67946111d0565b151560a087015261012060c0870152610120860190610ae3565b84810360e0860152602080835192838152019201905f5b818110611aa0575050506001600160a01b039091166101009390930192909252565b825160020b845260209384019390920191600101611a7e565b959193611ad5939897959198611acd6118db565b50898861254e565b94919496855151151580611d34575b15611d22576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b1561021c575f6040518096630b0d9c0960e01b8252818381611b3f89308960048501611997565b03925af1948515610a1e575f95611d08575b5080151592838614611d015785935b611c73575b5050855192611b9060208801519660405197889687958695633ac1fb4960e21b875260048701611a3a565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a1e575f91611c51575b50611be08151611948565b935f5b8251811015611c4a5780611bf9600192856114e6565b51611c088260408801516114e6565b51611c178360608901516114e6565b5190611c21610199565b92835260208301526040820152611c3882896114e6565b52611c4381886114e6565b5001611be3565b5092915050565b611c6d91503d805f833e611c658183610158565b8101906119c1565b5f611bd5565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af1938415610a1e575f94611ce2575b80611b65565b611cfa9060203d602011610a1757610a098183610158565b505f611cdc565b8093611b60565b80611d1687611d1c93610158565b806103c1565b5f611b51565b50505050505090611d3161190f565b91565b506001600160801b0382161515611ae4565b9192916001600160a01b0316908115611edb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af1938415610a1e57611ded602094611df3935f97611ec7575b50611de785611dd68186612c5e565b94611de2848383612cc6565b612c5e565b92612757565b14612764565b600460405180948193630476982d60e21b83525af18015610a1e57611ea8575b505b6001600160801b038116611e2857505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051630b0d9c0960e01b8152935f938593849286928492611e899290916001600160a01b031660048501611997565b03925af18015610a1e57611e9a5750565b80611d165f61018893610158565b611ec09060203d6020116117e3576117d48183610158565b505f611e13565b80611d1689611ed593610158565b5f611dc7565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af1918215610a1e57602092611f89575b50600460405180948193630476982d60e21b83525af18015610a1e57611f6a575b50611e15565b611f829060203d6020116117e3576117d48183610158565b505f611f64565b80611d165f611f9793610158565b5f611f43565b15611fa457565b636741e8e960e11b5f5260045ffd5b6002548110156111c05760025f5260205f2001905f90565b6003548110156111c05760035f5260205f2001905f90565b60025490811561207f57818151511480612071575b61200190611f9d565b5f5b82811061200f57505050565b8061201d60019284516114e6565b5161203461202a83611fb3565b90549060031b1c90565b148061204a575b61204490611f9d565b01612003565b5061204461205c8260208601516114e6565b5161206961202a84611fcb565b14905061203b565b506020810151518214611ff8565b5050565b1561208a57565b63bdcc3d9760e01b5f5260045ffd5b8251156121005780516120f157505b8151156111c057602091909101518051610188926001600160a01b03908116911681149182156120da575b5050612083565b602001516001600160a01b03161490505f806120d3565b6120fb915061277a565b6120a8565b505050565b1561210e575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616612148575050506101889250808214612105565b90929193806121b357506001600160a01b03169061216590612864565b91813b1561021c57604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611e89565b635d0165db60e01b5f525f60045260245260445ffd5b9081602091031261021c575190565b602090612223939260405183810191825260066040820152604081526121ff606082610158565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa918215610a1e575f92612266575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b61228091925060203d6020116117e3576117d48183610158565b905f61223e565b60208152608060606122a4845183602086015260a085019061051e565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b919091825151156123dd5760208381018051909261236f916001600160a01b0316806123bc575b508551606087015190949061234c90610913906001600160a01b03169260408a0193612334855191612322610179565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6123b45751935b60405194858094819363b858183f60e01b835260048301612287565b03926001600160a01b03165af18015610a1e57610553915f91612395575b50925161277a565b6123ae915060203d6020116117e3576117d48183610158565b5f61238d565b505f93612353565b60408701516123d7916001600160a01b03848116911661288d565b5f6122f2565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114612100577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c575f92836101449261245c946040519788968795632fc7dd6b60e11b875260048701906111d0565b80821360a486015260c485015260e484015281610104840152816101248401525af18015610a1e57611e9a5750565b600f0b60016001607f1b03198114611197575f0390565b90916124b182610140946111d0565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b906124f4826101a8565b6125016040519182610158565b8281528092612512601f19916101a8565b0190602036910137565b6001600160801b03918216908216019190821161119757565b6001600160801b03918216908216039190821161119757565b959395949190929461255e6118db565b965f966001600160801b0384161561273b5773fffd8963efd1fc6a506488495d951d5263988d256401000276a4871561272457506001600160a01b0390811690831610155b61271a579493929190835151926125b9846124ea565b8a526125c4846124ea565b60208b01526125d2846124ea565b60408b01526125e0846124ea565b60608b0152955f955f955b858710612614575050505050505080855152806020860151528060408601515260608501515290565b9091929394959661263f61262f896020859e9c9e01516114e6565b516001600160801b038d166129c3565b98891561270e5761265a906001600160801b038b169061251c565b9a61266f906001600160801b038b1690612535565b98818d8a85519061267f916114e6565b5161268d908989898d612b0a565b928282519061269b916114e6565b5260200151906126aa916114e6565b906126b7919060020b9052565b8b81898451906126c6916114e6565b519160400151906126d6916114e6565b528b81896020850151906126e9916114e6565b519160600151906126f9916114e6565b52600101966001905b019594939291906125eb565b9a985096600190612702565b5091949350505050565b6001600160a01b03908116908416111590506125a3565b505f96508695945050505050565b90601f820180921161119757565b9190820180921161119757565b1561276b57565b637627529f60e01b5f5260045ffd5b80511561285f575f9160179160429084905b805182611197578661119757831161284a57805190858203918083116111975786906127c2846127bb81612749565b1015613233565b6127d0826127bb8682612757565b6127e683516127df8685612757565b1115613270565b036127ff5750506040515f81526020810160405261278c565b60405191601f81169187831560051b80858701019484860193010101905b8084106128375750508252601f01601f191660405261278c565b909260208091855181520193019061281d565b92945050506128599150612d57565b50905090565b505f90565b6001600160a01b03811161287e576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa928315610a1e575f936129a2575b5082018092116111975760205f604051938285019063095ea7b360e01b825260018060a01b0387166024870152604486015260448552612911606486610158565b84519082855af15f51903d81612976575b501590505b61293057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610188926129719061296b8160648101611074565b826132f4565b6132f4565b1515905061299657506129276001600160a01b0382163b15155b5f612922565b60016129279114612990565b6129bc91935060203d6020116117e3576117d48183610158565b915f6128d0565b808202905f1983820990828083109203918083039283612710111561021c5714612a21577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca00111561021c5714612a8e577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b634e487b7160e01b5f52601260045260245ffd5b8115612ab9570490565b612a9b565b60020b627fffff198114611197575f0390565b60020b60010190627fffff8213627fffff1983121761119757565b9060020b9060020b0190627fffff198212627fffff83131761119757565b91949392612b2e612b449294612b29670de0b6b3a76400008211611510565b612dd7565b908415612c45575b6001600160a01b0316612a2c565b6001600160a01b038111612c37575b612b8190606090612b6c906001600160a01b0316612e1d565b920191612b7a835160020b90565b90846130b8565b612b94612b8f835160020b90565b613147565b90612b9e82612abe565b8160020b8360020b81135f14612c105750505090612bc7612bd992955b825160020b90856130b8565b908315612c03575160020b5b90612aec565b9015612bf3578060020b8360020b12612bef5750565b9150565b8060020b8360020b13612bef5750565b51612bd39060020b612abe565b90809297935060020b13612c2d575b5090612bc7612bd992612bbb565b9450612bc7612c1f565b506001600160a01b03612b53565b90612c5890670de0b6b3a7640000612aaf565b90612b36565b6001600160a01b038116612c7157503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610a1e575f91612cad575090565b610553915060203d6020116117e3576117d48183610158565b9091906001600160a01b038116612cf357505f808080612ce794865af11590565b612cee5750565b6131ca565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612d495750565b6001600160a01b031661315d565b90612d666014835110156132b0565b602082015160601c916017815110612d9b57601781015190602b81612d926017926020945110156132b0565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116111975760011c905b838210612dfd575050610188821515611510565b909250828015612ab9578082049081018091116111975760011c90612de9565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b03161161305d5760018060a01b0316612e5b8160201b90565b80612e6e612e688361336c565b60ff1690565b91608083106130505750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa9198101612ffe9060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f146130305750905090565b6001600160a01b03613041846133ef565b161161304b575090565b905090565b905081607f031b90612e80565b61334c565b600291820b910b0390627fffff198212627fffff83131761119757565b60020b9060020b908115612ab957627fffff1981145f19831416611197570590565b9060020b9060020b02908160020b91820361119757565b909190156130fc575f8260020b125f146130ef576130ea816130e56130e08261055396613062565b612ad1565b61307f565b6130a1565b6130ea816105539361307f565b905f8160020b125f1461311757906130ea816105539361307f565b8161312191612aec565b60020b5f190190627fffff198212627fffff831317611197576130ea816105539361307f565b8060020b8015612ab957620d89e8050260020b90565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561323a57565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561327757565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b156132b757565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af11561131f575f513d61334357506001600160a01b0381163b155b6133235750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561331c565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b801561021c577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116137095763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b1891600281166136ed575b600481166136d1575b600881166136b5575b60108116613699575b6020811661367d575b60408116613661575b60808116613645575b6101008116613629575b610200811661360d575b61040081166135f1575b61080081166135d5575b61100081166135b9575b612000811661359d575b6140008116613581575b6180008116613565575b620100008116613549575b62020000811661352e575b620400008116613513575b62080000166134fa575b5f126134f2575b0160201c90565b5f19046134eb565b6b048a170391f7dc42444e8fa290910260801c906134e4565b6d2216e584f5fa1ea926041bedfe9890920260801c916134da565b916e5d6af8dedb81196699c329225ee6040260801c916134cf565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916134c4565b916f31be135f97d08fd981231505542fcfa60260801c916134b9565b916f70d869a156d2a1b890bb3df62baf32f70260801c916134af565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916134a5565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161349b565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91613491565b916ff3392b0822b70005940c7a398e4b70f30260801c91613487565b916ff987a7253ac413176f2b074cf7815e540260801c9161347d565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91613473565b916ffe5dee046a99a2a811c461f1969c30530260801c91613469565b916fff2ea16466c96a3843ec78b326b528610260801c91613460565b916fff973b41fa98c081472e6896dfb254c00260801c91613457565b916fffcb9843d60f6159c9db58835c9266440260801c9161344e565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91613445565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c9161343c565b916ffff97272373d413259a46990580e213a0260801c91613433565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2771:19161:92:-:0;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;:::-;3746:38;2771:19161;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;:::-;;;;;9832:14;2771:19161;;:::i;:::-;:::o;:::-;;;;;11111:19;2771:19161;;:::i;:::-;;;;;14725:29;2771:19161;;:::i;:::-;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;8456:32:92;;;:::i;:::-;;2771:19161;;;;;-1:-1:-1;;;;;2771:19161:92;;;;-1:-1:-1;;;2771:19161:92;;;;8498:26;2771:19161;;8498:26;2771:19161;;;;;;;-1:-1:-1;8498:26:92;2771:19161;;;;;-1:-1:-1;2771:19161:92;;;;;;8539:61;2771:19161;;;;;;;;;:::i;:::-;8563:16;8581:18;;2771:19161;8539:61;2771:19161;;8539:61;;;;;:::i;:::-;;;;2771:19161;;;;;;;;;;;;;;;;;;8498:26;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;3234:55;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;1500:62:0;;:::i;:::-;2771:19161:92;;;-1:-1:-1;;;;;;2771:19161:92;;;;;;-1:-1:-1;2771:19161:92;;;;;;;-1:-1:-1;;;;;;2771:19161:92;3052:40:0;-1:-1:-1;;3052:40:0;2771:19161:92;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;735:10:7;-1:-1:-1;;;;;2771:19161:92;;;2339:24:1;2335:96;;2771:19161:92;;;-1:-1:-1;;;;;;2771:19161:92;;;;;;-1:-1:-1;2771:19161:92;;735:10:7;2771:19161:92;;;;;;;-1:-1:-1;;;;;2771:19161:92;;3052:40:0;;-1:-1:-1;3052:40:0;2771:19161:92;2335:96:1;2386:34;;;2771:19161:92;2386:34:1;735:10:7;2771:19161:92;;;;2386:34:1;2771:19161:92;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;-1:-1:-1;;2771:19161:92;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;3339:39;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;9363:16;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3080:68:8;9501:23:92;;;;;;;;:::i;:::-;9476:49;;;:::i;:::-;;;;:::i;:::-;;9618:23;;;;:::i;:::-;9588:54;;;:::i;:::-;;;;:::i;:::-;9723:14;;;;;;;:::i;:::-;9715:50;;-1:-1:-1;9723:25:92;;9715:50;:::i;:::-;9832:14;;;;;;;;:::i;:::-;9848:20;;;;;;;;;:::i;:::-;9870:14;;;;;:::i;:::-;2771:19161;;;;3746:38;;;;:::i;:::-;2771:19161;;3746:38;;;;:::i;:::-;9803:82;;;;:::i;:::-;10017:20;;;:::i;:::-;10039:18;;;;2771:19161;10086:9;;10079:4;10059:10;10008:7;;10086:9;;;;:::i;:::-;10188:14;;;;:::i;:::-;10203;;;;:::i;:::-;:25;;;;:::i;:::-;10188:41;;;;:::i;:::-;10160:69;;;:::i;:::-;10325:11;;357:173:37;9723:14:92;357:173:37;;10303:53:92;;;;:::i;:::-;10602:14;;;;;;;;:::i;:::-;10649:20;;;;:::i;:::-;3746:38;;;:::i;:::-;2771:19161;;3746:38;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;;10548:227;;3746:38;9848:20;10548:227;;3746:38;10079:4;10039:18;10548:227;;3746:38;10483:302;;10524:10;10483:302;:::i;:::-;10938:16;;;;:::i;:::-;10977:14;;;;;:::i;:::-;11111:19;;;2771:19161;11162:23;;;;;:::i;:::-;3746:38;;;:::i;:::-;-1:-1:-1;;;;;2771:19161:92;;;3746:38;;2771:19161;3746:38;;;;:::i;:::-;2771:19161;10900:296;;3746:38;9848:20;10900:296;;3746:38;-1:-1:-1;;;;;2771:19161:92;10039:18;10900:296;;3746:38;9832:14;10900:296;;3746:38;2771:19161;3746:38;;;:::i;:::-;9723:14;10900:296;;3746:38;9848:20;2771:19161;11312:24;;2771:19161;11312:24;;;;;;:::i;:::-;;2771:19161;;11312:24;;;;;;;;:::i;:::-;9848:20;2771:19161;-1:-1:-1;;;11293:44:92;;2771:19161;;;;;11293:44;;2771:19161;11293:44;;;:::i;:::-;-1:-1:-1;;;;;2771:19161:92;;;;11293:44;;;-1:-1:-1;11293:44:92;;;;;;;;11476:106;11293:44;-1:-1:-1;11293:44:92;;;2771:19161;;;;;;11476:106;;;;;;:::i;:::-;11700:16;;;;;11684:52;:34;11692:25;3746:38;9832:14;11700:16;;3746:38;2771:19161;;;;;;;;3746:38;-1:-1:-1;;;;;2771:19161:92;;;11684:52;9848:20;2771:19161;-1:-1:-1;;;11684:95:92;;-1:-1:-1;;;2771:19161:92;11684:95;;3746:38;2771:19161;;;;;;3746:38;;2771:19161;;11684:95;;;;;;;12008:294;11684:95;12008:294;11684:95;12073:16;11684:95;-1:-1:-1;11684:95:92;;;2771:19161;11843:17;;:52;;;2771:19161;11839:154;;12073:16;:::i;:::-;2771:19161;9848:20;2771:19161;;;;;;;;;;10059:10;;2241:89:34;;;;2052:83;9832:14:92;2052:83:34;12008:294:92;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;;3080:68:8;9848:20:92;2771:19161;9363:16;2771:19161;;;;;11839:154;;;;;;:::i;:::-;12073:16;:::i;11843:52::-;2771:19161;;;;;;;11864:31;;11843:52;;11684:95;;;;2771:19161;11684:95;2771:19161;11684:95;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11293:44::-;;;;;;-1:-1:-1;11293:44:92;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2771:19161;;;;;;-1:-1:-1;;2771:19161:92;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;2848:69:8;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;3140:41;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;8825:17;2771:19161;;;;;;;;8825:17;2771:19161;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3746:38;;2771:19161;;:::i;:::-;;;;3746:38;2771:19161;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;2771:19161:92;;;-1:-1:-1;;;;;;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;1777:43:1;;-1:-1:-1;1777:43:1;2771:19161:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;12714:1377::-;12827:11;-1:-1:-1;;;;;2771:19161:92;12805:10;:34;12801:89;;12935:32;;;;;;:::i;:::-;13987:97;13062:29;;;:::i;:::-;13987:97;13511:273;13946:22;13891:27;13216:67;13235:20;;;;2771:19161;13235:20;13257:25;;2771:19161;;;;;;;;;;13216:67;;:::i;:::-;13383:25;;;;;;;;:::i;:::-;2771:19161;;;;;;;;;;;;;;;;;;13709:29;;;;2771:19161;;13709:29;;;;-1:-1:-1;;;;;2771:19161:92;13511:273;;:::i;:::-;13860:29;;;2771:19161;13860:29;;;;-1:-1:-1;;;;;2771:19161:92;13891:27;;;2771:19161;;;13891:27;;2771:19161;-1:-1:-1;;;;;2771:19161:92;13946:22;;:::i;:::-;14057:26;2771:19161;;13891:27;2771:19161;13987:97;;;13235:20;13987:97;;;:::i;:::-;;2771:19161;;13987:97;;;;;;:::i;12801:89::-;12862:17;;;;;;;;3746:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3746:38:92;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3746:38:92;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3746:38:92;;;;2771:19161;;-1:-1:-1;;2771:19161:92;3746:38;;;:::o;:::-;;;;;;;:::i;:::-;2771:19161;;;;;;;:::i;:::-;3746:38;;;;;;;;;;;;;;;;-1:-1:-1;3746:38:92;;;;;;:::o;:::-;-1:-1:-1;;3746:38:92;;;;;;;;:::o;:::-;;:::i;:::-;2771:19161;;;3746:38;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;;;;;3746:38;;;;;2771:19161;;3746:38;;;2771:19161;3746:38;;;;;2771:19161;;3746:38;;;;;;;;;2771:19161;;3746:38;;;2771:19161;3746:38;;;;;2771:19161;3746:38;;2771:19161;3746:38::o;:::-;;;;;;;-1:-1:-1;;;;;2771:19161:92;3746:38;;;2771:19161;3746:38;;;;;;;;;2771:19161;;3746:38;;;2771:19161;;;3746:38;;;2771:19161;;;;3746:38;2771:19161;;;;;-1:-1:-1;3746:38:92;;;;;;;;;;;;;;;;;;;;2771:19161;3746:38;;;;;;;;;2771:19161;;;;;;;;;3746:38;;;;;;;;2771:19161;3746:38;;2771:19161;3746:38;2771:19161;;3746:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;2771:19161;;3746:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;3746:38:92;;;;;;;;;;;;;;;;;;;:::i;:::-;2771:19161;;;;;;;:::i;:::-;3746:38;;;;;;;;;;;;-1:-1:-1;3746:38:92;;;;;;;;2771:19161;;;;;3746:38;:::o;:::-;2771:19161;;3746:38;;;;;;;;;2771:19161;;;;3746:38;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;3746:38:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;2771:19161;;;;;;;:::i;:::-;3746:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2771:19161;3746:38;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;2771:19161;;;;;;:::i;:::-;3746:38;;;;;;;;;;;;2771:19161;3746:38;;;2771:19161;3746:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2771:19161;;;;3746:38;;;2771:19161;;3746:38;;;2771:19161;3746:38;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;3746:38;;;2771:19161;3746:38;;;;;;;;;:::i;2771:19161::-;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;1796:162:0;1710:6;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;735:10:7;1855:23:0;1851:101;;1796:162::o;2771:19161:92:-;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;1795:4:90;;;;:::o;:::-;;;;;;;;;1901:6;;;;:::o;:::-;;;;;;;;;2728:647;2850:16;;2771:19161:92;;;2728:647:90;2892:10;;;;:49;;2728:647;2771:19161:92;;;3000:9:90;2771:19161:92;2995:296:90;3011:10;;;;;;3319:29;;;3311:57;1901:6;3319:29;;;3311:57;:::i;3023:3::-;3054:18;;;2771:19161:92;3054:18:90;3215:21;3054:18;;;;3046:53;3054:21;:18;;;:21;:::i;:::-;2771:19161:92;3054:26:90;;3046:53;:::i;:::-;3117:64;1795:4;3125:19;:16;;;:19;:::i;:::-;2771:19161:92;3125:36:90;3117:64;:::i;:::-;3215:18;:21;:::i;:::-;2771:19161:92;1795:4:90;3023:3;2771:19161:92;3000:9:90;;;;2771:19161:92;;;;;;;;;2892:49:90;2916:18;;;;;2771:19161:92;2906:35:90;;2892:49;;2771:19161:92;;;;;;;:::i;:::-;-1:-1:-1;2771:19161:92;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;14326:603;2771:19161;;:::i;:::-;;14600:20;;;;14648:27;;;;2771:19161;;;;;;14725:29;;;2771:19161;;;14648:27;2771:19161;;;;;:::i;:::-;3746:38;;14600:20;14546:224;;3746:38;;;14648:27;14546:224;;3746:38;;;8176:24:60;2771:19161:92;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;;;;;;-1:-1:-1;;;;;2771:19161:92;;;8176:24:60;-1:-1:-1;;14521:11:92;-1:-1:-1;;;;;2771:19161:92;;8210:22:60;;-1:-1:-1;8333:3:60;8310:14;;2771:19161:92;;;8306:25:60;;;;;8377:17;;14600:20:92;8638:24:60;8377:17;;;8615:120;8493:36;8377:17;;8556:213;8377:17;;;:::i;:::-;;2771:19161:92;;8377:17:60;;-1:-1:-1;;;;;2771:19161:92;;;;;448:51:36;;364:138;8493:36:60;2771:19161:92;;;-1:-1:-1;;;;;2771:19161:92;3746:38;;8638:24:60;:::i;:::-;8664:70;;;;1862:10:32;8664:70:60;;8615:120;2771:19161:92;;:::i;:::-;;;;1862:10:32;;;8615:120:60;3746:38:92;;8615:120:60;;;3746:38:92;-1:-1:-1;;;;;2771:19161:92;14648:27;8615:120:60;;3746:38:92;;8615:120:60;14648:27:92;2771:19161;3746:38;;;;;;;8556:213:60;;;;;;;:::i;:::-;;;-1:-1:-1;8556:213:60;;;;;;;;-1:-1:-1;8556:213:60;;;8664:70;-1:-1:-1;2771:19161:92;;8544:225:60;8855:72;;;;2771:19161:92;;;;;;8855:72:60;9043:50;;;;14600:20:92;9056:17:60;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;8333:3:60;2771:19161:92;8291:13:60;;;;;;;;;9043:50;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;9043:50:60;;8855:72;2052:83:34;;2771:19161:92;;;;;;8855:72:60;;8556:213;2771:19161:92;8556:213:60;;;;;14600:20:92;8556:213:60;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8664:70;2042:49:32;8664:70:60;;;8306:25;-1:-1:-1;;;;;2771:19161:92;;;1862:10:32;;-1:-1:-1;8306:25:60;;-1:-1:-1;14833:89:92;;-1:-1:-1;8306:25:60;;-1:-1:-1;9159:39:60;;-1:-1:-1;;;;;2771:19161:92;14600:20;9159:21:60;;3746:38:92;;9159:39:60;14648:27:92;9208:22:60;;3746:38:92;2771:19161;;14868:25;;;;;2771:19161;-1:-1:-1;;;;;2771:19161:92;;;14841:52;;14833:89;:::i;15282:437::-;;;;-1:-1:-1;2771:19161:92;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3746:38;;;;;;;;;15553:24;;;:::i;:::-;;2771:19161;;15553:24;;-1:-1:-1;;;;;2771:19161:92;;;;;15660:52;;;15282:437::o;15913:204::-;357:173:37;16057:53:92;15913:204;357:173:37;16079:11:92;16057:53;:::i;:::-;16030:80;;;15913:204;:::o;2771:19161::-;;;;3746:38;2771:19161;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2771:19161:92;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;3746:38;;2771:19161;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2771:19161:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;16831:1841;;;;17327:115;16831:1841;;;;;;2771:19161;;:::i;:::-;;17327:115;;;:::i;:::-;17292:150;;;17509:12;;;2771:19161;17509:23;;:40;;;16831:1841;17505:1161;;;-1:-1:-1;;;;;17636:11:92;2771:19161;;;;17636:70;;;;;2771:19161;;;3746:38;;;;;17636:70;;17689:4;;;17636:70;17689:4;;17636:70;;;;;:::i;:::-;;;;;;;;;;2771:19161;17636:70;;;17505:1161;17813:25;;;;:41;;;;;;;;;17937:131;;17813:41;18228:12;;;;18242;18159:103;18242:12;;;;2771:19161;;;3746:38;;;;;;;;;;18159:103;;17636:70;18159:103;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;18159:18;-1:-1:-1;;;;;2771:19161:92;18159:103;;;;;;;2771:19161;18159:103;;;17813:41;2771:19161;18293:35;2771:19161;;18293:35;:::i;:::-;18375:9;2771:19161;18407:3;2771:19161;;18386:19;;;;;18476:11;;2771:19161;18476:11;;;:::i;:::-;2771:19161;18499:19;:16;2771:19161;18499:16;;;:19;:::i;:::-;2771:19161;18532:21;:18;2771:19161;18532:18;;;:21;:::i;:::-;2771:19161;;;;:::i;:::-;3746:38;;;18242:12;18453:102;;3746:38;2771:19161;18453:102;;3746:38;18434:121;;;;:::i;:::-;;;;;;:::i;:::-;;2771:19161;18375:9;;18386:19;;;;;;16831:1841::o;18159:103::-;;;;;;2771:19161;18159:103;;;;;;:::i;:::-;;;;;:::i;:::-;;;;17937:131;2771:19161;;-1:-1:-1;;;17986:67:92;;-1:-1:-1;;;;;18022:18:92;2771:19161;17636:70;17986:67;;2771:19161;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;17986:67;;2771:19161;;;;;;;17986:67;;;;;;;2771:19161;17986:67;;;17937:131;;;;17986:67;;;;;;;;;;;;;:::i;:::-;;;;;17813:41;;;;;17636:70;;;;;;;:::i;:::-;;;:::i;:::-;;;;17505:1161;18634:21;;;;;;;;;:::i;:::-;17505:1161;16831:1841::o;17509:40::-;-1:-1:-1;;;;;;2771:19161:92;;17536:13;;17509:40;;19018:431;;;;-1:-1:-1;;;;;2771:19161:92;;4998:58:36;;19678:24:92;;19718:11;-1:-1:-1;;;;;2771:19161:92;19718:26;;;;;2771:19161;;-1:-1:-1;;;19718:26:92;;-1:-1:-1;;;;;2771:19161:92;;19718:26;;;2771:19161;-1:-1:-1;2771:19161:92;;;-1:-1:-1;19718:26:92;;;;;;;;19993:22;20080:20;19718:26;19941:124;19718:26;;;;;19673:593;19826:40;19949;19826;;;;;:::i;:::-;19920:6;;;;;;:::i;:::-;19949:40;:::i;:::-;19993:22;;:::i;:::-;19949:66;19941:124;:::i;:::-;19718:26;2771:19161;;3746:38;;;;;;;20080:20;;;;;;;;;;19673:593;;;-1:-1:-1;;;;;2771:19161:92;;19333:110;;19018:431;;;:::o;19333:110::-;19368:11;-1:-1:-1;;;;;2771:19161:92;19368:64;;;;;2771:19161;;-1:-1:-1;;;19368:64:92;;2771:19161;19351:1;;2771:19161;;;;19351:1;;2771:19161;;19368:64;;3746:38;;-1:-1:-1;;;;;2771:19161:92;19368:64;;;;:::i;:::-;;;;;;;;;;;19018:431;:::o;19368:64::-;;;19351:1;19368:64;;;:::i;20080:20::-;;;;;;;;;;;;;:::i;:::-;;;;;19718:26;;;;;;;:::i;:::-;;;;19673:593;2771:19161;20180:11;-1:-1:-1;;;;;2771:19161:92;20180:26;;;;;2771:19161;;-1:-1:-1;;;20180:26:92;;-1:-1:-1;;;;;2771:19161:92;;;;20180:26;;;2771:19161;-1:-1:-1;2771:19161:92;;;-1:-1:-1;20180:26:92;;;;;;;;20220:35;20180:26;;;19673:593;2771:19161;20180:26;2771:19161;;3746:38;;;;;;;20220:35;;;;;;;;;;19673:593;;;;20220:35;;;;;;;;;;;;;:::i;:::-;;;;;20180:26;;;;;;;:::i;:::-;;;;2771:19161;;;;:::o;:::-;;;;;;;;;;21152:17;2771:19161;;;;;;21152:17;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;;-1:-1:-1;2771:19161:92;:::o;:::-;21720:29;2771:19161;;;;;;21720:29;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;;-1:-1:-1;2771:19161:92;:::o;21031:817::-;21152:17;2771:19161;21266:20;;;21262:33;;21350:16;;;2771:19161;21350:42;:90;;;21031:817;21342:126;;;:::i;:::-;21152:27;21565:19;;;;;;21031:817;;;:::o;21586:3::-;21638:16;:19;2771:19161;21638:16;;;:19;:::i;:::-;2771:19161;;21661:30;;;:::i;:::-;2771:19161;;;;;;;;;21638:53;:114;;;21586:3;21609:208;;;:::i;:::-;2771:19161;21554:9;;21638:114;21695:18;21609:208;21695:21;:18;;;;;:21;:::i;:::-;2771:19161;;21720:32;;;:::i;2771:19161::-;21695:57;21638:114;;;;21350:90;-1:-1:-1;21396:18:92;;;;2771:19161;21396:44;;21350:90;;21262:33;21288:7;;:::o;2771:19161::-;;;;:::o;:::-;;;;;;;;;2969:890:60;2771:19161:92;;3092:19:60;3088:83;;2771:19161:92;;3289:14:60;;3404:31;3285:313;2771:19161:92;;;;;;;;;;3635:10:60;2771:19161:92;;3656:196:60;;-1:-1:-1;;;;;2771:19161:92;;;;;3677:55:60;;;:114;;;;3285:313;3656:196;;;:::i;3677:114::-;2771:19161:92;3771:19:60;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;3736:55:60;;-1:-1:-1;3677:114:60;;;;3285:313;3554:33;;;;:::i;:::-;3285:313;;3088:83;3127:7;;;:::o;2771:19161:92:-;;;;;;:::o;:::-;;;;;;;;;;;;;5439:575:60;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;5705:23:60;;;5697:82;5705:23;;;;;5697:82;:::i;5603:405::-;5859:13;;;;;2771:19161:92;;-1:-1:-1;;;;;;2771:19161:92;;5958:23:60;;;:::i;:::-;5927:70;;;;;;2771:19161:92;;-1:-1:-1;;;5927:70:60;;-1:-1:-1;;;;;2771:19161:92;;;5927:70:60;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;5632:1:60;;2771:19161:92;;;5632:1:60;2771:19161:92;;;;5927:70:60;2771:19161:92;;;;;5632:1:60;2771:19161:92;5632:1:60;2771:19161:92;;;;;5632:1:60;2771:19161:92;;;;;;;;;;3746:38;2771:19161;:::o;1580:996:30:-;14953:51;1580:996;1892:27;1580:996;;2771:19161:92;;14953:51:30;;;2771:19161:92;;;414:1:30;2771:19161:92;398:19:30;;2771:19161:92;;14953:51:30;;;;;;:::i;:::-;2771:19161:92;14943:62:30;;2771:19161:92;;;3746:38;;;;;;;;1892:27:30;;;;;2771:19161:92;;;;;;;;1892:27:30;;;-1:-1:-1;;;;;2771:19161:92;1892:27:30;;;;;;;-1:-1:-1;1892:27:30;;;1580:996;-1:-1:-1;;;;;;2147:423:30;;;2771:19161:92;2147:423:30;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;;14953:51;1892:27;14953:51;1892:27;;;;;;;:::i;:::-;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;:::o;6425:1227:60:-;;;;6582:14;;2771:19161:92;6582:26:60;6578:163;;6822:20;;;;2771:19161:92;;6822:20:60;;7529:47;;-1:-1:-1;;;;;2771:19161:92;;6818:156:60;;6425:1227;-1:-1:-1;7131:14:60;;7170:16;;;2771:19161:92;7131:14:60;;7170:16;7443:34;;2771:19161:92;;-1:-1:-1;;;;;2771:19161:92;7210:18:60;;;;2771:19161:92;7082:247:60;2771:19161:92;;3746:38;;;:::i;:::-;;;;-1:-1:-1;;;;;2771:19161:92;7082:247:60;;;3746:38:92;;7082:247:60;7210:18;7082:247;;3746:38:92;-1:-1:-1;7170:16:60;7082:247;;3746:38:92;2771:19161;-1:-1:-1;;;;;2771:19161:92;;;7443:34:60;:59;;2771:19161:92;7443:59:60;;7210:18;2771:19161:92;3746:38;;;;;;;;;7529:47:60;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;7529:47:60;;;;;;7605:40;7529:47;-1:-1:-1;7529:47:60;;;7443:59;7512:64;7630:14;;7605:40;:::i;7529:47::-;;;;6822:20;7529:47;6822:20;7529:47;;;;;;;:::i;:::-;;;;7443:59;;-1:-1:-1;7443:59:60;;;6818:156;6944:18;;;2771:19161:92;6944:18:60;;-1:-1:-1;;;;;2771:19161:92;;;;;6944:18:60;:::i;:::-;6818:156;;;6578:163;-1:-1:-1;6689:18:60;;;2771:19161:92;6709:20:60;;;;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;:::o;20499:401::-;;2771:19161;;;;;20616:31;;;20612:68;;20802:18;-1:-1:-1;;;;;2771:19161:92;20802:91;;;;;20879:1;2771:19161;;20802:91;2771:19161;;;;;3746:38;;;;;;;;20802:91;;;;;2771:19161;;:::i;:::-;20761:30;;;2771:19161;;;;;;;;;;;;;;;;;;;;;;20802:91;;;;;;;;20499:401;:::o;2771:19161::-;3746:38;;-1:-1:-1;;;;;;2771:19161:92;;;;;;;:::o;1862:10:32:-;;;;;2771:19161:92;1862:10:32;;:::i;:::-;;;2771:19161:92;;1862:10:32;;;2771:19161:92;1862:10:32;;;;;;;2771:19161:92;1862:10:32;;;-1:-1:-1;;;;;2771:19161:92;1862:10:32;;;2771:19161:92;1862:10:32;;;;;;;-1:-1:-1;1862:10:32;;;2771:19161:92;;;1862:10:32:o;1979::70:-;;2771:19161:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;1979:10:70;2771:19161:92;1979:10:70;2771:19161:92;;1979:10:70;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2771:19161:92;;;;;;1979:10:70;;;;;;;:::o;:::-;-1:-1:-1;;;;;2771:19161:92;;;;;;1979:10:70;;2771:19161:92;1979:10:70;;;;:::o;4274:2599:90:-;;;;;;;;;2771:19161:92;;:::i;:::-;4518:17:90;2771:19161:92;;-1:-1:-1;;;;;2771:19161:92;;4572:14:90;4568:79;;2042:49:32;1862:10;4977:65:90;;;;-1:-1:-1;;;;;;2771:19161:92;;;;;;4991:24:90;;4977:65;4973:167;;5171:16;;;;;;;2771:19161:92;5215:25:90;;;;:::i;:::-;5205:35;;5260:23;;;:::i;:::-;5250:7;;;:33;5307:25;;;:::i;:::-;5293:11;;;:39;5358:25;;;:::i;:::-;5342:13;;;:41;5433:13;2771:19161:92;5462:9:90;2771:19161:92;5457:1073:90;5473:14;;;;;;6540:293;;;;;;;;;;;5250:7;;;;6540:293;;5293:11;;;;6540:293;;5342:13;;;6540:293;;4274:2599;:::o;5489:3::-;5564:18;;;;;;;5528:73;5564:21;:18;5250:7;5564:18;;;;;;:21;:::i;:::-;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;5528:73:90;:::i;:::-;5619:14;;;5615:28;;5806:31;;-1:-1:-1;;;;;2771:19161:92;;;5806:31:90;:::i;:::-;2771:19161:92;5999:31:90;;-1:-1:-1;;;;;2771:19161:92;;;5999:31:90;:::i;:::-;6123:16;;;;;;:19;;;;:::i;:::-;2771:19161:92;6064:79:90;;;;;;;:::i;:::-;6158:7;;;;:26;;;;:::i;:::-;3746:38:92;5250:7:90;;6198;:27;;;;:::i;:::-;;;;1979:10:70;2771:19161:92;;1979:10:70;;;6198:27:90;6260:16;;;;;:19;;;;:::i;:::-;2771:19161:92;5293:11:90;;;6239;:40;;;;:::i;:::-;3746:38:92;5564:18:90;;;5250:7;5564:18;;6316;:21;;;;:::i;:::-;2771:19161:92;5342:13:90;;;6293;:44;;;;:::i;:::-;3746:38:92;4906:1:90;2771:19161:92;5489:3:90;4906:1;5489:3;5462:9;2771:19161:92;5462:9:90;;;;;;;;5615:28;5635:8;;;;4906:1;5635:8;;;4973:167;-1:-1:-1;5095:34:90;;;-1:-1:-1;;;;5095:34:90:o;4977:65::-;-1:-1:-1;;;;;2771:19161:92;;;;;;5018:24:90;;;-1:-1:-1;4977:65:90;;4568:79;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;4602:34:90;-1:-1:-1;;;;;4602:34:90:o;2771:19161:92:-;;677:2:74;2771:19161:92;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;10716:597:60;2771:19161:92;;10824:16:60;10820:64;;2771:19161:92;;;;;;;;11065:101:60;2771:19161:92;;;;;;;;1229:40:75;-1:-1:-1;11072:30:60;;2771:19161:92;;3746:38;;;;;;;;;;667:12:74;;659:50;667:12;;;;:::i;:::-;:23;;659:50;:::i;:::-;719:53;727:16;;;;;:::i;719:53::-;782:63;2771:19161:92;;807:16:74;;;;:::i;:::-;-1:-1:-1;790:33:74;782:63;:::i;:::-;889:2430;2771:19161:92;;889:2430:74;;;;2771:19161:92;889:2430:74;;;;;;;11065:101:60;;889:2430:74;;;;677:2;889:2430;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;889:2430:74;;677:2;889:2430;-1:-1:-1;;889:2430:74;;;11065:101:60;;889:2430:74;;;;;;;;;;;;;;;;11072:30:60;;;;;;11277:29;11072:30;;11277:29;:::i;:::-;11260:46;;;10716:597;:::o;10820:64::-;10856:17;2771:19161:92;10856:17:60;:::o;288:164:12:-;-1:-1:-1;;;;;368:25:12;;364:50;;-1:-1:-1;;;;;2771:19161:92;;288:164:12:o;364:50::-;402:12;;;;;;;;3146:225:6;2771:19161:92;;-1:-1:-1;;;3265:39:6;;3289:4;3265:39;;;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;;;;;;3146:225:6;;2771:19161:92;;;;;;3265:39:6;;2771:19161:92;;;;3265:39:6;;;;;;;-1:-1:-1;3265:39:6;;;3146:225;2771:19161:92;;;;;;;;5199:47:6;-1:-1:-1;2771:19161:92;;5199:47:6;;;;3746:38:92;;;;5199:47:6;;2771:19161:92;;;;;;;5199:47:6;;;2771:19161:92;;;;;;5199:47:6;;;;;;:::i;:::-;9770:199;;;;;;;-1:-1:-1;9770:199:6;;;;9985:80;;3146:225;-1:-1:-1;5261:45:6;;-1:-1:-1;5261:45:6;5257:201;;3146:225;;;:::o;5257:201::-;2771:19161:92;;-1:-1:-1;;;5199:47:6;5349:43;;;-1:-1:-1;;;;;2771:19161:92;;;5199:47:6;5349:43;;2771:19161:92;5389:1:6;2771:19161:92;;;;5434:12:6;;5349:43;;;2771:19161:92;;;;5349:43:6;2771:19161:92;5349:43:6;;;:::i;:::-;5434:12;:::i;9985:80::-;9997:15;;;-1:-1:-1;9997:15:6;;-1:-1:-1;5261:45:6;-1:-1:-1;;;;;2771:19161:92;;10015:26:6;:30;;9997:67;9985:80;;;9997:67;10063:1;5261:45;10048:16;;9997:67;;3265:39;;;;;2771:19161:92;3265:39:6;2771:19161:92;3265:39:6;;;;;;;:::i;:::-;;;;;858:4141:66;2771:19161:92;;;;-1:-1:-1;;2771:19161:92;;1464:147:66;;;;;;;;;;;;1736:19;;1901:6:90;1736:19:66;2771:19161:92;;;1837:10:66;1833:177;;2771:19161:92;2341:95:66;1901:6:90;2341:95:66;;2508:145;;;;;;2771:19161:92;;2508:145:66;;3094:82;;3480:21;2771:19161:92;858:4141:66;:::o;1833:177::-;1867:98;;1901:6:90;1867:98:66;;;1982:13;:::o;858:4141::-;2771:19161:92;;;;-1:-1:-1;;2771:19161:92;;1464:147:66;;;;;;;;;;;;1736:19;;2036:3:90;1736:19:66;2771:19161:92;;;1837:10:66;1833:177;;2771:19161:92;2341:95:66;2036:3:90;2341:95:66;;2508:145;;;;;;2771:19161:92;;2508:145:66;;3094:82;;3480:21;2771:19161:92;858:4141:66;:::o;1833:177::-;1867:98;;2036:3:90;1867:98:66;;;1982:13;:::o;2036:3:90:-;2771:19161:92;;;2036:3:90;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;2771:19161:92;;-1:-1:-1;;2036:3:90;;;;;;;:::o;:::-;2771:19161:92;;;2036:3:90;;;;;-1:-1:-1;;2036:3:90;;;;;:::o;:::-;;2771:19161:92;;;;;2036:3:90;;;;;;;;;;;;:::o;7348:1541::-;;;;;7650:23;7830:75;7348:1541;;7561:53;1795:4;7569:25;;7561:53;:::i;:::-;7650:23;:::i;:::-;7687:12;;;7683:120;;7348:1541;-1:-1:-1;;;;;2771:19161:92;7830:75:90;:::i;:::-;-1:-1:-1;;;;;7919:26:90;;7915:58;;7348:1541;8198:73;;8255:15;;8134:44;;-1:-1:-1;;;;;2771:19161:92;8134:44:90;:::i;:::-;8255:15;;2036:3;;;;2771:19161:92;;;;2036:3:90;8198:73;;;:::i;:::-;8298:39;2036:3;;;2771:19161:92;;;;2036:3:90;8298:39;:::i;:::-;8363:8;;;;:::i;:::-;2771:19161:92;;;;;;8386:17:90;;8382:136;8386:17;;;8419;;;;8552:74;8652:68;8419:17;8382:136;;2036:3;;2771:19161:92;;8552:74:90;;;:::i;:::-;8671:48;;;;;2036:3;2771:19161:92;;2036:3:90;8671:48;8652:68;:::i;:::-;8730:153;;;;2771:19161:92;;;;;;8765:17:90;8761:40;;8730:153;7348:1541::o;8761:40::-;8784:17;-1:-1:-1;19018:431:92:o;8730:153:90:-;2771:19161:92;;;;;;8836:17:90;8832:40;;8730:153;7348:1541::o;8671:48::-;2036:3;8703:16;;2771:19161:92;;8703:16:90;:::i;8382:136::-;2771:19161:92;;;;;;;;-1:-1:-1;8453:65:90;;8382:136;;;8552:74;8652:68;8382:136;;;8453:65;8490:17;-1:-1:-1;8552:74:90;8453:65;;7915:58;-1:-1:-1;;;;;;7915:58:90;;7683:120;7733:41;7732:60;7733:41;2771:19161:92;7732:60:90;:::i;:::-;7683:120;;;4633:271:36;-1:-1:-1;;;;;2771:19161:92;;4732:24:36;;4779:13;;4772:20;:::o;4728:170::-;2771:19161:92;;-1:-1:-1;;;4830:57:36;;-1:-1:-1;;;;;2771:19161:92;;;4830:57:36;;;2771:19161:92;;;;;;4830:57:36;;2771:19161:92;;;4830:57:36;;;;;;;2771:19161:92;4830:57:36;;;4823:64;;:::o;4830:57::-;;;;2771:19161:92;4830:57:36;2771:19161:92;4830:57:36;;;;;;;:::i;1472:2873::-;;;;-1:-1:-1;;;;;2771:19161:92;;1769:24:36;;1809:163;-1:-1:-1;1809:163:36;;;2085:8;1809:163;;;;2085:8;;2771:19161:92;2085:8:36;2081:127;;1765:2574;1472:2873::o;2081:127::-;2163:29;:::i;1765:2574::-;2238:1774;;;-1:-1:-1;;;2238:1774:36;;-1:-1:-1;;;;;2238:1774:36;;;;;;;;;;;;;;;;-1:-1:-1;;2238:1774:36;-1:-1:-1;2238:1774:36;;-1:-1:-1;2238:1774:36;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;-1:-1:-1;;;;;2771:19161:92;4268:28:36;:::i;1925:240:75:-;;3518:62:74;3473:2;2771:19161:92;;3526:28:74;;3518:62;:::i;:::-;3620:119;;;;;;2771:19161:92;;;;3944:27:74;2771:19161:92;;;4032:81:74;;;;2771:19161:92;;3518:62:74;2771:19161:92;;3620:119:74;2771:19161:92;;3526:28:74;;3518:62;:::i;:::-;3620:119;;;;;1925:240:75;:::o;2771:19161:92:-;;;-1:-1:-1;;;2771:19161:92;;3620:119:74;2771:19161:92;;;;3473:2:74;2771:19161:92;;;;-1:-1:-1;;;2771:19161:92;;;;;;;9171:307:90;;9260:17;9311:1;2771:19161:92;;;;;;;9311:1:90;2771:19161:92;9328:95:90;9335:10;;;;;;9440:11;;9432:39;9440:11;;;9432:39;:::i;9328:95::-;9361:10;;-1:-1:-1;9361:10:90;2036:3;;;;;;;2771:19161:92;;;;;;;;9311:1:90;2771:19161:92;9328:95:90;;;7772:4824:70;2391:66;-1:-1:-1;;2771:19161:92;;-1:-1:-1;;;;;2771:19161:92;8327:79:70;8323:168;;2771:19161:92;;;;;;8521:27:70;;2771:19161:92;;2391:66:70;;8521:27;;8594:43;8608:29;;;:::i;:::-;2771:19161:92;;2391:66:70;;8594:43;8656:10;8663:3;8656:10;;8663:3;;-1:-1:-1;;;2771:19161:92;;;;8652:83:70;-1:-1:-1;;2391:66:70;2771:19161:92;;8805:196:70;;;;;;;2771:19161:92;8805:196:70;;9014;;;8805;9014;;2771:19161:92;9014:196:70;;9223;;;8805;9223;;2771:19161:92;9223:196:70;;9432;;;8805;9432;;2771:19161:92;9432:196:70;;9641;;;8805;9641;;2771:19161:92;9641:196:70;;9850;;;8805;9850;;2771:19161:92;9850:196:70;;10059;;;;8805;10059;;2771:19161:92;10059:196:70;;10268;;;;8805;10268;;2771:19161:92;10268:196:70;;10477;;;;8805;10477;;2771:19161:92;10477:196:70;;10686;;;;8805;10686;;2771:19161:92;10686:196:70;;10895;;;;8805;10895;;2771:19161:92;10895:196:70;;11104;;;;8805;11104;;2771:19161:92;11104:196:70;;11313;;;;;8805;11313;;2771:19161:92;11313:196:70;;11522:165;;;;;;11313:196;;;;;11104;;;;;10895;;;;;10686;;;;;10477;;;;;10268;2771:19161:92;10268:196:70;;;;;;10059;2771:19161:92;10059:196:70;;;;;;9850;2771:19161:92;9850:196:70;;;;;;9641;2771:19161:92;9641:196:70;;;;;;9432;2771:19161:92;9432:196:70;;;;;;9223;2771:19161:92;9223:196:70;;;;;;9014;2771:19161:92;9014:196:70;;;;;;8805;2771:19161:92;8805:196:70;;;;;;;9014;9223;9432;9641;9850;10059;10268;10477;10686;10895;11104;11313;11522:165;11732:24;2391:66;;;;;11932:62;;2771:19161:92;2391:66:70;;;11932:62;2771:19161:92;;2391:66:70;12346:39;2391:66;2771:19161:92;2391:66:70;2771:19161:92;;12416:163:70;2771:19161:92;;;;;;12416:17:70;:163;:17;;;:163;;;7772:4824;:::o;12416:163::-;-1:-1:-1;;;;;12478:26:70;;;:::i;:::-;2771:19161:92;12478:42:70;:101;;;7772:4824;:::o;12478:101::-;;;2771:19161:92;:::o;8652:83:70:-;2771:19161:92;;;8725:3:70;2771:19161:92;;8652:83:70;;;8323:168;8463:12;:::i;2771:19161:92:-;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;-1:-1:-1;;2771:19161:92;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;7790:949:58:-;;;;7908:825;;;2771:19161:92;;;;7978:8:58;7974:349;2771:19161:92;;;8117:38:58;8118:18;:22;:18;;8116:54;8118:18;;:::i;:::-;:22;:::i;:::-;8117:38;:::i;:::-;8116:54;:::i;7974:349::-;8275:18;;8274:34;8275:18;;:::i;7908:825::-;2771:19161:92;;;;;8393:8:58;8389:334;2771:19161:92;;;8519:18:58;;;8518:34;8519:18;;:::i;8389:334::-;8656:18;;;;:::i;:::-;2771:19161:92;;-1:-1:-1;;2771:19161:92;;-1:-1:-1;;2771:19161:92;;;;;;;;8655:38:58;;8654:54;8655:38;;:::i;2533:168:70:-;2771:19161:92;;;1434:6:70;;;;;;;2771:19161:92;;2533:168:70;:::o;3508:1663:22:-;3741:1424;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;;;3741:1424:22;;;;;;;;;2771:19161:92;3741:1424:22;2771:19161:92;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;;;4268:28:36;;;3741:1424:22;;;;;;;3508:1663;3741:1424;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;2771:19161:92;3741:1424:22;2771:19161:92;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:36;;;3741:1424:22;;;;;;;2771:19161:92;;;;:::o;:::-;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;8370:720:6;;-1:-1:-1;8507:421:6;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:6;;8942:15;;-1:-1:-1;;;;;;2771:19161:92;;8960:26:6;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;-1:-1:-1;;;;9033:40:6;;;-1:-1:-1;;;;;2771:19161:92;;;;9033:40:6;2771:19161:92;;;9033:40:6;8942:68;9009:1;8994:16;;8942:68;;1793:259:64;-1:-1:-1;;;1869:177:64;;;;-1:-1:-1;;;;;1869:177:64;;;;;;;;;769:648:63;858:5;;2771:19161:92;;875:536:63;;;-1:-1:-1;;;;;875:536:63;-1:-1:-1;875:536:63;;;;;-1:-1:-1;;;;;875:536:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:648::o;3258:4054:70:-;3406:459;;;;;;;;;;1434:6;3883:35;;3879:78;;6533:763;4465:13;;4492:160;;;;;2771:19161:92;4492:160:70;;;4669:13;3406:459;4669:13;;4665:83;;3258:4054;4776:3;4766:13;;4762:83;;3258:4054;4873:3;4863:13;;4859:83;;3258:4054;4970:4;4960:14;;4956:84;;3258:4054;5068:4;5058:14;;5054:84;;3258:4054;5166:4;5156:14;;5152:84;;3258:4054;4492:160;5254:14;;5250:84;;3258:4054;5362:5;5352:15;;5348:85;;3258:4054;5461:5;5451:15;;5447:85;;3258:4054;5560:5;5550:15;;5546:85;;3258:4054;5659:5;5649:15;;5645:85;;3258:4054;5758:6;5748:16;;5744:86;;3258:4054;5858:6;5848:16;;5844:86;;3258:4054;5958:6;5948:16;;5944:86;;3258:4054;6058:6;6048:16;;6044:86;;3258:4054;6158:7;6148:17;;6144:86;;3258:4054;6258:7;6248:17;;6244:85;;3258:4054;6357:7;6347:17;;6343:83;;3258:4054;6454:7;6444:17;6440:78;;3258:4054;-1:-1:-1;;6533:763:70;;3258:4054;6533:763;5068:4;6533:763;3258:4054;:::o;6533:763::-;-1:-1:-1;;6533:763:70;;;6440:78;6485:25;2771:19161:92;;;;;;6440:78:70;;6343:83;6388:30;2771:19161:92;;;;;;6343:83:70;;6244:85;2771:19161:92;6289:32:70;2771:19161:92;;;6244:85:70;;;6144:86;2771:19161:92;6189:33:70;2771:19161:92;;;6144:86:70;;;6044;2771:19161:92;6088:34:70;2771:19161:92;;;6044:86:70;;;5944;2771:19161:92;5988:34:70;2771:19161:92;;;5944:86:70;;;5844;2771:19161:92;5888:34:70;2771:19161:92;;;5844:86:70;;;5744;2771:19161:92;5788:34:70;2771:19161:92;;;5744:86:70;;;5645:85;2771:19161:92;5688:34:70;2771:19161:92;;;5645:85:70;;;5546;2771:19161:92;5589:34:70;2771:19161:92;;;5546:85:70;;;5447;2771:19161:92;5490:34:70;2771:19161:92;;;5447:85:70;;;5348;2771:19161:92;5391:34:70;2771:19161:92;;;5348:85:70;;;5250:84;2771:19161:92;5292:34:70;2771:19161:92;;;5250:84:70;;;5152;2771:19161:92;5194:34:70;2771:19161:92;;;5152:84:70;;;5054;2771:19161:92;5096:34:70;2771:19161:92;;;5054:84:70;;;4956;2771:19161:92;4998:34:70;2771:19161:92;;;4956:84:70;;;4859:83;2771:19161:92;4900:34:70;2771:19161:92;;;4859:83:70;;;4762;2771:19161:92;4803:34:70;2771:19161:92;;;4762:83:70;;;4665;2771:19161:92;4706:34:70;2771:19161:92;;;4665:83:70;;;3879:78;3952:4;3920:20;;;1552:143:64;;;;;;;;","linkReferences":{},"immutableReferences":{"16555":[{"start":1895,"length":32},{"start":2700,"length":32},{"start":3976,"length":32},{"start":5757,"length":32},{"start":6321,"length":32},{"start":6899,"length":32},{"start":7515,"length":32},{"start":7722,"length":32},{"start":7902,"length":32}],"16559":[{"start":992,"length":32},{"start":7069,"length":32},{"start":7306,"length":32},{"start":9222,"length":32}],"16563":[{"start":1496,"length":32},{"start":2019,"length":32}],"16567":[{"start":1802,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","getLimitOrderConfig()":"e3e8580c","msgSender()":"d737d0c7","owner()":"8da5cb5b","pendingOwner()":"e30c3978","poolManager()":"dc4c90d3","renounceOwnership()":"715018a6","setLimitOrderConfig((uint256[],uint256[]))":"18ed2974","swapRouter()":"c31c9c07","swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":"c48677f4","transferOwnership(address)":"f2fde38b","unlockCallback(bytes)":"91dd7346","zoraLimitOrderBook()":"6baaa167"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"zoraLimitOrderBook_\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"swapRouter_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permit2_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyV4Route\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientInputCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLimitOrderConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMultiple\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPercent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPoolManager\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsafeCast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"V3RouteDoesNotConnectToV4RouteStart\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroSwapDelta\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"name\":\"LimitOrderConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"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\"}],\"indexed\":false,\"internalType\":\"struct PoolKey\",\"name\":\"poolKey\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickBeforeSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickAfterSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount0\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount1\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"multiple\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct SwapWithLimitOrders.CreatedOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"SwapWithLimitOrdersExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLimitOrderConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setLimitOrderConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"limitOrderConfig\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"inputCurrency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"v3Route\",\"type\":\"bytes\"},{\"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\":\"v4Route\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct SwapWithLimitOrders.SwapWithLimitOrdersParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swapWithLimitOrders\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraLimitOrderBook\",\"outputs\":[{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"oveddan\",\"details\":\"This contract uses the poolManager unlock/callback pattern to execute swaps, place limit orders based on the tick range crossed during the swap, and attempt to fill those orders in a single transaction. Users call swapWithLimitOrders() directly, which triggers the unlock callback flow. Uses Permit2 for token approvals, matching the universal-router pattern.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"params\":{\"amount0\":\"The amount of currency0 swapped (negative = paid, positive = received)\",\"amount1\":\"The amount of currency1 swapped (negative = paid, positive = received)\",\"orders\":\"Array of created orders with their configuration. Only includes orders that were actually created (skipped rungs due to rounding are omitted).\",\"sqrtPriceX96\":\"The sqrt price after the swap, used for USD price computation\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"params\":{\"owner_\":\"The owner address\",\"permit2_\":\"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)\",\"poolManager_\":\"The Uniswap V4 pool manager\",\"swapRouter_\":\"The Uniswap V3 swap router\",\"zoraLimitOrderBook_\":\"The limit order book contract\"}},\"getLimitOrderConfig()\":{\"returns\":{\"_0\":\"The current limit order configuration\"}},\"msgSender()\":{\"returns\":{\"_0\":\"The address of the message sender.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"details\":\"Only callable by the owner\",\"params\":{\"config\":\"The new limit order configuration\"}},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"params\":{\"params\":\"The swap and limit order parameters\"},\"returns\":{\"delta\":\"The balance delta from the swap\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"unlockCallback(bytes)\":{\"details\":\"This function executes V4 swaps and settles coins to recipient\",\"params\":{\"data\":\"Encoded CallbackData\"},\"returns\":{\"_0\":\"Encoded UnlockResult containing coin amount and pool info\"}}},\"title\":\"SwapWithLimitOrders\",\"version\":1},\"userdoc\":{\"errors\":{\"EmptyV4Route()\":[{\"notice\":\"Error thrown when v4Route is empty\"}],\"InsufficientOutputAmount()\":[{\"notice\":\"Error thrown when final swap output is below minimum\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidLimitOrderConfig()\":[{\"notice\":\"Error thrown when config does not match canonical config\"}],\"InvalidMultiple()\":[{\"notice\":\"A multiple is \\u2264 1.0x\"}],\"InvalidPercent()\":[{\"notice\":\"A percentage is zero\"}],\"LengthMismatch()\":[{\"notice\":\"Multiples and percentages arrays have different lengths\"}],\"OnlyPoolManager()\":[{\"notice\":\"Error thrown when caller is not the pool manager\"}],\"PercentOverflow()\":[{\"notice\":\"Percentages sum exceeds 100%\"}],\"UnsafeCast()\":[{\"notice\":\"Thrown when a valude greater than type(uint160).max is cast to uint160\"}],\"ZeroSwapDelta()\":[{\"notice\":\"Error thrown when swap delta is zero\"}]},\"events\":{\"LimitOrderConfigUpdated(uint256[],uint256[])\":{\"notice\":\"Emitted when limit order config is updated\"},\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"notice\":\"Emitted when a swap with limit order placement is executed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor\"},\"getLimitOrderConfig()\":{\"notice\":\"Returns the current limit order configuration\"},\"msgSender()\":{\"notice\":\"Returns the address of the message sender.\"},\"poolManager()\":{\"notice\":\"The Uniswap V4 pool manager\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"notice\":\"Sets the canonical limit order configuration\"},\"swapRouter()\":{\"notice\":\"The Uniswap V3 swap router\"},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"notice\":\"Executes a swap with automatic limit order placement and filling\"},\"unlockCallback(bytes)\":{\"notice\":\"Callback function called by the pool manager during unlock\"},\"zoraLimitOrderBook()\":{\"notice\":\"The limit order book contract\"}},\"notice\":\"Standalone router contract that executes swaps with automatic limit order placement and filling.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/router/SwapWithLimitOrders.sol\":\"SwapWithLimitOrders\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol\":{\"keccak256\":\"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4\",\"dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol\":{\"keccak256\":\"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace\",\"dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85\",\"dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol\":{\"keccak256\":\"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a\",\"dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0xa882ec8dc341d8a2651112ee0aa105480d0e306d547a81f05a1fb2d64d6ccb8f\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://e9482377d0c678640fdb3b0c5c5c9086bc2d17538693fedfbc0fc184b4d100dc\",\"dweb:/ipfs/Qmbgq8ZP5qtM9pwqLeLAiGD9ic8Zs6bqS8WpkjVnqnkPpt\"]},\"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol\":{\"keccak256\":\"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b\",\"dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx\"]},\"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol\":{\"keccak256\":\"0x02cf5e8af66c30bc6ec17d437a3a05fc76854abde7ca41220a1f15e1bbd974d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9bf15fb84592bd11ac9abeed5313f0942066fdafa2f08f41af69c87999aef7ee\",\"dweb:/ipfs/QmSbuxp5xuRExMUKQnYV1rjqQzjuGNHVbXddxwSqWT6GaD\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol\":{\"keccak256\":\"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070\",\"dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol\":{\"keccak256\":\"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a\",\"dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol\":{\"keccak256\":\"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298\",\"dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":{\"keccak256\":\"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74\",\"dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol\":{\"keccak256\":\"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7\",\"dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol\":{\"keccak256\":\"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c\",\"dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol\":{\"keccak256\":\"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485\",\"dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9\",\"dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol\":{\"keccak256\":\"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14\",\"dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol\":{\"keccak256\":\"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4\",\"dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b\",\"dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px\"]},\"src/libs/SwapLimitOrders.sol\":{\"keccak256\":\"0xcffca6d7061453cbdb2918f800ce40566d375c43ad17756430f4ec43bdc69934\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://d4dab36d3f9c53457533a42783282bb50437066fcf2ecacf374b08918190b906\",\"dweb:/ipfs/QmfNtG6LERr8woggizhEAnUYXS4Uh3VyainizJc32nP7JD\"]},\"src/router/ISetLimitOrderConfig.sol\":{\"keccak256\":\"0x0aa4874d3640a56782781c2822639c39b12f3267906eb3b093e3de4e38e2d054\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://286bf6d6893ae7c02e9a4e44de4cb6d60b8bc9a50248c08f3b325756dc34fdc8\",\"dweb:/ipfs/QmeKMiRmtCdZ4jRpfSxVySqchmRgW7SqUVxoqXBGQqB3UU\"]},\"src/router/SwapWithLimitOrders.sol\":{\"keccak256\":\"0xae6f4149540b54adfd44997a3ed58723338152aba73ab91365a84bbef0026772\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://0f8defdadc9d3ce36828f5a4cff8f6654a8597f27d6ce612c2e70af5c05df3e5\",\"dweb:/ipfs/QmQQaf9er45W8Ntdg2B3BiLyUCN7n9hcP1PeJzcLHQVRTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"contract IZoraLimitOrderBook","name":"zoraLimitOrderBook_","type":"address"},{"internalType":"contract ISwapRouter","name":"swapRouter_","type":"address"},{"internalType":"address","name":"permit2_","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EmptyV4Route"},{"inputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"availableAmount","type":"uint256"}],"type":"error","name":"InsufficientInputCurrency"},{"inputs":[],"type":"error","name":"InsufficientOutputAmount"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[],"type":"error","name":"InvalidLimitOrderConfig"},{"inputs":[],"type":"error","name":"InvalidMultiple"},{"inputs":[],"type":"error","name":"InvalidPercent"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"OnlyPoolManager"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PercentOverflow"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnsafeCast"},{"inputs":[],"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart"},{"inputs":[],"type":"error","name":"ZeroSwapDelta"},{"inputs":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"percentages","type":"uint256[]","indexed":false}],"type":"event","name":"LimitOrderConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"struct PoolKey","name":"poolKey","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"}],"indexed":false},{"internalType":"int24","name":"tickBeforeSwap","type":"int24","indexed":false},{"internalType":"int24","name":"tickAfterSwap","type":"int24","indexed":false},{"internalType":"int128","name":"amount0","type":"int128","indexed":false},{"internalType":"int128","name":"amount1","type":"int128","indexed":false},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint256","name":"multiple","type":"uint256"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"indexed":false}],"type":"event","name":"SwapWithLimitOrdersExecuted","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"getLimitOrderConfig","outputs":[{"internalType":"struct LimitOrderConfig","name":"","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"msgSender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct LimitOrderConfig","name":"config","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}],"stateMutability":"nonpayable","type":"function","name":"setLimitOrderConfig"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct LimitOrderConfig","name":"limitOrderConfig","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]},{"internalType":"address","name":"inputCurrency","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"bytes","name":"v3Route","type":"bytes"},{"internalType":"struct PoolKey[]","name":"v4Route","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":"minAmountOut","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"swapWithLimitOrders","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraLimitOrderBook","outputs":[{"internalType":"contract IZoraLimitOrderBook","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"params":{"owner_":"The owner address","permit2_":"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)","poolManager_":"The Uniswap V4 pool manager","swapRouter_":"The Uniswap V3 swap router","zoraLimitOrderBook_":"The limit order book contract"}},"getLimitOrderConfig()":{"returns":{"_0":"The current limit order configuration"}},"msgSender()":{"returns":{"_0":"The address of the message sender."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setLimitOrderConfig((uint256[],uint256[]))":{"details":"Only callable by the owner","params":{"config":"The new limit order configuration"}},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"params":{"params":"The swap and limit order parameters"},"returns":{"delta":"The balance delta from the swap"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"unlockCallback(bytes)":{"details":"This function executes V4 swaps and settles coins to recipient","params":{"data":"Encoded CallbackData"},"returns":{"_0":"Encoded UnlockResult containing coin amount and pool info"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor"},"getLimitOrderConfig()":{"notice":"Returns the current limit order configuration"},"msgSender()":{"notice":"Returns the address of the message sender."},"poolManager()":{"notice":"The Uniswap V4 pool manager"},"setLimitOrderConfig((uint256[],uint256[]))":{"notice":"Sets the canonical limit order configuration"},"swapRouter()":{"notice":"The Uniswap V3 swap router"},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"notice":"Executes a swap with automatic limit order placement and filling"},"unlockCallback(bytes)":{"notice":"Callback function called by the pool manager during unlock"},"zoraLimitOrderBook()":{"notice":"The limit order book contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/router/SwapWithLimitOrders.sol":"SwapWithLimitOrders"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol":{"keccak256":"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c","urls":["bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4","dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol":{"keccak256":"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa","urls":["bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace","dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol":{"keccak256":"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1","urls":["bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85","dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol":{"keccak256":"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389","urls":["bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a","dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0xa882ec8dc341d8a2651112ee0aa105480d0e306d547a81f05a1fb2d64d6ccb8f","urls":["bzz-raw://e9482377d0c678640fdb3b0c5c5c9086bc2d17538693fedfbc0fc184b4d100dc","dweb:/ipfs/Qmbgq8ZP5qtM9pwqLeLAiGD9ic8Zs6bqS8WpkjVnqnkPpt"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol":{"keccak256":"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683","urls":["bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b","dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol":{"keccak256":"0x02cf5e8af66c30bc6ec17d437a3a05fc76854abde7ca41220a1f15e1bbd974d3","urls":["bzz-raw://9bf15fb84592bd11ac9abeed5313f0942066fdafa2f08f41af69c87999aef7ee","dweb:/ipfs/QmSbuxp5xuRExMUKQnYV1rjqQzjuGNHVbXddxwSqWT6GaD"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol":{"keccak256":"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d","urls":["bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070","dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol":{"keccak256":"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4","urls":["bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a","dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol":{"keccak256":"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a","urls":["bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298","dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":{"keccak256":"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75","urls":["bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74","dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol":{"keccak256":"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e","urls":["bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7","dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol":{"keccak256":"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84","urls":["bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c","dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol":{"keccak256":"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64","urls":["bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485","dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol":{"keccak256":"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1","urls":["bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9","dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol":{"keccak256":"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326","urls":["bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14","dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol":{"keccak256":"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff","urls":["bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4","dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4"],"license":"GPL-2.0-or-later"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18","urls":["bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b","dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/SwapLimitOrders.sol":{"keccak256":"0xcffca6d7061453cbdb2918f800ce40566d375c43ad17756430f4ec43bdc69934","urls":["bzz-raw://d4dab36d3f9c53457533a42783282bb50437066fcf2ecacf374b08918190b906","dweb:/ipfs/QmfNtG6LERr8woggizhEAnUYXS4Uh3VyainizJc32nP7JD"],"license":"ZORA-DELAYED-OSL-v1"},"src/router/ISetLimitOrderConfig.sol":{"keccak256":"0x0aa4874d3640a56782781c2822639c39b12f3267906eb3b093e3de4e38e2d054","urls":["bzz-raw://286bf6d6893ae7c02e9a4e44de4cb6d60b8bc9a50248c08f3b325756dc34fdc8","dweb:/ipfs/QmeKMiRmtCdZ4jRpfSxVySqchmRgW7SqUVxoqXBGQqB3UU"],"license":"MIT"},"src/router/SwapWithLimitOrders.sol":{"keccak256":"0xae6f4149540b54adfd44997a3ed58723338152aba73ab91365a84bbef0026772","urls":["bzz-raw://0f8defdadc9d3ce36828f5a4cff8f6654a8597f27d6ce612c2e70af5c05df3e5","dweb:/ipfs/QmQQaf9er45W8Ntdg2B3BiLyUCN7n9hcP1PeJzcLHQVRTo"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":92}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"contract IPoolManager"},{"name":"zoraLimitOrderBook_","type":"address","internalType":"contract IZoraLimitOrderBook"},{"name":"swapRouter_","type":"address","internalType":"contract ISwapRouter"},{"name":"permit2_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"contractVersion","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"getLimitOrderConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimitOrderConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISwapRouter"}],"stateMutability":"view"},{"type":"function","name":"swapWithLimitOrders","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"limitOrderConfig","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]},{"name":"inputCurrency","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"v3Route","type":"bytes","internalType":"bytes"},{"name":"v4Route","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":"minAmountOut","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"delta","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"payable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"zoraLimitOrderBook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraLimitOrderBook"}],"stateMutability":"view"},{"type":"event","name":"LimitOrderConfigUpdated","inputs":[{"name":"multiples","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SwapWithLimitOrdersExecuted","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"poolKey","type":"tuple","indexed":false,"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":"tickBeforeSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"tickAfterSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"amount0","type":"int128","indexed":false,"internalType":"int128"},{"name":"amount1","type":"int128","indexed":false,"internalType":"int128"},{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"orders","type":"tuple[]","indexed":false,"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","components":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"multiple","type":"uint256","internalType":"uint256"},{"name":"percentage","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"EmptyV4Route","inputs":[]},{"type":"error","name":"InsufficientInputCurrency","inputs":[{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"availableAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientOutputAmount","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidLimitOrderConfig","inputs":[]},{"type":"error","name":"InvalidMultiple","inputs":[]},{"type":"error","name":"InvalidPercent","inputs":[]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"OnlyPoolManager","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PercentOverflow","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnsafeCast","inputs":[]},{"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart","inputs":[]},{"type":"error","name":"ZeroSwapDelta","inputs":[]}],"bytecode":{"object":"0x610100346102e157601f613aa538819003918201601f19168301916001600160401b038311848410176102e55780849260a0946040528339810103126102e1578051906001600160a01b038216908183036102e15760208101516001600160a01b038116929091908383036102e1576040820151936001600160a01b038516918286036102e157610092606085016102f9565b936001600160a01b03906100a8906080016102f9565b169081156102ce57600180546001600160a01b03199081169091555f80549182168417815560405193916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a31561028c57501561023d57156101f8576001600160a01b03169283156101b35760805260a05260c05260e052604051613797908161030e82396080518181816107be01528181610ae301528181610fdf015281816116d40152818161190801528181611b4a01528181611db201528181611e810152611f35015260a0518181816103f001528181611bf401528181611ce1015261245d015260c05181818161062f015261083a015260e051816107610152f35b60405162461bcd60e51b815260206004820152601660248201527f5065726d6974322063616e6e6f74206265207a65726f000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f53776170526f757465722063616e6e6f74206265207a65726f000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602160248201527f5a6f72614c696d69744f72646572426f6f6b2063616e6e6f74206265207a65726044820152606f60f81b6064820152608490fd5b62461bcd60e51b815260206004820152601a60248201527f506f6f6c4d616e616765722063616e6e6f74206265207a65726f0000000000006044820152606490fd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102e15756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100f95780636baaa167146100f4578063715018a6146100ef57806379ba5097146100ea5780638da5cb5b146100e557806391dd7346146100e0578063a0a8e460146100db578063c31c9c07146100d6578063c48677f4146100d1578063d737d0c7146100cc578063dc4c90d3146100c7578063e30c3978146100c2578063e3e8580c146100bd5763f2fde38b0361000e57610c4f565b610b97565b610b12565b610ace565b610a9c565b61065e565b61061a565b6105d3565b610566565b610507565b610482565b61041f565b6103db565b61028f565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761012d57604052565b6100fe565b60a081019081106001600160401b0382111761012d57604052565b606081019081106001600160401b0382111761012d57604052565b90601f801991011681019081106001600160401b0382111761012d57604052565b60405190610198608083610168565b565b6040519061019860c083610168565b60405190610198606083610168565b6001600160401b03811161012d5760051b60200190565b9080601f8301121561022c5781356101e6816101b8565b926101f46040519485610168565b81845260208085019260051b82010192831161022c57602001905b82821061021c5750505090565b813581526020918201910161020f565b5f80fd5b919060408382031261022c576040519061024982610112565b819380356001600160401b03811161022c57826102679183016101cf565b83526020810135916001600160401b03831161022c5760209261028a92016101cf565b910152565b3461022c57602036600319011261022c576004356001600160401b03811161022c576102bf903690600401610230565b6102c761152a565b6102d081611593565b5080518051906001600160401b03821161012d57600160401b821161012d576002548260025580831061038d575b5060025f526020017f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f5b838110610379577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c8560208101906103618251610cd7565b5190519061037460405192839283610d92565b0390a1005b600190602084519401938184015501610329565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083015b8181106103c657506102fe565b5f81556001016103b9565b5f91031261022c57565b3461022c575f36600319011261022c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022c575f36600319011261022c5761043761152a565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461022c575f36600319011261022c57600154336001600160a01b03909116036104f457600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461022c575f36600319011261022c575f546040516001600160a01b039091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061056392818152019061052e565b90565b3461022c57602036600319011261022c576004356001600160401b03811161022c573660238201121561022c578060040135906001600160401b03821161022c57366024838301011161022c576105cf9160246105c39201610fdd565b60405191829182610552565b0390f35b3461022c575f36600319011261022c576105cf6040516105f4604082610168565b6005815264181719171b60d91b602082015260405191829160208352602083019061052e565b3461022c575f36600319011261022c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602036600319011261022c576004356001600160401b03811161022c578060040160e0600319833603011261022c5761069681611103565b5f5160206137775f395f51905f525d60248201906106b4828261110d565b6106bd90611122565b6106c690611593565b506106d1828261110d565b6106da90611122565b6106e39061203a565b60a483016106f1818361112d565b6106fd91501515611162565b608484019261070c8484611178565b9590604482019661071c88611103565b90610727868861112d565b9390913690610735926111aa565b92369061074192610e3a565b9061074b926120f0565b61075486611103565b91606482013592343033867f00000000000000000000000000000000000000000000000000000000000000009461078a9561217a565b610794848661112d565b61079e868861112d565b6107a891506111e0565b906107b292611207565b6107bb9061121c565b967f00000000000000000000000000000000000000000000000000000000000000009360a089206107ec908661222f565b5050986107fa915088611178565b9261080490611103565b9061080d610189565b933690610819926111aa565b83526001600160a01b03166020830152604082015230606082015261085e907f0000000000000000000000000000000000000000000000000000000000000000612322565b9061086887611103565b95610873908861112d565b9460c4013593610883908961110d565b9461088c61019a565b6001600160a01b03909816885236906108a492610e3a565b602087015260408601526001600160a01b031660608501526080840152366108cb91610230565b60a0830152604051809260208201906108e39161126a565b03601f19810183526108f59083610168565b6040516348c8949160e01b815291829081906109149060048301610552565b6001600160a01b039093169203815a5f948591f18015610a7557610949915f91610a7a575b50602080825183010191016113a4565b925090959261097661096a61096a61096a608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa928315610a75577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f6096610a08946109e7925f91610a46575b501580610a36575b610a2657611103565b9360405195869560018060a01b031699339983600f0b9360801d928861148c565b0390a35f5f5160206137775f395f51905f525d6040515f8152602090f35b610a318a8a8961244c565b611103565b508960020b8960020b14156109de565b610a68915060203d602011610a6e575b610a608183610168565b810190611478565b5f6109d6565b503d610a56565b611376565b610a9691503d805f833e610a8e8183610168565b810190611314565b5f610939565b3461022c575f36600319011261022c576040516001600160a01b035f5160206137775f395f51905f525c168152602090f35b3461022c575f36600319011261022c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022c575f36600319011261022c576001546040516001600160a01b039091168152602090f35b90602080835192838152019201905f5b818110610b575750505090565b8251845260209384019390920191600101610b4a565b610563916020610b868351604084526040840190610b3a565b920151906020818403910152610b3a565b3461022c575f36600319011261022c5760606020604051610bb781610112565b8281520152604051610bc881610112565b60405190600254808352602083019060025f5260205f20905f5b818110610c1d576105cf8587610bfa81880382610168565b8152610c046114e2565b6020820152604051918291602083526020830190610b6d565b8254845260209093019260019283019201610be2565b6001600160a01b0381160361022c57565b359061019882610c33565b3461022c57602036600319011261022c57600435610c6c81610c33565b610c7461152a565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b634e487b7160e01b5f52601160045260245ffd5b8051906001600160401b03821161012d57600160401b821161012d5760035482600355808310610d4e575b5060035f526020017fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f5b838110610d3a5750505050565b600190602084519401938184015501610d2d565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019083015b818110610d875750610d02565b5f8155600101610d7a565b9091610da961056393604084526040840190610b3a565b916020818403910152610b3a565b8060020b0361022c57565b91908260a091031261022c57604051610dda81610132565b80928035610de781610c33565b82526020810135610df781610c33565b6020830152604081013562ffffff8116810361022c57608091829160408501526060810135610e2581610db7565b6060850152013591610e3683610c33565b0152565b90929192610e47816101b8565b93610e556040519586610168565b60a060208684815201920283019281841161022c57915b838310610e795750505050565b602060a091610e888486610dc2565b815201920191610e6c565b9080601f8301121561022c5781602061056393359101610e3a565b60208183031261022c578035906001600160401b03821161022c570160c08183031261022c57610edc61019a565b91610ee682610c44565b835260208201356001600160401b03811161022c5781610f07918401610e93565b602084015260408201356040840152610f2260608301610c44565b60608401526080820135608084015260a08201356001600160401b03811161022c57610f4e9201610230565b60a082015290565b90602080835192838152019201905f5b818110610f735750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610f66565b919594939092610fbb60809460a0855260a0850190610f56565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110d95761101991810190610eae565b61056361102582611667565b6110cb61108f6110b96040611051602088015161104b602088015160018060a01b031690565b906118a9565b969193909861105f856118ff565b9690958b8789611075885160018060801b031690565b60a0870151875190948f916001600160a01b031696611b10565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611d9d565b01519160405196879560208701610fa1565b03601f198101835282610168565b63f655705d60e01b5f5260045ffd5b6001600160401b03811161012d57601f01601f191660200190565b3561056381610c33565b903590603e198136030182121561022c570190565b610563903690610230565b903590601e198136030182121561022c57018035906001600160401b03821161022c576020019160a082023603831361022c57565b1561116957565b63cbd130a960e01b5f5260045ffd5b903590601e198136030182121561022c57018035906001600160401b03821161022c5760200191813603831361022c57565b9291926111b6826110e8565b916111c46040519384610168565b82948184528183011161022c578281602093845f960137010152565b5f198101919082116111ee57565b610cc3565b634e487b7160e01b5f52603260045260245ffd5b91908110156112175760a0020190565b6111f3565b610563903690610dc2565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b8181106112f45750505060a08460406105639596015160608401526112d76060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f1982850301910152610b6d565b909193602060a0826113096001948951611227565b0195019291016112a3565b60208183031261022c578051906001600160401b03821161022c570181601f8201121561022c57805190611347826110e8565b926113556040519485610168565b8284526020838301011161022c57815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b5190811515820361022c57565b519061019882610db7565b519061019882610c33565b9060a08282031261022c5781516001600160401b03811161022c57820181601f8201121561022c578051906113d8826101b8565b926113e66040519485610168565b8284526020606081860194028301019181831161022c57602001925b82841061143c57505050509161141a60208301611381565b916114276040820161138e565b91608061143660608401611399565b92015190565b60608483031261022c5760206060916040516114578161014d565b86518152828701518382015260408701516040820152815201930192611402565b9081602091031261022c5761056390611381565b93909261016095926114a3866105639a9996611227565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610f56565b60405190600354808352826020810160035f5260205f20925f5b81811061151157505061019892500383610168565b84548352600194850194879450602090930192016114fc565b5f546001600160a01b031633036104f457565b80518210156112175760209160051b010190565b1561155857565b635c974e3d60e11b5f5260045ffd5b1561156e57565b63b29d78b760e01b5f5260045ffd5b1561158457565b63d88409d360e01b5f5260045ffd5b8051515f929181151580611625575b1561161657905f915b8183106115c35750505061019861271083111561157d565b90919360019061160b86602085016115e76115df83835161153d565b511515611551565b611605670de0b6b3a76400006115fe84895161153d565b5111611567565b5161153d565b5101940191906115ab565b631fec674760e31b5f5260045ffd5b5060208101515182146115a2565b604051906116408261014d565b5f6040838281528260208201520152565b1561165857565b6342301c2360e01b5f5260045ffd5b61166f611633565b50602081015190604081015160018060a01b0360608301511693604051936116968561014d565b845260208401918252604084019485526116d06116c26116b4611633565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561185c575091602061175599949261178c61174161172b8b6117a79a9861153d565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b6124e2565b8215611841576401000276a4905b61177561176e6101a9565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b835285600484016124f9565b03815f8a5af1948515610a75575f9561180e575b50600190858a156117ff57828060801b03165b99156117f057602001516001600160a01b03165b960195919397909297611701565b516001600160a01b03166117e2565b60801d828060801b03166117ce565b60019195506118339060203d811161183a575b61182b8183610168565b810190612220565b94906117bb565b503d611821565b73fffd8963efd1fc6a506488495d951d5263988d2590611763565b6001600160801b039092168952509295506101989450909250611889906001600160a01b03166020870152565b60408501528351608091909101516001600160801b039091161015611651565b9190915f60806040516118bb81610132565b828152826020820152826040820152826060820152015280515f1981019081116111ee576118e89161153d565b51805190926001600160a01b039081169116811491565b60a061192c91207f000000000000000000000000000000000000000000000000000000000000000061222f565b50509091565b60405190608082018281106001600160401b0382111761012d57604052606080838181528160208201528160408201520152565b60405190611975602083610168565b5f80835282815b82811061198857505050565b602090611993611633565b8282850101520161197c565b906119a9826101b8565b6119b66040519182610168565b82815280926119c7601f19916101b8565b01905f5b8281106119d757505050565b6020906119e2611633565b828285010152016119cb565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b60208183031261022c578051906001600160401b03821161022c57019080601f8301121561022c578151611a4b816101b8565b92611a596040519485610168565b81845260208085019260051b82010192831161022c57602001905b828210611a815750505090565b8151815260209182019101611a74565b959493929091611aa487611abe94611227565b151560a087015261012060c0870152610120860190610b3a565b84810360e0860152602080835192838152019201905f5b818110611af7575050506001600160a01b039091166101009390930192909252565b825160020b845260209384019390920191600101611ad5565b959193611b2c939897959198611b24611932565b5089886125a5565b94919496855151151580611d8b575b15611d79576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b1561022c575f6040518096630b0d9c0960e01b8252818381611b96893089600485016119ee565b03925af1948515610a75575f95611d5f575b5080151592838614611d585785935b611cca575b5050855192611be760208801519660405197889687958695633ac1fb4960e21b875260048701611a91565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a75575f91611ca8575b50611c37815161199f565b935f5b8251811015611ca15780611c506001928561153d565b51611c5f82604088015161153d565b51611c6e83606089015161153d565b5190611c786101a9565b92835260208301526040820152611c8f828961153d565b52611c9a818861153d565b5001611c3a565b5092915050565b611cc491503d805f833e611cbc8183610168565b810190611a18565b5f611c2c565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af1938415610a75575f94611d39575b80611bbc565b611d519060203d602011610a6e57610a608183610168565b505f611d33565b8093611bb7565b80611d6d87611d7393610168565b806103d1565b5f611ba8565b50505050505090611d88611966565b91565b506001600160801b0382161515611b3b565b9192916001600160a01b0316908115611f32577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561022c57604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af1938415610a7557611e44602094611e4a935f97611f1e575b50611e3e85611e2d8186612cb5565b94611e39848383612d1d565b612cb5565b926127ae565b146127bb565b600460405180948193630476982d60e21b83525af18015610a7557611eff575b505b6001600160801b038116611e7f57505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561022c57604051630b0d9c0960e01b8152935f938593849286928492611ee09290916001600160a01b0316600485016119ee565b03925af18015610a7557611ef15750565b80611d6d5f61019893610168565b611f179060203d60201161183a5761182b8183610168565b505f611e6a565b80611d6d89611f2c93610168565b5f611e1e565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561022c57604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af1918215610a7557602092611fe0575b50600460405180948193630476982d60e21b83525af18015610a7557611fc1575b50611e6c565b611fd99060203d60201161183a5761182b8183610168565b505f611fbb565b80611d6d5f611fee93610168565b5f611f9a565b15611ffb57565b636741e8e960e11b5f5260045ffd5b6002548110156112175760025f5260205f2001905f90565b6003548110156112175760035f5260205f2001905f90565b6002549081156120d6578181515114806120c8575b61205890611ff4565b5f5b82811061206657505050565b80612074600192845161153d565b5161208b6120818361200a565b90549060031b1c90565b14806120a1575b61209b90611ff4565b0161205a565b5061209b6120b382602086015161153d565b516120c061208184612022565b149050612092565b50602081015151821461204f565b5050565b156120e157565b63bdcc3d9760e01b5f5260045ffd5b82511561215757805161214857505b81511561121757602091909101518051610198926001600160a01b0390811691168114918215612131575b50506120da565b602001516001600160a01b03161490505f8061212a565b61215291506127d1565b6120ff565b505050565b15612165575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b03861661219f57505050610198925080821461215c565b909291938061220a57506001600160a01b0316906121bc906128bb565b91813b1561022c57604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611ee0565b635d0165db60e01b5f525f60045260245260445ffd5b9081602091031261022c575190565b60209061227a93926040518381019182526006604082015260408152612256606082610168565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa918215610a75575f926122bd575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b6122d791925060203d60201161183a5761182b8183610168565b905f612295565b60208152608060606122fb845183602086015260a085019061052e565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b91909182515115612434576020838101805190926123c6916001600160a01b031680612413575b50855160608701519094906123a39061096a906001600160a01b03169260408a019361238b855191612379610189565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b61240b5751935b60405194858094819363b858183f60e01b8352600483016122de565b03926001600160a01b03165af18015610a7557610563915f916123ec575b5092516127d1565b612405915060203d60201161183a5761182b8183610168565b5f6123e4565b505f936123aa565b604087015161242e916001600160a01b0384811691166128e4565b5f612349565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114612157577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561022c575f9283610144926124b3946040519788968795632fc7dd6b60e11b87526004870190611227565b80821360a486015260c485015260e484015281610104840152816101248401525af18015610a7557611ef15750565b600f0b60016001607f1b031981146111ee575f0390565b90916125088261014094611227565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b9061254b826101b8565b6125586040519182610168565b8281528092612569601f19916101b8565b0190602036910137565b6001600160801b0391821690821601919082116111ee57565b6001600160801b0391821690821603919082116111ee57565b95939594919092946125b5611932565b965f966001600160801b038416156127925773fffd8963efd1fc6a506488495d951d5263988d256401000276a4871561277b57506001600160a01b0390811690831610155b6127715794939291908351519261261084612541565b8a5261261b84612541565b60208b015261262984612541565b60408b015261263784612541565b60608b0152955f955f955b85871061266b575050505050505080855152806020860151528060408601515260608501515290565b90919293949596612696612686896020859e9c9e015161153d565b516001600160801b038d16612a1a565b988915612765576126b1906001600160801b038b1690612573565b9a6126c6906001600160801b038b169061258c565b98818d8a8551906126d69161153d565b516126e4908989898d612b61565b92828251906126f29161153d565b5260200151906127019161153d565b9061270e919060020b9052565b8b818984519061271d9161153d565b5191604001519061272d9161153d565b528b81896020850151906127409161153d565b519160600151906127509161153d565b52600101966001905b01959493929190612642565b9a985096600190612759565b5091949350505050565b6001600160a01b03908116908416111590506125fa565b505f96508695945050505050565b90601f82018092116111ee57565b919082018092116111ee57565b156127c257565b637627529f60e01b5f5260045ffd5b8051156128b6575f9160179160429084905b8051826111ee57866111ee5783116128a157805190858203918083116111ee57869061281984612812816127a0565b101561328a565b6128278261281286826127ae565b61283d835161283686856127ae565b11156132c7565b036128565750506040515f8152602081016040526127e3565b60405191601f81169187831560051b80858701019484860193010101905b80841061288e5750508252601f01601f19166040526127e3565b9092602080918551815201930190612874565b92945050506128b09150612dae565b50905090565b505f90565b6001600160a01b0381116128d5576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa928315610a75575f936129f9575b5082018092116111ee5760205f604051938285019063095ea7b360e01b825260018060a01b0387166024870152604486015260448552612968606486610168565b84519082855af15f51903d816129cd575b501590505b61298757505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610198926129c8906129c281606481016110cb565b8261334b565b61334b565b151590506129ed575061297e6001600160a01b0382163b15155b5f612979565b600161297e91146129e7565b612a1391935060203d60201161183a5761182b8183610168565b915f612927565b808202905f1983820990828083109203918083039283612710111561022c5714612a78577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca00111561022c5714612ae5577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b634e487b7160e01b5f52601260045260245ffd5b8115612b10570490565b612af2565b60020b627fffff1981146111ee575f0390565b60020b60010190627fffff8213627fffff198312176111ee57565b9060020b9060020b0190627fffff198212627fffff8313176111ee57565b91949392612b85612b9b9294612b80670de0b6b3a76400008211611567565b612e2e565b908415612c9c575b6001600160a01b0316612a83565b6001600160a01b038111612c8e575b612bd890606090612bc3906001600160a01b0316612e74565b920191612bd1835160020b90565b908461310f565b612beb612be6835160020b90565b61319e565b90612bf582612b15565b8160020b8360020b81135f14612c675750505090612c1e612c3092955b825160020b908561310f565b908315612c5a575160020b5b90612b43565b9015612c4a578060020b8360020b12612c465750565b9150565b8060020b8360020b13612c465750565b51612c2a9060020b612b15565b90809297935060020b13612c84575b5090612c1e612c3092612c12565b9450612c1e612c76565b506001600160a01b03612baa565b90612caf90670de0b6b3a7640000612b06565b90612b8d565b6001600160a01b038116612cc857503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610a75575f91612d04575090565b610563915060203d60201161183a5761182b8183610168565b9091906001600160a01b038116612d4a57505f808080612d3e94865af11590565b612d455750565b613221565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612da05750565b6001600160a01b03166131b4565b90612dbd601483511015613307565b602082015160601c916017815110612df257601781015190602b81612de9601792602094511015613307565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116111ee5760011c905b838210612e54575050610198821515611567565b909250828015612b10578082049081018091116111ee5760011c90612e40565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b0316116130b45760018060a01b0316612eb28160201b90565b80612ec5612ebf836133c3565b60ff1690565b91608083106130a75750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa91981016130559060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f146130875750905090565b6001600160a01b0361309884613446565b16116130a2575090565b905090565b905081607f031b90612ed7565b6133a3565b600291820b910b0390627fffff198212627fffff8313176111ee57565b60020b9060020b908115612b1057627fffff1981145f198314166111ee570590565b9060020b9060020b02908160020b9182036111ee57565b90919015613153575f8260020b125f14613146576131418161313c61313782610563966130b9565b612b28565b6130d6565b6130f8565b61314181610563936130d6565b905f8160020b125f1461316e579061314181610563936130d6565b8161317891612b43565b60020b5f190190627fffff198212627fffff8313176111ee5761314181610563936130d6565b8060020b8015612b1057620d89e8050260020b90565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561329157565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b156132ce57565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b1561330e57565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af115611376575f513d61339a57506001600160a01b0381163b155b61337a5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415613373565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b801561022c577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116137605763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116613744575b60048116613728575b6008811661370c575b601081166136f0575b602081166136d4575b604081166136b8575b6080811661369c575b6101008116613680575b6102008116613664575b6104008116613648575b610800811661362c575b6110008116613610575b61200081166135f4575b61400081166135d8575b61800081166135bc575b6201000081166135a0575b620200008116613585575b62040000811661356a575b6208000016613551575b5f12613549575b0160201c90565b5f1904613542565b6b048a170391f7dc42444e8fa290910260801c9061353b565b6d2216e584f5fa1ea926041bedfe9890920260801c91613531565b916e5d6af8dedb81196699c329225ee6040260801c91613526565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161351b565b916f31be135f97d08fd981231505542fcfa60260801c91613510565b916f70d869a156d2a1b890bb3df62baf32f70260801c91613506565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916134fc565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916134f2565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916134e8565b916ff3392b0822b70005940c7a398e4b70f30260801c916134de565b916ff987a7253ac413176f2b074cf7815e540260801c916134d4565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916134ca565b916ffe5dee046a99a2a811c461f1969c30530260801c916134c0565b916fff2ea16466c96a3843ec78b326b528610260801c916134b7565b916fff973b41fa98c081472e6896dfb254c00260801c916134ae565b916fffcb9843d60f6159c9db58835c9266440260801c916134a5565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161349c565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91613493565b916ffff97272373d413259a46990580e213a0260801c9161348a565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2778:19160:92:-:0;;;;;;;;;;;;;-1:-1:-1;;2778:19160:92;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;2778:19160:92;;;;;;:::i;:::-;;1273:26:0;;;1269:95;;2778:19160:92;;;-1:-1:-1;;;;;;2778:19160:92;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;3052:40:0;;-1:-1:-1;3052:40:0;7503:35:92;2778:19160;;7587:42;;2778:19160;;7685:34;2778:19160;;-1:-1:-1;;;;;2778:19160:92;;7767:22;;2778:19160;;;7826:26;2778:19160;7862:40;7912:24;;7946:38;;2778:19160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7912:24;2778:19160;;;;;;;;;;7946:38;2778:19160;;;;;;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;1269:95:0;1322:31;;;-1:-1:-1;1322:31:0;-1:-1:-1;1322:31:0;2778:19160:92;;-1:-1:-1;1322:31:0;2778:19160:92;-1:-1:-1;2778:19160:92;;;;;;-1:-1:-1;2778:19160:92;;;;;-1:-1:-1;2778:19160:92;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100f95780636baaa167146100f4578063715018a6146100ef57806379ba5097146100ea5780638da5cb5b146100e557806391dd7346146100e0578063a0a8e460146100db578063c31c9c07146100d6578063c48677f4146100d1578063d737d0c7146100cc578063dc4c90d3146100c7578063e30c3978146100c2578063e3e8580c146100bd5763f2fde38b0361000e57610c4f565b610b97565b610b12565b610ace565b610a9c565b61065e565b61061a565b6105d3565b610566565b610507565b610482565b61041f565b6103db565b61028f565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761012d57604052565b6100fe565b60a081019081106001600160401b0382111761012d57604052565b606081019081106001600160401b0382111761012d57604052565b90601f801991011681019081106001600160401b0382111761012d57604052565b60405190610198608083610168565b565b6040519061019860c083610168565b60405190610198606083610168565b6001600160401b03811161012d5760051b60200190565b9080601f8301121561022c5781356101e6816101b8565b926101f46040519485610168565b81845260208085019260051b82010192831161022c57602001905b82821061021c5750505090565b813581526020918201910161020f565b5f80fd5b919060408382031261022c576040519061024982610112565b819380356001600160401b03811161022c57826102679183016101cf565b83526020810135916001600160401b03831161022c5760209261028a92016101cf565b910152565b3461022c57602036600319011261022c576004356001600160401b03811161022c576102bf903690600401610230565b6102c761152a565b6102d081611593565b5080518051906001600160401b03821161012d57600160401b821161012d576002548260025580831061038d575b5060025f526020017f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f5b838110610379577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c8560208101906103618251610cd7565b5190519061037460405192839283610d92565b0390a1005b600190602084519401938184015501610329565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083015b8181106103c657506102fe565b5f81556001016103b9565b5f91031261022c57565b3461022c575f36600319011261022c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022c575f36600319011261022c5761043761152a565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461022c575f36600319011261022c57600154336001600160a01b03909116036104f457600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461022c575f36600319011261022c575f546040516001600160a01b039091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061056392818152019061052e565b90565b3461022c57602036600319011261022c576004356001600160401b03811161022c573660238201121561022c578060040135906001600160401b03821161022c57366024838301011161022c576105cf9160246105c39201610fdd565b60405191829182610552565b0390f35b3461022c575f36600319011261022c576105cf6040516105f4604082610168565b6005815264181719171b60d91b602082015260405191829160208352602083019061052e565b3461022c575f36600319011261022c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602036600319011261022c576004356001600160401b03811161022c578060040160e0600319833603011261022c5761069681611103565b5f5160206137775f395f51905f525d60248201906106b4828261110d565b6106bd90611122565b6106c690611593565b506106d1828261110d565b6106da90611122565b6106e39061203a565b60a483016106f1818361112d565b6106fd91501515611162565b608484019261070c8484611178565b9590604482019661071c88611103565b90610727868861112d565b9390913690610735926111aa565b92369061074192610e3a565b9061074b926120f0565b61075486611103565b91606482013592343033867f00000000000000000000000000000000000000000000000000000000000000009461078a9561217a565b610794848661112d565b61079e868861112d565b6107a891506111e0565b906107b292611207565b6107bb9061121c565b967f00000000000000000000000000000000000000000000000000000000000000009360a089206107ec908661222f565b5050986107fa915088611178565b9261080490611103565b9061080d610189565b933690610819926111aa565b83526001600160a01b03166020830152604082015230606082015261085e907f0000000000000000000000000000000000000000000000000000000000000000612322565b9061086887611103565b95610873908861112d565b9460c4013593610883908961110d565b9461088c61019a565b6001600160a01b03909816885236906108a492610e3a565b602087015260408601526001600160a01b031660608501526080840152366108cb91610230565b60a0830152604051809260208201906108e39161126a565b03601f19810183526108f59083610168565b6040516348c8949160e01b815291829081906109149060048301610552565b6001600160a01b039093169203815a5f948591f18015610a7557610949915f91610a7a575b50602080825183010191016113a4565b925090959261097661096a61096a61096a608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa928315610a75577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f6096610a08946109e7925f91610a46575b501580610a36575b610a2657611103565b9360405195869560018060a01b031699339983600f0b9360801d928861148c565b0390a35f5f5160206137775f395f51905f525d6040515f8152602090f35b610a318a8a8961244c565b611103565b508960020b8960020b14156109de565b610a68915060203d602011610a6e575b610a608183610168565b810190611478565b5f6109d6565b503d610a56565b611376565b610a9691503d805f833e610a8e8183610168565b810190611314565b5f610939565b3461022c575f36600319011261022c576040516001600160a01b035f5160206137775f395f51905f525c168152602090f35b3461022c575f36600319011261022c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022c575f36600319011261022c576001546040516001600160a01b039091168152602090f35b90602080835192838152019201905f5b818110610b575750505090565b8251845260209384019390920191600101610b4a565b610563916020610b868351604084526040840190610b3a565b920151906020818403910152610b3a565b3461022c575f36600319011261022c5760606020604051610bb781610112565b8281520152604051610bc881610112565b60405190600254808352602083019060025f5260205f20905f5b818110610c1d576105cf8587610bfa81880382610168565b8152610c046114e2565b6020820152604051918291602083526020830190610b6d565b8254845260209093019260019283019201610be2565b6001600160a01b0381160361022c57565b359061019882610c33565b3461022c57602036600319011261022c57600435610c6c81610c33565b610c7461152a565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b634e487b7160e01b5f52601160045260245ffd5b8051906001600160401b03821161012d57600160401b821161012d5760035482600355808310610d4e575b5060035f526020017fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f5b838110610d3a5750505050565b600190602084519401938184015501610d2d565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019083015b818110610d875750610d02565b5f8155600101610d7a565b9091610da961056393604084526040840190610b3a565b916020818403910152610b3a565b8060020b0361022c57565b91908260a091031261022c57604051610dda81610132565b80928035610de781610c33565b82526020810135610df781610c33565b6020830152604081013562ffffff8116810361022c57608091829160408501526060810135610e2581610db7565b6060850152013591610e3683610c33565b0152565b90929192610e47816101b8565b93610e556040519586610168565b60a060208684815201920283019281841161022c57915b838310610e795750505050565b602060a091610e888486610dc2565b815201920191610e6c565b9080601f8301121561022c5781602061056393359101610e3a565b60208183031261022c578035906001600160401b03821161022c570160c08183031261022c57610edc61019a565b91610ee682610c44565b835260208201356001600160401b03811161022c5781610f07918401610e93565b602084015260408201356040840152610f2260608301610c44565b60608401526080820135608084015260a08201356001600160401b03811161022c57610f4e9201610230565b60a082015290565b90602080835192838152019201905f5b818110610f735750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610f66565b919594939092610fbb60809460a0855260a0850190610f56565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110d95761101991810190610eae565b61056361102582611667565b6110cb61108f6110b96040611051602088015161104b602088015160018060a01b031690565b906118a9565b969193909861105f856118ff565b9690958b8789611075885160018060801b031690565b60a0870151875190948f916001600160a01b031696611b10565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611d9d565b01519160405196879560208701610fa1565b03601f198101835282610168565b63f655705d60e01b5f5260045ffd5b6001600160401b03811161012d57601f01601f191660200190565b3561056381610c33565b903590603e198136030182121561022c570190565b610563903690610230565b903590601e198136030182121561022c57018035906001600160401b03821161022c576020019160a082023603831361022c57565b1561116957565b63cbd130a960e01b5f5260045ffd5b903590601e198136030182121561022c57018035906001600160401b03821161022c5760200191813603831361022c57565b9291926111b6826110e8565b916111c46040519384610168565b82948184528183011161022c578281602093845f960137010152565b5f198101919082116111ee57565b610cc3565b634e487b7160e01b5f52603260045260245ffd5b91908110156112175760a0020190565b6111f3565b610563903690610dc2565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b8181106112f45750505060a08460406105639596015160608401526112d76060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f1982850301910152610b6d565b909193602060a0826113096001948951611227565b0195019291016112a3565b60208183031261022c578051906001600160401b03821161022c570181601f8201121561022c57805190611347826110e8565b926113556040519485610168565b8284526020838301011161022c57815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b5190811515820361022c57565b519061019882610db7565b519061019882610c33565b9060a08282031261022c5781516001600160401b03811161022c57820181601f8201121561022c578051906113d8826101b8565b926113e66040519485610168565b8284526020606081860194028301019181831161022c57602001925b82841061143c57505050509161141a60208301611381565b916114276040820161138e565b91608061143660608401611399565b92015190565b60608483031261022c5760206060916040516114578161014d565b86518152828701518382015260408701516040820152815201930192611402565b9081602091031261022c5761056390611381565b93909261016095926114a3866105639a9996611227565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610f56565b60405190600354808352826020810160035f5260205f20925f5b81811061151157505061019892500383610168565b84548352600194850194879450602090930192016114fc565b5f546001600160a01b031633036104f457565b80518210156112175760209160051b010190565b1561155857565b635c974e3d60e11b5f5260045ffd5b1561156e57565b63b29d78b760e01b5f5260045ffd5b1561158457565b63d88409d360e01b5f5260045ffd5b8051515f929181151580611625575b1561161657905f915b8183106115c35750505061019861271083111561157d565b90919360019061160b86602085016115e76115df83835161153d565b511515611551565b611605670de0b6b3a76400006115fe84895161153d565b5111611567565b5161153d565b5101940191906115ab565b631fec674760e31b5f5260045ffd5b5060208101515182146115a2565b604051906116408261014d565b5f6040838281528260208201520152565b1561165857565b6342301c2360e01b5f5260045ffd5b61166f611633565b50602081015190604081015160018060a01b0360608301511693604051936116968561014d565b845260208401918252604084019485526116d06116c26116b4611633565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561185c575091602061175599949261178c61174161172b8b6117a79a9861153d565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b6124e2565b8215611841576401000276a4905b61177561176e6101a9565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b835285600484016124f9565b03815f8a5af1948515610a75575f9561180e575b50600190858a156117ff57828060801b03165b99156117f057602001516001600160a01b03165b960195919397909297611701565b516001600160a01b03166117e2565b60801d828060801b03166117ce565b60019195506118339060203d811161183a575b61182b8183610168565b810190612220565b94906117bb565b503d611821565b73fffd8963efd1fc6a506488495d951d5263988d2590611763565b6001600160801b039092168952509295506101989450909250611889906001600160a01b03166020870152565b60408501528351608091909101516001600160801b039091161015611651565b9190915f60806040516118bb81610132565b828152826020820152826040820152826060820152015280515f1981019081116111ee576118e89161153d565b51805190926001600160a01b039081169116811491565b60a061192c91207f000000000000000000000000000000000000000000000000000000000000000061222f565b50509091565b60405190608082018281106001600160401b0382111761012d57604052606080838181528160208201528160408201520152565b60405190611975602083610168565b5f80835282815b82811061198857505050565b602090611993611633565b8282850101520161197c565b906119a9826101b8565b6119b66040519182610168565b82815280926119c7601f19916101b8565b01905f5b8281106119d757505050565b6020906119e2611633565b828285010152016119cb565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b60208183031261022c578051906001600160401b03821161022c57019080601f8301121561022c578151611a4b816101b8565b92611a596040519485610168565b81845260208085019260051b82010192831161022c57602001905b828210611a815750505090565b8151815260209182019101611a74565b959493929091611aa487611abe94611227565b151560a087015261012060c0870152610120860190610b3a565b84810360e0860152602080835192838152019201905f5b818110611af7575050506001600160a01b039091166101009390930192909252565b825160020b845260209384019390920191600101611ad5565b959193611b2c939897959198611b24611932565b5089886125a5565b94919496855151151580611d8b575b15611d79576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b1561022c575f6040518096630b0d9c0960e01b8252818381611b96893089600485016119ee565b03925af1948515610a75575f95611d5f575b5080151592838614611d585785935b611cca575b5050855192611be760208801519660405197889687958695633ac1fb4960e21b875260048701611a91565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a75575f91611ca8575b50611c37815161199f565b935f5b8251811015611ca15780611c506001928561153d565b51611c5f82604088015161153d565b51611c6e83606089015161153d565b5190611c786101a9565b92835260208301526040820152611c8f828961153d565b52611c9a818861153d565b5001611c3a565b5092915050565b611cc491503d805f833e611cbc8183610168565b810190611a18565b5f611c2c565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af1938415610a75575f94611d39575b80611bbc565b611d519060203d602011610a6e57610a608183610168565b505f611d33565b8093611bb7565b80611d6d87611d7393610168565b806103d1565b5f611ba8565b50505050505090611d88611966565b91565b506001600160801b0382161515611b3b565b9192916001600160a01b0316908115611f32577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561022c57604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af1938415610a7557611e44602094611e4a935f97611f1e575b50611e3e85611e2d8186612cb5565b94611e39848383612d1d565b612cb5565b926127ae565b146127bb565b600460405180948193630476982d60e21b83525af18015610a7557611eff575b505b6001600160801b038116611e7f57505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561022c57604051630b0d9c0960e01b8152935f938593849286928492611ee09290916001600160a01b0316600485016119ee565b03925af18015610a7557611ef15750565b80611d6d5f61019893610168565b611f179060203d60201161183a5761182b8183610168565b505f611e6a565b80611d6d89611f2c93610168565b5f611e1e565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561022c57604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af1918215610a7557602092611fe0575b50600460405180948193630476982d60e21b83525af18015610a7557611fc1575b50611e6c565b611fd99060203d60201161183a5761182b8183610168565b505f611fbb565b80611d6d5f611fee93610168565b5f611f9a565b15611ffb57565b636741e8e960e11b5f5260045ffd5b6002548110156112175760025f5260205f2001905f90565b6003548110156112175760035f5260205f2001905f90565b6002549081156120d6578181515114806120c8575b61205890611ff4565b5f5b82811061206657505050565b80612074600192845161153d565b5161208b6120818361200a565b90549060031b1c90565b14806120a1575b61209b90611ff4565b0161205a565b5061209b6120b382602086015161153d565b516120c061208184612022565b149050612092565b50602081015151821461204f565b5050565b156120e157565b63bdcc3d9760e01b5f5260045ffd5b82511561215757805161214857505b81511561121757602091909101518051610198926001600160a01b0390811691168114918215612131575b50506120da565b602001516001600160a01b03161490505f8061212a565b61215291506127d1565b6120ff565b505050565b15612165575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b03861661219f57505050610198925080821461215c565b909291938061220a57506001600160a01b0316906121bc906128bb565b91813b1561022c57604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611ee0565b635d0165db60e01b5f525f60045260245260445ffd5b9081602091031261022c575190565b60209061227a93926040518381019182526006604082015260408152612256606082610168565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa918215610a75575f926122bd575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b6122d791925060203d60201161183a5761182b8183610168565b905f612295565b60208152608060606122fb845183602086015260a085019061052e565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b91909182515115612434576020838101805190926123c6916001600160a01b031680612413575b50855160608701519094906123a39061096a906001600160a01b03169260408a019361238b855191612379610189565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b61240b5751935b60405194858094819363b858183f60e01b8352600483016122de565b03926001600160a01b03165af18015610a7557610563915f916123ec575b5092516127d1565b612405915060203d60201161183a5761182b8183610168565b5f6123e4565b505f936123aa565b604087015161242e916001600160a01b0384811691166128e4565b5f612349565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114612157577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561022c575f9283610144926124b3946040519788968795632fc7dd6b60e11b87526004870190611227565b80821360a486015260c485015260e484015281610104840152816101248401525af18015610a7557611ef15750565b600f0b60016001607f1b031981146111ee575f0390565b90916125088261014094611227565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b9061254b826101b8565b6125586040519182610168565b8281528092612569601f19916101b8565b0190602036910137565b6001600160801b0391821690821601919082116111ee57565b6001600160801b0391821690821603919082116111ee57565b95939594919092946125b5611932565b965f966001600160801b038416156127925773fffd8963efd1fc6a506488495d951d5263988d256401000276a4871561277b57506001600160a01b0390811690831610155b6127715794939291908351519261261084612541565b8a5261261b84612541565b60208b015261262984612541565b60408b015261263784612541565b60608b0152955f955f955b85871061266b575050505050505080855152806020860151528060408601515260608501515290565b90919293949596612696612686896020859e9c9e015161153d565b516001600160801b038d16612a1a565b988915612765576126b1906001600160801b038b1690612573565b9a6126c6906001600160801b038b169061258c565b98818d8a8551906126d69161153d565b516126e4908989898d612b61565b92828251906126f29161153d565b5260200151906127019161153d565b9061270e919060020b9052565b8b818984519061271d9161153d565b5191604001519061272d9161153d565b528b81896020850151906127409161153d565b519160600151906127509161153d565b52600101966001905b01959493929190612642565b9a985096600190612759565b5091949350505050565b6001600160a01b03908116908416111590506125fa565b505f96508695945050505050565b90601f82018092116111ee57565b919082018092116111ee57565b156127c257565b637627529f60e01b5f5260045ffd5b8051156128b6575f9160179160429084905b8051826111ee57866111ee5783116128a157805190858203918083116111ee57869061281984612812816127a0565b101561328a565b6128278261281286826127ae565b61283d835161283686856127ae565b11156132c7565b036128565750506040515f8152602081016040526127e3565b60405191601f81169187831560051b80858701019484860193010101905b80841061288e5750508252601f01601f19166040526127e3565b9092602080918551815201930190612874565b92945050506128b09150612dae565b50905090565b505f90565b6001600160a01b0381116128d5576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa928315610a75575f936129f9575b5082018092116111ee5760205f604051938285019063095ea7b360e01b825260018060a01b0387166024870152604486015260448552612968606486610168565b84519082855af15f51903d816129cd575b501590505b61298757505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610198926129c8906129c281606481016110cb565b8261334b565b61334b565b151590506129ed575061297e6001600160a01b0382163b15155b5f612979565b600161297e91146129e7565b612a1391935060203d60201161183a5761182b8183610168565b915f612927565b808202905f1983820990828083109203918083039283612710111561022c5714612a78577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca00111561022c5714612ae5577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b634e487b7160e01b5f52601260045260245ffd5b8115612b10570490565b612af2565b60020b627fffff1981146111ee575f0390565b60020b60010190627fffff8213627fffff198312176111ee57565b9060020b9060020b0190627fffff198212627fffff8313176111ee57565b91949392612b85612b9b9294612b80670de0b6b3a76400008211611567565b612e2e565b908415612c9c575b6001600160a01b0316612a83565b6001600160a01b038111612c8e575b612bd890606090612bc3906001600160a01b0316612e74565b920191612bd1835160020b90565b908461310f565b612beb612be6835160020b90565b61319e565b90612bf582612b15565b8160020b8360020b81135f14612c675750505090612c1e612c3092955b825160020b908561310f565b908315612c5a575160020b5b90612b43565b9015612c4a578060020b8360020b12612c465750565b9150565b8060020b8360020b13612c465750565b51612c2a9060020b612b15565b90809297935060020b13612c84575b5090612c1e612c3092612c12565b9450612c1e612c76565b506001600160a01b03612baa565b90612caf90670de0b6b3a7640000612b06565b90612b8d565b6001600160a01b038116612cc857503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610a75575f91612d04575090565b610563915060203d60201161183a5761182b8183610168565b9091906001600160a01b038116612d4a57505f808080612d3e94865af11590565b612d455750565b613221565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612da05750565b6001600160a01b03166131b4565b90612dbd601483511015613307565b602082015160601c916017815110612df257601781015190602b81612de9601792602094511015613307565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116111ee5760011c905b838210612e54575050610198821515611567565b909250828015612b10578082049081018091116111ee5760011c90612e40565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b0316116130b45760018060a01b0316612eb28160201b90565b80612ec5612ebf836133c3565b60ff1690565b91608083106130a75750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa91981016130559060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f146130875750905090565b6001600160a01b0361309884613446565b16116130a2575090565b905090565b905081607f031b90612ed7565b6133a3565b600291820b910b0390627fffff198212627fffff8313176111ee57565b60020b9060020b908115612b1057627fffff1981145f198314166111ee570590565b9060020b9060020b02908160020b9182036111ee57565b90919015613153575f8260020b125f14613146576131418161313c61313782610563966130b9565b612b28565b6130d6565b6130f8565b61314181610563936130d6565b905f8160020b125f1461316e579061314181610563936130d6565b8161317891612b43565b60020b5f190190627fffff198212627fffff8313176111ee5761314181610563936130d6565b8060020b8015612b1057620d89e8050260020b90565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561329157565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b156132ce57565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b1561330e57565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af115611376575f513d61339a57506001600160a01b0381163b155b61337a5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415613373565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b801561022c577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116137605763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116613744575b60048116613728575b6008811661370c575b601081166136f0575b602081166136d4575b604081166136b8575b6080811661369c575b6101008116613680575b6102008116613664575b6104008116613648575b610800811661362c575b6110008116613610575b61200081166135f4575b61400081166135d8575b61800081166135bc575b6201000081166135a0575b620200008116613585575b62040000811661356a575b6208000016613551575b5f12613549575b0160201c90565b5f1904613542565b6b048a170391f7dc42444e8fa290910260801c9061353b565b6d2216e584f5fa1ea926041bedfe9890920260801c91613531565b916e5d6af8dedb81196699c329225ee6040260801c91613526565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161351b565b916f31be135f97d08fd981231505542fcfa60260801c91613510565b916f70d869a156d2a1b890bb3df62baf32f70260801c91613506565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916134fc565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916134f2565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916134e8565b916ff3392b0822b70005940c7a398e4b70f30260801c916134de565b916ff987a7253ac413176f2b074cf7815e540260801c916134d4565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916134ca565b916ffe5dee046a99a2a811c461f1969c30530260801c916134c0565b916fff2ea16466c96a3843ec78b326b528610260801c916134b7565b916fff973b41fa98c081472e6896dfb254c00260801c916134ae565b916fffcb9843d60f6159c9db58835c9266440260801c916134a5565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161349c565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91613493565b916ffff97272373d413259a46990580e213a0260801c9161348a565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2778:19160:92:-:0;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;:::o;:::-;3752:38;2778:19160;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;:::o;:::-;;;;;9838:14;2778:19160;;:::i;:::-;:::o;:::-;;;;;11117:19;2778:19160;;:::i;:::-;;;;;14731:29;2778:19160;;:::i;:::-;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;-1:-1:-1;;2778:19160:92;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;8462:32:92;;;:::i;:::-;;2778:19160;;;;;-1:-1:-1;;;;;2778:19160:92;;;;-1:-1:-1;;;2778:19160:92;;;;8504:26;2778:19160;;8504:26;2778:19160;;;;;;;-1:-1:-1;8504:26:92;2778:19160;;;;;-1:-1:-1;2778:19160:92;;;;;;8545:61;2778:19160;;;;;;;;;:::i;:::-;8569:16;8587:18;;2778:19160;8545:61;2778:19160;;8545:61;;;;;:::i;:::-;;;;2778:19160;;;;;;;;;;;;;;;;;;8504:26;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2778:19160:92;;;;;;3240:55;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;-1:-1:-1;;2778:19160:92;;;;1500:62:0;;:::i;:::-;2778:19160:92;;;-1:-1:-1;;;;;;2778:19160:92;;;;;;-1:-1:-1;2778:19160:92;;;;;;;-1:-1:-1;;;;;;2778:19160:92;3052:40:0;-1:-1:-1;;3052:40:0;2778:19160:92;;;;;;;-1:-1:-1;;2778:19160:92;;;;;;735:10:7;-1:-1:-1;;;;;2778:19160:92;;;2339:24:1;2335:96;;2778:19160:92;;;-1:-1:-1;;;;;;2778:19160:92;;;;;;-1:-1:-1;2778:19160:92;;735:10:7;2778:19160:92;;;;;;;-1:-1:-1;;;;;2778:19160:92;;3052:40:0;;-1:-1:-1;3052:40:0;2778:19160:92;2335:96:1;2386:34;;;2778:19160:92;2386:34:1;735:10:7;2778:19160:92;;;;2386:34:1;2778:19160:92;;;;;;-1:-1:-1;;2778:19160:92;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;-1:-1:-1;;2778:19160:92;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;2778:19160:92;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;2778:19160:92;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2778:19160:92;;;;;;3345:39;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;-1:-1:-1;;2778:19160:92;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;9369:16;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3080:68:8;9507:23:92;;;;;;;;:::i;:::-;9482:49;;;:::i;:::-;;;;:::i;:::-;;9624:23;;;;:::i;:::-;9594:54;;;:::i;:::-;;;;:::i;:::-;9729:14;;;;;;;:::i;:::-;9721:50;;-1:-1:-1;9729:25:92;;9721:50;:::i;:::-;9838:14;;;;;;;;:::i;:::-;9854:20;;;;;;;;;:::i;:::-;9876:14;;;;;:::i;:::-;2778:19160;;;;3752:38;;;;:::i;:::-;2778:19160;;3752:38;;;;:::i;:::-;9809:82;;;;:::i;:::-;10023:20;;;:::i;:::-;10045:18;;;;2778:19160;10092:9;;10085:4;10065:10;10014:7;;10092:9;;;;:::i;:::-;10194:14;;;;:::i;:::-;10209;;;;:::i;:::-;:25;;;;:::i;:::-;10194:41;;;;:::i;:::-;10166:69;;;:::i;:::-;10331:11;;357:173:37;9729:14:92;357:173:37;;10309:53:92;;;;:::i;:::-;10608:14;;;;;;;;:::i;:::-;10655:20;;;;:::i;:::-;3752:38;;;:::i;:::-;2778:19160;;3752:38;;;;:::i;:::-;;;-1:-1:-1;;;;;2778:19160:92;;10554:227;;3752:38;9854:20;10554:227;;3752:38;10085:4;10045:18;10554:227;;3752:38;10489:302;;10530:10;10489:302;:::i;:::-;10944:16;;;;:::i;:::-;10983:14;;;;;:::i;:::-;11117:19;;;2778:19160;11168:23;;;;;:::i;:::-;3752:38;;;:::i;:::-;-1:-1:-1;;;;;2778:19160:92;;;3752:38;;2778:19160;3752:38;;;;:::i;:::-;2778:19160;10906:296;;3752:38;9854:20;10906:296;;3752:38;-1:-1:-1;;;;;2778:19160:92;10045:18;10906:296;;3752:38;9838:14;10906:296;;3752:38;2778:19160;3752:38;;;:::i;:::-;9729:14;10906:296;;3752:38;9854:20;2778:19160;11318:24;;2778:19160;11318:24;;;;;;:::i;:::-;;2778:19160;;11318:24;;;;;;;;:::i;:::-;9854:20;2778:19160;-1:-1:-1;;;11299:44:92;;2778:19160;;;;;11299:44;;2778:19160;11299:44;;;:::i;:::-;-1:-1:-1;;;;;2778:19160:92;;;;11299:44;;;-1:-1:-1;11299:44:92;;;;;;;;11482:106;11299:44;-1:-1:-1;11299:44:92;;;2778:19160;;;;;;11482:106;;;;;;:::i;:::-;11706:16;;;;;11690:52;:34;11698:25;3752:38;9838:14;11706:16;;3752:38;2778:19160;;;;;;;;3752:38;-1:-1:-1;;;;;2778:19160:92;;;11690:52;9854:20;2778:19160;-1:-1:-1;;;11690:95:92;;-1:-1:-1;;;2778:19160:92;11690:95;;3752:38;2778:19160;;;;;;3752:38;;2778:19160;;11690:95;;;;;;;12014:294;11690:95;12014:294;11690:95;12079:16;11690:95;-1:-1:-1;11690:95:92;;;2778:19160;11849:17;;:52;;;2778:19160;11845:154;;12079:16;:::i;:::-;2778:19160;9854:20;2778:19160;;;;;;;;;;10065:10;;2241:89:34;;;;2052:83;9838:14:92;2052:83:34;12014:294:92;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;;3080:68:8;9854:20:92;2778:19160;9369:16;2778:19160;;;;;11845:154;;;;;;:::i;:::-;12079:16;:::i;11849:52::-;2778:19160;;;;;;;11870:31;;11849:52;;11690:95;;;;2778:19160;11690:95;2778:19160;11690:95;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11299:44::-;;;;;;-1:-1:-1;11299:44:92;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2778:19160;;;;;;-1:-1:-1;;2778:19160:92;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;2848:69:8;2778:19160:92;;;;;;;;;;;;-1:-1:-1;;2778:19160:92;;;;;;3146:41;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;-1:-1:-1;;2778:19160:92;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2778:19160:92;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;8831:17;2778:19160;;;;;;;;8831:17;2778:19160;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3752:38;;2778:19160;;:::i;:::-;;;;3752:38;2778:19160;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2778:19160:92;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;2778:19160:92;;;-1:-1:-1;;;;;;2778:19160:92;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;1777:43:1;;-1:-1:-1;1777:43:1;2778:19160:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;:::o;12720:1377::-;12833:11;-1:-1:-1;;;;;2778:19160:92;12811:10;:34;12807:89;;12941:32;;;;;;:::i;:::-;13993:97;13068:29;;;:::i;:::-;13993:97;13517:273;13952:22;13897:27;13222:67;13241:20;;;;2778:19160;13241:20;13263:25;;2778:19160;;;;;;;;;;13222:67;;:::i;:::-;13389:25;;;;;;;;:::i;:::-;2778:19160;;;;;;;;;;;;;;;;;;13715:29;;;;2778:19160;;13715:29;;;;-1:-1:-1;;;;;2778:19160:92;13517:273;;:::i;:::-;13866:29;;;2778:19160;13866:29;;;;-1:-1:-1;;;;;2778:19160:92;13897:27;;;2778:19160;;;13897:27;;2778:19160;-1:-1:-1;;;;;2778:19160:92;13952:22;;:::i;:::-;14063:26;2778:19160;;13897:27;2778:19160;13993:97;;;13241:20;13993:97;;;:::i;:::-;;2778:19160;;13993:97;;;;;;:::i;12807:89::-;12868:17;;;;;;;;2778:19160;-1:-1:-1;;;;;2778:19160:92;;;;;;-1:-1:-1;;2778:19160:92;;;;:::o;3752:38::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3752:38:92;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3752:38:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;2778:19160;;;;;;;:::i;:::-;3752:38;;;;;;;;;;;;;;;;-1:-1:-1;3752:38:92;;;;;;:::o;:::-;-1:-1:-1;;3752:38:92;;;;;;;;:::o;:::-;;:::i;:::-;2778:19160;;;3752:38;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2778:19160:92;;;;;3752:38;;;;;2778:19160;;3752:38;;;2778:19160;3752:38;;;;;2778:19160;;3752:38;;;;;;;;;2778:19160;;3752:38;;;2778:19160;3752:38;;;;;2778:19160;3752:38;;2778:19160;3752:38::o;:::-;;;;;;;-1:-1:-1;;;;;2778:19160:92;3752:38;;;2778:19160;3752:38;;;;;;;;;2778:19160;;3752:38;;;2778:19160;;;3752:38;;;2778:19160;;;;3752:38;2778:19160;;;;;-1:-1:-1;3752:38:92;;;;;;;;;;;;;;;;;;;;2778:19160;3752:38;;;;;;;;;2778:19160;;;;;;;;;3752:38;;;;;;;;2778:19160;3752:38;;2778:19160;3752:38;2778:19160;;3752:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;2778:19160;;3752:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;3752:38:92;;;;;;;;;;;;;;;;;;;:::i;:::-;2778:19160;;;;;;;:::i;:::-;3752:38;;;;;;;;;;;;-1:-1:-1;3752:38:92;;;;;;;;2778:19160;;;;;3752:38;:::o;:::-;2778:19160;;3752:38;;;;;;;;;2778:19160;;;;3752:38;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;3752:38:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;2778:19160;;;;;;;:::i;:::-;3752:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2778:19160;3752:38;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;2778:19160;;;;;;:::i;:::-;3752:38;;;;;;;;;;;;2778:19160;3752:38;;;2778:19160;3752:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2778:19160;;;;3752:38;;;2778:19160;;3752:38;;;2778:19160;3752:38;;;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;3752:38;;;2778:19160;3752:38;;;;;;;;;:::i;2778:19160::-;;;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;-1:-1:-1;2778:19160:92;;-1:-1:-1;2778:19160:92;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2778:19160:92;;;;;;;;1796:162:0;1710:6;2778:19160:92;-1:-1:-1;;;;;2778:19160:92;735:10:7;1855:23:0;1851:101;;1796:162::o;2778:19160:92:-;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;1795:4:91;;;;:::o;:::-;;;;;;;;;1901:6;;;;:::o;:::-;;;;;;;;;2728:647;2850:16;;2778:19160:92;;;2728:647:91;2892:10;;;;:49;;2728:647;2778:19160:92;;;3000:9:91;2778:19160:92;2995:296:91;3011:10;;;;;;3319:29;;;3311:57;1901:6;3319:29;;;3311:57;:::i;3023:3::-;3054:18;;;2778:19160:92;3054:18:91;3215:21;3054:18;;;;3046:53;3054:21;:18;;;:21;:::i;:::-;2778:19160:92;3054:26:91;;3046:53;:::i;:::-;3117:64;1795:4;3125:19;:16;;;:19;:::i;:::-;2778:19160:92;3125:36:91;3117:64;:::i;:::-;3215:18;:21;:::i;:::-;2778:19160:92;1795:4:91;3023:3;2778:19160:92;3000:9:91;;;;2778:19160:92;;;;;;;;;2892:49:91;2916:18;;;;;2778:19160:92;2906:35:91;;2892:49;;2778:19160:92;;;;;;;:::i;:::-;-1:-1:-1;2778:19160:92;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;14332:603;2778:19160;;:::i;:::-;;14606:20;;;;14654:27;;;;2778:19160;;;;;;14731:29;;;2778:19160;;;14654:27;2778:19160;;;;;:::i;:::-;3752:38;;14606:20;14552:224;;3752:38;;;14654:27;14552:224;;3752:38;;;8176:24:60;2778:19160:92;;;:::i;:::-;;;-1:-1:-1;;;;;2778:19160:92;;;;;;-1:-1:-1;;;;;2778:19160:92;;;8176:24:60;-1:-1:-1;;14527:11:92;-1:-1:-1;;;;;2778:19160:92;;8210:22:60;;-1:-1:-1;8333:3:60;8310:14;;2778:19160:92;;;8306:25:60;;;;;8377:17;;14606:20:92;8638:24:60;8377:17;;;8615:120;8493:36;8377:17;;8556:213;8377:17;;;:::i;:::-;;2778:19160:92;;8377:17:60;;-1:-1:-1;;;;;2778:19160:92;;;;;448:51:36;;364:138;8493:36:60;2778:19160:92;;;-1:-1:-1;;;;;2778:19160:92;3752:38;;8638:24:60;:::i;:::-;8664:70;;;;1862:10:32;8664:70:60;;8615:120;2778:19160:92;;:::i;:::-;;;;1862:10:32;;;8615:120:60;3752:38:92;;8615:120:60;;;3752:38:92;-1:-1:-1;;;;;2778:19160:92;14654:27;8615:120:60;;3752:38:92;;8615:120:60;14654:27:92;2778:19160;3752:38;;;;;;;8556:213:60;;;;;;;:::i;:::-;;;-1:-1:-1;8556:213:60;;;;;;;;-1:-1:-1;8556:213:60;;;8664:70;-1:-1:-1;2778:19160:92;;8544:225:60;8855:72;;;;2778:19160:92;;;;;;8855:72:60;9043:50;;;;14606:20:92;9056:17:60;2778:19160:92;-1:-1:-1;;;;;2778:19160:92;;8333:3:60;2778:19160:92;8291:13:60;;;;;;;;;9043:50;2778:19160:92;-1:-1:-1;;;;;2778:19160:92;9043:50:60;;8855:72;2052:83:34;;2778:19160:92;;;;;;8855:72:60;;8556:213;2778:19160:92;8556:213:60;;;;;14606:20:92;8556:213:60;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8664:70;2042:49:32;8664:70:60;;;8306:25;-1:-1:-1;;;;;2778:19160:92;;;1862:10:32;;-1:-1:-1;8306:25:60;;-1:-1:-1;14839:89:92;;-1:-1:-1;8306:25:60;;-1:-1:-1;9159:39:60;;-1:-1:-1;;;;;2778:19160:92;14606:20;9159:21:60;;3752:38:92;;9159:39:60;14654:27:92;9208:22:60;;3752:38:92;2778:19160;;14874:25;;;;;2778:19160;-1:-1:-1;;;;;2778:19160:92;;;14847:52;;14839:89;:::i;15288:437::-;;;;-1:-1:-1;2778:19160:92;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3752:38;;;;;;;;;15559:24;;;:::i;:::-;;2778:19160;;15559:24;;-1:-1:-1;;;;;2778:19160:92;;;;;15666:52;;;15288:437::o;15919:204::-;357:173:37;16063:53:92;15919:204;357:173:37;16085:11:92;16063:53;:::i;:::-;16036:80;;;15919:204;:::o;2778:19160::-;;;;3752:38;2778:19160;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2778:19160:92;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;3752:38;;2778:19160;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2778:19160:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;16837:1841;;;;17333:115;16837:1841;;;;;;2778:19160;;:::i;:::-;;17333:115;;;:::i;:::-;17298:150;;;17515:12;;;2778:19160;17515:23;;:40;;;16837:1841;17511:1161;;;-1:-1:-1;;;;;17642:11:92;2778:19160;;;;17642:70;;;;;2778:19160;;;3752:38;;;;;17642:70;;17695:4;;;17642:70;17695:4;;17642:70;;;;;:::i;:::-;;;;;;;;;;2778:19160;17642:70;;;17511:1161;17819:25;;;;:41;;;;;;;;;17943:131;;17819:41;18234:12;;;;18248;18165:103;18248:12;;;;2778:19160;;;3752:38;;;;;;;;;;18165:103;;17642:70;18165:103;;;:::i;:::-;;;-1:-1:-1;;;;;2778:19160:92;18165:18;-1:-1:-1;;;;;2778:19160:92;18165:103;;;;;;;2778:19160;18165:103;;;17819:41;2778:19160;18299:35;2778:19160;;18299:35;:::i;:::-;18381:9;2778:19160;18413:3;2778:19160;;18392:19;;;;;18482:11;;2778:19160;18482:11;;;:::i;:::-;2778:19160;18505:19;:16;2778:19160;18505:16;;;:19;:::i;:::-;2778:19160;18538:21;:18;2778:19160;18538:18;;;:21;:::i;:::-;2778:19160;;;;:::i;:::-;3752:38;;;18248:12;18459:102;;3752:38;2778:19160;18459:102;;3752:38;18440:121;;;;:::i;:::-;;;;;;:::i;:::-;;2778:19160;18381:9;;18392:19;;;;;;16837:1841::o;18165:103::-;;;;;;2778:19160;18165:103;;;;;;:::i;:::-;;;;;:::i;:::-;;;;17943:131;2778:19160;;-1:-1:-1;;;17992:67:92;;-1:-1:-1;;;;;18028:18:92;2778:19160;17642:70;17992:67;;2778:19160;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;17992:67;;2778:19160;;;;;;;17992:67;;;;;;;2778:19160;17992:67;;;17943:131;;;;17992:67;;;;;;;;;;;;;:::i;:::-;;;;;17819:41;;;;;17642:70;;;;;;;:::i;:::-;;;:::i;:::-;;;;17511:1161;18640:21;;;;;;;;;:::i;:::-;17511:1161;16837:1841::o;17515:40::-;-1:-1:-1;;;;;;2778:19160:92;;17542:13;;17515:40;;19024:431;;;;-1:-1:-1;;;;;2778:19160:92;;4998:58:36;;19684:24:92;;19724:11;-1:-1:-1;;;;;2778:19160:92;19724:26;;;;;2778:19160;;-1:-1:-1;;;19724:26:92;;-1:-1:-1;;;;;2778:19160:92;;19724:26;;;2778:19160;-1:-1:-1;2778:19160:92;;;-1:-1:-1;19724:26:92;;;;;;;;19999:22;20086:20;19724:26;19947:124;19724:26;;;;;19679:593;19832:40;19955;19832;;;;;:::i;:::-;19926:6;;;;;;:::i;:::-;19955:40;:::i;:::-;19999:22;;:::i;:::-;19955:66;19947:124;:::i;:::-;19724:26;2778:19160;;3752:38;;;;;;;20086:20;;;;;;;;;;19679:593;;;-1:-1:-1;;;;;2778:19160:92;;19339:110;;19024:431;;;:::o;19339:110::-;19374:11;-1:-1:-1;;;;;2778:19160:92;19374:64;;;;;2778:19160;;-1:-1:-1;;;19374:64:92;;2778:19160;19357:1;;2778:19160;;;;19357:1;;2778:19160;;19374:64;;3752:38;;-1:-1:-1;;;;;2778:19160:92;19374:64;;;;:::i;:::-;;;;;;;;;;;19024:431;:::o;19374:64::-;;;19357:1;19374:64;;;:::i;20086:20::-;;;;;;;;;;;;;:::i;:::-;;;;;19724:26;;;;;;;:::i;:::-;;;;19679:593;2778:19160;20186:11;-1:-1:-1;;;;;2778:19160:92;20186:26;;;;;2778:19160;;-1:-1:-1;;;20186:26:92;;-1:-1:-1;;;;;2778:19160:92;;;;20186:26;;;2778:19160;-1:-1:-1;2778:19160:92;;;-1:-1:-1;20186:26:92;;;;;;;;20226:35;20186:26;;;19679:593;2778:19160;20186:26;2778:19160;;3752:38;;;;;;;20226:35;;;;;;;;;;19679:593;;;;20226:35;;;;;;;;;;;;;:::i;:::-;;;;;20186:26;;;;;;;:::i;:::-;;;;2778:19160;;;;:::o;:::-;;;;;;;;;;21158:17;2778:19160;;;;;;21158:17;-1:-1:-1;2778:19160:92;;-1:-1:-1;2778:19160:92;;;-1:-1:-1;2778:19160:92;:::o;:::-;21726:29;2778:19160;;;;;;21726:29;-1:-1:-1;2778:19160:92;;-1:-1:-1;2778:19160:92;;;-1:-1:-1;2778:19160:92;:::o;21037:817::-;21158:17;2778:19160;21272:20;;;21268:33;;21356:16;;;2778:19160;21356:42;:90;;;21037:817;21348:126;;;:::i;:::-;21158:27;21571:19;;;;;;21037:817;;;:::o;21592:3::-;21644:16;:19;2778:19160;21644:16;;;:19;:::i;:::-;2778:19160;;21667:30;;;:::i;:::-;2778:19160;;;;;;;;;21644:53;:114;;;21592:3;21615:208;;;:::i;:::-;2778:19160;21560:9;;21644:114;21701:18;21615:208;21701:21;:18;;;;;:21;:::i;:::-;2778:19160;;21726:32;;;:::i;2778:19160::-;21701:57;21644:114;;;;21356:90;-1:-1:-1;21402:18:92;;;;2778:19160;21402:44;;21356:90;;21268:33;21294:7;;:::o;2778:19160::-;;;;:::o;:::-;;;;;;;;;2969:890:60;2778:19160:92;;3092:19:60;3088:83;;2778:19160:92;;3289:14:60;;3404:31;3285:313;2778:19160:92;;;;;;;;;;3635:10:60;2778:19160:92;;3656:196:60;;-1:-1:-1;;;;;2778:19160:92;;;;;3677:55:60;;;:114;;;;3285:313;3656:196;;;:::i;3677:114::-;2778:19160:92;3771:19:60;2778:19160:92;-1:-1:-1;;;;;2778:19160:92;3736:55:60;;-1:-1:-1;3677:114:60;;;;3285:313;3554:33;;;;:::i;:::-;3285:313;;3088:83;3127:7;;;:::o;2778:19160:92:-;;;;;;:::o;:::-;;;;;;;;;;;;;5439:575:60;;;;;;;;-1:-1:-1;;;;;2778:19160:92;;;;5705:23:60;;;5697:82;5705:23;;;;;5697:82;:::i;5603:405::-;5859:13;;;;;2778:19160:92;;-1:-1:-1;;;;;;2778:19160:92;;5958:23:60;;;:::i;:::-;5927:70;;;;;;2778:19160:92;;-1:-1:-1;;;5927:70:60;;-1:-1:-1;;;;;2778:19160:92;;;5927:70:60;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;;5632:1:60;;2778:19160:92;;;5632:1:60;2778:19160:92;;;;5927:70:60;2778:19160:92;;;;;5632:1:60;2778:19160:92;5632:1:60;2778:19160:92;;;;;5632:1:60;2778:19160:92;;;;;;;;;;3752:38;2778:19160;:::o;1580:996:30:-;14953:51;1580:996;1892:27;1580:996;;2778:19160:92;;14953:51:30;;;2778:19160:92;;;414:1:30;2778:19160:92;398:19:30;;2778:19160:92;;14953:51:30;;;;;;:::i;:::-;2778:19160:92;14943:62:30;;2778:19160:92;;;3752:38;;;;;;;;1892:27:30;;;;;2778:19160:92;;;;;;;;1892:27:30;;;-1:-1:-1;;;;;2778:19160:92;1892:27:30;;;;;;;-1:-1:-1;1892:27:30;;;1580:996;-1:-1:-1;;;;;;2147:423:30;;;2778:19160:92;2147:423:30;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;;14953:51;1892:27;14953:51;1892:27;;;;;;;:::i;:::-;;;;;2778:19160:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2778:19160:92;;;;;;;;;;;;;;;;;;;;;;;:::o;6425:1227:60:-;;;;6582:14;;2778:19160:92;6582:26:60;6578:163;;6822:20;;;;2778:19160:92;;6822:20:60;;7529:47;;-1:-1:-1;;;;;2778:19160:92;;6818:156:60;;6425:1227;-1:-1:-1;7131:14:60;;7170:16;;;2778:19160:92;7131:14:60;;7170:16;7443:34;;2778:19160:92;;-1:-1:-1;;;;;2778:19160:92;7210:18:60;;;;2778:19160:92;7082:247:60;2778:19160:92;;3752:38;;;:::i;:::-;;;;-1:-1:-1;;;;;2778:19160:92;7082:247:60;;;3752:38:92;;7082:247:60;7210:18;7082:247;;3752:38:92;-1:-1:-1;7170:16:60;7082:247;;3752:38:92;2778:19160;-1:-1:-1;;;;;2778:19160:92;;;7443:34:60;:59;;2778:19160:92;7443:59:60;;7210:18;2778:19160:92;3752:38;;;;;;;;;7529:47:60;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2778:19160:92;7529:47:60;;;;;;7605:40;7529:47;-1:-1:-1;7529:47:60;;;7443:59;7512:64;7630:14;;7605:40;:::i;7529:47::-;;;;6822:20;7529:47;6822:20;7529:47;;;;;;;:::i;:::-;;;;7443:59;;-1:-1:-1;7443:59:60;;;6818:156;6944:18;;;2778:19160:92;6944:18:60;;-1:-1:-1;;;;;2778:19160:92;;;;;6944:18:60;:::i;:::-;6818:156;;;6578:163;-1:-1:-1;6689:18:60;;;2778:19160:92;6709:20:60;;;;2778:19160:92;-1:-1:-1;;;;;2778:19160:92;;:::o;20505:401::-;;2778:19160;;;;;20622:31;;;20618:68;;20808:18;-1:-1:-1;;;;;2778:19160:92;20808:91;;;;;20885:1;2778:19160;;20808:91;2778:19160;;;;;3752:38;;;;;;;;20808:91;;;;;2778:19160;;:::i;:::-;20767:30;;;2778:19160;;;;;;;;;;;;;;;;;;;;;;20808:91;;;;;;;;20505:401;:::o;2778:19160::-;3752:38;;-1:-1:-1;;;;;;2778:19160:92;;;;;;;:::o;1862:10:32:-;;;;;2778:19160:92;1862:10:32;;:::i;:::-;;;2778:19160:92;;1862:10:32;;;2778:19160:92;1862:10:32;;;;;;;2778:19160:92;1862:10:32;;;-1:-1:-1;;;;;2778:19160:92;1862:10:32;;;2778:19160:92;1862:10:32;;;;;;;-1:-1:-1;1862:10:32;;;2778:19160:92;;;1862:10:32:o;1979::70:-;;2778:19160:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;1979:10:70;2778:19160:92;1979:10:70;2778:19160:92;;1979:10:70;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2778:19160:92;;;;;;1979:10:70;;;;;;;:::o;:::-;-1:-1:-1;;;;;2778:19160:92;;;;;;1979:10:70;;2778:19160:92;1979:10:70;;;;:::o;4274:2599:91:-;;;;;;;;;2778:19160:92;;:::i;:::-;4518:17:91;2778:19160:92;;-1:-1:-1;;;;;2778:19160:92;;4572:14:91;4568:79;;2042:49:32;1862:10;4977:65:91;;;;-1:-1:-1;;;;;;2778:19160:92;;;;;;4991:24:91;;4977:65;4973:167;;5171:16;;;;;;;2778:19160:92;5215:25:91;;;;:::i;:::-;5205:35;;5260:23;;;:::i;:::-;5250:7;;;:33;5307:25;;;:::i;:::-;5293:11;;;:39;5358:25;;;:::i;:::-;5342:13;;;:41;5433:13;2778:19160:92;5462:9:91;2778:19160:92;5457:1073:91;5473:14;;;;;;6540:293;;;;;;;;;;;5250:7;;;;6540:293;;5293:11;;;;6540:293;;5342:13;;;6540:293;;4274:2599;:::o;5489:3::-;5564:18;;;;;;;5528:73;5564:21;:18;5250:7;5564:18;;;;;;:21;:::i;:::-;2778:19160:92;-1:-1:-1;;;;;2778:19160:92;;5528:73:91;:::i;:::-;5619:14;;;5615:28;;5806:31;;-1:-1:-1;;;;;2778:19160:92;;;5806:31:91;:::i;:::-;2778:19160:92;5999:31:91;;-1:-1:-1;;;;;2778:19160:92;;;5999:31:91;:::i;:::-;6123:16;;;;;;:19;;;;:::i;:::-;2778:19160:92;6064:79:91;;;;;;;:::i;:::-;6158:7;;;;:26;;;;:::i;:::-;3752:38:92;5250:7:91;;6198;:27;;;;:::i;:::-;;;;1979:10:70;2778:19160:92;;1979:10:70;;;6198:27:91;6260:16;;;;;:19;;;;:::i;:::-;2778:19160:92;5293:11:91;;;6239;:40;;;;:::i;:::-;3752:38:92;5564:18:91;;;5250:7;5564:18;;6316;:21;;;;:::i;:::-;2778:19160:92;5342:13:91;;;6293;:44;;;;:::i;:::-;3752:38:92;4906:1:91;2778:19160:92;5489:3:91;4906:1;5489:3;5462:9;2778:19160:92;5462:9:91;;;;;;;;5615:28;5635:8;;;;4906:1;5635:8;;;4973:167;-1:-1:-1;5095:34:91;;;-1:-1:-1;;;;5095:34:91:o;4977:65::-;-1:-1:-1;;;;;2778:19160:92;;;;;;5018:24:91;;;-1:-1:-1;4977:65:91;;4568:79;-1:-1:-1;2778:19160:92;;-1:-1:-1;2778:19160:92;;4602:34:91;-1:-1:-1;;;;;4602:34:91:o;2778:19160:92:-;;677:2:75;2778:19160:92;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;10716:597:60;2778:19160:92;;10824:16:60;10820:64;;2778:19160:92;;;;;;;;11065:101:60;2778:19160:92;;;;;;;;1229:40:76;-1:-1:-1;11072:30:60;;2778:19160:92;;3752:38;;;;;;;;;;667:12:75;;659:50;667:12;;;;:::i;:::-;:23;;659:50;:::i;:::-;719:53;727:16;;;;;:::i;719:53::-;782:63;2778:19160:92;;807:16:75;;;;:::i;:::-;-1:-1:-1;790:33:75;782:63;:::i;:::-;889:2430;2778:19160:92;;889:2430:75;;;;2778:19160:92;889:2430:75;;;;;;;11065:101:60;;889:2430:75;;;;677:2;889:2430;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;889:2430:75;;677:2;889:2430;-1:-1:-1;;889:2430:75;;;11065:101:60;;889:2430:75;;;;;;;;;;;;;;;;11072:30:60;;;;;;11277:29;11072:30;;11277:29;:::i;:::-;11260:46;;;10716:597;:::o;10820:64::-;10856:17;2778:19160:92;10856:17:60;:::o;288:164:12:-;-1:-1:-1;;;;;368:25:12;;364:50;;-1:-1:-1;;;;;2778:19160:92;;288:164:12:o;364:50::-;402:12;;;;;;;;3146:225:6;2778:19160:92;;-1:-1:-1;;;3265:39:6;;3289:4;3265:39;;;2778:19160:92;-1:-1:-1;;;;;2778:19160:92;;;;;;;3146:225:6;;2778:19160:92;;;;;;3265:39:6;;2778:19160:92;;;;3265:39:6;;;;;;;-1:-1:-1;3265:39:6;;;3146:225;2778:19160:92;;;;;;;;5199:47:6;-1:-1:-1;2778:19160:92;;5199:47:6;;;;3752:38:92;;;;5199:47:6;;2778:19160:92;;;;;;;5199:47:6;;;2778:19160:92;;;;;;5199:47:6;;;;;;:::i;:::-;9770:199;;;;;;;-1:-1:-1;9770:199:6;;;;9985:80;;3146:225;-1:-1:-1;5261:45:6;;-1:-1:-1;5261:45:6;5257:201;;3146:225;;;:::o;5257:201::-;2778:19160:92;;-1:-1:-1;;;5199:47:6;5349:43;;;-1:-1:-1;;;;;2778:19160:92;;;5199:47:6;5349:43;;2778:19160:92;5389:1:6;2778:19160:92;;;;5434:12:6;;5349:43;;;2778:19160:92;;;;5349:43:6;2778:19160:92;5349:43:6;;;:::i;:::-;5434:12;:::i;9985:80::-;9997:15;;;-1:-1:-1;9997:15:6;;-1:-1:-1;5261:45:6;-1:-1:-1;;;;;2778:19160:92;;10015:26:6;:30;;9997:67;9985:80;;;9997:67;10063:1;5261:45;10048:16;;9997:67;;3265:39;;;;;2778:19160:92;3265:39:6;2778:19160:92;3265:39:6;;;;;;;:::i;:::-;;;;;858:4141:66;2778:19160:92;;;;-1:-1:-1;;2778:19160:92;;1464:147:66;;;;;;;;;;;;1736:19;;1901:6:91;1736:19:66;2778:19160:92;;;1837:10:66;1833:177;;2778:19160:92;2341:95:66;1901:6:91;2341:95:66;;2508:145;;;;;;2778:19160:92;;2508:145:66;;3094:82;;3480:21;2778:19160:92;858:4141:66;:::o;1833:177::-;1867:98;;1901:6:91;1867:98:66;;;1982:13;:::o;858:4141::-;2778:19160:92;;;;-1:-1:-1;;2778:19160:92;;1464:147:66;;;;;;;;;;;;1736:19;;2036:3:91;1736:19:66;2778:19160:92;;;1837:10:66;1833:177;;2778:19160:92;2341:95:66;2036:3:91;2341:95:66;;2508:145;;;;;;2778:19160:92;;2508:145:66;;3094:82;;3480:21;2778:19160:92;858:4141:66;:::o;1833:177::-;1867:98;;2036:3:91;1867:98:66;;;1982:13;:::o;2036:3:91:-;2778:19160:92;;;2036:3:91;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;2778:19160:92;;-1:-1:-1;;2036:3:91;;;;;;;:::o;:::-;2778:19160:92;;;2036:3:91;;;;;-1:-1:-1;;2036:3:91;;;;;:::o;:::-;;2778:19160:92;;;;;2036:3:91;;;;;;;;;;;;:::o;7348:1541::-;;;;;7650:23;7830:75;7348:1541;;7561:53;1795:4;7569:25;;7561:53;:::i;:::-;7650:23;:::i;:::-;7687:12;;;7683:120;;7348:1541;-1:-1:-1;;;;;2778:19160:92;7830:75:91;:::i;:::-;-1:-1:-1;;;;;7919:26:91;;7915:58;;7348:1541;8198:73;;8255:15;;8134:44;;-1:-1:-1;;;;;2778:19160:92;8134:44:91;:::i;:::-;8255:15;;2036:3;;;;2778:19160:92;;;;2036:3:91;8198:73;;;:::i;:::-;8298:39;2036:3;;;2778:19160:92;;;;2036:3:91;8298:39;:::i;:::-;8363:8;;;;:::i;:::-;2778:19160:92;;;;;;8386:17:91;;8382:136;8386:17;;;8419;;;;8552:74;8652:68;8419:17;8382:136;;2036:3;;2778:19160:92;;8552:74:91;;;:::i;:::-;8671:48;;;;;2036:3;2778:19160:92;;2036:3:91;8671:48;8652:68;:::i;:::-;8730:153;;;;2778:19160:92;;;;;;8765:17:91;8761:40;;8730:153;7348:1541::o;8761:40::-;8784:17;-1:-1:-1;19024:431:92:o;8730:153:91:-;2778:19160:92;;;;;;8836:17:91;8832:40;;8730:153;7348:1541::o;8671:48::-;2036:3;8703:16;;2778:19160:92;;8703:16:91;:::i;8382:136::-;2778:19160:92;;;;;;;;-1:-1:-1;8453:65:91;;8382:136;;;8552:74;8652:68;8382:136;;;8453:65;8490:17;-1:-1:-1;8552:74:91;8453:65;;7915:58;-1:-1:-1;;;;;;7915:58:91;;7683:120;7733:41;7732:60;7733:41;2778:19160:92;7732:60:91;:::i;:::-;7683:120;;;4633:271:36;-1:-1:-1;;;;;2778:19160:92;;4732:24:36;;4779:13;;4772:20;:::o;4728:170::-;2778:19160:92;;-1:-1:-1;;;4830:57:36;;-1:-1:-1;;;;;2778:19160:92;;;4830:57:36;;;2778:19160:92;;;;;;4830:57:36;;2778:19160:92;;;4830:57:36;;;;;;;2778:19160:92;4830:57:36;;;4823:64;;:::o;4830:57::-;;;;2778:19160:92;4830:57:36;2778:19160:92;4830:57:36;;;;;;;:::i;1472:2873::-;;;;-1:-1:-1;;;;;2778:19160:92;;1769:24:36;;1809:163;-1:-1:-1;1809:163:36;;;2085:8;1809:163;;;;2085:8;;2778:19160:92;2085:8:36;2081:127;;1765:2574;1472:2873::o;2081:127::-;2163:29;:::i;1765:2574::-;2238:1774;;;-1:-1:-1;;;2238:1774:36;;-1:-1:-1;;;;;2238:1774:36;;;;;;;;;;;;;;;;-1:-1:-1;;2238:1774:36;-1:-1:-1;2238:1774:36;;-1:-1:-1;2238:1774:36;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;-1:-1:-1;;;;;2778:19160:92;4268:28:36;:::i;1925:240:76:-;;3518:62:75;3473:2;2778:19160:92;;3526:28:75;;3518:62;:::i;:::-;3620:119;;;;;;2778:19160:92;;;;3944:27:75;2778:19160:92;;;4032:81:75;;;;2778:19160:92;;3518:62:75;2778:19160:92;;3620:119:75;2778:19160:92;;3526:28:75;;3518:62;:::i;:::-;3620:119;;;;;1925:240:76;:::o;2778:19160:92:-;;;-1:-1:-1;;;2778:19160:92;;3620:119:75;2778:19160:92;;;;3473:2:75;2778:19160:92;;;;-1:-1:-1;;;2778:19160:92;;;;;;;9171:307:91;;9260:17;9311:1;2778:19160:92;;;;;;;9311:1:91;2778:19160:92;9328:95:91;9335:10;;;;;;9440:11;;9432:39;9440:11;;;9432:39;:::i;9328:95::-;9361:10;;-1:-1:-1;9361:10:91;2036:3;;;;;;;2778:19160:92;;;;;;;;9311:1:91;2778:19160:92;9328:95:91;;;7772:4824:70;2391:66;-1:-1:-1;;2778:19160:92;;-1:-1:-1;;;;;2778:19160:92;8327:79:70;8323:168;;2778:19160:92;;;;;;8521:27:70;;2778:19160:92;;2391:66:70;;8521:27;;8594:43;8608:29;;;:::i;:::-;2778:19160:92;;2391:66:70;;8594:43;8656:10;8663:3;8656:10;;8663:3;;-1:-1:-1;;;2778:19160:92;;;;8652:83:70;-1:-1:-1;;2391:66:70;2778:19160:92;;8805:196:70;;;;;;;2778:19160:92;8805:196:70;;9014;;;8805;9014;;2778:19160:92;9014:196:70;;9223;;;8805;9223;;2778:19160:92;9223:196:70;;9432;;;8805;9432;;2778:19160:92;9432:196:70;;9641;;;8805;9641;;2778:19160:92;9641:196:70;;9850;;;8805;9850;;2778:19160:92;9850:196:70;;10059;;;;8805;10059;;2778:19160:92;10059:196:70;;10268;;;;8805;10268;;2778:19160:92;10268:196:70;;10477;;;;8805;10477;;2778:19160:92;10477:196:70;;10686;;;;8805;10686;;2778:19160:92;10686:196:70;;10895;;;;8805;10895;;2778:19160:92;10895:196:70;;11104;;;;8805;11104;;2778:19160:92;11104:196:70;;11313;;;;;8805;11313;;2778:19160:92;11313:196:70;;11522:165;;;;;;11313:196;;;;;11104;;;;;10895;;;;;10686;;;;;10477;;;;;10268;2778:19160:92;10268:196:70;;;;;;10059;2778:19160:92;10059:196:70;;;;;;9850;2778:19160:92;9850:196:70;;;;;;9641;2778:19160:92;9641:196:70;;;;;;9432;2778:19160:92;9432:196:70;;;;;;9223;2778:19160:92;9223:196:70;;;;;;9014;2778:19160:92;9014:196:70;;;;;;8805;2778:19160:92;8805:196:70;;;;;;;9014;9223;9432;9641;9850;10059;10268;10477;10686;10895;11104;11313;11522:165;11732:24;2391:66;;;;;11932:62;;2778:19160:92;2391:66:70;;;11932:62;2778:19160:92;;2391:66:70;12346:39;2391:66;2778:19160:92;2391:66:70;2778:19160:92;;12416:163:70;2778:19160:92;;;;;;12416:17:70;:163;:17;;;:163;;;7772:4824;:::o;12416:163::-;-1:-1:-1;;;;;12478:26:70;;;:::i;:::-;2778:19160:92;12478:42:70;:101;;;7772:4824;:::o;12478:101::-;;;2778:19160:92;:::o;8652:83:70:-;2778:19160:92;;;8725:3:70;2778:19160:92;;8652:83:70;;;8323:168;8463:12;:::i;2778:19160:92:-;;;;;;;;;-1:-1:-1;;2778:19160:92;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;2778:19160:92;;-1:-1:-1;;2778:19160:92;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;7790:949:58:-;;;;7908:825;;;2778:19160:92;;;;7978:8:58;7974:349;2778:19160:92;;;8117:38:58;8118:18;:22;:18;;8116:54;8118:18;;:::i;:::-;:22;:::i;:::-;8117:38;:::i;:::-;8116:54;:::i;7974:349::-;8275:18;;8274:34;8275:18;;:::i;7908:825::-;2778:19160:92;;;;;8393:8:58;8389:334;2778:19160:92;;;8519:18:58;;;8518:34;8519:18;;:::i;8389:334::-;8656:18;;;;:::i;:::-;2778:19160:92;;-1:-1:-1;;2778:19160:92;;-1:-1:-1;;2778:19160:92;;;;;;;;8655:38:58;;8654:54;8655:38;;:::i;2533:168:70:-;2778:19160:92;;;1434:6:70;;;;;;;2778:19160:92;;2533:168:70;:::o;3508:1663:22:-;3741:1424;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;;;3741:1424:22;;;;;;;;;2778:19160:92;3741:1424:22;2778:19160:92;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;;;4268:28:36;;;3741:1424:22;;;;;;;3508:1663;3741:1424;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;2778:19160:92;3741:1424:22;2778:19160:92;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:36;;;3741:1424:22;;;;;;;2778:19160:92;;;;:::o;:::-;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2778:19160:92;;;;;;;;;;;;-1:-1:-1;;;2778:19160:92;;;;;;;8370:720:6;;-1:-1:-1;8507:421:6;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:6;;8942:15;;-1:-1:-1;;;;;;2778:19160:92;;8960:26:6;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;-1:-1:-1;;;;9033:40:6;;;-1:-1:-1;;;;;2778:19160:92;;;;9033:40:6;2778:19160:92;;;9033:40:6;8942:68;9009:1;8994:16;;8942:68;;1793:259:64;-1:-1:-1;;;1869:177:64;;;;-1:-1:-1;;;;;1869:177:64;;;;;;;;;769:648:63;858:5;;2778:19160:92;;875:536:63;;;-1:-1:-1;;;;;875:536:63;-1:-1:-1;875:536:63;;;;;-1:-1:-1;;;;;875:536:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:648::o;3258:4054:70:-;3406:459;;;;;;;;;;1434:6;3883:35;;3879:78;;6533:763;4465:13;;4492:160;;;;;2778:19160:92;4492:160:70;;;4669:13;3406:459;4669:13;;4665:83;;3258:4054;4776:3;4766:13;;4762:83;;3258:4054;4873:3;4863:13;;4859:83;;3258:4054;4970:4;4960:14;;4956:84;;3258:4054;5068:4;5058:14;;5054:84;;3258:4054;5166:4;5156:14;;5152:84;;3258:4054;4492:160;5254:14;;5250:84;;3258:4054;5362:5;5352:15;;5348:85;;3258:4054;5461:5;5451:15;;5447:85;;3258:4054;5560:5;5550:15;;5546:85;;3258:4054;5659:5;5649:15;;5645:85;;3258:4054;5758:6;5748:16;;5744:86;;3258:4054;5858:6;5848:16;;5844:86;;3258:4054;5958:6;5948:16;;5944:86;;3258:4054;6058:6;6048:16;;6044:86;;3258:4054;6158:7;6148:17;;6144:86;;3258:4054;6258:7;6248:17;;6244:85;;3258:4054;6357:7;6347:17;;6343:83;;3258:4054;6454:7;6444:17;6440:78;;3258:4054;-1:-1:-1;;6533:763:70;;3258:4054;6533:763;5068:4;6533:763;3258:4054;:::o;6533:763::-;-1:-1:-1;;6533:763:70;;;6440:78;6485:25;2778:19160:92;;;;;;6440:78:70;;6343:83;6388:30;2778:19160:92;;;;;;6343:83:70;;6244:85;2778:19160:92;6289:32:70;2778:19160:92;;;6244:85:70;;;6144:86;2778:19160:92;6189:33:70;2778:19160:92;;;6144:86:70;;;6044;2778:19160:92;6088:34:70;2778:19160:92;;;6044:86:70;;;5944;2778:19160:92;5988:34:70;2778:19160:92;;;5944:86:70;;;5844;2778:19160:92;5888:34:70;2778:19160:92;;;5844:86:70;;;5744;2778:19160:92;5788:34:70;2778:19160:92;;;5744:86:70;;;5645:85;2778:19160:92;5688:34:70;2778:19160:92;;;5645:85:70;;;5546;2778:19160:92;5589:34:70;2778:19160:92;;;5546:85:70;;;5447;2778:19160:92;5490:34:70;2778:19160:92;;;5447:85:70;;;5348;2778:19160:92;5391:34:70;2778:19160:92;;;5348:85:70;;;5250:84;2778:19160:92;5292:34:70;2778:19160:92;;;5250:84:70;;;5152;2778:19160:92;5194:34:70;2778:19160:92;;;5152:84:70;;;5054;2778:19160:92;5096:34:70;2778:19160:92;;;5054:84:70;;;4956;2778:19160:92;4998:34:70;2778:19160:92;;;4956:84:70;;;4859:83;2778:19160:92;4900:34:70;2778:19160:92;;;4859:83:70;;;4762;2778:19160:92;4803:34:70;2778:19160:92;;;4762:83:70;;;4665;2778:19160:92;4706:34:70;2778:19160:92;;;4665:83:70;;;3879:78;3952:4;3920:20;;;1552:143:64;;;;;;;;","linkReferences":{},"immutableReferences":{"16562":[{"start":1982,"length":32},{"start":2787,"length":32},{"start":4063,"length":32},{"start":5844,"length":32},{"start":6408,"length":32},{"start":6986,"length":32},{"start":7602,"length":32},{"start":7809,"length":32},{"start":7989,"length":32}],"16566":[{"start":1008,"length":32},{"start":7156,"length":32},{"start":7393,"length":32},{"start":9309,"length":32}],"16570":[{"start":1583,"length":32},{"start":2106,"length":32}],"16574":[{"start":1889,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","contractVersion()":"a0a8e460","getLimitOrderConfig()":"e3e8580c","msgSender()":"d737d0c7","owner()":"8da5cb5b","pendingOwner()":"e30c3978","poolManager()":"dc4c90d3","renounceOwnership()":"715018a6","setLimitOrderConfig((uint256[],uint256[]))":"18ed2974","swapRouter()":"c31c9c07","swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":"c48677f4","transferOwnership(address)":"f2fde38b","unlockCallback(bytes)":"91dd7346","zoraLimitOrderBook()":"6baaa167"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"zoraLimitOrderBook_\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"swapRouter_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permit2_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyV4Route\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientInputCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLimitOrderConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMultiple\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPercent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPoolManager\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsafeCast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"V3RouteDoesNotConnectToV4RouteStart\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroSwapDelta\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"name\":\"LimitOrderConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"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\"}],\"indexed\":false,\"internalType\":\"struct PoolKey\",\"name\":\"poolKey\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickBeforeSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickAfterSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount0\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount1\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"multiple\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct SwapWithLimitOrders.CreatedOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"SwapWithLimitOrdersExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLimitOrderConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setLimitOrderConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"limitOrderConfig\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"inputCurrency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"v3Route\",\"type\":\"bytes\"},{\"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\":\"v4Route\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct SwapWithLimitOrders.SwapWithLimitOrdersParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swapWithLimitOrders\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraLimitOrderBook\",\"outputs\":[{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"oveddan\",\"details\":\"This contract uses the poolManager unlock/callback pattern to execute swaps, place limit orders based on the tick range crossed during the swap, and attempt to fill those orders in a single transaction. Users call swapWithLimitOrders() directly, which triggers the unlock callback flow. Uses Permit2 for token approvals, matching the universal-router pattern.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"params\":{\"amount0\":\"The amount of currency0 swapped (negative = paid, positive = received)\",\"amount1\":\"The amount of currency1 swapped (negative = paid, positive = received)\",\"orders\":\"Array of created orders with their configuration. Only includes orders that were actually created (skipped rungs due to rounding are omitted).\",\"sqrtPriceX96\":\"The sqrt price after the swap, used for USD price computation\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"params\":{\"owner_\":\"The owner address\",\"permit2_\":\"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)\",\"poolManager_\":\"The Uniswap V4 pool manager\",\"swapRouter_\":\"The Uniswap V3 swap router\",\"zoraLimitOrderBook_\":\"The limit order book contract\"}},\"getLimitOrderConfig()\":{\"returns\":{\"_0\":\"The current limit order configuration\"}},\"msgSender()\":{\"returns\":{\"_0\":\"The address of the message sender.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"details\":\"Only callable by the owner\",\"params\":{\"config\":\"The new limit order configuration\"}},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"params\":{\"params\":\"The swap and limit order parameters\"},\"returns\":{\"delta\":\"The balance delta from the swap\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"unlockCallback(bytes)\":{\"details\":\"This function executes V4 swaps and settles coins to recipient\",\"params\":{\"data\":\"Encoded CallbackData\"},\"returns\":{\"_0\":\"Encoded UnlockResult containing coin amount and pool info\"}}},\"title\":\"SwapWithLimitOrders\",\"version\":1},\"userdoc\":{\"errors\":{\"EmptyV4Route()\":[{\"notice\":\"Error thrown when v4Route is empty\"}],\"InsufficientOutputAmount()\":[{\"notice\":\"Error thrown when final swap output is below minimum\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidLimitOrderConfig()\":[{\"notice\":\"Error thrown when config does not match canonical config\"}],\"InvalidMultiple()\":[{\"notice\":\"A multiple is \\u2264 1.0x\"}],\"InvalidPercent()\":[{\"notice\":\"A percentage is zero\"}],\"LengthMismatch()\":[{\"notice\":\"Multiples and percentages arrays have different lengths\"}],\"OnlyPoolManager()\":[{\"notice\":\"Error thrown when caller is not the pool manager\"}],\"PercentOverflow()\":[{\"notice\":\"Percentages sum exceeds 100%\"}],\"UnsafeCast()\":[{\"notice\":\"Thrown when a valude greater than type(uint160).max is cast to uint160\"}],\"ZeroSwapDelta()\":[{\"notice\":\"Error thrown when swap delta is zero\"}]},\"events\":{\"LimitOrderConfigUpdated(uint256[],uint256[])\":{\"notice\":\"Emitted when limit order config is updated\"},\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"notice\":\"Emitted when a swap with limit order placement is executed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor\"},\"contractVersion()\":{\"notice\":\"The version of the contract\"},\"getLimitOrderConfig()\":{\"notice\":\"Returns the current limit order configuration\"},\"msgSender()\":{\"notice\":\"Returns the address of the message sender.\"},\"poolManager()\":{\"notice\":\"The Uniswap V4 pool manager\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"notice\":\"Sets the canonical limit order configuration\"},\"swapRouter()\":{\"notice\":\"The Uniswap V3 swap router\"},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"notice\":\"Executes a swap with automatic limit order placement and filling\"},\"unlockCallback(bytes)\":{\"notice\":\"Callback function called by the pool manager during unlock\"},\"zoraLimitOrderBook()\":{\"notice\":\"The limit order book contract\"}},\"notice\":\"Standalone router contract that executes swaps with automatic limit order placement and filling.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/router/SwapWithLimitOrders.sol\":\"SwapWithLimitOrders\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol\":{\"keccak256\":\"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4\",\"dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol\":{\"keccak256\":\"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace\",\"dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85\",\"dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol\":{\"keccak256\":\"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a\",\"dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0xa882ec8dc341d8a2651112ee0aa105480d0e306d547a81f05a1fb2d64d6ccb8f\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://e9482377d0c678640fdb3b0c5c5c9086bc2d17538693fedfbc0fc184b4d100dc\",\"dweb:/ipfs/Qmbgq8ZP5qtM9pwqLeLAiGD9ic8Zs6bqS8WpkjVnqnkPpt\"]},\"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol\":{\"keccak256\":\"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b\",\"dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx\"]},\"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol\":{\"keccak256\":\"0x02cf5e8af66c30bc6ec17d437a3a05fc76854abde7ca41220a1f15e1bbd974d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9bf15fb84592bd11ac9abeed5313f0942066fdafa2f08f41af69c87999aef7ee\",\"dweb:/ipfs/QmSbuxp5xuRExMUKQnYV1rjqQzjuGNHVbXddxwSqWT6GaD\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol\":{\"keccak256\":\"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070\",\"dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol\":{\"keccak256\":\"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a\",\"dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol\":{\"keccak256\":\"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298\",\"dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":{\"keccak256\":\"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74\",\"dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol\":{\"keccak256\":\"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7\",\"dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol\":{\"keccak256\":\"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c\",\"dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/IVersionedContract.sol\":{\"keccak256\":\"0x6e50d9eb2a9dcf107dd695c6d4c38292eb55562df1a0f59b9482943945413e66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c03ad9fd08a3ccb0b9b772d4ace588cc16d708aeb25e87cb7f4b77e45411eb32\",\"dweb:/ipfs/QmdsNvCqYCwhLg7ZKDG2LuEAwA5azKYQbqNZXpcPzS9tn8\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol\":{\"keccak256\":\"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485\",\"dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9\",\"dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol\":{\"keccak256\":\"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14\",\"dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol\":{\"keccak256\":\"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4\",\"dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b\",\"dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px\"]},\"src/libs/SwapLimitOrders.sol\":{\"keccak256\":\"0xcffca6d7061453cbdb2918f800ce40566d375c43ad17756430f4ec43bdc69934\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://d4dab36d3f9c53457533a42783282bb50437066fcf2ecacf374b08918190b906\",\"dweb:/ipfs/QmfNtG6LERr8woggizhEAnUYXS4Uh3VyainizJc32nP7JD\"]},\"src/router/SwapWithLimitOrders.sol\":{\"keccak256\":\"0xa19dccb1356f3994e5280fce6c997fccfdd9a18a27d5208f26f0115b98b21415\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://5d436bbd0cd05c2cafbbfc69529b0a2de834def92d1e548102429968a6eb51fb\",\"dweb:/ipfs/Qmaif7VRWxgE1TJqwZTZjVNwx9phxfeUKMDkzccLKUG8gx\"]},\"src/version/ContractVersionBase.sol\":{\"keccak256\":\"0x12bffced58daebae11dc23ee0ff1a2bdd09f81ebf8e16b0e0a4baa47a2d2023e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96f42a3742ce604f2c6b8606c81cfc3270a464f7a3186330c29fabb92bff826\",\"dweb:/ipfs/QmYYgbJ1ALoYKCjpKXMpVuJuZKXoinQXvXLr2V8mnJGER5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"contract IZoraLimitOrderBook","name":"zoraLimitOrderBook_","type":"address"},{"internalType":"contract ISwapRouter","name":"swapRouter_","type":"address"},{"internalType":"address","name":"permit2_","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EmptyV4Route"},{"inputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"availableAmount","type":"uint256"}],"type":"error","name":"InsufficientInputCurrency"},{"inputs":[],"type":"error","name":"InsufficientOutputAmount"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[],"type":"error","name":"InvalidLimitOrderConfig"},{"inputs":[],"type":"error","name":"InvalidMultiple"},{"inputs":[],"type":"error","name":"InvalidPercent"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"OnlyPoolManager"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PercentOverflow"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnsafeCast"},{"inputs":[],"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart"},{"inputs":[],"type":"error","name":"ZeroSwapDelta"},{"inputs":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"percentages","type":"uint256[]","indexed":false}],"type":"event","name":"LimitOrderConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"struct PoolKey","name":"poolKey","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"}],"indexed":false},{"internalType":"int24","name":"tickBeforeSwap","type":"int24","indexed":false},{"internalType":"int24","name":"tickAfterSwap","type":"int24","indexed":false},{"internalType":"int128","name":"amount0","type":"int128","indexed":false},{"internalType":"int128","name":"amount1","type":"int128","indexed":false},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint256","name":"multiple","type":"uint256"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"indexed":false}],"type":"event","name":"SwapWithLimitOrdersExecuted","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[],"stateMutability":"pure","type":"function","name":"contractVersion","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLimitOrderConfig","outputs":[{"internalType":"struct LimitOrderConfig","name":"","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"msgSender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct LimitOrderConfig","name":"config","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}],"stateMutability":"nonpayable","type":"function","name":"setLimitOrderConfig"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct LimitOrderConfig","name":"limitOrderConfig","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]},{"internalType":"address","name":"inputCurrency","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"bytes","name":"v3Route","type":"bytes"},{"internalType":"struct PoolKey[]","name":"v4Route","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":"minAmountOut","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"swapWithLimitOrders","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraLimitOrderBook","outputs":[{"internalType":"contract IZoraLimitOrderBook","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"params":{"owner_":"The owner address","permit2_":"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)","poolManager_":"The Uniswap V4 pool manager","swapRouter_":"The Uniswap V3 swap router","zoraLimitOrderBook_":"The limit order book contract"}},"getLimitOrderConfig()":{"returns":{"_0":"The current limit order configuration"}},"msgSender()":{"returns":{"_0":"The address of the message sender."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setLimitOrderConfig((uint256[],uint256[]))":{"details":"Only callable by the owner","params":{"config":"The new limit order configuration"}},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"params":{"params":"The swap and limit order parameters"},"returns":{"delta":"The balance delta from the swap"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"unlockCallback(bytes)":{"details":"This function executes V4 swaps and settles coins to recipient","params":{"data":"Encoded CallbackData"},"returns":{"_0":"Encoded UnlockResult containing coin amount and pool info"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor"},"contractVersion()":{"notice":"The version of the contract"},"getLimitOrderConfig()":{"notice":"Returns the current limit order configuration"},"msgSender()":{"notice":"Returns the address of the message sender."},"poolManager()":{"notice":"The Uniswap V4 pool manager"},"setLimitOrderConfig((uint256[],uint256[]))":{"notice":"Sets the canonical limit order configuration"},"swapRouter()":{"notice":"The Uniswap V3 swap router"},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"notice":"Executes a swap with automatic limit order placement and filling"},"unlockCallback(bytes)":{"notice":"Callback function called by the pool manager during unlock"},"zoraLimitOrderBook()":{"notice":"The limit order book contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/router/SwapWithLimitOrders.sol":"SwapWithLimitOrders"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol":{"keccak256":"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c","urls":["bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4","dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol":{"keccak256":"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa","urls":["bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace","dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol":{"keccak256":"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1","urls":["bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85","dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol":{"keccak256":"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389","urls":["bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a","dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0xa882ec8dc341d8a2651112ee0aa105480d0e306d547a81f05a1fb2d64d6ccb8f","urls":["bzz-raw://e9482377d0c678640fdb3b0c5c5c9086bc2d17538693fedfbc0fc184b4d100dc","dweb:/ipfs/Qmbgq8ZP5qtM9pwqLeLAiGD9ic8Zs6bqS8WpkjVnqnkPpt"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol":{"keccak256":"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683","urls":["bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b","dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol":{"keccak256":"0x02cf5e8af66c30bc6ec17d437a3a05fc76854abde7ca41220a1f15e1bbd974d3","urls":["bzz-raw://9bf15fb84592bd11ac9abeed5313f0942066fdafa2f08f41af69c87999aef7ee","dweb:/ipfs/QmSbuxp5xuRExMUKQnYV1rjqQzjuGNHVbXddxwSqWT6GaD"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol":{"keccak256":"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d","urls":["bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070","dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol":{"keccak256":"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4","urls":["bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a","dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol":{"keccak256":"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a","urls":["bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298","dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":{"keccak256":"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75","urls":["bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74","dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol":{"keccak256":"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e","urls":["bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7","dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol":{"keccak256":"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84","urls":["bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c","dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/IVersionedContract.sol":{"keccak256":"0x6e50d9eb2a9dcf107dd695c6d4c38292eb55562df1a0f59b9482943945413e66","urls":["bzz-raw://c03ad9fd08a3ccb0b9b772d4ace588cc16d708aeb25e87cb7f4b77e45411eb32","dweb:/ipfs/QmdsNvCqYCwhLg7ZKDG2LuEAwA5azKYQbqNZXpcPzS9tn8"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol":{"keccak256":"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64","urls":["bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485","dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol":{"keccak256":"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1","urls":["bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9","dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol":{"keccak256":"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326","urls":["bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14","dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol":{"keccak256":"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff","urls":["bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4","dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4"],"license":"GPL-2.0-or-later"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18","urls":["bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b","dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/SwapLimitOrders.sol":{"keccak256":"0xcffca6d7061453cbdb2918f800ce40566d375c43ad17756430f4ec43bdc69934","urls":["bzz-raw://d4dab36d3f9c53457533a42783282bb50437066fcf2ecacf374b08918190b906","dweb:/ipfs/QmfNtG6LERr8woggizhEAnUYXS4Uh3VyainizJc32nP7JD"],"license":"ZORA-DELAYED-OSL-v1"},"src/router/SwapWithLimitOrders.sol":{"keccak256":"0xa19dccb1356f3994e5280fce6c997fccfdd9a18a27d5208f26f0115b98b21415","urls":["bzz-raw://5d436bbd0cd05c2cafbbfc69529b0a2de834def92d1e548102429968a6eb51fb","dweb:/ipfs/Qmaif7VRWxgE1TJqwZTZjVNwx9phxfeUKMDkzccLKUG8gx"],"license":"ZORA-DELAYED-OSL-v1"},"src/version/ContractVersionBase.sol":{"keccak256":"0x12bffced58daebae11dc23ee0ff1a2bdd09f81ebf8e16b0e0a4baa47a2d2023e","urls":["bzz-raw://b96f42a3742ce604f2c6b8606c81cfc3270a464f7a3186330c29fabb92bff826","dweb:/ipfs/QmYYgbJ1ALoYKCjpKXMpVuJuZKXoinQXvXLr2V8mnJGER5"],"license":"MIT"}},"version":1},"id":92}
|