
    'j                         d dl mZmZmZmZ deeef         dee         fdZdedee         fdZh dZdedefd	Z	deeef         deeef         fd
Z
defdZdS )    )AnyDictIterableOptionalheadersreturnc                 V    |                      d          p|                      d          S )z?
    Retrieves the User-Agent from the headers dictionary.
    z
User-Agentz
user-agent)getr   s    ^/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/browserforge/headers/utils.pyget_user_agentr      s'     ;;|$$AL(A(AA    
user_agentc                      t           fddD                       rdS t           fddD                       rdS d v rdS t           fd	d
D                       rdS dS )zA
    Determines the browser name from the User-Agent string.
    c              3       K   | ]}|v V  	d S N .0aliasr   s     r   	<genexpr>zget_browser.<locals>.<genexpr>   s(      
A
A55J
A
A
A
A
A
Ar   )FirefoxFxiOSfirefoxc              3       K   | ]}|v V  	d S r   r   r   s     r   r   zget_browser.<locals>.<genexpr>   s(      BBUUj BBBBBBr   )ChromeCriOSchromeSafarisafaric              3       K   | ]}|v V  	d S r   r   r   s     r   r   zget_browser.<locals>.<genexpr>   s(      PPUUj PPPPPPr   )EdgeEdgAEdgEdgiOSedgeN)any)r   s   `r   get_browserr(      s     
A
A
A
A,@
A
A
AAA y	BBBB.ABBB	B	B x	Z		x	PPPP.OPPP	P	P v4r   >   dntectrttnamec                     |                      d          s|                      d          r| S | t          v r|                                 S |                                 S )N:z	sec-ch-ua)
startswithPASCALIZE_UPPERuppertitle)r,   s    r   	pascalizer3      sU    s t{;; zz||::<<r   c                 >    d |                                  D             S )Nc                 4    i | ]\  }}t          |          |S r   )r3   )r   keyvalues      r   
<dictcomp>z%pascalize_headers.<locals>.<dictcomp>(   s$    DDDjc5IcNNEDDDr   )itemsr   s    r   pascalize_headersr:   '   s    DDGMMOODDDDr   objc                 d    t          | t                    rt          | t                    r| | S | fS r   )
isinstancer   str)r;   s    r   tuplifyr?   +   s5    3!! *S#*>*> 3;
6Mr   N)typingr   r   r   r   r>   r   r(   r0   r3   r:   r?   r   r   r   <module>rA      s   0 0 0 0 0 0 0 0 0 0 0 0BDcN Bx} B B B BC HSM     (''C C    EtCH~ E$sCx. E E E E      r   