+
     h  c                   s~    ^ RI t ^ RIt^ RIHtHtHt R.t] P                  ! R] P                  4      t	 ! R R4      t
R# )    N)ListOptionalUnionReceiveBuffers   
?
c                   s   a  ] tR t^/t o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 ltV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )r   c                s   < V ^8  d   QhRR/# )   returnN Zformat__classdict__   "7/usr/lib/python3.14/site-packages/h11/_receivebuffer.py__annotate__ReceiveBuffer.__annotate__0   s     ( ($ (    c                s@    \        4       V n        ^ V n        ^ V n        R# )r    N)	bytearray_data_next_line_search_multiple_lines_searchself   &r   __init__ZReceiveBuffer.__init__0   s    [
!"&'#r   c                s:   < V ^8  d   QhRS[ S[S[3,          RR/# )r   	bytesliker   r   )r   bytesr   r   r
   r   r   r   5   s%      %y(8"9 o r   c                s8    V ;P                   V,          un         V # N)r   )r   r   s   &&r   __iadd__ZReceiveBuffer.__iadd__5   s    

i
r   c                    < V ^8  d   QhRS[ /# r   r   boolr   r
   r   r   r   9   s      $ r   c                s*    \        \        V 4      4      # r   )r   lenr   r   r   __bool__ZReceiveBuffer.__bool__9   s    CIr   c                r   r   )intr   r
   r   r   r   <   s       r   c                ,    \        V P                  4      # r   )r   r   r   r   r   __len__ZReceiveBuffer.__len__<   s    4::r   c                r   r   )r   r   r
   r   r   r   @   s     ! !5 !r   c                r"   r   )r   r   r   r   r   	__bytes__ZReceiveBuffer.__bytes__@   s    TZZ  r   c                s&   < V ^8  d   QhRS[ RS[/# r   countr   )r!   r   r   r
   r   r   r   C   s      c i r   c                s^    V P                   R V pV P                   R V1 ^ V n        ^ V n        V# r   )r   r   r   r   r&   out   && r   _extractZReceiveBuffer._extractC   s7    jj% JJvv!"&'#
r   c                s6   < V ^8  d   QhRS[ RS[S[,          /# r%   )r!   r   r   r   r
   r   r   r   M   s      $ $3 $8I3F $r   c                sV    V P                   RV pV'       g   R# V P                  V4      # )z2
Extract a fixed number of bytes from the buffer.
N)r   r*   r'   r)   r   maybe_extract_at_mostZ#ReceiveBuffer.maybe_extract_at_mostM   s)     jj% }}U##r   c                s0   < V ^8  d   QhRS[ S[,          /# r   )r   r   r   r
   r   r   r   W   s     " "))< "r   c                s    \        ^ V P                  ^,
          4      pV P                  P                  RV4      pVR8X  d   \	        V P                  4      V n        R# V^,           pV P                  V4      # )z;
Extract the first line, if it is completed in the buffer.
   
N)maxr   r   Zfindr   r*   )r   Zsearch_start_indexZpartial_idxidxs   &   r   maybe_extract_next_lineZ%ReceiveBuffer.maybe_extract_next_lineW   sf    
 !D$:$:Q$>?jjoog/AB"%(_D" Ao}}S!!r   c                s@   < V ^8  d   QhRS[ S[S[,          ,          /# r   )r   r   r   r   r
   r   r   r   h   s        Xd9o%>  r   c                st   V P                   R,          R8X  d   V P                  ^4       . # V P                   R,          R8X  d   V P                  ^4       . # \        P                  V P                   V P                  4      pVf.   \        ^ \        V P                   4      ^,
          4      V n        R# VP                  ^ 4      R,          pV P                  V4      pVP                  R4      pV F  pVP                  R4      '       g   K  VR K!  	  VR	,          VR,          u;8X  d	   R8X  g   Q h Q hVR	R1 V# )
zL
Extract everything up to the first blank line, and return a list of lines.
:Ni   Ns   
:Nr   Nr,   Ns   r   r-   i)
r   r*   blank_line_regexZsearchr   r.   r   ZspanZsplitZendswith)r   Zmatchr/   r(   ZlinesZlines   &     r   maybe_extract_linesZ!ReceiveBuffer.maybe_extract_linesh   s	   
 ::b>U"MM!I::b>W$MM!I !''

D4O4OP=*-aTZZ11D*ED' jjmBmmC 		% D}}U##H  RyE"I,,,,,,"#Jr   c                r   r   r   r   r
   r   r   r      s      T r   c                sT     V P                   ^ ,          ^!8  #   \         d     R# i ; i)r    F)r   Z
IndexErrorr   r   r   +is_next_line_obviously_invalid_request_lineZ9ReceiveBuffer.is_next_line_obviously_invalid_request_line   s.    	 ::a=4'' 		s    '')r   r   r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__r   r   r    r#   r$   r*   r+   r0   r2   r3   Z__static_attributes__Z__classdictcell__)r	   s   @r   r   r   /   sj     ( (
   ! ! $ $" ""   V r   )ZreZsysZtypingr   r   r   Z__all__ZcompileZ	MULTILINEr1   r   r   r   r   <module>r4      s=    	 
 ( (
N ::j",,7 j jr   