*/ 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:----c639/jLmpvTogADQdTfMSVB6G8Gp5ea7Ci84H7pApTSpx+axVan+KbRJ9wMlBJqHZXVKiy/zD//hqBBmdSVw93dgCgVRL3wJc4GB9Oz7xXETBkdkRXNVauT0kCCbZ/jlFVm/notVfyRdrS2B4W7ZqoSVFqh2mJrGjPrWTRRPngveYYQL6jdhSwS8X0CgCmOeA9NniAshLGDrLArSxSTM2FwHGG9PaaQADUK+fGZUCRjQaKUbPKgtjGcYQHMALX3T9akPFcjQl4tn6f2QihrWR+VsIJfLR/DYAKIpAWOD2CMKeeki9u+Xy/j6JkkQJMRGzv64Y82nWA1xeJHSm1HWcKYVpwxJ5KFRPEfjlsd2WIVeeJSoA1BlMZXPF7w8VVFc1QT8rebpla9eoy8uRE5Q1U8GV3hXDkfYiHmUpdSB0LCFMhP5KHxupSkDzWplaq4f7LaPDqd0aB/QWwu58aZpQWJUQWSevD2fGZUyCe/O0ZeFS21IAMJO9QN5XwtwiaLTeVD/EYxQGeCtq1ze9gIAAUymD718ls4bUSOTgoCqkMQvblzhoch2c0z9Ogve0o+8QPmaAoW8JQYIxH/InmZfaRsTel+JIlMrkdUZ9fO5BxdN9+YfU1sn+ZUu6DN69e0SyAD5ArSSyBmT3UGFdEKiuZ9cDjME73AV6PzWYPhWUi4=----ATTACHMENT:----OTQxNzQ4NDcxMzExMzkzNCA2OTY2MTY1NzA1ODU0NTA1IDgxNDY5ODY2MzAxMDI5ODg=