Ë
    ¾�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m	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZmZ e j(                  dedej,                  ej.                  ddf   fd„«       Zd	„ Zi Zd
„ Zd„ Zd„ Zd„ Z G d„ de«      Z deee!e"f   defd„Z#d„ Z$de%defd„Z&	 d$dddee%e%e%e%f   deeef   de'fd„Z(dejR                  fd„Z*dedede+fd„Z,d „ Z-d!ej                  d"efd#„Z.y)%é    N)ÚIterableÚListÚTupleÚUnion)ÚImage)Ú	Direction)ÚSessionBrokenErrorÚUiObjectNotFoundErrorÚfilenameÚreturnc              #   ó  K  — 	 ddl m}m}  |d«      | z  } ||«      5 }|j                  «       r|–— 	 ddd«       y	 ddd«       t        j                  t        j                  d   «      }|| z  j                  «       r|| z  –— yt        j                  j                  «       | z  j                  «       r$t        j                  j                  «       | z  –— yt        d| › d�«      ‚# t        $ r ddlm}m} Y Œñw xY w# 1 sw Y   ŒÃxY w­w)zÛ
    Context manager to access a package asset file using importlib.resources.
    
    Args:
        filename (str): The name of the file to locate.
    
    Yields:
        str: The full path to the located file.
    r   )Úas_fileÚfilesÚuiautomator2Nz	Resource z# not found in uiautomator2 package.)Úimportlib.resourcesr   r   ÚImportErrorÚimportlib_resourcesÚexistsÚpathlibÚPathÚsysÚargvÚcwdÚFileNotFoundError)r   r   r   ÚanchorÚfÚbinary_paths         úS/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/uiautomator2/utils.pyÚwith_package_resourcer      sø   è ø€ ð7ß6ñ �>Ó" XÑ-€FÙ	�‹ð ˜AØ�8‰8Œ:ØŠGØ÷ð Ø÷ô —,‘,œsŸx™x¨™{Ó+€KØ�hÑ×&Ñ&Ô(Ø˜HÑ$Ò$Øô 	�‰×ÑÓ˜XÑ%×-Ñ-Ô/Ü�l‰l×ÑÓ  8Ñ+Ò+Øä
˜i¨ zÐ1TÐUÓ
VÐVøô) ò 7ç6Ñ6ð7ú÷ð üsC   ‚D„C* ŒDŸDµ	D¿B+DÃ*C>Ã;DÃ=C>Ã>DÄD
ÄDc                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc                 óf   •— | j                  «       st        | j                  «      ‚ ‰| g|¢­i |¤ŽS ©N)Úrunningr	   Ú	_pkg_name©ÚselfÚargsÚkwargsÚfns      €r   Úinnerzcheck_alive.<locals>.inner:   s0   ø€ à�|‰|Œ~Ü$ T§^¡^Ó4Ð4Ù�$Ð(˜Ò( Ñ(Ð(ó    ©Ú	functoolsÚwraps©r)   r*   s   ` r   Úcheck_aliver0   9   s%   ø€ Ü‡_�_�RÓó)ó ð)ð
 €Lr+   c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc                  ó”   •— ‰| t        |j                  «       «      f}t        j                  |«      }|�|S  ‰| i |¤Žxt        |<   }|S r"   )Ú	frozensetÚitemsÚ_cached_valuesÚget)r'   r(   ÚkeyÚvalueÚretr)   s        €r   r*   zcache_return.<locals>.innerG   sS   ø€ à�4œ 6§<¡<£>Ó2Ð3ˆÜ×"Ñ" 3Ó'ˆØÐØˆLá$&¨Ð$7°Ñ$7Ð7Œ�sÑ˜cØˆ
r+   r,   r/   s   ` r   Úcache_returnr:   F   s%   ø€ Ü‡_�_�RÓóó ðð €Lr+   c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc                 óÐ   •— ‰j                   j                  d«      }| j                  j                  d|||d «        ‰| g|¢­i |¤Ž}| j                  j                  d||||«       y )NÚ_ÚbeforeÚafter)Ú__name__ÚlstripÚserverÚhooks_apply)r&   r'   r(   Únamer9   r)   s        €r   r*   zhooks_wrap.<locals>.innerU   s_   ø€ à�{‰{×!Ñ! #Ó&ˆØ�‰×Ñ ¨$°°f¸dÔCÙ�Ð'˜Ò' Ñ'ˆØ�‰×Ñ ¨¨t°V¸SÕAr+   r,   r/   s   ` r   Ú
hooks_wraprE   T   s'   ø€ Ü‡_�_�RÓóBó ðBð €Lr+   c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc                 óÄ   •— |j                  d| j                  «      }| j                  |¬«      s&t        d| j                  j                  «       dœ«      ‚ ‰| g|¢­i |¤ŽS )NÚtimeout©rH   iþ‚ÿÿ)ÚcodeÚmessage)ÚpopÚwait_timeoutÚwaitr
   ÚselectorÚ__str__)r&   r'   r(   rH   r)   s       €r   r*   zwrap_wait_exists.<locals>.innera   sc   ø€ à—*‘*˜Y¨×(9Ñ(9Ó:ˆØ�y‰y ˆyÔ)Ü'ØØŸ=™=×0Ñ0Ó2ñ)ó ð ñ �$Ð(˜Ò( Ñ(Ð(r+   r,   r/   s   ` r   Úwrap_wait_existsrQ   `   s%   ø€ Ü‡_�_�RÓó)ó ð)ð €Lr+   c                 ó¶   — | d   |d   kD  r| d   n|d   }| d   |d   k  r| d   n|d   }| d   |d   kD  r| d   n|d   }| d   |d   k  r| d   n|d   }||||fS )NÚtopÚbottomÚleftÚright© )Úrect1Úrect2rS   rT   rU   rV   s         r   Ú	intersectrZ   n   s“   € Ø ™,¨¨u©Ò5ˆ%�Š,¸5À¹<€CØ % h¡°%¸±/Ò AˆU�8Š_ÀuØñH€Fà! &™M¨E°&©MÒ9ˆ5�Š=¸uÀV¹}€DØ# G™n¨u°W©~Ò=ˆE�'ŠNÀ5ØñD€Eà��e˜VÐ#Ð#r+   c                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zdd„Zd„ Zy)	ÚExistsz!Exists object with magic methods.c                 ó   — || _         y r"   )Úuiobject)r&   r^   s     r   Ú__init__zExists.__init__z   s	   € Ø ˆ�r+   c                 ót   — | j                   j                  j                  | j                   j                  «      S )z$Magic method for bool(self) python2 )r^   ÚjsonrpcÚexistrO   ©r&   s    r   Ú__nonzero__zExists.__nonzero__}   s'   € à�}‰}×$Ñ$×*Ñ*¨4¯=©=×+AÑ+AÓBÐBr+   c                 ó"   — | j                  «       S )z% Magic method for bool(self) python3 )rd   rc   s    r   Ú__bool__zExists.__bool__�   s   € à×ÑÓ!Ð!r+   c                 óT   — |r| j                   j                  |¬«      S t        | «      S )zcMagic method for self(args).

        Args:
            timeout (float): exists in seconds
        rI   )r^   rN   Úbool)r&   rH   s     r   Ú__call__zExists.__call__…   s)   € ñ Ø—=‘=×%Ñ%¨gÐ%Ó6Ð6Ü�D‹zÐr+   c                 ó*   — t        t        | «      «      S r"   )Ústrrh   rc   s    r   Ú__repr__zExists.__repr__�   s   € Ü”4˜“:‹Ðr+   N)r   )	r@   Ú
__module__Ú__qualname__Ú__doc__r_   rd   rf   ri   rl   rW   r+   r   r\   r\   x   s   „ Ù+ò!òCò"óór+   r\   r'   c                 óŠ   — t        | t        «      r| S dj                  t        t	        t
        j                  | «      «      «      S )Nú )Ú
isinstancerk   ÚjoinÚlistÚmapÚshlexÚquote)r'   s    r   Úlist2cmdlinerx   “   s0   € Ü�$œÔØˆØ�8‰8”DœœUŸ[™[¨$Ó/Ó0Ó1Ð1r+   c                 ó4  — t        | «      sJ d«       ‚t        j                  | «      }|j                  j	                  «       D �ci c]  }||v r|||   “Œ }} |j
                  |i |¤Ž}|j                  «         | |j                  i |j                  ¤ŽS c c}w )z¶
    Call function without known all the arguments

    Args:
        fn: function
        args: arguments
        kwargs: key-values
    
    Returns:
        as the fn returns
    zfirst argument must be callable)	ÚcallableÚinspectÚ	signatureÚ
parametersÚkeysÚbindÚapply_defaultsr'   r(   )r)   r'   r(   Ústr7   Ú	fn_kwargsÚbas          r   Úinject_callr„   ™   s¡   € ô �BŒ<Ð:Ð:Ó:ˆ<ä	×	Ñ	˜2Ó	€Bð —=‘=×%Ñ%Ó'öà¨3°&©=ð 	ˆV�C‰[Ñð€Ið ð 
ˆ�‰�$Ð	$˜)Ñ	$€BØ×ÑÔÙˆr�w‰wÐ$˜"Ÿ)™)Ñ$Ð$ùòs   ÁBÚsizec                 óš   — d}d}d}| |k\  rdj                  | |z  «      S | |k\  rdj                  | |z  «      S dj                  | |z  «      S )Ni   i   i   @z	{:.1f} GBz	{:.1f} MBz	{:.1f} KB)Úformat)r…   Ú_KBÚ_MBÚ_GBs       r   Ú
natualsizer‹   ±   s^   € Ø
€CØ
€CØ
€Càˆs‚{Ø×!Ñ! $¨¡*Ó-Ð-Ø	�ŠØ×!Ñ! $¨¡*Ó-Ð-à×!Ñ! $¨¡*Ó-Ð-r+   Údzuiautomator2.DeviceÚboundsÚ	directionÚscalec                 ó(  ‡ — ˆ fd„}d|cxk  rdk  sJ ‚ J ‚t        |«      dk(  sJ ‚|\  }}}}||z
  ||z
  }
}	t        |	d|z
  z  «      dz  }t        |
d|z
  z  «      dz  }||z   ||
dz  z   f}||	dz  z   ||z   f}||z
  ||
dz  z   f}||	dz  z   ||z
  f}|t        j                  k(  r
 |||«       y|t        j                  k(  r
 |||«       y|t        j
                  k(  r
 |||«       y|t        j                  k(  r
 |||«       yt        d|«      ‚)	zï
    Args:
        d: Device object
        bounds: list of [lx, ly, rx, ry]
        direction: one of ["left", "right", "up", "down"]
        scale: percent of swipe, range (0, 1.0)
    
    Raises:
        AssertionError, ValueError
    c                 óF   •— ‰j                  | d   | d   |d   |d   «       y )Nr   é   )Úswipe)Ú_fromÚ_torŒ   s     €r   Ú_swipezswipe_in_bounds.<locals>._swipeÌ   s%   ø€ Ø	�‰��a‘˜% ™( C¨¡F¨C°©FÕ3r+   r   g      ð?é   r’   é   zUnknown direction:N)ÚlenÚintr   ÚLEFTÚRIGHTÚUPÚDOWNÚ
ValueError)rŒ   r�   rŽ   r�   r–   ÚlxÚlyÚrxÚryÚwidthÚheightÚh_offsetÚv_offsetrU   ÚuprV   rT   s   `                r   Úswipe_in_boundsr©   ¾   sC  ø€ ô4ð ˆuÔ˜ÒÐÑÐÐÜˆv‹;˜!ÒÐÐà�N€BˆˆB�Ø˜‘G˜R "™Wˆ6€Eä�5˜A ™IÑ&Ó'¨1Ñ,€HÜ�6˜Q ™YÑ'Ó(¨AÑ-€Hà�‰=˜"˜v¨™{Ñ*Ð*€DØ	ˆe�q‰j‰˜"˜x™-Ð	'€BØ�‰M˜2 ¨!¡Ñ+Ð+€EØ�%˜1‘*‰_˜b 8™mÐ+€Fà”I—N‘NÒ"Ùˆu�dÕØ	”i—o‘oÒ	%Ùˆt�UÕØ	”i—l‘lÒ	"Ùˆv�rÕØ	”i—n‘nÒ	$Ùˆr�6ÕäÐ-¨yÓ9Ð9r+   r)   c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc                 óª   •— t        | d«      st        j                  «       | _        | j                  5   ‰| g|¢­i |¤Žcd d d «       S # 1 sw Y   y xY w)NÚ_lock)ÚhasattrÚ	threadingÚLockr¬   r%   s      €r   r*   z"thread_safe_wrapper.<locals>.innerê   sI   ø€ ä�t˜WÔ%Ü"Ÿ™Ó)ˆDŒJà�Z‰Zñ 	-Ù�dÐ,˜TÒ, VÑ,÷	-÷ 	-ò 	-ús   ³A	Á	Ar,   r/   s   ` r   Úthread_safe_wrapperr°   é   s%   ø€ Ü‡_�_�RÓó-ó ð-ð €Lr+   Úexpect_versionÚactual_versionc                 óê   — dt         fd„} || «      } ||«      }t        |«      t        |«      cxk(  rdk(  sJ d«       ‚ J d«       ‚|d   |d   k(  r"|d   |d   k  ry|d   |d   k(  r|d   |d   k  S y	)
zþ
    Check if the actual version is compatiable with the expect version

    Args:
        expect_version: expect version, e.g. 1.0.0
        actual_version: actual version, e.g. 1.0.0

    Returns:
        bool: True if compatiable, otherwise False
    Úversionc                 óR   — t        t        t        | j                  d«      «      «      S )Nú.)Útupleru   rš   Úsplit)r´   s    r   Ú_parse_versionz.is_version_compatiable.<locals>._parse_version  s   € Ü”Sœ˜gŸm™m¨CÓ0Ó1Ó2Ð2r+   é   zversion format errorr   r’   Tr˜   F)rk   r™   )r±   r²   r¹   ÚevsÚavss        r   Úis_version_compatiabler½   ö   s™   € ð3¤ó 3ñ ˜Ó
(€CÙ
˜Ó
(€CÜˆs‹8”s˜3“xÔ$ 1Ò$Ð<Ð&<Ó<Ñ$Ð<Ð&<Ó<Ð$Ø
ˆ1�v��Q‘ÒØˆq‰6�C˜‘FŠ?ØØˆq‰6�S˜‘VÒØ�q‘6˜S ™VÑ#Ð#Ør+   c                 ó   ‡ — ˆ fd„}|S )Nc                 óF   •‡ — t        j                  ‰ «      ˆ ˆfd„«       }|S )Nc                  ól   •— t        j                  d‰j                  › d‰› �t        d¬«        ‰| i |¤ŽS )Nz
Function 'z' is deprecated: r˜   )Ú
stacklevel)ÚwarningsÚwarnr@   ÚDeprecationWarning)r'   r(   ÚfuncÚreasons     €€r   Úwrapperz.deprecated.<locals>.decorator.<locals>.wrapper  s7   ø€ ä�M‰M˜J t§}¡} oÐ5FÀvÀhÐOÔQcÐpqÕrÙ˜Ð( Ñ(Ð(r+   r,   )rÅ   rÇ   rÆ   s   ` €r   Ú	decoratorzdeprecated.<locals>.decorator  s%   ù€ Ü	�‰˜Ó	ô	)ó 
ð	)ð ˆr+   rW   )rÆ   rÈ   s   ` r   Ú
deprecatedrÉ     s   ø€ ôð Ðr+   Úimr‡   c                 ó  — |dk(  r| S |dk(  rE	 dd l }dd l}| j                  d«      } |j                  |j	                  | «      |j
                  «      S t        d|«      ‚# t        $ r t        j                  d«       ‚ w xY w)NÚpillowÚopencvr   ÚRGBzmissing lib: cv2 or numpyzUnsupported format:)
Úcv2ÚnumpyÚconvertÚcvtColorÚarrayÚCOLOR_RGB2BGRr   rÂ   rÃ   rŸ   )rÊ   r‡   rÏ   Únps       r   Úimage_convertrÖ     s€   € Ø�ÒØˆ	Ø�Òð	ÛÛØ—‘˜EÓ"ˆBØ—<‘< §¡¨£¨c×.?Ñ.?Ó@Ð@ô Ð*¨FÓ
3Ð3øô ò 	Ü�M‰MÐ5Ô6Øð	ús   ŽAA Á A>)g333333ã?)/Ú
contextlibr-   r{   r   rv   r   r®   ÚtypingrÂ   r   r   r   r   ÚPILr   Úuiautomator2._protor   Úuiautomator2.exceptionsr	   r
   Úcontextmanagerrk   Ú	Generatorr   r   r0   r5   r:   rE   rQ   rZ   Úobjectr\   rt   r·   rx   r„   rš   r‹   Úfloatr©   ÚCallabler°   rh   r½   rÉ   rÖ   rW   r+   r   ú<module>rá      sb  ðó Û Û Û Û Û 
Û Û Û ß /Ó /å å )ß Mð ×Ñð W Cð  W¨F×,<Ñ,<¸W¿\¹\È4ÐQUÐ=UÑ,Vò  Wó ð WòFð €òòòò$ôˆVô ð62�u˜S $¨Ð-Ñ.ð 2°3ó 2ò%ð0
.�Sð 
.˜Só 
.ð  $'ñ(:Ð,ð (:Ø! # s¨C°Ð"4Ñ5ð(:à$ Y° ^Ñ4ð(:ð !ó(:ðV	˜FŸO™Oó 	ð¨3ð Àð Èó ò2ð4�e—k‘kð 4¨3ô 4r+   