§
    ¥”jØ‰  ã                   ó   — d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZ dd
lmZmZ ddlmZ d„ Zd%d„Zd%d„Zd„ Zd„ Zd&d„Zd&d„Zd%d„Zd%d„Z	 	 d'd„Zd(d„Zd„ Zd„ Zd%d„Z 	 	 d)d„Z!d„ Z"d%d„Z#d%d „Z$d%d!„Z%d%d"„Z&d%d#„Z'd$„ Z(dS )*a  Preferred and minimum preferred width.

Also known as max-content and min-content width, also known as the
shrink-to-fit algorithm.

Terms used (max-content width, min-content width) are defined in David
Baron's unofficial draft (https://dbaron.org/css/intrinsic/).

é    N)Úcache)Úinfé   )Úresolve_math)Ú
check_math)Úvalidate_non_shorthand)Úboxes)Úcan_break_textÚsplit_first_lineé   )Údefault_image_sizingc           	      ó~   — t          t          t          | |d¬¦  «        |¦  «        t          | |d¬¦  «        ¦  «        S )zæReturn the shrink-to-fit width of ``box``.

    *Warning:* both available_content_width and the return value are
    for width of the *content area*, not margin area.

    https://www.w3.org/TR/CSS21/visudet.html#float-width

    F©Úouter)ÚminÚmaxÚmin_content_widthÚmax_content_width)ÚcontextÚboxÚavailable_content_widths      új/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/layout/preferred.pyÚshrink_to_fitr      sL   € õ ÝÝ˜g s°%Ð8Ñ8Ô8Ø#ñ	%ô 	%õ 	˜' 3¨eÐ4Ñ4Ô4ñ	6ô 6ð 6ó    Tc                 ó  — |j         rt          | ||¦  «        d         S t          |t          j        ¦  «        rt          | ||¦  «        S t          |t          j        t          j        f¦  «        rt          | ||¦  «        S t          |t          j	        ¦  «        rt          | |¦  «        S t          |t          j        t          j        f¦  «        rt          | ||d¬¦  «        S t          |t          j        ¦  «        rt          ||¦  «        S t          |t          j        ¦  «        rt#          | ||¦  «        S t          |t          j        ¦  «        rt          | ||¦  «        S t'          dt)          |¦  «        j        › d�¦  «        ‚)zsReturn the min-content width for ``box``.

    This is the width by breaking at every line-break opportunity.

    r   T©Úis_line_startzmin-content width for ú not handled yet)Úis_table_wrapperÚ"table_and_columns_preferred_widthsÚ
isinstancer	   ÚTableCellBoxÚtable_cell_min_content_widthÚBlockContainerBoxÚTableColumnBoxÚblock_min_content_widthÚTableColumnGroupBoxÚcolumn_group_content_widthÚ	InlineBoxÚLineBoxÚinline_min_content_widthÚReplacedBoxÚreplaced_min_content_widthÚFlexContainerBoxÚflex_min_content_widthÚGridContainerBoxÚ	TypeErrorÚtypeÚ__name__©r   r   r   s      r   r   r   '   sq  € ð Ôð WÝ1°'¸3ÀÑFÔFÀqÔIÐIÝ	�C�Ô+Ñ	,Ô	,ð WÝ+¨G°S¸%Ñ@Ô@Ð@Ý	�C�%Ô1µ5Ô3GÐHÑ	IÔ	Ið WÝ& w°°UÑ;Ô;Ð;Ý	�C�Ô2Ñ	3Ô	3ð WÝ)¨'°3Ñ7Ô7Ð7Ý	�C�%œ/­5¬=Ð9Ñ	:Ô	:ð 
WÝ'¨°°eÈ4ÐPÑPÔPÐPÝ	�C�Ô*Ñ	+Ô	+ð WÝ)¨#¨uÑ5Ô5Ð5Ý	�C�Ô/Ñ	0Ô	0ð WÝ% g¨s°EÑ:Ô:Ð:Ý	�C�Ô/Ñ	0Ô	0ð Wå& w°°UÑ;Ô;Ð;åÐUµ°c±´Ô1CÐUÐUÐUÑVÔVÐVr   c                 ó  — |j         rt          | ||¦  «        d         S t          |t          j        ¦  «        rt          | ||¦  «        d         S t          |t          j        t          j        f¦  «        rt          | ||¦  «        S t          |t          j	        ¦  «        rt          | |¦  «        S t          |t          j        t          j        f¦  «        rt          | ||d¬¦  «        S t          |t          j        ¦  «        rt          ||¦  «        S t          |t          j        ¦  «        rt#          | ||¦  «        S t          |t          j        ¦  «        rt          | ||¦  «        S t'          dt)          |¦  «        j        › d�¦  «        ‚)znReturn the max-content width for ``box``.

    This is the width by only breaking at forced line breaks.

    r   Tr   zmax-content width for r   )r   r    r!   r	   r"   Ú table_cell_min_max_content_widthr$   r%   Úblock_max_content_widthr'   r(   r)   r*   Úinline_max_content_widthr,   Úreplaced_max_content_widthr.   Úflex_max_content_widthr0   r1   r2   r3   r4   s      r   r   r   B   sv  € ð Ôð WÝ1°'¸3ÀÑFÔFÀqÔIÐIÝ	�C�Ô+Ñ	,Ô	,ð WÝ/°¸¸eÑDÔDÀQÔGÐGÝ	�C�%Ô1µ5Ô3GÐHÑ	IÔ	Ið WÝ& w°°UÑ;Ô;Ð;Ý	�C�Ô2Ñ	3Ô	3ð WÝ)¨'°3Ñ7Ô7Ð7Ý	�C�%œ/­5¬=Ð9Ñ	:Ô	:ð 
WÝ'¨°°eÈ4ÐPÑPÔPÐPÝ	�C�Ô*Ñ	+Ô	+ð WÝ)¨#¨uÑ5Ô5Ð5Ý	�C�Ô/Ñ	0Ô	0ð WÝ% g¨s°EÑ:Ô:Ð:Ý	�C�Ô/Ñ	0Ô	0ð Wå& w°°UÑ;Ô;Ð;åÐUµ°c±´Ô1CÐUÐUÐUÑVÔVÐVr   c                 ó
  ‡ ‡— |j         d         }|dk    st          |¦  «        s|j        dk    r)ˆ ˆfd„|j        D ¦   «         }|rt	          |¦  «        nd}�n|j         d         dk    r	|j        }�n|j        }d}dD ]c}|j         |         }|dk    rNt          |¦  «        s?|j                             ¦   «         d	k    r||j        z  }ŒL|j        dk    sJ ‚||j        z  }Œd|j         d
         dk    }	|	rt          |d¦  «        r||j        z  }n||j         d         z  }|	rt          |d¦  «        r||j	        z  }n||j         d         z  }dt          d|¦  «        z
  t	          d|¦  «        z  dz  }t          |||¦  «        S )z+Helper to create ``block_*_content_width.``ÚwidthÚautoú%c                 óT   •— g | ]$}|                      ¦   «         ° ‰‰|d ¬¦  «        ‘Œ%S )Tr   )Úis_absolutely_positioned)Ú.0Úchildr   Úfunctions     €€r   ú
<listcomp>z(_block_content_width.<locals>.<listcomp>d   sL   ø€ ð 5ð 5ð 5Ø5:Ø×1Ò1Ñ3Ô3ð5ØˆH�W˜e¨4Ð0Ñ0Ô0ð5ð 5ð 5r   r   Ú
box_sizingzcontent-box)Úpadding_leftÚpadding_rightÚpxÚborder_collapseÚcollapseÚborder_left_widthÚborder_right_widthéd   )Ústyler   ÚunitÚchildrenr   ÚvalueÚlowerÚhasattrrK   rL   r   Úadjust)
r   r   rC   r   r<   Úchildren_widthsÚpercentagesrQ   Ústyle_valuerJ   s
   ` `       r   Ú_block_content_widthrX   ]   sâ  øø€ àŒI�gÔ€EØ�‚€�* UÑ+Ô+€¨u¬z¸SÒ/@Ð/@ð5ð 5ð 5ð 5ð 5Ø>A¼lð5ñ 5ô 5ˆð )8Ð>•�OÑ$Ô$Ð$¸Qˆ‰Ø	Œ�<Ô	  MÒ	1Ð	1Ø”ˆ‰à”ˆØˆà6ð 	5ð 	5ˆEØœ) EÔ*ˆKØ˜fÒ$Ð$­Z¸Ñ-DÔ-DÐ$ØÔ#×)Ò)Ñ+Ô+¨tÒ3Ð3Ø˜[Ô.Ñ.�E�Eà&Ô+¨sÒ2Ð2Ð2Ð2Ø ;Ô#4Ñ4�Køð ”9Ð.Ô/°:Ò=ˆØð 	4� Ð%8Ñ9Ô9ð 	4Ø�SÔ*Ñ*ˆEˆEà�S”YÐ2Ô3Ñ3ˆEØð 	5� Ð%9Ñ:Ô:ð 	5Ø�SÔ+Ñ+ˆEˆEà�S”YÐ3Ô4Ñ4ˆEØ•s˜3 Ñ,Ô,Ñ,µ°A°u±´Ñ=ÀÑCˆå�#�u˜eÑ$Ô$Ð$r   c                 óÔ  — | j         d         }| j         d         }t          |¦  «        }t          |¦  «        }|dk    s|s|j        dk    rd}n|j        }|dk    s|s|j        dk    rt          }n|j        }t          | t          j        ¦  «        rº| j         	                    d| j         d         ¦  «        \  }}}|�Ž| j         d	         }| j         d
         }	t          |¦  «        }t          |	¦  «        }|dk    r%|s#|j        dk    rt          ||j        |z  ¦  «        }|	dk    r%|s#|	j        dk    rt          ||	j        |z  ¦  «        }t          |t          ||¦  «        ¦  «        S )z;Get box width from given width and box min- and max-widths.Ú	min_widthÚ	max_widthr=   r>   r   r   Ú	font_sizeNÚ
min_heightÚ
max_height)rN   r   rO   rQ   r   r!   r	   r,   ÚreplacementÚget_intrinsic_sizer   r   )
r   r<   rZ   r[   Úmin_pendingÚmax_pendingÚ_Úratior]   r^   s
             r   Úmin_maxre   †   s  € à”	˜+Ô&€IØ”	˜+Ô&€IÝ˜YÑ'Ô'€KÝ˜YÑ'Ô'€KØ�FÒÐ˜kÐ¨Y¬^¸sÒ-BÐ-BØˆ	ˆ	à”Oˆ	Ø�FÒÐ˜kÐ¨Y¬^¸sÒ-BÐ-BÝˆ	ˆ	à”Oˆ	å�#•uÔ(Ñ)Ô)ð EØ”o×8Ò8ØˆsŒy˜Ô%ñ'ô '‰ˆˆ1ˆeàÐØœ <Ô0ˆJØœ <Ô0ˆJÝ$ ZÑ0Ô0ˆKÝ$ ZÑ0Ô0ˆKØ˜VÒ#Ð#¨KÐ#¸J¼OÈsÒ<RÐ<RÝ 	¨:Ô+;¸eÑ+CÑDÔD�	Ø˜VÒ#Ð#¨KÐ#¸J¼OÈsÒ<RÐ<RÝ 	¨:Ô+;¸eÑ+CÑDÔD�	åˆy�#˜e YÑ/Ô/Ñ0Ô0Ð0r   c                 óô  — d}|rddgng |rddgng z   D ]c}| j         |         }|dk    rNt          |¦  «        s?|j                             ¦   «         dk    r||j        z  }ŒL|j        dk    sJ ‚||j        z  }Œd| j         d	         d
k    }|r-|rt          | d¦  «        r|| j        z  }n|| j         d         z  }|r-|rt          | d¦  «        r|| j        z  }n|| j         d         z  }|dk     r|d|dz  z
  z  S dS )z3Add box paddings, borders and margins to ``width``.r   Úmargin_leftrF   Úmargin_rightrG   r=   rH   r>   rI   rJ   rK   rL   rM   r   )rN   r   rO   rR   rQ   rS   rK   rL   )r   r<   ÚleftÚrightrV   rQ   rW   rJ   s           r   Úmargin_widthrk   ¥   st  € à€Kð -1Ð	8ˆ-˜Ð	(Ð	(°bØ.3Ð	;ˆ.˜/Ð	*Ð	*¸ñ	=ð
1ð 
1ˆð ”i Ô&ˆØ˜&Ò Ð ­°KÑ)@Ô)@Ð ØÔ×%Ò%Ñ'Ô'¨4Ò/Ð/Ø˜Ô*Ñ*��à"Ô'¨3Ò.Ð.Ð.Ð.Ø˜{Ô0Ñ0�øàŒyÐ*Ô+¨zÒ9€HØð 	4Øð 	4� Ð%8Ñ9Ô9ð 	4ð �SÔ*Ñ*ˆEˆEð �S”YÐ2Ô3Ñ3ˆEØð 5Øð 	5� Ð%9Ñ:Ô:ð 	5à�SÔ+Ñ+ˆEˆEð �S”YÐ3Ô4Ñ4ˆEà�SÒÐØ˜˜K¨#Ñ-Ñ-Ñ.Ð.ð ˆqr   c                 óN   — t          | |¦  «        }|rt          | |||¦  «        S |S )z˜Respect min/max and adjust width depending on ``outer``.

    If ``outer`` is set to ``True``, return margin width, else return content
    width.

    )re   rk   )r   r   r<   ri   rj   Úfixeds         r   rT   rT   Ó   s4   € õ �C˜ÑÔ€Eàð Ý˜C ¨¨eÑ4Ô4Ð4àˆr   c                 ó0   — t          | |t          |¦  «        S )z0Return the min-content width for a ``BlockBox``.)rX   r   r4   s      r   r&   r&   â   s   € åØ�Õ'¨ñ0ô 0ð 0r   c                 ó0   — t          | |t          |¦  «        S )z0Return the max-content width for a ``BlockBox``.)rX   r   r4   s      r   r7   r7   è   s   € å ¨Õ.?ÀÑGÔGÐGr   Fc           	      ó�   — t          | |||d||¬¦  «        }|rt          |¦  «        nt          |¦  «        }t          |||¦  «        S )zÑReturn the min-content width for an ``InlineBox``.

    The width is calculated from the lines from ``skip_stack``. If
    ``first_line`` is ``True``, only the first line minimum width is
    calculated.

    T)ÚminimumÚ
skip_stackÚ
first_line)Úinline_line_widthsÚnextr   rT   )r   r   r   rr   rs   r   Úwidthsr<   s           r   r+   r+   í   sV   € õ  Ø��e˜]°DØ¨*ð6ñ 6ô 6€Fð 'Ð7�D�‰LŒLˆL­C°©K¬K€EÝ�#�u˜eÑ$Ô$Ð$r   c           	      ó¼   — t          t          | |||d¬¦  «        ¦  «        }|dxx         t          | |¦  «        z  cc<   t          ||t	          |¦  «        ¦  «        S )z2Return the max-content width for an ``InlineBox``.F)rq   éÿÿÿÿ)Úlistrt   Útrailing_whitespace_sizerT   r   )r   r   r   r   rv   s        r   r8   r8   ý   sd   € åÝ˜7 C¨°ÀuÐMÑMÔMñOô O€Fð ˆ2€J€J„JÕ*¨7°CÑ8Ô8Ñ8€J€J�JÝ�#�u�c &™kœkÑ*Ô*Ð*r   c                 óÐ   — |j         d         }|dk    st          |¦  «        s|j        dk    rd}n&|j                             ¦   «         dk    sJ ‚|j        }t          |d|¦  «        S )z9Return the *-content width for a ``TableColumnGroupBox``.r<   r=   r>   r   rH   F)rN   r   rO   rR   rQ   rT   )r   r   r<   s      r   r(   r(     sn   € àŒI�gÔ€EØ�‚€�* UÑ+Ô+€¨u¬z¸SÒ/@Ð/@ØˆˆàŒz×ÒÑ!Ô! TÒ)Ð)Ð)Ð)Ø”ˆå�#�u˜eÑ$Ô$Ð$r   c                 ór   ‡ — ˆ fd„|j         D ¦   «         }t          |||rt          |¦  «        nd¦  «        }|S )z4Return the min-content width for a ``TableCellBox``.c                 óX   •— g | ]&}|                      ¦   «         °t          ‰|¦  «        ‘Œ'S © )r@   r   ©rA   rB   r   s     €r   rD   z0table_cell_min_content_width.<locals>.<listcomp>  sE   ø€ ð 1ð 1ð 1àØ×-Ò-Ñ/Ô/ð1Ý˜' 5Ñ)Ô)ð1ð 1ð 1r   r   )rP   rT   r   )r   r   r   rU   Úchildren_min_widths   `    r   r#   r#     sb   ø€ ð1ð 1ð 1ð 1à”\ð1ñ 1ô 1€Oõ  ØØØ /Ð6�ˆOÑÔÐ°Qñ8ô 8Ðð
 Ðr   c                 ój   — t          | ||¦  «        }t          |t          | ||¦  «        ¦  «        }||fS )z=Return the min- and max-content width for a ``TableCellBox``.)r#   r   r7   )r   r   r   rZ   r[   s        r   r6   r6   %  s<   € õ -¨W°c¸5ÑAÔA€IÝ�IÕ6°wÀÀUÑKÔKÑLÔL€IØ�iÐÐr   c           
   #   ó˜  K  — d}t          |t          j        ¦  «        rƒ|j        d         }t	          |¦  «        rJt          ||j        dd¬¦  «        }	t          |	fd¦  «        d         d         }
|
r|
j        dk    r|
j        }n|j        dk    r|j        d         j        }d}|€d}n| 	                    ¦   «         \  \  }}|j
        |d…         D �]ð}|                     ¦   «         rŒt          |t          j        ¦  «        r©t          | ||||||¦  «        }|rt          |¦  «        pdg}nd„ |D ¦   «         }t          |¦  «        dk    rt!          |||d         pd¦  «        |d<   �nòt!          |||d         pdd	¬
¦  «        pd|d<   t!          |||d         pdd	¬¦  «        pd|d<   �n°t          |t          j        ¦  «        �rM|j        d         }|dv }|dv }|€d}n| 	                    ¦   «         \  \  }}|�J ‚|j                             ¦   «         |pdd…         }|r|r|                     d¦  «        }|rdnd}g }dx}}|�b||z  }t+          ||d…                              ¦   «         |j        | ||j        |d¬¦  «        \  }}}}}}|                     |pd¦  «         |rn|­b|r|r||d         pdz  } �n|                     ¦   «         dd…         }t3          |dz   |j        d         ¦  «        }|r|r|r|                     d¦  «         nH|r5|j        d         dv rdt5          | |¦  «        dg}n#t5          | |¦  «        g}nt7          | |¦  «        g}||d         pdz  }t          |¦  «        dk    r9||z   V — d}t          |¦  «        dk    r|dd…         D ]}|pdV — Œ	|d         pd}|d         du }d}�Œò||z   V — dS )zYield line width for each line.r   Útext_indent)Úrefer_toztext-indentr   r>   Nc                 ó   — g | ]}|pd ‘ŒS ©Nr~   )rA   Úlines     r   rD   z&inline_line_widths.<locals>.<listcomp>Q  s   € Ð8Ð8Ð8¨$˜˜ Ð8Ð8Ð8r   F)rj   rx   )ri   Úwhite_space©ÚnormalÚnowrapúpre-line)rŠ   zpre-wraprŒ   ó    T)r   rq   ÚaÚlangr   )r!   r	   r*   rN   r   r   r   rO   rQ   ÚitemsrP   r@   r)   rt   ru   ÚlenrT   ÚTextBoxÚtextÚencodeÚlstripr   ÚdecodeÚjustification_spacingÚappendr
   r   r   )r   r   r   r   rq   rr   rs   rƒ   Úindent_tokenÚresultrQ   Úcurrent_lineÚskiprB   Úlinesrˆ   Úspace_collapseÚ	text_wrapÚ
child_textr[   Úresume_indexÚnew_resume_indexrc   r<   Úlast_letterÚ	can_breakr‡   s                              r   rt   rt   -  sË  è è € ð
 €KÝ�#•u”}Ñ%Ô%ð 	9Ø”y Ô/ˆÝ�lÑ#Ô#ð 	9å! ,°´	¸=ÐSTÐUÑUÔUˆFÝ*¨F¨9°mÑDÔDÀQÔGÈÔJˆEØð *˜œ sÒ*Ð*Ø#œk�øØÔ #Ò%Ð%Øœ) MÔ2Ô8ˆKð €LØÐØˆˆà(×.Ò.Ñ0Ô0ÑÑˆˆzØ”˜d˜e˜eÔ$ð Xñ Xˆà×)Ò)Ñ+Ô+ð 	Øõ �e�Uœ_Ñ-Ô-ð F	<å&Ø˜  }°g¸zÈ:ñWô WˆEàð 9Ý˜e™œÐ,¨Ð-��à8Ð8°%Ð8Ñ8Ô8�Ý�5‰zŒz˜QŠˆÝ! %¨°°a´°¸AÑ>Ô>��a‘‘å! %¨°°a´°¸AÀUÐKÑKÔKÐSÈt��a‘Ý" 5¨%°°r´°¸aÀeÐLÑLÔLÐTÐPT��b‘	‘	Ý˜�uœ}Ñ-Ô-ñ 9	<àœ+ mÔ4ˆKØ(Ð,LÐLˆNØ#Ð'IÐIˆIØÐ!Ø��à&0×&6Ò&6Ñ&8Ô&8Ñ#Ñ"��zØ!Ð)Ð)Ð)Øœ×*Ò*Ñ,Ô,¨d¨i°a¨\¨\Ô:ˆJØð 5 ð 5Ø'×.Ò.¨tÑ4Ô4�
Ø$Ð.˜˜¨$ˆIØˆEØ./Ð/ˆLÐ+Ø"Ð.ØÐ 0Ñ0�Ý6FØ˜|˜}˜}Ô-×4Ò4Ñ6Ô6¸¼ÀWÈiØÔ/¸}Ø ð7"ñ 7"ô 7"Ñ3��1Ð&¨¨q°!ð —’˜U˜] dÑ+Ô+Ð+Øð Øð #Ð.ð ð Ð.ð à  a¤ ¨AÑ-�Ø‘à$×+Ò+Ñ-Ô-¨b¨c¨cÔ2ˆKÝ& {°SÑ'8¸%¼+ÀfÔ:MÑNÔNˆIØð #˜9ð #¨ð #à—’˜TÑ"Ô"Ð"øð ð <ð ”9˜]Ô+Ð/QÐQÐQØ!Õ#4°W¸eÑ#DÔ#DÀdÐK�E�Eå.¨w¸Ñ>Ô>Ð?�E�Eå*¨7°EÑ:Ô:Ð;�à˜˜aœ˜ AÑ%ˆÝˆu‰:Œ:˜Š>ˆ>à Ñ,Ð,Ð,Ð,ØˆKÝ�5‰zŒz˜AŠ~ˆ~Ø! ! B $œKð $ð $�DØ˜) !�O�O�O�OØ  œ9˜>¨ˆLØ˜bœ	 TÐ)ˆØˆ
‰
Ø
˜Ñ
$Ð$Ð$Ð$Ð$Ð$r   c                 óŒ  — | j         d         }|dk    r!t          |¦  «        s|j        dk    r|j        nd}| j         d         }|dk    r!t          |¦  «        s|j        dk    r|j        nt          }| j         d         }|dk    r!t          |¦  «        s|j        dk    r|j        nd}t          |t          ||¦  «        ¦  «        S )z~Return the percentage contribution of a cell, column or column group.

    https://dbaron.org/css/intrinsic/#pct-contrib

    rZ   r=   r>   r   r[   r<   )rN   r   rO   rQ   r   r   r   )r   rZ   r[   r<   s       r   Ú_percentage_contributionr¦      sñ   € ð ”	˜+Ô&€Ià$¨Ò.Ð.Ý�yÑ!Ô!ð /Ø&/¤n¸Ò&;Ð&;ð 	ŒˆØABð ð ”	˜+Ô&€Ià$¨Ò.Ð.Ý�yÑ!Ô!ð /Ø&/¤n¸Ò&;Ð&;ð 	ŒˆÝADð ð ŒI�gÔ€Eà ’�Ý�uÑÔð 'Ø"'¤*°Ò"3Ð"3ð 	ŒˆØ9:ð 
õ ˆy�#˜e YÑ/Ô/Ñ0Ô0Ð0r   c                 óà  ‡;‡<‡=— ddl m} |                     ¦   «         }| j                             |¦  «        }|r||         S d\  Š;}d}|j        D ]P}|j        D ]F}	|	j        D ]7}
t          |
j        |
j        z   ‰;¦  «        Š;t          ||
j	        z   |¦  «        }Œ8|dz  }ŒGŒQˆ;fd„t          |¦  «        D ¦   «         }d}|j        D ]+}|j        D ]!}	|	j        D ]}
|
||         |
j        <   Œ|dz  }Œ"Œ,t          t          |Ž ¦  «        }|j        d         dk    r7‰;dk    r1|j        d         d         dt          d	„ |D ¦   «         ¦  «        z   z  }nd}‰;dk    s|dk    r”g |_        t          | |d
¬¦  «        }t!          | |d
¬¦  «        }t#          |dt          | |¦  «        ¬¦  «        }t#          |dt!          | |¦  «        ¬¦  «        }g g g g |g f}||g|¢R ||g|¢R dœx| j        |<   }||         S dg‰;z  }dg‰;z  }d}|j        D ]$}|j        D ]}|||<   |||<   |dz  }|‰;k    r nŒŒ$ g }t'          ¦   «         }dg‰;z  }dg‰;z  Š=dg‰;z  Š<t          ‰;¦  «        D �]?}||fD ]€}||         x}rtt          ||         t)          | |¦  «        ¦  «        ||<   t          ‰=|         t+          | |¦  «        ¦  «        ‰=|<   t          ‰<|         t-          |¦  «        ¦  «        ‰<|<   Œ�||         D ]®}
|
sŒ|
j        dk    rlt/          | |
¦  «        \  }}t          ||         |¦  «        ||<   t          ‰=|         |¦  «        ‰=|<   t          ‰<|         t-          |
¦  «        ¦  «        ‰<|<   Œ||                     |
¦  «         |                     |
j        dz
  ¦  «         Œ¯�ŒAg }t5          |¦  «        D ]L\  }}	d}|                     g x} ¦  «         t5          |	¦  «        D ]\  }!}
|
r|!}|                      |¦  «         ŒŒMt6          ˆ<ˆ=fd„¦   «         }"t9          |¦  «        D ]¨}#g }$t          ‰;¦  «        D ]’}‰<|         x}%r|$                     |%¦  «         Œ"t          ||¦  «        D ]J\  }	} | |         x}€Œ|	|         }&|&j        dz
  |#k    rŒ' |"|&|‰=|         ¦  «        }'t          |%|'¦  «        }%ŒK|$                     |%¦  «         Œ“|$Š<Œ©d„ t          ‰;¦  «        D ¦   «         }(t          ‰;¦  «        D ]Ð}||         r9||         j        d         })|)dk    r t;          |)¦  «        s|)j        dk    rd|(|<   ŒC||         r9||         j        d         })|)dk    r t;          |)¦  «        s|)j        dk    rd|(|<   Œ„||         D ]C}
|
r?|
j        dk    r4|
j        d         })|)dk    r!t;          |)¦  «        s|)j        dk    rd|(|<    nŒDŒÑˆ<fd„t5          ‰<¦  «        D ¦   «         Š<|D ]æ}
t)          | |
¦  «        }*t+          | |
¦  «        }+t?          |
j        |
j        |
j        z   ¦  «        },tA          ||,         ¦  «        }-tA          ‰=|,         ¦  «        }.|j        d         dk    r|
j        dz
  |j        d         d         z  }/nd}/|*|-|/z   k    r|*|-|/z   z
  }0 || ||0||(‰<‰=|,¦  «         |+|.|/z   k    r|+|.|/z   z
  }0 || ||0‰=|(‰<‰=|,¦  «         Œçˆ<ˆ=fd„t          ‰;¦  «        D ¦   «         }1tA          ˆ<ˆ=fd„t          ‰;¦  «        D ¦   «         ¦  «        }2dtA          ‰<¦  «        z
  dz  }3|3dk    r|2dk    rd}4ntB          j"        }4n|2|3z  }4|tA          |¦  «        z   }5|t          tA          ‰=¦  «        |4g|1¢¦  «        z   }6|j        d         })|)dk    rAt;          |)¦  «        s2|)j         #                    ¦   «         dk    r|j        d         j$        x}7}8n|5}7|6}8t          |5t#          |d
|7¬¦  «        ¦  «        }5t          |6t#          |d
|8¬¦  «        ¦  «        }6tK          |tK          ||5¦  «        ¦  «        }9tK          |tK          ||6¦  «        ¦  «        }:|‰=‰<|(||f}|5|6g|¢R |9|:g|¢R dœx| j        |<   }||         S )ad  Return content widths for the auto layout table and its columns.

    The tuple returned is
    ``(table_min_content_width, table_max_content_width,
       column_min_content_widths, column_max_content_widths,
       column_intrinsic_percentages, constrainedness,
       total_horizontal_border_spacing, grid)``

    https://dbaron.org/css/intrinsic/

    r   )Údistribute_excess_width)r   r   r   c                 ó   •— g | ]}d g‰z  ‘Œ	S r†   r~   )rA   ÚiÚ
grid_widths     €r   rD   z6table_and_columns_preferred_widths.<locals>.<listcomp>Ñ  s    ø€ Ð<Ð<Ð< AˆTˆF�ZÑÐ<Ð<Ð<r   rI   ÚseparateÚborder_spacingc                 ó0   — g | ]}t          |¦  «        ¯|‘ŒS r~   )Úany)rA   Úcolumns     r   rD   z6table_and_columns_preferred_widths.<locals>.<listcomp>ß  s#   € ÐFÐFÐF ½#¸f¹+¼+ÐF�fÐFÐFÐFr   Fr   T)r   r<   )FTNc                 óT  •— t          ||| j        z   ¦  «        }t          ‰
|         ¦  «        }t          | ¦  «        }t	          d||z
  ¦  «        }ˆ
ˆfd„t          ||| j        z   ¦  «        D ¦   «         }t          |¦  «        }|dk    rdt          |¦  «        pdz  }	n||z  }	||	z  S )Nr   c                 ó8   •— g | ]}‰|         d k    ¯‰|         ‘ŒS )r   r~   )rA   ÚjÚintrinsic_percentagesÚmax_content_widthss     €€r   rD   z[table_and_columns_preferred_widths.<locals>.get_percentage_contribution.<locals>.<listcomp>5  s8   ø€ ð '.ð '.ð '.àØ$ QÔ'¨1Ò,Ð,ð ˜qÔ!à,Ð,Ð,r   r   )ÚsliceÚcolspanÚsumr¦   r   Úranger‘   )Úorigin_cellÚoriginr   Ú
cell_sliceÚbaseline_percentageÚcell_percentage_contributionÚdiffÚother_columns_contributionsÚother_columns_contributions_sumrd   r´   rµ   s             €€r   Úget_percentage_contributionzGtable_and_columns_preferred_widths.<locals>.get_percentage_contribution.  sß   ø€ õ ˜6 6¨KÔ,?Ñ#?Ñ@Ô@ˆ
Ý!Ð"7¸
Ô"CÑDÔDÐÝ'?ÀÑ'LÔ'LÐ$Ý�1Ð2Ð5HÑHÑIÔIˆð'.ð '.ð '.ð '.ð '.å˜6 6¨KÔ,?Ñ#?Ñ@Ô@ð'.ñ '.ô '.Ð#õ +.Ð.IÑ*JÔ*JÐ'Ø*¨aÒ/Ð/Ø�Ð8Ñ9Ô9Ð>¸QÑ?ˆEˆEà%Ð(GÑGˆEØ�e‰|Ðr   c                 ó   — g | ]}d ‘ŒS )Fr~   )rA   rª   s     r   rD   z6table_and_columns_preferred_widths.<locals>.<listcomp>V  s   € Ð8Ð8Ð8 �uÐ8Ð8Ð8r   r<   r=   r>   c                 óf   •— g | ]-\  }}t          |d t          ‰d|…         ¦  «        z
  ¦  «        ‘Œ.S )rM   N)r   r¸   )rA   rª   Ú
percentager´   s      €r   rD   z6table_and_columns_preferred_widths.<locals>.<listcomp>i  sN   ø€ ð ?ð ?ð ?áˆAˆzõ 	ˆJ˜�cÐ"7¸¸¸Ô";Ñ<Ô<Ñ<Ñ=Ô=ð?ð ?ð ?r   c                 óH   •— g | ]}‰|         ¯
‰|         ‰|         d z  z  ‘ŒS )rM   r~   ©rA   rª   r´   rµ   s     €€r   rD   z6table_and_columns_preferred_widths.<locals>.<listcomp>ˆ  sI   ø€ ð &%ð &%ð &%àØ  Ô#ð&%Ø˜1ÔÐ!6°qÔ!9¸CÑ!?Ñ@ð&%ð &%ð &%r   c              3   ó@   •K  — | ]}‰|         d k    ¯‰|         V — ŒdS )r   Nr~   rÇ   s     €€r   ú	<genexpr>z5table_and_columns_preferred_widths.<locals>.<genexpr>Œ  sD   øè è € ð 2*ð 2*Ø"#Ø  Ô# qÒ(Ð(ð 	˜1ÔØ(Ð(Ð(Ð(ð2*ð 2*r   rM   rH   )&Útabler¨   Úget_wrapped_tableÚtablesÚgetrP   r   Úgrid_xr·   Úrowspanr¹   ry   ÚziprN   r‘   r&   r7   rT   Úcolumn_groupsÚsetr   r   r¦   r6   r˜   ÚaddÚ	enumerater   Úsortedr   rO   r¶   r¸   ÚsysÚmaxsizerR   rQ   rk   )>r   r   r   r¨   rÊ   rš   Úgrid_heightÚ
row_numberÚ	row_groupÚrowÚcellÚgridÚzipped_gridÚtotal_horizontal_border_spacingrZ   r[   Úouter_min_widthÚouter_max_widthrÑ   ÚcolumnsÚcolumn_numberÚcolumn_groupr°   Úcolspan_cellsÚcolspansÚmin_content_widthsrª   ÚgroupsÚgroupÚrows_originsÚyr»   Úrow_originsÚxrÂ   ÚspanÚpercentage_contributionsÚpercentage_contributionrº   r¾   Úconstrainednessr<   Úmin_contentÚmax_contentÚcolumn_sliceÚcolumns_min_contentÚcolumns_max_contentÚspacingÚexcess_widthÚsmall_percentage_contributionsÚ'large_percentage_contribution_numeratorÚ)large_percentage_contribution_denominatorÚlarge_percentage_contributionÚtable_min_content_widthÚtable_max_content_widthÚtable_min_widthÚtable_max_widthÚtable_outer_min_content_widthÚtable_outer_max_content_widthr«   r´   rµ   s>                                                              @@@r   r    r    µ  sñ  øøø€ ð /Ð.Ð.Ð.Ð.Ð.à×!Ò!Ñ#Ô#€EØŒ^×Ò Ñ&Ô&€FØð Ø�eŒ}Ðð #Ñ€J�Ø€JØ”^ð ð ˆ	ØÔ%ð 	ð 	ˆCØœð Jð J�Ý  ¤¨t¬|Ñ!;¸ZÑHÔH�
Ý! *¨t¬|Ñ";¸[ÑIÔI��Ø˜!‰OˆJˆJð		ð
 =Ð<Ð<Ð<­¨{Ñ);Ô);Ð<Ñ<Ô<€DØ€JØ”^ð ð ˆ	ØÔ%ð 	ð 	ˆCØœð 5ð 5�Ø04��ZÔ  ¤Ñ-Ð-Ø˜!‰OˆJˆJð	õ
 •s˜D�zÑ"Ô"€Kð „{Ð$Ô%¨Ò3Ð3¸
ÀQº¸àŒKÐ(Ô)¨!Ô,Ø•ÐFÐF¨;ÐFÑFÔFÑGÔGÑGñIð 	(Ð'ð +,Ð'à�Q‚€˜+¨Ò*Ð*ØˆŒÝ+¨G°UÀ%ÐHÑHÔHˆ	Ý+¨G°UÀ%ÐHÑHÔHˆ	Ý Ø�tÕ#:¸7ÀEÑ#JÔ#JðLñ Lô Lˆå Ø�tÕ#:¸7ÀEÑ#JÔ#JðLñ Lô Lˆà�b˜"˜bÐ"AÀ2ÐFˆà˜yÐ2¨6Ð2Ð2Ø" OÐ=°fÐ=Ð=ð*
ð *
ð 	
ˆŒ�uÑ ð �eŒ}Ðà�F˜ZÑ'€MØˆf�zÑ!€GØ€MØÔ+ð 	ð 	ˆØ"Ô+ð 	ð 	ˆFØ+7ˆM˜-Ñ(Ø%+ˆG�MÑ"Ø˜QÑˆMØ 
Ò*Ð*Ø�ð +ð Øà€MÝ‰uŒu€Hð ˜˜zÑ)ÐØ˜˜zÑ)ÐØ˜C *Ñ,Ðõ �:ÑÔð /ñ /ˆØ$ gÐ.ð 	Oð 	OˆFØ˜qœ	Ð!ˆuð OÝ(+Ø& qÔ)Õ+<¸WÀeÑ+LÔ+Lñ)Nô )NÐ" 1Ñ%å(+Ø& qÔ)Õ+<¸WÀeÑ+LÔ+Lñ)Nô )NÐ" 1Ñ%å+.Ø)¨!Ô,Õ.FÀuÑ.MÔ.Mñ,Oô ,OÐ% aÑ(øà ”Nð 	/ð 	/ˆDØð ØØŒ|˜qÒ Ð Ý'GÈÐQUÑ'VÔ'VÑ$�	˜9Ý(+Ð,>¸qÔ,AÀ9Ñ(MÔ(MÐ" 1Ñ%Ý(+Ð,>¸qÔ,AÀ9Ñ(MÔ(MÐ" 1Ñ%Ý+.Ø)¨!Ô,Õ.FÀtÑ.LÔ.Lñ,Nô ,NÐ% aÑ(Ð(ð ×$Ò$ TÑ*Ô*Ð*Ø—’˜Tœ\¨AÑ-Ñ.Ô.Ð.Ð.ñ	/ð& €LÝ˜D‘/”/ð 'ð '‰ˆˆ3ØˆØ×Ò¨2Ð-˜KÑ.Ô.Ð.Ý  ‘~”~ð 	'ð 	'‰GˆAˆtØð Ø�Ø×Ò˜vÑ&Ô&Ð&Ð&ð	'õ
 ðð ð ð ð ñ „Uðõ" �xÑ Ô ð 9ð 9ˆØ#%Ð Ý�zÑ"Ô"ð 	Eð 	EˆAØ*?ÀÔ*BÐBÐ&ð Ø(×/Ò/Ð0GÑHÔHÐHØÝ$'¨¨lÑ$;Ô$;ð 	Kð 	KÑ ��[Ø)¨!œnÐ,�FÐ5ØØ! &œk�ØÔ&¨Ñ*¨dÒ2Ð2ØØ/JÐ/JØ Ð);¸AÔ)>ñ0@ô 0@Ð,å*-Ø+Ð-Iñ+Kô +KÐ'Ð'ð %×+Ò+Ð,CÑDÔDÐDÐDà 8ÐÐð 9Ð8¥e¨JÑ&7Ô&7Ð8Ñ8Ô8€OÝ�:ÑÔð ð ˆØ˜Ôð 	Ø! !Ô$Ô*¨7Ô3ˆEØ˜Šˆ¥z°%Ñ'8Ô'8ˆ¸U¼ZÈ3Ò=NÐ=NØ%)� Ñ"ØØ�1Œ:ð 	Ø˜A”JÔ$ WÔ-ˆEØ˜Šˆ¥z°%Ñ'8Ô'8ˆ¸U¼ZÈ3Ò=NÐ=NØ%)� Ñ"ØØ ”Nð 	ð 	ˆDØð ˜œ¨Ò)Ð)Øœ
 7Ô+�Ø˜F’?�?­:°eÑ+<Ô+<�?ÀÄÈsÒARÐARØ)-�O AÑ&Ø�Eøøð?ð ?ð ?ð ?å&Ð'<Ñ=Ô=ð?ñ ?ô ?Ðð
 ð ð ˆÝ'¨°Ñ6Ô6ˆÝ'¨°Ñ6Ô6ˆÝ˜Tœ[¨$¬+¸¼Ñ*DÑEÔEˆÝ!Ð"4°\Ô"BÑCÔCÐÝ!Ð"4°\Ô"BÑCÔCÐØŒ;Ð(Ô)¨ZÒ7Ð7Ø”| aÑ'¨5¬;Ð7GÔ+HÈÔ+KÑKˆGˆGàˆGàÐ,¨wÑ6Ò6Ð6Ø&Ð*=ÀÑ*GÑHˆLØ#Ð#Ø˜ lÐ4FØÐ!6Ð8JØñô ð ð
 Ð,¨wÑ6Ò6Ð6Ø&Ð*=ÀÑ*GÑHˆLØ#Ð#Ø˜ lÐ4FØÐ!6Ð8JØñô ð øð&%ð &%ð &%ð &%ð &%å�zÑ"Ô"ð&%ñ &%ô &%Ð"õ /2ð 2*ð 2*ð 2*ð 2*ð 2*Ý',¨ZÑ'8Ô'8ð2*ñ 2*ô 2*ñ /*ô /*Ð+ð 
�sÐ(Ñ)Ô)Ñ	)¨SÑ0ð .à0°AÒ5Ð5Ø2°aÒ7Ð7Ø,-Ð)Ð)õ -0¬KÐ)Ð)ð 4Ø5ñ6ð 	&ð
 	(­#Ð.@Ñ*AÔ*AÑAð ð 	(­#ÝÐ"Ñ#Ô#Ð%Bð/-à+ð/-ñ +.ô +.ñ 	.ð ð
 ŒK˜Ô €EØ�‚€�z¨%Ñ0Ô0€°U´Z×5EÒ5EÑ5GÔ5GÈ4Ò5OÐ5Oð -2¬K¸Ô,@Ô,FÐFˆ˜/˜/à1ˆØ1ˆå!Ø¥Ø˜ oð"7ñ "7ô "7ñ8ô 8Ðõ "Ø¥Ø˜ oð"7ñ "7ô "7ñ8ô 8Ðõ %1Ø�|˜CÐ!8Ñ9Ô9ñ%;ô %;Ð!å$0Ø�|˜CÐ!8Ñ9Ô9ñ%;ô %;Ð!ð 	Ð.Ð0EØÐ8¸+ðG€Fð (Ð)@ÐJÀ6ÐJÐJØ,Ð.KÐUÈfÐUÐUð&ð &ð €G„N�5Ñ˜Fð �%Œ=Ðr   c           	      óØ  — | j         d         }|dk    rî| j         d         }|dk    st          |¦  «        s|j        dk    rd}n&|j                             ¦   «         dk    sJ ‚|j        }| j         d         dk    o0t          | j         d         ¦  «         o| j         d         j        dk    }|rd}nª| j        }|                     | j         d         | j         d	         ¦  «        \  }}}t          |||d|dd¬
¦  «        \  }}	nYt          | j         d         ¦  «        s| j         d         j        dk    rd}n&|j                             ¦   «         dk    sJ ‚|j        }t          | ||¦  «        S )z:Return the min-content width for an ``InlineReplacedBox``.r<   r=   Úheightr>   rH   r[   r   Úimage_resolutionr\   ©Údefault_widthÚdefault_height©	rN   r   rO   rR   rQ   r_   r`   r   rT   )
r   r   r<   r  Úunknown_max_widthÚimageÚintrinsic_widthÚintrinsic_heightÚintrinsic_ratiorc   s
             r   r-   r-   Ê  sŸ  € àŒI�gÔ€EØ�‚€Ø”˜8Ô$ˆØ�VÒÐ�z¨&Ñ1Ô1Ð°V´[ÀCÒ5GÐ5GØˆFˆFà”;×$Ò$Ñ&Ô&¨$Ò.Ð.Ð.Ð.Ø”\ˆFàŒI�kÔ" fÒ,ð /Ý˜3œ9 [Ô1Ñ2Ô2Ð2ð/àŒI�kÔ"Ô'¨3Ò.ð 	ð ð 
	;àˆEˆEà”OˆEà×(Ò(Ø”IÐ0Ô1°3´9¸[Ô3IñKô Kñ ?ˆOÐ-¨õ ,ØÐ!1°?ÀFØ a¸ð;ñ ;ô ;‰HˆE�1�1õ 
�C”I˜gÔ&Ñ	'Ô	'ð ¨3¬9°WÔ+=Ô+BÀcÒ+IÐ+IàˆˆàŒz×ÒÑ!Ô! TÒ)Ð)Ð)Ð)Ø”ˆÝ�#�u˜eÑ$Ô$Ð$r   c           	      óJ  — | j         d         }|dk    r§| j         d         }|dk    st          |¦  «        s|j        dk    rd}n&|j                             ¦   «         dk    sJ ‚|j        }| j        }|                     | j         d         | j         d         ¦  «        \  }}}t          |||d|dd	¬
¦  «        \  }}nYt          | j         d         ¦  «        s| j         d         j        dk    rd}n&|j                             ¦   «         dk    sJ ‚|j        }t          | ||¦  «        S )z:Return the max-content width for an ``InlineReplacedBox``.r<   r=   r  r>   rH   r  r\   i,  é–   r  r   r	  )	r   r   r<   r  r  r  r  r  rc   s	            r   r9   r9   ì  sI  € àŒI�gÔ€EØ�‚€Ø”˜8Ô$ˆØ�VÒÐ�z¨&Ñ1Ô1Ð°V´[ÀCÒ5GÐ5GØˆFˆFà”;×$Ò$Ñ&Ô&¨$Ò.Ð.Ð.Ð.Ø”\ˆFØ”ˆà×$Ò$Ø”	Ð,Ô-¨s¬y¸Ô/EñGô Gñ 	;ˆÐ)¨?õ (ØÐ-¨ÀÈØ¨cð3ñ 3ô 3‰ˆˆqˆqõ 
�C”I˜gÔ&Ñ	'Ô	'ð ¨3¬9°WÔ+=Ô+BÀcÒ+IÐ+IàˆˆàŒz×ÒÑ!Ô! TÒ)Ð)Ð)Ð)Ø”ˆÝ�#�u˜eÑ$Ô$Ð$r   c                 ó*  ‡ — ˆ fd„|j         D ¦   «         }|st          ||d¦  «        S |j        d                              d¦  «        r/|j        d         dk    rt          ||t	          |¦  «        ¦  «        S t          ||t          |¦  «        ¦  «        S )z9Return the min-content width for an ``FlexContainerBox``.c                 ó>   •— g | ]}|j         ¯	t          ‰|¦  «        ‘ŒS r~   )Úis_flex_itemr   r   s     €r   rD   z*flex_min_content_width.<locals>.<listcomp>
  ó;   ø€ ð 9ð 9ð 9à UÔ%7ð9Ý˜' 5Ñ)Ô)ð9ð 9ð 9r   r   Úflex_directionrÛ   Ú	flex_wrapr‹   ©rP   rT   rN   Ú
startswithr¸   r   )r   r   r   Úmin_contentss   `   r   r/   r/     s­   ø€ ð9ð 9ð 9ð 9à”\ð9ñ 9ô 9€Lð ð %Ý�c˜5 !Ñ$Ô$Ð$ØŒ	Ð"Ô#×.Ò.¨uÑ5Ô5ð 5ØŒI�kÔ" hÒ.Ð.Ý�c˜5¥# lÑ"3Ô"3Ñ4Ô4Ð4å�c˜5¥# lÑ"3Ô"3Ñ4Ô4Ð4r   c                 ó  ‡ — ˆ fd„|j         D ¦   «         }|st          ||d¦  «        S |j        d                              d¦  «        rt          ||t	          |¦  «        ¦  «        S t          ||t          |¦  «        ¦  «        S )z9Return the max-content width for an ``FlexContainerBox``.c                 ó>   •— g | ]}|j         ¯	t          ‰|¦  «        ‘ŒS r~   )r  r   r   s     €r   rD   z*flex_max_content_width.<locals>.<listcomp>  r  r   r   r  rÛ   r  )r   r   r   Úmax_contentss   `   r   r:   r:     s›   ø€ ð9ð 9ð 9ð 9à”\ð9ñ 9ô 9€Lð ð %Ý�c˜5 !Ñ$Ô$Ð$Ø
„yÐ!Ô"×-Ò-¨eÑ4Ô4ð 5Ý�c˜5¥# lÑ"3Ô"3Ñ4Ô4Ð4å�c˜5¥# lÑ"3Ô"3Ñ4Ô4Ð4r   c                 ó\  — ddl m}m} d}t          |t          j        t          j        f¦  «        r>|j        sdS ||j        d         }}t          |t          j        t          j        f¦  «        °>t          |t          j        ¦  «        r|j	        sdS |j
        d         dvrdS |j
        d         dk    rdS |j	                             d	¦  «        sdS |j	                             d	¦  «        x}rad}|�|} || |d|¦  «        \  }}}	|­|sJ ‚|                     |¦  «        }
 || |
d|¦  «        \  }
}}	|
€|j        S |�J ‚|j        |
j        z
  S  ||j	        |j
        | d|j        ¦  «        \  }	}	}	}}	}	|r6t!          |j        ¦  «        d
k    r|t#          | |j        d         ¦  «        z  }|S )z6Return the size of the trailing whitespace of ``box``.r   )r   Úsplit_text_boxNr   rx   rˆ   r‰   r\   ú r   éþÿÿÿ)Úinliner   r  r!   r	   r)   r*   rP   r’   r“   rN   ÚendswithÚrstripÚcopy_with_textr<   r—   r‘   rz   )r   r   r   r  Úlast_parentÚstripped_textÚresumeÚ
old_resumeÚold_boxrc   Ústripped_boxr<   s               r   rz   rz   %  s  € à8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð €KÝ
�S�5œ?­E¬MÐ:Ñ
;Ô
;ð 1ØŒ|ð 	Ø�1Ø ¤¨RÔ 0�Sˆõ �S�5œ?­E¬MÐ:Ñ
;Ô
;ð 1õ �c�5œ=Ñ)Ô)ð °´ð àˆqØ	Œ�=Ô	!Ð)IÐ	IÐ	IàˆqØ	Œ�;Ô	 1Ò	$Ð	$àˆqØŒX×Ò˜sÑ#Ô#ð àˆqð œŸš¨Ñ,Ô,Ð,€}ð àˆØÐ ØˆJØ!/ °¸¸dÀFÑ!KÔ!KÑˆG�V˜Qð Ð ð ˆˆˆØ×)Ò)¨-Ñ8Ô8ˆØ"0 .Ø�\ 4¨ñ#5ô #5Ñˆ�f˜aàÐà”=Ð ð �>�>�>Ø”= <Ô#5Ñ5Ð5ð  0Ð/ØŒH�c”i ¨$°Ô0Iñ Kô  KÑˆˆ1ˆa�˜˜1ð ð 	Q�3˜{Ô3Ñ4Ô4¸Ò9Ð9ØÕ-¨g°{Ô7KÈBÔ7OÑPÔPÑPˆEØˆr   )T)TT)TNFF)TF)NF))Ú__doc__rÖ   Ú	functoolsr   Úmathr   Úcssr   Úcss.functionsr   Úcss.validationr   Úformatting_structurer	   Útext.line_breakr
   r   Úreplacedr   r   r   r   rX   re   rk   rT   r&   r7   r+   r8   r(   r#   r6   rt   r¦   r    r-   r9   r/   r:   rz   r~   r   r   ú<module>r4     s|  ððð ð €
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø (Ð (Ð (Ð (Ð (Ð (Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø *Ð *Ð *Ð *Ð *Ð *ð6ð 6ð 6ð Wð Wð Wð Wð6Wð Wð Wð Wð6&%ð &%ð &%ðR1ð 1ð 1ð>+ð +ð +ð +ð\ð ð ð ð0ð 0ð 0ð 0ðHð Hð Hð Hð
 CGØ=Bð%ð %ð %ð %ð +ð +ð +ð +ð	%ð 	%ð 	%ðð ð ð$ ð  ð  ð  ð PTØ"'ðp%ð p%ð p%ð p%ðf1ð 1ð 1ð*Rð Rð Rð Rðj%ð %ð %ð %ðD%ð %ð %ð %ð45ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð2ð 2ð 2ð 2ð 2r   