ó
    Ö›‘hÁ  ã                   ó^   • S r SSKJr  SSKJrJr  SSKJrJr   " S S\R                  5      r
g)z 
An in-memory caching resolver.
é    )Údefer)ÚcommonÚdns)ÚfailureÚlogc                   óR   • \ rS rSrSrSrSS jrS rS rS r	SS jr
SS	 jrS
 rSrg)ÚCacheResolveré   zw
A resolver that serves records from a local, memory cache.

@ivar _reactor: A provider of L{interfaces.IReactorTime}.
Nc                 óô   • [         R                  R                  U 5        0 U l        X l        0 U l        Uc  SSKJn  X0l        U(       a/  UR                  5        H  u  nu  pVU R                  XFU5        M     g g )Nr   )Úreactor)r   ÚResolverBaseÚ__init__ÚcacheÚverboseÚcancelÚtwisted.internetr   Ú_reactorÚitemsÚcacheResult)Úselfr   r   r   ÚqueryÚsecondsÚpayloads          ÚWC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/names/cache.pyr   ÚCacheResolver.__init__   sf   € Ü×Ñ×$Ñ$ TÔ*àˆŒ
ØŒØˆŒØ‰?Ý0ØŒæØ-2¯[©[®]Ñ)�Ñ)˜Ø× Ñ  °Ö9ò .;ð ó    c                 óü   • Xl         U R                  R                  5       nU R                  R	                  5        H>  u  nu  nu  pVnX$-
  nXV-   U-    H#  n	U	R
                  U:  d  M  U R                  U	   M<     M@     g ©N)Ú__dict__r   r   r   r   Úttl)
r   ÚstateÚnowÚkÚwhenÚansÚaddÚnsÚdiffÚrecs
             r   Ú__setstate__ÚCacheResolver.__setstate__&   sn   € ØŒà�m‰m×#Ñ#Ó%ˆØ)-¯©×)9Ñ)9Ö);Ñ%ˆAÑ%�‘n�s Ø‘:ˆDØ‘y 2”~�Ø—7‘7˜T•>ØŸ
™
 1˜Úó &ò *<r   c                 ó°   • U R                   R                  5        H  nUR                  5         M     U R                   R                  5         U R                  $ r   )r   ÚvaluesÚclearr   )r   Úcs     r   Ú__getstate__ÚCacheResolver.__getstate__1   s<   € Ø—‘×#Ñ#Ö%ˆAØ�H‰HŽJñ &à�‰×ÑÔØ�}‰}Ðr   c                 ó`  • U R                   R                  5       n[        R                  " XU5      n U R                  U   u  nu  p‰n
U R
                  (       a"  [        R                  " S[        U5      -   5        XW-
  n U Vs/ s H\  n[        R                  " UR                  R                  UR                  UR                  UR                  U-
  UR                  5      PM^     snU	 Vs/ s H\  n[        R                  " UR                  R                  UR                  UR                  UR                  U-
  UR                  5      PM^     snU
 Vs/ s H\  n[        R                  " UR                  R                  UR                  UR                  UR                  U-
  UR                  5      PM^     sn4n[        R                   " U5      $ s  snf s  snf s  snf ! ["         aA    [        R$                  " [&        R(                  " [        R*                  " U5      5      5      s $ f = f! [,         as    U R
                  S:”  a"  [        R                  " S[        U5      -   5        [        R$                  " [&        R(                  " [        R*                  " U5      5      5      s $ f = f)NzCache hit for é   zCache miss for )r   r   r   ÚQueryr   r   r   ÚmsgÚreprÚRRHeaderÚnameÚtypeÚclsr    r   r   ÚsucceedÚ
ValueErrorÚfailr   ÚFailureÚDomainErrorÚKeyError)r   r8   r:   r9   Útimeoutr"   Úqr$   r%   Úauthr&   r(   ÚrÚresults                 r   Ú_lookupÚCacheResolver._lookup7   s  € Ø�m‰m×#Ñ#Ó%ˆÜ�IŠI�d #Ó&ˆð#	-Ø%)§Z¡Z°¡]Ñ"ˆDÑ"�3˜cð �|�|Ü—’Ð(¬4°«:Ñ5Ô6Ø‘:ˆDð-ñ "%ó	ò "%˜Aô ŸšØŸF™FŸK™K¨¯©°·±¸¿¹À¹ÀaÇiÁiöñ "%ñ	ñ "&ó	ò "&˜Aô ŸšØŸF™FŸK™K¨¯©°·±¸¿¹À¹ÀaÇiÁiöñ "&ñ	ñ "%ó	ò "%˜Aô ŸšØŸF™FŸK™K¨¯©°·±¸¿¹À¹ÀaÇiÁiöñ "%ñ	ð�ô. —}’} VÓ,Ð,ùò-ùòùòøô ó JÜ—z’z¤'§/¢/´#·/²/À$Ó2GÓ"HÓIÒIðJûô= ó 	FØ�|‰|˜aÓÜ—’Ð)¬D°«JÑ6Ô7Ü—:’:œgŸošo¬c¯oªo¸dÓ.CÓDÓEÒEð	FúsR   ³H0 Â G" ÂA#GÃ'G" Ã-A#GÅG" ÅA#GÆ9G" ÇG" Ç"AH-È,H-È0A:J-Ê,J-c                 ó~   • [         R                  " [        R                  " [        R
                  " U5      5      5      $ r   )r   r=   r   r>   r   r?   )r   r8   rA   s      r   ÚlookupAllRecordsÚCacheResolver.lookupAllRecords_   s#   € Ü�zŠzœ'Ÿ/š/¬#¯/ª/¸$Ó*?Ó@ÓAÐAr   c                 ó>  • U R                   S:”  a  [        R                  " SU-  5        U=(       d    U R                  R	                  5       U4U R
                  U'   XR                  ;   a  U R                  U   R                  5         [        US   5      [        US   5      -   [        US   5      -   nU(       a.  US   R                  nU H  n[        XVR                  5      nM     OSnU R                  R                  XPR                  U5      U R                  U'   g)aq  
Cache a DNS entry.

@param query: a L{dns.Query} instance.

@param payload: a 3-tuple of lists of L{dns.RRHeader} records, the
    matching result of the query (answers, authority and additional).

@param cacheTime: The time (seconds since epoch) at which the entry is
    considered to have been added to the cache. If L{None} is given,
    the current time is used.
r3   zAdding %r to cacher   é   N)r   r   r5   r   r   r   r   Úlistr    ÚminÚ	callLaterÚ
clearEntry)r   r   r   Ú	cacheTimeÚsÚmrD   s          r   r   ÚCacheResolver.cacheResultb   sá   € ð �<‰<˜!ÓÜ�GŠGÐ(¨5Ñ0Ô1à&×A¨$¯-©-×*?Ñ*?Ó*AÀ7ÐKˆ�
‰
�5Ñà—K‘KÓØ�K‰K˜Ñ×%Ñ%Ô'ä�˜‘Óœt G¨A¡JÓ/Ñ/´$°w¸q±zÓ2BÑBˆÞØ�!‘—‘ˆAÛ�Ü˜Ÿ5™5“M’ò ð ˆAà!Ÿ]™]×4Ñ4°Q¿¹ÈÓOˆ�‰�EÒr   c                 ó8   • U R                   U	 U R                  U	 g r   )r   r   )r   r   s     r   rP   ÚCacheResolver.clearEntry�   s   € Ø�J‰J�uÐØ�K‰K˜Ñr   )r   r   r   r   r   )Nr   Nr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r*   r0   rF   rI   r   rP   Ú__static_attributes__© r   r   r	   r	      s4   † ñð €Eô:ò	òò&-ôPBôPõ>r   r	   N)r[   r   r   Útwisted.namesr   r   Útwisted.pythonr   r   r   r	   r]   r   r   Ú<module>r`      s)   ðñ
õ
 #ß %ß 'ôt�F×'Ñ'õ tr   