```\n            // Check if there was a partial fill and handle the payout + refund\n            if (settlement.pfBidder != address(0)) {\n                // Allocate quote and protocol fees for bid\n                _allocateQuoteFees(\n                    feeData.protocolFee,\n                    feeData.referrerFee,\n                    settlement.pfReferrer,\n                    routing.seller,\n                    routing.quoteToken,\n                    // Reconstruct bid amount from the settlement price and the amount out\n                    uint96(\n                        Math.mulDivDown(\n                            settlement.pfPayout, settlement.totalIn, settlement.totalOut\n                        )\n                    )\n                );\n\n                // Reduce funding by the payout amount\n                unchecked {\n                    routing.funding -= uint96(settlement.pfPayout);\n                }\n\n                // Send refund and payout to the bidder\n                //@audit if pfBidder gets blacklisted the settlement is broken\n                Transfer.transfer(\n                    routing.quoteToken, settlement.pfBidder, settlement.pfRefund, false\n                );\n\n                _sendPayout(settlement.pfBidder, settlement.pfPayout, routing, auctionOutput);\n            }\n```\n