ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ aNc@sndZddlZddlZddlZdefdYZddejeej dZ eje _dS(sC Middleware for logging requests, using Apache combined log format iNt TransLoggercBsGeZdZdZddejdeejdZ dZ dZ RS(s  This logging middleware will log all requests as they go through. They are, by default, sent to a logger named ``'wsgi'`` at the INFO level. If ``setup_console_handler`` is true, then messages for the named logger will be sent to the console. s%(REMOTE_ADDR)s - %(REMOTE_USER)s [%(time)s] "%(REQUEST_METHOD)s %(REQUEST_URI)s %(HTTP_VERSION)s" %(status)s %(bytes)s "%(HTTP_REFERER)s" "%(HTTP_USER_AGENT)s"twsgic Cs|dk r||_n||_||_||_|dkrtj|j|_|rtj}|j tj |j tj d|jj |t|j_n|dk r|jj |qn ||_dS(Ns %(message)s(tNonetformatt applicationt logging_levelt logger_nametloggingt getLoggertloggert StreamHandlertsetLeveltDEBUGt setFormattert Formattert addHandlertFalset propagate( tselfRR RRRtsetup_console_handlertset_logger_leveltconsole((sB/opt/alt/python27/lib/python2.7/site-packages/paste/translogger.pyt__init__s         cstjtjjddjddjdr[dd7nddfd}j|S(Nt SCRIPT_NAMEtt PATH_INFOt QUERY_STRINGt?tREQUEST_METHODcsad}x/|D]'\}}|jdkr |}q q Wj||||S(Nscontent-length(Rtlowert write_log(tstatustheaderstexc_infotbytestnametvalue(tenvirontmethodtreq_uriRtstarttstart_response(sB/opt/alt/python27/lib/python2.7/site-packages/paste/translogger.pytreplacement_start_response:s  (ttimet localtimeturllibtquotetgetRR(RR%R)R*((R%R&R'RR(R)sB/opt/alt/python27/lib/python2.7/site-packages/paste/translogger.pyt__call__3s  ! c Cs~|dkrd}ntjr6tjddd}ntjddd}|dkrdd|}n|dkr}d|}nd}|jdr|d}n|jdr|d}ni |d6|jd pdd 6|d 6|d 6|jd d 6tjd||d6|jdddd6|d6|jddd6|jddd6} |j| } |j j |j | dS(Nt-i<iis+%0.4ds%0.4dtHTTP_X_FORWARDED_FORt REMOTE_ADDRt REMOTE_USERRt REQUEST_URItSERVER_PROTOCOLt HTTP_VERSIONs%d/%b/%Y:%H:%M:%S R+iRR"t HTTP_REFERERtHTTP_USER_AGENT( RR+tdaylighttaltzonettimezoneR/tstrftimetsplitRR tlogR( RR%R&R'R(RR"toffsett remote_addrtdtmessage((sB/opt/alt/python27/lib/python2.7/site-packages/paste/translogger.pyRFs6          N( t__name__t __module__t__doc__RRRtINFOtTrueR RR0R(((sB/opt/alt/python27/lib/python2.7/site-packages/paste/translogger.pyR s Rc Csddlm}t|tr/tj|}nt|trNtj|}nt|d|p`dd|d|d||d|S(Ni(tasboolRRRRR(tpaste.util.convertersRIt isinstancet basestringRt _levelNamesRR(tappt global_confRRRRRRI((sB/opt/alt/python27/lib/python2.7/site-packages/paste/translogger.pyt make_filteres  ( RFRR+R-tobjectRRRGRHR RP(((sB/opt/alt/python27/lib/python2.7/site-packages/paste/translogger.pyts   \