
    z%ieh             	       j   	 d Z ddlZddlZddlZddlmZ d Z	d Z
dZdZdZg d	Zd
gZdZedd D ]  Zej%                  e       eez  Z [[d Zd Zd Zd Zd Z ed      Z ed      Z ed      Zd Zg dZg dZd ZdDdZdEdZ d Z!d Z"d Z#d Z$g dZ%d Z&d Z'd  Z(d! Z)d" Z*d# Z+d$ Z,d% Z-d& Z.d' Z/ G d( d)      Z0 e0d*      e0_1         e0d+d,d-d-d./      e0_2         e0d0      e0_3         G d1 d2      Z4e4Z5 e4ddd      e4_1         e4dd3d4      e4_2         e0d5      e4_3         G d6 d7      Z6 G d8 d9e7      Z8e8Z9[8e6Z: G d: d;      ZeZ; eddd      e_1         ed,d-d-d.      e_2         e0d0      e_3         G d< d=e4      Z< e<ddd      e<_1         e<dd3d4d,d-d-d.      e<_2         e0d0      e<_3        d> Z= G d? d@e6      Z>e>j                   e0d            xZ@e>_A        e>j                   e0d,d-A             e>_1        e>j                   e0d,d-A            e>_2         e<dBdde>j                  C      ZBy)F)	datedatetimetime	timedeltatimezonetzinfoMINYEARMAXYEARUTC    N)indexc                 "    | |k(  rdS | |kD  rdS dS )Nr       xys     ?/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/_pydatetime.py_cmpr      s    Q1.QA.B.    c                 >    | j                   j                  }|dk(  ry|S )N_pydatetimer   )	__class__
__module__)selfmodule_names     r   _get_class_moduler      s"    ..++Km#r   r   i'  i۹7 )r         r      r   r    r   r   r    r   r    r   r   c                 <    	 | dz  dk(  xr | dz  dk7  xs | dz  dk(  S )N   r   d     r   )years    r   _is_leapr&   1   s-    %!8q=AdSjAo@qAr   c                 <    	 | dz
  }|dz  |dz  z   |dz  z
  |dz  z   S )Nr   m  r"   r#   r$   r   )r%   r   s     r   _days_before_yearr)   5   s2    8qAS51a4<!S& 1c6))r   c                 8    	 |dk(  rt        |       ryt        |   S )N      )r&   _DAYS_IN_MONTHr%   months     r   _days_in_monthr0   :   s     ?zhtn%  r   c                 <    	 t         |   |dkD  xr t        |       z   S Nr+   )_DAYS_BEFORE_MONTHr&   r.   s     r   _days_before_monthr4   A   s"    Ie$	(DhtnEEr   c                 R    	 t        | |      }t        |       t        | |      z   |z   S N)r0   r)   r4   r%   r/   daydims       r   _ymd2ordr:   F   s5    D
u
%Cd#tU+, r   i  e      c                    	 | dz  } t        | t              \  }} |dz  dz   }t        | t              \  }} t        | t              \  }} t        | d      \  }} ||dz  |dz  z   |z   z  }|dk(  s|dk(  r|dz
  ddfS |dk(  xr |d	k7  xs |dk(  }| d
z   dz	  }t        |   |dkD  xr |z   }|| kD  r|dz  }|t
        |   |dk(  xr |z   z  }| |z  } ||| dz   fS )Nr   r$   r(   r#   r"      r         2   r<   r+   )divmod_DI400Y_DI100Y_DI4Yr3   r-   )	nn400r%   n100n4n1leapyearr/   	precedings	            r   _ord2ymdrM   _   s&   F, FAQ GD!#:>D Q GD! 1eEB 1cNEBD3Ja"$$D	Qw$!)Avr2~ Qw2B"H1	HVME"5)UQY-C8DI1}
^E*eqj.EXFF	NA
 !r   )NJanFebMarAprMayJunJulAugSepOctNovDec)NMonTueWedThuFriSatSunc                     t        | ||      dz   dz  }t        | |      |z   }t        j                  | ||||||||f	      S N      )r:   r4   _timestruct_time)	r   mdhhmmssdstflagwdaydnums	            r   _build_struct_timero      sO    Q1!Q&Da#a'DaAr2r4wGHHr   c                     dddddd}|dk(  r|rdnd	}n
|d
k(  r|dz  }	 ||   }|j                  | |||      S # t        $ r t        d      w xY w)Nz{:02d}z{:02d}:{:02d}z{:02d}:{:02d}:{:02d}z{:02d}:{:02d}:{:02d}.{:03d}z{:02d}:{:02d}:{:02d}.{:06d})hoursminutessecondsmillisecondsmicrosecondsautoru   rs   rt     zUnknown timespec value)formatKeyError
ValueError)ri   rj   rk   ustimespecspecsfmts          r   _format_timer      s~    ")55E 6%'>Y	^	#
t*Ho zz"b"b))  31223s	   9 Ac                 8   d}| | j                   dk  rd}|  } nd}t        | t        d            \  }}t        |t        d            \  }}|d||||fz  z  }|s|j                  r2|d	||j                  fz  z  }|j                  r|d
|j                  z  z  }|S )N r   -+r   rq   rr   z%s%02d%s%02dz%s%02d.%06d)daysrB   r   ru   rs   )offsepssignri   rj   rk   s          r   _format_offsetr      s    
A
88a<D$CDYQ/0BIa01B	^tRb111S"**---AWr..Hr   c                    d }d }d }d }g }|j                   }dt        |      }
}	|	|
k  rq||	   }|	dz  }	|dk(  rR|	|
k  rC||	   }|	dz  }	|dk(  r%|dt        | dd      z  }|j                  |       n |dk(  r>|*t        | d      rt	        | j                         d	
      }nd	}|j                  |       n|dk(  rk|	|
k  r||	   }|	dz  }	|dk(  r>|*t        | d      rt	        | j                         d
      }nd	}|j                  |       n |d        ||        ||       nm|dk(  rF|2d	}t        | d      r$| j                         }||j                  dd      }|j                  |       n" |d        ||       n |d       n ||       |	|
k  rqd	j                  |      }t        j                  ||      S )Nr   r   %fz%06dmicrosecondz	utcoffsetr   r   :Ztznamez%%)appendlengetattrhasattrr   r   r   replacejoinre   strftime)objectrx   	timetuplefreplacezreplacecolonzreplaceZreplace	newformatpushirF   chch2r   s                 r   _wrap_strftimer      s   HHMH IDc&kqA
a%AY	Q91uAYQ9'#)GF4A1-F $F$$X.3Y'"6;7'5f6F6F6Hb'QH')H$$X.3Y1u$QiQ#:,4#*6;#?4B6CSCSCU[^4_M46M%,,]; I H I3Y'#%"684 &A }+,99S$+?$$X.IHS	Hg a%h 	"I>>)Y//r   c                 
    | dv S )N
0123456789r   )cs    r   _is_ascii_digitr     s    r   c                 J   t        |       }|dk(  ryd}d}| d   |k(  rL| d   |k(  rC|dk  rt        d      |dkD  r-| d   |k(  r%|dk(  rt        d      |d	kD  rt        | d	         ryy	yy	| d   |k(  r2d}||k  rt        | |         sn|d
z  }||k  r|dk  r|S |dz  dk(  ryyy)Nrd   r   Wr"   r<      zInvalid ISO string	   
   r   r+   r   )r   rz   r   )dtstr	len_dtstrdate_separatorweek_indicatoridxs        r   "_find_isoformat_datetime_separatorr     s    E
IA~ NNQx>!8~%1} !5661}q^!;>$%9::r>oeBi&@   8~%C	/&uSz2q 	/
 Qw
Qw!| r   c                    t        | dd       }| d   dk(  }d|z   }| ||dz    dk(  rp|dz  }t        | ||dz          }|dz  }d}t        |       |kD  r/| ||dz    dk(  |k7  rt        d      ||z  }t        | ||dz          }t        t	        |||            S t        | ||dz          }|dz  }| ||dz    dk(  |k7  rt        d      ||z  }t        | ||dz          }|||gS )Nr   r"   r   r   r   r+   z"Inconsistent use of dash separator)intr   rz   list_isoweek_to_gregorian)r   r%   has_sepposweeknodaynor/   r8   s           r   _parse_isoformat_dater   O  s8    uQqz?DAh#oG
g+CSqS qU3sQw'(qu:c#'"c)g5 !EFF7NCc#'*+E)$>??E#cAg&'q#cAg#%'1ABBw%C!G$%eS!!r   )i i'  rw   r#   r   c                     t        |       }g d}d}t        dd      D ]c  }||z
  dk  rt        d      t        | ||dz          ||<   |dz  }| ||dz    }|dk(  r|dk(  }|r|dk\  r nr|dk7  rt        d|z        ||z  }e ||k  r| |   d	vrt        d
      |dz  }||z
  }|dk\  rd}n|}t        | |||z          |d<   |dk  r|dxx   t        |dz
     z  cc<   ||kD  r*t        t        t        | ||z   d              st        d      |S )N)r   r   r   r   r   r?   r+   zIncomplete time componentr   r   zInvalid time separator: %cz.,zInvalid microsecond componentrc   z%Non-digit values in unparsed fraction)r   rangerz   r   _FRACTION_CORRECTIONallmapr   )	tstrlen_str
time_compsr   comp	next_charr   len_remainderto_parses	            r   _parse_hh_mm_ss_ffr   v  se   $iGJ
Ca cMQ899tCA/
4qSUO	193&GDAIyC'9IEFFw%( W}9D <==1HC#cMM!(S#h, 89JqM!|1!5hqj!AA(OT3x</5J KL !HIIr   c                 b   t        |       }|dk  rt        d      | j                  d      dz   xs* | j                  d      dz   xs | j                  d      dz   }|dkD  r| d |dz
   n| }t        |      }d }||k(  r| d   dk(  rt        j
                  }n|dkD  r| |d  }t        |      d	v rt        d
      t        |      }t        d |D              rt        j
                  }n8| |dz
     dk(  rdnd}t        |d   |d   |d   |d         }	t	        ||	z        }|j                  |       |S )Nr+   zIsoformat time too shortr   r   r   r   r   r   )r   r   r?   zMalformed time zone stringc              3   &   K   | ]	  }|d k(    yw)r   Nr   ).0r   s     r   	<genexpr>z(_parse_isoformat_time.<locals>.<genexpr>  s     (!qAv(s   r?   rq   rr   rs   ru   )	r   rz   findr   r   utcr   r   r   )
r   r   tz_postimestrr   tzitzstrtz_compstzsigntds
             r   _parse_isoformat_timer     sC   $iG{344 iinq LDIIcNQ$6L$))C.1:LF!'!d9F1HoG#G,J
CT"X_ll	!VW u:"9::%e,(x((,,C
+s2RF!hqk#+A;Xa[JB 6B;'Ccr   c                 h   t         | cxk  r	t        k  sn t        d|        d|cxk  rdk  s@n d}|dk(  r't        | dd      dz  }|dk(  s|dk(  rt	        |       rd	}|rt        d
|       d|cxk  rdk  sn t        d| d      |dz
  dz  |dz
  z   }t        |       }||z   }t        |      S )NzYear is out of range: r   5   Tr   rd   r"   r?   FzInvalid week: r   zInvalid weekday: z (range is [1, 7]))r   r	   rz   r:   r&   _isoweek1mondayrM   )r%   weekr8   out_of_rangefirst_weekday
day_offsetday_1ord_days           r   r   r     s    d%g%1$899t=b=2: %T1a014M"}'9'/~$~dV455s;Q;,SE1CDEE (a37+J D!Ej GGr   c                 X    | (t        | t              st        dt        |       z        y y )Nz4tzinfo.tzname() must return None or string, not '%s')
isinstancestr	TypeErrortype)names    r   _check_tznamer     s7    
4 5 #%)$Z0 1 	1 !6r   c                     |y t        |t              st        d| dt        |      d      t        d       |cxk  rt        d      k  sn t	        | d|d      y )Nztzinfo.z'() must return None or timedelta, not ''r   z()=zG, must be strictly between -timedelta(hours=24) and timedelta(hours=24))r   r   r   r   rz   )r   offsets     r   _check_utc_offsetr     se    ~fi(48$v,H I 	IaL=60IaL0( ) 	) 1r   c                 ,   t        |       } t        |      }t        |      }t        | cxk  r	t        k  sn t        dt        t        fz  |       d|cxk  rdk  sn t        d|      t	        | |      }d|cxk  r|k  sn t        d|z  |      | ||fS )Nzyear must be in %d..%dr   r>   zmonth must be in 1..12zday must be in 1..%d)_indexr   r	   rz   r0   r7   s       r   _check_date_fieldsr     s    $<D5ME
+Cd%g%1Wg4FFMM1599
u
%C?s?/#5s;;r   c                 P   t        |       } t        |      }t        |      }t        |      }d| cxk  rdk  sn t        d|       d|cxk  rdk  sn t        d|      d|cxk  rdk  sn t        d|      d|cxk  rdk  sn t        d|      |d	vrt        d
|      | ||||fS )Nr      zhour must be in 0..23;   zminute must be in 0..59zsecond must be in 0..59?B z microsecond must be in 0..999999)r   r   zfold must be either 0 or 1)r   rz   )hourminutesecondr   folds        r   _check_time_fieldsr     s    $<DF^FF^F%K??0$77"2F;;"2F;;%v%;[II65t<<d22r   c                 @    | t        | t              st        d      y y )Nz4tzinfo argument must be None or of a tzinfo subclass)r   r   r   )tzs    r   _check_tzinfo_argr   +  s#    	~jV4NOO 5~r   c                 r    t        dt        |       j                  dt        |      j                  d      )Nzcan't compare 'z' to 'r   )r   r   __name__r   s     r   	_cmperrorr  /  s-    
G$$d1g&6&68 9 9r   c                 v    	 t        | |      \  }}|dz  }|dkD  r||kD  n||k  }|s||k(  r|dz  dk(  r|dz  }|S )Nr+   r   r   )rB   )abqrgreater_than_halfs        r   _divide_and_roundr
  3  sZ     !Q<DAq FA!"QAAEAFq1uz	QHr   c                       e Zd Z	 dZ	 	 d dZd Zd Zd Zed        Z	ed        Z
ed        Zd	 ZeZd
 Zd Zd Zd Zd Zd ZeZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#y)!r   )_days_seconds_microseconds	_hashcodec                    dx}x}	}
||dz  z  }||dz  |dz  z   z  }||dz  z  }t        |t              rJt        j                  |      \  }}t        j                  |dz        \  }}t	        |      }	t	        |      }nd}|}t        |t              r)t        j                  |      \  }}t	        |      }||z  }n|}t        |d      \  }}||z  }|	t	        |      z  }	|d	z  }t        |t              r7t        ||z         }t        |d
      \  }}t        |d      \  }}||z  }|	|z  }	nAt	        |      }t        |d
      \  }}t        |d      \  }}||z  }|	|z  }	t        ||z         }t        |d
      \  }}
|	|z  }	t        |	d      \  }}	||z  }t        |      dkD  rt        d|z        t        j                  |       }||_        |	|_        |
|_        d|_        |S )Nr   rd   <     rw   g     @g        Q     .A@B ɚ;z$timedelta # of days is too large: %dr   )r   float_mathmodfr   rB   roundabsOverflowErrorr   __new__r  r  r  r  )clsr   rs   ru   rt   rr   rq   weeksrh   r   r{   dayfracdaysecondsfracdaysecondswholesecondsfracusdoubler   s                    r   r  ztimedelta.__new__]  s$    A 	a72:d
**T)) dE"!JJt,MGT.3jjI9N.O+NOO$AD	A NA gu%#(::g#6 K'lG>)K )K w0g	T		S\
 $ lE* !89L$*<$A!G\"7G4MD'IALA|,L$*<$A!G\"7G4MD'IALA !89L \73	WG$a	T	 q6I F JKK~~c"
r   c                    g }| j                   r|j                  d| j                   z         | j                  r|j                  d| j                  z         | j                  r|j                  d| j                  z         |s|j                  d       t	        |       d| j
                  j                  ddj                  |      dS )	Nzdays=%dz
seconds=%dzmicroseconds=%d0.(, ))r  r   r  r  r   r   __qualname__r   )r   argss     r   __repr__ztimedelta.__repr__  s    ::KK	DJJ./==KKt}}45KK)D,>,>>?KK/5"nn99"iio/ 	/r   c                     t        | j                  d      \  }}t        |d      \  }}d|||fz  }| j                  rd }d || j                        z  |z   }| j                  r|d| j                  z  z   }|S )Nr  z%d:%02d:%02dc                 2    | t        |       dk7  xr dxs dfS )Nr   r   r   )r  )rF   s    r   pluralz!timedelta.__str__.<locals>.plural  s    #a&A+-#333r   z
%d day%s, r   )rB   r  r  r  )r   rj   rk   ri   r   r0  s         r   __str__ztimedelta.__str__  s|    r*BBBb"b\)::4tzz 22a7AGd0000Ar   c                 b    	 | j                   dz  | j                  z   dz  | j                  z   dz  S Nr  r  )r   rs   ru   r   s    r   total_secondsztimedelta.total_seconds  s:    ,U"T\\1U:!!"%*+ 	+r   c                     	 | j                   S r6   r  r4  s    r   r   ztimedelta.days  s    zzr   c                     	 | j                   S r6   )r  r4  s    r   rs   ztimedelta.seconds  s    }}r   c                     	 | j                   S r6   )r  r4  s    r   ru   ztimedelta.microseconds  s    !!!r   c                     t        |t              rRt        | j                  |j                  z   | j                  |j                  z   | j                  |j                  z         S t
        S r6   r   r   r  r  r  NotImplementedr   others     r   __add__ztimedelta.__add__  X    eY' TZZ%++5!]]U^^;!//%2E2EEG G r   c                     t        |t              rRt        | j                  |j                  z
  | j                  |j                  z
  | j                  |j                  z
        S t
        S r6   r;  r=  s     r   __sub__ztimedelta.__sub__  r@  r   c                 :    t        |t              r|  |z   S t        S r6   )r   r   r<  r=  s     r   __rsub__ztimedelta.__rsub__  s    eY'55= r   c                 ^    t        | j                   | j                   | j                         S r6   )r   r  r  r  r4  s    r   __neg__ztimedelta.__neg__
  s.     $**--,,,. 	.r   c                     | S r6   r   r4  s    r   __pos__ztimedelta.__pos__  s    r   c                 *    | j                   dk  r|  S | S Nr   r7  r4  s    r   __abs__ztimedelta.__abs__  s    ::>5LKr   c                 0   t        |t              r4t        | j                  |z  | j                  |z  | j
                  |z        S t        |t              r=| j                         }|j                         \  }}t        ddt        ||z  |            S t        S rJ  )r   r   r   r  r  r  r  _to_microsecondsas_integer_ratior
  r<  r   r>  usecr  r  s        r   __mul__ztimedelta.__mul__  s    eS! TZZ%/!]]U2!//%79 9 eU#((*D))+DAqQ#4TAXq#ABBr   c                 Z    | j                   dz  | j                  z   dz  | j                  z   S r3  r  r  r  r4  s    r   rM  ztimedelta._to_microseconds)  s/    w'$--77B""# 	$r   c                     t        |t        t        f      st        S | j	                         }t        |t              r||j	                         z  S t        |t              rt        dd||z        S y rJ  )r   r   r   r<  rM  )r   r>  rP  s      r   __floordiv__ztimedelta.__floordiv__-  se    %#y!12!!$$&eY'511333eS!Q45=11 "r   c                 t   t        |t        t        t        f      st        S | j                         }t        |t              r||j                         z  S t        |t              rt        ddt        ||            S t        |t              r-|j                         \  }}t        ddt        ||z  |            S y rJ  )r   r   r  r   r<  rM  r
  rN  rO  s        r   __truediv__ztimedelta.__truediv__6  s    %#ui!89!!$$&eY'%00222eS!Q#4T5#ABBeU#))+DAqQ#4QXq#ABB $r   c                     t        |t              r.| j                         |j                         z  }t        dd|      S t        S rJ  )r   r   rM  r<  )r   r>  r  s      r   __mod__ztimedelta.__mod__B  s=    eY'%%'%*@*@*BBAQ1%%r   c                     t        |t              r:t        | j                         |j                               \  }}|t        dd|      fS t        S rJ  )r   r   rB   rM  r<  )r   r>  r  r  s       r   
__divmod__ztimedelta.__divmod__H  sK    eY'$//10024DAqi1a(((r   c                 V    t        |t              r| j                  |      dk(  S t        S rJ  r   r   r   r<  r=  s     r   __eq__ztimedelta.__eq__Q  &    eY'99U#q((!!r   c                 V    t        |t              r| j                  |      dk  S t        S rJ  r]  r=  s     r   __le__ztimedelta.__le__W  r_  r   c                 V    t        |t              r| j                  |      dk  S t        S rJ  r]  r=  s     r   __lt__ztimedelta.__lt__]  &    eY'99U#a''!!r   c                 V    t        |t              r| j                  |      dk\  S t        S rJ  r]  r=  s     r   __ge__ztimedelta.__ge__c  r_  r   c                 V    t        |t              r| j                  |      dkD  S t        S rJ  r]  r=  s     r   __gt__ztimedelta.__gt__i  rd  r   c                 R    t        | j                         |j                               S r6   )r   	_getstater=  s     r   r   ztimedelta._cmpo  s    DNN$eoo&788r   c                 t    | j                   dk(  rt        | j                               | _         | j                   S Nr   r  hashrj  r4  s    r   __hash__ztimedelta.__hash__s  s+    >>R!$.."23DN~~r   c                 d    | j                   dk7  xs  | j                  dk7  xs | j                  dk7  S rJ  rS  r4  s    r   __bool__ztimedelta.__bool__x  s6    

a ("(""a'	)r   c                 H    | j                   | j                  | j                  fS r6   rS  r4  s    r   rj  ztimedelta._getstate  s    

DMM4+=+=>>r   c                 :    | j                   | j                         fS r6   r   rj  r4  s    r   
__reduce__ztimedelta.__reduce__       011r   N)r   r   r   r   r   r   r   )$r  r   r+  	__slots__r  r-  r1  r5  propertyr   rs   ru   r?  __radd__rB  rD  rF  rH  rK  rQ  __rmul__rM  rU  rW  rY  r[  r^  ra  rc  rf  rh  r   ro  rq  rj  ru  r   r   r   r   r   G  s    & BI56:;cJ/
+     " " H
. H$2
C"""""9
)?2r   r   i6er  r   r   r   )r   rq   rr   rs   ru   )ru   c                   .   e Zd Z	 dZd#dZed        Zed        Zed        Zed        Z	ed        Z
d	 Zd
 Zd Zd Zd ZeZed        Zed        Zed        Zd Zd Zd$dZd Zd Zd Zd Zd Zd Zd Zd ZeZ d Z!d Z"d Z#d Z$d  Z%d! Z&d" Z'y)%r   )_year_month_dayr  Nc                    	 |t        |t        t        f      ryt        |      dk(  rkdt	        |dd       cxk  rdk  rTn nQt        |t              r	 |j                  d      }t        j                  |       }|j                  |       d|_        |S t        |||      \  }}}t        j                  |       }||_        ||_        ||_        d|_        |S # t        $ r t        d      w xY w)	Nr"   r   r+   r?   r>   latin1znFailed to encode latin1 string when unpickling a date object. pickle.load(data, encoding='latin1') is assumed.r   )r   bytesr   r   ordencodeUnicodeEncodeErrorrz   r   r  _date__setstater  r   r|  r}  r~  )r  r%   r/   r8   r   s        r   r  zdate.__new__  s    	 MteS\*s4yA~T!AY%2%$$L;;x0D >>#&DOOD!DNK-dE3?eS~~c"
	! * L$KL LLs   C C,c           	      V    	 t        j                  |      \	  }}}}}}}}	}
 | |||      S r6   )re   	localtime)r  tr   rg   rh   ri   rj   rk   weekdayjdaydsts              r   fromtimestampzdate.fromtimestamp  s4    E27//!2D/1aRWdC1a|r   c                 N    	 t        j                         }| j                  |      S r6   re   r   r  )r  r  s     r   todayz
date.today  s!    ,JJL  ##r   c                 6    	 t        |      \  }}} | |||      S r6   )rM   )r  rF   r   rg   rh   s        r   fromordinalzdate.fromordinal  s&    	
 1+1a1a|r   c                     	 t        |t              st        d      t        |      dvrt	        d|      	  | t        |       S # t        $ r t	        d|      w xY w)N#fromisoformat: argument must be str)rd   r   r   Invalid isoformat string: )r   r   r   r   rz   r   	Exception)r  date_strings     r   fromisoformatzdate.fromisoformat  sv    @+s+ABB{:-9+IJJ	K-k:;; 	K9+IJJ	Ks   A Ac                 $    	  | t        |||       S r6   )r   )r  r%   r   r8   s       r   fromisocalendarzdate.fromisocalendar  s    	B )$c:;;r   c                     	 dt        |       | j                  j                  | j                  | j                  | j
                  fz  S )Nz%s.%s(%d, %d, %d))r   r   r+  r|  r}  r~  r4  s    r   r-  zdate.__repr__  sE    		 #&7&=&*nn&A&A&*jj&*kk&*ii	&1 1 	1r   c                     	 | j                         dz  xs d}dt        |   t        | j                     | j                  | j
                  fz  S )Nrd   z%s %s %2d 00:00:00 %04d)	toordinal	_DAYNAMES_MONTHNAMESr}  r~  r|  r   r  s     r   ctimez
date.ctime  sN    &.."Q&+!(g$IItzz,# # 	#r   c                 :    	 t        | || j                               S r6   )r   r   )r   rx   s     r   r   zdate.strftime  s    	
 dFDNN,<==r   c                     t        |t              s!t        dt        |      j                  z        t        |      dk7  r| j                  |      S t        |       S Nzmust be str, not %sr   r   r   r   r   r  r   r   r   r~   s     r   
__format__zdate.__format__  K    #s#1DI4F4FFGGs8q===%%4yr   c                 P    	 d| j                   | j                  | j                  fz  S )Nz%04d-%02d-%02d)r|  r}  r~  r4  s    r   	isoformatzdate.isoformat$  s'    	  4::t{{DII"FFFr   c                     	 | j                   S r6   )r|  r4  s    r   r%   z	date.year2  s    zzr   c                     	 | j                   S r6   )r}  r4  s    r   r/   z
date.month7  s    {{r   c                     	 | j                   S r6   )r~  r4  s    r   r8   zdate.day<  s    yyr   c           	      b    	 t        | j                  | j                  | j                  dddd      S )Nr   r   )ro   r|  r}  r~  r4  s    r   r   zdate.timetupleD  s-    C!$**dkk499"#Q2/ 	/r   c                 Z    	 t        | j                  | j                  | j                        S r6   )r:   r|  r}  r~  r4  s    r   r  zdate.toordinalI  s$    	
 

DKK;;r   c                 ~    	 || j                   }|| j                  }|| j                  } t        |       |||      S r6   )r|  r}  r~  r   )r   r%   r/   r8   s       r   r   zdate.replaceQ  sD    I<::D=KKE;))CtDz$s++r   c                 V    t        |t              r| j                  |      dk(  S t        S rJ  r   r   r   r<  r=  s     r   r^  zdate.__eq__]  &    eT"99U#q((r   c                 V    t        |t              r| j                  |      dk  S t        S rJ  r  r=  s     r   ra  zdate.__le__b  r  r   c                 V    t        |t              r| j                  |      dk  S t        S rJ  r  r=  s     r   rc  zdate.__lt__g  &    eT"99U#a''r   c                 V    t        |t              r| j                  |      dk\  S t        S rJ  r  r=  s     r   rf  zdate.__ge__l  r  r   c                 V    t        |t              r| j                  |      dkD  S t        S rJ  r  r=  s     r   rh  zdate.__gt__q  r  r   c                     | j                   | j                  | j                  }}}|j                   |j                  |j                  }}}t        |||f|||f      S r6   )r|  r}  r~  r   )r   r>  r   rg   rh   y2m2d2s           r   r   z	date._cmpv  sM    **dkk499a1[[%,,

BQ1IB|,,r   c                 v    	 | j                   dk(  rt        | j                               | _         | j                   S rl  rm  r4  s    r   ro  zdate.__hash__|  s.    >>R!$.."23DN~~r   c                     	 t        |t              r^| j                         |j                  z   }d|cxk  r	t        k  r'n t        d      t        |       j                  |      S t        d      t        S )Nr   result out of range)	r   r   r  r   _MAXORDINALr   r  r  r<  )r   r>  os      r   r?  zdate.__add__  sf    $eY' 5::-A1## 566 Dz--a00 566r   c                     	 t        |t              r| t        |j                         z   S t        |t              r.| j	                         }|j	                         }t        ||z
        S t
        S r6   )r   r   r   r   r  r<  )r   r>  days1days2s       r   rB  zdate.__sub__  s\    <eY')UZZK000eT"NN$EOO%EUU]++r   c                 0    	 | j                         dz   dz  S rb   r  r4  s    r   r  zdate.weekday  s    D 1$))r   c                 2    	 | j                         dz  xs dS )Nrd   r  r4  s    r   
isoweekdayzdate.isoweekday  s    D~~!#(q(r   c                 \   	 | j                   }t        |      }t        | j                   | j                  | j                        }t        ||z
  d      \  }}|dk  r#|dz  }t        |      }t        ||z
  d      \  }}n|dk\  r|t        |dz         k\  r|dz  }d}t        ||dz   |dz         S )Nrd   r   r   4   )r|  r   r:   r}  r~  rB   _IsoCalendarDate)r   r%   week1mondayr  r   r8   s         r   isocalendarzdate.isocalendar  s    	 zz%d+T[[$))<5;.2	c!8AID)$/Ku{2A6ID#RZQ//	d1fc!e44r   c                 |    t        | j                  d      \  }}t        ||| j                  | j                  g      fS N   )rB   r|  r  r}  r~  )r   yhiylos      r   rj  zdate._getstate  s5    $**c*Sc3TYY7899r   c                 @    |\  }}| _         | _        |dz  |z   | _        y r  )r}  r~  r|  )r   stringr  r  s       r   
__setstatezdate.__setstate  s#    +1(S$+ty3Y_
r   c                 :    | j                   | j                         fS r6   rt  r4  s    r   ru  zdate.__reduce__  rv  r   )NN)NNN)(r  r   r+  rw  r  classmethodr  r  r  r  r  r-  r  r   r  r  r1  rx  r%   r/   r8   r   r  r   r^  ra  rc  rf  rh  r   ro  r?  ry  rB  r  r  r  rj  r  ru  r   r   r   r   r     s8   6 7ID  
 $ $
   K K < <1,#>	G G      /
<,




- H*)
5<:%2r   r   r>   r   )r   c                   0    e Zd Z	 dZd Zd Zd Zd Zd Zy)r   r   c                     	 t        d      )Nz&tzinfo subclass must override tzname()NotImplementedErrorr   dts     r   r   ztzinfo.tzname  s    /!"JKKr   c                     	 t        d      )Nz)tzinfo subclass must override utcoffset()r  r  s     r   r   ztzinfo.utcoffset  s    S!"MNNr   c                     	 t        d      )Nz#tzinfo subclass must override dst()r  r  s     r   r  z
tzinfo.dst  s    	
 ""GHHr   c                 <   	 t        |t              st        d      |j                  | urt	        d      |j                         }|t	        d      |j                         }|t	        d      ||z
  }|r"||z  }|j                         }|t	        d      ||z   S )Nz&fromutc() requires a datetime argumentzdt.tzinfo is not selfz0fromutc() requires a non-None utcoffset() resultz*fromutc() requires a non-None dst() resultz;fromutc(): dt.dst gave inconsistent results; cannot convert)r   r   r   r   rz   r   r  )r   r  dtoffdtdstdeltas        r   fromutcztzinfo.fromutc  s    4"h'DEE99D 455= & ' '
 =IJJ%KBFFHE}  "; < <Ezr   c                 n    t        | dd       }|r |       }nd}| j                  || j                         fS )N__getinitargs__r   )r   r   __getstate__)r   getinitargsr,  s      r   ru  ztzinfo.__reduce__  s:    d$5t<=DDd&7&7&9::r   N)	r  r   r+  rw  r   r   r  r  ru  r   r   r   r   r     s*     ILOI:;r   r   c                   Z     e Zd Z fdZed        Zed        Zed        Zd Zd Z	 xZ
S )IsoCalendarDatec                *    t         |   | |||f      S r6   )superr  )r  r%   r   r  r   s       r   r  zIsoCalendarDate.__new__  s    wsT4$9::r   c                     | d   S rJ  r   r4  s    r   r%   zIsoCalendarDate.year      Awr   c                     | d   S )Nr   r   r4  s    r   r   zIsoCalendarDate.week  r  r   c                     | d   S r2   r   r4  s    r   r  zIsoCalendarDate.weekday  r  r   c                 &    t         t        |       ffS r6   )tupler4  s    r   ru  zIsoCalendarDate.__reduce__"  s     d~&&r   c                 X    | j                   j                   d| d    d| d    d| d    dS )Nz(year=r   z, week=r   z
, weekday=r+   r*  )r   r  r4  s    r   r-  zIsoCalendarDate.__repr__'  s?    >>**+a	a	DG9AG 	Hr   )r  r   r+  r  rx  r%   r   r  ru  r-  __classcell__)r   s   @r   r  r    sO    ;      '
Hr   r  c                      e Zd Z	 dZd!dddZed        Zed        Zed        Zed	        Z	ed
        Z
ed        Zd Zd Zd Zd Zd Zd"dZd Zd Zd Zd#dZeZed        Zd Zd Zd Zd Zd Z	 	 d$dddZd%dZd Z d Z!d  Z"y)&r   )_hour_minute_second_microsecond_tzinfor  _foldr   Nr   c                    	 t        |t        t        f      rxt        |      dk(  rjt	        |dd       dz  dk  rVt        |t              r	 |j                  d      }t        j                  |       }|j                  ||xs d        d|_        |S t        |||||      \  }}}}}t        |       t        j                  |       }||_        ||_        ||_        ||_        ||_        d|_        ||_        |S # t        $ r t        d      w xY w)	Nrc   r   r      r@   r  znFailed to encode latin1 string when unpickling a time object. pickle.load(data, encoding='latin1') is assumed.r   )r   r  r   r   r  r  r  rz   r   r  _time__setstater  r   r   r  r  r  r  r  r  )r  r   r   r   r   r   r   r   s           r   r  ztime.__new__I  s   	 teS\*s4yA~Qq	N4"$$$L;;x0D >>#&DOOD&.D1DNK2D&&+t35/ffk4&!~~c"
'
+ * L$KL LLs   C8 8Dc                     	 | j                   S r6   r  r4  s    r   r   z	time.hourq      zzr   c                     	 | j                   S r6   r  r4  s    r   r   ztime.minutev      ||r   c                     	 | j                   S r6   r  r4  s    r   r   ztime.second{  r  r   c                     	 | j                   S r6   r  r4  s    r   r   ztime.microsecond      $   r   c                     	 | j                   S r6   r  r4  s    r   r   ztime.tzinfo      "||r   c                     | j                   S r6   r  r4  s    r   r   z	time.fold      zzr   c                 Z    t        |t              r| j                  |d      dk(  S t        S )NTallow_mixedr   r   r   r   r<  r=  s     r   r^  ztime.__eq__  s*    eT"99U95::!!r   c                 V    t        |t              r| j                  |      dk  S t        S rJ  r  r=  s     r   ra  ztime.__le__  &    eT"99U#q((!!r   c                 V    t        |t              r| j                  |      dk  S t        S rJ  r  r=  s     r   rc  ztime.__lt__  &    eT"99U#a''!!r   c                 V    t        |t              r| j                  |      dk\  S t        S rJ  r  r=  s     r   rf  ztime.__ge__  r  r   c                 V    t        |t              r| j                  |      dkD  S t        S rJ  r  r=  s     r   rh  ztime.__gt__  r  r   c                    | j                   }|j                   }d x}}||u rd}n%| j                         }|j                         }||k(  }|rdt        | j                  | j                  | j
                  | j                  f|j                  |j                  |j
                  |j                  f      S |||ryt        d      | j                  dz  | j                  z   |t        d      z  z
  }|j                  dz  |j                  z   |t        d      z  z
  }	t        || j
                  | j                  f|	|j
                  |j                  f      S )NTr+   z$cannot compare naive and aware timesr  r   r   )	r  r   r   r  r  r  r  r   r   )
r   r>  r  mytzottzmyoffotoffbase_comparemyhhmmothhmms
             r   r   z	time._cmp  s:   ||}}4<LNN$EOO%E E>LT\\4<<**,emmU]]++-. . =EM FGGb4<</%19M2MMr!EMM1E9Q;O4OOVT\\4+<+<=U]]E,>,>?A 	Ar   c                 t   	 | j                   dk(  r| j                  r| j                  d      }n| }|j                         }|s-t	        |j                         d         | _         | j                   S t        t        | j                  | j                        |z
  t        d            \  }}|t        d      z  }d|cxk  rdk  r?n n<t	        t        ||| j                  | j                              | _         | j                   S t	        ||| j                  | j                  f      | _         | j                   S )	Nr   r   r  rq   rr   r   r   r   r@   )r  r   r   r   rn  rj  rB   r   r   r   r   r   r   )r   r  tzoffhrg   s        r   ro  ztime.__hash__  s   >>RyyLLaL(KKME!%akkmA&6!7 ~~ idiiMPUU'a021 i**;B;%)$q!T[[$BRBR*S%TDN ~~ &*1ad>N>N*O%PDN~~r   c                 :    	 | j                         }t        |      S r6   )r   r   )r   r   s     r   _tzstrztime._tzstr  s    Knnc""r   c                    	 | j                   dk7  rd| j                  | j                   fz  }n!| j                  dk7  rd| j                  z  }nd}dt        |       | j                  j                  | j
                  | j                  |fz  }| j                  |d d d| j                  z  z   dz   }| j                  r|d d d	z   }|S )
Nr   z, %d, %dz, %dr   z%s.%s(%d, %d%s)r   , tzinfo=%rr*  	, fold=1))	r  r  r   r   r+  r  r  r  r  r   r   s     r   r-  ztime.__repr__  s    3!dllD,=,=>>A\\Q%AA 1$ 7 $ ; ; $

DLL! = = <<##255;A::#2$Ar   c                     	 t        | j                  | j                  | j                  | j                  |      }| j                         }|r||z  }|S r6   )r   r  r  r  r  r'  )r   r|   r   r   s       r   r  ztime.isoformat  sL    	 T\\4<<++X7[[]GAr   c                     	 t        |t              st        d      |j                  d      }	  | t	        |       S # t
        $ r t        d|      w xY w)Nr  Tr  )r   r   r   removeprefixr   r  rz   )r  time_strings     r   r  ztime.fromisoformat  sh    L+s+ABB
 "..s3	K-k:;; 	K9+IJJ	Ks	   = Ac           	      p    	 ddd| j                   | j                  | j                  dddf	}t        | ||      S )Nil  r   r   r   )r  r  r  r   )r   rx   r   s      r   r   ztime.strftime  sB    	
 1aZZt||2	 dFI66r   c                     t        |t              s!t        dt        |      j                  z        t        |      dk7  r| j                  |      S t        |       S r  r  r  s     r   r  ztime.__format__)  r  r   c                 p    	 | j                   y | j                   j                  d       }t        d|       |S Nr   r  r   r   r   r   s     r   r   ztime.utcoffset2  s7    	$<<''-+v.r   c                 n    	 | j                   y | j                   j                  d       }t        |       |S r6   r  r   r   r   r   s     r   r   ztime.tzname;  7    	 <<||""4(dr   c                 p    	 | j                   y | j                   j                  d       }t        d|       |S Nr  r  r  r   r6  s     r   r  ztime.dstH  9    	 <<!!$'%(r   c                    	 || j                   }|| j                  }|| j                  }|| j                  }|du r| j                  }|| j
                  } t        |       ||||||      S NTr  )r   r   r   r   r   r  r   )r   r   r   r   r   r   r   s          r   r   ztime.replaceW  sy    I<99D>[[F>[[F**KT>[[F<::DtDz$V$OOr   c                    t        | j                  d      \  }}t        |d      \  }}| j                  }| j                  r
|dkD  r|dz  }t	        || j
                  | j                  |||g      }| j                  |fS || j                  fS Nr  r?      )rB   r  r  r  r  r  r  r  )r   protocolus2us3us1r%  	basestates          r   rj  ztime._getstatej  s    $++S1S#s#SJJ::(Q,HA1dllDLLS* +	<<<t||,,r   c                     |t        |t              st        d      |\  }| _        | _        }}}|dkD  rd| _        |dz
  | _        nd| _        || _        |dz  |z  dz  |z  | _        || _        y )Nbad tzinfo state argr  r   rC  r   r   )	r   _tzinfo_classr   r  r  r  r  r  r  )r   r  r   r%  rG  rE  rF  s          r   r  ztime.__setstatew  s|    j&G2337=44<sCs7DJSDJDJDJ"ax3.14;r   c                 <    | j                   | j                  |      fS r6   rt  r   rD  s     r   __reduce_ex__ztime.__reduce_ex__      x 899r   c                 $    | j                  d      S r2   rN  r4  s    r   ru  ztime.__reduce__      !!!$$r   r   r   r   r   NFrv   )NNNNTr?   )#r  r   r+  rw  r  rx  r   r   r   r   r   r   r^  ra  rc  rf  rh  r   ro  r'  r-  r  r1  r  r  r   r  r   r   r  r   rj  r  rN  ru  r   r   r   r   r   0  s)   , _I%UV %P       ! !    """""A8.#
&" GK K	7 HLP%)P&-:%r   r   c                      e Zd Z	 ej                  ej                  z   Z	 	 d1dddZed        Zed        Z	ed        Z
ed        Zed	        Zed
        Zed        Zed2d       Zed        Zed2d       Zed        Zed3d       Zed        Zd Zd Zd Zd Zd Zd Zd Z	 	 d4dddZd Zd2dZd Zd5dZd Z d Z!ed         Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d6d)Z+d* Z,e,Z-d+ Z.d, Z/d7d-Z0d. Z1d/ Z2d0 Z3y)8r   Nr   r  c	                j   t        |t        t        f      rxt        |      dk(  rjdt	        |dd       dz  cxk  rdk  rPn nMt        |t              r	 t        |d      }t        j                  |       }
|
j                  ||       d	|
_
        |
S t        |||      \  }}}t        |||||	      \  }}}}}	t        |       t        j                  |       }
||
_        ||
_        ||
_        ||
_        ||
_        ||
_        ||
_        ||
_        d	|
_
        |	|
_        |
S # t
        $ r t        d      w xY w)
Nr   r   r+   r?   r  r>   r  zrFailed to encode latin1 string when unpickling a datetime object. pickle.load(data, encoding='latin1') is assumed.r   )r   r  r   r   r  r  rz   r   r  _datetime__setstater  r   r   r   r|  r}  r~  r  r  r  r  r  r  )r  r%   r/   r8   r   r   r   r   r   r   r   s              r   r  zdatetime.__new__  s;   teS\*s4yBT!AY$**$$L x0D >>#&DOOD%(DNK-dE3?eS2D&&+t35/ffk4&!~~c"
	
'
3 * L$KL LLs   D D2c                     	 | j                   S r6   r   r4  s    r   r   zdatetime.hour  r  r   c                     	 | j                   S r6   r  r4  s    r   r   zdatetime.minute  r  r   c                     	 | j                   S r6   r  r4  s    r   r   zdatetime.second  r  r   c                     	 | j                   S r6   r  r4  s    r   r   zdatetime.microsecond  r	  r   c                     	 | j                   S r6   r  r4  s    r   r   zdatetime.tzinfo  r  r   c                     | j                   S r6   r  r4  s    r   r   zdatetime.fold  r  r   c           
         	 t        j                  |      \  }}t        |dz        }|dk\  r|dz  }|dz  }n|dk  r
|dz  }|dz  }|rt        j                  nt        j
                  } ||      \	  }}}	}
}}}}}t        |d      } | |||	|
||||      }||sd}||k  r!t        j                  j                  d      r|S  |||z
        d d \  }}}	}
}} | |||	|
||||      }||z
  t        d|      z
  }|j                  dk  r= |||t        dd      z  z         d d \  }}}	}
}} | |||	|
||||      }||k(  rd|_        |S ||j                  |      }|S )	Nr  r  r   r   r   r  winrc   )r  r  r  re   gmtimer  minsysplatform
startswithr   r   r  r  )r  r  r   r   fracr{   	converterr   rg   rh   ri   rj   rk   r  r  r  resultmax_fold_secondsprobe1transprobe2s                        r   _fromtimestampzdatetime._fromtimestamp  s   	 **Q-a4#:=FA'MB!VFA'MB$'ELLU__	2;A,/1aRWdCR[Q1b"b"b1:c  ) ##(?(?(F"+A0@,@"A"1"EAq!RRAq"b"b"5FVOi3C&DDEzzA~&/EYq!_4L0L&Mbq&Q#1aRQ1b"b"b9V##$FL  ^ZZ'Fr   c                 D    	 t        |       | j                  ||d u|      S r6   )r   rn  )r  	timestampr   s      r   r  zdatetime.fromtimestamp  s*    	 	"!!)Rt^R@@r   c                 b    	 dd l }|j                  dt        d       | j                  |dd       S )Nr   zdatetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(t, datetime.UTC).r+   
stacklevelT)warningswarnDeprecationWarningrn  )r  r  rt  s      r   utcfromtimestampzdatetime.utcfromtimestamp  s>    D J )!" 	 	$ !!!T400r   c                 P    	 t        j                         }| j                  ||      S r6   r  )r  r   r  s      r   nowzdatetime.now  s#    LJJL  B''r   c                     	 dd l }|j                  dt        d       t        j                         }| j                  |dd       S )Nr   zdatetime.utcnow() is deprecated and scheduled for removal in a future version. Instead, Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).r+   rr  T)rt  ru  rv  re   r   rn  )r  rt  r  s      r   utcnowzdatetime.utcnow"  sH    4 = )!" 	 	$ JJL!!!T400r   c                 R   	 t        |t              st        d      t        |t              st        d      |du r|j                  } | |j
                  |j                  |j                  |j                  |j                  |j                  |j                  ||j                  	      S )Nz%date argument must be a date instancez%time argument must be a time instanceTr  )r   _date_classr   _time_classr   r%   r/   r8   r   r   r   r   r   )r  r   r   r   s       r   combinezdatetime.combine/  s    B$,CDD$,CDDT>[[F499djj$((99dkk4;;8H8H		+ 	+r   c                 `   	 t        |t              st        d      t        |      dk  rt	        d|      	 t        |      }|d| }||dz   d  }t        |      }|r	 t        |      }ng d} | ||z    S # t        $ r t	        d|      d w xY w# t        $ r t	        d|      d w xY w)Nr  rd   r  r   r   rS  )r   r   r   r   rz   r   r   r   )r  r  separator_locationdstrr   date_componentstime_componentss          r   r  zdatetime.fromisoformat<  s    P+s+ABB{a9+IJJ	H!CK!Pq!34D 21 467D3D9O
 L"7"=
 1O_688  	H,[O<>CGH	H  L 0@BGKLLs   #A8  B 8BB-c           	          	 | j                         }|d}n|rd}nd}t        | j                  | j                  | j                  | j
                  | j                  | j                  |      S )Nr   r   r   )r  ro   r%   r/   r8   r   r   r   )r   r  s     r   r   zdatetime.timetuple[  s\    Chhj;CCC!$))TZZ"&))T[[$++"%' 	'r   c                 X  
 	 t        ddd      
d}| 
z
  t        dd      z  }
fd} ||      |z
  }||z
  } ||      }||k(  r'|| |f| j                     z   } ||      |z
  }||k(  r|S ||z
  }||z
  } ||      }	|	|k(  r|S ||k(  r|S t        t        f| j                     ||      S )N  r   r  r   c                     t        j                  |       d d \  }}}}}}t        ||||||      z
  t        dd      z  S )Nrc   r   r   )re   r  r   r   )ur   rg   rh   ri   rj   rk   epochs          r   localzdatetime._mktime.<locals>.localm  sJ    "'//!"4Ra"8Aq!RRQ1b"b1E9i1oMMr   )r   r   r   maxrc  )r   rj  r  r  r  u1t1u2r  t2r  s             @r   _mktimezdatetime._mktimeh  s    -q!$$E\i1o-	N
 !HqLU2Y7 ((*:;DIIFFBb	BAAv	RAU2Y7I7I Sz$))$R,,r   c                     	 | j                   "| j                         }|| j                  dz  z   S | t        z
  j	                         S )Nr  )r  r  r   _EPOCHr5  r+  s     r   rp  zdatetime.timestamp  sC    )<<At''#---6M0022r   c           	          	 | j                         }|r| |z  } | j                  | j                  | j                  }}}| j                  | j
                  | j                  }}}t        ||||||d      S rJ  )r   r%   r/   r8   r   r   r   ro   )r   r   r   rg   rh   ri   rj   rk   s           r   utctimetuplezdatetime.utctimetuple  sf    >!FND))TZZa1YYT[[B!!Q2r2q99r   c                 Z    	 t        | j                  | j                  | j                        S r6   )r   r|  r}  r~  r4  s    r   r   zdatetime.date  s     DJJTYY77r   c                     	 t        | j                  | j                  | j                  | j                  | j
                        S Nr  )r   r   r   r   r   r   r4  s    r   r   zdatetime.time  s1    1DIIt{{DKK9I9IPTPYPYZZr   c                     	 t        | j                  | j                  | j                  | j                  | j
                  | j                        S r  )r   r   r   r   r   r  r   r4  s    r   timetzzdatetime.timetz  s9    1DIIt{{DKK9I9ILLtyy2 	2r   c	                8   	 || j                   }|| j                  }|| j                  }|| j                  }|| j                  }|| j
                  }|| j                  }|du r| j                  }|	| j                  }	 t        |       |||||||||		      S r@  )
r%   r/   r8   r   r   r   r   r   r   r   )
r   r%   r/   r8   r   r   r   r   r   r   s
             r   r   zdatetime.replace  s     	N<99D=JJE;((C<99D>[[F>[[F**KT>[[F<99DtDz$sD&&%vD: 	:r   c                    | j                   W| j                         }| j                  d| j                  z
        j                         }||k7  r+||kD  | j                  k(  r|}n| t        z
  t        d      z  }t        j                  |      }t        |d d  }|j                  }|j                  }t        t        |      |      S )Nr   r  )rs   rc   )r   r  r   r   r  r   re   r  r   	tm_gmtofftm_zoner   )r   tsts2localtmr  gmtoffzones          r   _local_timezonezdatetime._local_timezone  s    ;;B,,AdiiK,088:Cby"H*B-Ia$88B//"%'"1+&""	&1488r   c                    || j                         }nt        |t              st        d      | j                  }|"| j                         }|j	                  |       }nD|j	                  |       }|1| j                  d       j                         }|j	                  |       }||u r| S | |z
  j                  |      }|j                  |      S )Nz)tz argument must be an instance of tzinfor   )r  r   r   r   r   r   r  )r   r   r  myoffsetr   s        r   
astimezonezdatetime.astimezone  s    :%%'BB'GHH{{<'')D~~d+H~~d+H||4|0@@B>>$/:K h''r'2 zz#r   c                     	 | j                         dz  xs d}dt        |   t        | j                     | j                  | j
                  | j                  | j                  | j                  fz  S )Nrd   z%s %s %2d %02d:%02d:%02d %04d)	r  r  r  r}  r~  r  r  r  r|  r  s     r   r  zdatetime.ctime  sb    &.."Q&+!.g$IIJJdllJJ2  	r   c                 
   	 d| j                   | j                  | j                  |fz  t        | j                  | j
                  | j                  | j                  |      z   }| j                         }t        |      }|r||z  }|S )Nz%04d-%02d-%02d%c)
r|  r}  r~  r   r  r  r  r  r   r   )r   r   r|   r   r   r   s         r   r  zdatetime.isoformat  s{    	  4::t{{DIIs"KK$**dllDLL++X77 nnC GAr   c           
         	 | j                   | j                  | j                  | j                  | j                  | j
                  | j                  g}|d   dk(  r|d= |d   dk(  r|d= t        |       d| j                  j                  ddj                  t        t        |            d}| j                  |d d d| j                  z  z   dz   }| j                  r|d d dz   }|S )	Nr   r   r'  r(  r)  r*  r)  r*  )r|  r}  r~  r  r  r  r  r   r   r+  r   r   r   r  r  )r   Lr   s      r   r-  zdatetime.__repr__  s    3ZZdiiZZt||T5F5FHR5A:"R5A:",T2>>6699Sa[13 <<##255;A::#2$Ar   c                 (    	 | j                  d      S )N r   )r  r4  s    r   r1  zdatetime.__str__&  s    '~~#~&&r   c                 2    	 dd l }|j                  | ||      S rJ  )	_strptime_strptime_datetime)r  r  rx   r  s       r   strptimezdatetime.strptime*  s    U++CfEEr   c                 p    	 | j                   y | j                   j                  |       }t        d|       |S r4  r5  r6  s     r   r   zdatetime.utcoffset0  s7    	<<''-+v.r   c                 n    	 | j                   y | j                   j                  |       }t        |       |S r6   r8  r9  s     r   r   zdatetime.tzname9  r:  r   c                 p    	 | j                   y | j                   j                  |       }t        d|       |S r<  r=  r6  s     r   r  zdatetime.dstF  r>  r   c                 |    t        |t              r| j                  |d      dk(  S t        |t              st        S y)NTr  r   F)r   r   r   r   r<  r=  s     r   r^  zdatetime.__eq__W  s7    eX&99U95::E4(!!r   c                     t        |t              r| j                  |      dk  S t        |t              st        S t        | |       y rJ  r   r   r   r   r<  r  r=  s     r   ra  zdatetime.__le___  :    eX&99U#q((E4(!!dE"r   c                     t        |t              r| j                  |      dk  S t        |t              st        S t        | |       y rJ  r  r=  s     r   rc  zdatetime.__lt__g  :    eX&99U#a''E4(!!dE"r   c                     t        |t              r| j                  |      dk\  S t        |t              st        S t        | |       y rJ  r  r=  s     r   rf  zdatetime.__ge__o  r  r   c                     t        |t              r| j                  |      dkD  S t        |t              st        S t        | |       y rJ  r  r=  s     r   rh  zdatetime.__gt__w  r  r   c           
         | j                   }|j                   }d x}}||u rd}n| j                         }|j                         }|r^|| j                  | j                         j                         k7  ry||j                  |j                         j                         k7  ry||k(  }|rt	        | j
                  | j                  | j                  | j                  | j                  | j                  | j                  f|j
                  |j                  |j                  |j                  |j                  |j                  |j                  f      S |||ryt        d      | |z
  }|j                  dk  ry|xr dxs dS )NTr  r+   z(cannot compare naive and aware datetimesr   r   r   )r  r   r   r   r   r|  r}  r~  r  r  r  r  r   r   )	r   r>  r  r  r  r  r  r  diffs	            r   r   zdatetime._cmp  sS   ||}}4<LNN$EOO%EDLL$))mL<FFHHEMM5::~M>HHJJ E>LT[[$))T\\4<<**, ellEJJemmU]]++-. . =EM JKKe|99q=zQr   c           
      ,   	 t        |t              st        S t        | j                         | j                  | j
                  | j                  | j                        }||z  }t        |j                  d      \  }}t        |d      \  }}d|j                  cxk  r	t        k  rgn t'        d      t        |       j                  t        j                  |j                        t!        ||||j"                  | j$                              S t'        d      )Nr   r  r  r   r  r  )r   r   r<  r  r  r  r  r  rB   rs   r   r  r   r  r   r  r   ru   r  r  )r   r>  r  r   remr   r   s          r   r?  zdatetime.__add__  s    )%+!!$..* $

"&,,"&,,'+'8'8	:
 	5==$/	cRuzz([(
 122	 :%%d&6&6uzz&B&*4+0+=+=26,,'@A A 122r   c                 P   	 t        |t              st        |t              r| | z   S t        S | j	                         }|j	                         }| j
                  | j                  dz  z   | j                  dz  z   }|j
                  |j                  dz  z   |j                  dz  z   }t        ||z
  ||z
  | j                  |j                  z
        }| j                  |j                  u r|S | j                         }|j                         }||k(  r|S ||t        d      ||z   |z
  S )Nr  r  z(cannot mix naive and timezone-aware time)r   r   r   r<  r  r  r  r  r  r  r   r   )	r   r>  r  r  secs1secs2baser  r  s	            r   rB  zdatetime.__sub__  s   @%*%+uf}$!! !t||b004::3DD 22U[[45GG**U-?-??A <<5==(K !E>K=EMFGGe|e##r   c                    | j                   dk(  r| j                  r| j                  d      }n| }|j                         }|-t	        |j                         d         | _         | j                   S t        | j                  | j                  | j                        }| j                  dz  | j                  dz  z   | j                  z   }t	        t        ||| j                        |z
        | _         | j                   S )Nr   r   r  r  r  )r  r   r   r   rn  rj  r:   r%   r/   r8   r   r   r   r   r   )r   r  r$  r   rs   s        r   ro  zdatetime.__hash__  s    >>RyyLLaL(KKME}!%akkmA&6!7
 ~~  		4::txx@))d*T[[2-==K!%igt?O?O&PSX&X!Y~~r   c                 |   t        | j                  d      \  }}t        | j                  d      \  }}t        |d      \  }}| j                  }| j                  r
|dkD  r|dz  }t        |||| j                  | j                  | j                  | j                  |||g
      }| j                  |fS || j                  fS rB  )rB   r|  r  r}  r  r  r~  r  r  r  r  )	r   rD  r  r  rE  rF  rG  rg   rH  s	            r   rj  zdatetime._getstate  s    $**c*S$++S1S#s#SKK::(Q,HA3Q		::t||T\\S* +	 <<<t||,,r   c           
         |t        |t              st        d      |\
  }}}| _        | _        | _        | _        }}}|dkD  rd| _        |dz
  | _        nd| _        || _        |dz  |z   | _	        |dz  |z  dz  |z  | _
        || _        y )NrJ  r  r   rC  r   r  r   )r   rK  r   r~  r  r  r  r  r}  r|  r  r  )	r   r  r   r  r  rg   rG  rE  rF  s	            r   r  zdatetime.__setstate  s    j&G2336<	4c1di	t|S#ss7DJc'DKDJDK3Y_
"ax3.14;r   c                 <    | j                   | j                  |      fS r6   rt  rM  s     r   rN  zdatetime.__reduce_ex__ 	  rO  r   c                 $    | j                  d      S r2   rQ  r4  s    r   ru  zdatetime.__reduce__	  rR  r   )NNr   r   r   r   Nr6   )T)NNNNNNNT)r.  rv   rT  rV  )4r  r   r+  r   rw  r   r  rx  r   r   r   r   r   r   r  rn  r  rw  ry  r{  r  r  r   r  rp  r  r  r   r  r  r  r  r-  r1  r  r   r   r  r^  ra  rc  rf  rh  r   r?  ry  rB  ro  rj  rY  rN  ru  r   r   r   r   r     s   
 /IJK&*!45!H       ! !     ) )V A A 	1 	1 ( (
 
1 
1 
+ 
+ 9 9<' -F3:8[2
 =ACG::29"66&' F F
"#####J3& H$0"-:%r   r   c                 R    d}t        | dd      }|dz   dz  }||z
  }||kD  r|dz  }|S )Nr?   r   rc   rd   )r:   )r%   THURSDAYfirstdayfirstweekdayr  s        r   r   r   	  sG     Ha#HqLA%L\)Khqr   c                       e Zd ZdZ e       ZefdZedd       Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Z edd      Ze Zed        Zy)r   )_offset_namec                 <   t        |t              st        d      || j                  u r|s| j                  S d }nt        |t
              st        d      | j                  |cxk  r| j                  k  st        d       t        d      | j                  ||      S )Nzoffset must be a timedeltazname must be a stringzYoffset must be a timedelta strictly between -timedelta(hours=24) and timedelta(hours=24).)
r   r   r   _Omittedr   r   
_minoffset
_maxoffsetrz   _create)r  r   r   s      r   r  ztimezone.__new__	  s    &),8993<<wwDD#&344~~93>>9 4 5 5 : 4 5 5 {{64((r   Nc                 L    t         j                  |       }||_        ||_        |S r6   )r   r  r  r  )r  r   r   r   s       r   r  ztimezone._create,	  s#    ~~c"
r   c                 f    	 | j                   | j                  fS | j                  | j                   fS r6   )r  r  r4  s    r   r  ztimezone.__getinitargs__3	  s.    ::LL?"djj))r   c                 `    t        |t              r| j                  |j                  k(  S t        S r6   )r   r   r  r<  r=  s     r   r^  ztimezone.__eq__9	  s%    eX&<<5==00r   c                 ,    t        | j                        S r6   )rn  r  r4  s    r   ro  ztimezone.__hash__>	  s    DLL!!r   c                    	 | | j                   u ry| j                  2t        |       d| j                  j                  d| j
                  dS t        |       d| j                  j                  d| j
                  d| j                  dS )Nzdatetime.timezone.utcr'  r(  r*  r)  )r   r  r   r   r+  r  r4  s    r   r-  ztimezone.__repr__A	  sv    	 488*::"3D"9"&.."="="&,,0 0 #4D"9"&.."="="&,,

< 	<r   c                 $    | j                  d       S r6   )r   r4  s    r   r1  ztimezone.__str__U	  s    {{4  r   c                 T    t        |t              s|| j                  S t        d      )Nz8utcoffset() argument must be a datetime instance or None)r   r   r  r   r  s     r   r   ztimezone.utcoffsetX	  s,    b(#rz<< # $ 	$r   c                     t        |t              s|3| j                  | j                  | j                        S | j                  S t        d      )Nz5tzname() argument must be a datetime instance or None)r   r   r  _name_from_offsetr  r   r  s     r   r   ztimezone.tzname^	  sK    b(#rzzz!--dll;;:: # $ 	$r   c                 >    t        |t              s|y t        d      )Nz2dst() argument must be a datetime instance or None)r   r   r   r  s     r   r  ztimezone.dstf	  s%    b(#rz # $ 	$r   c                     t        |t              r(|j                  | urt        d      || j                  z   S t        d      )Nzfromutc: dt.tzinfo is not selfz6fromutc() argument must be a datetime instance or None)r   r   r   rz   r  r   r  s     r   r  ztimezone.fromutcl	  sK    b(#yy$  "/ 0 0$$ # $ 	$r   r@   r   )rq   ru   c           
      0   | sy| t        d      k  rd}|  } nd}t        | t        d            \  }}t        |t        d            \  }}|j                  }|j                  }|rd| |dd	|dd	|dd
|d	S |rd| |dd	|dd	|dS d| |dd	|dS )Nr
   r   r   r   r   r   r   02dr   r'  06d)r   rB   rs   ru   )r  r   rq   restrr   rs   ru   s          r   r  ztimezone._name_from_offsetx	  s    9Q<DFEDUIA$67ttYq%9:,,(($c{!GC='#S)+ ,uSk73-qFFTF5+Qwsm44r   r6   )r  r   r+  rw  r   r  r  r  r  r  r^  ro  r-  r1  r   r   r  r  r   r  r  staticmethodr  r   r   r   r   r   	  s    "I xH"* )  *
"<(!$$$$ "5JJ5 5r   r   r#  r  r  rU  )r   )C__all__r   re   mathr  rd  operatorr   r   r   r   r   r	   r  r-   r3   dbmr9   r   r&   r)   r0   r4   r:   rC   rD   rE   rM   r  r  ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r   rc  r  
resolutionr   r}  r   r  r  r  rK  r~  r   r   r   r  r
   r   r  r   r   r   <module>r     s  (   
 $/ 
 FT !" Cc"3JC B*
!F
 C
 
C
 
A
<~?C	I
**&@0F6r!"H 6 .`,^B1
)3"P9(|2 |2|	 *%	yB'-/	 a0	 A2 A2F
 1a=b"#:; :;zHe H6 # X% X%t
 1a=BF#+s	%t s	%l 1a b"b"b&9Q/ 	r5v r5h %%il3 3hl
 R!@ @A	B ?@	$1X\\	2r   