
    
3j'3                     |    S SK r S SKrS SKrSSK7  SSK7  SrS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rg)    N   )*   c                 Z   [         R                  " U 5      nSnSnSnSnSnSU;   a  US   nO0 nSU;   a  [        US   5      (       d  SU;   a  [        US   5      (       a  SU[        R                  '   SnUS   nSU;   a.  [        US   5      (       a  SU[
        R                  '   SnUS   n	Og[
        R                  U;   a  UR                  [
        R                  5        O3[        R                  U;   a  UR                  [        R                  5        SU;   a.  [        US   5      (       a  SU[        R                  '   SnUS   n
O3[        R                  U;   a  UR                  [        R                  5        S	U;   a?  S
U;   a9  US
   b3  SnSUS	   [        R                  '   SUS	   [        R                  '   US	   n[        USS5      n[        US   5      US-  -   US-  -   S-   [        US   5      -   nU(       a1  [        WSU5      n[        US   5      US-  -   [        US   5      -   nOSnSnU(       a,  [        W
SX-   5      nSR                  U5      n[        U5      nOSnSnU(       a1  X-   U-   n[        W	SU5      nSR                  U5      n[        U5      nOSnSnU(       aB  X-   U-   U-   n[        WS	U5      n[        US
   5      nSn[        U5      U:  a  [        S5      eOSnU(       a  [        U-   n[         R"                  " SU5      n[        R                  n[         R"                  " SU5      n[         R"                  " S[$        R&                  5      n [         R"                  " SS5      n!UU -   U!-   U-   n"OSn"U(       a  [        U-   U-   n[         R"                  " SU5      n[        R                  n[         R"                  " SU5      n[         R"                  " S[$        R&                  5      n [         R"                  " SS5      n!UU -   U!-   U-   n#OSn#U(       a  [        U-   U-   U-   n[         R"                  " SU5      n[
        R                  n[         R"                  " SU5      n[         R"                  " S[$        R&                  5      n [         R"                  " SS5      n!UU -   U!-   U-   n$OSn$U(       a  [        U-   U-   U-   U-   n[         R"                  " SU5      n%U[        WS   5      -   S-   S-   [        US   5      -   n&S[         R"                  " SU&5      -   n'S[         R"                  " S[        W5      5      -   n(US   U'-   U(-   S-   US   -   U-   nOSn%US   U"-   U#-   U%-   US   -   n)U(       a  WS   U$-   US   -   nUU)-   W-   U-   U-   W-   $ )z
py:function:: piexif.load(data)

Return exif as bytes.

:param dict exif: Exif data({"0th":dict, "Exif":dict, "GPS":dict, "Interop":dict, "1st":dict, "thumbnail":bytes})
:return: Exif
:rtype: bytes
s   Exif  MM *   F0thExifInteropr   TGPS1st	thumbnailr             i   z&Given thumbnail is too large. max 64kB>I>H>L   s       s       s       )copydeepcopylenImageIFDExifTagExifIFDInteroperabilityTagpopGPSTagJPEGInterchangeFormatJPEGInterchangeFormatLength_dict_to_bytesjoin_get_thumbnail
ValueErrorTIFF_HEADER_LENGTHstructpackTYPESLong)*exif_dict_original	exif_dictheaderexif_isgps_is
interop_isfirst_is
zeroth_ifdexif_ifdinterop_ifdgps_ifd	first_ifd
zeroth_setzeroth_lengthexif_setexif_length
exif_bytesgps_set	gps_bytes
gps_lengthoffsetinterop_setinterop_bytesinterop_length	first_setr   thumbnail_max_sizefirst_bytespointer_valuepointer_strkeykey_strtype_str
length_strexif_pointergps_pointerinterop_pointerfirst_ifd_pointerthumbnail_pointerthumbnail_p_bytesthumbnail_length_byteszeroth_bytess*                                             F/home/wildlama/miniconda3/lib/python3.13/site-packages/piexif/_dump.pydumprR      s    01I<FGFJH	u%

	9	#i&7"8"8	!s9Y+?'@'@'(
8##$V$"Ii,@(A(A56HW112J#I.K))X5LL445			Z	'x''(Ie$4 5 5&'
8??#E"	J	&x'	)	I%{#/;<	%778AB	%==>e$	
E15JA''B,6"DqHA'(M !(FMB(1+&b83x{;KK
 %1LMHHW%	^
	
,z9$[)VD-]+,z9NJ"9eV<	"9[#9:	"y>..EFF / *]:kk$6++dC(;;tUZZ0[[q)
)J6D*]:[Hkk$6oo++dC(;;tUZZ0[[q)
(:5C+&')457ABkk$6))++dC(;;tUZZ0[[q)
!H,z9KG+m;$%'124BC"KKm<*S1->>C!$Yq\!23@#[[/@AB"E"(++dC	N"C#D |&77-.0CD |$&/0 0qML0;>%&(216La[?2Xa[@
\!J.:'( )r   c                     [        U 5      nSUS   SS s=::  a  S::  a+  O  O(UR                  S5        SUS   SS s=::  a  S::  a  M&  O  SR                  U5      nU$ )Ns   r   r      s   r   )split_into_segmentsr   r    )jpegsegmentsr   s      rQ   r!   r!      s]    "4(H(1+a*9k9Q (1+a*9k9"Ir   c                  H    [         R                  " S[        U 5      -  /U Q76 $ )NBr$   r%   r   argss    rQ   
_pack_byter]          ;;sSY...r   c                  H    [         R                  " S[        U 5      -  /U Q76 $ )NbrZ   r[   s    rQ   _pack_signed_bytera      r^   r   c                  N    [         R                  " SS[        U 5      -  -   /U Q76 $ )N>HrZ   r[   s    rQ   _pack_shortre      #    ;;sS3t9_,4t44r   c                  N    [         R                  " SS[        U 5      -  -   /U Q76 $ )Nrc   hrZ   r[   s    rQ   _pack_signed_shortri      rf   r   c                  N    [         R                  " SS[        U 5      -  -   /U Q76 $ )Nrc   LrZ   r[   s    rQ   
_pack_longrl      rf   r   c                  N    [         R                  " SS[        U 5      -  -   /U Q76 $ )Nrc   lrZ   r[   s    rQ   _pack_slongro      rf   r   c                  N    [         R                  " SS[        U 5      -  -   /U Q76 $ )Nrc   frZ   r[   s    rQ   _pack_floatrr      rf   r   c                  N    [         R                  " SS[        U 5      -  -   /U Q76 $ )Nrc   drZ   r[   s    rQ   _pack_doubleru      rf   r   c                 L   SnSnU[         R                  :X  aE  [        U 5      nUS::  a  [        U 6 SSU-
  -  -   nGO[        R
                  " SU5      n[        U 6 nGOU[         R                  :X  aE  [        U 5      nUS::  a  [        U 6 SSU-
  -  -   nGO[        R
                  " SU5      n[        U 6 nGO{U[         R                  :X  a<  [        U 5      nUS::  a
  [        U 6 nGOL[        R
                  " SU5      n[        U 6 nGO+U[         R                  :X  a<  [        U 5      nUS::  a
  [        U 6 nGO[        R
                  " SU5      n[        U 6 nGOU[         R                  :X  aN   U R                  S5      S-   n[        U5      nUS:  a  [        R
                  " SU5      nUnGOUSSU-
  -  -   nGOyU[         R                   :X  a  [#        U S
   [$        R&                  5      (       a6  SnU u  px[        R
                  " SU5      [        R
                  " SU5      -   nOo[#        U S
   [(        5      (       aW  [        U 5      nSn[+        U 5       H;  u  pU
u  pxU[        R
                  " SU5      [        R
                  " SU5      -   -  nM=     [        R
                  " SU5      nWnGOU[         R,                  :X  a  [#        U S
   [$        R&                  5      (       a6  SnU u  px[        R
                  " SU5      [        R
                  " SU5      -   nOo[#        U S
   [(        5      (       aW  [        U 5      nSn[+        U 5       H;  u  pU
u  pxU[        R
                  " SU5      [        R
                  " SU5      -   -  nM=     [        R
                  " SU5      nWnGOU[         R.                  :X  a>  [        U 5      nUS:  a  [        R
                  " SU5      n SU -   nGOI U SSU-
  -  -   nGO;U[         R0                  :X  aD  [        U 5      nUS::  a  [3        U 6 SSU-
  -  -   nGO[        R
                  " SU5      n[3        U 6 nOU[         R4                  :X  aC  [        U 5      nUS::  a  [7        U 6 SSU-
  -  -   nO[        R
                  " SU5      n[7        U 6 nOU[         R8                  :X  a:  [        U 5      nUS::  a	  [;        U 6 nO^[        R
                  " SU5      n[;        U 6 nO>U[         R<                  :X  a*  [        U 5      n[        R
                  " SU5      n[?        U 6 n[        R
                  " SW5      nXU4$ !    U S-   n GN! [         a    [        S	5      ef = f= f! [         a    [        S	5      ef = f! [         a    [        S	5      ef = f)Nr   r       r   rT   s     r   latin1zGot invalid type to convert.r   r   z>l) r&   Byter   r]   r$   r%   Shortre   r'   rl   SLongro   Asciiencode	TypeErrorr"   Rational
isinstancenumbersIntegraltuple	enumerate	SRational	UndefinedSBytera   SShortri   Floatrr   DFloatru   )	raw_value
value_typer<   four_bytes_over	value_strlength	new_valuenumdennvalrH   s               rQ   _value_to_bytesr      s   OIUZZYQ;#Y/#q6z23I D&1I()4O	u{{	"YQ;$i0'1v:67I D&1I)95O	uzz	!YQ;"I.ID&1I()4O	u{{	"YQ;#Y/ID&1I)95O	u{{	"	A!((2W<I YA:D&1I'O!Gq6z$::I	u~~	%ilG$4$455F HCD#.T31GGI	!e,,^FI#I.fkk$4 &D# 67 8	 / KKf-	#	u	&ilG$4$455F HCD#.T31GGI	!e,,^FI#I.fkk$4 &D# 67 8	 / KKf-	#	u	&YA:D&1IA"%	/A%1v:(>>	 
u{{	"YQ;*I6#q6z23I D&1I/;O	u||	#YQ;+Y7'1v:67I D&1I0)<O	u{{	"YQ;#Y/ID&1I)95O	u||	#YKKf-	&	2T6*J/11c	AA%/	 A !?@@AT  A !?@@A
  A !?@@As6   ,U "U4 *V U1UU..U14V
V#c                    [        U 5      n[        R                  " SU5      nUS;   a  SUS-  -   S-   nOSUS-  -   nSnSn[        [	        U 5      5       GH/  u  pUS:X  a&  U	[
        R                  [
        R                  4;   a  M2  US:X  a  U	[        R                  :X  a  MN  US	:X  a&  U	[
        R                  [
        R                  4;   a  Mz  X	   n
[        R                  " SU	5      n[        U   U	   S
   n[        R                  " SU5      nSn[        U
[        R                  5      (       d  [        U
[         5      (       a  U
4n
["        U-   U-   [        U5      -   n [%        U
UU5      u  nnnXkU-   U-   U-   -  nX~-  nGM2     XF-   U4$ ! [&         a*    ['        SSR)                  X[+        X	   5      5      -   5      ef = f)Nr   )r   r   rT   r   r   r   r   r   r   typez%"dump" got wrong type of exif value.
z{} in {} IFD. Got as {}.)r   r$   r%   r   sortedr   r   r   r   r   r   r   TAGSr   r   r   floatr#   r   r"   formatr   )ifd_dictifd
ifd_offset	tag_countentry_headerentries_lengthentriesvaluesr   rE   r   rF   r   rG   r   r<   rH   r   s                     rQ   r   r   2  s   HI;;tY/L
nY^+a/Y^+GFF8,-5Lsx'7'7&IIVm#)D)D"DUl)G)GImIm(n!nM	++dC(#Ys^F+
;;tZ0i!1!122jE6R6R"I#n4zACKO	5DYEOEK6M2J	? 	X%
2Y>>!; .< "F++  	8*11#D<OPQ 	s   "F4G)r   r   r$   _common_exifr#   rR   r!   r]   ra   re   ri   rl   ro   rr   ru   r   r    r   rQ   <module>r      s\          J)Z//555555v2p(,r   