+
     °³j*>  ã                   óÖ  a € R9 t@0 t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt
^ RIt
^ RIt^ RIHt ^ RIHtHtHtHtHtHt ^ RIHt ^ RIt^ RIt^ RIHt ^RIHtH t  Rt!R:R R	 llt"R;R
 R llt#R R lt$R<R R llt%R=R R llt&R R lt'R>R R llt(R?R R llt)R?R R llt*R@R R llt+R R lt,R]PZ                  R]P\                  /t/] ^ k R  R! lt0R"],R#]0/t1] ^k R]Pd                  R$]Pd                  R]Pd                  /t3] ^k R%RAR&RAR'RB/t4] ^k R( R) lt5RCR* R+ llt6RCR, R- llt7RDR. R/ llt8R0 R1 lt9]! R2]:];4      t<RER3 R4 llt=RFR5 R6 llt>R7 R8 lt?R# )Gé    N)ÚIterable)ÚAnyÚCallableÚIOÚOptionalÚTypeVarÚUnion)Úurlparse)Útqdm)Ú#_download_file_from_remote_locationÚ_is_remote_location_availablezpytorch/visionc                óv   € V ^8„  d   QhR\         R\        \         \        P                  3,          R\        RR/# )é   ÚurlÚfilenameÚ
chunk_sizeÚreturnN)Ústrr	   ÚpathlibÚPathÚint)Úformats   "Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/datasets/utils.pyÚ__annotate__r      s7   € ÷ (ñ (”cð (¤U¬3´·±Ð+<Õ%=ð (Ì3ð (Ð_cñ (ó    c                 ó>  € \         P                  P                  \         P                  P                  V R \        /R7      4      ;_uu_ 4       p\        VR4      ;_uu_ 4       p\        VP                  RRR7      ;_uu_ 4       pVP                  V4      ;p'       d.   VP                  V4       VP                  \        V4      4       KF   RRR4       RRR4       RRR4       R#   + '       g   i     L"; i  + '       g   i     L-; i  + '       g   i     R# ; i)ú
User-Agent©ÚheadersÚwbÚBT)ÚtotalÚunitÚ
unit_scaleN)ÚurllibÚrequestÚurlopenÚRequestÚ
USER_AGENTÚopenr   ÚlengthÚreadÚwriteÚupdateÚlen)r   r   r   ÚresponseÚfhÚpbarÚchunks   &&&    r   Ú_urlretriever4      sº   € Ü	�‰×	Ñ	¤§¡× 6Ñ 6°sÀ\ÔS]ÐD^Ð 6Ó _×	`Ô	`ÐdlÜ�(˜D×!Ô! R¬°H·O±OÈ#ÐZ^×)_Õ)_ÐcgØ#Ÿ=™=¨Ó4Ð4�%Ö4Ø—‘˜”Ø—‘œC ›JÖ'ð 5÷ *`×!÷ 
aÑ	`ß)_×)_ú×!×!ú÷ 
a×	`Ð	`úsB   ÁDÁ"!C8	ÂC%Â-C%ÃC8	ÃDÃ%C5Ã0C8	Ã8DÄDÄD	c                ór   € V ^8„  d   QhR\         \        \        P                  3,          R\        R\        /# )r   Úfpathr   r   )r	   r   r   r   r   )r   s   "r   r   r   #   s0   € ÷ ñ œœs¤G§L¡LÐ0Õ1ð ¼sð ÔUXñ r   c                 ó(  € \         P                  ! R R7      p\        V R4      ;_uu_ 4       pVP                  V4      ;p'       d   VP	                  V4       K,   RRR4       VP                  4       #   + '       g   i     TP                  4       # ; i)F)ÚusedforsecurityÚrbN)ÚhashlibÚmd5r*   r,   r.   Ú	hexdigest)r6   r   r;   Úfr3   s   &&   r   Úcalculate_md5r>   #   sp   € ô �+Š+ eÔ
,€CÜ	ˆe�T×	Ô	˜aØ—v‘v˜jÓ)Ð)ˆeÖ)Ø�J‰J�uÖð *÷ 
ð �=‰=‹?Ð÷ 
Ö	ð �=‰=‹?Ðús   ¬A2ÁA2Á2B	c                ó~   € V ^8„  d   QhR\         \        \        P                  3,          R\        R\        R\
        /# )r   r6   r;   Úkwargsr   )r	   r   r   r   r   Úbool)r   s   "r   r   r   .   s6   € ÷ 1ñ 1”Uœ3¤§¡Ð,Õ-ð 1´Cð 1Ä3ð 1Ì4ñ 1r   c                 ó    € V\        V 3/ VB 8H  # ©N)r>   )r6   r;   r@   s   &&,r   Ú	check_md5rD   .   s   € Ø”- Ñ0¨Ñ0Ñ0Ð0r   c                óˆ   € V ^8„  d   QhR\         \        \        P                  3,          R\        \        ,          R\
        /# )r   r6   r;   r   ©r	   r   r   r   r   rA   )r   s   "r   r   r   2   s4   € ÷ !ñ !œ5¤¤g§l¡lÐ!2Õ3ð !¼(Ä3½-ð !ÔSWñ !r   c                 ór   € \         P                  P                  V 4      '       g   R # Vf   R# \        W4      # )FT)ÚosÚpathÚisfilerD   )r6   r;   s   &&r   Úcheck_integrityrK   2   s+   € Ü�7‰7�>‰>˜%× Ò ÙØ
‚{ÙÜ�UÓ Ð r   c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r   r   Úmax_hopsr   )r   r   )r   s   "r   r   r   :   s!   € ÷ 
ñ 
œ3ð 
¬#ð 
´cñ 
r   c           	      ó¬  € T pR RR\         /p\        V^,           4       FŠ  p\        P                  P	                  \        P                  P                  WR7      4      ;_uu_ 4       pVP                  V 8X  g   VP                  f   V uuRRR4       u # VP                  p RRR4       KŒ  	  \        RV RV RV  R24      h  + '       g   i     K´  ; i)	ÚMethodÚHEADr   r   NzRequest to z
 exceeded z( redirects. The last redirect points to Ú.)r)   Úranger%   r&   r'   r(   r   ÚRecursionError)r   rM   Úinitial_urlr   Ú_r0   s   &&    r   Ú_get_redirect_urlrV   :   s¿   € Ø€KØ˜ ¬zÐ:€Gä�8˜a•<Ö ˆÜ�^‰^×#Ñ#¤F§N¡N×$:Ñ$:¸3Ð$:Ó$P×QÔQÐU]Ø�|‰|˜sÔ" h§l¡lÒ&:Ø÷ RÔQð —,‘,ˆC÷	 RÑQñ !ô Ø˜+˜ j°°
Ð:bÐcfÐbgÐghÐió
ð 	
÷ R×QÐQús   Á'!CÂCÃCc                óF   € V ^8„  d   QhR\         R\        \         ,          /# )r   r   r   )r   r   )r   s   "r   r   r   J   s   € ÷ 
ñ 
¤3ð 
¬8´C­=ñ 
r   c                 óÒ   € \        V 4      p\        P                  ! R VP                  4      f   R# \        P                  ! RVP                  4      pVf   R# VP                  R4      # )z(drive|docs)[.]google[.]comNz/file/d/(?P<id>[^/]*)Úid)r
   ÚreÚmatchÚnetlocrI   Úgroup)r   Úpartsr[   s   &  r   Ú_get_google_drive_file_idr_   J   sP   € Ü�S‹M€Eä	‡x‚xÐ.°·±Ó=ÒEÙä�HŠHÐ-¨u¯z©zÓ:€EØ‚}Ùà�;‰;�tÓÐr   c                óð   € V ^8„  d   QhR\         R\        \         \        P                  3,          R\        \        \         \        P                  3,          ,          R\        \         ,          R\
        RR/# )r   r   Úrootr   r;   Úmax_redirect_hopsr   N)r   r	   r   r   r   r   )r   s   "r   r   r   W   si   € ÷ 2;ñ 2;Ü	ð2;ä
””W—\‘\Ð!Õ
"ð2;ô ”uœS¤'§,¡,Ð.Õ/Õ0ð2;ô 
”#�ð	2;ô
 ð2;ð 
ñ2;r   c                óâ  € \         P                  P                  V4      pV'       g    \         P                  P                  V 4      p\         P                  ! \         P                  P                  W4      4      p\         P                  ! VRR7       \        WS4      '       d   R# \        4       '       d   \        WP4       M3\        WR7      p \        V 4      pVe   \        WaW#4      #  \        W4       \        WS4      '       g   \'        R	4      hR#   \        P                  P                   \"        3 d8   pT R,          R8X  d#   T P%                  RR4      p \        Y4        Rp?LsThRp?ii ; i)
a“  Download a file from a url and place it in root.

Args:
    url (str): URL to download file from
    root (str): Directory to place downloaded file in
    filename (str, optional): Name to save the file under. If None, use the basename of the URL
    md5 (str, optional): MD5 checksum of the download. If None, do not check
    max_redirect_hops (int, optional): Maximum number of redirect hops allowed
T©Úexist_okN)rM   :Né   NÚhttpszhttps:zhttp:úFile not found or corrupted.)rH   rI   Ú
expanduserÚbasenameÚfspathÚjoinÚmakedirsrK   r   r   rV   r_   Údownload_file_from_google_driver4   r%   ÚerrorÚURLErrorÚOSErrorÚreplaceÚRuntimeError)r   ra   r   r;   rb   r6   Úfile_idÚes   &&&&&   r   Údownload_urlrv   W   s  € ô  �7‰7×Ñ˜dÓ#€DßÜ—7‘7×#Ñ# CÓ(ˆÜ�IŠI”b—g‘g—l‘l 4Ó2Ó3€Eä‡K‚K�˜tÕ$ô �u×"Ò"Ùä$×&Ò&Ü+¨EÕ7ô   Ô@ˆô ,¨CÓ0ˆØÒÜ2°7À(ÓPÐPð	Ü˜Ô$ô ˜5×&Ò&ÜÐ9Ó:Ð:ñ 'øô —‘×%Ñ%¤wÐ/ô 	Ø�2�w˜'Ô!Ø—k‘k (¨GÓ4�Ü˜S×(Ñ(à�ûð	ús   Ã)D Ä%E.Ä7+E)Å'E)Å)E.c                óˆ   € V ^8„  d   QhR\         \        \        P                  3,          R\        R\
        \        ,          /# )r   ra   Úprefixr   ©r	   r   r   r   rA   Úlist)r   s   "r   r   r   Œ   s3   € ÷ ñ ”5œœgŸl™lÐ*Õ+ð ´Tð ÄdÌ3Åiñ r   c           	     ó’  € \         P                  P                  V 4      p \         P                  ! V 4       Uu. uFI  p\         P                  P	                  \         P                  P                  W4      4      '       g   KG  VNKK  	  ppVRJ d/   V Uu. uF"  p\         P                  P                  W4      NK$  	  ppV# u upi u upi )z÷List all directories at a given root

Args:
    root (str): Path to directory whose folders need to be listed
    prefix (bool, optional): If true, prepends the path to each result, otherwise
        only returns the name of the directories found
T)rH   rI   ri   ÚlistdirÚisdirrl   )ra   rx   ÚpÚdirectoriesÚds   &&   r   Úlist_dirr�   Œ   sŒ   € ô �7‰7×Ñ˜dÓ#€DÜ Ÿjšj¨Ô.ÓWÑ.˜´"·'±'·-±-ÄÇÁÇÁÈTÓ@U×2V—1�1Ñ.€KÐWØ�ƒ~Ù6AÓB±k°”r—w‘w—|‘| DÖ,±kˆÐBØÐùò XùâBs   ¸AB?ÂB?Â(Cc          	      ó”   € V ^8„  d   QhR\         \        \        P                  3,          R\        R\        R\
        \        ,          /# )r   ra   Úsuffixrx   r   ry   )r   s   "r   r   r   ›   s=   € ÷ ñ ”Uœ3¤§¡Ð,Õ-ð ´sð ÄDð ÔUYÔZ]ÕU^ñ r   c           	     óÄ  € \         P                  P                  V 4      p \         P                  ! V 4       Uu. uFb  p\         P                  P	                  \         P                  P                  W4      4      '       g   KG  VP                  V4      '       g   K`  VNKd  	  ppVRJ d/   V Uu. uF"  p\         P                  P                  W4      NK$  	  ppV# u upi u upi )a¢  List all files ending with a suffix at a given root

Args:
    root (str): Path to directory whose folders need to be listed
    suffix (str or tuple): Suffix of the files to match, e.g. '.png' or ('.jpg', '.png').
        It uses the Python "str.endswith" method and is passed directly
    prefix (bool, optional): If true, prepends the path to each result, otherwise
        only returns the name of the files found
T)rH   rI   ri   r|   rJ   rl   Úendswith)ra   rƒ   rx   r~   Úfilesr€   s   &&&   r   Ú
list_filesr‡   ›   sœ   € ô �7‰7×Ñ˜dÓ#€DÜŸ
š
 4Ô(ÓiÑ(�1¬B¯G©G¯N©N¼2¿7¹7¿<¹<ÈÓ;P×,QŒQÐVW×V`ÑV`Ðag×Vh�QˆQÑ(€EÐiØ�ƒ~Ù05Ó6±¨1”—‘—‘˜dÖ&±ˆÐ6Ø€Lùò jùâ6s   ¸ACÂCÂCÂ,(Cc          	      óà   € V ^8„  d   QhR\         R\        \         \        P                  3,          R\        \        \         \        P                  3,          ,          R\        \         ,          /# )r   rt   ra   r   r;   )r   r	   r   r   r   )r   s   "r   r   r   ¬   sU   € ÷ ";ñ ";Üð";ä
””W—\‘\Ð!Õ
"ð";ô ”uœS¤'§,¡,Ð.Õ/Õ0ð";ô 
”#�ñ	";r   c                óº  €  ^ RI p\        P                  P                  T4      pT'       g   T p\        P                  ! \        P                  P                  Y4      4      p\        P                  ! TRR7       \        YS4      '       d   R# TP                  YR\        R7       \        YS4      '       g   \        R4      hR#   \         d    \        R4      hi ; i)aN  Download a Google Drive file from  and place it in root.

Args:
    file_id (str): id of file to be downloaded
    root (str): Directory to place downloaded file in
    filename (str, optional): Name to save the file under. If None, use the id of the file.
    md5 (str, optional): MD5 checksum of the download. If None, do not check
Nz`To download files from GDrive, 'gdown' is required. You can install it with 'pip install gdown'.Trd   F)rY   ÚoutputÚquietÚ
user_agentrh   )ÚgdownÚModuleNotFoundErrorrs   rH   rI   ri   rk   rl   rm   rK   Údownloadr)   )rt   ra   r   r;   r�   r6   s   &&&&  r   rn   rn   ¬   s®   € ð
Ûô �7‰7×Ñ˜dÓ#€DßØˆÜ�IŠI”b—g‘g—l‘l 4Ó2Ó3€Eä‡K‚K�˜tÕ$ä�u×"Ò"Ùà	‡N�N�g°5ÄZ€NÔPä˜5×&Ò&ÜÐ9Ó:Ð:ñ 'øô# ô 
ÜØnó
ð 	
ð
ús   ‚C ÃCc                óÂ   € V ^8„  d   QhR\         \        \        P                  3,          R\         \        \        P                  3,          R\        \        ,          RR/# ©r   Ú	from_pathÚto_pathÚcompressionr   N©r	   r   r   r   r   )r   s   "r   r   r   Ñ   sN   € ÷  ñ  Ü”Sœ'Ÿ,™,Ð&Õ'ð Ü27¼¼W¿\¹\Ð8IÕ2Jð ÜYaÔbeÕYfð à	ñ r   c                 óÆ   € \         P                  ! Y'       d   R VR,           2MR4      ;_uu_ 4       pVP                  V4       RRR4       R#   + '       g   i     R# ; i)zr::é   NNÚrN)Útarfiler*   Ú
extractall)r’   r“   r”   Útars   &&& r   Ú_extract_tarrœ   Ñ   sD   € ô 
�Š�i¾; 2 k°"¥oÐ%6Ñ!7ÈC×	PÔ	PÐTWØ�‰�wÔ÷ 
Q×	P×	PÒ	Pús   ³AÁA 	ú.bz2z.xzc                óÂ   € V ^8„  d   QhR\         \        \        P                  3,          R\         \        \        P                  3,          R\        \        ,          RR/# r‘   r•   )r   s   "r   r   r   Þ   sN   € ÷  ñ  Ü”Sœ'Ÿ,™,Ð&Õ'ð Ü27¼¼W¿\¹\Ð8IÕ2Jð ÜYaÔbeÕYfð à	ñ r   c                 óê   € \         P                  ! T R V'       d   \        V,          M\         P                  R7      ;_uu_ 4       pVP	                  V4       RRR4       R#   + '       g   i     R# ; i)r˜   )r”   N)ÚzipfileÚZipFileÚ_ZIP_COMPRESSION_MAPÚ
ZIP_STOREDrš   )r’   r“   r”   Úzips   &&& r   Ú_extract_zipr¥   Þ   sQ   € ô 
�ŠØ�3ÏÔ$8¸Ö$EÔZa×ZlÑZl÷
õ 
à	Ø�‰�wÔ÷
÷ 
÷ 
ò 
ús   ÁA!Á!A2	ú.tarz.zipú.gzz.tbzz.tbz2z.tgzc                ó¾   € V ^8„  d   QhR\         \        \        P                  3,          R\        \        \
        \        ,          \
        \        ,          3,          /# )r   Úfiler   )r	   r   r   r   Útupler   )r   s   "r   r   r   ÷   sC   € ÷ (uñ (uœE¤#¤w§|¡|Ð"3Õ4ð (u¼¼sÄHÌSÅMÔS[Ô\_ÕS`Ð?`Õ9añ (ur   c                óø  € \         P                  ! V 4      P                  pV'       g   \        RV  R24      hVR,          pV\        9   d   V.\        V,          O5# V\
        9   d   W"R3# V\        9   d4   \        V4      ^8”  d   VR,          pV\
        9   d   W2,           W23# VRV3# \        \        \        4      \        \
        4      ,          \        \        4      ,          4      p\        RV RV R24      h)	zìDetect the archive type and/or compression of a file.

Args:
    file (str): the filename

Returns:
    (tuple): tuple of suffix, archive type, and compression

Raises:
    RuntimeError: if file has no suffix or suffix is not supported
zFile 'zP' has no suffixes that could be used to detect the archive type and compression.Nz&Unknown compression or archive type: 'z'.
Known suffixes are: 'z'.éÿÿÿÿéþÿÿÿ)
r   r   Úsuffixesrs   Ú_FILE_TYPE_ALIASESÚ_ARCHIVE_EXTRACTORSÚ_COMPRESSED_FILE_OPENERSr/   ÚsortedÚset)r©   r®   rƒ   Úsuffix2Úvalid_suffixess   &    r   Ú_detect_file_typer¶   ÷   s  € ô �|Š|˜DÓ!×*Ñ*€HßÜØ�T�FÐjÐkó
ð 	
ð �b�\€Fð Ô#Ô#ØÐ4Ô+¨FÕ3Ñ4Ð4ð Ô$Ô$Ø˜tÐ#Ð#ð Ô)Ô)äˆx‹=˜1ÔØ˜r•lˆGð Ô-Ô-ØÕ'¨Ð8Ð8à�t˜VÐ#Ð#äœCÔ 2Ó3´cÔ:MÓ6NÕNÔQTÔUmÓQnÕnÓo€NÜ
Ð?À¸xÐG`ÐaoÐ`pÐprÐsÓ
tÐtr   c                óÞ   € V ^8„  d   QhR\         \        \        P                  3,          R\        \         \        \        P                  3,          ,          R\
        R\        P                  /# ©r   r’   r“   Úremove_finishedr   rF   )r   s   "r   r   r   "  sU   € ÷ !!ñ !!Ü”Sœ'Ÿ,™,Ð&Õ'ð!!ä”eœC¤§¡Ð-Õ.Õ/ð!!ô ð!!ô ‡\�\ñ	!!r   c           	     óL  € \        V 4      w  r4pV'       g   \        RV R24      hVf@   \        P                  ! \        P
                  ! V 4      P                  Y4e   TMR4      4      p\        V,          pV! V R4      ;_uu_ 4       p\        VR4      ;_uu_ 4       pVP                  VP                  4       4       RRR4       RRR4       V'       d   \        P                  ! V 4       \        P                  ! V4      #   + '       g   i     LL; i  + '       g   i     LW; i)a‰  Decompress a file.

The compression is automatically detected from the file name.

Args:
    from_path (str): Path to the file to be decompressed.
    to_path (str): Path to the decompressed file. If omitted, ``from_path`` without compression extension is used.
    remove_finished (bool): If ``True``, remove the file after the extraction.

Returns:
    (str): Path to the decompressed file.
z*Couldn't detect a compression from suffix rQ   NÚ r9   r    )r¶   rs   r   r   rH   rk   rr   r±   r*   r-   r,   Úremove)	r’   r“   r¹   rƒ   Úarchive_typer”   Úcompressed_file_openerÚrfhÚwfhs	   &&&      r   Ú_decompressrÁ   "  sÑ   € ô" ):¸)Ó(DÑ%€F˜+ßÜÐGÈÀxÈqÐQÓRÐRà‚Ü—,’,œrŸyšy¨Ó3×;Ñ;¸FÒTlÁLÐrtÓuÓvˆô 6°kÕBÐá	 	¨4×	0Ô	0°C¼¸gÀt×9LÔ9LÐPSØ�	‰	�#—(‘(“*Ô÷ :M×	0÷ Ü
�	Š	�)Ôä�<Š<˜Ó Ð ÷ :M×9Lú×	0×	0ús$   ÂDÂ D 	Â<DÄ DÄDÄD#	c          
      ó   € V ^8„  d   QhR\         \        \        P                  3,          R\        \         \        \        P                  3,          ,          R\
        R\         \        \        P                  3,          /# r¸   rF   )r   s   "r   r   r   F  s_   € ÷ -.ñ -.Ü”Sœ'Ÿ,™,Ð&Õ'ð-.ä”eœC¤§¡Ð-Õ.Õ/ð-.ô ð-.ô Œ3”—‘ÐÕñ	-.r   c           
     óê  a € R V 3R llpVf    \         P                  P                  S 4      p\        S 4      w  rEpV'       gb   \	        S \         P                  P                  V\         P                  P                  S 4      P                  VR4      4      VR7      pV! V4      # \        V,          pV! S W4       V'       d   \         P                  ! S 4       V! \        P                  ! V4      4      # )a  Extract an archive.

The archive type and a possible compression is automatically detected from the file name. If the file is compressed
but not an archive the call is dispatched to :func:`decompress`.

Args:
    from_path (str): Path to the file to be extracted.
    to_path (str): Path to the directory the file will be extracted to. If omitted, the directory of the file is
        used.
    remove_finished (bool): If ``True``, remove the file after the extraction.

Returns:
    (str): Path to the directory the file was extracted to.
c                óz   € V ^8„  d   QhR\         P                  R\        \        \         P                  3,          /# )r   Úret_pathr   )r   r   r	   r   )r   s   "r   r   Ú%extract_archive.<locals>.__annotate__Z  s,   € ÷ ñ œgŸl™lð ¬u´S¼'¿,¹,Ð5FÕ/Gñ r   c                 ó`   <€ \        S\        4      '       d   \        P                  ! V 4      # V # rC   )Ú
isinstancer   rH   rk   )rÅ   r’   s   &€r   Úpath_or_strÚ$extract_archive.<locals>.path_or_strZ  s$   ø€ Ü�i¤×%Ò%Ü—9’9˜XÓ&Ð&àˆOr   r»   )r¹   )rH   rI   Údirnamer¶   rÁ   rl   rj   rr   r°   r¼   r   r   )	r’   r“   r¹   rÉ   rƒ   r½   r”   rÅ   Ú	extractors	   f&&      r   Úextract_archiverÍ   F  s¼   ø€ ÷(ð ð ‚Ü—'‘'—/‘/ )Ó,ˆä(9¸)Ó(DÑ%€F˜+ßÜØÜ�G‰G�L‰L˜¤"§'¡'×"2Ñ"2°9Ó"=×"EÑ"EÀfÈbÓ"QÓRØ+ô
ˆñ
 ˜8Ó$Ð$ô $ LÕ1€Iáˆi˜Ô.ßÜ
�	Š	�)Ôá”w—|’| GÓ,Ó-Ð-r   c                óH  € V ^8„  d   QhR\         R\        \         \        P                  3,          R\        \        \         \        P                  3,          ,          R\        \        \         \        P                  3,          ,          R\        \         ,          R\
        RR/# )	r   r   Údownload_rootÚextract_rootr   r;   r¹   r   N)r   r	   r   r   r   rA   )r   s   "r   r   r   v  s†   € ÷ <ñ <Ü	ð<äœœgŸl™lÐ*Õ+ð<ô œ5¤¤g§l¡lÐ!2Õ3Õ4ð<ô ”uœS¤'§,¡,Ð.Õ/Õ0ð	<ô
 
”#�ð<ô ð<ð 
ñ<r   c                 ó  € \         P                  P                  V4      pVf   TpV'       g    \         P                  P                  V 4      p\	        WW44       \         P                  P                  W4      p\        WbV4       R # rC   )rH   rI   ri   rj   rv   rl   rÍ   )r   rÏ   rÐ   r   r;   r¹   Úarchives   &&&&&& r   Údownload_and_extract_archiverÓ   v  s`   € ô —G‘G×&Ñ& }Ó5€MØÒØ$ˆßÜ—7‘7×#Ñ# CÓ(ˆä� XÔ3ä�g‰g�l‰l˜=Ó3€GÜ�G¨?Ö;r   c                ó0   € V ^8„  d   QhR\         R\        /# )r   Úiterabler   )r   r   )r   s   "r   r   r   Š  s   € ÷ Eñ Eœhð E¬3ñ Er   c           	      ó|   € R RP                  V  Uu. uF  p\        V4      NK  	  up4      ,           R ,           # u upi )Ú'z', ')rl   r   )rÕ   Úitems   & r   Úiterable_to_strrÙ   Š  s1   € Ø�—‘±HÓ=±H¨Dœc $ži±HÑ=Ó>Õ>ÀÕDÐDùÒ=s   ‘9
ÚTc          
      ó¬   € V ^8„  d   QhR\         R\        \        ,          R\        \        \         ,          ,          R\        \        ,          R\         /# )r   ÚvalueÚargÚvalid_valuesÚ
custom_msgr   )rÚ   r   r   r   )r   s   "r   r   r   ‘  sK   € ÷ ñ Üðä	”#�ðô œ8¤A�;Õ'ðô œ•ð	ô
 ñr   c                 ó
  € \        V \        4      '       g1   Vf   RpMRpVP                  \        V 4      VR7      p\	        V4      hVf   V # W9  d1   Ve   TpMRpVP                  W\        V4      R7      p\	        V4      hV # )Nz'Expected type str, but got type {type}.z:Expected type str for argument {arg}, but got type {type}.)ÚtyperÝ   zPUnknown value '{value}' for argument {arg}. Valid values are {{{valid_values}}}.)rÜ   rÝ   rÞ   )rÈ   r   r   rá   Ú
ValueErrorrÙ   )rÜ   rÝ   rÞ   rß   Úmsgs   &&&& r   Úverify_str_argrä   ‘  sˆ   € ô �eœS×!Ò!ØŠ;Ø;‰CàNˆCØ�j‰jœd 5›k¨sˆjÓ3ˆÜ˜‹oÐàÒØˆàÔ ØÒ!Ø‰CàdˆCØ—*‘* 5ÄÐP\Ó@]�*Ó^ˆCÜ˜‹oÐà€Lr   c                ó†   € V ^8„  d   QhR\         \        \        P                  3,          R\        R\
        P                  /# )r   Ú	file_nameÚslice_channelsr   )r	   r   r   r   r   ÚnpÚndarray)r   s   "r   r   r   ­  s3   € ÷ !#ñ !#œœs¤G§L¡LÐ0Õ1ð !#Ä3ð !#ÌrÏzÉzñ !#r   c                óô  € \        V R4      ;_uu_ 4       pVP                  4       P                  4       pVR9  d   \        R4      h\        P
                  ! RVP                  4       4      pV'       g   \        R4      hR VP                  4        4       w  rV\        VP                  4       P                  4       4      pV^ 8  d   RpV) pMRp\        P                  ! W(R	,           R
7      p	RRR4       XR8X  d   ^M^p
X	P                  XXV
4      P                  ^^ ^4      p	\        P                  ! V	^R7      p	V	RV1RR3,          p	V	P                  \        P                  4      #   + '       g   i     L„; i)a0  Read file in .pfm format. Might contain either 1 or 3 channels of data.

Args:
    file_name (str): Path to the file.
    slice_channels (int): Number of channels to slice out of the file.
        Useful for reading different data formats stored in .pfm files: Optical Flows, Stereo Disparity Maps, etc.
r9   ó   PFzInvalid PFM files   ^(\d+)\s(\d+)\s$zMalformed PFM header.c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irC   )r   )Ú.0Údims   & r   Ú	<genexpr>Ú_read_pfm.<locals>.<genexpr>¾  s   é € Ð7Ñ$6˜S”�C—�Ó$6ùs   ‚Ú<Ú>r=   )ÚdtypeN)Úaxis:NNN)rë   s   Pf)r*   ÚreadlineÚrstriprâ   rZ   r[   Ú	ExceptionÚgroupsÚfloatrè   ÚfromfileÚreshapeÚ	transposeÚflipÚastypeÚfloat32)ræ   rç   r=   ÚheaderÚ	dim_matchÚwÚhÚscaleÚendianÚdataÚpfm_channelss   &&         r   Ú	_read_pfmr  ­  s/  € ô 
ˆi˜×	Ô	 !Ø—‘“×$Ñ$Ó&ˆØ˜Ô'ÜÐ/Ó0Ð0ä—H’HÐ1°1·:±:³<Ó@ˆ	ßÜÐ3Ó4Ð4Ù7 I×$4Ñ$4Ô$6Ó7‰ˆä�a—j‘j“l×)Ñ)Ó+Ó,ˆØ�1Œ9ØˆFØ�F‰EàˆFä�{Š{˜1¨S¥LÔ1ˆ÷# 
ð&  %œ‘1¨Q€Là�<‰<˜˜1˜lÓ+×5Ñ5°a¸¸AÓ>€DÜ�7Š7�4˜aÔ €DØ���  AÐ%Õ&€DØ�;‰;”r—z‘zÓ"Ð"÷1 
×	ús   •AE'Á3A8E'Å'E7	c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r   Útr   )ÚtorchÚTensor)r   s   "r   r   r   Ñ  s"   € ÷ ñ œŸ™ð ¬¯©ñ r   c                 óB  € V P                  4       P                  \        P                  4      P                  ! . V P                  OV P                  4       N5!  P                  R4      P                  ! . V P                  RR ORN5!  P                  V P                  4      # )r—   Nr¬   )Ú
contiguousÚviewr  Úuint8ÚshapeÚelement_sizerý   ró   )r
  s   &r   Ú_flip_byte_orderr  Ñ  s~   € à	�‰‹×ÑœEŸK™KÓ(×-Ò-ÐI¨q¯w©wÐI¸¿¹Ó8HÓI×NÑNÈrÓR×WÒWÐjÐYZ×Y`ÑY`ÐadÐbdÐYeÐjÐgiÓj×oÑoÐpq×pwÑpwÓxðr   c                óZ  € V ^8„  d   Qh/ ^ \         9   d   \        \        \        3,          ;R&   ^\         9   dt   \        \        \        \
        \        \        P                  3,          \
        \        \        P                  3,          \        \        ,          .R3,          3,          ;R&   ^\         9   d(   \        \        \        R\        3,          3,          ;R&   ^\         9   dB   \        \        \        \        \        ,          \        \        ,          3,          3,          ;R&   # )r   r¢   Nr°   .r±   r¯   )Ú__conditional_annotations__Údictr   r   r   r	   r   r   r   r   rª   )r   s   "r   r   r      sÜ   € ‡
�
÷nò ”dœ3¤˜8•nñ ño ÷Lò ”Tœ#œx¬¬s´G·L±LÐ/@Õ)AÄ5ÌÌgÏlÉlÐIZÕC[Ô]eÔfiÕ]jÐ(kÐmqÐ(qÕrÐrÕsñ ñM ÷Tò œ$œs¤H¨S´"¨WÕ$5Ð5Õ6ñ ñU ÷^ò ”Dœœe¤H¬S¥M´8¼Cµ=Ð$@ÕAÐAÕBñ ò_ r   )i €  )i   rC   )é   )NNr  )F)NN)r¦   r�   )r¦   r§   )NF)NNNF)NNN)r   )Ar  Úbz2Úgzipr:   ÚlzmarH   Úos.pathr   rZ   r™   r%   Úurllib.errorÚurllib.requestr    Úcollections.abcr   Útypingr   r   r   r   r   r	   Úurllib.parser
   Únumpyrè   r  Útorch.utils.model_zoor   Ú_internally_replaced_utilsr   r   r)   r4   r>   rD   rK   rV   r_   rv   r�   r‡   rn   rœ   Ú	ZIP_BZIP2ÚZIP_LZMAr¢   r¥   r°   r*   r±   r¯   r¶   rÁ   rÍ   rÓ   rÙ   r   ÚbytesrÚ   rä   r  r  r   )r  s   @r   Ú<module>r'     sR  øðß 
€
Û Û Û Û 	Û Û Û 	Û Û Û Û Û Ý $ß >× >Ý !ã Û Ý &ç kà€
÷(÷õ1÷!÷
õ 
÷2;÷j÷÷"";õJ ð ˆG×ÑØ	ˆ7×Ñð(Ð ó õ ð ˆLØ
ˆLðwÐ ó ð
 ˆC�H‰HØ	ˆ4�9‰9Ø	ˆ4�9‰9ð:Ð ó ð ÐØÐØ
ˆOðFÐ ó õ(u÷V!!÷H-.÷`<õ(Eñ ˆC��eÓ€÷÷8!#÷Hr   