<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]{(                @   s  d  d l  Z d  d l Z d d   Z d Z d Z d Z d d d d d	 d d	 d d d	 d d	 d g Z d g Z	 d  Z
 x/ e d d  D] Z e	 j e
  e
 e 7Z
 q W[
 [ d
 d   Z d d   Z d d   Z d d   Z d d   Z e d  Z e d  Z e d  Z d d   Z d d d d d d d d d  d! d" d# d$ g Z d d% d& d' d( d) d* d+ g Z d, d-   Z d. d/   Z d0 d1   Z d2 d3   Z d4 d5   Z d6 d7   Z d8 d9   Z d: d;   Z d< d=   Z  d> d?   Z! d@ dA   Z" GdB dC   dC  Z# e# dD  e# _$ e# dE dD dF dG dH dI dJ dI dK dL  e# _% e# dK d  e# _& GdM dN   dN  Z' e' Z( e' d d d  e' _$ e' d dO d  e' _% e# dE d  e' _& GdP dQ   dQ  Z) e) Z* GdR dS   dS  Z  e  Z+ e  d  d  d   e  _$ e  dG dI dI dL  e  _% e# dK d  e  _& GdT dU   dU e'  Z, e, d d d  e, _$ e, d dO d dG dI dI dL  e, _% e# dK d  e, _& dV dW   Z- GdX dY   dY e)  Z. e. j/ e# d    e. _0 e. j/ e. j1  e. _$ e. j/ e. j2  e. _% e, dZ d d dQ e. j0 Z3 y d  d[ l4 TWn e5 k
 rYnq X[ [	 [ [ [ [ [3 [ [ [ [ [ [ [  [ [ [ [! [( [ [ [ [ [ [- [ [ [ [+ [* [ [ d  d\ l4 m6 Z6 d S)]    Nc             C   s$   |  | k r d S|  | k r  d Sd S)Nr       )xyr   r   -/opt/alt/python35/lib64/python3.5/datetime.py_cmp
   s    r   r   i'  i۹7          c             C   s.   |  d d k o- |  d d k p- |  d d k S)N   r   d   i  r   )yearr   r   r   _is_leap$   s    r   c             C   s*   |  d } | d | d | d | d S)Nr   im  r   r   i  r   )r   r   r   r   r   _days_before_year(   s    
r   c             C   s$   | d k r t  |   r d St | S)N      )r   _DAYS_IN_MONTH)r   monthr   r   r   _days_in_month-   s    r   c             C   s   t  | | d k o t |   S)Nr   )_DAYS_BEFORE_MONTHr   )r   r   r   r   r   _days_before_month4   s    r   c             C   s*   t  |  |  } t |   t |  |  | S)N)r   r   r   )r   r   daydimr   r   r   _ymd2ord9   s    r   i  e      c       	      C   sJ  |  d 8}  t  |  t  \ } }  | d d } t  |  t  \ } }  t  |  t  \ } }  t  |  d  \ } }  | | d | d | 7} | d k s | d k r | d d d f S| d k o | d	 k p | d k } |  d
 d ?} t | | d k o | } | |  k r/| d 8} | t | | d k o*| 8} |  | 8}  | | |  d f S)Nr   i  im  r   r      r	         2   r   r   )divmod_DI400Y_DI100Y_DI4Yr   r   )	nZn400r   Zn100Zn4Zn1Zleapyearr   Z	precedingr   r   r   _ord2ymdR   s"    
$

r&   ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecZMonZTueZWedZThuZFriZSatZSunc       	   
   C   sU   t  |  | |  d d } t |  |  | } t j |  | | | | | | | | f	  S)N      )r   r   _timestruct_time)	r   mdhhmmssZdstflagZwdayZdnumr   r   r   _build_struct_time   s    r0   c             C   s+   d |  | | f } | r' | d | 7} | S)Nz%02d:%02d:%02dz.%06dr   )r-   r.   r/   usresultr   r   r   _format_time   s    r3   c             C   s4  d  } d  } d  } g  } | j  } d t |  } }	 x| |	 k  r| | }
 | d 7} |
 d k r| |	 k  r| | }
 | d 7} |
 d k r | d  k r d t |  d d  } | j  |  q|
 d k r|| d  k rld } t |  d	  rl|  j   } | d  k	 rld
 } | j d k  r(| } d } t | t d d   \ } } | t d d  } d | | | f } | j  |  q|
 d k r| d  k rd } t |  d  r|  j   } | d  k	 r| j	 d d  } | j  |  q| d  | |
  q| d  q7 | |
  q7 Wd j
 |  } t j | |  S)Nr   r   %fz%06dmicrosecondz 	utcoffset+-hoursminutesz
%c%02d%02dZtznamez%%)appendlengetattrhasattrr9   daysr!   	timedeltar?   replacejoinr)   strftime)objectformat	timetupleZfreplaceZzreplaceZZreplaceZ	newformatpushir%   Zchoffsetsignhr+   sr   r   r   _wrap_strftime   s\    	



	
rR   c             C   s6   |  d  k	 r2 t  |  t  r2 t d t |     d  S)Nz4tzinfo.tzname() must return None or string, not '%s')
isinstancestr	TypeErrortype)namer   r   r   _check_tzname   s    rX   c             C   s   | d  k r d  St  | t  s; t d |  t |  f   | t d d  sW | j rm t d |  | f   t d  | k  o t d  k  n s t d |  | f   d  S)Nz3tzinfo.%s() must return None or timedelta, not '%s'r=   r   z9tzinfo.%s() must return a whole number of minutes, got %szV%s()=%s, must be must be strictly between -timedelta(hours=24) and timedelta(hours=24))rS   rE   rU   rV   microseconds
ValueError)rW   rN   r   r   r   _check_utc_offset   s    )r[   c             C   s   t  |  t  r |  St  |  t  s y |  j   }  Wn t k
 rF Yn- Xt  |  t  rZ |  St d t |   j   t d t |   j   t d   d  S)Nz"__int__ returned non-int (type %s)z$an integer is required (got type %s)z$integer argument expected, got float)rS   intfloat__int__AttributeErrorrU   rV   __name__)valuer   r   r   _check_int_field   s    rb   c             C   s   t  |   }  t  |  } t  |  } t |  k o; t k n sY t d t t f |    d | k op d k n s t d |   t |  |  } d | k o | k n s t d | |   |  | | f S)Nzyear must be in %d..%dr   r   zmonth must be in 1..12zday must be in 1..%d)rb   MINYEARMAXYEARrZ   r   )r   r   r   r   r   r   r   _check_date_fields  s    re   c             C   s   t  |   }  t  |  } t  |  } t  |  } d |  k oG d k n s[ t d |    d | k or d k n s t d |   d | k o d k n s t d |   d | k o d k n s t d |   |  | | | f S)	Nr      zhour must be in 0..23;   zminute must be in 0..59zsecond must be in 0..59i?B z microsecond must be in 0..999999)rb   rZ   )hourminutesecondr6   r   r   r   _check_time_fields  s    rk   c             C   s,   |  d  k	 r( t  |  t  r( t d   d  S)Nz4tzinfo argument must be None or of a tzinfo subclass)rS   tzinforU   )tzr   r   r   _check_tzinfo_arg$  s    rn   c             C   s,   t  d t |   j t |  j f   d  S)Nzcan't compare '%s' to '%s')rU   rV   r`   )r   r   r   r   r   	_cmperror(  s    ro   c             C   ss   t  |  |  \ } } | d 9} | d k r7 | | k n	 | | k  } | se | | k ro | d d k ro | d 7} | S)Nr   r   r   )r!   )abqrZgreater_than_halfr   r   r   _divide_and_round,  s    
$"
rt   c            	   @   s  e  Z d  Z dA Z d d d d d d d d d  Z d d	   Z d
 d   Z d d   Z e d d    Z	 e d d    Z
 e d d    Z d d   Z e Z d d   Z d d   Z d d   Z d d   Z d d   Z d  d!   Z e Z d" d#   Z d$ d%   Z d& d'   Z d( d)   Z d* d+   Z d, d-   Z d. d/   Z d0 d1   Z d2 d3   Z d4 d5   Z d6 d7   Z d8 d9   Z  d: d;   Z! d< d=   Z" d> d?   Z# d@ S)BrE   _days_seconds_microseconds	_hashcoder   c             C   sq  d } }	 }
 | | d 7} | | d | d 7} | | d 7} t  | t  r t j |  \ } } t j | d  \ } } t |  }	 t |  } n d } | } t  | t  r t j |  \ } } t |  } | | 7} n | } t | d  \ } } | | 7} |	 t |  7}	 | d
 } t  | t  rt | |  } t | d  \ } } t | d  \ } } | | 7} |	 | 7}	 nZ t |  } t | d  \ } } t | d  \ } } | | 7} |	 | 7}	 t | |  } t | d  \ } }
 |	 | 7}	 t |	 d  \ } }	 | | 7} t |  d k r:t d |   t	 j
 |   } | | _ |	 | _ |
 | _ d | _ | S)Nr   r(   <   i  i  g      8@g      @g        r   g    .Ai@B iɚ;z$timedelta # of days is too large: %dr   g     @iQ iQ iQ iQ r   )rS   r]   _mathmodfr\   r!   roundabsOverflowErrorrI   __new__ru   rv   rw   rx   )clsrD   secondsrY   Zmillisecondsr=   r<   Zweeksr,   rQ   r1   ZdayfracZdaysecondsfracZdaysecondswholeZsecondsfracZusdoubleselfr   r   r   r   R  sZ    







				ztimedelta.__new__c             C   s   |  j  r5 d |  j j |  j j |  j |  j |  j  f S|  j rd d |  j j |  j j |  j |  j f Sd |  j j |  j j |  j f S)Nz%s.%s(%d, %d, %d)z%s.%s(%d, %d)z	%s.%s(%d))rw   	__class__
__module____qualname__ru   rv   )r   r   r   r   __repr__  s    					ztimedelta.__repr__c             C   s   t  |  j d  \ } } t  | d  \ } } d | | | f } |  j rl d d   } d | |  j  | } |  j r | d |  j } | S)Nry   z%d:%02d:%02dc             S   s"   |  t  |   d k r d p d f S)Nr   rQ   r8   )r}   )r%   r   r   r   plural  s    z!timedelta.__str__.<locals>.pluralz
%d day%s, z.%06d)r!   rv   ru   rw   )r   r.   r/   r-   rQ   r   r   r   r   __str__  s    		ztimedelta.__str__c             C   s!   |  j  d |  j d |  j d S)NiQ 
   r'   i@B i@B )rD   r   rY   )r   r   r   r   total_seconds  s    ztimedelta.total_secondsc             C   s   |  j  S)N)ru   )r   r   r   r   rD     s    ztimedelta.daysc             C   s   |  j  S)N)rv   )r   r   r   r   r     s    ztimedelta.secondsc             C   s   |  j  S)N)rw   )r   r   r   r   rY     s    ztimedelta.microsecondsc             C   sA   t  | t  r= t |  j | j |  j | j |  j | j  St S)N)rS   rE   ru   rv   rw   NotImplemented)r   otherr   r   r   __add__  s
    ztimedelta.__add__c             C   sA   t  | t  r= t |  j | j |  j | j |  j | j  St S)N)rS   rE   ru   rv   rw   r   )r   r   r   r   r   __sub__  s
    ztimedelta.__sub__c             C   s   t  | t  r |  | St S)N)rS   rE   r   )r   r   r   r   r   __rsub__  s    	ztimedelta.__rsub__c             C   s   t  |  j |  j |  j  S)N)rE   ru   rv   rw   )r   r   r   r   __neg__  s    
ztimedelta.__neg__c             C   s   |  S)Nr   )r   r   r   r   __pos__  s    ztimedelta.__pos__c             C   s   |  j  d k  r |  S|  Sd  S)Nr   )ru   )r   r   r   r   __abs__  s    ztimedelta.__abs__c             C   s   t  | t  r4 t |  j | |  j | |  j |  St  | t  r~ |  j   } | j   \ } } t d d t	 | | |   St
 S)Nr   )rS   r\   rE   ru   rv   rw   r]   _to_microsecondsas_integer_ratiort   r   )r   r   usecrp   rq   r   r   r   __mul__  s    
ztimedelta.__mul__c             C   s   |  j  d |  j d |  j S)Nr   i  i@B iQ )ru   rv   rw   )r   r   r   r   r      s    ztimedelta._to_microsecondsc             C   si   t  | t t f  s t S|  j   } t  | t  rB | | j   St  | t  re t d d | |  Sd  S)Nr   )rS   r\   rE   r   r   )r   r   r   r   r   r   __floordiv__$  s    ztimedelta.__floordiv__c             C   s   t  | t t t f  s t S|  j   } t  | t  rE | | j   St  | t  rm t d d t | |   St  | t  r | j   \ } } t d d t | | |   Sd  S)Nr   )rS   r\   r]   rE   r   r   rt   r   )r   r   r   rp   rq   r   r   r   __truediv__-  s    ztimedelta.__truediv__c             C   s9   t  | t  r5 |  j   | j   } t d d |  St S)Nr   )rS   rE   r   r   )r   r   rs   r   r   r   __mod__9  s    ztimedelta.__mod__c             C   sJ   t  | t  rF t |  j   | j    \ } } | t d d |  f St S)Nr   )rS   rE   r!   r   r   )r   r   rr   rs   r   r   r   
__divmod__?  s
    ztimedelta.__divmod__c             C   s*   t  | t  r" |  j |  d k Sd Sd  S)Nr   F)rS   rE   r   )r   r   r   r   r   __eq__H  s    ztimedelta.__eq__c             C   s3   t  | t  r" |  j |  d k St |  |  d  S)Nr   )rS   rE   r   ro   )r   r   r   r   r   __le__N  s    ztimedelta.__le__c             C   s3   t  | t  r" |  j |  d k  St |  |  d  S)Nr   )rS   rE   r   ro   )r   r   r   r   r   __lt__T  s    ztimedelta.__lt__c             C   s3   t  | t  r" |  j |  d k St |  |  d  S)Nr   )rS   rE   r   ro   )r   r   r   r   r   __ge__Z  s    ztimedelta.__ge__c             C   s3   t  | t  r" |  j |  d k St |  |  d  S)Nr   )rS   rE   r   ro   )r   r   r   r   r   __gt__`  s    ztimedelta.__gt__c             C   s   t  |  j   | j    S)N)r   	_getstate)r   r   r   r   r   r   f  s    ztimedelta._cmpc             C   s+   |  j  d k r$ t |  j    |  _  |  j  S)Nr   r   )rx   hashr   )r   r   r   r   __hash__j  s    ztimedelta.__hash__c             C   s+   |  j  d k p* |  j d k p* |  j d k S)Nr   )ru   rv   rw   )r   r   r   r   __bool__o  s    ztimedelta.__bool__c             C   s   |  j  |  j |  j f S)N)ru   rv   rw   )r   r   r   r   r   v  s    ztimedelta._getstatec             C   s   |  j  |  j   f S)N)r   r   )r   r   r   r   
__reduce__y  s    ztimedelta.__reduce__N)ru   rv   rw   rx   )$r`   r   r   	__slots__r   r   r   r   propertyrD   r   rY   r   __radd__r   r   r   r   r   r   __rmul__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE   ?  sB   	d				rE   iɚ;rD   r<   rf   r=   rg   r   rY   i?B c               @   s  e  Z d  Z dB Z d d d d  Z e d d	    Z e d
 d    Z e d d    Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z e Z e d d    Z e d d    Z e d d    Z d d   Z d  d!   Z d d d d" d#  Z d$ d%   Z d& d'   Z d( d)   Z d* d+   Z d, d-   Z d. d/   Z d0 d1   Z d2 d3   Z e Z d4 d5   Z d6 d7   Z  d8 d9   Z! d: d;   Z" d< d=   Z# d> d?   Z$ d@ dA   Z% d S)Cdate_year_month_dayrx   Nc             C   s   | d  k rv t  | t  rv t |  d k rv d | d k oH d k n rv t j |   } | j |  d | _ | St | | |  \ } } } t j |   } | | _ | | _	 | | _
 d | _ | S)Nr   r   r   r   r   r   )rS   bytesrA   rI   r   _date__setstaterx   re   r   r   r   )r   r   r   r   r   r   r   r   r     s    - 					zdate.__new__c          	   C   s:   t  j |  \	 } } } } } } } }	 }
 |  | | |  S)N)r)   	localtime)r   tr   r+   r,   r-   r.   r/   weekdayjdaydstr   r   r   fromtimestamp  s    *zdate.fromtimestampc             C   s   t  j   } |  j |  S)N)r)   timer   )r   r   r   r   r   today  s    z
date.todayc             C   s%   t  |  \ } } } |  | | |  S)N)r&   )r   r%   r   r+   r,   r   r   r   fromordinal  s    zdate.fromordinalc             C   s,   d |  j  j |  j  j |  j |  j |  j f S)Nz%s.%s(%d, %d, %d))r   r   r   r   r   r   )r   r   r   r   r     s
    	zdate.__repr__c             C   s;   |  j    d p d } d t | t |  j |  j |  j f S)Nr(   z%s %s %2d 00:00:00 %04d)	toordinal	_DAYNAMES_MONTHNAMESr   r   r   )r   r   r   r   r   ctime  s
    
z
date.ctimec             C   s   t  |  | |  j    S)N)rR   rK   )r   fmtr   r   r   rH     s    zdate.strftimec             C   sQ   t  | t  s( t d t |  j   t |  d k rG |  j |  St |   S)Nzmust be str, not %sr   )rS   rT   rU   rV   r`   rA   rH   )r   r   r   r   r   
__format__  s
    zdate.__format__c             C   s   d |  j  |  j |  j f S)Nz%04d-%02d-%02d)r   r   r   )r   r   r   r   	isoformat  s    	zdate.isoformatc             C   s   |  j  S)N)r   )r   r   r   r   r     s    z	date.yearc             C   s   |  j  S)N)r   )r   r   r   r   r     s    z
date.monthc             C   s   |  j  S)N)r   )r   r   r   r   r     s    zdate.dayc             C   s%   t  |  j |  j |  j d d d d  S)Nr   r   r   )r0   r   r   r   )r   r   r   r   rK     s    zdate.timetuplec             C   s   t  |  j |  j |  j  S)N)r   r   r   r   )r   r   r   r   r     s    zdate.toordinalc             C   sO   | d  k r |  j  } | d  k r* |  j } | d  k r? |  j } t | | |  S)N)r   r   r   r   )r   r   r   r   r   r   r   rF   %  s    			zdate.replacec             C   s&   t  | t  r" |  j |  d k St S)Nr   )rS   r   r   r   )r   r   r   r   r   r   1  s    zdate.__eq__c             C   s&   t  | t  r" |  j |  d k St S)Nr   )rS   r   r   r   )r   r   r   r   r   r   6  s    zdate.__le__c             C   s&   t  | t  r" |  j |  d k  St S)Nr   )rS   r   r   r   )r   r   r   r   r   r   ;  s    zdate.__lt__c             C   s&   t  | t  r" |  j |  d k St S)Nr   )rS   r   r   r   )r   r   r   r   r   r   @  s    zdate.__ge__c             C   s&   t  | t  r" |  j |  d k St S)Nr   )rS   r   r   r   )r   r   r   r   r   r   E  s    zdate.__gt__c             C   sY   |  j  |  j |  j } } } | j  | j | j } } } t | | | f | | | f  S)N)r   r   r   r   )r   r   r   r+   r,   Zy2m2Zd2r   r   r   r   J  s    z	date._cmpc             C   s+   |  j  d k r$ t |  j    |  _  |  j  S)Nr   r   )rx   r   r   )r   r   r   r   r   P  s    zdate.__hash__c             C   s[   t  | t  rW |  j   | j } d | k  o9 t k n rK t j |  St d   t S)Nr   zresult out of range)	rS   rE   r   rD   _MAXORDINALr   r   r~   r   )r   r   or   r   r   r   X  s    zdate.__add__c             C   sZ   t  | t  r! |  t | j  St  | t  rV |  j   } | j   } t | |  St S)N)rS   rE   rD   r   r   r   )r   r   days1days2r   r   r   r   c  s    zdate.__sub__c             C   s   |  j    d d S)Nr'   r(   )r   )r   r   r   r   r   m  s    zdate.weekdayc             C   s   |  j    d p d S)Nr(   )r   )r   r   r   r   
isoweekdays  s    zdate.isoweekdayc             C   s   |  j  } t |  } t |  j  |  j |  j  } t | | d  \ } } | d k  r | d 8} t |  } t | | d  \ } } n2 | d k r | t | d  k r | d 7} d } | | d | d f S)Nr(   r   r   4   )r   _isoweek1mondayr   r   r   r!   )r   r   week1mondayr   Zweekr   r   r   r   isocalendarx  s    	

zdate.isocalendarc             C   s7   t  |  j d  \ } } t | | |  j |  j g  f S)N   )r!   r   r   r   r   )r   yhiylor   r   r   r     s    zdate._getstatec             C   s-   | \ } } |  _  |  _ | d | |  _ d  S)Nr   )r   r   r   )r   stringr   r   r   r   r   
__setstate  s    zdate.__setstatec             C   s   |  j  |  j   f S)N)r   r   )r   r   r   r   r     s    zdate.__reduce__)r   r   r   rx   )&r`   r   r   r   r   classmethodr   r   r   r   r   rH   r   r   r   r   r   r   r   rK   r   rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     sB   	
r   r   c               @   sR   e  Z d  Z f  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d S)rl   c             C   s   t  d   d  S)Nz&tzinfo subclass must override tzname())NotImplementedError)r   dtr   r   r   r?     s    ztzinfo.tznamec             C   s   t  d   d  S)Nz)tzinfo subclass must override utcoffset())r   )r   r   r   r   r   r9     s    ztzinfo.utcoffsetc             C   s   t  d   d  S)Nz#tzinfo subclass must override dst())r   )r   r   r   r   r   r     s    z
tzinfo.dstc             C   s   t  | t  s t d   | j |  k	 r6 t d   | j   } | d  k rZ t d   | j   } | d  k r~ t d   | | } | r | | 7} | j   } | d  k r t d   | | 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)rS   datetimerU   rl   rZ   r9   r   )r   r   ZdtoffZdtdstdeltar   r   r   fromutc  s"    

ztzinfo.fromutcc             C   s   t  |  d d   } | r$ |   } n f  } t  |  d d   } | rN |   } n t  |  d d   pc d  } | d  k r |  j | f S|  j | | f Sd  S)N__getinitargs____getstate____dict__)rB   r   )r   Zgetinitargsargsgetstatestater   r   r   r     s    ztzinfo.__reduce__N)	r`   r   r   r   r?   r9   r   r   r   r   r   r   r   rl     s   rl   c               @   s  e  Z d  Z d> Z d d d d d d	 d
  Z e d d    Z e d d    Z e d d    Z e d d    Z	 e d d    Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d  d!  Z d" d#   Z d$ d% d&  Z d' d(   Z d) d*   Z e Z d+ d,   Z d- d.   Z d/ d0   Z d1 d2   Z d3 d4   Z d d d d d5 d6 d7  Z d8 d9   Z d: d;   Z d< d=   Z d S)?r   _hour_minute_second_microsecond_tzinforx   r   Nc             C   s   t  | t  rc t |  d k rc | d d k  rc t j |   } | j | | pR d   d | _ | St | | | |  \ } } } } t |  t j |   } | | _	 | | _
 | | _ | | _ | | _ d | _ | S)Nr'   r   r   r   r   r   )rS   r   rA   rI   r   _time__setstaterx   rk   rn   r   r   r   r   r   )r   rh   ri   rj   r6   rl   r   r   r   r   r     s     	1	
						ztime.__new__c             C   s   |  j  S)N)r   )r   r   r   r   rh   "  s    z	time.hourc             C   s   |  j  S)N)r   )r   r   r   r   ri   '  s    ztime.minutec             C   s   |  j  S)N)r   )r   r   r   r   rj   ,  s    ztime.secondc             C   s   |  j  S)N)r   )r   r   r   r   r6   1  s    ztime.microsecondc             C   s   |  j  S)N)r   )r   r   r   r   rl   6  s    ztime.tzinfoc             C   s0   t  | t  r( |  j | d d d k Sd Sd  S)Nallow_mixedTr   F)rS   r   r   )r   r   r   r   r   r   ?  s    ztime.__eq__c             C   s3   t  | t  r" |  j |  d k St |  |  d  S)Nr   )rS   r   r   ro   )r   r   r   r   r   r   E  s    ztime.__le__c             C   s3   t  | t  r" |  j |  d k  St |  |  d  S)Nr   )rS   r   r   ro   )r   r   r   r   r   r   K  s    ztime.__lt__c             C   s3   t  | t  r" |  j |  d k St |  |  d  S)Nr   )rS   r   r   ro   )r   r   r   r   r   r   Q  s    ztime.__ge__c             C   s3   t  | t  r" |  j |  d k St |  |  d  S)Nr   )rS   r   r   ro   )r   r   r   r   r   r   W  s    ztime.__gt__Fc       
      C   s;  |  j  } | j  } d  } } | | k r1 d } n$ |  j   } | j   } | | k } | r t |  j |  j |  j |  j f | j | j | j | j f  S| d  k s | d  k r | r d St d   |  j d |  j | t d d  } | j d | j | t d d  }	 t | |  j |  j f |	 | j | j f  S)NTr   z$cannot compare naive and aware timesry   r=   r   )	r   r9   r   r   r   r   r   rU   rE   )
r   r   r   mytzottzmyoffotoffbase_compareZmyhhmmZothhmmr   r   r   r   ]  s*    		
		%%z	time._cmpc             C   s   |  j  d k r |  j   } | s= t |  j   d  |  _  n t t d |  j d |  j  | t d d   \ } } | t d d  } d | k o d k  n r t t | | |  j	 |  j
   |  _  n! t | | |  j	 |  j
 f  |  _  |  j  S)Nr   r   r<   r=   r   r   )rx   r9   r   r   r!   rE   rh   ri   r   rj   r6   )r   tzoffrP   r+   r   r   r   r   y  s    '!ztime.__hash__:c             C   s   |  j    } | d  k	 r | j d k  r7 d } | } n d } t | t d d   \ } } | t d d  } d | | | | f } | S)Nr   r;   r:   r<   r   r=   z%s%02d%s%02d)r9   rD   r!   rE   )r   sepoffrO   r-   r.   r   r   r   _tzstr  s    
ztime._tzstrc             C   s   |  j  d k r( d |  j |  j  f } n% |  j d k rG d |  j } n d } d |  j j |  j j |  j |  j | f } |  j d  k	 r | d  d	  d |  j d } | S)
Nr   z, %d, %dz, %dr8   z%s.%s(%d, %d%s)r   z, tzinfo=%r)r   )r   r   r   r   r   r   r   r   )r   rQ   r   r   r   r     s    	ztime.__repr__c             C   sA   t  |  j |  j |  j |  j  } |  j   } | r= | | 7} | S)N)r3   r   r   r   r   r   )r   rQ   rm   r   r   r   r     s    
ztime.isoformatc          	   C   s:   d d d |  j  |  j |  j d d d f	 } t |  | |  S)Nil  r   r   r   )r   r   r   rR   )r   r   rK   r   r   r   rH     s    	ztime.strftimec             C   sQ   t  | t  s( t d t |  j   t |  d k rG |  j |  St |   S)Nzmust be str, not %sr   )rS   rT   rU   rV   r`   rA   rH   )r   r   r   r   r   r     s
    ztime.__format__c             C   s6   |  j  d  k r d  S|  j  j d   } t d |  | S)Nr9   )r   r9   r[   )r   rN   r   r   r   r9     s
    ztime.utcoffsetc             C   s3   |  j  d  k r d  S|  j  j d   } t |  | S)N)r   r?   rX   )r   rW   r   r   r   r?     s
    
ztime.tznamec             C   s6   |  j  d  k r d  S|  j  j d   } t d |  | S)Nr   )r   r   r[   )r   rN   r   r   r   r     s
    	ztime.dstTc             C   s   | d  k r |  j  } | d  k r* |  j } | d  k r? |  j } | d  k rT |  j } | d k ri |  j } t | | | | |  S)NT)rh   ri   rj   r6   rl   r   )r   rh   ri   rj   r6   rl   r   r   r   rF     s    					ztime.replacec             C   s{   t  |  j d  \ } } t  | d  \ } } t |  j |  j |  j | | | g  } |  j d  k rj | f S| |  j f Sd  S)Nr   )r!   r   r   r   r   r   r   )r   us2us3us1	basestater   r   r   r     s    ztime._getstatec             C   so   | d  k	 r( t  | t  r( t d   | \ |  _ |  _ |  _ } } } | d >| Bd >| B|  _ | |  _ d  S)Nzbad tzinfo state arg   )rS   _tzinfo_classrU   r   r   r   r   r   )r   r   rl   r   r   r   r   r   r   r     s
    !ztime.__setstatec             C   s   t  |  j   f S)N)r   r   )r   r   r   r   r     s    ztime.__reduce__)r   r   r   r   r   rx   )r`   r   r   r   r   r   rh   ri   rj   r6   rl   r   r   r   r   r   r   r   r   r   r   r   rH   r   r9   r?   r   rF   r   r   r   r   r   r   r   r     s8   			
r   c            
   @   s  e  Z d  Z e j e j Z d d d d d d d d d  Z e d d    Z e d d    Z	 e d	 d
    Z
 e d d    Z e d d    Z e d d    Z e d d d   Z e d d    Z e d d d   Z e d d    Z e d d    Z d d   Z d d   Z d d    Z d! d"   Z d# d$   Z d% d&   Z d d d d d d d d' d( d)  Z d d* d+  Z d, d-   Z d. d/ d0  Z d1 d2   Z d3 d4   Z e d5 d6    Z d7 d8   Z d9 d:   Z  d; d<   Z! d= d>   Z" d? d@   Z# dA dB   Z$ dC dD   Z% dE dF   Z& dG dH dI  Z' dJ dK   Z( e( Z) dL dM   Z* dN dO   Z+ dP dQ   Z, dR dS   Z- dT dU   Z. d S)Vr   Nr   c	       
      C   s  t  | t  rm t |  d k rm d | d k o< d k n rm t j |   }	 |	 j | |  d |	 _ |	 St | | |  \ } } } t | | | |  \ } } } } t	 |  t j |   }	 | |	 _
 | |	 _ | |	 _ | |	 _ | |	 _ | |	 _ | |	 _ | |	 _ d |	 _ |	 S)Nr   r   r   r   r   r   )rS   r   rA   rI   r   _datetime__setstaterx   re   rk   rn   r   r   r   r   r   r   r   r   )
r   r   r   r   rh   ri   rj   r6   rl   r   r   r   r   r   '  s(    A	
									zdatetime.__new__c             C   s   |  j  S)N)r   )r   r   r   r   rh   @  s    zdatetime.hourc             C   s   |  j  S)N)r   )r   r   r   r   ri   E  s    zdatetime.minutec             C   s   |  j  S)N)r   )r   r   r   r   rj   J  s    zdatetime.secondc             C   s   |  j  S)N)r   )r   r   r   r   r6   O  s    zdatetime.microsecondc             C   s   |  j  S)N)r   )r   r   r   r   rl   T  s    zdatetime.tzinfoc          	   C   s   t  j |  \ } } t | d  } | d k rH | d 7} | d 8} n  | d k  rh | d 8} | d 7} | rw t j n t j } | |  \	 } } }	 }
 } } } } } t | d  } |  | | |	 |
 | | | |  S)Ng    .Ai@B r   r   rg   )rz   r{   r|   r)   gmtimer   min)r   r   utcrm   Zfracr1   	converterr   r+   r,   r-   r.   r/   r   r   r   r   r   r   _fromtimestampY  s    


'zdatetime._fromtimestampc             C   sD   t  |  |  j | | d  k	 |  } | d  k	 r@ | j |  } | S)N)rn   r   r   )r   r   rm   r2   r   r   r   r   m  s
    
zdatetime.fromtimestampc             C   s   |  j  | d d   S)NT)r   )r   r   r   r   r   utcfromtimestampz  s    zdatetime.utcfromtimestampc             C   s   t  j   } |  j | |  S)N)r)   r   r   )r   rm   r   r   r   r   now  s    zdatetime.nowc             C   s   t  j   } |  j |  S)N)r)   r   r   )r   r   r   r   r   utcnow  s    zdatetime.utcnowc          	   C   sm   t  | t  s t d   t  | t  s6 t d   |  | j | j | j | j | j | j	 | j
 | j  S)Nz%date argument must be a date instancez%time argument must be a time instance)rS   _date_classrU   _time_classr   r   r   rh   ri   rj   r6   rl   )r   r   r   r   r   r   combine  s    zdatetime.combinec             C   sd   |  j    } | d  k r! d } n | r0 d } n d } t |  j |  j |  j |  j |  j |  j |  S)Nr   r   r   )r   r0   r   r   r   rh   ri   rj   )r   r   r   r   r   rK     s    		zdatetime.timetuplec          
   C   sf   |  j  d  k rT t j |  j |  j |  j |  j |  j |  j d d d f	  |  j	 d S|  t
 j   Sd  S)Nr   g    .Ar   r   r   )r   r)   mktimer   r   r   rh   ri   rj   r6   _EPOCHr   )r   r   r   r   	timestamp  s
    zdatetime.timestampc             C   sr   |  j    } | r |  | 8}  |  j |  j |  j } } } |  j |  j |  j } } } t | | | | | | d  S)Nr   )r9   r   r   r   rh   ri   rj   r0   )r   rN   r   r+   r,   r-   r.   r/   r   r   r   utctimetuple  s    
zdatetime.utctimetuplec             C   s   t  |  j |  j |  j  S)N)r   r   r   r   )r   r   r   r   r     s    zdatetime.datec             C   s   t  |  j |  j |  j |  j  S)N)r   rh   ri   rj   r6   )r   r   r   r   r     s    zdatetime.timec             C   s%   t  |  j |  j |  j |  j |  j  S)N)r   rh   ri   rj   r6   r   )r   r   r   r   timetz  s    zdatetime.timetzTc	       	   	   C   s   | d  k r |  j  } | d  k r* |  j } | d  k r? |  j } | d  k rT |  j } | d  k ri |  j } | d  k r~ |  j } | d  k r |  j } | d k r |  j } t | | | | | | | |  S)NT)	r   r   r   rh   ri   rj   r6   rl   r   )	r   r   r   r   rh   ri   rj   r6   rl   r   r   r   rF     s$    								zdatetime.replacec             C   s  | d  k r7|  j  d  k r' t d   |  t t d d  } t j |  } t | d  d    } y | j } | j } Wn t	 k
 r| t t j
 |  d  d    } t j o | j d k } | r t j n t j } | t d |  k rt | t j |  } n t |  } YqRXt t d |  |  } n t | t   sRt d   |  j  }	 |	 d  k rst d   | |	 k r|  S|  j   }
 |
 d  k rt d   |  |
 j d |  } | j |  S)Nz'astimezone() requires an aware datetimer   r   r'   r   z)tz argument must be an instance of tzinforl   )rl   rZ   r   rE   r)   r   r   	tm_gmtofftm_zoner_   r   daylighttm_isdstaltzonetimezoner?   rS   rU   r9   rF   r   )r   rm   tsZlocaltmlocalZgmtoffZzoner   r   r   Zmyoffsetr   r   r   r   
astimezone  s:    	#	zdatetime.astimezonec             C   sM   |  j    d p d } d t | t |  j |  j |  j |  j |  j |  j f S)Nr(   z%s %s %2d %02d:%02d:%02d %04d)	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r     s    
zdatetime.ctimeTc             C   s   d |  j  |  j |  j | f t |  j |  j |  j |  j  } |  j   } | d  k	 r | j	 d k  ru d } | } n d } t
 | t d d   \ } } | t d d  } | d | | | f 7} | S)	Nz%04d-%02d-%02d%cr   r;   r:   r<   r   r=   z%s%02d:%02d)r   r   r   r3   r   r   r   r   r9   rD   r!   rE   )r   r   rQ   r   rO   r-   r.   r   r   r   r     s    
zdatetime.isoformatc             C   s   |  j  |  j |  j |  j |  j |  j |  j g } | d d k rG | d =| d	 d k r^ | d
 =d |  j j |  j j	 d j
 t t |   f } |  j d  k	 r | d  d  d |  j d } | S)Nr   r   z	%s.%s(%s)z, z, tzinfo=%rr   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   rG   maprT   r   )r   LrQ   r   r   r   r   ,  s    	zdatetime.__repr__c             C   s   |  j  d d  S)Nr    )r   )r   r   r   r   r   <  s    zdatetime.__str__c             C   s   d d  l  } | j |  | |  S)Nr   )	_strptimeZ_strptime_datetime)r   Zdate_stringrJ   r  r   r   r   strptime@  s    zdatetime.strptimec             C   s6   |  j  d  k r d  S|  j  j |   } t d |  | S)Nr9   )r   r9   r[   )r   rN   r   r   r   r9   F  s
    zdatetime.utcoffsetc             C   s3   |  j  d  k r d  S|  j  j |   } t |  | S)N)r   r?   rX   )r   rW   r   r   r   r?   O  s
    
zdatetime.tznamec             C   s6   |  j  d  k r d  S|  j  j |   } t d |  | S)Nr   )r   r   r[   )r   rN   r   r   r   r   \  s
    	zdatetime.dstc             C   sC   t  | t  r( |  j | d d d k St  | t  s; t Sd Sd  S)Nr   Tr   F)rS   r   r   r   r   )r   r   r   r   r   r   m  s
    zdatetime.__eq__c             C   sF   t  | t  r" |  j |  d k St  | t  s5 t St |  |  d  S)Nr   )rS   r   r   r   r   ro   )r   r   r   r   r   r   u  s
    zdatetime.__le__c             C   sF   t  | t  r" |  j |  d k  St  | t  s5 t St |  |  d  S)Nr   )rS   r   r   r   r   ro   )r   r   r   r   r   r   }  s
    zdatetime.__lt__c             C   sF   t  | t  r" |  j |  d k St  | t  s5 t St |  |  d  S)Nr   )rS   r   r   r   r   ro   )r   r   r   r   r   r     s
    zdatetime.__ge__c             C   sF   t  | t  r" |  j |  d k St  | t  s5 t St |  |  d  S)Nr   )rS   r   r   r   r   ro   )r   r   r   r   r   r     s
    zdatetime.__gt__Fc       	   	   C   s  |  j  } | j  } d  } } | | k r1 d } n$ |  j   } | j   } | | k } | r t |  j |  j |  j |  j |  j |  j |  j	 f | j | j | j | j | j | j | j	 f  S| d  k s | d  k r | r d St
 d   |  | } | j d k  rd S| rd pd S)NTr   z(cannot compare naive and aware datetimesr   r   r   )r   r9   r   r   r   r   r   r   r   r   rU   rD   )	r   r   r   r   r   r   r   r   Zdiffr   r   r   r     s.    		
		
zdatetime._cmpc          
   C   s   t  | t  s t St |  j   d |  j d |  j d |  j d |  j } | | 7} t | j	 d  \ } } t | d  \ } } d | j
 k  o t k n r t j t j | j
  t | | | | j d |  j  St d	   d  S)
Nr<   r=   r   rY   i  ry   r   rl   zresult out of range)rS   rE   r   r   r   r   r   r   r!   r   rD   r   r   r   r   r   r   rY   r   r~   )r   r   r   rh   remri   rj   r   r   r   r     s     			
	zdatetime.__add__c       	      C   s  t  | t  s+ t  | t  r' |  | St S|  j   } | j   } |  j |  j d |  j d } | j | j d | j d } t | | | | |  j | j  } |  j	 | j	 k r | S|  j
   } | j
   } | | k r | S| d  k s | d  k rt d   | | | S)Nry   i  z(cannot mix naive and timezone-aware time)rS   r   rE   r   r   r   r   r   r   r   r9   rU   )	r   r   r   r   Zsecs1Zsecs2baser   r   r   r   r   r     s(    	
zdatetime.__sub__c             C   s   |  j  d k r |  j   } | d  k rC t |  j   d  |  _  n\ t |  j |  j |  j  } |  j d |  j	 d |  j
 } t t | | |  j  |  |  _  |  j  S)Nr   r   i  ry   r   )rx   r9   r   r   r   r   r   r   rh   ri   rj   rE   r6   )r   r   rD   r   r   r   r   r     s    "zdatetime.__hash__c             C   s   t  |  j d  \ } } t  |  j d  \ } } t  | d  \ } } t | | |  j |  j |  j |  j |  j | | | g
  } |  j	 d  k r | f S| |  j	 f Sd  S)Nr   )
r!   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r     s    zdatetime._getstatec          
   C   s   | d  k	 r( t  | t  r( t d   | \
 } } |  _ |  _ |  _ |  _ |  _ } } } | d | |  _ | d >| Bd >| B|  _	 | |  _
 d  S)Nzbad tzinfo state argr   r   )rS   r   rU   r   r   r   r   r   r   r   r   )r   r   rl   r   r   r   r   r   r   r   r   r     s    3zdatetime.__setstatec             C   s   |  j  |  j   f S)N)r   r   )r   r   r   r   r     s    zdatetime.__reduce__)/r`   r   r   r   r   r   r   r   rh   ri   rj   r6   rl   r   r   r   r   r   r   r   rK   r   r  r  rF   r  r   r   r   r   r  r9   r?   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s\   		.
		r   c             C   sJ   d } t  |  d d  } | d d } | | } | | k rF | d 7} | S)Nr   r   r'   r(   )r   )r   ZTHURSDAYZfirstdayZfirstweekdayr   r   r   r   r     s    

r   c               @   s   e  Z d  Z d  Z e   Z e d d  Z e d d d   Z d d	   Z	 d
 d   Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z e d d d d  Z e Z e d d    Z d S)!r  _offset_namec             C   s   t  | t  s t d   | |  j k r@ | s7 |  j Sd  } n t  | t  s[ t d   |  j | k ox |  j k n s t d   | j	 d k s | j
 d d k r 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   ry   zAoffset must be a timedelta representing a whole number of minutes)rS   rE   rU   _Omittedr   rT   
_minoffset
_maxoffsetrZ   rY   r   _create)r   rN   rW   r   r   r   r     s    	""ztimezone.__new__Nc             C   s%   t  j |   } | | _ | | _ | S)N)rl   r   r  r  )r   rN   rW   r   r   r   r   r  .  s    		ztimezone._createc             C   s)   |  j  d  k r |  j f S|  j |  j  f S)N)r  r  )r   r   r   r   r   5  s    
ztimezone.__getinitargs__c             C   s&   t  |  t k r d S|  j | j k S)NF)rV   r  r  )r   r   r   r   r   r   ;  s    ztimezone.__eq__c             C   s   t  |  j  S)N)r   r  )r   r   r   r   r   @  s    ztimezone.__hash__c             C   sh   |  |  j  k r d S|  j d  k rB d |  j j |  j j |  j f Sd |  j j |  j j |  j |  j f S)Nzdatetime.timezone.utcz	%s.%s(%r)z%s.%s(%r, %r))r   r  r   r   r   r  )r   r   r   r   r   C  s    
		ztimezone.__repr__c             C   s   |  j  d   S)N)r?   )r   r   r   r   r   W  s    ztimezone.__str__c             C   s2   t  | t  s | d  k r" |  j St d   d  S)Nz8utcoffset() argument must be a datetime instance or None)rS   r   r  rU   )r   r   r   r   r   r9   Z  s    ztimezone.utcoffsetc             C   sQ   t  | t  s | d  k rA |  j d  k r: |  j |  j  S|  j St d   d  S)Nz5tzname() argument must be a datetime instance or None)rS   r   r  _name_from_offsetr  rU   )r   r   r   r   r   r?   `  s
    ztimezone.tznamec             C   s/   t  | t  s | d  k r d  St d   d  S)Nz2dst() argument must be a datetime instance or None)rS   r   rU   )r   r   r   r   r   r   h  s    ztimezone.dstc             C   sE   t  | t  r5 | j |  k	 r* t d   | |  j St d   d  S)Nzfromutc: dt.tzinfo is not selfz6fromutc() argument must be a datetime instance or None)rS   r   rl   rZ   r  rU   )r   r   r   r   r   r   n  s
    ztimezone.fromutcr<   rf   r=   rg   c             C   sl   |  t  d  k  r" d } |  }  n d } t |  t  d d   \ } } | t  d d  } d j | | |  S)Nr   r;   r:   r<   r   r=   zUTC{}{:02d}:{:02d})rE   r!   rJ   )r   rO   r<   restr=   r   r   r   r  z  s    
ztimezone._name_from_offset)r  r  )r`   r   r   r   rI   r  r   r   r  r   r   r   r   r   r9   r?   r   r   rE   r  r  staticmethodr  r   r   r   r   r    s"   		r  i  )*)__doc__)7r   r)   mathrz   r   rc   rd   r   r   r   dbmr   r@   r   r   r   r   r   r"   r#   r$   r&   r   r   r0   r3   rR   rX   r[   rb   re   rk   rn   ro   rt   rE   r   maxZ
resolutionr   r   rl   r   r   r   r   r  r  r   r  r  r   Z	_datetimeImportErrorr  r   r   r   r   <module>   s   .
	?: > !D - !n	