
    @OOf                         d dl Z d dlmZ ddlmZ d dlmZ d Zdede	ej                  j                     fd	Zd
 Z G d dej                        Zy)    N)KaitaiStream   )base)google_protobufc           
         |A| j                  dj                  d|t        |t              r|nt	        |d      |             y |$| j                  d|z  t	        |      z   dz          y | j                  d|z  dz          y )Nz{: <{level}}{}: {}
 zutf-8)level z {
z}
)writeformat
isinstanceintstr)out	field_tagbodyindent_levels       `/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/contentviews/protobuf.py	write_bufr   	   s    		"))"4-3tW3E"	 * 	
 
			#$s9~5>?		#$u,-    rawreturnc                 $   t        j                  t        t        j                  |                   }|j
                  D ]E  }t        |j                  t         j                  j                  j                        r<t        d       |j
                  S )z[Parse a bytestring into protobuf pairs and make sure that all pairs have a valid wire type.zNot a protobuf.)r   GoogleProtobufr   ioBytesIOpairsr   	wire_typePair	WireTypes
ValueError)r   bufpairs      r   _parse_protor$      so    

(
(bjjo)F
GC		 0NNO::??II
 .//	0
 99r   c           	      d   t        j                         }g }	 t        |       }|j	                  |d d d   D cg c]  }|df c}       t        |      r|j                         \  }}|j                  |j                  j                  k(  rd }n|j                  |j                  j                  k(  r
d }d |_        n|j                  |j                  j                  k(  r|j                  j                  }nF|j                  |j                  j                  k(  r|j                  j                  }n|j                  }	 t        |      }|j	                  |d d d   D cg c]	  }||dz   f c}       t!        |j"                  d |       |r	|d   d   }nd}||k  r9t%        ||z
  dz        }t'        d|dz         D ]  }	t!        |d d ||	dz  z
          t        |      r|j)                         S # t        $ r Y yw xY wc c}w c c}w # t        $ r t!        |j"                  ||       Y w xY w)NFr      r   )r   StringIOr$   	Exceptionextendlenpopr   r    group_start	group_end_m_field_taglen_delimitedvaluer   varintr   r   r   rangegetvalue)
r   r   stackr   r#   r   r   
prev_levellevelsis
             r   format_pbufr9   $   s   
++-CES! 
LLdd44)45
e*"YY[l>>T^^777D^^t~~777D $D^^t~~;;;::??D^^t~~444::##D::D	? &ELLuTrT{Kt4!12KLc4>>4> r1JJ$,3q89F1fqj) A#tT<!a%+?@A; e*@ <<>I  4& L 	?c4>>4>	?s:   G2 H= H H+H 2	G>=G>H !H/.H/c                   B    e Zd ZdZdZddgZd Zddded	edz  d
e	fdZ
y)ViewProtobufzgHuman friendly view of protocol buffers
    The view uses the protoc compiler to decode the binary
    zProtocol Bufferzapplication/x-protobufzapplication/x-protobufferc                 `    t        |      }|st        d      dt        j                  |      fS )NzFailed to parse input.Protobuf)r9   r!   r   format_text)selfdatametadatadecodeds       r   __call__zViewProtobuf.__call__\   s1    d#5664++G444r   N)content_typer@   rD   r   c                J    t        t        |      xr || j                  v       S )N)floatbool_ViewProtobuf__content_types)r?   r@   rD   rA   s       r   render_priorityzViewProtobuf.render_priorityc   s#     T$ZHLD4H4H$HIIr   )__name__
__module____qualname____doc__namerH   rC   bytesr   rF   rI    r   r   r;   r;   Q   sJ     D #O
5 :>JJ,/$JJ	Jr   r;   )r   kaitaistructr   r   r   mitmproxy.contrib.kaitaistructr   r   rO   listr   r   r$   r9   Viewr;   rP   r   r   <module>rU      sR    	 %  :. e _%C%C%H%H I *ZJ499 Jr   