ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ @%Sc@sdddgZddlZddlTddlmZddd d d d d ddddddddddddddddddd gZed!Zed"d/Z ed%d0Z e e Z ed&eee Zeee d'e ee d'AZeeeeee eAZeeee eeeeAZd(Zd)ZeZeed*eZd+ZeZeed*eZd,Zd-Zd.ZeZeed*eZ dS(1tis_valid_transferlisttis_valid_pathdatatis_valid_animation_timingiN(t*(tpartialtfocusintfocusouttactivatetclickt mousedowntmouseupt mouseovert mousemovetmouseouttDOMSubtreeModifiedtDOMNodeInsertedtDOMNodeRemovedtDOMNodeRemovedFromDocumenttDOMNodeInsertedtoDocumenttDOMAttrModifiedtDOMCharacterDataModifiedtSVGLoadt SVGUnloadtSVGAborttSVGErrort SVGResizet SVGScrolltSVGZoomt beginEventtendEventt repeatEvents+ -t,iit;tEt.cCs4y|j|dttSWntk r/tSXdS(NtparseAll(t parseStringtTruetParseExceptiontFalse(ttermtparser((sH/opt/alt/python27/lib/python2.7/site-packages/svgwrite/data/svgparser.pythas_valid_syntax%s  cCstddttttdd}tddttttd}tddttttd}tddttttttd}tddtd}td dtd}||B|B|B|B|B}|tt|S( Ntmatrixt(it)t translatetscaletrotatetskewXtskewY(tLiteraltnumbertSuppresstcommatOptionalt ZeroOrMore(R+R.R/R0R1R2t transform((sH/opt/alt/python27/lib/python2.7/site-packages/svgwrite/data/svgparser.pytbuild_transferlist_parser-s*&&.R)cCst}|t|}ttA}td}|tt|}|tt|}td}td|}td|}td|} td|} |t|t|} td| tt| } |t|} td| tt| }|t|}td |tt|}td |tt|}|t|ttt|t|t|}td |tt|}||B| B| B| B|B|B|B|B}t|t|S( Ns0 1sZ zsM msL lsH hsV vsC csS ssQ qsT tsA a(R4R6tinteger_constanttscientific_constanttoneOfR8t OneOrMore(t coordinatetcoordinate_pairtnonnegative_numbertflagtcomma_delimited_coordinatest comma_delimited_coordinate_pairst closepathtmovetotlinetothorizontal_linetotvertical_linetotcurveto_argument_sequencetcurvetot smooth_curveto_argument_sequencetsmooth_curvetot*quadratic_bezier_curveto_argument_sequencetquadratic_bezier_curvetotsmooth_quadratic_bezier_curvetotelliptical_arc_argumenttelliptical_arctdrawto_command((sH/opt/alt/python27/lib/python2.7/site-packages/svgwrite/data/svgparser.pytbuild_pathdata_parser<s,   . &c Csttdd}t}t}|}|}t}td}|td|t|}|d|td|}|d|d|td|} | |B|BS(Ntexactis h min s msR"t:(tWordtnumsR;R=R7( tdigit2t timecounttfractiontsecondstminutesthourstmetrict timecount_valtpartial_clock_valtfull_clock_val((sH/opt/alt/python27/lib/python2.7/site-packages/svgwrite/data/svgparser.pytbuild_clock_val_parserns $c Csttdd}t}|}|}|}|}|}ttdd}tdt|d|B}|d|td|td|} | t|} |d|d|} | d| } | | B| BS( NRUiitZRVR"t-tT(RWRXR;R3tsignR7( RYR[R\R]thours24tdaytmonthtyearttzdthhmmsstwalltimetdatetdatetime((sH/opt/alt/python27/lib/python2.7/site-packages/svgwrite/data/svgparser.pytbuild_wall_clock_val_parser|s*c Cst}t}tt}tdttd}tt|}td|d}tdtt ddd|}t|dtd t d|}t|d||}|dtd |} t|} | | B|B|B|B|Btd B} | t t | S( Nt#s-_s wallclock(R-s accessKey(RUiR"srepeat(s begin endt indefinite( RcRqR=t event_namesR7RWt alphanumsRgR3talphasR;R8t semicolon( t clock_valtwallclock_valuet event_reftid_valuet opt_clock_valtwallclock_sync_valuetaccesskey_valuet repeat_valuet event_valuetsyncbase_valuet offset_valuet begin_value((sH/opt/alt/python27/lib/python2.7/site-packages/svgwrite/data/svgparser.pytbuild_animation_timing_parsers   $& $(ii(ii(!t__all__tsyst pyparsingt functoolsRRtR=RgR3R6RwRWRXR;tCaselessLiteralR7texponenttCombinetfractional_constantR<R4R*R:ttransferlist_parserRRTtpathdata_parserRRcRqRtanimation_timing_parserR(((sH/opt/alt/python27/lib/python2.7/site-packages/svgwrite/data/svgparser.pyt s>        .