§
    xÅjº±  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZmZ d dlmZ d dlmZmZmZ d dlmZ 	 d dlZn# e$ r dZY nw xY w	 d dlZn# eef$ r dZY nw xY w	 d dlZeduZn# e$ r dZY nw xY w	 d dlZeduZn# e$ r dZY nw xY wd dlmZmZmZm Z  d dl!Z!d dl"Z"d dl#Z#d dl$m%Z% d d	l&m'Z'm(Z(m)Z) d d
l*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 er(d dlm3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z? d dl@mAZAmBZB g ZCejD        d„ dfejE        d„ dfejE        d„ dfejE        d„ dffD ]@ZF	 eC G                    eFd           eFd         ¦   «         eFd         f¦  «         Œ6# e$ r Y Œ=w xY wdddeHddfd„ZI G d„ de¦  «        ZJ	 d7deHd d!dd"fd#„ZK G d$„ d%eJ¦  «        ZL G d&„ d'eL¦  «        ZM G d(„ d)eM¦  «        ZN G d*„ d+eL¦  «        ZOes G d,„ d-eN¦  «        ZPn G d.„ d-eM¦  «        ZP G d/„ d0eJ¦  «        ZQ G d1„ d2eJ¦  «        ZRd8d6„ZSdS )9é    N)ÚABCÚabstractmethod)Údefaultdict)ÚdatetimeÚ	timedeltaÚtimezone)Ú
getproxiesF)ÚTYPE_CHECKINGÚDictÚListÚcast)ÚEndpointType)ÚEnvelopeÚItemÚ
PayloadRef)ÚDsnÚcapture_internal_exceptionsÚloggerÚmark_sentry_task_internal)ÚAsyncWorkerÚBackgroundWorkerÚWorker)
ÚAnyÚCallableÚDefaultDictÚIterableÚMappingÚOptionalÚSelfÚTupleÚTypeÚUnion)ÚPoolManagerÚProxyManager)ÚEventÚEventDataCategoryc                  ó,   — t          t          d¦  «        S )NÚSO_KEEPALIVE©ÚgetattrÚsocket© ó    úEC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/transport.pyú<lambda>r/   L   s   € ¥­°Ñ ?Ô ?€ r-   é   c                  ó,   — t          t          d¦  «        S )NÚTCP_KEEPIDLEr)   r,   r-   r.   r/   r/   M   s   € �W¥V¨^Ñ<Ô<€ r-   é-   c                  ó,   — t          t          d¦  «        S )NÚTCP_KEEPINTVLr)   r,   r-   r.   r/   r/   N   s   € �W¥V¨_Ñ=Ô=€ r-   é
   c                  ó,   — t          t          d¦  «        S )NÚTCP_KEEPCNTr)   r,   r-   r.   r/   r/   O   s   € �W¥V¨]Ñ;Ô;€ r-   é   é   Úresponser   ÚheaderÚreturnúOptional[str]c                 ón   ‡— |                      ¦   «         Št          ˆfd„| j        D ¦   «         d¦  «        S )z<Case-insensitive header lookup for httpcore-style responses.c              3   óž   •K  — | ]G\  }}|                      d ¦  «                             ¦   «         ‰k    ¯0|                      d ¦  «        V — ŒHdS )ÚasciiN)ÚdecodeÚlower)Ú.0ÚkeyÚvalÚheader_lowers      €r.   ú	<genexpr>z-_get_httpcore_header_value.<locals>.<genexpr>]   sb   øè è € ð 	
ð 	
á��SØ�zŠz˜'Ñ"Ô"×(Ò(Ñ*Ô*¨lÒ:Ð:ð �JŠJ�wÑÔà:Ð:Ð:Ð:ð	
ð 	
r-   N)rC   ÚnextÚheaders)r;   r<   rG   s     @r.   Ú_get_httpcore_header_valuerK   Y   sP   ø€ à—<’<‘>”>€LÝð	
ð 	
ð 	
ð 	
à$Ô,ð	
ñ 	
ô 	
ð
 	ñô ð r-   c                   ó¨   — e Zd ZU dZdZded<   d d!d
„Zd"d„Zed#d„¦   «         Z		 d ddde
ddd	dfd„Zd$d„Z	 	 d%ddœdeddddded	df
d„Zddd	efd„ZdS )&Ú	TransportzWBaseclass for all transports.

    A transport is used to send an event to sentry.
    NzOptional[Dsn]Ú
parsed_dsnÚselfr   ÚoptionsúOptional[Dict[str, Any]]r=   c                 ó–   — || _         |r8|d         r0t          |d         |                     d¦  «        ¦  «        | _        d S d | _        d S )NÚdsnÚorg_id)rP   r   ÚgetrN   ©rO   rP   s     r.   Ú__init__zTransport.__init__n   sL   € ØˆŒØð 	#�w˜u”~ð 	#Ý! '¨%¤.°'·+²+¸hÑ2GÔ2GÑHÔHˆDŒOˆOˆOà"ˆDŒOˆOˆOr-   Úeventr%   c                 ó®   — t          j        dt          d¬¦  «         t          ¦   «         }|                     |¦  «         |                      |¦  «         dS )z§
        DEPRECATED: Please use capture_envelope instead.

        This gets invoked with the event dictionary when an event should
        be sent to sentry.
        zAcapture_event is deprecated, please use capture_envelope instead!r:   ©Ú
stacklevelN)ÚwarningsÚwarnÚDeprecationWarningr   Ú	add_eventÚcapture_envelope)rO   rX   Úenvelopes      r.   Úcapture_eventzTransport.capture_eventu   s_   € õ 	ŒØOÝØð	
ñ 	
ô 	
ð 	
õ ‘:”:ˆØ×Ò˜5Ñ!Ô!Ð!Ø×Ò˜hÑ'Ô'Ð'Ð'Ð'r-   ra   r   c                 ó   — dS )a  
        Send an envelope to Sentry.

        Envelopes are a data container format that can hold any type of data
        submitted to Sentry. We use it to send all event data (including errors,
        transactions, crons check-ins, etc.) to Sentry.
        Nr,   )rO   ra   s     r.   r`   zTransport.capture_envelope‡   s	   € ð 	ˆr-   ÚtimeoutÚcallbackúOptional[Any]c                 ó   — dS )z÷
        Wait `timeout` seconds for the current events to be sent out.

        The default implementation is a no-op, since this method may only be relevant to some transports.
        Subclasses should override this method if necessary.
        Nr,   ©rO   rd   re   s      r.   ÚflushzTransport.flush’   s	   € ð ˆtr-   c                 ó   — dS )zÙ
        Forcefully kills the transport.

        The default implementation is a no-op, since this method may only be relevant to some transports.
        Subclasses should override this method if necessary.
        Nr,   ©rO   s    r.   ÚkillzTransport.killŸ   s	   € ð ˆtr-   r0   ©ÚquantityÚreasonÚdata_categoryúOptional[EventDataCategory]ÚitemúOptional[Item]rn   c                ó   — dS )aá  This increments a counter for event loss by reason and
        data category by the given positive-int quantity (default 1).

        If an item is provided, the data category and quantity are
        extracted from the item, and the values passed for
        data_category and quantity are ignored.

        When recording a lost transaction via data_category="transaction",
        the calling code should also record the lost spans via this method.
        When recording lost spans, `quantity` should be set to the number
        of contained spans, plus one for the transaction itself. When
        passing an Item containing a transaction via the `item` parameter,
        this method automatically records the lost spans.
        Nr,   ©rO   ro   rp   rr   rn   s        r.   Úrecord_lost_eventzTransport.record_lost_event¨   s	   € ð, ˆtr-   c                 ó   — dS )NTr,   rk   s    r.   Ú
is_healthyzTransport.is_healthyÀ   ó   € Øˆtr-   ©N)rO   r   rP   rQ   r=   N)rO   r   rX   r%   r=   N©rO   r   ra   r   r=   N©rO   r   r=   N©NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rN   Ú__annotations__rW   rb   r   r`   Úfloatri   rl   ÚstrÚintrv   Úboolrx   r,   r-   r.   rM   rM   f   sW  € € € € € € ðð ð
 #'€J�Ð&Ð&Ñ&ð#ð #ð #ð #ð #ð(ð (ð (ð (ð$ ðð ð ñ „^ðð %)ðð Øðàðð "ðð 
ð	ð ð ð ðð ð ð ð 8<Ø!%ð	ð ðð ð àðð 5ðð ð	ð ðð 
ðð ð ð ð0˜ð  Dð ð ð ð ð ð r-   rM   ÚnowzOptional[datetime]z6Iterable[Tuple[Optional[EventDataCategory], datetime]]c              #   ó–  K  — |€t          j        t          j        ¦  «        }|                      d¦  «        D ]�}	 |                     ¦   «                              d¦  «        }|d d…         \  }}|t          t          |¦  «        ¬¦  «        z   }|r|                     d¦  «        pdD ]}||fV — Œ	Œz# t          t          f$ r Y Œ�w xY wd S )Nú,ú:r:   ©Úsecondsú;rz   )
r   r‡   r   ÚutcÚsplitÚstripr   r…   ÚLookupErrorÚ
ValueError)r<   r‡   ÚlimitÚ
parametersÚretry_after_valÚ
categoriesÚretry_afterÚcategorys           r.   Ú_parse_rate_limitsr™   Ä   s÷   è è € ð €{ÝŒl�8œ<Ñ(Ô(ˆà—’˜cÑ"Ô"ð 	ð 	ˆð	ØŸš™œ×,Ò,¨SÑ1Ô1ˆJØ*4°R°a°R¬.Ñ'ˆO˜Zà¥	µ#°oÑ2FÔ2FÐ GÑ GÔ GÑGˆKØ&Ð@¨:×+;Ò+;¸CÑ+@Ô+@ÐKÀGð ,ð ,�Ø Ð+Ð+Ð+Ð+Ð+ð,øå�ZÐ(ð 	ð 	ð 	ØˆHð	øøøð	ð 	s   »A6B2Â2CÃCc                   óì  — e Zd ZdZdZdId	„ZdJd„Z	 	 dKddœdedddddeddf
d„Z	dddddeddfd„Z
	 	 	 	 	 	 dLd„Z	 	 dMddddd ed!eddf
d"„Z	 	 	 	 	 	 	 	 dNd#„Z	 	 	 	 	 	 dOd&„Zddd'eddfd(„Z	 dPddd+ed,eddfd-„Zd.edefd/„Zdddefd0„Zdddefd1„Zdddefd2„Z	 	 	 	 	 	 dQd5„Z	 	 	 	 	 	 dRd7„Z	 dSddd8eddfd9„ZdTd:„ZedUd;„¦   «         ZdUd<„Zddd=d>defd?„Z	 	 	 	 dVdA„ZdddBedCdDdEdd$dFddfdG„ZdWdH„Z dS )XÚHttpTransportCorez0Shared base class for sync and async transports.é   rO   r   rP   úDict[str, Any]r=   Nc                 ó¸  — ddl m} t                               | |¦  «         | j        €J ‚|| _        |                      |¦  «        | _        | j                             d|z  ¦  «        | _	        i | _
        t          j                             ¦   «         | _        t          t           ¦  «        | _        t%          j        ¦   «         | _        |                      ¦   «         | _        t,          j        | _        |                     di ¦  «        }|                     d|                     d¦  «        ¦  «        }|                     d|€t4          €dnd	¦  «        }|d	k    rt4          €t7          j        d
¦  «         d}d }|dvr$t7          j        d|¦  «         d| _        d | _        n|| _        |�	|| _        d S | j        dk    r	d| _        d S | j        d	k    r	d| _        d S d S )Nr   )ÚVERSIONzsentry.python/%sÚ_experimentsÚtransport_compression_levelÚ transport_zlib_compression_levelÚtransport_compression_algoÚgzipÚbrzSYou asked for brotli compression without the Brotli module, falling back to gzip -9)r¥   r¤   z2Unknown compression algo %s, disabling compressioné	   é   )Úsentry_sdk.constsrŸ   rM   rW   rN   rP   Ú_create_workerÚ_workerÚto_authÚ_authÚ_disabled_untilÚurllib3ÚutilÚRetryÚ_retryr   r…   Ú_discarded_eventsÚtimeÚ_last_client_report_sentÚ
_make_poolÚ_poolÚ
sentry_sdkÚHubÚ_hub_clsrU   Úbrotlir   ÚwarningÚ_compression_levelÚ_compression_algo)rO   rP   rŸ   ÚexperimentsÚcompression_levelÚcompression_algos         r.   rW   zHttpTransportCore.__init__Û   s  € Ø-Ð-Ð-Ð-Ð-Ð-å×Ò˜4 Ñ)Ô)Ð)ØŒÐ*Ð*Ð*Ø)0ˆŒØ×*Ò*¨7Ñ3Ô3ˆŒØ”_×,Ò,Ð-?À'Ñ-IÑJÔJˆŒ
ØNPˆÔå”l×(Ò(Ñ*Ô*ˆŒå�ÑÔð 	Ôõ )-¬	©¬ˆÔ%à—_’_Ñ&Ô&ˆŒ
õ #œˆŒà—k’k .°"Ñ5Ô5ˆØ'ŸOšOØ)Ø�OŠOÐ>Ñ?Ô?ñ
ô 
Ðð 'Ÿ?š?Ø(ð
 %Ð0µF°Nð �ð ñ	
ô 	
Ðð ˜tÒ#Ð#­¨ÝŒNØeñô ð ð  &ÐØ $Ðà >Ð1Ð1ÝŒNØDÐFVñô ð ð '(ˆDÔ#Ø%)ˆDÔ"Ð"à%5ˆDÔ"àÐ(Ø&7ˆDÔ#Ð#Ð#ØÔ# vÒ-Ð-Ø&'ˆDÔ#Ð#Ð#ØÔ# tÒ+Ð+Ø&'ˆDÔ#Ð#Ð#ð ,Ð+r-   r   c                 ó   — t          ¦   «         ‚rz   ©ÚNotImplementedErrorrV   s     r.   r©   z HttpTransportCore._create_worker  ó   € Ý!Ñ#Ô#Ð#r-   r0   rm   ro   rp   rq   rr   rs   rn   c                ó|  — | j         d         sd S |��|j        }d}|dk    r†|                     ¦   «         pi }t          t	          t
          t          t          t          f                  | 	                    d¦  «        pg ¦  «        ¦  «        dz   }|  
                    |d|¬¦  «         n}|dk    r<|r:t          |                     ¦   «         ¦  «        }|  
                    |d|¬¦  «         n;|d	k    r#t          |                     ¦   «         ¦  «        pd}n|€t          d
¦  «        ‚| j        ||fxx         |z  cc<   d S )NÚsend_client_reportsr0   ÚtransactionÚspansÚspanrm   Úlog_itemÚlog_byteÚ
attachmentzdata category not provided)rP   rp   Úget_transaction_eventÚlenr   r   r   r„   ÚobjectrU   rv   Ú	get_bytesÚ	TypeErrorr²   )rO   ro   rp   rr   rn   rX   Ú
span_countÚ
bytes_sizes           r.   rv   z#HttpTransportCore.record_lost_event  s\  € ð Œ|Ð1Ô2ð 	ØˆFàÑØ Ô.ˆMØˆHà Ò-Ð-à×2Ò2Ñ4Ô4Ð:¸�õ ��T¥$¥s­F {Ô"3Ô4°e·i²iÀÑ6HÔ6HÐ6NÈBÑOÔOÑPÔPÐSTÑTð ð ×&Ò& v¨vÀ
Ð&ÑKÔKÐKÐKà *Ò,Ð,°Ð,å  §¢Ñ!1Ô!1Ñ2Ô2�
Ø×&Ò& v¨zÀJÐ&ÑOÔOÐOÐOà ,Ò.Ð.õ ˜tŸ~š~Ñ/Ô/Ñ0Ô0Ð5°A�øàÐ"ÝÐ8Ñ9Ô9Ð9àÔ˜}¨fÐ4Ð5Ð5Ô5¸ÑAÐ5Ð5Ñ5Ð5Ð5r-   r;   r   r<   r>   c                 ó6   — |j                              |¦  «        S rz   )rJ   rU   ©rO   r;   r<   s      r.   Ú_get_header_valuez#HttpTransportCore._get_header_valueB  s   € ð Ô×#Ò# FÑ+Ô+Ð+r-   ú2Union[urllib3.BaseHTTPResponse, httpcore.Response]c                 óÌ  — |                       |d¦  «        }|r=t          j        d¦  «         | j                             t          |¦  «        ¦  «         d S |j        dk    rƒt          j        d¦  «         |                       |d¦  «        }|�| j                             |¦  «        nd pd}t          j
        t          j        ¦  «        t          |¬¦  «        z   | j        d <   d S d S )Nzx-sentry-rate-limitsz%Rate-limited via x-sentry-rate-limitsé­  zRate-limited via 429zRetry-Afteré<   r‹   )rÖ   r   r»   r­   Úupdater™   Ústatusr±   Úparse_retry_afterr   r‡   r   rŽ   r   )rO   r;   r<   Úretry_after_valuer—   s        r.   Ú_update_rate_limitsz%HttpTransportCore._update_rate_limitsG  s  € ð
 ×'Ò'¨Ð2HÑIÔIˆØð 	ÝŒNÐBÑCÔCÐCØÔ ×'Ò'Õ(:¸6Ñ(BÔ(BÑCÔCÐCÐCÐCð
 Œ_ Ò#Ð#ÝŒNÐ1Ñ2Ô2Ð2Ø $× 6Ò 6°xÀÑ OÔ OÐð %Ð0ð ”×-Ò-Ð.?Ñ@Ô@Ð@àðð ð	 õ
 *2¬µh´lÑ)CÔ)CÅiØ#ðGñ Gô Gñ *ˆDÔ  Ñ&Ð&Ð&ð $Ð#r-   ÚnetworkÚnetwork_errorra   úOptional[Envelope]Úloss_reasonÚrecord_reasonc                 ój   ‡ ‡— dt           dd fˆˆ fd„}‰                      |¦  «          ||¦  «         d S )Nro   r=   c                 ó€   •— ‰€‰                      | d¬¦  «         d S ‰j        D ]}‰                      | |¬¦  «         Œd S )NÚerror)rp   ©rr   )rv   Úitems)ro   rr   ra   rO   s     €€r.   Úrecord_lossz<HttpTransportCore._handle_request_error.<locals>.record_lossf  s_   ø€ ØÐØ×&Ò& v¸WÐ&ÑEÔEÐEÐEÐEà$œNð >ð >�DØ×*Ò*¨6¸Ð*Ñ=Ô=Ð=Ð=ð>ð >r-   )r„   Úon_dropped_event)rO   ra   rã   rä   rê   s   ``   r.   Ú_handle_request_errorz'HttpTransportCore._handle_request_error`  sa   øø€ ð	>¥ð 	>¨ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	×Ò˜kÑ*Ô*Ð*Øˆ�MÑ"Ô"Ð"Ð"Ð"r-   c                 ó@  — |                       |¦  «         |j        dk    r[d}t          |dt          |dd ¦  «        ¦  «        }|�	|d|› d�z  }t          j        |¦  «         |                      |dd¬	¦  «         d S |j        d
k    r|                      d¦  «         d S |j        dk    s|j        dk     rjt          j        d|j        t          |dt          |dd ¦  «        ¦  «        ¦  «         |                      |d                     |j        ¦  «        ¬¦  «         d S d S )Ni�  z;HTTP 413: Event dropped due to exceeded envelope size limitÚdataÚcontentz (body: ú)Ú
status_413Ú
send_error)ra   rã   rä   rÙ   Ú
status_429i,  éÈ   z%Unexpected status code: %s (body: %s)z	status_{}©ra   rã   )rß   rÜ   r*   r   rç   rì   rë   Úformat)rO   r;   ra   Úsize_exceeded_messageÚresponse_messages        r.   Ú_handle_responsez"HttpTransportCore._handle_responsep  sq  € ð
 	× Ò  Ñ*Ô*Ð*àŒ?˜cÒ!Ð!àMð "õ  'Ø˜&¥'¨(°I¸tÑ"DÔ"Dñ ô  Ðð  Ð+Ø%Ð)GÐ4DÐ)GÐ)GÐ)GÑGÐ%åŒLÐ.Ñ/Ô/Ð/Ø×&Ò&Ø!¨|È<ð 'ñ ô ð ð ð ð Œ_ Ò#Ð#ð
 ×!Ò! ,Ñ/Ô/Ð/ØˆDàŒ_ Ò#Ð# x¤¸Ò'<Ð'<ÝŒLØ7Ø”Ý˜ &­'°(¸IÀtÑ*LÔ*LÑMÔMñô ð ð
 ×&Ò&Ø!¨{×/AÒ/AÀ(Ä/Ñ/RÔ/Rð 'ñ ô ð ð ð ð (=Ð'<r-   rJ   úDict[str, str]c                 ó¬   — |                      t          | j        j        ¦  «        t          | j                             ¦   «         ¦  «        dœ¦  «         d S )N)z
User-AgentzX-Sentry-Auth)rÛ   r„   r¬   ÚclientÚ	to_header)rO   rJ   s     r.   Ú_update_headersz!HttpTransportCore._update_headers˜  sW   € ð 	�Šå! $¤*Ô"3Ñ4Ô4Ý!$ T¤Z×%9Ò%9Ñ%;Ô%;Ñ!<Ô!<ðð ñ	
ô 	
ð 	
ð 	
ð 	
r-   Ú_reasonc                 ó   — d S rz   r,   )rO   rÿ   s     r.   rë   z"HttpTransportCore.on_dropped_event£  ry   r-   FrÚ   ÚforceÚintervalc                 ó|  — | j         d         sd S |s!| j        t          j        ¦   «         |z
  k     sd S | j        }t	          t
          ¦  «        | _        t          j        ¦   «         | _        |sd S t          t          t          j        ¦   «         d„ |                     ¦   «         D ¦   «         dœ¬¦  «        d¬¦  «        S )NrÆ   c                 ó&   — g | ]\  \  }}}|||d œ‘ŒS ))ro   r˜   rn   r,   )rD   r˜   ro   rn   s       r.   ú
<listcomp>zBHttpTransportCore._fetch_pending_client_report.<locals>.<listcomp>º  s>   € ð )ð )ð )ñÙ.˜X vØ$ð $*°xÈXÐVÐVð)ð )ð )r-   )Ú	timestampÚdiscarded_events)ÚjsonÚclient_report)Útype)	rP   r´   r³   r²   r   r…   r   r   ré   )rO   r  r  r  s       r.   Ú_fetch_pending_client_reportz.HttpTransportCore._fetch_pending_client_report¦  sÝ   € ð Œ|Ð1Ô2ð 	Ø�4àð 	˜Ô6½¼¹¼ÀxÑ9OÒOÐOØ�4àÔ1ÐÝ!,­SÑ!1Ô!1ˆÔÝ(,¬	©¬ˆÔ%àð 	Ø�4åÝå!%¤¡¤ð)ð )ð
 .×3Ò3Ñ5Ô5ð)ñ )ô )ð	ð 	ðñ ô ð !ð
ñ 
ô 
ð 	
r-   r˜   c                 óN   ‡ — dddt           fˆ fd„} ||¦  «        p
 |d ¦  «        S )NÚbucketr   r=   c                 ó„   •— ‰j                              | ¦  «        }|d uo!|t          j        t          j        ¦  «        k    S rz   )r­   rU   r   r‡   r   rŽ   )r  ÚtsrO   s     €r.   Ú	_disabledz4HttpTransportCore._check_disabled.<locals>._disabledÇ  s9   ø€ ØÔ%×)Ò)¨&Ñ1Ô1ˆBØ˜T�>ÐE b­8¬<½¼Ñ+EÔ+EÒ&EÐEr-   )r†   )rO   r˜   r  s   `  r.   Ú_check_disabledz!HttpTransportCore._check_disabledÆ  sV   ø€ ð	F˜eð 	F­ð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð ˆy˜Ñ"Ô"Ð5 i i°¡o¤oÐ5r-   c                 ób   — t          d„ | j                             ¦   «         D ¦   «         ¦  «        S )Nc              3   óZ   K  — | ]&}|t          j        t          j        ¦  «        k    V — Œ'd S rz   )r   r‡   r   rŽ   )rD   r  s     r.   rH   z5HttpTransportCore._is_rate_limited.<locals>.<genexpr>Î  sD   è è € ð 
ð 
Ø02ˆB•”�hœlÑ+Ô+Ò+ð
ð 
ð 
ð 
ð 
ð 
r-   )Úanyr­   Úvaluesrk   s    r.   Ú_is_rate_limitedz"HttpTransportCore._is_rate_limitedÍ  s?   € Ýð 
ð 
Ø6:Ô6J×6QÒ6QÑ6SÔ6Sð
ñ 
ô 
ñ 
ô 
ð 	
r-   c                 ó4   — | j                              ¦   «         S rz   )rª   Úfullrk   s    r.   Ú_is_worker_fullz!HttpTransportCore._is_worker_fullÒ  s   € ØŒ|× Ò Ñ"Ô"Ð"r-   c                 óT   — |                       ¦   «         p|                      ¦   «          S rz   )r  r  rk   s    r.   rx   zHttpTransportCore.is_healthyÕ  s(   € Ø×(Ò(Ñ*Ô*ÐE¨d×.CÒ.CÑ.EÔ.EÐFÐFr-   r   ú5Optional[Tuple[Envelope, io.BytesIO, Dict[str, str]]]c                 óH  — g }|j         D ]g}|                      |j        ¦  «        r6|j        dv r|                      d¦  «         |                      d|¬¦  «         ŒR|                     |¦  «         Œht          |j        |¬¦  «        }|j         sd S |                      d¬¦  «        }|�|j                              |¦  «         |  	                    |¦  «        \  }}| j
        €J ‚t          j        d|j        | j
        j        | j
        j        ¦  «         d	d
i}|r||d<   |||fS )N)rÇ   rç   ÚdefaultÚstatsdÚself_rate_limitsÚratelimit_backoffrè   )rJ   ré   rœ   )r  z(Sending envelope [%s] project:%s host:%szContent-Typezapplication/x-sentry-envelopezContent-Encoding)ré   r  rp   rë   rv   Úappendr   rJ   r  Ú_serialize_enveloperN   r   ÚdebugÚdescriptionÚ
project_idÚhost)rO   ra   Ú	new_itemsrr   Úclient_report_itemÚcontent_encodingÚbodyrJ   s           r.   Ú_prepare_envelopez#HttpTransportCore._prepare_envelopeØ  sl  € ð ˆ	Ø”Nð 	'ð 	'ˆDØ×#Ò# DÔ$6Ñ7Ô7ð 'ØÔ%Ð)VÐVÐVØ×)Ò)Ð*<Ñ=Ô=Ð=Ø×&Ò&Ð':ÀÐ&ÑFÔFÐFÐFà× Ò  Ñ&Ô&Ð&Ð&õ  HÔ$4¸IÐFÑFÔFˆàŒ~ð 	Ø�4ð "×>Ò>ÈÐ>ÑKÔKÐØÐ)ØŒN×!Ò!Ð"4Ñ5Ô5Ð5à!%×!9Ò!9¸(Ñ!CÔ!CÑÐ˜$àŒÐ*Ð*Ð*ÝŒØ6ØÔ ØŒOÔ&ØŒOÔ ñ		
ô 	
ð 	
ð Ð;ð%
ˆð ð 	;Ø*:ˆGÐ&Ñ'à˜˜wÐ&Ð&r-   ú tuple[Optional[str], io.BytesIO]c                 óÊ  — d }t          j        ¦   «         }| j        dk    s| j        €|                     |¦  «         n£| j        }| j        dk    rHt
          �A|                     t          j        |                     ¦   «         | j        ¬¦  «        ¦  «         nIt          j
        |d| j        ¬¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   ||fS )Nr   r¥   )ÚqualityÚw)ÚfileobjÚmodeÚcompresslevel)ÚioÚBytesIOr¼   r½   Úserialize_intorº   ÚwriteÚcompressÚ	serializer¤   ÚGzipFile)rO   ra   r)  r*  Úfs        r.   r"  z%HttpTransportCore._serialize_envelope  s8  € ð  ÐÝŒz‰|Œ|ˆØÔ" aÒ'Ð'¨4Ô+AÐ+IØ×#Ò# DÑ)Ô)Ð)Ð)à#Ô5ÐØÔ%¨Ò-Ð-µ&Ð2DØ—
’
Ý”OØ ×*Ò*Ñ,Ô,°dÔ6Mðñ ô ñô ð ð õ ”]Ø  s¸$Ô:Qðñ ô ð /àØ×+Ò+¨AÑ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð
   Ð%Ð%s   Â4CÃCÃCÚhttp2c                 óÊ  — |ddœ}d}| j         d         �| j         d         }|€g }d„ |D ¦   «         }t          D ])}|d         |d         f|vr|                     |¦  «         Œ*|�||d<   t          j        ¦   «         }|                     | j         d         pPt          j                             d	¦  «        p1t          j                             d
¦  «        pt          j
        ¦   «         ¦  «         | j         d         pt          j                             d¦  «        }| j         d         pt          j                             d¦  «        }|�|                     ||¦  «         ||d<   |S )zDShared pool options for httpcore-based transports (Http2 and Async).é   )r;  ÚretriesNÚsocket_optionsc                 ó.   — h | ]}|d          |d         f’ŒS ©r   r0   r,   ©rD   Úos     r.   ú	<setcomp>z?HttpTransportCore._get_httpcore_pool_options.<locals>.<setcomp>/  s$   € Ð=Ð=Ð=¨˜˜1œ˜q œt˜Ð=Ð=Ð=r-   r   r0   Úca_certsÚSSL_CERT_FILEÚREQUESTS_CA_BUNDLEÚ	cert_fileÚCLIENT_CERT_FILEÚkey_fileÚCLIENT_KEY_FILEÚssl_context)rP   ÚKEEP_ALIVE_SOCKET_OPTIONSr!  ÚsslÚcreate_default_contextÚload_verify_locationsÚosÚenvironrU   ÚcertifiÚwhereÚload_cert_chain)	rO   r;  rP   r?  Úused_optionsÚdefault_optionrL  rH  rJ  s	            r.   Ú_get_httpcore_pool_optionsz,HttpTransportCore._get_httpcore_pool_options  s�  € ð
 Øð%
ð %
ˆð
 JNˆàŒ<Ð(Ô)Ð5Ø!œ\Ð*:Ô;ˆNàÐ!ØˆNà=Ð=¨nÐ=Ñ=Ô=ˆÝ7ð 	6ð 	6ˆNØ˜qÔ! >°!Ô#4Ð5¸\ÐIÐIØ×%Ò% nÑ5Ô5Ð5øàÐ%Ø(6ˆGÐ$Ñ%åÔ0Ñ2Ô2ˆØ×)Ò)ØŒL˜Ô$ð ÝŒz�~Š~˜oÑ.Ô.ðåŒz�~Š~Ð2Ñ3Ô3ðõ Œ}‰Œñ		
ô 	
ð 	
ð ”L Ô-ÐSµ´·²Ð@RÑ1SÔ1Sˆ	Ø”< 
Ô+ÐP­r¬z¯~ª~Ð>OÑ/PÔ/PˆØÐ Ø×'Ò'¨	°8Ñ<Ô<Ð<à!,ˆ�ÑØˆr-   c                 ó\  — | j         €dS |                      | j         ¦  «        }d}| j        d         }| j         j        dk    r,|dk    r&|p#| o t	          ¦   «                              d¦  «        }| j        d         }|s,|dk    r&|p#| o t	          ¦   «                              d¦  «        }|pdS )zJResolve proxy URL from options and environment. Returns proxy URL or None.NÚhttps_proxyÚhttpsÚ Ú
http_proxyÚhttp)rN   Ú_in_no_proxyrP   Úschemer	   rU   )rO   Úno_proxyÚproxyrZ  r]  s        r.   Ú_resolve_proxyz HttpTransportCore._resolve_proxyF  sÂ   € àŒ?Ð"Ø�4à×$Ò$ T¤_Ñ5Ô5ˆØˆð ”l =Ô1ˆØŒ?Ô! WÒ,Ð,°+ÀÒ2CÐ2CØÐO¨ LÐ$NµZ±\´\×5EÒ5EÀgÑ5NÔ5NˆEð ”\ ,Ô/ˆ
Øð 	N˜*¨Ò*Ð*ØÐM x <Ð#LµJ±L´L×4DÒ4DÀVÑ4LÔ4LˆEàˆ}˜Ðr-   c                 ó<   — d| j         | j         | j         | j         dœiS )Nrd   )ÚpoolÚconnectr6  Úread)ÚTIMEOUTrk   s    r.   Ú_timeout_extensionsz%HttpTransportCore._timeout_extensionsZ  s/   € ð ØœØœ<ØœØœð	ð ð
ð 	
r-   c                 ó   — t          ¦   «         ‚rz   rÂ   rk   s    r.   Ú_get_pool_optionsz#HttpTransportCore._get_pool_optionse  rÄ   r-   rN   r   c                 ó  — t          ¦   «                              d¦  «        }|sdS |                     d¦  «        D ]M}|                     ¦   «         }|j                             |¦  «        s|j                             |¦  «        r dS ŒNdS )NÚnoFr‰   T)r	   rU   r�   r�   r&  ÚendswithÚnetloc)rO   rN   ra  r&  s       r.   r_  zHttpTransportCore._in_no_proxyh  s�   € Ý‘<”<×#Ò# DÑ)Ô)ˆØð 	Ø�5Ø—N’N 3Ñ'Ô'ð 	ð 	ˆDØ—:’:‘<”<ˆDØŒ×'Ò'¨Ñ-Ô-ð °Ô1B×1KÒ1KÈDÑ1QÔ1Qð Ø�t�tðàˆur-   ú³Union[PoolManager, ProxyManager, httpcore.SOCKSProxy, httpcore.HTTPProxy, httpcore.ConnectionPool, httpcore.AsyncSOCKSProxy, httpcore.AsyncHTTPProxy, httpcore.AsyncConnectionPool]c                 ó   — t          ¦   «         ‚rz   rÂ   rk   s    r.   rµ   zHttpTransportCore._make_poolr  s   € õ "Ñ#Ô#Ð#r-   ÚmethodÚendpoint_typer   r*  úMapping[str, str]c                 ó   — t          ¦   «         ‚rz   rÂ   ©rO   rr  rs  r*  rJ   s        r.   Ú_requestzHttpTransportCore._requestw  s   € õ "Ñ#Ô#Ð#r-   c                 ó`   — t          j        d¦  «         | j                             ¦   «          d S )NúKilling HTTP transport)r   r#  rª   rl   rk   s    r.   rl   zHttpTransportCore.kill€  s-   € ÝŒÐ-Ñ.Ô.Ð.ØŒ×ÒÑÔÐÐÐr-   ©rO   r   rP   r�   r=   N©rO   r   rP   r�   r=   r   r}   )rO   r   r;   r×   r=   N)rà   rá   )rO   r   r;   r×   ra   râ   r=   N)rO   r   rJ   rú   r=   N)FrÚ   )rO   r   ra   r   r=   r  )rO   r   ra   r   r=   r,  ©F)rO   r   r=   r>   ©rO   r   r=   r�   )rO   r   r=   rp  r|   )!r~   r   r€   r�   rh  rW   r©   r„   r…   rv   rÖ   rß   rì   rù   rþ   rë   r†   r  r  r  r  rx   r+  r"  rX  rc  Úpropertyri  rk  r_  rµ   rw  rl   r,   r-   r.   r›   r›   Ö   sI  € € € € € Ø:Ð:à€Gð:(ð :(ð :(ð :(ðx$ð $ð $ð $ð 8<Ø!%ð	&Bð ð&Bð &Bð &Bàð&Bð 5ð&Bð ð	&Bð ð&Bð 
ð&Bð &Bð &Bð &BðP,Øð,Ø %ð,Ø/2ð,à	ð,ð ,ð ,ð ,ð
ØðØ Tðà	ðð ð ð ð8 %Ø,ð	#ð #Øð#à&ð#ð ð#ð ð	#ð
 
ð#ð #ð #ð #ð &Øð&àFð&ð 'ð&ð 
ð	&ð &ð &ð &ðP	
Øð	
à!ð	
ð 
ð	
ð 	
ð 	
ð 	
ð˜vð °ð ¸ð ð ð ð ð <>ð
ð 
Øð
Ø!ð
Ø58ð
à	ð
ð 
ð 
ð 
ð@6¨ð 6°ð 6ð 6ð 6ð 6ð
˜vð 
¨$ð 
ð 
ð 
ð 
ð
#˜fð #¨ð #ð #ð #ð #ðG˜ð G Dð Gð Gð Gð Gð-'Øð-'Ø *ð-'à	@ð-'ð -'ð -'ð -'ð^&Øð&Ø *ð&à	+ð&ð &ð &ð &ð0 %*ð&ð &Øð&Ø!ð&à	ð&ð &ð &ð &ðPð ð ð ð( ð
ð 
ð 
ñ „Xð
ð$ð $ð $ð $ð˜6ð ¨uð ¸ð ð ð ð ð$Øð$ð 
ð$ð $ð $ð $ð
$Øð$àð$ð &ð$ð ð	$ð
 %ð$ð 
>ð$ð $ð $ð $ðð ð ð ð ð r-   r›   c                   óÚ   — e Zd ZdZd!d„Z	 d"ddd	ed
dddddddfd„Zd#d„Zd$dddeddfd„Z		 	 	 	 d%d„Z
	 d"dddeddddfd„Zed&d„¦   «         Zed'd„¦   «         Zej        d(d „¦   «         ZdS ))ÚBaseHttpTransportz&The base HTTP transport (synchronous).rO   r   ra   r   r=   Nc                 óª   — |                       |¦  «        }|�;|\  }}}|                      |                     ¦   «         |t          j        |¬¦  «         d S ©N)rJ   rs  ra   ©r+  Ú_send_requestÚgetvaluer   ÚENVELOPE©rO   ra   Ú_prepared_enveloper*  rJ   s        r.   Ú_send_envelopez BaseHttpTransport._send_envelopeŠ  sc   € Ø!×3Ò3°HÑ=Ô=ÐØÐ)Ø&8Ñ#ˆH�d˜GØ×ÒØ—’‘”ØÝ*Ô3Ø!ð	 ñ ô ð ð ˆtr-   r*  rJ   rú   rs  r   râ   c                 ó:  — |                       |¦  «         	 |                      d|||¦  «        }n&# t          $ r |                      |d¬¦  «         ‚ w xY w	 |                      ||¬¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w©NÚPOSTrà   rõ   )r;   ra   )rþ   rw  Ú	Exceptionrì   rù   Úclose©rO   r*  rJ   rs  ra   r;   s         r.   r„  zBaseHttpTransport._send_request–  sÁ   € ð 	×Ò˜WÑ%Ô%Ð%ð		Ø—}’}ØØØØñ	ô ˆHˆHøõ ð 	ð 	ð 	Ø×&Ò&°ÀiÐ&ÑPÔPÐPØð	øøøð	Ø×!Ò!¨8¸hÐ!ÑGÔGÐGà�NŠNÑÔÐÐÐøˆH�NŠNÑÔÐÐøøøs   —0 °#AÁB ÂBrP   r�   r   c                 ó.   — t          |d         ¬¦  «        S ©NÚtransport_queue_size)Ú
queue_size)r   rV   s     r.   r©   z BaseHttpTransport._create_worker­  s   € Ý¨7Ð3IÔ+JÐKÑKÔKÐKr-   Fr  c                 ó„   — |                       |d¬¦  «        }|�&|                      t          |g¬¦  «        ¦  «         d S d S ©NrÚ   )r  r  )ré   ©r  r`   r   ©rO   r  r	  s      r.   Ú_flush_client_reportsz'BaseHttpTransport._flush_client_reports°  sP   € Ø×9Ò9ÀÐPRÐ9ÑSÔSˆØÐ$Ø×!Ò!¥(°-°Ð"AÑ"AÔ"AÑBÔBÐBÐBÐBð %Ð$r-   c                 ó¼   ‡ ‡— dˆˆ fd„}‰ j                              |¦  «        s6‰                      d¦  «         ‰j        D ]}‰                      d|¬¦  «         Œd S d S )Nr=   c                  ó¨   •— t          ¦   «         5  ‰                     ‰ ¦  «         ‰                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S rz   ©r   r‰  r˜  ©ra   rO   s   €€r.   Úsend_envelope_wrapperzABaseHttpTransport.capture_envelope.<locals>.send_envelope_wrapper¹  s™   ø€ Ý,Ñ.Ô.ð -ð -Ø×#Ò# HÑ-Ô-Ð-Ø×*Ò*Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s   �*AÁAÁAÚ
full_queueÚqueue_overflowrè   ©r=   N©rª   Úsubmitrë   ré   rv   ©rO   ra   r�  rr   s   ``  r.   r`   z"BaseHttpTransport.capture_envelopeµ  sŸ   øø€ ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð
 Œ|×"Ò"Ð#8Ñ9Ô9ð 	DØ×!Ò! ,Ñ/Ô/Ð/Ø œð Dð D�Ø×&Ò&Ð'7¸dÐ&ÑCÔCÐCÐCð	Dð 	DðDð Dr-   rd   re   ú&Optional[Callable[[int, float], None]]c                 ó°   ‡ — t          j        d¦  «         |dk    r:‰ j                             ˆ fd„¦  «         ‰ j                             ||¦  «         d S d S )NúFlushing HTTP transportr   c                  ó0   •— ‰                       d¬¦  «        S ©NT)r  ©r˜  rk   s   €r.   r/   z)BaseHttpTransport.flush.<locals>.<lambda>Ë  ó   ø€ ¨×(BÒ(BÈÐ(BÑ(NÔ(N€ r-   ©r   r#  rª   r¢  ri   rh   s   `  r.   ri   zBaseHttpTransport.flushÃ  sd   ø€ õ
 	ŒÐ.Ñ/Ô/Ð/à�QŠ;ˆ;ØŒL×ÒÐ NÐ NÐ NÐ NÑOÔOÐOØŒL×Ò˜w¨Ñ1Ô1Ð1Ð1Ð1ð ˆ;r-   c                  ó>   — t          j        dt          d¬¦  «         dS )zRConvenience method to warn users about the deprecation of the `hub_cls` attribute.zNThe `hub_cls` attribute is deprecated and will be removed in a future release.r=  rZ   N)r\   r]   r^   r,   r-   r.   Ú_warn_hub_clszBaseHttpTransport._warn_hub_clsÎ  s0   € õ 	ŒØ\ÝØð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r-   útype[sentry_sdk.Hub]c                 óB   — t                                ¦   «          | j        S )úQDEPRECATED: This attribute is deprecated and will be removed in a future release.©ÚHttpTransportr­  r¹   rk   s    r.   Úhub_clszBaseHttpTransport.hub_cls×  s   € õ 	×#Ò#Ñ%Ô%Ð%ØŒ}Ðr-   Úvaluec                 óF   — t                                ¦   «          || _        dS )r°  Nr±  )rO   r´  s     r.   r³  zBaseHttpTransport.hub_clsÝ  s!   € õ 	×#Ò#Ñ%Ô%Ð%ØˆŒˆˆr-   r{   rz   r{  r|  ©ra   r   r=   Nr   )rO   r   r=   r®  )rO   r   r´  r®  r=   N)r~   r   r€   r�   r‰  Úbytesr„  r©   r†   r˜  r`   rƒ   ri   Ústaticmethodr­  r~  r³  Úsetterr,   r-   r.   r€  r€  ‡  s£  € € € € € Ø0Ð0ð
ð 
ð 
ð 
ð" *.ðð Øðàðð "ðð &ð	ð
 'ðð 
ðð ð ð ð.Lð Lð Lð LðCð C Fð C°4ð CÀDð Cð Cð Cð Cð
DàðDð 
ðDð Dð Dð Dð" >Bð	2ð 	2Øð	2àð	2ð ;ð	2ð 
ð		2ð 	2ð 	2ð 	2ð ð
ð 
ð 
ñ „\ð
ð ðð ð ñ „Xðð
 „^ðð ð ñ „^ðð ð r-   r€  c                   óN   — e Zd ZU erded<   dd„Zdd„Zddd	ed
dddddddfd„ZdS )r²  ú Union[PoolManager, ProxyManager]r¶   rO   r   r=   r�   c                 ó   — | j                              di ¦  «                             d¦  «        }|€dnt          |¦  «        dt          j        | j        ¬¦  «        dœ}d }| j         d         �| j         d         }| j         d         rA|€g }d	„ |D ¦   «         }t          D ])}|d
         |d         f|vr|                     |¦  «         Œ*|�||d<   | j         d         pPt          j	                             d¦  «        p1t          j	                             d¦  «        pt          j        ¦   «         |d<   | j         d         pt          j	                             d¦  «        |d<   | j         d         pt          j	                             d¦  «        |d<   |S )Nr    Útransport_num_poolsr:   ÚCERT_REQUIRED)Útotal)Ú	num_poolsÚ	cert_reqsrd   r?  Ú
keep_alivec                 ó.   — h | ]}|d          |d         f’ŒS rA  r,   rB  s     r.   rD  z2HttpTransport._get_pool_options.<locals>.<setcomp>ù  s$   € ÐAÐAÐA¨Q˜Q˜qœT 1 Q¤4˜LÐAÐAÐAr-   r   r0   rE  rF  rG  rH  rI  rJ  rK  )rP   rU   r…   r®   ÚTimeoutrh  rM  r!  rQ  rR  rS  rT  )rO   rÀ  rP   r?  rV  rW  s         r.   rk  zHttpTransport._get_pool_optionsè  s¯  € Ø”L×$Ò$ ^°RÑ8Ô8×<Ò<Ð=RÑSÔSˆ	à'Ð/˜˜µS¸±^´^Ø(Ý”¨T¬\Ð:Ñ:Ô:ð
ð 
ˆð JNˆàŒ<Ð(Ô)Ð5Ø!œ\Ð*:Ô;ˆNàŒ<˜Ô%ð 	:ØÐ%Ø!#�àAÐA°.ÐAÑAÔAˆLÝ";ð :ð :�Ø" 1Ô% ~°aÔ'8Ð9ÀÐMÐMØ"×)Ò)¨.Ñ9Ô9Ð9øàÐ%Ø(6ˆGÐ$Ñ%ð ŒL˜Ô$ð ÝŒz�~Š~˜oÑ.Ô.ðåŒz�~Š~Ð2Ñ3Ô3ðõ Œ}‰Œð	 	�
Ñð  $œ|¨KÔ8ð  
½B¼J¿NºNØñ=
ô =
ˆ�Ñð #œl¨:Ô6ð 
½"¼*¿.º.Øñ;
ô ;
ˆ�
Ñð ˆr-   c                 óÌ  — | j         €t          d¦  «        ‚d }|                      | j         ¦  «        }| j        d         }| j         j        dk    r,|dk    r&|p#| o t          ¦   «                              d¦  «        }| j        d         }|s,|dk    r&|p#| o t          ¦   «                              d¦  «        }|                      ¦   «         }|rˆ| j        d         }|r||d<   |                     d¦  «        rMd	}	 d
dl	m
} n'# t          $ r d}t          j        d|¦  «         Y nw xY w|r	 ||fi |¤ŽS t          j        di |¤ŽS t          j        |fi |¤ŽS t          j        di |¤ŽS )Nú4Cannot create HTTP-based transport without valid DSNrZ  r[  r\  r]  r^  Úproxy_headersÚsocksTr   )ÚSOCKSProxyManagerFzÂYou have configured a SOCKS proxy (%s) but support for SOCKS proxies is not installed. Disabling proxy support. Please add `PySocks` (or `urllib3` with the `[socks]` extra) to your dependencies.r,   )rN   r’   r_  rP   r`  r	   rU   rk  Ú
startswithÚurllib3.contrib.socksrÉ  ÚImportErrorr   r»   r®   r#   r$   )	rO   rb  ra  rZ  r]  ÚoptsrÇ  Úuse_socks_proxyrÉ  s	            r.   rµ   zHttpTransport._make_pool  sß  € ØŒ?Ð"ÝÐSÑTÔTÐTàˆØ×$Ò$ T¤_Ñ5Ô5ˆð ”l =Ô1ˆØŒ?Ô! WÒ,Ð,°+ÀÒ2CÐ2CØÐO¨ LÐ$NµZ±\´\×5EÒ5EÀgÑ5NÔ5NˆEð ”\ ,Ô/ˆ
Øð 	N˜*¨Ò*Ð*ØÐM x <Ð#LµJ±L´L×4DÒ4DÀVÑ4LÔ4LˆEà×%Ò%Ñ'Ô'ˆàð 	/Ø œL¨Ô9ˆMØð 6Ø(5��_Ñ%à×Ò Ñ(Ô(ð ;Ø"&�ðàGÐGÐGÐGÐGÐGÐGøÝ"ð ð ð Ø&+�OÝ”Nð ]Øñô ð ð ð ðøøøð #ð 7Ø,Ð,¨UÐ;Ð;°dÐ;Ð;Ð;å"Ô.Ð6Ð6°Ð6Ð6Ð6åÔ+¨EÐ:Ð:°TÐ:Ð:Ð:åÔ&Ð.Ð.¨Ð.Ð.Ð.s   Ã9D  Ä !D$Ä#D$rr  rs  r   r*  r   rJ   rt  zurllib3.BaseHTTPResponsec                 ón   — | j                              || j                             |¦  «        ||¬¦  «        S )N)r*  rJ   )r¶   Úrequestr¬   Úget_api_urlrv  s        r.   rw  zHttpTransport._request>  s?   € ð Œz×!Ò!ØØŒJ×"Ò" =Ñ1Ô1ØØð	 "ñ 
ô 
ð 	
r-   Nr}  )rO   r   r=   r»  )	r~   r   r€   r
   r‚   rk  rµ   r„   rw  r,   r-   r.   r²  r²  ä  s    € € € € € € Øð 2Ø1Ð1Ð1Ñ1ð'ð 'ð 'ð 'ðR+/ð +/ð +/ð +/ðZ
Øð
àð
ð &ð
ð ð	
ð
 %ð
ð 
$ð
ð 
ð 
ð 
ð 
ð 
r-   r²  c                   óî   ‡ — e Zd Zd+ˆ fd„Zd,d	„Zddd
ddeddfd„Zd-d„Z	 d.dddeddddddddfd„Z	dddeddddddddfd„Z
d/dddeddfd„Zd-d „Zd-d!„Z	 d.ddd"ed#d$dd%fd&„Zd0d'„Z	 	 	 	 d1d)„Zd2d*„Zˆ xZS )3ÚAsyncHttpTransportrO   r   rP   r�   r=   Nc                 ó¦   •— t           st          d¦  «        ‚t          ¦   «                              |¦  «         t	          j        ¦   «         | _        d S )Nz_AsyncHttpTransport requires httpcore[asyncio]. Install it with: pip install sentry-sdk[asyncio])ÚASYNC_TRANSPORT_AVAILABLEÚRuntimeErrorÚsuperrW   ÚasyncioÚget_running_loopÚloop©rO   rP   Ú	__class__s     €r.   rW   zAsyncHttpTransport.__init__N  sQ   ø€ Ý(ð 	ÝðCñô ð õ 	‰Œ×Ò˜Ñ!Ô!Ð!åÔ,Ñ.Ô.ˆŒ	ˆ	ˆ	r-   r   c                 ó.   — t          |d         ¬¦  «        S r‘  )r   rV   s     r.   r©   z!AsyncHttpTransport._create_workerX  s   € Ý gÐ.DÔ&EÐFÑFÔFÐFr-   r;   r   r<   r>   c                 ó"   — t          ||¦  «        S rz   ©rK   rÕ   s      r.   rÖ   z$AsyncHttpTransport._get_header_value[  s   € õ *¨(°FÑ;Ô;Ð;r-   ra   r   c              ƒ   óº   K  — |                       |¦  «        }|�A|\  }}}|                      |                     ¦   «         |t          j        |¬¦  «        ƒ d {V —† d S r‚  rƒ  r‡  s        r.   r‰  z!AsyncHttpTransport._send_envelope`  s…   è è € Ø!×3Ò3°HÑ=Ô=ÐØÐ)Ø&8Ñ#ˆH�d˜GØ×$Ò$Ø—’‘”ØÝ*Ô3Ø!ð	 %ñ ô ð ð ð ð ð ð ð ð ˆtr-   r*  rJ   rú   rs  r   râ   c              ƒ   ób  K  — |                       |¦  «         	 |                      d|||¦  «        ƒ d {V —†}n&# t          $ r |                      |d¬¦  «         ‚ w xY w	 |                      ||¬¦  «         |                     ¦   «         ƒ d {V —† d S # |                     ¦   «         ƒ d {V —† w xY wr‹  )rþ   rw  r�  rì   rù   Úacloser�  s         r.   r„  z AsyncHttpTransport._send_requestl  s  è è € ð 	×Ò˜WÑ%Ô%Ð%ð		Ø!Ÿ]š]ØØØØñ	ô ð ð ð ð ð ð ˆHˆHøõ ð 	ð 	ð 	Ø×&Ò&°ÀiÐ&ÑPÔPÐPØð	øøøð	$Ø×!Ò!¨8¸hÐ!ÑGÔGÐGà—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ø�(—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#øøøs   ™8 ¸#AÁB ÂB.rr  rt  úhttpcore.Responsec              ƒ   óŠ   K  — | j                              || j                             |¦  «        ||| j        ¬¦  «        ƒ d {V —†S ©N)rï   rJ   Ú
extensions©r¶   rÐ  r¬   rÑ  ri  rv  s        r.   rw  zAsyncHttpTransport._requestƒ  sg   è è € ð ”Z×'Ò'ØØŒJ×"Ò" =Ñ1Ô1ØØØÔ/ð (ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
r-   Fr  c              ƒ   óˆ   K  — |                       |d¬¦  «        }|�&|                      t          |g¬¦  «        ¦  «         d S d S r•  r–  r—  s      r.   r˜  z(AsyncHttpTransport._flush_client_reports’  sT   è è € Ø×9Ò9ÀÐPRÐ9ÑSÔSˆØÐ$Ø×!Ò!¥(°-°Ð"AÑ"AÔ"AÑBÔBÐBÐBÐBð %Ð$r-   c                 ó¼   ‡ ‡— dˆˆ fd„}‰ j                              |¦  «        s6‰                      d¦  «         ‰j        D ]}‰                      d|¬¦  «         Œd S d S )Nr=   c               “   óÄ   •K  — t          ¦   «         5  ‰                     ‰ ¦  «        ƒ d {V —† ‰                     ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S rz   r›  rœ  s   €€r.   r�  zCAsyncHttpTransport._capture_envelope.<locals>.send_envelope_wrapper˜  sÁ   øè è € Ý,Ñ.Ô.ð 3ð 3Ø×)Ò)¨(Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø×0Ò0Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s   ’6AÁAÁArž  rŸ  rè   r   r¡  r£  s   ``  r.   Ú_capture_envelopez$AsyncHttpTransport._capture_envelope—  sŸ   øø€ ð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð
 Œ|×"Ò"Ð#8Ñ9Ô9ð 	DØ×!Ò! ,Ñ/Ô/Ð/Ø œð Dð D�Ø×&Ò&Ð'7¸dÐ&ÑCÔCÐCÐCð	Dð 	DðDð Dr-   c                 ó  — | j         r;| j                              ¦   «         r"| j                              | j        |¦  «         d S t	          j        d¦  «         |                      d¦  «         |j        D ]}|                      d|¬¦  «         Œd S )Nz0Async Transport is not running in an event loop.Úinternal_sdk_errorrè   )	rÚ  Ú
is_runningÚcall_soon_threadsaferë  r   r»   rë   ré   rv   )rO   ra   rr   s      r.   r`   z#AsyncHttpTransport.capture_envelope¢  s¨   € àŒ9ð 	H˜œ×-Ò-Ñ/Ô/ð 	HØŒI×*Ò*¨4Ô+AÀ8ÑLÔLÐLÐLÐLõ ŒNÐMÑNÔNÐNØ×!Ò!Ð"6Ñ7Ô7Ð7Ø œð Hð H�Ø×&Ò&Ð';À$Ð&ÑGÔGÐGÐGðHð Hr-   rd   re   r¤  úOptional[asyncio.Task[None]]c                 ó¬   ‡ — t          j        d¦  «         |dk    r8‰ j                             ˆ fd„¦  «         ‰ j                             ||¦  «        S d S )Nr¦  r   c                  ó0   •— ‰                       d¬¦  «        S r¨  r©  rk   s   €r.   r/   z*AsyncHttpTransport.flush.<locals>.<lambda>µ  rª  r-   r«  rh   s   `  r.   ri   zAsyncHttpTransport.flush­  s\   ø€ õ
 	ŒÐ.Ñ/Ô/Ð/à�QŠ;ˆ;ØŒL×ÒÐ NÐ NÐ NÐ NÑOÔOÐOØ”<×%Ò% g¨xÑ8Ô8Ð8Øˆtr-   c                 ój   — |                       t          o| j        d uo| j        j        dk    ¬¦  «        S ©Nr[  )r;  )rX  ÚHTTP2_ENABLEDrN   r`  rk   s    r.   rk  z$AsyncHttpTransport._get_pool_options¹  sC   € Ø×.Ò.Ýð 2Ø” tÐ+ð2à”Ô&¨'Ò1ð /ñ 
ô 
ð 	
r-   úVUnion[httpcore.AsyncSOCKSProxy, httpcore.AsyncHTTPProxy, httpcore.AsyncConnectionPool]c                 ó  — | j         €t          d¦  «        ‚|                      ¦   «         }|                      ¦   «         }|r¸| j        d         }|r||d<   |                     d¦  «        r|	 |                     ¦   «         }d|v r+|                     d¦  «        }|rt          j	        d¦  «         t          j        dd|i|¤ŽS # t          $ r t          j	        d|¦  «         Y nw xY wt          j        dd|i|¤ŽS t          j        di |¤ŽS ©	NrÆ  rÇ  rÈ  r?  zqYou have defined socket_options but using a SOCKS proxy which doesn't support these. We'll ignore socket_options.Ú	proxy_urlzoYou have configured a SOCKS proxy (%s) but support for SOCKS proxies is not installed. Disabling proxy support.r,   )rN   r’   rc  rk  rP   rÊ  ÚcopyÚpopr   r»   ÚhttpcoreÚAsyncSOCKSProxyrÖ  ÚAsyncHTTPProxyÚAsyncConnectionPool)rO   rb  rÍ  rÇ  Ú
socks_optsr?  s         r.   rµ   zAsyncHttpTransport._make_poolÀ  sa  € ð Œ?Ð"ÝÐSÑTÔTÐTà×#Ò#Ñ%Ô%ˆØ×%Ò%Ñ'Ô'ˆàð 	HØ œL¨Ô9ˆMØð 6Ø(5��_Ñ%à×Ò Ñ(Ô(ð HðØ!%§¢¡¤�JØ'¨:Ð5Ð5Ø)3¯ªÐ8HÑ)IÔ)I˜Ø)ð Ý"œNð !Tñô ð õ $Ô3ÐRÐR¸eÐRÀzÐRÐRÐRøÝ#ð ð ð Ý”Nð JØñô ð ð ð ðøøøõ  Ô.ÐGÐG¸ÐGÀ$ÐGÐGÐGåÔ+Ð3Ð3¨dÐ3Ð3Ð3s   Á+AC ÃC#Ã"C#c                 óZ  — t          j        d¦  «         | j                             ¦   «          	 t	          ¦   «         5  | j                             | j                             ¦   «         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S # t          $ r t          j
        d¦  «         Y d S w xY w)Nry  z&Event loop not running, aborting kill.)r   r#  rª   rl   r   rÚ  Úcreate_taskr¶   râ  rÖ  r»   rk   s    r.   rl   zAsyncHttpTransport.killâ  s  € ÝŒÐ-Ñ.Ô.Ð.ØŒ×ÒÑÔÐð	å*Ñ,Ô,ð Bð BØ”y×,Ò,¨T¬Z×->Ò->Ñ-@Ô-@ÑAÔAðBð Bð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bøåð 	ð 	ð 	ÝŒNÐCÑDÔDÐDØ�4�4ð	øøøs4   ¯B ½1A;Á.B Á;A?Á?B ÂA?ÂB ÂB*Â)B*rz  r{  r{   rz   r|  r}  )rO   r   r=   rö  )rO   r   r=   rð  )r~   r   r€   rW   r©   r„   rÖ   r‰  r·  r„  rw  r†   r˜  rë  r`   rƒ   ri   rk  rµ   rl   Ú__classcell__©rÜ  s   @r.   rÓ  rÓ  M  s5  ø€ € € € € ð/ð /ð /ð /ð /ð /ðGð Gð Gð Gð<Øð<Ø %ð<Ø/2ð<à	ð<ð <ð <ð <ð

ð 
ð 
ð 
ð" *.ð$ð $Øð$àð$ð "ð$ð &ð	$ð
 'ð$ð 
ð$ð $ð $ð $ð.
Øð
àð
ð &ð
ð ð	
ð
 %ð
ð 
ð
ð 
ð 
ð 
ðCð C¨&ð C¸ð CÈ$ð Cð Cð Cð Cð
	Dð 	Dð 	Dð 	Dð	Hð 	Hð 	Hð 	Hð >Bð
ð 
Øð
àð
ð ;ð
ð 
(ð	
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 4Øð 4à	að 4ð  4ð  4ð  4ðD	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r-   rÓ  c                   ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )	ÚHttp2TransportrO   r   rP   r�   r=   Nc                 ór   •— t          ¦   «                              |¦  «         t          j        d¦  «         d S )NzhYou tried to use HTTP2Transport but don't have httpcore[http2] installed. Falling back to HTTPTransport.)r×  rW   r   r»   rÛ  s     €r.   rW   zHttp2Transport.__init__ñ  s<   ø€ Ý‰GŒG×Ò˜WÑ%Ô%Ð%ÝŒNØzñô ð ð ð r-   rz  )r~   r   r€   rW   r  r  s   @r.   r  r  ð  s=   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r-   r  c                   óv   — e Zd ZU dZdZerded<   ddddd	ed
dfd„Zdddeddddddd
dfd„Z	dd„Z
	 	 	 	 dd„ZdS )r  z&The HTTP2 transport based on httpcore.é   zeUnion[
                httpcore.SOCKSProxy, httpcore.HTTPProxy, httpcore.ConnectionPool
            ]r¶   rO   r   r;   rã  r<   r=   r>   c                 ó"   — t          ||¦  «        S rz   rß  rÕ   s      r.   rÖ   z Http2Transport._get_header_value  s   € õ .¨h¸Ñ?Ô?Ð?r-   rr  rs  r   r*  r   rJ   rt  c                 ó~   — | j                              || j                             |¦  «        ||| j        ¬¦  «        }|S rå  rç  )rO   rr  rs  r*  rJ   r;   s         r.   rw  zHttp2Transport._request  sI   € ð ”z×)Ò)ØØ”
×&Ò& }Ñ5Ô5ØØØÔ3ð *ñ ô ˆHð ˆOr-   r�   c                 ó\   — |                       | j        d uo| j        j        dk    ¬¦  «        S rô  )rX  rN   r`  rk   s    r.   rk  z Http2Transport._get_pool_options  s9   € Ø×2Ò2Ø”o¨TÐ1ÐW°d´oÔ6LÐPWÒ6Wð 3ñ ô ð r-   úGUnion[httpcore.SOCKSProxy, httpcore.HTTPProxy, httpcore.ConnectionPool]c                 óì  — | j         €t          d¦  «        ‚|                      ¦   «         }|                      ¦   «         }|r¤| j        d         }|r||d<   |                     d¦  «        rh	 d|v r+|                     d¦  «        }|rt          j        d¦  «         t          j
        dd|i|¤ŽS # t          $ r t          j        d|¦  «         Y nw xY wt          j        dd|i|¤ŽS t          j        di |¤ŽS rø  )rN   r’   rc  rk  rP   rÊ  rû  r   r»   rü  Ú
SOCKSProxyrÖ  Ú	HTTPProxyÚConnectionPool)rO   rb  rÍ  rÇ  r?  s        r.   rµ   zHttp2Transport._make_pool  sT  € ð ŒÐ&Ý Ð!WÑXÔXÐXà×'Ò'Ñ)Ô)ˆEØ×)Ò)Ñ+Ô+ˆDàð GØ $¤¨_Ô =�Ø ð :Ø,9�D˜Ñ)à×#Ò# GÑ,Ô,ð GðØ+¨tÐ3Ð3Ø-1¯XªXÐ6FÑ-GÔ-G˜NØ-ð "Ý &¤ð %Xñ!"ô !"ð !"õ  (Ô2ÐKÐK¸UÐKÀdÐKÐKÐKøÝ'ð ð ð Ýœð NØ!ñô ð ð ð ðøøøõ $Ô-ÐFÐF¸ÐFÀÐFÐFÐFåÔ*Ð2Ð2¨TÐ2Ð2Ð2s   Á+AB- Â-CÃCNr}  )rO   r   r=   r  )r~   r   r€   r�   rh  r
   r‚   r„   rÖ   rw  rk  rµ   r,   r-   r.   r  r  ù  sý   € € € € € € Ø4Ð4àˆàð 	ðð ð ñ ð	@Øð	@Ø$7ð	@ØADð	@àð	@ð 	@ð 	@ð 	@ð
	Øð	àð	ð *ð	ð ð		ð
 )ð	ð !ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð
	3Øð	3àVð	3ð 	3ð 	3ð 	3ð 	3ð 	3r-   c                   ó¢   — e Zd ZdZdd„Zedefd„¦   «         Zdd
„Z	 dde	ddddfd„Z
d d„Z	 	 d!ddœdedddddeddf
d„Zdefd„Zdeddfd„ZdS )"Ú_EnvelopePrinterTransportz[Wraps another transport, printing envelope contents to the SDK debug logger before sending.Ú	transportrM   r=   Nc                 ó  — t                                | |j        ¬¦  «         || _        |j        | _        t          j        d¦  «        | _        | j                             t
          j	        ¦  «         d| j        _
        | j        j        sut          j        ¦   «         }|                     t
          j	        ¦  «         |                     t          j        d¦  «        ¦  «         | j                             |¦  «         d S d S )N)rP   zsentry_sdk.envelopesFz%(message)s)rM   rW   rP   Ú_innerrN   ÚloggingÚ	getLoggerÚenvelope_loggerÚsetLevelÚINFOÚ	propagateÚhandlersÚStreamHandlerÚsetFormatterÚ	FormatterÚ
addHandler)rO   r  Úhandlers      r.   rW   z"_EnvelopePrinterTransport.__init__B  sß   € Ý×Ò˜4¨Ô):ÐÑ;Ô;Ð;ØˆŒØ#Ô.ˆŒå&Ô0Ð1GÑHÔHˆÔØÔ×%Ò%¥g¤lÑ3Ô3Ð3Ø).ˆÔÔ&ØÔ#Ô,ð 	5ÝÔ+Ñ-Ô-ˆGØ×Ò�Wœ\Ñ*Ô*Ð*Ø× Ò ¥Ô!2°=Ñ!AÔ!AÑBÔBÐBØÔ ×+Ò+¨GÑ4Ô4Ð4Ð4Ð4ð		5ð 	5r-   c                 ó   — | j         j        S rz   )r  rÜ  rk   s    r.   rÜ  z#_EnvelopePrinterTransport.__class__P  s   € àŒ{Ô$Ð$r-   ra   r   c           	      ó`  — 	 | j                              d¦  «         | j                              dt          j        |j        dt
          ¬¦  «        ¦  «         |j        D �]
}| j                              d|j        ¦  «         | j                              dt          j        |j        dt
          ¬¦  «        ¦  «         	 t          j        | 	                    ¦   «         ¦  «        }| j                              dt          j        |dt
          ¬¦  «        ¦  «         Œº# t          t          f$ r> | j                              dt          | 	                    ¦   «         ¦  «        ¦  «         Y �Œw xY w| j                              d	¦  «         n# t          $ r Y nw xY w| j                             |¦  «         d S )
Nz--- Sentry Envelope ---zHeaders: %sr:   )Úindentr  z  Item type: %sz  Item headers: %sz  Payload:
%sz  Payload: <binary %d bytes>z--- End Envelope ---)r  Úinfor  ÚdumpsrJ   r„   ré   r
  ÚloadsrÐ   r’   rÑ   rÎ   r�  r  r`   )rO   ra   rr   Úpayloads       r.   r`   z*_EnvelopePrinterTransport.capture_envelopeT  sÅ  € ð	ØÔ ×%Ò%Ð&?Ñ@Ô@Ð@ØÔ ×%Ò%Ø�tœz¨(Ô*:À1ÍcÐRÑRÔRñô ð ð !œð ñ �ØÔ$×)Ò)Ð*;¸T¼YÑGÔGÐGØÔ$×)Ò)Ø(Ý”J˜tœ|°A½sÐCÑCÔCñô ð ð
Ý"œj¨¯ªÑ)9Ô)9Ñ:Ô:�GØÔ(×-Ò-Ø(Ýœ
 7°1½cÐBÑBÔBñô ð ð øõ #¥IÐ.ð ð ð ØÔ(×-Ò-Ø6Ý˜DŸNšNÑ,Ô,Ñ-Ô-ñô ð ð ñ ðøøøð
 Ô ×%Ò%Ð&<Ñ=Ô=Ð=Ð=øÝð 	ð 	ð 	ØˆDð	øøøð 	Œ×$Ò$ XÑ.Ô.Ð.Ð.Ð.s8   ‚B8F Â;ADÄF ÄAE&Å"F Å%E&Å&F Æ
FÆFrd   re   rf   r   c                 ó8   — | j                              ||¦  «        S rz   )r  ri   rh   s      r.   ri   z_EnvelopePrinterTransport.flushq  s   € ð
 Œ{× Ò  ¨(Ñ3Ô3Ð3r-   c                 ó4   — | j                              ¦   «         S rz   )r  rl   rk   s    r.   rl   z_EnvelopePrinterTransport.killx  s   € ØŒ{×ÒÑ!Ô!Ð!r-   r0   rm   ro   rp   rq   rr   rs   rn   c                óB   — | j                              ||||¬¦  «         d S )Nrm   )r  rv   ru   s        r.   rv   z+_EnvelopePrinterTransport.record_lost_event{  s)   € ð 	Œ×%Ò% f¨m¸TÈHÐ%ÑUÔUÐUÐUÐUr-   c                 ó4   — | j                              ¦   «         S rz   )r  rx   rk   s    r.   rx   z$_EnvelopePrinterTransport.is_healthy…  s   € ØŒ{×%Ò%Ñ'Ô'Ð'r-   Únamec                 ó,   — t          | j        |¦  «        S rz   )r*   r  )rO   r.  s     r.   Ú__getattr__z%_EnvelopePrinterTransport.__getattr__ˆ  s   € Ý�t”{ DÑ)Ô)Ð)r-   )r  rM   r=   Nr¶  rz   )r=   r   r}   )r~   r   r€   r�   rW   r~  r
  rÜ  r`   rƒ   ri   rl   r„   r…   rv   r†   rx   r0  r,   r-   r.   r  r  ?  sa  € € € € € ØeÐeð5ð 5ð 5ð 5ð ð%˜4ð %ð %ð %ñ „Xð%ð/ð /ð /ð /ð@ %)ð4ð 4àð4ð "ð4ð 
ð	4ð 4ð 4ð 4ð"ð "ð "ð "ð 8<Ø!%ð	Vð ðVð Vð VàðVð 5ðVð ð	Vð ðVð 
ðVð Vð Vð Vð(˜Dð (ð (ð (ð (ð* ð *¨ð *ð *ð *ð *ð *ð *r-   r  c                   ó:   — e Zd ZdZ	 	 	 	 dd„Z	 	 	 	 dd	„Zdd„ZdS )Ú_FunctionTransportzŒ
    DEPRECATED: Users wishing to provide a custom transport should subclass
    the Transport class, rather than providing a function.
    ÚfuncúCallable[[Event], None]r=   Nc                 óH   — t                                | ¦  «         || _        d S rz   )rM   rW   Ú_func)rO   r3  s     r.   rW   z_FunctionTransport.__init__’  s#   € õ 	×Ò˜4Ñ Ô Ð ØˆŒ
ˆ
ˆ
r-   rX   r%   c                 ó0   — |                       |¦  «         d S rz   )r6  )rO   rX   s     r.   rb   z _FunctionTransport.capture_event™  s   € ð 	�
Š
�5ÑÔÐØˆtr-   ra   r   c                 ó`   — |                      ¦   «         }|�|                      |¦  «         d S d S rz   )Ú	get_eventrb   )rO   ra   rX   s      r.   r`   z#_FunctionTransport.capture_envelope   s=   € ð ×"Ò"Ñ$Ô$ˆØÐØ×Ò˜uÑ%Ô%Ð%Ð%Ð%ð Ðr-   )r3  r4  r=   N)rX   r%   r=   Nr¶  )r~   r   r€   r�   rW   rb   r`   r,   r-   r.   r2  r2  Œ  s~   € € € € € ðð ð
à'ðð 
ðð ð ð ðàðð 
ðð ð ð ð&ð &ð &ð &ð &ð &r-   r2  rP   r�   úOptional[Transport]c                 ó  — | d         }|                       di ¦  «                              dd¦  «        }|                       di ¦  «                              dd¦  «        }t          d„ |                       d¦  «        pg D ¦   «         ¦  «        }|rt          nt          }|rtt          rm	 t          j        ¦   «          |r|rt          j        d¦  «         t          }nt          j        d	¦  «         n:# t          $ r t          j        d
¦  «         Y nw xY w|rt          j        d¦  «         d }t          |t          ¦  «        r|}ngt          |t          ¦  «        rt          |t          ¦  «        r|}n:t          |¦  «        r+t!          j        dt$          d¬¦  «         t'          |¦  «        }|€| d         r || ¦  «        }|�Ct(          j                              dd¦  «                             ¦   «         dv rt/          |¦  «        }|S )Nr  r    Útransport_http2FÚtransport_asyncc              3   ó6   K  — | ]}|j         j        d k    V — ŒdS )ÚAsyncioIntegrationN)rÜ  r~   )rD   Úintegrations     r.   rH   z!make_transport.<locals>.<genexpr>®  sB   è è € ð ð àð 	ÔÔ&Ð*>Ò>ðð ð ð ð ð r-   Úintegrationsz\HTTP/2 transport is not supported with async transport. Ignoring transport_http2 experiment.znYou tried to use AsyncHttpTransport but the AsyncioIntegration is not enabled. Falling back to sync transport.z6No event loop running, falling back to sync transport.zoYou tried to use AsyncHttpTransport but don't have httpcore[asyncio] installed. Falling back to sync transport.z„Function transports are deprecated and will be removed in a future release.Please provide a Transport instance or subclass, instead.r:   rZ   rS   ÚSENTRY_PRINT_ENVELOPESr\  )Ú1ÚtrueÚyes)rU   r  r  r²  rÕ  rØ  rÙ  r   r»   rÓ  rÖ  Ú
isinstancerM   r
  Ú
issubclassÚcallabler\   r]   r^   r2  rQ  rR  rC   r  )rP   Úref_transportÚuse_http2_transportÚuse_async_transportÚasync_integrationÚtransport_clsr  s          r.   Úmake_transportrN  ©  sk  € Ø˜KÔ(€Mà!Ÿ+š+ n°bÑ9Ô9×=Ò=Ð>OÐQVÑWÔWÐØ!Ÿ+š+ n°bÑ9Ô9×=Ò=Ð>OÐQVÑWÔWÐÝð ð à"Ÿ;š; ~Ñ6Ô6Ð<¸"ðñ ô ñ ô Ðð .Ð@�ˆµ=ð ð ð 
Õ8ð 
ð	UÝÔ$Ñ&Ô&Ð&Ø ð 
Ø&ð Ý”Nð?ñô ð õ !3��å”ð Eñô ð øøõ ð 	Uð 	Uð 	UåŒNÐSÑTÔTÐTÐTÐTð	Uøøøð 
ð 
ÝŒØ}ñ	
ô 	
ð 	
ð (,€Iå�-¥Ñ+Ô+ð 6Ø!ˆ	ˆ	Ý	�M¥4Ñ	(Ô	(ð 	6­Z¸ÅyÑ-QÔ-Qð 	6Ø%ˆˆÝ	�-Ñ	 Ô	 ð 6ÝŒðHåØð		
ñ 	
ô 	
ð 	
õ ' }Ñ5Ô5ˆ	ð Ð˜W Uœ^ÐØ!�M 'Ñ*Ô*ˆ	àÐ¥¤§¢Ø  "ñ"ô "ç‚e�g„gÐ%ð"&ð "&õ .¨iÑ8Ô8ˆ	àÐs   Â%AC- Ã-DÄDrz   )rP   r�   r=   r:  )TrØ  r¤   r3  r  r  rQ  r+   rN  r³   r\   Úabcr   r   Úcollectionsr   r   r   r   Úurllib.requestr	   rº   rÌ  rü  ÚAttributeErrorÚh2rõ  ÚanyiorÕ  Útypingr
   r   r   r   rS  r®   r·   r¨   r   Úsentry_sdk.enveloper   r   r   Úsentry_sdk.utilsr   r   r   r   Úsentry_sdk.workerr   r   r   r   r   r   r   r   r   r   r    r!   r"   Úurllib3.poolmanagerr#   r$   Úsentry_sdk._typesr%   r&   rM  Ú
SOL_SOCKETÚSOL_TCPÚoptionr!  r„   rK   rM   r™   r›   r€  r²  rÓ  r  r  r2  rN  r,   r-   r.   ú<module>r^     s#  ðØ €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø %Ð %Ð %Ð %Ð %Ð %ðØ€M€M€M€MøØð ð ð Ø€F€F€FðøøøðØ€O€O€O€OøØ�^Ð$ð ð ð Ø€H€H€HðøøøðØ€I€I€Ià DÐ(€M€MøØð ð ð Ø€M€M€Mðøøøð&Ø€L€L€Là (°Ð 4ÐÐøØð &ð &ð &Ø %ÐÐÐð&øøøð 3Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à €€€Ø €€€à Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð ð ð ð ð DÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ Càð ;ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð >Ð=Ð=Ð=Ð=Ð=Ð=Ð=à:Ð:Ð:Ð:Ð:Ð:Ð:Ð:àÐ àÔÐ?Ð?ÀÐCØ„^Ð<Ð<¸bÐAØ„^Ð=Ð=¸rÐBØ„^Ð;Ð;¸QÐ?ð	ð ð €FðØ!×(Ò(¨&°¬)°Y°V¸A´Y±[´[À&ÈÄ)Ð)LÑMÔMÐMÐMøØð ð ð ð 	ˆðøøøð
¨ð 
¸ð 
Àð 
ð 
ð 
ð 
ð[ð [ð [ð [ð [�ñ [ô [ð [ð~ .2ðð ØðØ*ðà=ðð ð ð ð$lð lð lð lð l˜	ñ lô lð lðbZð Zð Zð Zð ZÐ)ñ Zô Zð Zðzf
ð f
ð f
ð f
ð f
Ð%ñ f
ô f
ð f
ðR^ð ^ð ^ð ^ð ^Ð*ñ ^ô ^ð ^ðB ð N3ðð ð ð ð ˜ñ ô ð ð ðC3ð C3ð C3ð C3ð C3Ð*ñ C3ô C3ð C3ðLJ*ð J*ð J*ð J*ð J* 	ñ J*ô J*ð J*ðZ&ð &ð &ð &ð &˜ñ &ô &ð &ð:>ð >ð >ð >ð >ð >sZ   ÁA ÁAÁAÁA  Á 	A,Á+A,Á0A9 Á9BÂBÂB ÂBÂBÄ42E'Å'E/Å.E/