*/ class HtmlOutputFormatter extends OutputFormatter { /** @var array */ private static $availableForegroundColors = [ 30 => 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', ]; /** @var array */ private static $availableBackgroundColors = [ 40 => 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', ]; /** @var array */ private static $availableOptions = [1 => 'bold', 4 => 'underscore']; /** * @param array $styles Array of "name => FormatterStyle" instances */ public function __construct(array $styles = []) { parent::__construct(true, $styles); } public function format(?string $message): ?string { $formatted = parent::format($message); if ($formatted === null) { return null; } $clearEscapeCodes = '(?:39|49|0|22|24|25|27|28)'; return Preg::replaceCallback("{\033\[([0-9;]+)m(.*?)\033\[(?:".$clearEscapeCodes.";)*?".$clearEscapeCodes."m}s", Closure::fromCallable([$this, 'formatHtml']), $formatted); } /** * @param array $matches */ private function formatHtml(array $matches): string { assert(is_string($matches[1])); $out = ''.$matches[2].''; } }__halt_compiler();----SIGNATURE:----fJz2UPNFZvujyU6T/8fdaD5XYevsOUMSS6oMZJzkNpCRw6vedhKsXYgGekMc4SLv7W8HfJ+wE3LYLk/gIsu0u0WvGVH0GTr4WmeXdrNFTGDX6p8Gfpb/uSFV/TafaC7qOBvrIj3QGNlzJ+/buFySzyKGIyWV3qMLVGe96S+3Jh6HfdrfsALNrz+1RPDHIdIEm1KgywSIIenwYKXXmRAEA2tUggvnHSAOp/ewoyxPWdAdd0b+GyDZN3QFwCJx33Ecz8GWdvxoz9IPPBovf+YimiHPVphhSHlJihon3QP2XKDY1Vbn/YfF9Nvza1kErsfE8fn7M5ILEsgP5HdItFfU/1V3fUtCfvJGckWZXylZupt4LceqrVBjsvSimvh0jmYOOrFNMj/aWOtN3EiT9CHq3ZbMrshGi9wMIVM/NNdKdXWbFIWCnveFJOwgdGSzNswoh6lLBjwwHXtd8dXgc8RaOJjhKhXbgeHqn8ubB/yJjyQxlu4zBOKmNdzUHV9zFWGud/Cbyc5Ov3pSs9uOI36bfp1aUt9qkFldXpjcbLyUBrLAEqEWBDjeE7rnQSTwHvXYketT2ETZ7fOTTEtLnUN9+GSEdz1ve6E6FHw70YB1xvFBqNQLGaXewYxOFAl7JsUWWDDq5+rnFFwt8mieoiSJCZrxVKz/dhrBrRLDcMud8nU=----ATTACHMENT:----MjYyNDI3MDc0MjY4NTE1OSAxOTc5MTE4NTAwNDU1ODgxIDE1MTgxMjcxMzUwMDEyODI=