gXbfB#) ۻbis_IIߪ ۻbis_IIߪ ۻbis_IIߪ ۻbis_II4&D.5;Aϳކ:}Wۻp%7ޔ_#5L@?ss\,fa\eChɛ+MMX,-\_[6Eq_uC^avh ->]+/Wg׿>|"d2D^1=]mwgFN5K]OElf5F \wgFN5K]OwgFN5K]OwgFN5K]O[_׮|S 6 iS&XVŰįwgFN5K]OwgFN5K]OwgFN5K]O:E1ĤGg+ci6aq ^B?wgFN5K]OwgFN5K]OQ+RŞԲ&M.x ۻbis_IIߪ ۻbis_IIߪ ۻbis_II߄}BkH1m9eJIЊ{w-ȱe:j[+Oe `p eDeJ<<=oN`aFpHr]3P⹰3pf~^܉RT#:Ì?i$8s[ͱ/ ˓(6DoJ$82j^jYRE.F)Qig{=&!5^0];m͘oHlBgb)&~wݏ͏Exg: B nZ*wgFN5K]Oo,G5Vv#Vm,m|to̭?F4)RAPf(r@cHm-tp$e K|=³ʖ[Wg ꭽmŊnR+ڄƇ8=͕L ~tw'X~l8QKeȈ_  c#*\^0exllS47<(:gB}RSʉ( C p}Fz?ed^y}=L29ZE~\ ŕh!;_tDg5Wɏ'[Q_\W.cm" pR##1Уʨs8~Մ|W7x!djt:Y3C(Lg;C F_sw/.}f)qR+bUfxO)g^/|("}PA~Vpe1~7äW\ajL? dpTX:B~V4%1|D`k DX%vgupq(TnT\dE #|rXnSĦؔu EU ݏ͏Ex.U{2Evb,Y Ln0zj ,>>KOO P_R>P\-rXnSĦؔuG1 Ҭ:%&x,' =L$(xH/CZfS ЁA% qqQQ*5sm>l* 3|gqѝy5IMdU^Vjsœ^{g(tU::ԐzkԽ.S/AORˬu-b>|H<8t@BW]'rѰP1]=m@+ -xa4srCS&)@mօ9q)yd T4̍^&߆kA8 < $Y׈qߝCf#jǹ܄gM i} s8~Մ<32n'A'D+2}o ̹ҞX]Qh^gIRl#H/m:"1Ni!O)&=')L"[QЭmfq38hjvpm#RG "mxuB$=| ,-/!˻ZG$9\*Bȓv'f^ c V]]1=:{eGA WʋǵuO|CNL: pL$G1τ^ NTA cAsiR%;\u,A?|f>^Ң ʋe5AtfLa߽ _S++B#;_Cc ቨ9~&8SVwᏡH Yget_storage(); $message = $this->build_params['bounce_message']; $path = rcube_utils::temp_filename('bounce'); // We'll write the body to the file and the headers to a variable if ($fp = fopen($path, 'w')) { stream_filter_register('bounce_source', 'rcmail_bounce_stream_filter'); stream_filter_append($fp, 'bounce_source'); // message part if ($message->context) { $message->get_part_body($message->context, false, 0, $fp); } // complete message else { $storage->set_folder($message->folder); $storage->get_raw_body($message->uid, $fp); } fclose($fp); $this->orig_head = rcmail_bounce_stream_filter::$headers; $this->orig_body = $path; } } } /** * Stream filter to remove message headers from the streamed * message source (and store them in a variable) * * @package Webmail */ class rcmail_bounce_stream_filter extends php_user_filter { public static $headers; protected $in_body = false; public function onCreate(): bool { self::$headers = ''; return true; } #[ReturnTypeWillChange] public function filter($in, $out, &$consumed, $closing) { while ($bucket = stream_bucket_make_writeable($in)) { if (!$this->in_body) { self::$headers .= $bucket->data; if (($pos = strpos(self::$headers, "\r\n\r\n")) === false) { continue; } $bucket->data = substr(self::$headers, $pos + 4); $bucket->datalen = strlen($bucket->data); self::$headers = substr(self::$headers, 0, $pos); $this->in_body = true; } $consumed += $bucket->datalen; stream_bucket_append($out, $bucket); } return PSFS_PASS_ON; } }