§
    ¥”j],  ã                   óž   — d Z ddlmZmZ ddlmZ d„ Zd„ Zd„ Zd„ Z	d„ Z
ed	„ ¦   «         Zed
„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         ZdS )zcLayout for images and other replaced elements.

See https://drafts.csswg.org/css-images-3/#sizing

é   )Úhandle_min_max_heightÚhandle_min_max_width)Ú
percentagec           	      óÊ   — |dk    rd}|dk    rd}|�|�||fS |�||�||z  n|�|n|fS |�|�||z  n| �| n||fS | €|�t          | ||| |||¦  «        S t          |||¦  «        S )z¶Default sizing algorithm for the concrete object size.

    Return a ``(concrete_width, concrete_height)`` tuple.

    See https://drafts.csswg.org/css-images-3/#default-sizing

    ÚautoN)Údefault_image_sizingÚcontain_constraint_image_sizing)Úintrinsic_widthÚintrinsic_heightÚintrinsic_ratioÚspecified_widthÚspecified_heightÚdefault_widthÚdefault_heights          úi/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/layout/replaced.pyr   r      só   € ð ˜&Ò Ð ØˆØ˜6Ò!Ð!ØÐàÐ"Ð'7Ð'CØÐ 0Ð0Ð0Ø	Ð	$ØØ1@Ð1LˆO˜oÑ-Ð-Ø%5Ð%AÐ!Ð!Øð!ð 	!ð 
Ð	%à2AÐ2MÐ˜Ñ.Ð.Ø$3Ð$?��ØØð	ð 	ð Ð&Ð*:Ð*FÝ'ØÐ!1°?ØÐ!1°=Øñ ô  ð  õ
 3Ø˜~¨ñ@ô @ð @ó    c                 ó(   — t          | ||d¬¦  «        S )zÅContain constraint sizing algorithm for the concrete object size.

    Return a ``(concrete_width, concrete_height)`` tuple.

    See https://drafts.csswg.org/css-images-3/#contain-constraint

    F©Úcover©Ú_constraint_image_sizing©Úconstraint_widthÚconstraint_heightr   s      r   r	   r	   2   s)   € õ $ØÐ+¨_ÀEðKñ Kô Kð Kr   c                 ó(   — t          | ||d¬¦  «        S )zÁCover constraint sizing algorithm for the concrete object size.

    Return a ``(concrete_width, concrete_height)`` tuple.

    See https://drafts.csswg.org/css-images-3/#cover-constraint

    Tr   r   r   s      r   Úcover_constraint_image_sizingr   ?   s)   € õ $ØÐ+¨_ÀDðJñ Jô Jð Jr   c                 óB   — |€| |fS || ||z  k    z  r||z  |fS | | |z  fS )N© )r   r   r   r   s       r   r   r   L   sP   € àÐØÐ!2Ð2Ð2Ø	Ð"Ð%6¸Ñ%HÒHÑ	Ið DØ  ?Ñ2Ð4EÐEÐEàÐ!1°OÑ!CÐCÐCr   c                 óH  — | j         d         }| j         d         }| j        }|                     | j         d         | j         d         ¦  «        \  }}}d ||fv rt          | j        | j        |¦  «        \  }}|dk    r| j        | j        }}n‚|dv rt          | j        | j        |¦  «        \  }}n9|dk    rt          | j        | j        |¦  «        \  }}n|dk    s
J |¦   «         ‚||}}|d	k    r t          ||¦  «        }t          ||¦  «        }|d
         \  }	}
}}| j        |z
  }| j        |z
  }t          |
| j         |¦  «        }
t          || j         |¦  «        }|	dk    r||
z
  }
|dk    r||z
  }|
|  	                    ¦   «         z  }
||  
                    ¦   «         z  }|||
|fS )NÚ
object_fitÚobject_positionÚimage_resolutionÚ	font_sizeÚfill)Úcontainú
scale-downr   Únoner&   é    ÚrightÚbottom)ÚstyleÚreplacementÚget_intrinsic_sizer	   ÚwidthÚheightr   Úminr   Úcontent_box_xÚcontent_box_y)Úboxr    ÚpositionÚimager
   r   r   Ú
draw_widthÚdraw_heightÚorigin_xÚ
position_xÚorigin_yÚ
position_yÚref_xÚref_ys                  r   Úreplacedbox_layoutr>   V   s  € à”˜<Ô(€JØŒyÐ*Ô+€HàŒO€Eà× Ò ØŒIÐ(Ô)¨3¬9°[Ô+Añ	Cô 	Cñ 7€OÐ% ð �Ð!1Ð2Ð2Ð2Ý,KØŒI�s”z ?ñ-4ô -4Ñ)ˆÐ)ð �VÒÐØ"%¤)¨S¬Z�Kˆ
ˆ
àÐ2Ð2Ð2Ý&EØ”	˜3œ: ñ'8ô '8Ñ#ˆJ˜˜à˜7Ò"Ð"Ý&CØ”	˜3œ: ñ'8ô '8Ñ#ˆJ˜˜ð  Ò'Ð'Ð'¨Ñ'Ô'Ð'Ø&5Ð7G˜ˆJà˜Ò%Ð%Ý˜Z¨Ñ9Ô9ˆJÝ˜kÐ+;Ñ<Ô<ˆKà19¸!´Ñ.€Hˆj˜( JØŒI˜
Ñ"€EØŒJ˜Ñ$€Eå˜J¨¬	°5Ñ9Ô9€JÝ˜J¨¬	°5Ñ9Ô9€JØ�7ÒÐØ˜ZÑ'ˆ
Ø�8ÒÐØ˜ZÑ'ˆ
à�#×#Ò#Ñ%Ô%Ñ%€JØ�#×#Ò#Ñ%Ô%Ñ%€Jà�{ J°
Ð:Ð:r   c                 ó^  — ddl m} | j                             | j        d         | j        d         ¦  «        \  }}}| j        | j        cxk    rdk    r(n n%|�|| _        n|�|�||z  | _        n || |¦  «         | j        dk    r'|�| j        |z  | _        dS |�	|| _        dS d| _        dS dS )z&Set the used width for replaced boxes.r   ©Úblock_level_widthr"   r#   r   Ni,  )ÚblockrA   r,   r-   r+   r/   r.   )r3   Úcontaining_blockrA   r.   r/   Úratios         r   Úreplaced_box_widthrE   …   sù   € ð )Ð(Ð(Ð(Ð(Ð(àœ?×=Ò=ØŒ	Ð$Ô% s¤y°Ô'=ñ?ô ?Ñ€Eˆ6�5ð
 „z�S”YÐ(Ð(Ò(Ð( &Ò(Ð(Ð(Ð(Ð(ØÐàˆCŒIˆIØÐØÐ!à" U™N�”	�	ð "Ð! #Ð'7Ñ8Ô8Ð8à
„y�FÒÐØÐàœ
 UÑ*ˆCŒIˆIˆIØÐàˆCŒIˆIˆIð ˆCŒIˆIˆIð Ðr   c                 óÆ  — | j                              | j        d         | j        d         ¦  «        \  }}}| j        | j        cxk    rdk    rn n|| _        n| j        dk    r|r| j        |z  | _        | j        | j        cxk    rdk    rn n|�	|| _        dS |�| j        dk    r| j        |z  | _        dS | j        dk    r|�	|| _        dS | j        dk    r	d| _        dS dS )z3Compute and set the used height for replaced boxes.r"   r#   r   Né–   )r,   r-   r+   r/   r.   )r3   r.   r/   rD   s       r   Úreplaced_box_heightrH   ¨   s  € ð œ?×=Ò=ØŒ	Ð$Ô% s¤y°Ô'=ñ?ô ?Ñ€Eˆ6�5ð „z�S”YÐ(Ð(Ò(Ð( &Ò(Ð(Ð(Ð(Ð(ØˆŒ
ˆ
Ø	Œ�vÒ	Ð	 %Ð	Ø”Y Ñ&ˆŒ
à
„z�S”YÐ(Ð(Ò(Ð( &Ò(Ð(Ð(Ð(Ð(¨VÐ-?ØˆŒ
ˆ
ˆ
Ø	Ð	˜sœz¨VÒ3Ð3Ø”Y Ñ&ˆŒ
ˆ
ˆ
Ø	Œ�vÒ	Ð	 &Ð"4ØˆŒ
ˆ
ˆ
Ø	Œ�vÒ	Ð	àˆŒ
ˆ
ˆ
ð 
Ð	r   c                 ó†   — dD ]-}t          | d|› �¦  «        dk    rt          | d|› �d¦  «         Œ.t          | |¦  «         dS )z5Lay out an inline :class:`boxes.ReplacedBox` ``box``.)Útopr)   r*   ÚleftÚmargin_r   r(   N)ÚgetattrÚsetattrÚ inline_replaced_box_width_height)r3   rC   Úsides      r   Úinline_replaced_box_layoutrQ   À   sb   € à2ð .ð .ˆÝ�3Ð( $Ð(Ð(Ñ)Ô)¨VÒ3Ð3Ý�CÐ) 4Ð)Ð)¨1Ñ-Ô-Ð-øÝ$ SÐ*:Ñ;Ô;Ð;Ð;Ð;r   c                 ó  — | j         d         | j         d         cxk    rdk    rIn nFt                               | |¦  «         t                               | ¦  «         t	          | ¦  «         d S t          | |¦  «         t          | ¦  «         d S )Nr.   r/   r   )r+   rE   Úwithout_min_maxrH   Úmin_max_auto_replaced)r3   rC   s     r   rO   rO   È   s–   € Ø
„y�Ô˜SœY xÔ0Ð:Ð:Ò:Ð:°FÒ:Ð:Ð:Ð:Ð:Ý×*Ò*¨3Ð0@ÑAÔAÐAÝ×+Ò+¨CÑ0Ô0Ð0Ý˜cÑ"Ô"Ð"Ð"Ð"å˜3Ð 0Ñ1Ô1Ð1Ý˜CÑ Ô Ð Ð Ð r   c                 ó
  — | j         }| j        }| j        }| j        }t	          || j        ¦  «        }t	          || j        ¦  «        }||k     rdn	||k    rdnd||k     rdn	||k    rdndf}|dk    rd}|dk    rd}|dk    r$|| _         t	          ||z  |z  |¦  «        | _        dS |dk    r$|| _         t          ||z  |z  |¦  «        | _        dS |dk    r$t	          ||z  |z  |¦  «        | _         || _        dS |d	k    r$t          ||z  |z  |¦  «        | _         || _        dS |d
k    rT||z  ||z  k    r$|| _         t	          |||z  |z  ¦  «        | _        dS t	          |||z  |z  ¦  «        | _         || _        dS |dk    rT||z  ||z  k    r$t          |||z  |z  ¦  «        | _         || _        dS || _         t          |||z  |z  ¦  «        | _        dS |dk    r|| _         || _        dS |dk    r|| _         || _        dS dS )zCResolve min/max constraints on replaced elements with 'auto' sizes.r0   ÚmaxÚ r(   g�íµ ÷Æ°>)rV   rW   )r0   rW   )rW   rV   )rW   r0   )rV   rV   )r0   r0   )r0   rV   )rV   r0   N)r.   r/   Ú	min_widthÚ
min_heightrV   Ú	max_widthÚ
max_heightr0   )r3   r.   r/   rX   rY   rZ   r[   Ú
violationss           r   rT   rT   Ò   s†  € àŒI€EØŒZ€FØ”€IØ”€JÝ�I˜sœ}Ñ-Ô-€IÝ�Z ¤Ñ0Ô0€Jð ˜Ò"Ð"ˆˆ°¸Ò1BÐ1B¨¨ÈØ˜*Ò$Ð$ˆˆ°6¸JÒ3FÐ3F¨%¨%ÈBðP€Jð �‚z€zØˆØ�‚{€{Øˆð �[Ò Ð ØˆŒ	Ý˜ VÑ+¨eÑ3°ZÑ@Ô@ˆŒ
ˆ
ˆ
Ø	�{Ò	"Ð	"ØˆŒ	Ý˜ VÑ+¨eÑ3°ZÑ@Ô@ˆŒ
ˆ
ˆ
Ø	�{Ò	"Ð	"Ý˜
 UÑ*¨VÑ3°YÑ?Ô?ˆŒ	ØˆŒ
ˆ
ˆ
Ø	�{Ò	"Ð	"Ý˜
 UÑ*¨VÑ3°YÑ?Ô?ˆŒ	ØˆŒ
ˆ
ˆ
Ø	�~Ò	%Ð	%Ø�uÑ 
¨VÑ 3Ò3Ð3Ø!ˆCŒIÝ˜Z¨°VÑ);¸eÑ)CÑDÔDˆCŒJˆJˆJå˜I z°EÑ'9¸FÑ'BÑCÔCˆCŒIØ#ˆCŒJˆJˆJØ	�~Ò	%Ð	%Ø�uÑ 
¨VÑ 3Ò3Ð3Ý˜I z°EÑ'9¸FÑ'BÑCÔCˆCŒIØ#ˆCŒJˆJˆJà!ˆCŒIÝ˜Z¨°VÑ);¸eÑ)CÑDÔDˆCŒJˆJˆJØ	�~Ò	%Ð	%ØˆŒ	ØˆŒ
ˆ
ˆ
Ø	�~Ò	%Ð	%ØˆŒ	ØˆŒ
ˆ
ˆ
ð 
&Ð	%r   c                 ó(  — ddl m} ddlm} |                     ¦   «         }|j        d         |j        d         cxk    rdk    r{n nx|j        |j        f}t           	                    ||¦  «         t           	                    |¦  «         t          |¦  «         |\  |_        |_        | 	                    ||¦  «         nt          ||¦  «         t          |¦  «         |j        s || ||d¬¦  «        \  |_        |_        }d	}d
d	dœ}g }	d}
||||	|
fS )z5Lay out the block :class:`boxes.ReplacedBox` ``box``.r   r@   )Úavoid_collisionsr.   r/   r   F)ÚouterNÚany)ÚbreakÚpage)rB   rA   Úfloatr^   Úcopyr+   Úmargin_leftÚmargin_rightÚblock_replaced_widthrS   rH   rT   Úis_flex_itemr9   r;   )Úcontextr3   rC   rA   r^   Úcomputed_marginsÚ_Ú	resume_atÚ	next_pageÚadjoining_marginsÚcollapsing_throughs              r   Úblock_replaced_box_layoutrp   
  sg  € à(Ð(Ð(Ð(Ð(Ð(Ø'Ð'Ð'Ð'Ð'Ð'à
�(Š(‰*Œ*€CØ
„y�Ô˜SœY xÔ0Ð:Ð:Ò:Ð:°FÒ:Ð:Ð:Ð:Ð:Øœ?¨CÔ,<Ð<ÐÝ×,Ò,ØÐ!ñ	#ô 	#ð 	#å×+Ò+¨CÑ0Ô0Ð0Ý˜cÑ"Ô"Ð"Ø,<Ñ)ˆŒ˜Ô)Ø×)Ò)¨#Ð/?Ñ@Ô@Ð@Ð@å˜SÐ"2Ñ3Ô3Ð3Ý˜CÑ Ô Ð ð Ôð 9ð -=Ð,<Ø�SÐ*°%ð-9ñ -9ô -9Ñ)ˆŒ˜œ¨à€IØ¨Ð.Ð.€IØÐØÐØ�	˜9Ð&7Ð9KÐKÐKr   c                 ót   — ddl m} t                               | |¦  «         |                     | |¦  «         d S )Nr   r@   )rB   rA   rE   rS   )r3   rC   rA   s      r   rg   rg   *  sJ   € à(Ð(Ð(Ð(Ð(Ð(õ ×&Ò& sÐ,<Ñ=Ô=Ð=Ø×%Ò% cÐ+;Ñ<Ô<Ð<Ð<Ð<r   N)Ú__doc__Úmin_maxr   r   Úpercentr   r   r	   r   r   r>   rE   rH   rQ   rO   rT   rp   rg   r   r   r   ú<module>ru      s5  ððð ð AÐ @Ð @Ð @Ð @Ð @Ð @Ð @Ø Ð Ð Ð Ð Ð ð$@ð $@ð $@ðN
Kð 
Kð 
Kð
Jð 
Jð 
JðDð Dð Dð,;ð ,;ð ,;ð^ ðð ñ ÔððD ðð ñ Ôðð.<ð <ð <ð!ð !ð !ð5 ð 5 ð 5 ðpLð Lð Lð@ ð=ð =ñ Ôð=ð =ð =r   