```\n/// @notice Starts signer liquidation due to abort or undercollateralization\n/// @dev We first attempt to liquidate on chain, then by auction\n/// @param \_d deposit storage pointer\nfunction startSignerAbortLiquidation(DepositUtils.Deposit storage \_d) internal {\n    \_d.logStartedLiquidation(false);\n    // Reclaim used state for gas savings\n    \_d.redemptionTeardown();\n    \_d.seizeSignerBonds();\n\n    \_d.liquidationInitiated = block.timestamp;  // Store the timestamp for auction\n    \_d.liquidationInitiator = msg.sender;\n    \_d.setFraudLiquidationInProgress();\n}\n```\n