ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙa 3gY\@s4dZddlZddlZddlZddZdZdZdZ gdZ d gZ dZ e ddD]Z e e e e 7Z qN[ [ d d Zd d ZddZddZddZedZedZedZddZgdZgdZddZdYddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Z d*d+Z!d,d-Z"d.d/Z#d0d1Z$d2d3Z%d4d5Z&d6d7Z'd8d9Z(Gd:d;d;Z)e)d<e)_*e)d=d>d?d?d@dAe)_+e)ddBe)_,GdCdDdDZ-e-Z.e-ddde-_*e-ddEdFe-_+e)ddGe-_,GdHdIdIZ/GdJdKdKe0Z1e1Z2[1e/Z3GdLdMdMZeZ4eddde_*ed>d?d?d@e_+e)ddBe_,GdNdOdOe-Z5e5ddde5_*e5ddEdFd>d?d?d@e5_+e)ddBe5_,dPdQZ6GdRdSdSe/Z7e78e)de7_9e78e)d>d?dT e7_*e78e)d>d?dTe7_+e5dUdde7j9dVZ:z ddWl;TWne<yYnZ0[[ [ [[[[:[ [[[$[#[%[&[!["[['[.[[[[[[[6[[[[4[3[[[([[ [[2ddXl;m=Z=dS)Z)datedatetimetime timedeltatimezonetzinfoMINYEARMAXYEARNcCs||kr dS||krdSdS)Nr xyr r '/opt/python39/lib/python3.9/datetime.py_cmpsrr i'i۹7) r rrrrrrrrrr cCs$|ddko"|ddkp"|ddkS)Nr dr )yearr r r_is_leap)srcCs(|d}|d|d|d|dS)Nr mrrrr )rrr r r_days_before_year-srcCs|dkrt|rdSt|S)N)r_DAYS_IN_MONTHrmonthr r r_days_in_month2sr!cCst||dkot|SNr)_DAYS_BEFORE_MONTHrrr r r_days_before_month9sr$cCs t||}t|t|||SN)r!rr$rr daydimr r r_ymd2ord>s  r)iec Cs|d8}t|t\}}|dd}t|t\}}t|t\}}t|d\}}||d|d|7}|dkst|dkr|dddfS|dko|d kp|dk}|d d ?}t||d ko|}||kr|d8}|t||d ko|8}||8}|||dfS) Nr rrrr r2r+r)divmod_DI400Y_DI100Y_DI4Yr#r) nZn400rZn100Zn4Zn1Zleapyearr Z precedingr r r_ord2ymdWs"  r5) NZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDec)NZMonZTueZWedZThuZFriZSatZSunc Cs>t|||dd}t|||}t|||||||||f SN)r)r$_time struct_time) rmdhhmmssZdstflagZwdayZdnumr r r_build_struct_timesr@autocCsrdddddd}|dkr&|r dnd }n|d kr6|d }z ||}Wnty\td Yn0|||||SdS) Nz{:02d}z {:02d}:{:02d}z{:02d}:{:02d}:{:02d}z{:02d}:{:02d}:{:02d}.{:03d}z{:02d}:{:02d}:{:02d}.{:06d})hoursminutesseconds milliseconds microsecondsrArFrDrEzUnknown timespec value)KeyError ValueErrorformat)r=r>r?ustimespecZspecsfmtr r r _format_times  rNcCsd}|dur|jdkr"d}| }nd}t|tdd\}}t|tdd\}}|d|||f7}|sj|jr|d |j7}|jr|d |j7}|S) Nr -+r rBrCz %s%02d:%02dz:%02d.%06d)daysr0rrFrD)offssignr=r>r?r r r_format_offsets  rYcCsd}d}d}g}|j}dt|}} || kr||} |d7}| dkr|| kr||} |d7}| dkr|durdt|dd}||q| dkr^|durRd}t|d rR|} | durRd } | jdkr| } d } t| tdd \} }t|tdd \}}|j}| j }|r,d| | |||f}n&|rDd| | ||f}nd| | |f}||n^| dkr|durd}t|dr| }|dur| dd}||n|d|| n|dq$|| q$d |}t ||S)Nr r %fz%06d microsecondzrO utcoffsetrQrPrRrSz%c%02d%02d%02d.%06dz%c%02d%02d%02dz %c%02d%02dZtznamez%%)appendlengetattrhasattrr^rUr0rrDrFr`replacejoinr9strftime)objectrJ timetupleZfreplaceZzreplaceZZreplaceZ newformatpushir4ZchoffsetrXhrestr;rWur r r_wrap_strftimesj                   rpcCsjt|dd}|ddkr,td|dt|dd}|ddkrPtdt|dd }|||gS) Nr rrPzInvalid date separator: %sr+r8zInvalid date separator )intrI)Zdtstrrr r'r r r_parse_isoformat_dates  rtcCst|}gd}d}tddD]t}||dkr6tdt|||d||<|d7}|||d}|rr|dkrvq|dkrtd||d7}q||kr||d krtd nL|d7}||}|d vrtd t||d|d<|dkr|dd 9<|S) N)r r r r r r-rzIncomplete time componentr :zInvalid time separator: %c.zInvalid microsecond component)r-r7rG)rbrangerIrs)tstrlen_str time_compsposcompZ next_charZ len_remainderr r r_parse_hh_mm_ss_ffs2      r}c Cst|}|dkrtd|ddp2|dd}|dkrL|d|dn|}t|}d}|dkr||d}t|dvrtdt|}td d |Drtj}nD||ddkrd nd}t|d|d|d|d d } t|| }|||S)NrzIsoformat time too shortrPr rQr )r+rqzMalformed time zone stringcss|]}|dkVqdS)r Nr ).0rr r r Xz(_parse_isoformat_time..r r-rBrCrDrF) rbrIfindr}allrutcrra) rxryZtz_posZtimestrrzZtziZtzstrZtz_compsZtzsignZtdr r r_parse_isoformat_time?s*     rcCs&|dur"t|ts"tdt|dS)Nz4tzinfo.tzname() must return None or string, not '%s') isinstancestr TypeErrortype)namer r r _check_tznamehsrcCs^|dur dSt|ts*td|t|ftd |krHtdksZntd||fdS)Nz3tzinfo.%s() must return None or timedelta, not '%s'r zN%s()=%s, must be strictly between -timedelta(hours=24) and timedelta(hours=24))rrrrrI)rrlr r r_check_utc_offsetss   rcCst|tr|St|tr tdz |}Wnty>Yn"0t|ts\tdt|j|S|}z |}WntyYnD0t|tstdt|jddl }|j dt|jt dd|Stdt|jdS)Nz$integer argument expected, got floatz$__index__ returned non-int (type %s)z"__int__ returned non-int (type %s)r z$an integer is required (got type %s)r) stacklevel) rrsfloatr __index__AttributeErrorr__name____int__warningswarnDeprecationWarning)valueZorigrr r r_check_int_fieldsB        rcCst|}t|}t|}t|kr,tks@ntdttf|d|krTdks`ntd|t||}d|kr~|ksntd|||||fS)Nzyear must be in %d..%dr r,zmonth must be in 1..12zday must be in 1..%d)rrrrIr!r&r r r_check_date_fieldss  rcCst|}t|}t|}t|}d|kr4dks@ntd|d|krTdks`ntd|d|krtdksntd|d|krdksntd||d vrtd ||||||fS) Nr zhour must be in 0..23;zminute must be in 0..59zsecond must be in 0..59?Bz microsecond must be in 0..999999)r r zfold must be either 0 or 1)rrI)hourminutesecondr\foldr r r_check_time_fieldss     rcCs|durt|tstddS)Nz4tzinfo argument must be None or of a tzinfo subclass)rrr)tzr r r_check_tzinfo_argsrcCs tdt|jt|jfdS)Nzcan't compare '%s' to '%s')rrrr r r r _cmperrorsrcCsRt||\}}|d9}|dkr&||kn||k}|sF||krN|ddkrN|d7}|S)Nrr r )r0)abqrZgreater_than_halfr r r_divide_and_rounds rc@seZdZdZd>ddZddZddZd d Zed d Z ed dZ eddZ ddZ e Z ddZddZddZddZddZddZeZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Z d7d8Z!d9d:Z"d;d<Z#d=S)?r)_days_seconds _microseconds _hashcoder cCsd}} } ||d7}||d|d7}||d7}t|trtt|\} }t| d\} } t| } t|}nd} |}t|trt|\}}t|}|| 7}n| }t|d\}}||7}| t|7} |d }t|trt||}t|d \}}t|d\}}||7}| |7} n@t|}t|d \}}t|d\}}||7}| |7} t||}t|d \}} | |7} t| d\}} ||7}t|d krtd |t |}||_ | |_ | |_ d |_|S)Nr r8<rGg@gQ.A@Bɚ;z$timedelta # of days is too large: %dr )rr_mathmodfrsr0roundabs OverflowErrorrh__new__rrrr)clsrUrDrFrErCrBZweeksr<rWrKZdayfracZdaysecondsfracZdaysecondswholeZ secondsfracZusdoubleselfr r rrsZ             ztimedelta.__new__cCspg}|jr|d|j|jr0|d|j|jrF|d|j|sT|dd|jj|jjd|fS)Nzdays=%dz seconds=%dzmicroseconds=%d0 %s.%s(%s), )rrarr __class__ __module__ __qualname__rf)rargsr r r__repr__Qs ztimedelta.__repr__cCsdt|jd\}}t|d\}}d|||f}|jrLdd}d||j|}|jr`|d|j}|S)Nrz %d:%02d:%02dcSs|t|dkrdpdfS)Nr rWrO)r)r4r r rpluraldsz!timedelta.__str__..pluralz %d day%s, rT)r0rrr)rr>r?r=rWrr r r__str___sztimedelta.__str__cCs|jd|jd|jdSNrr)rUrDrFrr r r total_secondsks ztimedelta.total_secondscCs|jSr%rrr r rrUqsztimedelta.dayscCs|jSr%)rrr r rrDvsztimedelta.secondscCs|jSr%)rrr r rrF{sztimedelta.microsecondscCs2t|tr.t|j|j|j|j|j|jStSr%rrrrrNotImplementedrotherr r r__add__s     ztimedelta.__add__cCs2t|tr.t|j|j|j|j|j|jStSr%rrr r r__sub__s     ztimedelta.__sub__cCst|tr| |StSr%)rrrrr r r__rsub__s  ztimedelta.__rsub__cCst|j |j |j Sr%)rrrrrr r r__neg__sztimedelta.__neg__cCs|Sr%r rr r r__pos__sztimedelta.__pos__cCs|jdkr| S|SdSNr rrr r r__abs__s ztimedelta.__abs__cCs`t|tr(t|j||j||j|St|tr\|}|\}}tddt |||St Sr) rrsrrrrr_to_microsecondsas_integer_ratiorrrrusecrrr r r__mul__s    ztimedelta.__mul__cCs|jd|jd|jSrrrrrr r rrsztimedelta._to_microsecondscCsNt|ttfstS|}t|tr0||St|trJtdd||SdSr)rrsrrr)rrrr r r __floordiv__s   ztimedelta.__floordiv__cCs~t|tttfstS|}t|tr2||St|trNtddt||St|trz|\}}tddt|||SdSr)rrsrrrrrrrr r r __truediv__s     ztimedelta.__truediv__cCs*t|tr&||}tdd|StSr)rrrr)rrrr r r__mod__s  ztimedelta.__mod__cCs4t|tr0t||\}}|tdd|fStSr)rrr0rr)rrrrr r r __divmod__s  ztimedelta.__divmod__cCs t|tr||dkStSdSrrrrrrr r r__eq__s ztimedelta.__eq__cCs t|tr||dkStSdSrrrr r r__le__s ztimedelta.__le__cCs t|tr||dkStSdSrrrr r r__lt__s ztimedelta.__lt__cCs t|tr||dkStSdSrrrr r r__ge__s ztimedelta.__ge__cCs t|tr||dkStSdSrrrr r r__gt__s ztimedelta.__gt__cCst||Sr%)r _getstaterr r rrsztimedelta._cmpcCs|jdkrt||_|jSNr rhashrrr r r__hash__s ztimedelta.__hash__cCs|jdkp|jdkp|jdkSrrrr r r__bool__s  ztimedelta.__bool__cCs|j|j|jfSr%rrr r rrsztimedelta._getstatecCs|j|fSr%rrrr r r __reduce__sztimedelta.__reduce__N)r r r r r r r )$rrr __slots__rrrrpropertyrUrDrFr__radd__rrrrrr__rmul__rrrrrrrrrrrrrrrr r r rrsJ e          ri6errrr)rUrBrCrDrF)rFc@s<eZdZdZdCddZeddZeddZed d Zed d Z ed dZ ddZ ddZ ddZ ddZddZeZeddZeddZeddZdd Zd!d"ZdDd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4ZeZ d5d6Z!d7d8Z"d9d:Z#d;d<Z$d=d>Z%d?d@Z&dAdBZ'dS)Er)_year_month_dayrNcCs|durt|ttfrt|dkrdt|ddkrBdkrnnRt|trzz|d}WntyxtdYn0t |}| |d|_ |St |||\}}}t |}||_ ||_||_d|_ |S) Nrr rr-r,latin1znFailed to encode latin1 string when unpickling a date object. pickle.load(data, encoding='latin1') is assumed.r )rbytesrrbordencodeUnicodeEncodeErrorrIrhr_date__setstaterrrrr)rrr r'rr r rr7s6         z date.__new__c Cs(t|\ }}}}}}}} } ||||Sr%)r9 localtime) rtrr;r<r=r>r?weekdayjdaydstr r r fromtimestampYszdate.fromtimestampcCst}||Sr%r9rrrrr r rtoday_sz date.todaycCst|\}}}||||Sr%)r5)rr4rr;r<r r r fromordinaleszdate.fromordinalcCsFt|tstdz|t|WSty@td|Yn0dSN#fromisoformat: argument must be strInvalid isoformat string: )rrrrt ExceptionrI)r date_stringr r r fromisoformatos   zdate.fromisoformatc Cst|krtks$ntd|d|kr8dksnd}|dkrrt|ddd}|dksn|dkrrt|rrd }|rtd |d|krd ksntd |d |dd|d}t|}||}|t|S)NzYear is out of range: r 5Tr r8rr-FzInvalid week: rqzInvalid weekday: z (range is [1, 7]))rrrIr)r_isoweek1mondayr5) rrweekr'Z out_of_rangeZ first_weekdayZ day_offsetZday_1Zord_dayr r rfromisocalendar{s$zdate.fromisocalendarcCs d|jj|jj|j|j|jfS)Nz%s.%s(%d, %d, %d))rrrrrrrr r rrs z date.__repr__cCs.|dpd}dt|t|j|j|jfS)Nr8z%s %s %2d 00:00:00 %04d) toordinal _DAYNAMES _MONTHNAMESrrrrrr r rctimes z date.ctimecCst|||Sr%)rprirrMr r rrgsz date.strftimecCs:t|tstdt|jt|dkr2||St|SNzmust be str, not %sr rrrrrrbrgrr r r __format__s    zdate.__format__cCsd|j|j|jfS)Nz%04d-%02d-%02d)rrrrr r r isoformats zdate.isoformatcCs|jSr%)rrr r rrsz date.yearcCs|jSr%)rrr r rr sz date.monthcCs|jSr%)rrr r rr'szdate.daycCst|j|j|jddddS)Nr r )r@rrrrr r rriszdate.timetuplecCst|j|j|jSr%)r)rrrrr r rrszdate.toordinalcCs:|dur|j}|dur|j}|dur*|j}t||||Sr%)rrrr)rrr r'r r rresz date.replacecCst|tr||dkStSrrrrrrr r rrs z date.__eq__cCst|tr||dkStSrrrr r rrs z date.__le__cCst|tr||dkStSrrrr r rr s z date.__lt__cCst|tr||dkStSrrrr r rrs z date.__ge__cCst|tr||dkStSrrrr r rrs z date.__gt__cCsB|j|j|j}}}|j|j|j}}}t|||f|||fSr%)rrrr)rrrr;r<Zy2Zm2Zd2r r rrsz date._cmpcCs|jdkrt||_|jSrrrr r rr!s z date.__hash__cCsJt|trF||j}d|kr,tkr>nnt||StdtS)Nr result out of range) rrrrU _MAXORDINALrrrr)rror r rr)s  z date.__add__cCsDt|tr|t|j St|tr@|}|}t||StSr%)rrrUrrr)rrdays1days2r r rr4s   z date.__sub__cCs|ddSr6rrr r rr>sz date.weekdaycCs|dpdS)Nr8rrr r r isoweekdayDszdate.isoweekdaycCs|j}t|}t|j|j|j}t||d\}}|dkr^|d8}t|}t||d\}}n$|dkr|t|dkr|d7}d}t||d|dS)Nr8r r 4)rr r)rrr0_IsoCalendarDate)rr week1mondayrr r'r r r isocalendarIs zdate.isocalendarcCs&t|jd\}}t|||j|jgfSN)r0rrrr)ryhiylor r rrgszdate._getstatecCs"|\}}|_|_|d||_dSr$)rrr)rstringr&r'r r r __setstatekszdate.__setstatecCs|j|fSr%rrr r rroszdate.__reduce__)NN)NNN)(rrrrr classmethodrrrr r rrrgrrrrrr r'rirrerrrrrrrrrrrrr#rrrr r r rrsV "     $       rr,r)rUc@s8eZdZdZddZddZddZdd Zd d Zd S) rr cCs tddS)Nz&tzinfo subclass must override tzname()NotImplementedErrorrdtr r rr`sz tzinfo.tznamecCs tddS)Nz)tzinfo subclass must override utcoffset()r+r-r r rr^sztzinfo.utcoffsetcCs tddS)Nz#tzinfo subclass must override dst()r+r-r r rrsz tzinfo.dstcCst|tstd|j|ur$td|}|durZ!d?d@Z"dS)Fr)_hour_minute_second _microsecond_tzinfor_foldr NrcCst|ttfrt|dkrt|ddd@dkrt|trfz|d}WntydtdYn0t |}| ||p|dd|_ |St |||||\}}}}}t |t |}||_||_||_||_||_d|_ ||_|S) Nr7r r r.rznFailed to encode latin1 string when unpickling a time object. pickle.load(data, encoding='latin1') is assumed.r )rrrrbrrrrIrhr_time__setstaterrrr<r=r>r?r@rA)rrrrr\rrrr r rrs6       z time.__new__cCs|jSr%r<rr r rrsz time.hourcCs|jSr%r=rr r rr#sz time.minutecCs|jSr%r>rr r rr(sz time.secondcCs|jSr%r?rr r rr\-sztime.microsecondcCs|jSr%r@rr r rr2sz time.tzinfocCs|jSr%rArr r rr7sz time.foldcCs$t|tr|j|dddkStSdS)NT allow_mixedr rrrrrr r rr?s z time.__eq__cCs t|tr||dkStSdSrrMrr r rrEs z time.__le__cCs t|tr||dkStSdSrrMrr r rrKs z time.__lt__cCs t|tr||dkStSdSrrMrr r rrQs z time.__ge__cCs t|tr||dkStSdSrrMrr r rrWs z time.__gt__Fc Cs|j}|j}d}}||ur"d}n|}|}||k}|rht|j|j|j|jf|j|j|j|jfS|dusx|dur|rdStd|jd|j|tdd}|jd|j|tdd} t||j|jf| |j|jfS)NTrz$cannot compare naive and aware timesrr rS) r@r^rr<r=r>r?rr) rrrLmytzottzmyoffotoff base_compareZmyhhmmZothhmmr r rr]s2  z time._cmpcCs|jdkr|jr|jdd}n|}|}|sBt|d|_nztt|j|j d|tdd\}}|tdd}d|krdkrnntt |||j |j |_nt|||j |j f|_|jS) Nr r rBrBrCr rRrSr.) rrrer^rrr0rrrrrr\)rrtzoffrmr;r r rrys z time.__hash__cCs|}t|Sr%)r^rY)rrVr r r_tzstrsz time._tzstrcCs|jdkrd|j|jf}n|jdkr2d|j}nd}d|jj|jj|j|j|f}|jdurx|ddd|jd}|jr|ddd }|S) Nr z, %d, %dz, %drOz%s.%s(%d, %d%s)r , tzinfo=%rr: , fold=1)) r?r>rrrr<r=r@rArrWr r rrs     z time.__repr__rAcCs0t|j|j|j|j|}|}|r,||7}|Sr%)rNr<r=r>r?rU)rrLrWrr r rrs ztime.isoformatcCsFt|tstdz|t|WSty@td|Yn0dSr)rrrrrrI)rZ time_stringr r rr s   ztime.fromisoformatc Cs(ddd|j|j|jdddf }t|||S)Nilr r r )r<r=r>rp)rrMrir r rrgs  z time.strftimecCs:t|tstdt|jt|dkr2||St|Srrrr r rrs    ztime.__format__cCs(|jdurdS|jd}td||SNr^r@r^rrrlr r rr^s    ztime.utcoffsetcCs&|jdurdS|jd}t||Sr%r@r`rrrr r rr`s   z time.tznamecCs(|jdurdS|jd}td||SNrr@rrr[r r rrs   ztime.dstTcCsl|dur|j}|dur|j}|dur*|j}|dur8|j}|durF|j}|durT|j}t|||||||dSNTrB)rrrr\rrAr)rrrrr\rrr r rresz time.replacer-cCspt|jd\}}t|d\}}|j}|jr:|dkr:|d7}t||j|j|||g}|jdurb|fS||jfSdSNr%r-)r0r?r<rArr=r>r@)rprotocolus2us3us1rm basestater r rrs  ztime._getstatecCst|durt|tstd|\}|_|_}}}|dkrHd|_|d|_n d|_||_|d>|Bd>|B|_||_dS)Nbad tzinfo state argrCr rbr rq) r _tzinfo_classrr=r>rAr<r?r@)rr(rrmrfrdrer r rr) s ztime.__setstatecCs|j||fSr%rrrcr r r __reduce_ex__-sztime.__reduce_ex__cCs |dSr"rkrr r rr0sztime.__reduce__)r r r r N)F)rA)NNNNT)r-)#rrrrrrrrrr\rrrrrrrrrrUrrrr*r rgrr^r`rrerrDrkrr r r rrsR(                rc@seZdZejejZdcddddZeddZedd Z ed d Z ed d Z eddZ eddZ eddZeddddZeddZededdZeddZedfddZedd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zdgddd/d0Zd1d2Zdhd3d4Zd5d6Zdid9d:Zd;d<Z d=d>Z!ed?d@Z"dAdBZ#dCdDZ$dEdFZ%dGdHZ&dIdJZ'dKdLZ(dMdNZ)dOdPZ*djdRdSZ+dTdUZ,e,Z-dVdWZ.dXdYZ/dkd[d\Z0d]d^Z1d_d`Z2dadbZ3dS)lrNr rBc  Cst|ttfrt|dkrdt|ddd@kr>dkrnnTt|trvzt|d}WntyttdYn0t|} | ||d | _ | St |||\}}}t ||||| \}}}}} t |t|} || _|| _|| _|| _|| _|| _|| _|| _d | _ | | _| S) Nrrr rr-rCr,rzrFailed to encode latin1 string when unpickling a datetime object. pickle.load(data, encoding='latin1') is assumed.r )rrrrbrrrIrhr_datetime__setstaterrrrrrrr<r=r>r?r@rA) rrr r'rrrr\rrrr r rrBsB        zdatetime.__new__cCs|jSr%rErr r rrfsz datetime.hourcCs|jSr%rFrr r rrkszdatetime.minutecCs|jSr%rGrr r rrpszdatetime.secondcCs|jSr%rHrr r rr\uszdatetime.microsecondcCs|jSr%rIrr r rrzszdatetime.tzinfocCs|jSr%rJrr r rrsz datetime.foldc Cst|\}}t|d}|dkr4|d7}|d8}n|dkrL|d8}|d7}|rVtjntj}||\ }}} } } } } }}t| d} |||| | | | ||}|durh|shd}||krtj dr|S|||dd\}}} } } } |||| | | | ||}||t d|}|j dkr||||t dddd\}}} } } } |||| | | | ||}||kr|d|_ n|dur|| |}|S) Nrrr r rrwinr7)rrrr9gmtimerminsysplatform startswithrrUrAr0)rrrrZfracrK converterrr;r<r=r>r?rrrresultmax_fold_secondsZprobe1ZtransZprobe2r r r_fromtimestamps6     *   zdatetime._fromtimestampcCst||||du|Sr%)rrw)rrrr r rrszdatetime.fromtimestampcCs||ddS)NT)rwrr r rutcfromtimestampszdatetime.utcfromtimestampcCst}|||Sr%r)rrrr r rnowsz datetime.nowcCst}||Sr%)r9rrxrr r rutcnowszdatetime.utcnowTc Cs\t|tstdt|ts$td|dur2|j}||j|j|j|j|j |j |j ||j d S)Nz%date argument must be a date instancez%time argument must be a time instanceTrB) r _date_classr _time_classrrr r'rrrr\r)rrrrr r rcombines  zdatetime.combinecCst|tstd|dd}|dd}z t|}Wn tyVtd|Yn0|rz t|}Wqtytd|Yq0ngd}|||S)Nrr rr r)r r r r N)rrrrtrIr)rrZdstrrxZdate_componentsZtime_componentsr r rr s       zdatetime.fromisoformatcCsD|}|durd}n|r d}nd}t|j|j|j|j|j|j|S)Nr r r )rr@rr r'rrr)rrr r rris zdatetime.timetuplec stdddd}|tdd}fdd}|||}||}||}||kr|| |f|j}|||}||kr|Sn||}||}||} | |kr|S||kr|Sttf|j||S)Nr rr cs>t|dd\}}}}}}t||||||tddS)Nr7r r )r9rrr)rorr;r<r=r>r?Zepochr rlocalszdatetime._mktime..local)rrrmaxrp) rrvrrru1t1u2rt2r rr_mktimes(    zdatetime._mktimecCs0|jdur |}||jdS|tSdS)Nr)r@rr\_EPOCHrrXr r r timestamp s zdatetime.timestampcCsT|}|r||8}|j|j|j}}}|j|j|j}}}t||||||dSr)r^rr r'rrrr@)rrlrr;r<r=r>r?r r r utctimetuple(s zdatetime.utctimetuplecCst|j|j|jSr%)rrrrrr r rr1sz datetime.datecCst|j|j|j|j|jdSNrB)rrrrr\rrr r rr5sz datetime.timecCs t|j|j|j|j|j|jdSr)rrrrr\r@rrr r rtimetz9szdatetime.timetzc  Cs|dur|j}|dur|j}|dur*|j}|dur8|j}|durF|j}|durT|j}|durb|j}|durp|j}| dur~|j} t |||||||||| d Sr`) rr r'rrrr\rrr) rrr r'rrrr\rrr r rre>s*zdatetime.replacecCs\|jdur|}n|ttdd}t|}t|dd}|j}|j}t t|d|S)Nr )rDr7) rrrrr9rr tm_gmtofftm_zoner)rtsZlocaltmrZgmtoffzoner r r_local_timezoneWs   zdatetime._local_timezonecCs|dur|}nt|ts$td|j}|durF|}||}n,||}|durr|jdd}||}||ur~|S||j|d}||S)Nz)tz argument must be an instance of tzinfor)rrrrr^rer0)rrrNZmyoffsetrr r r astimezonecs      zdatetime.astimezonecCs:|dpd}dt|t|j|j|j|j|j|jfS)Nr8z%s %s %2d %02d:%02d:%02d %04d) rrrrrr<r=r>rrr r rr~s zdatetime.ctimeTrAcCsNd|j|j|j|ft|j|j|j|j|}|}t |}|rJ||7}|S)Nz%04d-%02d-%02d%c) rrrrNr<r=r>r?r^rY)rseprLrWrVrr r rrszdatetime.isoformatcCs|j|j|j|j|j|j|jg}|ddkr2|d=|ddkrD|d=d|jj|jj d t t |f}|j dur|ddd|j d}|jr|ddd}|S)Nr r rrrVr:rW)rrrr<r=r>r?rrrrfmaprr@rA)rLrWr r rrs     zdatetime.__repr__cCs |jddS)N )r)rrr r rrszdatetime.__str__cCsddl}||||Sr) _strptimeZ_strptime_datetime)rrrJrr r rstrptimeszdatetime.strptimecCs(|jdurdS|j|}td||SrYrZr[r r rr^s    zdatetime.utcoffsetcCs&|jdurdS|j|}t||Sr%r\r]r r rr`s   zdatetime.tznamecCs(|jdurdS|j|}td||Sr^r_r[r r rrs   z datetime.dstcCs2t|tr|j|dddkSt|ts*tSdSdS)NTrKr F)rrrrrrr r rrs   zdatetime.__eq__cCs4t|tr||dkSt|ts&tSt||dSrrrrrrrrr r rrs   zdatetime.__le__cCs4t|tr||dkSt|ts&tSt||dSrrrr r rrs   zdatetime.__lt__cCs4t|tr||dkSt|ts&tSt||dSrrrr r rrs   zdatetime.__ge__cCs4t|tr||dkSt|ts&tSt||dSrrrr r rrs   zdatetime.__gt__Fc Cs|j}|j}d}}||ur"d}nT|}|}|rn||j|j dkrRdS||j|j dkrndS||k}|rt|j|j|j|j|j |j |j f|j|j|j|j|j |j |j fS|dus|dur|rdSt d||}|j dkrdS|rdpdS)NTrBrz(cannot compare naive and aware datetimesr r r )r@r^rerrrrrr<r=r>r?rrU) rrrLrNrOrPrQrRdiffr r rrs>    z datetime._cmpc Cst|tstSt||j|j|j|jd}||7}t|j d\}}t|d\}}d|j krht krnn*t | t|j t||||j|jdStddS)Nrrrr rr)rrrrr<r=r>r?r0rDrUrrr}rrrrFr@r)rrr/rremrrr r rr4s& zdatetime.__add__c Cst|ts"t|tr|| StS|}|}|j|jd|jd}|j|jd|jd}t|||||j|j}|j |j ur|S| }| }||kr|S|dus|durt d|||S)Nrrz(cannot mix naive and timezone-aware time) rrrrrr>r=r<r?r@r^r) rrrrZsecs1Zsecs2baserPrQr r rrIs*     zdatetime.__sub__cCs|jdkr|jr|jdd}n|}|}|durFt|d|_nDt|j|j|j }|j d|j d|j }tt |||j||_|jS)Nr r rBrr)rrrer^rrr)rr r'rrrrr\)rrrTrUrDr r rras zdatetime.__hash__r-c Cst|jd\}}t|jd\}}t|d\}}|j}|jrJ|dkrJ|d7}t||||j|j|j|j |||g }|j dur~|fS||j fSdSra) r0rr?rrArrr<r=r>r@) rrcr&r'rdrerfr;rgr r rrrs   zdatetime._getstatec Cs|durt|tstd|\ }}}|_|_|_|_}}}|dkrTd|_|d|_n d|_||_|d||_ |d>|Bd>|B|_ ||_ dS)NrhrCr rbr r%rq) rrirrr<r=r>rArrr?r@) rr(rr&r'r;rfrdrer r rr)s zdatetime.__setstatecCs|j||fSr%rrjr r rrkszdatetime.__reduce_ex__cCs |dSr"rlrr r rrszdatetime.__reduce__)NNr r r r N)N)N)T)NNNNNNNT)N)rrA)F)r-)4rrrrrrrrrrrr\rrr*rwrrxryrzr}r rirrrrrerrrrrrrr^r`rrrrrrrrrrrrrmrkrr r r rr:s  $       +       #        % rcCs8d}t|dd}|dd}||}||kr4|d7}|S)Nr-r r7r8)r))rZTHURSDAYZfirstdayZ firstweekdayr"r r rr s  r c@seZdZdZeZefddZedddZddZ d d Z d d Z d dZ ddZ ddZddZddZddZedddZe ZeddZdS)r)_offset_namecCslt|tstd||jur,|s&|jSd}nt|ts>td|j|krV|jks`ntd| ||S)Nzoffset must be a timedeltazname must be a stringzYoffset must be a timedelta strictly between -timedelta(hours=24) and timedelta(hours=24).) rrr_Omittedrr _minoffset _maxoffsetrI_create)rrlrr r rrs   ztimezone.__new__NcCst|}||_||_|Sr%)rrrr)rrlrrr r rrs ztimezone._createcCs|jdur|jfS|j|jfSr%)rrrr r rr1s ztimezone.__getinitargs__cCst|tr|j|jkStSr%)rrrrrr r rrs  ztimezone.__eq__cCs t|jSr%)rrrr r rrsztimezone.__hash__cCsL||jurdS|jdur0d|jj|jj|jfSd|jj|jj|j|jfS)Nzdatetime.timezone.utcz %s.%s(%r)z %s.%s(%r, %r))rrrrrrrr r rrs  ztimezone.__repr__cCs |dSr%)r`rr r rrsztimezone.__str__cCs$t|ts|dur|jStddS)Nz8utcoffset() argument must be a datetime instance or None)rrrrr-r r rr^sztimezone.utcoffsetcCs:t|ts|dur.|jdur(||jS|jStddS)Nz5tzname() argument must be a datetime instance or None)rrr_name_from_offsetrrr-r r rr`s   ztimezone.tznamecCs"t|ts|durdStddS)Nz2dst() argument must be a datetime instance or None)rrrr-r r rrsz timezone.dstcCs2t|tr&|j|urtd||jStddS)Nzfromutc: dt.tzinfo is not selfz6fromutc() argument must be a datetime instance or None)rrrrIrrr-r r rr0s    ztimezone.fromutcr.r )rBrFc Cs|sdS|tdkr d}| }nd}t|tdd\}}t|tdd\}}|j}|j}|rd||dd |dd |dd |d  S|rd||dd |dd |dSd||dd |dS) NZUTCr rPrQr rRrSZ02drurvZ06d)rr0rDrF)r/rXrBrnrCrDrFr r rr s"  ztimezone._name_from_offset)N)rrrrrhrrr*rr1rrrrr^r`rr0rrr staticmethodrr r r rrs$   rrSrr)*)__doc__)rA)>__all__rr9mathrrqrrrrrr#dbmr(rarrr!r$r)r1r2r3r5rrr@rNrYrprtr}rrrrrrrrrrrprZ resolutionrr{rr9r6r!rir|rr rrrrZ _datetime ImportErrorrr r r rs    ? @')    =   [ EX a  tG