ÿØÿà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Áß_ÿÙ Yc@@sTdZddlmZddlZddlmZdZddZdZ dS(s raven.contrib.django.utils ~~~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. i(tabsolute_importN(tsettingscc@sYdV|jd}x/|dkrE|dV|jd|d}qWt|dVdS(Nis i(tfindtlen(ttemplate_sourcetp((sK/opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/utils.pytlinebreak_iters  cC@s d}|dk r|d}|d}g}|dg|ddd7}x%|dD]\}}|j|qWW|dgd7}n|rL|\}\} } t|dd}} |j} d}d} g}x[tt| D]G\}}| | kr| |kr|}n|j| | |!|} qW| sE|dkrXiSn td |dkrsd }d } n|jd d } ||t|d d|!}|||d|d!}|||gd}iit j j |d6|d6|d6|d6|d6|d6d6| d6S(NcS@s\g}xO|D]G}t|ttfrGt|dkrG|d}n|j|q W|S(Nii(t isinstancetlistttupleRtappend(titemstrvtitem((sK/opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/utils.pyt_remove_numberss  ' tlinetnamett source_linesiitloadnamesSource or debug neededss /templates/iiitfilenametabs_patht pre_contextt context_linetlinenot post_contextttemplatetculprit( tNoneR tgetattrtreloadt enumerateRt TypeErrortsplittmaxtostpathtbasename(tsourcetdebugRRRRtnumRtorigintstarttendRRtuptotnextRRR((sK/opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/utils.pytget_data_from_templatesP           cC@stjr(d|jkr(|jd}npd|jkrG|jd}nQ|jd}t|jd}||jr|dpdkrd||f}n|S(s] A reimplementation of Django's get_host, without the SuspiciousOperation check. tHTTP_X_FORWARDED_HOSTt HTTP_HOSTt SERVER_NAMEt SERVER_PORTt443t80s%s:%s(RtUSE_X_FORWARDED_HOSTtMETAtstrt is_secure(trequestthostt server_port((sK/opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/utils.pytget_hostTs  ( t__doc__t __future__RR#t django.confRRRR.R<(((sK/opt/alt/python27/lib/python2.7/site-packages/raven/contrib/django/utils.pyts   <