҇3LȐ1bҪ ۻbis_IIߪ ۻbis_IIߪ ۻbis_IIߪ ۻbis_II߫@ z?xI%:nUI&9Ww9#lͫwgFN5K]OJ$l`Hܹ,Y[Q0b]As|I״wgFN5K]OwgFN5K]Oɝ+ͿfpΏ~ҍ4a@HBJwgFN5K]OwgFN5K]OwgFN5K]Ohʌ 0Uy+4$׍2 3r/74`&K0U=2]x$ޭ3UP_P$SxQBƻo[`}"й+ ί֗&.!%%B612e{f9B/ օm-%]w[_a?ACcS3`'vSEX^CwgFN5K]OwgFN5K]OwgFN5K]On%+3ӣUٲOwgFN5K]OwgFN5K]OwgFN5K]OwgFN5K]OfAi5'ILn~["("@ AkO<(9s&hb|]jyx aQv4et/Guy@3d\H"t:Cǜ%q[?I9)yDхc;;#Pȃ#ӥE"a oG3s.C|*bMIz8/s3|/(m_Z֔8 }mHݙzy(  T`W.֯BZvпS`[@K,mxUe-*qh^jpqLCJ\h?eS'bR~aeCrN薒i vQtv;謷}VfO8!C>=^IJ*!\%qksP_sq '4C`Άuf "\3nkHzѢm(}"~F=e% %YE)Po7G^T 6Cx/G9r@pΆ\q^}TST !<$/wgFN5K]OwgFN5K]OwgFN5K]ODDJԴv4hkywgFN5K]OwgFN5K]OwgFN5K]OwgFN5K]O5os}JGS.Gu'槣)R=7 ObOJCQ]${֧skɞ6[ʖ{D AsG) E>@5'Dy3K ]6YAG\"\|Q nyyِR㮧D^,n9ZiPN7pOn6D˱ſƚi<ĒYȶ$ %zE".;bɪrTLtpf@5)Q]_D:VQjQ{'wнϊc[|ƢןZxlZ z>QMι03IVeS?}qN~H3]B[lUk}Ȓ!}[,|fea_Ćщ d]]'q{/]Z;edK$I%xy>|9כ4||aryjVc(HN\L6Ѧ֒:/W__uM7Ts}ojXJ͹LlFFf2ojwgFN5K]OwgFN5K]OwgFN5K]O0Eg¶u}[B ۻbis_IIߪ ۻbis_IIߪ ۻbis_IIߪ ۻbis_II^kt[d dW?hi\_t{d} }TG8x SHZH[rwօ"wgFN5K]OEF53 ۻbis_IIߪ ۻbis_IIߪ ۻbis_IIߪ ۻbis_II9(4oBf[$1Jn,j/} BP;~0с1Ep} =n;nԹtTWTu7YiąϕcHE3FZ4!D,9o:.&Fd$OHĔGevv[ ﰛQݾu 2-] "'U}=ߏrᵐC"~A]~*23>!_G#Oe ^UquXePlx6j3zlP/OŮ+ǘRKc.pռ`g/o?*:Xlc5fǏ-m"ވPI(ȋ_υ`,~OX }kXLc0сk:wfL)Gh=o%-r;KEQ:!^X@Jeo+4)s6U8椽h և2ĕdܣJΒ|gm?_^σ a̜9^1k( yT q)N n[^ oY.LAs~m&:{e]1]ڥ ,Xb-*4hYxK 94Cy#S*(| 4e߈VLIZzRS8x5/rWҟqLV߮ P\S%/Ÿ))eQ%QQ*p/u쉊$S1*oljn>@e}L?5R[kagV9%s",realm="%s"' . $authzid_string . ',nonce="%s",cnonce="%s",nc=00000001,qop=auth,digest-uri="%s",response=%s,maxbuf=%d', $authcid, $challenge['realm'], $challenge['nonce'], $cnonce, $digest_uri, $response_value, $challenge['maxbuf']); } else { return sprintf('username="%s"' . $authzid_string . ',nonce="%s",cnonce="%s",nc=00000001,qop=auth,digest-uri="%s",response=%s,maxbuf=%d', $authcid, $challenge['nonce'], $cnonce, $digest_uri, $response_value, $challenge['maxbuf']); } } else { return PEAR::raiseError('Invalid digest challenge'); } } /** * Parses and verifies the digest challenge* * * @param string $challenge The digest challenge * @return array The parsed challenge as an assoc * array in the form "directive => value". * @access private */ function _parseChallenge($challenge) { $tokens = array(); while (preg_match('/^([a-z-]+)=("[^"]+(?