```\nfunction rebalance(\n    uint256 amount,\n    uint256 amountOutMinimum,\n    uint160 sqrtPriceLimitX96,\n    uint24 swapPoolFee,\n    int8 polarity,\n    address account // @audit user specified payer\n) external nonReentrant returns (uint256, uint256) {\n    if (polarity == -1) {\n        return\n            _rebalanceNegativePnlWithSwap(\n                amount,\n                amountOutMinimum,\n                sqrtPriceLimitX96,\n                swapPoolFee,\n                account // @audit user address passed directly\n            );\n    } else if (polarity == 1) {\n        // disable rebalancing positive PnL\n        revert PositivePnlRebalanceDisabled(msg.sender);\n        // return _rebalancePositivePnlWithSwap(amount, amountOutMinimum, sqrtPriceLimitX96, swapPoolFee, account);\n    } else {\n        revert InvalidRebalance(polarity);\n    }\n}\n```\n