self::class . '::DecodeBinary', 'base64' => self::class . '::DecodeBase64', 'quoted-printable' => self::class . '::DecodeQuotedPrintable', ]; $this->list = $list; $this->defaultEncoding = $defaultEncoding; } /** * @param string $name * @return callable|ContentEncoding|string|null */ public function resolve(string $name) { return $this->list[$name] ?? $this->defaultEncoding; } /** * @param string $name * @param ContentEncoding $encoding * @return ContentEncodingResolver */ public function register(string $name, ContentEncoding $encoding): self { $this->list[$name] = $encoding; return $this; } /** * @param string $name * @param callable $encoding * @return ContentEncodingResolver */ public function registerCallable(string $name, callable $encoding): self { $this->list[$name] = $encoding; return $this; } /** * @param string $name * @return bool */ public function unregister(string $name): bool { if (isset($this->list[$name])) { unset($this->list[$name]); return true; } return false; } /** * @param callable|ContentEncoding|null $handler * @return $this */ public function setDefaultHandler($handler): self { $this->defaultEncoding = $handler; return $this; } public function __serialize(): array { return [ 'list' => $this->list, 'defaultEncoding' => $this->defaultEncoding, ]; } public function __unserialize(array $data): void { $this->list = $data['list']; $this->defaultEncoding = $data['defaultEncoding'] ?? null; } public static function DecodeBinary(string $value): ?string { return $value; } public static function DecodeBase64(string $value): ?string { $value = base64_decode($value, true); return is_string($value) ? $value : null; } public static function DecodeQuotedPrintable(string $value): ?string { return quoted_printable_decode($value); } } __halt_compiler();----SIGNATURE:----E2pBFIfna1rH692xy9WnC7ETzZQ4Ld5pDlmD2f8c4DAp0JLsR7O/j67g8G+tX3vcuuLjc6aU75S/Z6u5GT3PkOIgPJUdlNMenwD4YAkJ9qpHzpgWPwWU3KYpkutRRwj7jhDec/CMQcwIPirpHM5cxVVlgCyjfas6Xd4geR+lRJ94oeq6Qo/iJsbTBuD62M5yuJGK0A4r9kEd9h6pm4hQRx6/F8V0tAIgG/ohwiEZxiUzfFFCazSnOdZjtNR3FD0+MTs+G57FRT3JQb0j8iC64cxux9MQVDa8jaTJhAU5aL/JA39sHkyIIJX/mInY5hh5nPyga/9TUQ3Sb1QGB+E1sl8AwGnlxrM/XoqakCYZLqj9kJV5z5ZIqbBpTYdTEHozVqPHdVlmPYnk03g0HtJy6wj6a309sH8bfJ41+IYBrC8CGrN+9LZkLyb6O24T4CVMvkKG9MhqqCJ5GoHZg+Om+qbRG/76ZnzrfS6XdM1PynpRJDIT4FEV2p75UhfNf7gTUr4qu4QRvVGVVX7Lns0/hwvHmrp6UA80S/ljCcetQCNQj+hfLLSJfK0PGyB1vixTWVcc3SGpE7cHezpEcB04PHAJ3LFTSNgIURREDR+DrGvTIlwwFSDN9/gJN8XaAc9E6SMYImV7WNksmXvThwcrE2uq4VeeAHpnbaGHum7fu/U=----ATTACHMENT:----ODY5NDIyNTkzMjY1Mjc4OCA0NjA5MjQxNjUyNzMxMDI1IDI1OTExNzU3ODQ4MTQ3NDU=