§
    ¥”j&Q  ã                   ó”   — d Z ddlmZ ddlmZmZ ddlmZ ddlmZm	Z	 ddl
mZmZmZmZmZ d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )u?   Parse and draw definitions: gradients, patterns, masks, usesâ€¦é    )Úcycle)ÚceilÚhypoté   )ÚMatrixé   )Úbounding_boxÚis_valid_bounding_box)Úalpha_valueÚcolorÚ	parse_urlÚsizeÚ	transformc                 óê  — ddl m} t          |                     | j        ¦  «        ¦  «        }t          | j        ¦  «        }|j        dk    rt          d¦  «        }|d d…         dk    p|d d…         |d d…         k    }|j        rˆ|r†|j        | j        v r%| j        |j                                      ¦   «         }n·	 | j	         
                    |j        ¦  «                             ¦   «         }|| j        |j        <   nu# t          $ r Y d S w xY w|                     ¦   «         }	 |                      |¦  «        }	 ||	|¦  «        }
|
                     |¦  «         |
j	        }n# t          $ r Y d S w xY w|S )Nr   )ÚSVGÚdataÚ é   )r   r   r   )r   r   r   Úget_hrefÚurlÚschemeÚfragmentÚ	use_cacheÚcopyÚtreeÚ	get_childÚ	ExceptionÚgeturlÚurl_fetcherÚget_intrinsic_size)ÚsvgÚnodeÚ	font_sizer   Ú
parsed_urlÚsvg_urlÚsame_originr   r   Úbytestring_svgÚuse_svgs              úb/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/svg/defs.pyÚget_use_treer*      s®  € ØÐÐÐÐÐå˜4Ÿ=š=¨¬Ñ1Ô1Ñ2Ô2€JÝ˜œÑ Ô €GØ„~˜ÒÐÝ˜B‘-”-ˆà�2�A�2Œ˜,Ò&ð 	&Ø�2�A�2Œ˜' " 1 "œ+Ò%ð ð Ôð  ˜{ð  ØÔ #¤-Ð/Ð/Ø”= Ô!4Ô5×:Ò:Ñ<Ô<ˆDˆDð:Ø”x×)Ò)¨*Ô*=Ñ>Ô>×CÒCÑEÔE�ð 6:�”˜jÔ1Ñ2Ð2øõ ð ð ð Ø��ðøøøð
 ×ÒÑ!Ô!ˆð	 Ø Ÿ_š_¨SÑ1Ô1ˆNØ�c˜.¨#Ñ.Ô.ˆGð ×&Ò& yÑ1Ô1Ð1Ø”<ˆDˆDøõ	 ð 	ð 	ð 	ØˆFˆFð	øøøð €Ks$   Â=1C> Ã>
DÄDÄ$!E" Å"
E0Å/E0c                 ó¼  — t          | ||¦  «        x}€dS |j        dv r©d|j        v r4d|j        v r+|j        d         |j        d<   |j        d         |j        d<   n`d|j        _        t	          | ||d¬¦  «        }t          |¦  «        r2|d         |d	         z   |j        d<   |d
         |d         z   |j        d<   d|j        _        |                     |¦  «         |                     t          |f¦  «        ¦  «         |  	                    | 
                    d¦  «        | 
                    d¦  «        |¦  «        \  }}| j                             ||¬¦  «         dS )zDraw use tags.N)r!   ÚsymbolÚwidthÚheightÚgT©Ústroker   r   r   r   r!   ÚxÚy©ÚeÚf)r*   ÚtagÚattribÚ_etree_noder	   r
   ÚcascadeÚoverride_iterÚiterÚpointÚgetÚstreamr   )r!   r"   r#   r   Úboxr2   r3   s          r)   ÚuserA   -   sX  € å˜S $¨	Ñ2Ô2Ð2ˆÐ;Øˆà„xÐ$Ð$Ð$ð �d”kÐ!Ð! h°$´+Ð&=Ð&=Ø#'¤;¨wÔ#7ˆDŒK˜Ñ Ø$(¤K°Ô$9ˆDŒK˜Ñ!Ð!à#&ˆDÔÔ Ý˜s D¨)¸DÐAÑAÔAˆCÝ$ SÑ)Ô)ð 8Ø'*¨1¤v°°A´¡�”˜GÑ$Ø(+¨A¬°°Q´©�”˜HÑ%Ø$ˆÔÔà‡L‚L�ÑÔÐØ×Ò•t˜T˜G‘}”}Ñ%Ô%Ð%Ø�9Š9�T—X’X˜c‘]”] D§H¢H¨S¡M¤M°9Ñ=Ô=�D€A€qØ„J×Ò˜1 ÐÑ"Ô"Ð"Ð"Ð"ó    c                 ó¦   — || j         v rt          | || j         |         |||¦  «        S || j        v rt          | || j        |         |||¦  «        S dS )zDraw given gradient or pattern.N)Ú	gradientsÚdraw_gradientÚpatternsÚdraw_pattern)r!   r"   Únamer#   Úopacityr1   s         r)   Údraw_gradient_or_patternrJ   F   sv   € àˆsŒ}ÐÐÝØ��s”} TÔ*¨I°wÀñHô Hð 	Hà	�”Ð	Ð	ÝØ��s”| DÔ)¨9°g¸vñGô Gð 	Gð 
Ð	rB   c                 óÒ  ‡3‡4‡5‡6— g }g Š4|D ]¿}|                      t          |r|d         ndt          |                     d¦  «        |d¦  «        ¦  «        ¦  «         t	          |                     dd¦  «        ¦  «        |z  }t          |                     dd¦  «        ¦  «        }	|	xj        |z  c_        ‰4                      |	¦  «         ŒÀ‰4sdS t          ‰4¦  «        dk    r"| j         	                    ‰4d         ¦  «         d	S |  
                    |||¦  «        }
t          |
¦  «        sdS |                     d
¦  «        dk    r*| j        | j        }}|
dd…         \  }}t          ¦   «         }n$d\  }}|
\  }}}}d\  }}t          ||||¬¦  «        }|                     dd¦  «        }|dv r{|d         dk    r2|                     dd¦  «         ‰4                     d‰4d         ¦  «         |d         dk     r0|                      d¦  «         ‰4                      ‰4d         ¦  «         nº|d         |d         k    r]|j        dk    r|                     dd¦  «         n|                     d|d         dz
  ¦  «         ‰4                     d‰4d         ¦  «         |d         |d         k    r9|                      |d         dz   ¦  «         ‰4                      ‰4d         ¦  «         d|j        v r/t%          |                     d¦  «        d|| j        ¦  «        }||z  }|j        dk    r³d}t          |                     dd¦  «        ||¦  «        t          |                     dd¦  «        ||¦  «        }}t          |                     dd¦  «        ||¦  «        t          |                     dd¦  «        ||¦  «        }}t)          ||‰4|||||
|¦	  «	        \  }Š4}�n'|j        dk    sJ ‚d}t          |                     dd ¦  «        ||¦  «        t          |                     d!d ¦  «        ||¦  «        }}t          |                     d"d ¦  «        |t+          ||¦  «        ¦  «        }t          |                     d#|¦  «        ||¦  «        t          |                     d$|¦  «        ||¦  «        } }t          |                     d%d¦  «        |t+          ||¦  «        ¦  «        }!t-          ||‰4|| |!||||||¦  «        \  }Š4}d&„ ‰4D ¦   «         Š3ˆ3fd'„t/          t          ‰3¦  «        dz
  ¦  «        D ¦   «         }"ˆ4fd(„t/          t          ‰4¦  «        dz
  ¦  «        D ¦   «         }#t1          ‰3¦  «        D ][\  }$}%|%dk    rP|$dk    r|#|$dz
           d         |#|$dz
           d<   |$t          ‰4¦  «        dz
  k     r|#|$         d         |#|$         d<   Œ\t1          |"¦  «        D ]$\  }$\  }&}'d|&|'fvr|&|'fdk    r|&|'z  |#|$         d<   Œ%d|j        v rj||z   ||z   })}(|j                             ||¦  «        \  }}|j                             |(|)¦  «        \  }(})|(|z
  |)|z
  }}||(k    r| }|(|}(}||)k    r| }|)|})}| j                             |||||||| j        j        z  ¦  «        }*|*                     ||||¦  «        Š6|d         |d         fŠ5|dv}+t          ‰4¦  «        dz
  d)z  },|dd…         }-ˆ5ˆ6fd*„|#D ¦   «         }.‰6                     ‰5|,|-|.¦  «        }/‰6                     |d+‰5||+|/¦  «        }0tA          d,„ ‰3D ¦   «         ¦  «        rœ‰6 !                    ||||¦  «        }1|d         |d         fŠ5|dv}+t          ‰4¦  «        dz
  d)z  },|dd…         }-ˆ6fd-„|"D ¦   «         }.‰6                     ‰5|,|-|.¦  «        }/|1                     |d.‰5||+|/¦  «        }2d/|2j"        › d0�g|1_        ‰6 #                    |0j"        ¦  «         |* $                    d¦  «         |* %                    ‰6j"        ¦  «         | j         &                    d1|¬2¦  «         | j         '                    |*j"        |¬2¦  «         d	S )3úDraw given gradient node.éÿÿÿÿr   Úoffsetr   zstop-opacityz
stop-colorÚblackFTÚgradientUnitsÚuserSpaceOnUseNr   )r   r   ©r   r   )ÚaÚdr5   r6   ÚspreadMethodÚpad©ÚrepeatÚreflectÚradialGradientéþÿÿÿÚgradientTransformú0 0ÚlinearGradientÚx1Úy1Úx2z100%Úy2r   Úcxz50%ÚcyÚrÚfxÚfyÚfrc                 ó   — g | ]
}|d          ‘ŒS )r   © )Ú.0r   s     r)   ú
<listcomp>z!draw_gradient.<locals>.<listcomp>¦   s   € Ð+Ð+Ð+˜5ˆe�AŒhÐ+Ð+Ð+rB   c                 ó6   •— g | ]}‰|         ‰|d z            f‘ŒS ©r   rj   )rk   ÚiÚalphass     €r)   rl   z!draw_gradient.<locals>.<listcomp>§   s:   ø€ ð )ð )ð )àð 
�Œ�F˜1˜q™5”MÐ"ð)ð )ð )rB   c                 óX   •— g | ]&}‰|         d d…         ‰|dz            d d…         dg‘Œ'S )Nr   r   rj   )rk   ro   Úcolorss     €r)   rl   z!draw_gradient.<locals>.<listcomp>ª   sM   ø€ ð )ð )ð )àð 
�Œ�2�A�2Œ˜˜q 1™uœ b q bÔ)¨1Ð-ð)ð )ð )rB   ©r   r   c              3   óP   •K  — | ] \  }}}‰                      ‰|||¦  «        V — Œ!d S )N©Úcreate_interpolation_function)rk   Úc0Úc1ÚnÚdomainÚgroups       €€r)   ú	<genexpr>z draw_gradient.<locals>.<genexpr>Ï   sQ   øè è € ð (ð (áˆB��Að 	×+Ò+¨F°B¸¸AÑ>Ô>ð(ð (ð (ð (ð (ð (rB   ÚRGBc              3   ó"   K  — | ]
}|d k    V — ŒdS )r   Nrj   )rk   Úalphas     r)   r|   z draw_gradient.<locals>.<genexpr>×   s&   è è € Ð
*Ð
*˜%ˆ5�AŠ:Ð
*Ð
*Ð
*Ð
*Ð
*Ð
*rB   c              3   óR   •K  — | ]!\  }}‰                      d |g|gd¦  «        V — Œ"dS )rs   r   Nru   )rk   rw   rx   r{   s      €r)   r|   z draw_gradient.<locals>.<genexpr>Ý   sS   øè è € ð )ð )á��Bð ×/Ò/°¸¸¸r¸dÀAÑFÔFð)ð )ð )ð )ð )ð )rB   ÚGrayú/z shÚPatternr0   )(ÚappendÚmaxr   r>   r   r   r   Úlenr?   Ú	set_colorÚcalculate_bounding_boxr
   Úinner_widthÚinner_heightr   Úinsertr7   r8   r   Únormalized_diagonalÚspread_linear_gradientr   Úspread_radial_gradientÚrangeÚ	enumerateÚinvertÚtransform_pointÚadd_patternÚctmÚ	add_groupÚcreate_stitching_functionÚadd_shadingÚanyÚset_alpha_stateÚidÚpaint_shadingÚ	set_alphaÚdraw_x_objectÚset_color_spaceÚset_color_special)7r!   r"   Úgradientr#   rI   r1   Ú	positionsÚchildÚstop_opacityÚ
stop_colorr	   r-   r.   Úbx1Úby1Úmatrixr5   r6   rS   rT   ÚspreadÚtransform_matrixÚshading_typer_   r`   ra   rb   Úcoordsrc   rd   re   rf   rg   rh   Úalpha_couplesÚcolor_couplesro   r   Úa0Úa1Úbx2Úby2ÚpatternÚextendÚencodeÚboundsÚsub_functionsÚfunctionÚshadingÚalpha_streamÚalpha_shadingrp   rr   rz   r{   s7                                                      @@@@r)   rE   rE   P   s–	  øøøø€ ð €IØ€FØð "ð "ˆØ×Ò�Ø&Ð-ˆI�bŒMˆM¨AÝ�—’˜8Ñ$Ô$ i°Ñ3Ô3ñ5ô 5ñ 	6ô 	6ð 	6õ # 5§9¢9¨^¸QÑ#?Ô#?Ñ@Ô@À7ÑJˆÝ˜5Ÿ9š9 \°7Ñ;Ô;Ñ<Ô<ˆ
ØÐÔ˜LÑ(ÐÔØ�Š�jÑ!Ô!Ð!Ð!àð ØˆuÝ	ˆV‰Œ˜Ò	Ð	ØŒ
×Ò˜V AœYÑ'Ô'Ð'Øˆtà×-Ò-¨d°I¸vÑFÔF€LÝ  Ñ.Ô.ð ØˆuØ‡|‚|�OÑ$Ô$Ð(8Ò8Ð8Øœ¨Ô)9ˆvˆØ   Ô#‰ˆˆSÝ‘”ˆˆà‰ˆˆvØ!‰
ˆˆ1ˆa�Ø‰ˆˆSÝ˜!˜q A¨Ð+Ñ+Ô+ˆà�\Š\˜.¨%Ñ0Ô0€FØÐ&Ð&Ð&Ø�QŒ<˜!ÒÐØ×Ò˜Q Ñ"Ô"Ð"Ø�MŠM˜!˜V AœYÑ'Ô'Ð'Ø�RŒ=˜1ÒÐØ×Ò˜QÑÔÐØ�MŠM˜& œ*Ñ%Ô%Ð%øð �QŒ<˜9 Qœ<Ò'Ð'ØŒ|Ð/Ò/Ð/à× Ò   AÑ&Ô&Ð&Ð&à× Ò   I¨a¤L°1Ñ$4Ñ5Ô5Ð5Ø�MŠM˜!˜V AœYÑ'Ô'Ð'Ø�RŒ=˜I bœMÒ)Ð)Ø×Ò˜Y rœ]¨QÑ.Ñ/Ô/Ð/Ø�MŠM˜& œ*Ñ%Ô%Ð%à˜hœoÐ-Ð-Ý$Ø�LŠLÐ,Ñ-Ô-¨u°iØÔ#ñ%ô %Ðð " FÑ*ˆà„|Ð'Ò'Ð'Øˆå�—’˜d AÑ&Ô&¨	°5Ñ9Ô9Ý�—’˜d AÑ&Ô&¨	°6Ñ:Ô:ð ˆõ �—’˜d FÑ+Ô+¨Y¸Ñ>Ô>Ý�—’˜d AÑ&Ô&¨	°6Ñ:Ô:ð ˆõ %;Ø�I˜v r¨2¨r°2°|ÀVñ%Mô %MÑ!ˆ	�6˜6™6ð Œ|Ð/Ò/Ð/Ð/Ð/Øˆå�—’˜d EÑ*Ô*¨I°uÑ=Ô=Ý�—’˜d EÑ*Ô*¨I°vÑ>Ô>ð ˆõ �—’˜c 5Ñ)Ô)¨9µe¸EÀ6Ñ6JÔ6JÑKÔKˆå�—’˜d BÑ'Ô'¨°EÑ:Ô:Ý�—’˜d BÑ'Ô'¨°FÑ;Ô;ð ˆõ �(—,’,˜t QÑ'Ô'¨µE¸%ÀÑ4HÔ4HÑIÔIˆÝ$:Ø�I˜v r¨2¨r°2°r¸1¸eÀVØñ%ô %Ñ!ˆ	�6˜6ð ,Ð+ FÐ+Ñ+Ô+€Fð)ð )ð )ð )å•s˜6‘{”{ Q‘Ñ'Ô'ð)ñ )ô )€Mð)ð )ð )ð )å•s˜6‘{”{ Q‘Ñ'Ô'ð)ñ )ô )€Mõ
 ˜fÑ%Ô%ð :ð :‰ˆˆ5Ø�AŠ:ˆ:Ø�1ŠuˆuØ*7¸¸A¹Ô*>¸qÔ*A�˜a !™eÔ$ QÑ'Ø•3�v‘;”; ‘?Ò"Ð"Ø&3°AÔ&6°qÔ&9�˜aÔ  Ñ#øÝ  Ñ/Ô/ð *ð *‰ˆ‰8ˆB�Ø�R˜�HÐÐ " b ¨VÒ!3Ð!3Ø"$ r¡'ˆM˜!Ô˜QÑøà˜hœoÐ-Ð-Ø˜‘;  f¡ˆSˆØ#Ô*×:Ò:¸3ÀÑDÔD‰ˆˆSØ#Ô*×:Ò:¸3ÀÑDÔD‰ˆˆSØ˜c™	 3¨¡9ˆvˆð �Š9ˆ9Ø�FˆEØ˜C�ˆCØ�Š9ˆ9Ø�WˆFØ˜C�ˆCàŒj×$Ò$ØˆS�%˜ ¨°¸¼¼Ñ0GñIô I€Gà×Ò˜c 3¨¨vÑ6Ô6€Eà˜Œl˜I bœMÐ*€FØÐ0Ð0€FÝ�&‰kŒk˜A‰o Ñ'€FØ�q˜�tŒ_€Fð(ð (ð (ð (ð (à&ð(ñ (ô (€Mð ×.Ò.Ø�˜ ñ/ô /€Hà×ÒØ�e˜V V¨V°Xñ?ô ?€Gõ Ð
*Ð
* 6Ð
*Ñ
*Ô
*Ñ*Ô*ð :Ø×,Ò,¨S°#°u¸fÑEÔEˆØ˜A”, 	¨"¤Ð.ˆØÐ4Ð4ˆÝ�f‘+”+ ‘/ VÑ+ˆØ˜1˜R˜4”ˆð)ð )ð )ð )à'ð)ñ )ô )ˆð ×2Ò2Ø�F˜F Mñ3ô 3ˆà$×0Ò0Ø˜& &¨&°&¸(ñDô Dˆà8 =Ô#3Ð8Ð8Ð8Ð9ˆÔà	×Ò˜œ
Ñ#Ô#Ð#Ø×Ò�aÑÔÐØ×Ò˜%œ(Ñ#Ô#Ð#Ø„J×Ò˜y°ÐÑ8Ô8Ð8Ø„J× Ò  ¤°FÐ Ñ;Ô;Ð;Øˆ4rB   c	                 óF  ‡— ddl m}	m}
  |
‰¦  «        \  }}Š| dv �rÎ||k    r |	|‰¦  «        }dddg |gfS ||z
  }ˆfd„t          t	          ‰¦  «        dz
  ¦  «        D ¦   «         }| dk    rWt          d	g|¢R ¦  «        }t          |¦  «        }t          d	g|ddd
…         ¢R ¦  «        }t          |ddd
…         ¦  «        }n~| dk    sJ ‚t          d	g|ddd
…         ¢d	‘|¢R ¦  «        }t          |ddd
…         |z   ¦  «        }t          d	g|¢d	‘|ddd
…         ¢R ¦  «        }t          ||ddd
…         z   ¦  «        }|\  }}}}|d	k    r|||z   fn||z   |f\  }}|d	k    r|||z   fn||z   |f\  }}|                     ||¦  «        \  }}|                     ||¦  «        \  }}||}}||z
  ||z
  }!} ||k     r||fn||f\  }"}#||k     r||fn||f\  }$}%|"|z
  | z  |$|z
  |!z  z   t          | |!¦  «        dz  z  }&|#|z
  | z  |%|z
  |!z  z   t          | |!¦  «        dz  z  }'||'k     r]t          |¦  «        }(| 	                    t          |¦  «        ¦  «         ‰ 	                    ‰d
         |(z   ¦  «         ||(|z  z  }||'k     °]||&k    r_t          |¦  «        }(| 
                    d	t          |¦  «        ¦  «         ‰ 
                    d	‰d	         |(z
  ¦  «         ||(|z  z  }||&k    °_|||z
  |z  z   |||z
  |z  z   }}|||z
  |z  z   |||z
  |z  z   }}||||f})‰||)fS )zRepeat linear gradient.r   ©Úgradient_average_colorÚnormalize_stop_positionsrW   r   ÚsolidNc                 ó8   •— g | ]}‰|d z            ‰|         z
  ‘ŒS rn   rj   )rk   ro   r¡   s     €r)   rl   z*spread_linear_gradient.<locals>.<listcomp>þ   s;   ø€ ð 0ð 0ð 0àð �a˜!‘eÔ˜y¨œ|Ñ+ð0ð 0ð 0rB   rX   r   rM   rY   )Úimagesr½   r¾   r�   r†   r   r’   r   Únextr„   r‹   )*r¨   r¡   rr   r_   r`   ra   rb   r	   r§   r½   r¾   ÚfirstÚlastÚaverage_colorÚstop_lengthÚposition_stepsÚ
next_stepsÚnext_colorsÚprevious_stepsÚprevious_colorsr¥   r¦   ÚbwÚbhr°   r±   Útx1Úty1Útx2Úty2ÚxbÚybÚxvÚyvÚxa1Úxa2Úya1Úya2Ú
min_vectorÚ
max_vectorÚstepr«   s*    `                                        r)   r�   r�   î   sG  ø€ ð JÐIÐIÐIÐIÐIÐIÐIà5Ð5°iÑ@Ô@Ñ€Eˆ4�ØÐ&Ð&Ñ&ð �DŠ=ˆ=Ø2Ð2°6¸9ÑEÔEˆMØ�g˜t R¨-¨Ð8Ð8ð ˜U‘lˆð0ð 0ð 0ð 0å�3˜y™>œ>¨AÑ-Ñ.Ô.ð0ñ 0ô 0ˆð
 �XÒÐÝ Ð3 NÐ3Ð3Ñ4Ô4ˆJÝ ™-œ-ˆKÝ" AÐ#=¨°t°t¸°tÔ(<Ð#=Ð#=Ñ>Ô>ˆNÝ# F¨4¨4¨R¨4¤LÑ1Ô1ˆOˆOà˜YÒ&Ð&Ð&Ð&Ý ÐM N°4°4°R°4Ô$8ÐM¸!ÐM¸nÐMÐMÑNÔNˆJÝ  t t¨ t¤¨vÑ 5Ñ6Ô6ˆKÝ" AÐ#Q¨Ð#Q¸Ð#Q¸NÈ4È4ÈRÈ4Ô<PÐ#QÐ#QÑRÔRˆNÝ# F¨V°D°D°b°D¬\Ñ$9Ñ:Ô:ˆOð (ÑˆˆS�"�bØ&(¨1¢f f�C˜˜r™�?�?°3¸±8¸S°/‰ˆˆSØ&(¨1¢f f�C˜˜r™�?�?°3¸±8¸S°/‰ˆˆSð ×)Ò)¨"¨bÑ1Ô1‰ˆˆSØ×)Ò)¨"¨bÑ1Ô1‰ˆˆSð �cˆBˆØ�s‘˜C #™IˆBˆØ!$ s¢ �C˜�:�:°°c°
‰ˆˆSØ!$ s¢ �C˜�:�:°°c°
‰ˆˆSØ˜R‘x 2‘o¨¨r©°R©Ñ7½5ÀÀR¹=¼=ÈAÑ;MÑMˆ
Ø˜R‘x 2‘o¨¨r©°R©Ñ7½5ÀÀR¹=¼=ÈAÑ;MÑMˆ
ð �ZÒÐÝ˜
Ñ#Ô#ˆDØ�MŠM�$˜{Ñ+Ô+Ñ,Ô,Ð,Ø×Ò˜Y rœ]¨TÑ1Ñ2Ô2Ð2Ø�D˜;Ñ&Ñ&ˆDð	 �ZÒÐð �jÒ Ð Ý˜Ñ'Ô'ˆDØ�MŠM˜!�T /Ñ2Ô2Ñ3Ô3Ð3Ø×Ò˜Q 	¨!¤¨tÑ 3Ñ4Ô4Ð4Ø�T˜KÑ'Ñ'ˆEð	 �jÒ Ð ð �2˜‘7˜eÑ#Ñ# R¨2°©7°dÑ*:Ñ%:ˆ€BØ�2˜‘7˜eÑ#Ñ# R¨2°©7°dÑ*:Ñ%:ˆ€BØ�"�b˜"Ð€FØ�f˜fÐ$Ð$rB   c           
      óF  ‡‡%‡&— ddl m}m}  |‰¦  «        \  }}Š|||z
  |z  z   |||z
  |z  z   }}| dv �rà|                     ¦   «         }‰                     ¦   «         Š&|j                             |	|
¦  «        \  }}t          t          t          |¦  «        t          ||z
  ¦  «        ¦  «        t          t          |¦  «        t          ||z
  ¦  «        ¦  «        ¦  «        }||z
  }t          ||z
  |z  ¦  «        }|dk    red|z   }| dk    r||z  }n1| dk    sJ ‚g }t          |¦  «        D ]}||dd|dz  rd	nd…         z  }Œˆfd
„t          |¦  «        D ¦   «         Š|||z  z  }|dk    r||||||f}‰||fS ||z  }d}t          |¦  «        Š%‰%r`| dk    r	||‰%z  z  }n2| dk    sJ ‚t          ‰%¦  «        D ]}||dd||z   dz  rd	nd…         z  }Œˆ%ˆ&fd„t          ‰%¦  «        D ¦   «         ‰z   Š|‰%z
  }|dk    r||||||f}‰||fS ‰&d         ‰&d	         fdk    sJ ‚d|cxk     rdk     sn J ‚‰&ddd	…         }d|z
  }| dk    r|ddd	…         }t          |d¬¦  «        D ]²\  }}||k    r,|| d…         |z   }ˆ%fd„‰&| d…         D ¦   «         }|‰z   Š n|||k     ru||          }||dz
            } ‰&|dz
            }!||| | g}"||||!g}# ||"|#¦  «        }$|$g||dz
   d…         ¢|¢}ˆ%fd„‰&|dz
   d…         D ¦   «         }|dz
  ‰%z
  g|¢‰¢Š nŒ³||||||f}‰||fS )zRepeat radial gradient.r   r¼   rW   r   r   rX   rY   NrM   c                 ó$   •— g | ]}‰D ]}||z   ‘ŒŒS rj   rj   )rk   ro   Úpositionr¡   s      €r)   rl   z*spread_radial_gradient.<locals>.<listcomp>T  sG   ø€ ð Oð Oð OØ!"ÀIðOð OØ8@��H‘ðOð Oð Oð OrB   c                 ó*   •— g | ]}‰D ]
}|‰z
  |z   ‘ŒŒS rj   rj   )rk   ro   rß   Úfull_repeatÚoriginal_positionss      €€r)   rl   z*spread_radial_gradient.<locals>.<listcomp>n  sG   ø€ ð 4ð 4ð 4Ø/0Ø 2ð4ð 4àð �K‘ (Ñ*ð4ð 4ð 4ð 4rB   rs   )Ústartc                 ó    •— g | ]
}|‰z
  d z
  ‘ŒS rn   rj   ©rk   rß   rá   s     €r)   rl   z*spread_radial_gradient.<locals>.<listcomp>‡  s3   ø€ ð !=ð !=ð !=à ð ˜{Ñ*¨QÑ.ð!=ð !=ð !=rB   c                 ó    •— g | ]
}|d z
  ‰z
  ‘ŒS rn   rj   rå   s     €r)   rl   z*spread_radial_gradient.<locals>.<listcomp>˜  s/   ø€ ð !6ð !6ð !6Ø3;�H˜q‘L ;Ñ.ð!6ð !6ð !6rB   )rÁ   r½   r¾   r   r‘   r’   r   r…   Úabsr   r�   Úintr�   )'r¨   r¡   rr   rf   rg   rh   rc   rd   re   r-   r.   r§   r½   r¾   rÃ   rÄ   Úoriginal_colorsÚtwÚthÚmax_distanceÚgradient_lengthÚrepeat_afterrX   ro   r«   Úrepeat_beforeÚpartial_repeatÚreverseÚratiorß   Únew_positionsr   Ú
next_colorÚnext_positionÚaverage_colorsÚaverage_positionsÚ
zero_colorrá   râ   s'    `                                   @@r)   rŽ   rŽ   5  s  øøø€ ð JÐIÐIÐIÐIÐIÐIÐIà5Ð5°iÑ@Ô@Ñ€Eˆ4�Ø�!�b‘&˜EÑ!Ñ! 2¨¨R©°4©Ñ#7ˆ€BàÐ&Ð&Ñ&à Ÿ+š+™-œ-ˆØ&Ÿ^š^Ñ-Ô-Ðð ”×.Ò.¨u°fÑ=Ô=‰ˆˆBÝÝ•�B‘”�˜R "™W™œÑ&Ô&­­C°©G¬GµS¸¸b¹±\´\Ñ(BÔ(BñDô Dˆà˜b™&ˆÝ˜\¨AÑ-°Ñ@ÑAÔAˆØ˜!ÒÐà˜Ñ%ˆFØ˜Ò!Ð!Ø˜&Ñ ��à Ò*Ð*Ð*Ð*Ø�Ý˜v™œð Dð D�AØ˜oÐ.BÐ.B°a¸!±eÐ0B°°ÀÐ.BÔCÑC�F�FðOð Oð Oð OÝ&+¨F¡m¤mðOñ Oô OˆIà� <Ñ/Ñ/ˆAà�Š7ˆ7à˜"˜b " b¨!Ð,ˆFØ˜f fÐ,Ð,ð ˜_Ñ,ˆð ˆõ ˜-Ñ(Ô(ˆØð 	@à˜Ò!Ð!Ø˜/¨KÑ7Ñ7��à Ò*Ð*Ð*Ð*Ý˜{Ñ+Ô+ð ?ð ?�AØ˜oØ=Ð=  \Ñ!1°QÑ 6Ð=˜"˜"¸AÐ=ô?ñ ?�F�Fð4ð 4ð 4ð 4ð 4Ý49¸+Ñ4FÔ4Fð4ñ 4ô 4à6?ñ@ˆIð
 '¨Ñ4ˆØ˜QÒÐà˜"˜b " b¨!Ð,ˆFØ˜f fÐ,Ð,ð
 # 1Ô%Ð'9¸"Ô'=Ð>À&ÒHÐHÐHÐHØ�>Ð%Ð%Ò%Ð% AÒ%Ð%Ð%Ð%Ð%Ð%Ø$ T T r TÔ*ˆØ�NÑ"ˆØ�YÒÐØ-¨d¨d°¨dÔ3ˆOÝ$ W°AÐ6Ñ6Ô6ð 	ð 	‰KˆAˆxØ˜5Ò Ð ð )¨!¨¨¨Ô-°Ñ6�ð!=ð !=ð !=ð !=à$6¸°r°s°sÔ$;ð!=ñ !=ô !=�ð *¨IÑ5�	Ø�Ø˜%ÒÐð (¨¨Ô+�Ø,¨q°1©u¨XÔ6�
Ø 2°Q¸±U°8Ô <�Ø"'¨°
¸JÐ!G�Ø%-¨u°e¸]Ð$KÐ!Ø3Ð3Ø"Ð$5ñ7ô 7�
à$ÐK ¸¸Q¹°x°y°yÔ'AÐKÀFÐK�ð!6ð !6ð !6ð !6à)¨A°©E¨(¨)¨)Ô4ð!6ñ !6ô !6�ð # Q™Y¨Ñ4ÐQ°}ÐQÀyÐQ�	Ø�ð!  ð$ �"�b˜"˜b !Ð$€FØ�f˜fÐ$Ð$rB   c           	      ó(  — ddl m} d|j        _        |                      |||¦  «        }t          |¦  «        sdS |d         |d         }	}t          ||	¬¦  «        }
|                     d¦  «        dk    rKt          |                     d	d¦  «        |d¦  «        }t          |                     d
d¦  «        |d¦  «        }n¬|d         |d         }}t          |j	         
                    d	d¦  «        |d¦  «        |z  }t          |j	         
                    d
d¦  «        |d¦  «        |z  }d|vr>||j	        d	<   ||j	        d
<   |                     d¦  «        dk    rd|› d|› d�|j	        d<   |dk    s|dk    rdS d|j	        v r/t          |                     d¦  «        d|| j        ¦  «        }||
z  }
|
| j        j        z  }
| j                             dd|||||
¦  «        }|                     |¦  «         |                     dd||¦  «        } ||| ¦  «                             |||| j        | j        ¦  «         |                     |j        ¦  «         | j                             d|¬¦  «         | j                             |j        |¬¦  «         dS )rL   r   )rƒ   r!   Fr   r4   ÚpatternUnitsrQ   r-   r.   r   r   Ú1ÚviewBoxÚpatternContentUnitsÚobjectBoundingBoxzscale(z, ú)r   ÚpatternTransformr]   rƒ   r0   T)r   rƒ   r9   r7   rˆ   r
   r   r>   r   r8   Úpopr   Úinner_diagonalr?   r”   r“   rœ   r•   ÚdrawÚbase_urlÚcontextr�   rš   rž   rŸ   )r!   r"   r²   r#   rI   r1   rƒ   r	   r2   r3   r§   Úpattern_widthÚpattern_heightr-   r.   r©   Ústream_patternr{   s                     r)   rG   rG   ¢  sÖ  € àÐÐÐÐÐà#€GÔÔà×-Ò-¨d°I¸vÑFÔF€LÝ  Ñ.Ô.ð ØˆuØ˜Œ?˜L¨œO€q€AÝ�a˜1ÐÑÔ€FØ‡{‚{�>Ñ"Ô"Ð&6Ò6Ð6Ý˜WŸ[š[¨°!Ñ4Ô4°iÀÑCÔCˆÝ˜gŸkšk¨(°AÑ6Ô6¸	À1ÑEÔEˆˆà$ Qœ¨°a¬ˆvˆå�”×#Ò# G¨SÑ1Ô1°9¸aÑ@Ô@À5ÑHð 	õ �”×#Ò# H¨cÑ2Ô2°I¸qÑAÔAÀFÑJð 	à˜GÐ#Ð#Ø&3ˆGŒN˜7Ñ#Ø'5ˆGŒN˜8Ñ$Ø�{Š{Ð0Ñ1Ô1Ð5HÒHÐHØ.I°uÐ.IÐ.IÀÐ.IÐ.IÐ.I�”˜{Ñ+ð ˜ÒÐ˜^¨qÒ0Ð0Øˆuà˜Wœ^Ð+Ð+Ý$Ø�KŠKÐ*Ñ+Ô+¨U°I¸sÔ?QñSô SÐà! FÑ*ˆà�c”j”nÑ$€FØ”Z×+Ò+Ø	ˆ1ˆm˜^¨]¸NØñô €Nð ×Ò˜WÑ%Ô%Ð%à×$Ò$ Q¨¨=¸.ÑIÔI€EØ€GˆG�SÑÔ×ÒØˆ}˜n¨c¬lØŒñô ð ð × Ò  ¤Ñ*Ô*Ð*Ø„J×Ò˜y°ÐÑ8Ô8Ð8Ø„J× Ò  Ô!2¸6Ð ÑBÔBÐBØˆ4rB   c                 ó  — |D �]€}|j         dk    rû|                     d¦  «        dk    r‚|                      ||¦  «        }t          |¦  «        rX|\  }}}}t	          |                     dd¦  «        |d¦  «        |z  }	t	          |                     dd¦  «        |d¦  «        |z  }
nGdx}	}
nB|                      |                     dd¦  «        |                     dd¦  «        |¦  «        \  }	}
| j                             |	|
¬¦  «         �Œ	|j         d	k    rl|                     d
d¦  «        }|                     dd¦  «         	                    ¦   «                              dd¦  «        }| j         
                    |¦  «         �Œ‚dS )z+Apply filters defined in given filter node.ÚfeOffsetÚprimitiveUnitsrþ   Údxr   r   Údyr4   ÚfeBlendÚmodeÚnormalú-ú r   N)r7   r>   rˆ   r
   r   r=   r?   r   ÚreplaceÚtitleÚset_blend_mode)r!   r"   Úfilter_noder#   r¢   r	   Ú_r-   r.   r  r  r  s               r)   Úapply_filtersr  Õ  s‰  € àð ,ñ ,ˆØŒ9˜
Ò"Ð"Ø�ŠÐ/Ñ0Ô0Ð4GÒGÐGØ"×9Ò9¸$À	ÑJÔJ�Ý(¨Ñ6Ô6ð  Ø*6Ñ'�A�q˜% Ý˜eŸiši¨¨aÑ0Ô0°)¸QÑ?Ô?À%ÑG�BÝ˜eŸiši¨¨aÑ0Ô0°)¸QÑ?Ô?À&ÑH�B�Bà�K�B˜˜àŸšØ—I’I˜d AÑ&Ô&¨¯	ª	°$¸Ñ(:Ô(:¸IñGô G‘��BàŒJ× Ò  2¨Ð Ñ,Ô,Ð,Ñ,ØŒY˜)Ò#Ð#Ø—9’9˜V XÑ.Ô.ˆDØ—<’<  SÑ)Ô)×/Ò/Ñ1Ô1×9Ò9¸#¸rÑBÔBˆDØŒJ×%Ò% dÑ+Ô+Ð+ùð#,ð ,rB   c                 óú  — d|j         _        |                     d¦  «        dk    r| j        | j        }}n@|                      |                     d¦  «        |                     d¦  «        |¦  «        \  }}t          |                     dd¦  «        ||¦  «        |j        d<   t          |                     dd¦  «        ||¦  «        |j        d<   t          |                     dd	¦  «        ||¦  «        |j        d<   t          |                     dd	¦  «        ||¦  «        |j        d<   |                     d¦  «        dk    rj|                     d¦  «        |                     d¦  «        }}|                     d¦  «        |                     d¦  «        }	}|› d
|› d
|› d
|	› �|j        d<   n	d\  }}||}	}| j        }
| j         	                    ||||	¦  «        | _        |  
                    ||¦  «         |
| _        dS )zApply given mask node.r/   Ú	maskUnitsrQ   r-   r.   r2   z-10%r3   z120%r  rü   rR   N)r9   r7   r>   r‰   rŠ   r=   r   r8   r?   r™   Ú	draw_node)r!   r"   Úmaskr#   Ú	width_refÚ
height_refr2   r3   r-   r.   Ú
svg_streams              r)   Ú
paint_maskr   ë  sê  € à€DÔÔà‡x‚x�ÑÔÐ 0Ò0Ð0Ø #¤°Ô1A�:ˆ	ˆ	à #§	¢	Ø�HŠH�WÑÔ˜tŸxšx¨Ñ1Ô1°9ñ!>ô !>Ñˆ	�:õ ˜DŸHšH S¨&Ñ1Ô1°9¸iÑHÔH€D„K�ÑÝ˜DŸHšH S¨&Ñ1Ô1°9¸jÑIÔI€D„K�ÑÝ Ø�Š�˜6Ñ"Ô" I¨zñ;ô ;€D„K�ÑåØ�Š�˜&Ñ!Ô! 9¨iñ9ô 9€D„K�Ñð ‡x‚x�ÑÔÐ 0Ò0Ð0Ø�xŠx˜‰}Œ}˜dŸhšh s™mœmˆ1ˆØŸš Ñ)Ô)¨4¯8ª8°HÑ+=Ô+=ˆvˆØ$%Ð!<Ð!<¨Ð!<Ð!<¨EÐ!<Ð!<°FÐ!<Ð!<ˆŒ�IÑÐà‰ˆˆ1Ø! :ˆvˆà”€JØ”×+Ò+¨A¨q°%¸Ñ@Ô@€C„JØ‡M‚M�$˜	Ñ"Ô"Ð"Ø€C„J€J€JrB   N)Ú__doc__Ú	itertoolsr   Úmathr   r   r§   r   r	   r
   Úutilsr   r   r   r   r   r*   rA   rJ   rE   r�   rŽ   rG   r  r   rj   rB   r)   ú<module>r%     s+  ðØ EÐ Eà Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ðD#ð #ð #ð2Gð Gð Gð[ð [ð [ð|D%ð D%ð D%ðNj%ð j%ð j%ðZ0ð 0ð 0ðf,ð ,ð ,ð,ð ð ð ð rB   