bgh >dZddlmZddlZddlmZdZddZdZdS) z raven.contrib.django.utils ~~~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. )absolute_importN)settingsc#KdV|d}|dkr&|dzV|d|dz}|dk&t|dzVdS)Nr )findlen)template_sourceps k/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/raven/contrib/django/utils.pylinebreak_iterr s} GGGT""A q&&!e  q1u - - q&& o   """"""c8d}|Z|d}|d}g}|dg|dddzz }|dD]\}}|||dgdzz }n|r|\}\} } t|ddx}} |} d}d} g}tt | D]2\}}| | kr| |kr|}|| | ||} 3|r|iSnt d |d }d } n|d d } ||t|d z d|}|||dz|dz}|||gd}tj ||||||d| dS)Ncg}|D]N}t|ttfrt|dkr|d}||O|S)Nr) isinstancelisttupler append)itemsrvitems r _remove_numbersz/get_data_from_template.._remove_numberss[   D$u .. 3t99>>Aw IIdOOOO rlinename source_linesrloadnamezSource or debug neededzz /templates/r)filenameabs_path pre_context context_linelineno post_context)templateculprit) rgetattrreload enumerater TypeErrorsplitmaxospathbasename)sourcedebugrr&r"rnumroriginstartendr)r uptonextr$r'r%s r get_data_from_templater;s+ v= n 5a 8 ;<< ~. & &IC    % % % %q 2% $VZ>>>7 --// ">/#B#BCC  IC}}   T : ; ; ;DD v~I .0111'&..//3!/,s6A:q/A/A&/H"IJJK"?<!fqj0I#JKKL"?L$8#9::1=L((22 &((      rctjrd|jvr|jd}nad|jvr|jd}nJ|jd}t|jd}||rdpdkr|d|}|S)z] A reimplementation of Django's get_host, without the SuspiciousOperation check. HTTP_X_FORWARDED_HOST HTTP_HOST SERVER_NAME SERVER_PORT44380:)rUSE_X_FORWARDED_HOSTMETAstr is_secure)requesthost server_ports r get_hostrKTs $ 1 #w| 3 3|34  $ $|K(|M*',}566 7,,..85@D A A"ddKK0D Kr)N) __doc__ __future__rr0 django.confrr r;rKrr rPs{'&&&&& ###9999xr