{"abi":[{"type":"constructor","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"akAddressToPoolManager","inputs":[{"name":"akAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"akAddressToPositionManager","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"akToStashedTokens","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"feeReceiver","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"claimFees","inputs":[{"name":"akAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimFees","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"poolManager","type":"address","internalType":"address"},{"name":"akAddress","type":"address","internalType":"address"},{"name":"poolConfig","type":"tuple","internalType":"struct PoolConfig","components":[{"name":"startingTick","type":"int24","internalType":"int24"},{"name":"baseToken","type":"address","internalType":"address"},{"name":"tickSpacing","type":"int24","internalType":"int24"}]},{"name":"positionConfigs","type":"tuple[]","internalType":"struct InitialPositionConfig[]","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"akAmount","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"},{"name":"feeReceiver","type":"address","internalType":"address"},{"name":"escrowType","type":"uint256","internalType":"uint256"}]},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"pool","type":"bytes32","internalType":"bytes32"},{"name":"positionManager","type":"address","internalType":"address"},{"name":"isToken0","type":"bool","internalType":"bool"},{"name":"positionIds","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"decreaseLiquidityForPosition","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"feeReceiver","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exactInOnPool","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"isBuy","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amountInUsed","type":"uint256","internalType":"uint256"},{"name":"amountOutReceived","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"feeSplit","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFeeSplit"}],"stateMutability":"view"},{"type":"function","name":"increaseLiquidityForPosition","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0Used","type":"uint256","internalType":"uint256"},{"name":"amount1Used","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"isPoolManagerRegistered","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"feeReceiver","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"amount0Used","type":"uint256","internalType":"uint256"},{"name":"amount1Used","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"operator","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":"registerContract","inputs":[{"name":"_contract","type":"address","internalType":"address"},{"name":"isRegistered","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerPoolManager","inputs":[{"name":"poolManager","type":"address","internalType":"address"},{"name":"isRegistered","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeSplit","inputs":[{"name":"_feeSplit","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperator","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"topUpAk","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFromAk","inputs":[{"name":"akAddress","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AKStashTopUp","inputs":[{"name":"akAddress","type":"address","indexed":false,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AKStashWithdraw","inputs":[{"name":"akAddress","type":"address","indexed":false,"internalType":"address"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FeeSplitChanged","inputs":[{"name":"newFeeSplit","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorChanged","inputs":[{"name":"operator","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":"PoolManagerRegistered","inputs":[{"name":"akAddress","type":"address","indexed":true,"internalType":"address"},{"name":"poolManager","type":"address","indexed":true,"internalType":"address"},{"name":"positionManager","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PoolManagerRegistered","inputs":[{"name":"poolManager","type":"address","indexed":false,"internalType":"address"},{"name":"isWhitelisted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RegisteredContract","inputs":[{"name":"_contract","type":"address","indexed":false,"internalType":"address"},{"name":"isRegistered","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"error","name":"BadPositionConfig","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidAmount","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":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"Unavailable","inputs":[]},{"type":"error","name":"UnsupportedToken","inputs":[]}],"bytecode":{"object":"0x6080346100e157601f61271538819003918201601f19168301916001600160401b038311848410176100e5578084926020946040528339810103126100e157516001600160a01b038116908190036100e15780156100ce575f80546001600160a01b031981168317825560405192916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005561261b90816100fa8239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f803560e01c806305be00bd14611a6f5780630ff4f839146119d657806315a0ea6a146119465780632a487f4f146119065780632b10d5a1146114c75780632c83433c146114425780633067e6b81461138157806336fd6911146113445780633e12170f146112a157806344d17187146111ea578063566fbf9b14611109578063570ca735146110e05780635c46ff99146110335780635ffb842f14610c765780636373ea6914610c4d5780636456e11414610b67578063715018a614610b0d5780638da5cb5b14610ae657806395bdb53514610a3a5780639677713b14610906578063b3ab15fb1461089e578063baab915c146106a0578063c4113b8814610603578063c88d9ba6146104e6578063e803ba8514610493578063f2fde38b1461040d5763fcb5ce2614610143575f80fd5b3461040a5760a036600319011261040a5761015c611cfe565b90604435606435926084356001600160401b03811161040657610183903690600401611d6e565b9361018c612512565b61019461218d565b82159081806103fe575b6103ef576001600160a01b036101b3846121c5565b169060405194634eb1c24560e11b8652604086600481865afa9485156103e457879688966103ad575b5060018060a01b03169384885260056020526040882060018060a01b0388165f526020528160405f2054108015610386575b61037757918760409492610260999a941561035e575b82610345575b8551998a9586948593636efb8c9960e01b8552602435600486015260248501526044840152608060648401526084830190611f34565b03925af192831561033a579460409581958295610305575b50856102d6575b50836102a6575b50505060015f805160206125c68339815191525582519182526020820152f35b859181526005602052209060018060a01b03165f52602052825f206102cc82825461211c565b90555f8080610286565b82825260056020528682209060018060a01b03165f52602052855f206102fd86825461211c565b90555f61027f565b909450610329919550863d8811610333575b6103218183611d4d565b810190611f1e565b949094935f610278565b503d610317565b6040513d87823e3d90fd5b61035983856001600160a01b038b16612404565b61022a565b61037281856001600160a01b038c16612404565b610224565b63356680b760e01b8852600488fd5b5084885260056020526040882060018060a01b0387165f526020528260405f20541061020e565b9095506103d391965060403d6040116103dd575b6103cb8183611d4d565b810190611efd565b959095945f6101dc565b503d6103c1565b6040513d89823e3d90fd5b63162908e360e11b8552600485fd5b50801561019e565b8380fd5b80fd5b503461040a57602036600319011261040a57610427611cfe565b61042f6121e8565b6001600160a01b0316801561047f5781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b503461040a57604036600319011261040a5760406104af611cfe565b916104b8611d14565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461040a576104f536611e70565b906104fe612512565b61050661218d565b6001600160a01b0390610518906121c5565b1682604051926338a67fab60e11b84528184600481865afa9384156105f85782946105d4575b50815b84518110156105bf57610554818661214e565b51843b1561040657838361057d926040519384928392630e89439b60e01b8452600484016120be565b038183895af19081156105b457849161059b575b5050600101610541565b816105a591611d4d565b6105b057825f610591565b8280fd5b6040513d86823e3d90fd5b8260015f805160206125c68339815191525580f35b6105f19194503d8084833e6105e98183611d4d565b810190612129565b925f61053e565b6040513d84823e3d90fd5b503461040a578061061336611dc3565b9161061c612512565b61062461218d565b6001600160a01b0390610636906121c5565b1691823b1561069b5761066292849283604051809681958294630c8fd6ed60e41b8452600484016120be565b03925af180156105f857610686575b5060015f805160206125c68339815191525580f35b8161069091611d4d565b61040a57805f610671565b505050fd5b503461040a576106af36611eaf565b92916106b96121e8565b6106c161218d565b831561088f576004919060406001600160a01b036106de836121c5565b16815194858092634eb1c24560e11b82525afa80156105b4578493859161086a575b506001600160a01b03838116941684141590849082610856575b50506108475760018060a01b038116808552600560205260408520845f526020528560405f205410610838578452600560205260408420835f5260205260405f2061076686825461211c565b9055835460405163a9059cbb60e01b86526001600160a01b0390911660045260248690529260208560448180855af16001865114811615610819575b846040521561080757506001600160a01b0390811683521660208201526040810192909252907f30f1be9b92a40647a5264af56d1712a73293b28226e97f67f24b594531668e259080606081015b0390a160015f805160206125c68339815191525580f35b635274afe760e01b8552600452602484fd5b600181151661082f57813b15153d1516166107a2565b843d87823e3d90fd5b63356680b760e01b8552600485fd5b63350b944160e11b8452600484fd5b6001600160a01b031614159050835f61071a565b905061088691935060403d6040116103dd576103cb8183611d4d565b9290925f610700565b63162908e360e11b8352600483fd5b503461040a57602036600319011261040a576108b8611cfe565b6108c06121e8565b600180546001600160a01b0319166001600160a01b039290921691821790557f4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e548280a280f35b503461040a5761091536611eaf565b929161091f61218d565b831561088f57600460406001600160a01b0361093a846121c5565b16815192838092634eb1c24560e11b82525afa80156105b45784918591610a19575b506001600160a01b03848116921682141590829082610a05575b505061084757846109db7f830654e92c5a06574045ef466735f715b6349b88ee11226da5d88546b278b47995966107f09360018060a01b0386168952600560205260408920815f5260205260405f206109d0838254612040565b905530903390612372565b604080516001600160a01b0394851681529490931660208501529183019190915281906060820190565b6001600160a01b031614159050815f610976565b9050610a34915060403d6040116103dd576103cb8183611d4d565b5f61095c565b503461040a57604036600319011261040a57610a54611cfe565b90610a5d611d3e565b610a656121e8565b6001600160a01b038316928315610ad75782937f2bd57ae5d645c5a1504782e37691625e5005028bb66e2a7c56e70410690e8e4693526004602052610ab982604086209060ff801983541691151516179055565b604080516001600160a01b039290921682529115156020820152a180f35b63e6c4247b60e01b8352600483fd5b503461040a578060031936011261040a57546040516001600160a01b039091168152602090f35b503461040a578060031936011261040a57610b266121e8565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461040a57610b7636611e70565b90610b7f612512565b610b8761218d565b6001600160a01b0390610b99906121c5565b1682604051926338a67fab60e11b84528184600481865afa9384156105f8578294610c31575b50815b84518110156105bf57610bd5818661214e565b51843b15610406578383610bfe926040519384928392630c8fd6ed60e41b8452600484016120be565b038183895af19081156105b4578491610c1c575b5050600101610bc2565b81610c2691611d4d565b6105b057825f610c12565b610c469194503d8084833e6105e98183611d4d565b925f610bbf565b503461040a578060031936011261040a576002546040516001600160a01b039091168152602090f35b503461040a5760e036600319011261040a57610c90611cfe565b906024359160443592606435918260020b80930361040657608435928360020b80940361102f5760a4356001600160a01b0381169081900361102b5760c4356001600160401b03811161102757610ceb903690600401611d6e565b94610cf4612512565b610cfc61218d565b841595868061101f575b611010576001600160a01b03610d1b866121c5565b169260405199634eb1c24560e11b8b5260408b600481885afa968715611005578a9b8b98610fde575b5060018060a01b031698898b52600560205260408b2060018060a01b038d165f526020528860405f2054108015610fb7575b610fa85715610f8f575b80610f76575b6040519361010085018581106001600160401b03821117610f625760409081526001600160a01b03808e168752898116602088019081528288019b8c526060888101958652608089019a8b5260a089019485523060c08a0190815260e08a019788529351639c2bf9a760e01b8152600481018f90529851831660248a01529051821660448901529a516064880152925160848701529651600290810b60a48701529051900b60c48501529451851660e4840152519093166101048201526101406101248201529391849190829088908290610e6690610144830190611f34565b03925af19283156105b4578480938195610f15575b5060609684610ee4575b5084610eb2575b50505060015f805160206125c68339815191525560405192835260208301526040820152f35b60409181526005602052209060018060a01b03165f5260205260405f20610eda83825461211c565b90555f8080610e8c565b8282526005602052604082209060018060a01b03165f5260205260405f20610f0d85825461211c565b90555f610e85565b955092509492506060843d606011610f5a575b81610f3560609383611d4d565b81010312610f56578351602085015160409095015193959094926060610e7b565b5080fd5b3d9150610f28565b634e487b7160e01b8c52604160045260248cfd5b610f8a81866001600160a01b038a16612404565b610d86565b610fa388866001600160a01b038e16612404565b610d80565b63356680b760e01b8b5260048bfd5b50898b52600560205260408b2060018060a01b0389165f526020528160405f205410610d76565b909750610ffb919b5060403d6040116103dd576103cb8183611d4d565b9a909a965f610d44565b6040513d8c823e3d90fd5b63162908e360e11b8852600488fd5b508815610d06565b8680fd5b8580fd5b8480fd5b503461040a57604036600319011261040a578061104e611cfe565b61105661218d565b816001600160a01b03611068836121c5565b1660246040518095819363158d14e960e31b8352833560048401525af19081156110d55761109d9284926110b1575b5061220e565b60015f805160206125c68339815191525580f35b6110ce9192503d8086833e6110c68183611d4d565b81019061201b565b905f611097565b6040513d85823e3d90fd5b503461040a578060031936011261040a576001546040516001600160a01b039091168152602090f35b503461040a576111608161111c36611dc3565b90611128939293612512565b61113061218d565b6001600160a01b03611141856121c5565b16908360405180978195829463618bc65d60e11b8452600484016120be565b03925af19182156110d557926111b3938180946111b7575b505081611189849261118e9461220e565b612541565b60015f805160206125c683398151915255604051918291602083526020830190611e08565b0390f35b611189945061118e939250906111de913d8091833e6111d68183611d4d565b8101906120d5565b91909193819350611178565b503461040a57611239816111fd36611dc3565b90611209939293612512565b6001600160a01b0361121a856121c5565b16908360405180978195829463fe9d930360e01b8452600484016120be565b03925af19182156110d557926111b393818094611276575b50508161118984926112629461220e565b604051918291602083526020830190611e08565b611189945061126293925090611295913d8091833e6111d68183611d4d565b91909193819350611251565b5034611340576112b036611dc3565b916112b9612512565b6112c161218d565b6001600160a01b03906112d3906121c5565b1691823b15611340576112ff925f9283604051809681958294630e89439b60e01b8452600484016120be565b03925af1801561133557611322575060015f805160206125c68339815191525580f35b61132e91505f90611d4d565b5f80610671565b6040513d5f823e3d90fd5b5f80fd5b34611340576020366003190112611340576001600160a01b03611365611cfe565b165f526004602052602060ff60405f2054166040519015158152f35b34611340576020366003190112611340576001600160a01b036113a2611cfe565b165f908152600360205260409020546001600160a01b031680156114345760206004916040519283809263dc4c90d360e01b82525afa8015611335575f906113fa575b6040516001600160a01b039091168152602090f35b506020813d60201161142c575b8161141460209383611d4d565b8101031261134057611427602091611ee9565b6113e5565b3d9150611407565b6282b42960e81b5f5260045ffd5b346113405760203660031901126113405761145b611cfe565b6114636121e8565b6001600160a01b031680156114b8576020817f383b72b5dc93c1e8b72b286beaa7159d0f197ea394eb23eccc52f91ab9f0504f926bffffffffffffffffffffffff60a01b6002541617600255604051908152a1005b63e6c4247b60e01b5f5260045ffd5b346113405760e0366003190112611340576114e0611cfe565b6114e8611d14565b9060603660431901126113405760a4356001600160401b03811161134057366023820112156113405780600401356001600160401b0381116113405736602460c08302840101116113405760c4356001600160401b03811161134057611552903690600401611d6e565b9361155b612176565b61156361218d565b6001600160a01b03169081156114b8576001600160a01b0384165f8181526004602052604090205490919060ff1615611434575f95865b828810156115c0576115b8600191606460c08b028901013590612040565b97019661159a565b86869180156118f7576115df916115d98230338b612372565b87612404565b604435918260020b9283810361134057506064356001600160a01b0381169390849003611340576084358060020b9081810361134057506040519060808201928284106001600160401b038511176118e3576040938452825260208201898152838301968752606083019182529251636738a0fb60e11b81529151600290810b600484015292516001600160a01b0390811660248085019190915296511660448301525190910b606482015260c0608482015260c481018590529260e4840192849291015f5b8681106118655750506116c65f9383926003198483030160a4850152611f34565b038183875af1928315611335575f925f905f935f966117fb575b508551036117ec5781156114b857815f52600460205260ff60405f20541615611434575f868152600360205260409020546001600160a01b03166117dd578484848893845f52600360205260405f209060018060a01b031690816bffffffffffffffffffffffff60a01b825416179055806040519687967f798173c48852737ee4b41b552a4431541aa1c4e68d4e3ac3298fe1bdf26a75a75f80a460015f805160206125c68339815191525560808501928552602085015215156040840152608060608401528151809152602060a084019201905f5b8181106117c4575050500390f35b82518452859450602093840193909201916001016117b6565b63a3b8915f60e01b5f5260045ffd5b63195f807960e01b5f5260045ffd5b945094505090503d805f843e6118118184611d4d565b8201906080838303126113405782519161182d60208501611ee9565b9360408101519182151583036113405760608201516001600160401b0381116113405761185a9201612061565b9293909294876116e0565b9192509260c08060019261187887611e62565b60020b815261188960208801611e62565b60020b602082015260408701356040820152838060a01b036118ad60608901611d2a565b166060820152838060a01b036118c560808901611d2a565b16608082015260a087013560a08201520194019101908492916116a5565b634e487b7160e01b5f52604160045260245ffd5b63162908e360e11b5f5260045ffd5b34611340576020366003190112611340576001600160a01b03611927611cfe565b165f526003602052602060018060a01b0360405f205416604051908152f35b34611340576020366003190112611340575f611960611cfe565b61196861218d565b816001600160a01b0361197a836121c5565b1660046040518095819363d294f09360e01b83525af1908115611335576119a7925f926119ba575061220e565b60015f805160206125c683398151915255005b6119cf9192503d805f833e6110c68183611d4d565b9083611097565b34611340576040366003190112611340576119ef611cfe565b6119f7611d3e565b6119ff6121e8565b6001600160a01b0382169182156114b8577fa58a7a7166bfb44d0184d9af3d57de7246f3715ea71b9f14df49188da3707ec5925f526006602052611a528260405f209060ff801983541691151516179055565b604080516001600160a01b039290921682529115156020820152a1005b346113405760a036600319011261134057611a88611cfe565b611a90611d14565b90606435906044358215158303611340576084356001600160401b03811161134057611ac0903690600401611d6e565b93611ac9612176565b611ad161218d565b81156118f7576001600160a01b03611ae8846121c5565b169460405194634eb1c24560e11b86526040866004818a5afa958615611335575f905f97611cda575b506040516316f0115b60e01b8152956020876004818c5afa968715611335575f97611c9b575b50959694956004956020936001600160a01b0380851693169290921492909115611c84578215611c7d57505b5015965b60405163dc4c90d360e01b815294859182905afa928315611335575f93611c37575b50604094611bda5f92875198899788968795637b3b9ed760e11b8752600487015233602487015260018060a01b0316604486015260648501521515608484015260c060a484015260c4830190611f34565b03926001600160a01b03165af1908115611335576040915f915f91611c18575b5060015f805160206125c68339815191525582519182526020820152f35b9050611c319150823d8411610333576103218183611d4d565b83611bfa565b9092506020813d602011611c75575b81611c5360209383611d4d565b8101031261134057604094611bda611c6b5f93611ee9565b9492505094611b89565b3d9150611c46565b9050611b63565b908215611c9457505b5096611b67565b9050611c8d565b9291959650966020833d602011611cd2575b81611cba60209383611d4d565b81010312611340579151919691959490916020611b37565b3d9150611cad565b9050611cf691965060403d6040116103dd576103cb8183611d4d565b959088611b11565b600435906001600160a01b038216820361134057565b602435906001600160a01b038216820361134057565b35906001600160a01b038216820361134057565b60243590811515820361134057565b90601f801991011681019081106001600160401b038211176118e357604052565b81601f82011215611340578035906001600160401b0382116118e35760405192611da2601f8401601f191660200185611d4d565b8284526020838301011161134057815f926020809301838601378301015290565b6060600319820112611340576004356001600160a01b0381168103611340579160243591604435906001600160401b03821161134057611e0591600401611d6e565b90565b90602080835192838152019201905f5b818110611e255750505090565b825180516001600160a01b039081168652602082810151818801526040928301519091169186019190915260609094019390920191600101611e18565b35908160020b820361134057565b906040600319830112611340576004356001600160a01b03811681036113405791602435906001600160401b03821161134057611e0591600401611d6e565b6060906003190112611340576004356001600160a01b038116810361134057906024356001600160a01b0381168103611340579060443590565b51906001600160a01b038216820361134057565b919082604091031261134057611e056020611f1784611ee9565b9301611ee9565b9190826040910312611340576020825192015190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160401b0381116118e35760051b60200190565b81601f8201121561134057805190611f8682611f58565b92611f946040519485611d4d565b8284526020606081860194028301019181831161134057602001925b828410611fbe575050505090565b606084830312611340576040519060608201908282106001600160401b038311176118e357606092602092604052611ff587611ee9565b8152828701518382015261200b60408801611ee9565b6040820152815201930192611fb0565b906020828203126113405781516001600160401b03811161134057611e059201611f6f565b9190820180921161204d57565b634e487b7160e01b5f52601160045260245ffd5b9080601f8301121561134057815161207881611f58565b926120866040519485611d4d565b81845260208085019260051b82010192831161134057602001905b8282106120ae5750505090565b81518152602091820191016120a1565b604090611e05939281528160208201520190611f34565b9190916040818403126113405780516001600160401b03811161134057836120fe918301611f6f565b9260208201516001600160401b03811161134057611e059201611f6f565b9190820391821161204d57565b906020828203126113405781516001600160401b03811161134057611e059201612061565b80518210156121625760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b335f52600660205260ff60405f2054161561143457565b60025f805160206125c683398151915254146121b65760025f805160206125c683398151915255565b633ee5aeb560e01b5f5260045ffd5b6001600160a01b039081165f908152600360205260409020541680156114345790565b5f546001600160a01b031633036121fb57565b63118cdaa760e01b5f523360045260245ffd5b600254919290916001600160a01b0316156117dd575f5b835181101561230757602061223a828661214e565b51015161224a575b600101612225565b6001600160a01b0361225c828661214e565b51516002546001600160a01b03169291166020612279838861214e565b510151604051636eb1769f60e11b8152306004820152602481018590529390602085604481865afa948515611335575f956122ce575b50906122c16122c79392600196612040565b91612404565b9050612242565b945091906020853d82116122ff575b816122ea60209383611d4d565b810103126113405793519390916122c16122af565b3d91506122dd565b50919060018060a01b036002541691823b1561134057612355925f92836040518096819582946372002e2160e11b845260018060a01b03166004840152604060248401526044830190611e08565b03925af18015611335576123665750565b5f61237091611d4d565b565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f51148216156123e3575b6040525f606052156123c35750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b9060018115166123fb57823b15153d151616906123b4565b503d5f823e3d90fd5b916040519163095ea7b360e01b5f5260018060a01b031691826004528160245260205f60448180885af19060015f5114821615612503575b6040521561244957505050565b60405163095ea7b360e01b5f52826004525f60245260205f60448180885af19060015f51148216156124eb575b604052156124cd576040519163095ea7b360e01b5f5260045260245260205f60448180865af19060015f51148216156124b5575b604052156123c35750565b9060018115166123fb57823b15153d151616906124aa565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b9060018115166123fb57843b15153d15161690612476565b90843b15153d1516169061243c565b5f546001600160a01b03163314158061252c575b61143457565b506001546001600160a01b0316331415612526565b5f5b82518110156125c05780602061255b6001938661214e565b510151612569575b01612543565b6020612575828661214e565b510151828060a01b0384165f52600560205260405f20838060a01b0361259b848861214e565b515116848060a01b03165f526020526125b960405f20918254612040565b9055612563565b50505056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212201d3ca0ef525a4be2132b1eadfb2bcbe5ed80c0dde3be1cc64f59e92594f20e3764736f6c634300081a0033","sourceMap":"1088:16939:94:-:0;;;;;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;1273:26:38;;1269:95;;-1:-1:-1;1088:16939:94;;-1:-1:-1;;;;;;1088:16939:94;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;3052:40:38;;-1:-1:-1;3052:40:38;2365:1:64;1505:66;2365:1;1088:16939:94;;;;;;;1269:95:38;1322:31;;;-1:-1:-1;1322:31:38;-1:-1:-1;1322:31:38;1088:16939:94;;-1:-1:-1;1322:31:38;1088:16939:94;-1:-1:-1;1088:16939:94;;;;;;-1:-1:-1;1088:16939:94;;;;;-1:-1:-1;1088:16939:94","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f803560e01c806305be00bd14611a6f5780630ff4f839146119d657806315a0ea6a146119465780632a487f4f146119065780632b10d5a1146114c75780632c83433c146114425780633067e6b81461138157806336fd6911146113445780633e12170f146112a157806344d17187146111ea578063566fbf9b14611109578063570ca735146110e05780635c46ff99146110335780635ffb842f14610c765780636373ea6914610c4d5780636456e11414610b67578063715018a614610b0d5780638da5cb5b14610ae657806395bdb53514610a3a5780639677713b14610906578063b3ab15fb1461089e578063baab915c146106a0578063c4113b8814610603578063c88d9ba6146104e6578063e803ba8514610493578063f2fde38b1461040d5763fcb5ce2614610143575f80fd5b3461040a5760a036600319011261040a5761015c611cfe565b90604435606435926084356001600160401b03811161040657610183903690600401611d6e565b9361018c612512565b61019461218d565b82159081806103fe575b6103ef576001600160a01b036101b3846121c5565b169060405194634eb1c24560e11b8652604086600481865afa9485156103e457879688966103ad575b5060018060a01b03169384885260056020526040882060018060a01b0388165f526020528160405f2054108015610386575b61037757918760409492610260999a941561035e575b82610345575b8551998a9586948593636efb8c9960e01b8552602435600486015260248501526044840152608060648401526084830190611f34565b03925af192831561033a579460409581958295610305575b50856102d6575b50836102a6575b50505060015f805160206125c68339815191525582519182526020820152f35b859181526005602052209060018060a01b03165f52602052825f206102cc82825461211c565b90555f8080610286565b82825260056020528682209060018060a01b03165f52602052855f206102fd86825461211c565b90555f61027f565b909450610329919550863d8811610333575b6103218183611d4d565b810190611f1e565b949094935f610278565b503d610317565b6040513d87823e3d90fd5b61035983856001600160a01b038b16612404565b61022a565b61037281856001600160a01b038c16612404565b610224565b63356680b760e01b8852600488fd5b5084885260056020526040882060018060a01b0387165f526020528260405f20541061020e565b9095506103d391965060403d6040116103dd575b6103cb8183611d4d565b810190611efd565b959095945f6101dc565b503d6103c1565b6040513d89823e3d90fd5b63162908e360e11b8552600485fd5b50801561019e565b8380fd5b80fd5b503461040a57602036600319011261040a57610427611cfe565b61042f6121e8565b6001600160a01b0316801561047f5781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b503461040a57604036600319011261040a5760406104af611cfe565b916104b8611d14565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461040a576104f536611e70565b906104fe612512565b61050661218d565b6001600160a01b0390610518906121c5565b1682604051926338a67fab60e11b84528184600481865afa9384156105f85782946105d4575b50815b84518110156105bf57610554818661214e565b51843b1561040657838361057d926040519384928392630e89439b60e01b8452600484016120be565b038183895af19081156105b457849161059b575b5050600101610541565b816105a591611d4d565b6105b057825f610591565b8280fd5b6040513d86823e3d90fd5b8260015f805160206125c68339815191525580f35b6105f19194503d8084833e6105e98183611d4d565b810190612129565b925f61053e565b6040513d84823e3d90fd5b503461040a578061061336611dc3565b9161061c612512565b61062461218d565b6001600160a01b0390610636906121c5565b1691823b1561069b5761066292849283604051809681958294630c8fd6ed60e41b8452600484016120be565b03925af180156105f857610686575b5060015f805160206125c68339815191525580f35b8161069091611d4d565b61040a57805f610671565b505050fd5b503461040a576106af36611eaf565b92916106b96121e8565b6106c161218d565b831561088f576004919060406001600160a01b036106de836121c5565b16815194858092634eb1c24560e11b82525afa80156105b4578493859161086a575b506001600160a01b03838116941684141590849082610856575b50506108475760018060a01b038116808552600560205260408520845f526020528560405f205410610838578452600560205260408420835f5260205260405f2061076686825461211c565b9055835460405163a9059cbb60e01b86526001600160a01b0390911660045260248690529260208560448180855af16001865114811615610819575b846040521561080757506001600160a01b0390811683521660208201526040810192909252907f30f1be9b92a40647a5264af56d1712a73293b28226e97f67f24b594531668e259080606081015b0390a160015f805160206125c68339815191525580f35b635274afe760e01b8552600452602484fd5b600181151661082f57813b15153d1516166107a2565b843d87823e3d90fd5b63356680b760e01b8552600485fd5b63350b944160e11b8452600484fd5b6001600160a01b031614159050835f61071a565b905061088691935060403d6040116103dd576103cb8183611d4d565b9290925f610700565b63162908e360e11b8352600483fd5b503461040a57602036600319011261040a576108b8611cfe565b6108c06121e8565b600180546001600160a01b0319166001600160a01b039290921691821790557f4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e548280a280f35b503461040a5761091536611eaf565b929161091f61218d565b831561088f57600460406001600160a01b0361093a846121c5565b16815192838092634eb1c24560e11b82525afa80156105b45784918591610a19575b506001600160a01b03848116921682141590829082610a05575b505061084757846109db7f830654e92c5a06574045ef466735f715b6349b88ee11226da5d88546b278b47995966107f09360018060a01b0386168952600560205260408920815f5260205260405f206109d0838254612040565b905530903390612372565b604080516001600160a01b0394851681529490931660208501529183019190915281906060820190565b6001600160a01b031614159050815f610976565b9050610a34915060403d6040116103dd576103cb8183611d4d565b5f61095c565b503461040a57604036600319011261040a57610a54611cfe565b90610a5d611d3e565b610a656121e8565b6001600160a01b038316928315610ad75782937f2bd57ae5d645c5a1504782e37691625e5005028bb66e2a7c56e70410690e8e4693526004602052610ab982604086209060ff801983541691151516179055565b604080516001600160a01b039290921682529115156020820152a180f35b63e6c4247b60e01b8352600483fd5b503461040a578060031936011261040a57546040516001600160a01b039091168152602090f35b503461040a578060031936011261040a57610b266121e8565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461040a57610b7636611e70565b90610b7f612512565b610b8761218d565b6001600160a01b0390610b99906121c5565b1682604051926338a67fab60e11b84528184600481865afa9384156105f8578294610c31575b50815b84518110156105bf57610bd5818661214e565b51843b15610406578383610bfe926040519384928392630c8fd6ed60e41b8452600484016120be565b038183895af19081156105b4578491610c1c575b5050600101610bc2565b81610c2691611d4d565b6105b057825f610c12565b610c469194503d8084833e6105e98183611d4d565b925f610bbf565b503461040a578060031936011261040a576002546040516001600160a01b039091168152602090f35b503461040a5760e036600319011261040a57610c90611cfe565b906024359160443592606435918260020b80930361040657608435928360020b80940361102f5760a4356001600160a01b0381169081900361102b5760c4356001600160401b03811161102757610ceb903690600401611d6e565b94610cf4612512565b610cfc61218d565b841595868061101f575b611010576001600160a01b03610d1b866121c5565b169260405199634eb1c24560e11b8b5260408b600481885afa968715611005578a9b8b98610fde575b5060018060a01b031698898b52600560205260408b2060018060a01b038d165f526020528860405f2054108015610fb7575b610fa85715610f8f575b80610f76575b6040519361010085018581106001600160401b03821117610f625760409081526001600160a01b03808e168752898116602088019081528288019b8c526060888101958652608089019a8b5260a089019485523060c08a0190815260e08a019788529351639c2bf9a760e01b8152600481018f90529851831660248a01529051821660448901529a516064880152925160848701529651600290810b60a48701529051900b60c48501529451851660e4840152519093166101048201526101406101248201529391849190829088908290610e6690610144830190611f34565b03925af19283156105b4578480938195610f15575b5060609684610ee4575b5084610eb2575b50505060015f805160206125c68339815191525560405192835260208301526040820152f35b60409181526005602052209060018060a01b03165f5260205260405f20610eda83825461211c565b90555f8080610e8c565b8282526005602052604082209060018060a01b03165f5260205260405f20610f0d85825461211c565b90555f610e85565b955092509492506060843d606011610f5a575b81610f3560609383611d4d565b81010312610f56578351602085015160409095015193959094926060610e7b565b5080fd5b3d9150610f28565b634e487b7160e01b8c52604160045260248cfd5b610f8a81866001600160a01b038a16612404565b610d86565b610fa388866001600160a01b038e16612404565b610d80565b63356680b760e01b8b5260048bfd5b50898b52600560205260408b2060018060a01b0389165f526020528160405f205410610d76565b909750610ffb919b5060403d6040116103dd576103cb8183611d4d565b9a909a965f610d44565b6040513d8c823e3d90fd5b63162908e360e11b8852600488fd5b508815610d06565b8680fd5b8580fd5b8480fd5b503461040a57604036600319011261040a578061104e611cfe565b61105661218d565b816001600160a01b03611068836121c5565b1660246040518095819363158d14e960e31b8352833560048401525af19081156110d55761109d9284926110b1575b5061220e565b60015f805160206125c68339815191525580f35b6110ce9192503d8086833e6110c68183611d4d565b81019061201b565b905f611097565b6040513d85823e3d90fd5b503461040a578060031936011261040a576001546040516001600160a01b039091168152602090f35b503461040a576111608161111c36611dc3565b90611128939293612512565b61113061218d565b6001600160a01b03611141856121c5565b16908360405180978195829463618bc65d60e11b8452600484016120be565b03925af19182156110d557926111b3938180946111b7575b505081611189849261118e9461220e565b612541565b60015f805160206125c683398151915255604051918291602083526020830190611e08565b0390f35b611189945061118e939250906111de913d8091833e6111d68183611d4d565b8101906120d5565b91909193819350611178565b503461040a57611239816111fd36611dc3565b90611209939293612512565b6001600160a01b0361121a856121c5565b16908360405180978195829463fe9d930360e01b8452600484016120be565b03925af19182156110d557926111b393818094611276575b50508161118984926112629461220e565b604051918291602083526020830190611e08565b611189945061126293925090611295913d8091833e6111d68183611d4d565b91909193819350611251565b5034611340576112b036611dc3565b916112b9612512565b6112c161218d565b6001600160a01b03906112d3906121c5565b1691823b15611340576112ff925f9283604051809681958294630e89439b60e01b8452600484016120be565b03925af1801561133557611322575060015f805160206125c68339815191525580f35b61132e91505f90611d4d565b5f80610671565b6040513d5f823e3d90fd5b5f80fd5b34611340576020366003190112611340576001600160a01b03611365611cfe565b165f526004602052602060ff60405f2054166040519015158152f35b34611340576020366003190112611340576001600160a01b036113a2611cfe565b165f908152600360205260409020546001600160a01b031680156114345760206004916040519283809263dc4c90d360e01b82525afa8015611335575f906113fa575b6040516001600160a01b039091168152602090f35b506020813d60201161142c575b8161141460209383611d4d565b8101031261134057611427602091611ee9565b6113e5565b3d9150611407565b6282b42960e81b5f5260045ffd5b346113405760203660031901126113405761145b611cfe565b6114636121e8565b6001600160a01b031680156114b8576020817f383b72b5dc93c1e8b72b286beaa7159d0f197ea394eb23eccc52f91ab9f0504f926bffffffffffffffffffffffff60a01b6002541617600255604051908152a1005b63e6c4247b60e01b5f5260045ffd5b346113405760e0366003190112611340576114e0611cfe565b6114e8611d14565b9060603660431901126113405760a4356001600160401b03811161134057366023820112156113405780600401356001600160401b0381116113405736602460c08302840101116113405760c4356001600160401b03811161134057611552903690600401611d6e565b9361155b612176565b61156361218d565b6001600160a01b03169081156114b8576001600160a01b0384165f8181526004602052604090205490919060ff1615611434575f95865b828810156115c0576115b8600191606460c08b028901013590612040565b97019661159a565b86869180156118f7576115df916115d98230338b612372565b87612404565b604435918260020b9283810361134057506064356001600160a01b0381169390849003611340576084358060020b9081810361134057506040519060808201928284106001600160401b038511176118e3576040938452825260208201898152838301968752606083019182529251636738a0fb60e11b81529151600290810b600484015292516001600160a01b0390811660248085019190915296511660448301525190910b606482015260c0608482015260c481018590529260e4840192849291015f5b8681106118655750506116c65f9383926003198483030160a4850152611f34565b038183875af1928315611335575f925f905f935f966117fb575b508551036117ec5781156114b857815f52600460205260ff60405f20541615611434575f868152600360205260409020546001600160a01b03166117dd578484848893845f52600360205260405f209060018060a01b031690816bffffffffffffffffffffffff60a01b825416179055806040519687967f798173c48852737ee4b41b552a4431541aa1c4e68d4e3ac3298fe1bdf26a75a75f80a460015f805160206125c68339815191525560808501928552602085015215156040840152608060608401528151809152602060a084019201905f5b8181106117c4575050500390f35b82518452859450602093840193909201916001016117b6565b63a3b8915f60e01b5f5260045ffd5b63195f807960e01b5f5260045ffd5b945094505090503d805f843e6118118184611d4d565b8201906080838303126113405782519161182d60208501611ee9565b9360408101519182151583036113405760608201516001600160401b0381116113405761185a9201612061565b9293909294876116e0565b9192509260c08060019261187887611e62565b60020b815261188960208801611e62565b60020b602082015260408701356040820152838060a01b036118ad60608901611d2a565b166060820152838060a01b036118c560808901611d2a565b16608082015260a087013560a08201520194019101908492916116a5565b634e487b7160e01b5f52604160045260245ffd5b63162908e360e11b5f5260045ffd5b34611340576020366003190112611340576001600160a01b03611927611cfe565b165f526003602052602060018060a01b0360405f205416604051908152f35b34611340576020366003190112611340575f611960611cfe565b61196861218d565b816001600160a01b0361197a836121c5565b1660046040518095819363d294f09360e01b83525af1908115611335576119a7925f926119ba575061220e565b60015f805160206125c683398151915255005b6119cf9192503d805f833e6110c68183611d4d565b9083611097565b34611340576040366003190112611340576119ef611cfe565b6119f7611d3e565b6119ff6121e8565b6001600160a01b0382169182156114b8577fa58a7a7166bfb44d0184d9af3d57de7246f3715ea71b9f14df49188da3707ec5925f526006602052611a528260405f209060ff801983541691151516179055565b604080516001600160a01b039290921682529115156020820152a1005b346113405760a036600319011261134057611a88611cfe565b611a90611d14565b90606435906044358215158303611340576084356001600160401b03811161134057611ac0903690600401611d6e565b93611ac9612176565b611ad161218d565b81156118f7576001600160a01b03611ae8846121c5565b169460405194634eb1c24560e11b86526040866004818a5afa958615611335575f905f97611cda575b506040516316f0115b60e01b8152956020876004818c5afa968715611335575f97611c9b575b50959694956004956020936001600160a01b0380851693169290921492909115611c84578215611c7d57505b5015965b60405163dc4c90d360e01b815294859182905afa928315611335575f93611c37575b50604094611bda5f92875198899788968795637b3b9ed760e11b8752600487015233602487015260018060a01b0316604486015260648501521515608484015260c060a484015260c4830190611f34565b03926001600160a01b03165af1908115611335576040915f915f91611c18575b5060015f805160206125c68339815191525582519182526020820152f35b9050611c319150823d8411610333576103218183611d4d565b83611bfa565b9092506020813d602011611c75575b81611c5360209383611d4d565b8101031261134057604094611bda611c6b5f93611ee9565b9492505094611b89565b3d9150611c46565b9050611b63565b908215611c9457505b5096611b67565b9050611c8d565b9291959650966020833d602011611cd2575b81611cba60209383611d4d565b81010312611340579151919691959490916020611b37565b3d9150611cad565b9050611cf691965060403d6040116103dd576103cb8183611d4d565b959088611b11565b600435906001600160a01b038216820361134057565b602435906001600160a01b038216820361134057565b35906001600160a01b038216820361134057565b60243590811515820361134057565b90601f801991011681019081106001600160401b038211176118e357604052565b81601f82011215611340578035906001600160401b0382116118e35760405192611da2601f8401601f191660200185611d4d565b8284526020838301011161134057815f926020809301838601378301015290565b6060600319820112611340576004356001600160a01b0381168103611340579160243591604435906001600160401b03821161134057611e0591600401611d6e565b90565b90602080835192838152019201905f5b818110611e255750505090565b825180516001600160a01b039081168652602082810151818801526040928301519091169186019190915260609094019390920191600101611e18565b35908160020b820361134057565b906040600319830112611340576004356001600160a01b03811681036113405791602435906001600160401b03821161134057611e0591600401611d6e565b6060906003190112611340576004356001600160a01b038116810361134057906024356001600160a01b0381168103611340579060443590565b51906001600160a01b038216820361134057565b919082604091031261134057611e056020611f1784611ee9565b9301611ee9565b9190826040910312611340576020825192015190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160401b0381116118e35760051b60200190565b81601f8201121561134057805190611f8682611f58565b92611f946040519485611d4d565b8284526020606081860194028301019181831161134057602001925b828410611fbe575050505090565b606084830312611340576040519060608201908282106001600160401b038311176118e357606092602092604052611ff587611ee9565b8152828701518382015261200b60408801611ee9565b6040820152815201930192611fb0565b906020828203126113405781516001600160401b03811161134057611e059201611f6f565b9190820180921161204d57565b634e487b7160e01b5f52601160045260245ffd5b9080601f8301121561134057815161207881611f58565b926120866040519485611d4d565b81845260208085019260051b82010192831161134057602001905b8282106120ae5750505090565b81518152602091820191016120a1565b604090611e05939281528160208201520190611f34565b9190916040818403126113405780516001600160401b03811161134057836120fe918301611f6f565b9260208201516001600160401b03811161134057611e059201611f6f565b9190820391821161204d57565b906020828203126113405781516001600160401b03811161134057611e059201612061565b80518210156121625760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b335f52600660205260ff60405f2054161561143457565b60025f805160206125c683398151915254146121b65760025f805160206125c683398151915255565b633ee5aeb560e01b5f5260045ffd5b6001600160a01b039081165f908152600360205260409020541680156114345790565b5f546001600160a01b031633036121fb57565b63118cdaa760e01b5f523360045260245ffd5b600254919290916001600160a01b0316156117dd575f5b835181101561230757602061223a828661214e565b51015161224a575b600101612225565b6001600160a01b0361225c828661214e565b51516002546001600160a01b03169291166020612279838861214e565b510151604051636eb1769f60e11b8152306004820152602481018590529390602085604481865afa948515611335575f956122ce575b50906122c16122c79392600196612040565b91612404565b9050612242565b945091906020853d82116122ff575b816122ea60209383611d4d565b810103126113405793519390916122c16122af565b3d91506122dd565b50919060018060a01b036002541691823b1561134057612355925f92836040518096819582946372002e2160e11b845260018060a01b03166004840152604060248401526044830190611e08565b03925af18015611335576123665750565b5f61237091611d4d565b565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f51148216156123e3575b6040525f606052156123c35750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b9060018115166123fb57823b15153d151616906123b4565b503d5f823e3d90fd5b916040519163095ea7b360e01b5f5260018060a01b031691826004528160245260205f60448180885af19060015f5114821615612503575b6040521561244957505050565b60405163095ea7b360e01b5f52826004525f60245260205f60448180885af19060015f51148216156124eb575b604052156124cd576040519163095ea7b360e01b5f5260045260245260205f60448180865af19060015f51148216156124b5575b604052156123c35750565b9060018115166123fb57823b15153d151616906124aa565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b9060018115166123fb57843b15153d15161690612476565b90843b15153d1516169061243c565b5f546001600160a01b03163314158061252c575b61143457565b506001546001600160a01b0316331415612526565b5f5b82518110156125c05780602061255b6001938661214e565b510151612569575b01612543565b6020612575828661214e565b510151828060a01b0384165f52600560205260405f20838060a01b0361259b848861214e565b515116848060a01b03165f526020526125b960405f20918254612040565b9055612563565b50505056fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212201d3ca0ef525a4be2132b1eadfb2bcbe5ed80c0dde3be1cc64f59e92594f20e3764736f6c634300081a0033","sourceMap":"1088:16939:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;:::i;:::-;1977:88;;;:::i;:::-;2989:103:64;;:::i;:::-;10039:12:94;;;;;:28;;1088:16939;10035:63;;-1:-1:-1;;;;;10143:30:94;;;:::i;:::-;1088:16939;;;;;;;;10218:24;;1088:16939;10218:24;1088:16939;10218:24;;;;;;;;;;1088:16939;;10218:24;;;1088:16939;;;;;;;;;;;;10325:17;1088:16939;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;-1:-1:-1;1088:16939:94;;10325:46;:96;;;;1088:16939;10321:160;;10540:11;;1088:16939;10540:11;;1088:16939;10540:11;;;;10536:104;;1088:16939;10653:11;10649:104;;1088:16939;;;;;;;;;;;;;10792:77;;1088:16939;;;10792:77;;1088:16939;;;;;;;;;;;;;;;;;;;:::i;:::-;10792:77;;;;;;;;;;1088:16939;10792:77;;1088:16939;;10792:77;;;1088:16939;10923:15;;10919:97;;1088:16939;11029:15;;11025:97;;1088:16939;;;;;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;;;;;;;;;11025:97;1088:16939;;;;10325:17;1088:16939;;;11060:36;1088:16939;;;;;;-1:-1:-1;1088:16939:94;;;;-1:-1:-1;1088:16939:94;11060:51;1088:16939;;;11060:51;:::i;:::-;1088:16939;;11025:97;;;;;10919;1088:16939;;;10325:17;1088:16939;;;;;10954:36;1088:16939;;;;;;-1:-1:-1;1088:16939:94;;;;-1:-1:-1;1088:16939:94;10954:51;1088:16939;;;10954:51;:::i;:::-;1088:16939;;10919:97;;;10792:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;1088:16939;;;;;;;;;10649:104;10734:7;1088:16939;;-1:-1:-1;;;;;1088:16939:94;;10734:7;:::i;:::-;10649:104;;10536;10621:7;1088:16939;;-1:-1:-1;;;;;1088:16939:94;;10621:7;:::i;:::-;10536:104;;10321:160;-1:-1:-1;;;10444:26:94;;1088:16939;8039:26;10444;10325:96;1088:16939;;;;10325:17;1088:16939;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;-1:-1:-1;1088:16939:94;;10375:46;10325:96;;10218:24;;;;;;;;1088:16939;10218:24;1088:16939;10218:24;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;1088:16939;;;;;;;;;10035:63;-1:-1:-1;;;10076:22:94;;1088:16939;5831:22;10076;10039:28;10055:12;;;10039:28;;1088:16939;;;;;;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;1500:62:38;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;2627:22:38;;2623:91;;1088:16939:94;;-1:-1:-1;;;;;;1088:16939:94;;;;;;-1:-1:-1;;;;;1088:16939:94;3052:40:38;1088:16939:94;;3052:40:38;1088:16939:94;;2623:91:38;-1:-1:-1;;;2672:31:38;;1088:16939:94;;;;;2672:31:38;;1088:16939:94;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;1703:72;1088:16939;;;1703:72;1088:16939;;;;;;-1:-1:-1;1088:16939:94;;;;;-1:-1:-1;1088:16939:94;;;;;;;;;;;;;;;;:::i;:::-;1977:88;;;:::i;:::-;2989:103:64;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;11931:30;;;:::i;:::-;1088:16939;;;;;;;;11999:26;;;;1088:16939;11999:26;;;;;;;;;;;;;1088:16939;12040:13;;;1088:16939;;12055:19;;;;;12131:11;;;;:::i;:::-;1088:16939;12091:58;;;;;1088:16939;;12091:58;1088:16939;;;;;;;;;;;12091:58;;1088:16939;12091:58;;;:::i;:::-;;;;;;;;;;;;;;;;12040:13;1088:16939;;;;12040:13;;12091:58;;;;;:::i;:::-;1088:16939;;12091:58;;;;1088:16939;;;;12091:58;1088:16939;;;;;;;;;12055:19;;1088:16939;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;11999:26;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;1088:16939;;;;;;;;;;;;;;;;;;:::i;:::-;1977:88;;;:::i;:::-;2989:103:64;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;13176:30;;;:::i;:::-;1088:16939;13216:38;;;;;;;1088:16939;;;;;;;;;;;;;;;13216:38;;1088:16939;13216:38;;;:::i;:::-;;;;;;;;;;;1088:16939;;2365:1:64;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;13216:38;;;;;:::i;:::-;1088:16939;;13216:38;;;;;1088:16939;;;;;;;;;;;;:::i;:::-;1500:62:38;;;;:::i;:::-;2989:103:64;;:::i;:::-;14054:11:94;;14050:46;;1088:16939;;;;-1:-1:-1;;;;;14141:30:94;1088:16939;14141:30;:::i;:::-;1088:16939;;;;;;;;;;14216:24;;;;;;;;;1088:16939;;14216:24;;;1088:16939;-1:-1:-1;;;;;;1088:16939:94;;;;;14254:15;;;;1088:16939;;14254:15;:34;;1088:16939;14250:97;;;;1088:16939;;;;;;;;;;14360:17;1088:16939;;;;;;-1:-1:-1;1088:16939:94;;;;;-1:-1:-1;1088:16939:94;;14360:44;14356:108;;1088:16939;;14360:17;1088:16939;;;;;;-1:-1:-1;1088:16939:94;;;;-1:-1:-1;1088:16939:94;14473:45;1088:16939;;;14473:45;:::i;:::-;1088:16939;;;;;8544:1067:51;-1:-1:-1;;;8544:1067:51;;-1:-1:-1;;;;;1088:16939:94;;;;8544:1067:51;;;;;;1088:16939:94;;8544:1067:51;1088:16939:94;;8544:1067:51;;;1338:4;8544:1067;;;;;;;;1088:16939:94;8544:1067:51;1088:16939:94;8544:1067:51;1305:38;1301:116;;-1:-1:-1;;;;;;1088:16939:94;;;;;;;;;;;;;;;;;14586:41;;;;1088:16939;;;14586:41;;;;1338:4:51;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;1301:116:51;-1:-1:-1;;;1366:40:51;;1088:16939:94;;8544:1067:51;1366:40;;8544:1067;1338:4;8544:1067;;;;;;;;;;;;;;;;;;;;;;;;14356:108:94;-1:-1:-1;;;14427:26:94;;1088:16939;8039:26;14427;14250:97;-1:-1:-1;;;14311:25:94;;1088:16939;13665:25;14311;14254:34;-1:-1:-1;;;;;1088:16939:94;14273:15;;;-1:-1:-1;14254:34:94;;;;14216:24;;;;;;;1088:16939;14216:24;1088:16939;14216:24;;;;;;;:::i;:::-;;;;;;;14050:46;-1:-1:-1;;;14074:22:94;;1088:16939;5831:22;14074;1088:16939;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;1500:62:38;;:::i;:::-;1088:16939:94;;;-1:-1:-1;;;;;;1088:16939:94;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;2907:26;;;;1088:16939;;;;;;;;;;:::i;:::-;2989:103:64;;;;:::i;:::-;13408:11:94;;13404:46;;1088:16939;;-1:-1:-1;;;;;13495:30:94;;;:::i;:::-;1088:16939;;;;;;;;;;13570:24;;;;;;;;;1088:16939;;13570:24;;;1088:16939;-1:-1:-1;;;;;;1088:16939:94;;;;;13608:15;;;;1088:16939;;13608:15;:34;;1088:16939;13604:97;;;;1088:16939;13823:6;13845:38;1088:16939;;13845:38;1088:16939;;;;;;;;;;13710:17;1088:16939;;;;;;-1:-1:-1;1088:16939:94;;;;-1:-1:-1;1088:16939:94;13710:45;1088:16939;;;13710:45;:::i;:::-;1088:16939;;13816:4;13796:10;;13823:6;;:::i;:::-;1088:16939;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;;;;;;;;;;;;;13608:34;-1:-1:-1;;;;;1088:16939:94;13627:15;;;-1:-1:-1;13608:34:94;;;;13570:24;;;;;;1088:16939;13570:24;1088:16939;13570:24;;;;;;;:::i;:::-;;;;1088:16939;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;;;;:::i;:::-;1500:62:38;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;;;3086:25;;3082:61;;1088:16939;;3219:48;1088:16939;;;;;3153:51;1088:16939;;;;;;;;;;;;;;;;;;;3153:51;1088:16939;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;3219:48;1088:16939;;3082:61;-1:-1:-1;;;3120:23:94;;1088:16939;3447:23;3120;1088:16939;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;;;;;;;1500:62:38;;:::i;:::-;1088:16939:94;;-1:-1:-1;;;;;;1088:16939:94;;;;;;-1:-1:-1;;;;;1088:16939:94;3052:40:38;1088:16939:94;;3052:40:38;1088:16939:94;;;;;;;;;;:::i;:::-;1977:88;;;:::i;:::-;2989:103:64;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;12695:30;;;:::i;:::-;1088:16939;;;;;;;;12763:26;;;;1088:16939;12763:26;;;;;;;;;;;;;1088:16939;12804:13;;;1088:16939;;12819:19;;;;;12879:11;;;;:::i;:::-;1088:16939;12855:42;;;;;1088:16939;;12855:42;1088:16939;;;;;;;;;;;12855:42;;1088:16939;12855:42;;;:::i;:::-;;;;;;;;;;;;;;;;12804:13;1088:16939;;;;12804:13;;12855:42;;;;;:::i;:::-;1088:16939;;12855:42;;;;12763:26;;;;;;;;;;;;;;:::i;:::-;;;;;1088:16939;;;;;;;;;;;;;1356:25;1088:16939;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;:::i;:::-;1977:88;;;:::i;:::-;2989:103:64;;:::i;:::-;7702:12:94;;;;;:28;;1088:16939;7698:63;;-1:-1:-1;;;;;7806:30:94;;;:::i;:::-;1088:16939;;;;;;;;7881:24;;1088:16939;7881:24;1088:16939;7881:24;;;;;;;;;;1088:16939;;7881:24;;;1088:16939;;;;;;;;;;;;7920:17;1088:16939;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;-1:-1:-1;1088:16939:94;;7920:46;:96;;;;1088:16939;7916:160;;8135:11;8131:104;;1088:16939;8248:11;8244:104;;1088:16939;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;8520:350;;1088:16939;;;8520:350;;;1088:16939;;;;8520:350;;;1088:16939;;;;8520:350;;1088:16939;;;;8520:350;;1088:16939;;;8846:4;1088:16939;8520:350;;1088:16939;;;;8520:350;;1088:16939;;;;;-1:-1:-1;;;8424:482:94;;1088:16939;8424:482;;1088:16939;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8424:482;;;;;;;;;;1088:16939;;;8424:482;;;1088:16939;8961:15;1088:16939;8961:15;;8957:97;;1088:16939;9067:15;;9063:97;;1088:16939;;;;;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;;;;;;;;;;;;;9063:97;1088:16939;;;;7920:17;1088:16939;;;9098:36;1088:16939;;;;;;-1:-1:-1;1088:16939:94;;;;-1:-1:-1;1088:16939:94;9098:51;1088:16939;;;9098:51;:::i;:::-;1088:16939;;9063:97;;;;;8957;1088:16939;;;7920:17;1088:16939;;;;;8992:36;1088:16939;;;;;;-1:-1:-1;1088:16939:94;;;;-1:-1:-1;1088:16939:94;8992:51;1088:16939;;;8992:51;:::i;:::-;1088:16939;;8957:97;;;8424:482;;;;;;;;1088:16939;8424:482;;1088:16939;8424:482;;;;;;1088:16939;8424:482;;;:::i;:::-;;;1088:16939;;;;;;;;;;;;;;;8424:482;;1088:16939;;;;8424:482;;1088:16939;;;;8424:482;;;-1:-1:-1;8424:482:94;;1088:16939;-1:-1:-1;;;1088:16939:94;;;;;;;;8244:104;8329:7;1088:16939;;-1:-1:-1;;;;;1088:16939:94;;8329:7;:::i;:::-;8244:104;;8131;8216:7;1088:16939;;-1:-1:-1;;;;;1088:16939:94;;8216:7;:::i;:::-;8131:104;;7916:160;-1:-1:-1;;;8039:26:94;;1088:16939;8039:26;;7920:96;1088:16939;;;;7920:17;1088:16939;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;-1:-1:-1;1088:16939:94;;7970:46;7920:96;;7881:24;;;;;;;;1088:16939;7881:24;1088:16939;7881:24;;;;;;;:::i;:::-;;;;;;;;;1088:16939;;;;;;;;;7698:63;-1:-1:-1;;;7739:22:94;;1088:16939;5831:22;7739;7702:28;7718:12;;;7702:28;;1088:16939;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;;:::i;:::-;2989:103:64;;:::i;:::-;1088:16939:94;-1:-1:-1;;;;;7118:30:94;;;:::i;:::-;1088:16939;;;;;;;;;;;7240:34;;1088:16939;;;7240:34;;1088:16939;7240:34;;;;;;;7311:12;7240:34;;;;;1088:16939;7311:12;;:::i;:::-;1088:16939;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;7240:34;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;1088:16939;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;11537:77;1088:16939;;;;:::i;:::-;1977:88;;;;;;:::i;:::-;2989:103:64;;:::i;:::-;-1:-1:-1;;;;;11419:30:94;;;:::i;:::-;1088:16939;;;;;;;;;;;;;;11537:77;;1088:16939;11537:77;;;:::i;:::-;;;;;;;;;;;1088:16939;11537:77;;1088:16939;11537:77;;;1088:16939;11652:4;;;;;;11696:13;11652:4;;:::i;:::-;11696:13;:::i;:::-;2365:1:64;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;;;;;;;;;;;;:::i;:::-;;;;11537:77;11652:4;11537:77;;11696:13;11537:77;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1088:16939;;;;;9530:53;1088:16939;;;;:::i;:::-;1977:88;;;;;;:::i;:::-;-1:-1:-1;;;;;9412:30:94;;;:::i;:::-;1088:16939;;;;;;;;;;;;;;9530:53;;1088:16939;9530:53;;;:::i;:::-;;;;;;;;;;;1088:16939;9530:53;;1088:16939;9530:53;;;1088:16939;9620:4;;;;;;9664:13;9620:4;;:::i;9664:13::-;1088:16939;;;;;;;;;;;;;:::i;9530:53::-;9620:4;9530:53;;9664:13;9530:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1088:16939;;;;;;;;:::i;:::-;1977:88;;;:::i;:::-;2989:103:64;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;12426:30;;;:::i;:::-;1088:16939;12466:36;;;;;;;1088:16939;;;;;;;;;;;;;;;12466:36;;1088:16939;12466:36;;;:::i;:::-;;;;;;;;;;;1088:16939;2365:1:64;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;12466:36;;;;1088:16939;12466:36;;:::i;:::-;1088:16939;12466:36;;;;1088:16939;;;;;;;;;12466:36;1088:16939;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;-1:-1:-1;;;;;1088:16939:94;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;-1:-1:-1;;;;;1088:16939:94;;:::i;:::-;;;;;;14797:26;1088:16939;;;;;;-1:-1:-1;;;;;1088:16939:94;14848:29;;14844:63;;1088:16939;;;;;;;;;;;;14924:47;;;;;;;;1088:16939;14924:47;;;1088:16939;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;14924:47;;1088:16939;14924:47;;1088:16939;14924:47;;;;;;1088:16939;14924:47;;;:::i;:::-;;;1088:16939;;;;;;;;:::i;:::-;14924:47;;;;;-1:-1:-1;14924:47:94;;14844:63;4228:21;;;1088:16939;14886:21;1088:16939;;14886:21;1088:16939;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;1500:62:38;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;2541:23;;2537:59;;1088:16939;;2652:26;1088:16939;;;;2606:31;1088:16939;;;2606:31;1088:16939;;;;;;2652:26;1088:16939;2537:59;3447:23;;;1088:16939;2573:23;1088:16939;;2573:23;1088:16939;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;1088:16939:94;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;:::i;:::-;2118:96;;;:::i;:::-;2989:103:64;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;;4075:23;;4071:84;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;;;;4168:37;4164:96;;1088:16939;;;4305:13;4320:26;;;;;;4363:44;1088:16939;;4380:27;1088:16939;;;;;4380:27;1088:16939;4363:44;;:::i;:::-;1088:16939;;4305:13;;;4320:26;;;;4490:18;;4486:53;;4770:13;4641:4;4648:13;4641:4;;4621:10;4648:13;;:::i;:::-;4770;;:::i;:::-;1088:16939;;;;;;;;;;;;-1:-1:-1;5067:20:94;1088:16939;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;5122:22;1088:16939;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;4911:252;;1088:16939;;;4911:252;;;1088:16939;;;;4911:252;;1088:16939;;;;;-1:-1:-1;;;4844:388:94;;1088:16939;;;;;;;4844:388;;1088:16939;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;;;;;;;;5067:20;1088:16939;;;;5122:22;1088:16939;;;;;;;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4844:388;;;;;;;;;;;1088:16939;;;;;;;4844:388;;;1088:16939;;;;5306:44;5302:83;;15286:25;;15255:88;;1088:16939;;;;;;;;;;;;15357:37;15353:71;;1088:16939;;;;15438:26;1088:16939;;;;;;-1:-1:-1;;;;;1088:16939:94;15434:84;;1088:16939;;;;;;;;15438:26;1088:16939;;;;;;;;;;;;;;;;;;;;;;;;;;15598:62;;;;1088:16939;15598:62;;1088:16939;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;;;;;;;;;15434:84;15498:20;;;1088:16939;15498:20;1088:16939;;15498:20;5302:83;5359:26;;;1088:16939;5359:26;1088:16939;;5359:26;4844:388;;;;;;;;;;1088:16939;4844:388;;;;;;:::i;:::-;;;1088:16939;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;:::i;:::-;4844:388;;;;;;;;1088:16939;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4486:53;5831:22;;;1088:16939;4517:22;1088:16939;;4517:22;1088:16939;;;;;;-1:-1:-1;;1088:16939:94;;;;-1:-1:-1;;;;;1088:16939:94;;:::i;:::-;;;;1458:61;1088:16939;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;;:::i;:::-;2989:103:64;;:::i;:::-;1088:16939:94;-1:-1:-1;;;;;6746:30:94;;;:::i;:::-;1088:16939;;;;;;;;;;;6868:27;;;;;;;;;6932:12;6868:27;1088:16939;6868:27;;;6932:12;;:::i;:::-;2365:1:64;-1:-1:-1;;;;;;;;;;;1088:16939:94;;6868:27;;;;;;;1088:16939;6868:27;;;;;;:::i;:::-;;;;;1088:16939;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;;;:::i;:::-;1500:62:38;;:::i;:::-;-1:-1:-1;;;;;1088:16939:94;;;3415:23;;3411:59;;3542:43;1088:16939;;;3480:21;1088:16939;;3480:47;1088:16939;;;;;;;;;;;;;;;;;;;3480:47;1088:16939;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;3542:43;1088:16939;;;;;;;-1:-1:-1;;1088:16939:94;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;:::i;:::-;2118:96;;;:::i;:::-;2989:103:64;;:::i;:::-;5809:13:94;;5805:48;;-1:-1:-1;;;;;5898:30:94;;;:::i;:::-;1088:16939;;;;;;;;6007:24;;1088:16939;6007:24;1088:16939;6007:24;;;;;;;;;1088:16939;;;6007:24;;;1088:16939;-1:-1:-1;1088:16939:94;;-1:-1:-1;;;6056:22:94;;1088:16939;;;;;6056:22;;;;;;;;1088:16939;6056:22;;;1088:16939;-1:-1:-1;1088:16939:94;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;6105:19;;;;;1088:16939;;6186:232;;;6231:26;;;;;;1088:16939;6285:9;6186:232;;1088:16939;;-1:-1:-1;;;6476:29:94;;1088:16939;;;;;6476:29;;;;;;;1088:16939;6476:29;;;6186:232;1088:16939;;;;;;;;;;;;;;;;;;6463:127;;1088:16939;6463:127;;1088:16939;6540:10;1088:16939;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6463:127;;-1:-1:-1;;;;;1088:16939:94;6463:127;;;;;;;1088:16939;6463:127;1088:16939;;;6463:127;;;6186:232;1088:16939;;-1:-1:-1;;;;;;;;;;;1088:16939:94;;;;;;;;;;;6463:127;;;;;;;;;;;;;;;;:::i;:::-;;;;6476:29;;;;1088:16939;6476:29;;1088:16939;6476:29;;;;;;1088:16939;6476:29;;;:::i;:::-;;;1088:16939;;;;;;;;;;;:::i;:::-;6476:29;;;;;;;;;;-1:-1:-1;6476:29:94;;6231:26;;;;;6186:232;6345:26;;;;;;;1088:16939;6186:232;;;6345:26;;;;;6056:22;;;;;;;1088:16939;6056:22;;1088:16939;6056:22;;;;;;1088:16939;6056:22;;;:::i;:::-;;;1088:16939;;;;;;6056:22;;1088:16939;;6056:22;;;1088:16939;6056:22;;;;;-1:-1:-1;6056:22:94;;6007:24;;;;;;;1088:16939;6007:24;1088:16939;6007:24;;;;;;;:::i;:::-;;;;;;1088:16939;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1088:16939:94;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;-1:-1:-1;;1088:16939:94;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1088:16939:94;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;1088:16939:94;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1088:16939:94;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1088:16939:94;;;;;;;;-1:-1:-1;;1088:16939:94;;;;:::o;:::-;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1088:16939:94;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;17610:142;17704:10;-1:-1:-1;1088:16939:94;17682:21;1088:16939;;;;-1:-1:-1;1088:16939:94;;;17681:34;17677:68;;17610:142::o;3749:292:64:-;2407:1;-1:-1:-1;;;;;;;;;;;1088:16939:94;4560:63:64;3644:93;;2407:1;-1:-1:-1;;;;;;;;;;;1088:16939:94;3749:292:64:o;3644:93::-;3696:30;;;-1:-1:-1;3696:30:64;;-1:-1:-1;3696:30:64;17253:291:94;-1:-1:-1;;;;;1088:16939:94;;;-1:-1:-1;1088:16939:94;;;17377:26;1088:16939;;;;;;;17428:29;;17424:63;;17253:291;:::o;1796:162:38:-;1710:6;1088:16939:94;-1:-1:-1;;;;;1088:16939:94;735:10:59;1855:23:38;1851:101;;1796:162::o;1851:101::-;1901:40;;;1710:6;1901:40;735:10:59;1901:40:38;1088:16939:94;;1710:6:38;1901:40;15819:794:94;15971:8;1088:16939;15819:794;;;;-1:-1:-1;;;;;1088:16939:94;15963:31;15959:64;;-1:-1:-1;16094:13:94;1088:16939;;16109:23;;;;;16265:22;:15;;;;:::i;:::-;;:22;1088:16939;16261:159;;16094:13;1088:16939;;16094:13;;16261:159;-1:-1:-1;;;;;16318:15:94;;;;:::i;:::-;;1088:16939;15971:8;1088:16939;-1:-1:-1;;;;;1088:16939:94;;;;16265:22;16382:15;1088:16939;16382:15;;:::i;:::-;;:22;1088:16939;;;-1:-1:-1;;;3279:39:51;;3303:4;3279:39;;;1088:16939:94;;;;;;;;;16265:22;1088:16939;3279:39:51;1088:16939:94;3279:39:51;;;;;;;;-1:-1:-1;3279:39:51;;;16261:159:94;3357:20:51;;;;;;1088:16939:94;3357:20:51;;:::i;:::-;;;:::i;:::-;16261:159:94;;;;3279:39:51;;;;;16265:22:94;3279:39:51;;;;;;;;;16265:22:94;3279:39:51;;;:::i;:::-;;;1088:16939:94;;;;;;;3279:39:51;;3357:20;3279:39;;;;;-1:-1:-1;3279:39:51;;16109:23:94;;;;1088:16939;;;;;15971:8;1088:16939;;16555:51;;;;;;1088:16939;;-1:-1:-1;1088:16939:94;;;;;;;;;;;;;16555:51;;1088:16939;;;;;;16555:51;;;1088:16939;;;;;;;;;;;:::i;:::-;16555:51;;;;;;;;;;15819:794;:::o;16555:51::-;-1:-1:-1;16555:51:94;;;:::i;:::-;15819:794::o;1662:232:51:-;10404:1148;;-1:-1:-1;;;;10404:1148:51;;;-1:-1:-1;;;;;10404:1148:51;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1662:232:51;10404:1148;;;1809:4;-1:-1:-1;10404:1148:51;;;;;;;1662:232;10404:1148;;-1:-1:-1;10404:1148:51;;1766:48;1762:126;;1662:232;:::o;1762:126::-;-1:-1:-1;;;;1837:40:51;;;-1:-1:-1;;;;;1088:16939:94;;;;10404:1148:51;1088:16939:94;10404:1148:51;;1837:40;10404:1148;;1809:4;10404:1148;;;;;;;;;;;;;;;;;;;-1:-1:-1;10404:1148:51;;;;;5098:367;;12233:1072;;12199:23;;;;5226:5;12233:1072;1088:16939:94;;;;;12233:1072:51;;;;;;;;;5226:5;12233:1072;;;;;;;;5226:5;12233:1072;;;;;;;5098:367;12233:1072;;5189:43;5185:274;;5098:367;;;:::o;5185:274::-;12233:1072;;12199:23;;;5226:5;12233:1072;;;;5226:5;12233:1072;;;5226:5;12233:1072;;;;;;;;5226:5;12233:1072;;;;;;;5185:274;12233:1072;;5252:38;5248:91;;12233:1072;;12199:23;;;;5226:5;12233:1072;;;;;;5226:5;12233:1072;;;;;;;;5226:5;12233:1072;;;;;;;5185:274;12233:1072;;5357:42;5353:95;;5098:367;:::o;12233:1072::-;;;;;;;;;;;;;;;;;;;5248:91;-1:-1:-1;;;5226:5:51;5299:40;;;-1:-1:-1;;;;;1088:16939:94;;12233:1072:51;1088:16939:94;12233:1072:51;;5299:40;12233:1072;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17851:174:94;1710:6:38;1088:16939:94;-1:-1:-1;;;;;1088:16939:94;17917:10;:21;;;:47;;17851:174;17913:106;;17851:174::o;17917:47::-;-1:-1:-1;1088:16939:94;;-1:-1:-1;;;;;1088:16939:94;17917:10;17942:22;;17917:47;;16758:424;16918:1;16906:13;1088:16939;;16921:24;;;;;16966:16;:23;:16;1088:16939;16966:16;;;:::i;:::-;;:23;1088:16939;16962:145;;16906:13;1088:16939;16906:13;;16962:145;16966:23;17069:16;;;;:::i;:::-;;:23;1088:16939;;;;;;;;16918:1;1088:16939;17013:17;16966:23;1088:16939;;16918:1;1088:16939;;;;;;17042:16;;;;:::i;:::-;;1088:16939;;;;;;;;-1:-1:-1;1088:16939:94;;;17013:79;1088:16939;-1:-1:-1;1088:16939:94;;;;17013:79;:::i;:::-;1088:16939;;16962:145;;16921:24;;;;16758:424::o","linkReferences":{}},"methodIdentifiers":{"akAddressToPoolManager(address)":"3067e6b8","akAddressToPositionManager(address)":"2a487f4f","akToStashedTokens(address,address)":"e803ba85","burn(address,uint256,bytes)":"44d17187","claimFees(address)":"15a0ea6a","claimFees(address,uint256)":"5c46ff99","createPool(address,address,(int24,address,int24),(int24,int24,uint256,address,address,uint256)[],bytes)":"2b10d5a1","decreaseLiquidityForPosition(address,uint256,bytes)":"566fbf9b","exactInOnPool(address,address,uint256,bool,bytes)":"05be00bd","feeSplit()":"6373ea69","increaseLiquidityForPosition(address,uint256,uint256,uint256,bytes)":"fcb5ce26","isPoolManagerRegistered(address)":"36fd6911","mint(address,uint256,uint256,int24,int24,address,bytes)":"5ffb842f","operator()":"570ca735","owner()":"8da5cb5b","registerContract(address,bool)":"0ff4f839","registerPoolManager(address,bool)":"95bdb535","renounceOwnership()":"715018a6","setFeeSplit(address)":"2c83433c","setOperator(address)":"b3ab15fb","stake(address,bytes)":"c88d9ba6","stake(address,uint256,bytes)":"3e12170f","topUpAk(address,address,uint256)":"9677713b","transferOwnership(address)":"f2fde38b","unstake(address,bytes)":"6456e114","unstake(address,uint256,bytes)":"c4113b88","withdrawFromAk(address,address,uint256)":"baab915c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BadPositionConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAmount\",\"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\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AKStashTopUp\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AKStashWithdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newFeeSplit\",\"type\":\"address\"}],\"name\":\"FeeSplitChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorChanged\",\"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\":\"akAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"poolManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"positionManager\",\"type\":\"address\"}],\"name\":\"PoolManagerRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"poolManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isWhitelisted\",\"type\":\"bool\"}],\"name\":\"PoolManagerRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"name\":\"RegisteredContract\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"}],\"name\":\"akAddressToPoolManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"akAddressToPositionManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"akToStashedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"burn\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeReceiver\",\"type\":\"address\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"}],\"name\":\"claimFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"claimFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"poolManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"startingTick\",\"type\":\"int24\"},{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"internalType\":\"struct PoolConfig\",\"name\":\"poolConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint256\",\"name\":\"akAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeReceiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"escrowType\",\"type\":\"uint256\"}],\"internalType\":\"struct InitialPositionConfig[]\",\"name\":\"positionConfigs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"pool\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"positionManager\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isToken0\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"positionIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"decreaseLiquidityForPosition\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeReceiver\",\"type\":\"address\"}],\"internalType\":\"struct TokenAmount[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"exactInOnPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountInUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutReceived\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeSplit\",\"outputs\":[{\"internalType\":\"contract IFeeSplit\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"increaseLiquidityForPosition\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Used\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Used\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isPoolManagerRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"address\",\"name\":\"feeReceiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount0Used\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Used\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"name\":\"registerContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"poolManager\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"name\":\"registerPoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeSplit\",\"type\":\"address\"}],\"name\":\"setFeeSplit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"setOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"topUpAk\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"akAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFromAk\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"AKStashTopUp(address,address,uint256)\":{\"params\":{\"akAddress\":\"the ak getting topped up.\",\"amount\":\"the amount getting topped up.\",\"token\":\"the token getting topped up to the stash.\"}},\"AKStashWithdraw(address,address,uint256)\":{\"params\":{\"akAddress\":\"the ak stash to withdraw from.\",\"amount\":\"the amount getting withdrawn.\",\"token\":\"the token getting withdrawn.\"}},\"FeeSplitChanged(address)\":{\"params\":{\"newFeeSplit\":\"The new feeSplit contract address.\"}},\"OperatorChanged(address)\":{\"params\":{\"operator\":\"The operator address being authorized.\"}},\"PoolManagerRegistered(address,address,address)\":{\"params\":{\"akAddress\":\"The AgentKey token address.\",\"poolManager\":\"The PoolManager address.\"}},\"PoolManagerRegistered(address,bool)\":{\"params\":{\"isWhitelisted\":\"Whether the pool is whitelisted or not.\",\"poolManager\":\"The PoolManager address.\"}},\"RegisteredContract(address,bool)\":{\"params\":{\"_contract\":\"The contract address being whitelisted.\",\"isRegistered\":\"whether position is registered or not.\"}}},\"kind\":\"dev\",\"methods\":{\"burn(address,uint256,bytes)\":{\"params\":{\"akAddress\":\"the address of the AgentKey\",\"data\":\"Arbitrary payload\",\"tokenId\":\"the id of the token\"},\"returns\":{\"_0\":\"the stashed tokens received\"}},\"claimFees(address)\":{\"params\":{\"akAddress\":\"The AgentKey token address.\"}},\"claimFees(address,uint256)\":{\"params\":{\"akAddress\":\"The AgentKey token address.\",\"tokenId\":\"The token to claim fees for.\"}},\"createPool(address,address,(int24,address,int24),(int24,int24,uint256,address,address,uint256)[],bytes)\":{\"details\":\"1. Creates pool. 2. Mints initial positions. 3. Registers the positions with the PositionManager.\",\"params\":{\"akAddress\":\"The AgentKey token address.\",\"data\":\"Arbitrary payload.\",\"poolConfig\":\"Pool setup parameters.\",\"poolManager\":\"the poolManager address to use.\",\"positionConfigs\":\"Liquidity position configs defining tick ranges and amounts.\"},\"returns\":{\"isToken0\":\"Whether the agent key token was assigned as token0.\",\"pool\":\"The address of the newly created pool.\",\"positionIds\":\"The ids of the minted positions in the PositionManager, in the same order as provided in positionConfigs.\",\"positionManager\":\"The address of the position manager for this pool.\"}},\"decreaseLiquidityForPosition(address,uint256,bytes)\":{\"details\":\"Reverts if PositionManager is not registered for the given akAddress.\",\"params\":{\"akAddress\":\"The AgentKey token address.\",\"data\":\"Arbitrary payload.\",\"tokenId\":\"The id of the token.\"},\"returns\":{\"_0\":\"stashed tokens received\"}},\"exactInOnPool(address,address,uint256,bool,bytes)\":{\"params\":{\"akAddress\":\"The AgentKey token address.\",\"amountIn\":\"The amount of the swap, always positive because we are in exact-in mode.\",\"data\":\"Arbitrary payload.\",\"isBuy\":\"Whether its a buy or sell.\",\"recipient\":\"The address to receive the output of the swap\"},\"returns\":{\"amountInUsed\":\"The amount of input token used for the swap.\",\"amountOutReceived\":\"The amount received.\"}},\"increaseLiquidityForPosition(address,uint256,uint256,uint256,bytes)\":{\"details\":\"Reverts if PositionManager is not registered for the given akAddress.\",\"params\":{\"akAddress\":\"The AgentKey token address.\",\"amount0\":\"The amount of token0 to add.\",\"amount1\":\"The amount of token1 to add.\",\"data\":\"Arbitrary payload.\",\"tokenId\":\"The id of the token.\"},\"returns\":{\"amount0Used\":\"the amount of token0 used\",\"amount1Used\":\"the amount of token1 used\"}},\"mint(address,uint256,uint256,int24,int24,address,bytes)\":{\"params\":{\"akAddress\":\"its the address of AgentKey\",\"amount0\":\"the token0 amount\",\"amount1\":\"the token1 amount\",\"data\":\"Arbitrary payload\",\"feeReceiver\":\"the fee receiver\",\"tickLower\":\"the lower tick\",\"tickUpper\":\"the upper tick\"},\"returns\":{\"amount0Used\":\"the amount0 used\",\"amount1Used\":\"the amount1 used\",\"tokenId\":\"the tokenId\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerContract(address,bool)\":{\"params\":{\"_contract\":\"Contract address\",\"isRegistered\":\"whether to whitelist or not.\"}},\"registerPoolManager(address,bool)\":{\"params\":{\"isWhitelisted\":\"whether the pool is whitelisted or not.,\",\"poolManager\":\"The PoolManager address to whitelist.\"}},\"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.\"},\"setFeeSplit(address)\":{\"params\":{\"_feeSplit\":\"The new feeSplit contract address.\"}},\"setOperator(address)\":{\"params\":{\"_operator\":\"The operator address to authorize.\"}},\"stake(address,bytes)\":{\"params\":{\"akAddress\":\"The AgentKey token address.\",\"data\":\"Arbitrary payload.\"}},\"stake(address,uint256,bytes)\":{\"params\":{\"akAddress\":\"The AgentKey token address.\",\"data\":\"Arbitrary payload.\",\"tokenId\":\"The position token ID to stake.\"}},\"topUpAk(address,address,uint256)\":{\"params\":{\"akAddress\":\"the ak getting topped up\",\"amount\":\"the amount getting topped up\",\"token\":\"the asset being used\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unstake(address,bytes)\":{\"params\":{\"akAddress\":\"The AgentKey token address.\",\"data\":\"Arbitrary payload.\"}},\"unstake(address,uint256,bytes)\":{\"params\":{\"akAddress\":\"The AgentKey token address.\",\"data\":\"Arbitrary payload.\",\"tokenId\":\"The position token ID to unstake.\"}},\"withdrawFromAk(address,address,uint256)\":{\"details\":\"reverts if not called by owner.\",\"params\":{\"akAddress\":\"the identifier for the pool.\",\"amount\":\"amount to withdraw.\",\"token\":\"token to be withdrawn.\"}}},\"title\":\"LiquidityManager\",\"version\":1},\"userdoc\":{\"events\":{\"AKStashTopUp(address,address,uint256)\":{\"notice\":\"Emitted when an ak stash is topped up.\"},\"AKStashWithdraw(address,address,uint256)\":{\"notice\":\"Emitted when tokens are being withdrawn from an ak stash.\"},\"FeeSplitChanged(address)\":{\"notice\":\"Emitted when the feeSplit contract is changed.\"},\"OperatorChanged(address)\":{\"notice\":\"Emitted when an operator is authorized for an AgentKey address.\"},\"PoolManagerRegistered(address,address,address)\":{\"notice\":\"Emitted when a PoolManager is whitelisted for an AgentKey address.\"},\"PoolManagerRegistered(address,bool)\":{\"notice\":\"Emitted when a PoolManager is whitelisted globally.\"},\"RegisteredContract(address,bool)\":{\"notice\":\"Emitted when a contract is whitelisted to do certain actions on the LiqManager\"}},\"kind\":\"user\",\"methods\":{\"akAddressToPoolManager(address)\":{\"notice\":\"Get pool manager from ak address.\"},\"akAddressToPositionManager(address)\":{\"notice\":\"Maps akAddress to its corresponding position manager.\"},\"akToStashedTokens(address,address)\":{\"notice\":\"maps akAddress => tokenAddress => amountStashed\"},\"burn(address,uint256,bytes)\":{\"notice\":\"Burns a given position\"},\"claimFees(address)\":{\"notice\":\"Claims fees for all positions of a given AgentKey address.\"},\"claimFees(address,uint256)\":{\"notice\":\"Claims fees for provided position of a given AgentKey address.\"},\"constructor\":{\"notice\":\"Initialize LiquidityManager with owner\"},\"createPool(address,address,(int24,address,int24),(int24,int24,uint256,address,address,uint256)[],bytes)\":{\"notice\":\"Creates and initializes a new pool, then mints the provided liquidity positions.\"},\"decreaseLiquidityForPosition(address,uint256,bytes)\":{\"notice\":\"Remove liquidity from position.\"},\"exactInOnPool(address,address,uint256,bool,bytes)\":{\"notice\":\"Buy or sell AK Tokens\"},\"feeSplit()\":{\"notice\":\"Fee split contract for distributing rewards between protocol and users.\"},\"increaseLiquidityForPosition(address,uint256,uint256,uint256,bytes)\":{\"notice\":\"Add liquidity to the position.\"},\"isPoolManagerRegistered(address)\":{\"notice\":\"Whitelisted PoolManager addresses.\"},\"mint(address,uint256,uint256,int24,int24,address,bytes)\":{\"notice\":\"Mints a new position\"},\"operator()\":{\"notice\":\"Returns the operator of the contract.\"},\"registerContract(address,bool)\":{\"notice\":\"Whitelist contract.\"},\"registerPoolManager(address,bool)\":{\"notice\":\"Whitelists a PoolManager globally.\"},\"setFeeSplit(address)\":{\"notice\":\"Sets the fee split contract for reward distribution.\"},\"setOperator(address)\":{\"notice\":\"Authorizes an operator for all AKs.\"},\"stake(address,bytes)\":{\"notice\":\"Stakes all positions for a given AgentKey address.\"},\"stake(address,uint256,bytes)\":{\"notice\":\"Stakes a specific position for a given AgentKey address.\"},\"topUpAk(address,address,uint256)\":{\"notice\":\"Top up an akAddress\"},\"unstake(address,bytes)\":{\"notice\":\"Unstakes all positions for a given AgentKey address.\"},\"unstake(address,uint256,bytes)\":{\"notice\":\"Unstakes a specific position for a given AgentKey address.\"},\"withdrawFromAk(address,address,uint256)\":{\"notice\":\"withdraw stashed tokens to owner.\"}},\"notice\":\"Manages liquidity provisioning across multiple AgentKey tokens and their position managers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/LiquidityManager.sol\":\"LiquidityManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@aero/=lib/slipstream-solc8/\",\":@ensdomains/=lib/slipstream-solc8/node_modules/@ensdomains/\",\":@forge-std/=lib/forge-std/src/\",\":@nomad-xyz/=lib/slipstream-solc8/lib/ExcessivelySafeCall/\",\":@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":@solidity-parser/=lib/slipstream-solc8/node_modules/solhint/node_modules/@solidity-parser/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":ExcessivelySafeCall/=lib/slipstream-solc8/lib/ExcessivelySafeCall/src/\",\":base64-sol/=lib/slipstream-solc8/lib/base64/\",\":base64/=lib/slipstream-solc8/lib/base64/\",\":ds-test/=lib/slipstream-solc8/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat/=lib/slipstream-solc8/node_modules/hardhat/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/v4-periphery/lib/permit2/\",\":slipstream-solc8/=lib/slipstream-solc8/\",\":solidity-lib/=lib/slipstream-solc8/lib/solidity-lib/contracts/\",\":solmate/=lib/v4-core/lib/solmate/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0\",\"dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99\",\"dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/LiquidityManager.sol\":{\"keccak256\":\"0x196c22e86bc6c814b2e69d0e05c30e536393c1abfda700f1619d14b10153a8d9\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://717df07d050eb1a74e0c00ea6f6651df52d745f087f7740d1804686fa9db52dd\",\"dweb:/ipfs/QmPubY9ui8BHGoHgNmjgD7ShnovdzovWH9UWJn3X4kXCFn\"]},\"src/interfaces/IFeeSplit.sol\":{\"keccak256\":\"0x21f422f79df5375394e749d6ac1e3e6c9dd5e1b0193eadc3741e4f017379c6eb\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://32f28490eda84805aafe79352b064c0b94e8214dcb139ffcbf1fc386d21958ca\",\"dweb:/ipfs/QmPKWXp5QHJH3Ttqpb4gaGivSjszqeNegWaPFotYogmuNj\"]},\"src/interfaces/ILiquidityManager.sol\":{\"keccak256\":\"0x78a1235dd77368c919922555b2086b440b1136be4984a311dab464cbd460a979\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f5e4b64fb84c42c1836a3aba30c1ac0e1862636233b29109a84d3b9b568e0fad\",\"dweb:/ipfs/QmWBVDZsxjPzoXwpwYjM5YAadVgCQnS2suu2yJbxonyoyH\"]},\"src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xd6ec7c79d8d13204859c04722804629875fe0aa205937e69e166c71236e1d052\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b341f5aa619dab41d3dcbe5c2397b400adf064aee014b40fa3383d257f5ec90\",\"dweb:/ipfs/QmcbPTUEr8AzMC7mE3vSTSXNx33ht5bEvWejvHJ6AQUAHp\"]},\"src/interfaces/IPositionEscrow.sol\":{\"keccak256\":\"0xa03b1dd0d2d5fb4a7a8b170755d60783afe204b1418cc7030ad771152f3cb4b0\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://0ccde65f408d1215392814d99f6f2904af8eccb62e807e4a7ebf880c58aa0394\",\"dweb:/ipfs/QmP23bDtEHqyLB5S1TffpEkYgeL7FHvfQGPzESpYtMGGLc\"]},\"src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x9e36b593dca449a777b34a4f9169447629913d7bf3f19efa206efeb031dcb012\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://12a3a881897f81bf47a894bd4ebe4b92d749efdb37ea14e4745f2a783942f5eb\",\"dweb:/ipfs/QmcAtskfV9oSgcsJEbhwyY2UpNwk4yJ3PYfofq6ooUS2Xg\"]},\"src/lib/Errors.sol\":{\"keccak256\":\"0x7550dcafd31ac9449f3f2edfaefff0fb5b5eaeacb05baf98db2a146666337c20\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://44a8eeb36678190a4c7f727956a3aa779cb6fb81fda90ec3f7454dea4757938a\",\"dweb:/ipfs/QmazDectw8uLPiPAioQBS1bTs8PYk8qFYHLgEJVr4LgW4d\"]},\"src/types/InitialPoolConfig.sol\":{\"keccak256\":\"0x627e3302d39c67da5e2211ab4796b3a4cc70989f8c32084eb7bb025e7c02d47b\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://21f5913481442c8b52f4bbdc70b221fa0ba9436b5d86d6cc5c7f1ce54dcfc061\",\"dweb:/ipfs/QmNwEy9X9YKCtJNULUByeYbdoxB4gzprCRtqMiQKoZYfw1\"]},\"src/types/InitialPositionConfig.sol\":{\"keccak256\":\"0xb344991c36f356d2930d2dcac7e085f2e71df7087e03561803019b37c4f94b3a\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://03c972cd34c8aa18087e75d4ccccc81b8ffdfb468c849eb0ef759128386ab6d4\",\"dweb:/ipfs/QmVjGtKDbwhLkEAaKNTEQXYhS8nqZFFaDN3qgZfQBmj2aY\"]},\"src/types/MintParams.sol\":{\"keccak256\":\"0x9564734a916b6d03a837e11aa32d1b62557591f461494f7600c6df89de662e78\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a5eee3fa51a78ee07e12029c5f8ef8ebfd9ec4b28df67a9a7599499226dfe362\",\"dweb:/ipfs/QmcktymDDPK3awYRrTaENazcE8ZuoYBES45ZbhqMz4obgh\"]},\"src/types/PoolConfig.sol\":{\"keccak256\":\"0x4adb8c3c64db61911bc4ae5aa78a78a231d8785a46088539a3fedc12bd2802fd\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://88d2221fed2370c33d3adf36157fa8edc2b3dd0dfaff0e6d90e77e962954336b\",\"dweb:/ipfs/QmfGdpATRuVomysRofSW727VpQuR8oaJhVSvdaymqEbX1t\"]},\"src/types/TokenAmount.sol\":{\"keccak256\":\"0xf6dac5cb112626d47b4c7d4257a3713bb4f30e54d28bc9784b383fbc45247dd1\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://8858c1b3b613ad0dd6123385898cf421d292a0a05f5733f73f1e9038f9f1e79c\",\"dweb:/ipfs/QmbRXGaxQEvmkS7dBkhEZHq51F6U9dgsQ2Vex3L4MZZy8Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"BadPositionConfig"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidAddress"},{"inputs":[],"type":"error","name":"InvalidAmount"},{"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":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"Unavailable"},{"inputs":[],"type":"error","name":"UnsupportedToken"},{"inputs":[{"internalType":"address","name":"akAddress","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"AKStashTopUp","anonymous":false},{"inputs":[{"internalType":"address","name":"akAddress","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"AKStashWithdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"newFeeSplit","type":"address","indexed":false}],"type":"event","name":"FeeSplitChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true}],"type":"event","name":"OperatorChanged","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":"akAddress","type":"address","indexed":true},{"internalType":"address","name":"poolManager","type":"address","indexed":true},{"internalType":"address","name":"positionManager","type":"address","indexed":true}],"type":"event","name":"PoolManagerRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"poolManager","type":"address","indexed":false},{"internalType":"bool","name":"isWhitelisted","type":"bool","indexed":false}],"type":"event","name":"PoolManagerRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"_contract","type":"address","indexed":false},{"internalType":"bool","name":"isRegistered","type":"bool","indexed":false}],"type":"event","name":"RegisteredContract","anonymous":false},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"}],"stateMutability":"view","type":"function","name":"akAddressToPoolManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"akAddressToPositionManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"akToStashedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"burn","outputs":[{"internalType":"struct TokenAmount[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"feeReceiver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimFees"},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claimFees"},{"inputs":[{"internalType":"address","name":"poolManager","type":"address"},{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"struct PoolConfig","name":"poolConfig","type":"tuple","components":[{"internalType":"int24","name":"startingTick","type":"int24"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"int24","name":"tickSpacing","type":"int24"}]},{"internalType":"struct InitialPositionConfig[]","name":"positionConfigs","type":"tuple[]","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint256","name":"akAmount","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"feeReceiver","type":"address"},{"internalType":"uint256","name":"escrowType","type":"uint256"}]},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"bytes32","name":"pool","type":"bytes32"},{"internalType":"address","name":"positionManager","type":"address"},{"internalType":"bool","name":"isToken0","type":"bool"},{"internalType":"uint256[]","name":"positionIds","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"decreaseLiquidityForPosition","outputs":[{"internalType":"struct TokenAmount[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"feeReceiver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"bool","name":"isBuy","type":"bool"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"exactInOnPool","outputs":[{"internalType":"uint256","name":"amountInUsed","type":"uint256"},{"internalType":"uint256","name":"amountOutReceived","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeSplit","outputs":[{"internalType":"contract IFeeSplit","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"increaseLiquidityForPosition","outputs":[{"internalType":"uint256","name":"amount0Used","type":"uint256"},{"internalType":"uint256","name":"amount1Used","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolManagerRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"address","name":"feeReceiver","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount0Used","type":"uint256"},{"internalType":"uint256","name":"amount1Used","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"bool","name":"isRegistered","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerContract"},{"inputs":[{"internalType":"address","name":"poolManager","type":"address"},{"internalType":"bool","name":"isRegistered","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerPoolManager"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_feeSplit","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeSplit"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOperator"},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"topUpAk"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address","name":"akAddress","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFromAk"}],"devdoc":{"kind":"dev","methods":{"burn(address,uint256,bytes)":{"params":{"akAddress":"the address of the AgentKey","data":"Arbitrary payload","tokenId":"the id of the token"},"returns":{"_0":"the stashed tokens received"}},"claimFees(address)":{"params":{"akAddress":"The AgentKey token address."}},"claimFees(address,uint256)":{"params":{"akAddress":"The AgentKey token address.","tokenId":"The token to claim fees for."}},"createPool(address,address,(int24,address,int24),(int24,int24,uint256,address,address,uint256)[],bytes)":{"details":"1. Creates pool. 2. Mints initial positions. 3. Registers the positions with the PositionManager.","params":{"akAddress":"The AgentKey token address.","data":"Arbitrary payload.","poolConfig":"Pool setup parameters.","poolManager":"the poolManager address to use.","positionConfigs":"Liquidity position configs defining tick ranges and amounts."},"returns":{"isToken0":"Whether the agent key token was assigned as token0.","pool":"The address of the newly created pool.","positionIds":"The ids of the minted positions in the PositionManager, in the same order as provided in positionConfigs.","positionManager":"The address of the position manager for this pool."}},"decreaseLiquidityForPosition(address,uint256,bytes)":{"details":"Reverts if PositionManager is not registered for the given akAddress.","params":{"akAddress":"The AgentKey token address.","data":"Arbitrary payload.","tokenId":"The id of the token."},"returns":{"_0":"stashed tokens received"}},"exactInOnPool(address,address,uint256,bool,bytes)":{"params":{"akAddress":"The AgentKey token address.","amountIn":"The amount of the swap, always positive because we are in exact-in mode.","data":"Arbitrary payload.","isBuy":"Whether its a buy or sell.","recipient":"The address to receive the output of the swap"},"returns":{"amountInUsed":"The amount of input token used for the swap.","amountOutReceived":"The amount received."}},"increaseLiquidityForPosition(address,uint256,uint256,uint256,bytes)":{"details":"Reverts if PositionManager is not registered for the given akAddress.","params":{"akAddress":"The AgentKey token address.","amount0":"The amount of token0 to add.","amount1":"The amount of token1 to add.","data":"Arbitrary payload.","tokenId":"The id of the token."},"returns":{"amount0Used":"the amount of token0 used","amount1Used":"the amount of token1 used"}},"mint(address,uint256,uint256,int24,int24,address,bytes)":{"params":{"akAddress":"its the address of AgentKey","amount0":"the token0 amount","amount1":"the token1 amount","data":"Arbitrary payload","feeReceiver":"the fee receiver","tickLower":"the lower tick","tickUpper":"the upper tick"},"returns":{"amount0Used":"the amount0 used","amount1Used":"the amount1 used","tokenId":"the tokenId"}},"owner()":{"details":"Returns the address of the current owner."},"registerContract(address,bool)":{"params":{"_contract":"Contract address","isRegistered":"whether to whitelist or not."}},"registerPoolManager(address,bool)":{"params":{"isWhitelisted":"whether the pool is whitelisted or not.,","poolManager":"The PoolManager address to whitelist."}},"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."},"setFeeSplit(address)":{"params":{"_feeSplit":"The new feeSplit contract address."}},"setOperator(address)":{"params":{"_operator":"The operator address to authorize."}},"stake(address,bytes)":{"params":{"akAddress":"The AgentKey token address.","data":"Arbitrary payload."}},"stake(address,uint256,bytes)":{"params":{"akAddress":"The AgentKey token address.","data":"Arbitrary payload.","tokenId":"The position token ID to stake."}},"topUpAk(address,address,uint256)":{"params":{"akAddress":"the ak getting topped up","amount":"the amount getting topped up","token":"the asset being used"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unstake(address,bytes)":{"params":{"akAddress":"The AgentKey token address.","data":"Arbitrary payload."}},"unstake(address,uint256,bytes)":{"params":{"akAddress":"The AgentKey token address.","data":"Arbitrary payload.","tokenId":"The position token ID to unstake."}},"withdrawFromAk(address,address,uint256)":{"details":"reverts if not called by owner.","params":{"akAddress":"the identifier for the pool.","amount":"amount to withdraw.","token":"token to be withdrawn."}}},"version":1},"userdoc":{"kind":"user","methods":{"akAddressToPoolManager(address)":{"notice":"Get pool manager from ak address."},"akAddressToPositionManager(address)":{"notice":"Maps akAddress to its corresponding position manager."},"akToStashedTokens(address,address)":{"notice":"maps akAddress => tokenAddress => amountStashed"},"burn(address,uint256,bytes)":{"notice":"Burns a given position"},"claimFees(address)":{"notice":"Claims fees for all positions of a given AgentKey address."},"claimFees(address,uint256)":{"notice":"Claims fees for provided position of a given AgentKey address."},"constructor":{"notice":"Initialize LiquidityManager with owner"},"createPool(address,address,(int24,address,int24),(int24,int24,uint256,address,address,uint256)[],bytes)":{"notice":"Creates and initializes a new pool, then mints the provided liquidity positions."},"decreaseLiquidityForPosition(address,uint256,bytes)":{"notice":"Remove liquidity from position."},"exactInOnPool(address,address,uint256,bool,bytes)":{"notice":"Buy or sell AK Tokens"},"feeSplit()":{"notice":"Fee split contract for distributing rewards between protocol and users."},"increaseLiquidityForPosition(address,uint256,uint256,uint256,bytes)":{"notice":"Add liquidity to the position."},"isPoolManagerRegistered(address)":{"notice":"Whitelisted PoolManager addresses."},"mint(address,uint256,uint256,int24,int24,address,bytes)":{"notice":"Mints a new position"},"operator()":{"notice":"Returns the operator of the contract."},"registerContract(address,bool)":{"notice":"Whitelist contract."},"registerPoolManager(address,bool)":{"notice":"Whitelists a PoolManager globally."},"setFeeSplit(address)":{"notice":"Sets the fee split contract for reward distribution."},"setOperator(address)":{"notice":"Authorizes an operator for all AKs."},"stake(address,bytes)":{"notice":"Stakes all positions for a given AgentKey address."},"stake(address,uint256,bytes)":{"notice":"Stakes a specific position for a given AgentKey address."},"topUpAk(address,address,uint256)":{"notice":"Top up an akAddress"},"unstake(address,bytes)":{"notice":"Unstakes all positions for a given AgentKey address."},"unstake(address,uint256,bytes)":{"notice":"Unstakes a specific position for a given AgentKey address."},"withdrawFromAk(address,address,uint256)":{"notice":"withdraw stashed tokens to owner."}},"version":1}},"settings":{"remappings":["@aero/=lib/slipstream-solc8/","@ensdomains/=lib/slipstream-solc8/node_modules/@ensdomains/","@forge-std/=lib/forge-std/src/","@nomad-xyz/=lib/slipstream-solc8/lib/ExcessivelySafeCall/","@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/openzeppelin-contracts/","@solidity-parser/=lib/slipstream-solc8/node_modules/solhint/node_modules/@solidity-parser/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","ExcessivelySafeCall/=lib/slipstream-solc8/lib/ExcessivelySafeCall/src/","base64-sol/=lib/slipstream-solc8/lib/base64/","base64/=lib/slipstream-solc8/lib/base64/","ds-test/=lib/slipstream-solc8/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat/=lib/slipstream-solc8/node_modules/hardhat/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/v4-periphery/lib/permit2/","slipstream-solc8/=lib/slipstream-solc8/","solidity-lib/=lib/slipstream-solc8/lib/solidity-lib/contracts/","solmate/=lib/v4-core/lib/solmate/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/LiquidityManager.sol":"LiquidityManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098","urls":["bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0","dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53","urls":["bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99","dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/LiquidityManager.sol":{"keccak256":"0x196c22e86bc6c814b2e69d0e05c30e536393c1abfda700f1619d14b10153a8d9","urls":["bzz-raw://717df07d050eb1a74e0c00ea6f6651df52d745f087f7740d1804686fa9db52dd","dweb:/ipfs/QmPubY9ui8BHGoHgNmjgD7ShnovdzovWH9UWJn3X4kXCFn"],"license":"Unlicense"},"src/interfaces/IFeeSplit.sol":{"keccak256":"0x21f422f79df5375394e749d6ac1e3e6c9dd5e1b0193eadc3741e4f017379c6eb","urls":["bzz-raw://32f28490eda84805aafe79352b064c0b94e8214dcb139ffcbf1fc386d21958ca","dweb:/ipfs/QmPKWXp5QHJH3Ttqpb4gaGivSjszqeNegWaPFotYogmuNj"],"license":"Unlicense"},"src/interfaces/ILiquidityManager.sol":{"keccak256":"0x78a1235dd77368c919922555b2086b440b1136be4984a311dab464cbd460a979","urls":["bzz-raw://f5e4b64fb84c42c1836a3aba30c1ac0e1862636233b29109a84d3b9b568e0fad","dweb:/ipfs/QmWBVDZsxjPzoXwpwYjM5YAadVgCQnS2suu2yJbxonyoyH"],"license":"UNLICENSED"},"src/interfaces/IPoolManager.sol":{"keccak256":"0xd6ec7c79d8d13204859c04722804629875fe0aa205937e69e166c71236e1d052","urls":["bzz-raw://8b341f5aa619dab41d3dcbe5c2397b400adf064aee014b40fa3383d257f5ec90","dweb:/ipfs/QmcbPTUEr8AzMC7mE3vSTSXNx33ht5bEvWejvHJ6AQUAHp"],"license":"UNLICENSED"},"src/interfaces/IPositionEscrow.sol":{"keccak256":"0xa03b1dd0d2d5fb4a7a8b170755d60783afe204b1418cc7030ad771152f3cb4b0","urls":["bzz-raw://0ccde65f408d1215392814d99f6f2904af8eccb62e807e4a7ebf880c58aa0394","dweb:/ipfs/QmP23bDtEHqyLB5S1TffpEkYgeL7FHvfQGPzESpYtMGGLc"],"license":"Unlicense"},"src/interfaces/IPositionManager.sol":{"keccak256":"0x9e36b593dca449a777b34a4f9169447629913d7bf3f19efa206efeb031dcb012","urls":["bzz-raw://12a3a881897f81bf47a894bd4ebe4b92d749efdb37ea14e4745f2a783942f5eb","dweb:/ipfs/QmcAtskfV9oSgcsJEbhwyY2UpNwk4yJ3PYfofq6ooUS2Xg"],"license":"UNLICENSED"},"src/lib/Errors.sol":{"keccak256":"0x7550dcafd31ac9449f3f2edfaefff0fb5b5eaeacb05baf98db2a146666337c20","urls":["bzz-raw://44a8eeb36678190a4c7f727956a3aa779cb6fb81fda90ec3f7454dea4757938a","dweb:/ipfs/QmazDectw8uLPiPAioQBS1bTs8PYk8qFYHLgEJVr4LgW4d"],"license":"Unlicense"},"src/types/InitialPoolConfig.sol":{"keccak256":"0x627e3302d39c67da5e2211ab4796b3a4cc70989f8c32084eb7bb025e7c02d47b","urls":["bzz-raw://21f5913481442c8b52f4bbdc70b221fa0ba9436b5d86d6cc5c7f1ce54dcfc061","dweb:/ipfs/QmNwEy9X9YKCtJNULUByeYbdoxB4gzprCRtqMiQKoZYfw1"],"license":"Unlicense"},"src/types/InitialPositionConfig.sol":{"keccak256":"0xb344991c36f356d2930d2dcac7e085f2e71df7087e03561803019b37c4f94b3a","urls":["bzz-raw://03c972cd34c8aa18087e75d4ccccc81b8ffdfb468c849eb0ef759128386ab6d4","dweb:/ipfs/QmVjGtKDbwhLkEAaKNTEQXYhS8nqZFFaDN3qgZfQBmj2aY"],"license":"Unlicense"},"src/types/MintParams.sol":{"keccak256":"0x9564734a916b6d03a837e11aa32d1b62557591f461494f7600c6df89de662e78","urls":["bzz-raw://a5eee3fa51a78ee07e12029c5f8ef8ebfd9ec4b28df67a9a7599499226dfe362","dweb:/ipfs/QmcktymDDPK3awYRrTaENazcE8ZuoYBES45ZbhqMz4obgh"],"license":"Unlicense"},"src/types/PoolConfig.sol":{"keccak256":"0x4adb8c3c64db61911bc4ae5aa78a78a231d8785a46088539a3fedc12bd2802fd","urls":["bzz-raw://88d2221fed2370c33d3adf36157fa8edc2b3dd0dfaff0e6d90e77e962954336b","dweb:/ipfs/QmfGdpATRuVomysRofSW727VpQuR8oaJhVSvdaymqEbX1t"],"license":"Unlicense"},"src/types/TokenAmount.sol":{"keccak256":"0xf6dac5cb112626d47b4c7d4257a3713bb4f30e54d28bc9784b383fbc45247dd1","urls":["bzz-raw://8858c1b3b613ad0dd6123385898cf421d292a0a05f5733f73f1e9038f9f1e79c","dweb:/ipfs/QmbRXGaxQEvmkS7dBkhEZHq51F6U9dgsQ2Vex3L4MZZy8Y"],"license":"Unlicense"}},"version":1},"id":94}