+
    	i                         R t ^ RIHt ^ RIt^RIHt ^RIHt ^RI	H
t
Ht ^RIHt R tR tR	 tR
 tR tR tR]P(                  33R lt]! ^ R4      3R lt]P0                  P3                  R4      tR tR# )z+Layout for tables and internal table boxes.)infN)boxes)LOGGER)resolve_one_percentageresolve_percentages)"table_and_columns_preferred_widthsc                  a aaaaaaa%a&a'a(a)a*a+a,a-a.a/a0a1a2a3a4a5a6a7 ^RI Ho%Ho&Ho'Ho.Ho/Ho4 SP                  ;'       d    SP                  ^ ,          P                  o2SP                  ;'       d    SP                  R,          P                  o1SP                  R,          R8H  o+SRJ;'       d    S2'       * pSP                  VRR7       S+'       d   ^ ;o)o*MSP                  R,          w  o)o*SP                  o-. ;o,Sn        SP                  4       S),           o5SP                  R,          R	8X  dN   SP                  4       p	V	S),           p
S- F%  pV	S),          p	S,P                  V	4       W,          p	K'  	  W,
          o6M]SP                  4       SP                   ,           p	V	S),
          p
S- F%  pV	S),          p	W,          p	S,P                  V	4       K'  	  W,
          o6S+'       d   RSn        RSn        RpS'       dr   SP'                  4       w  w  rV'       d!   VP'                  4       w  w  ppV'       d   R
pM^ pSP                  RV  F  pV\)        VP                  4      ,          pK!  	  M^ pV'       gE   S2'       g=   SP*                  w  ppV'       d&   \-        R VV,           4       4      ^,          Sn        VV%V&V'V)V*V+V,V-V V.VV/V1V2V4V5V6V3R lo0VV%V'V*V V.VV/V0V4V3R lo(SP1                  4       o3Sf
   S3S*,          o3S3pSP                   Uu. uF-  pVP                  '       d   K  VP                  '       d   K+  VNK/  	  upo7V%V(V*VV V0V1V2VV3VVV73R lpR pV! 4       w  pppo3ppVf   Ve   Q hRo. pRpSVVVV3# SP3                  Ve   V.M. V,           Ve   V.M. ,           4      o\4        ;QJ d    . R SP6                   4       F  NK  	  5M! R SP6                   4       4      Sn        VRJ;'       d    S1'       * pSP                  VV4       S+'       d   XSn        \-        SP:                  R8w  d   SP:                  M^ S3SP1                  4       ,
          4      Sn        S3V,
          p SP                  '       d
   V S*,          p SP6                   EF,  pVP                   F  p!\=        V!SR7       V!P>                  \)        S,4      8  d@   S,V!P>                  ,          V!n         VV!n!        S-V!P>                  ,          V!n        V V!n        M^ V!n         ^ V!n!        ^ V!n        ^ V!n        \=        VSR7       V! SV!4      V!n"        K  	  VP                  ^ ,          p"VP                  R,          p#V"P@                  Vn         VVn!        V#P@                  V#P                   ,           V"P@                  ,
          Vn        V Vn        EK/  	  SP                  R,          R8X  d!   S-PG                  4        S,PG                  4        S%! SP                  R,          S 4      p$V'       d!   S'       g   V$'       d   S4! S S.SS4       RoRp. pRpSVVVV3# u upi )zLayout for a table box.)avoid_page_breakblock_container_layoutblock_level_page_breakfind_earlier_page_breakforce_page_breakremove_placeholdersborder_collapsecollapseNF)endborder_spacing	directionltrTc              3   0   "   T F  w  pw  rqx  K  	  R # 5iN .0_widths   &  ]/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/weasyprint/layout/table.py	<genexpr>table_layout.<locals>.<genexpr>J   s      -97 /a!AE7   c                   < R pRRRR /pTp\        V S>R7       S<V n        Wn        S=V n        . pV P                   U	u. uF  p	. NK  	  p
p	VR J pV'       d   ^ pMVP                  4       w  w  r\        V P                  VR  VR7       E	F  w  rWn        V'       d+   S/! VR,          V	4      pS8! VS54      '       d   WR&   VR /p E	M\        V	S>R7       S<V	n        Wn        S=V	n        . p\        V	P                  4       EF  w  ppS4VP                  R  R VP                   p\        V4      Vn	        VP                  ^ 8X  dS   V	P                  P                  V4      pV	P                  VR  p\        P                  ! R\        V4       RV 24        EM?\        VS>R7       S>P                  R,          R	8X  d   S3VP                  ,          Vn        M0S3VP                  VP                  ,           ^,
          ,          Vn        V	P                  Vn        ^ Vn        ^ Vn        ^ Vn        VP!                  4       p\#        V4      S0VP                  ^,
          ,          ,           V,
          Vn        V'       d*   VV9   d   VV,          pM\        VP                  4      R /pMR pV'       d   S2'       d   S:'       dz   S>P                  ^ ,          P                  pV'       dT   VR,          P                  '       d;   V;P                  \%        R
 VR,          P                   4       4      ,          un        MRS>n        VP(                  Vn        RVn        VP                  pVP                  R,          R8w  d'   VP                  P-                  4       pRVR&   VVn        S.! S5VVVVS,S7R R R RR R7      w  pp   pVVn        Vf2   VP/                  . 4      pS.! S5VVVR. . R R R RR R7      w  p    p^ R /pMTpVP1                  VR JRR7       V'       d   Vf   V/ /pVW],          V&   \2        ;QJ d&    R VP                   4       F  '       g   K   RM	  RM! R VP                   4       4      '       * Vn        VP(                  Vn        VP*                  R8w  d&   \%        VP(                  VP*                  4      Vn        VP9                  V4       EK  	  V'       d   V'       g   S-! V	P                  R,          S54      ;'       gQ    \2        ;QJ d*    V-V53R lV	P                   4       F  '       g   K   RM	  RM! V-V53R lV	P                   4       4      pV'       d   V/ /pS;! S5VS,S74        EMV'       d   V F  pVP1                  RRR7       K  	  V	P/                  V4      p	. pV	P                   FN  pVP                  R,          pVR9   d
   VVn        K&  RVn        \=        V4      Vn        VP9                  V4       KP  	  V'       dq   \%        R V 4       4      V	n        V FS  pV	P>                  VP>                  ,
          p VP>                  V	P>                  8w  g   K=  V '       g   KG  \A        VV 4       KU  	  V	P                   F,  pV
VPB                  ^,
          ,          P9                  V4       K.  	  V
PE                  ^ 4      p!V!'       d   V	P(                  R8X  d6   \%        R V! 4       4      p"\%        V"V	P                  ,
          ^ 4      V	n        M\\%        V	P(                  \%        R V! 4       4      4      V	n        V	P                  V	P(                  ,           p"MV	P                  p"^ V	n        V'       g   V"V	n        V! EFU  pVP                  VPG                  4       ,           p#V"V#,
          p V '       dx   VP:                  R8X  d   \A        VV 4       MYVP:                  R8X  d0   V ^,          p \A        VV 4       V;PH                  V ,          un$        MV;PH                  V ,          un$        VP*                  R8w  g   K  ^ p$VP:                  R8X  d&   VP*                  VP6                  ,
          ^,          p$M.VP:                  R8X  d   VP*                  VP6                  ,
          p$V$^ 8  g   EK0  VP                   F  p%V%PK                  V$R7       K  	  EKX  	  V	P                  V	P(                  ,           p&Vf
   V&S1,          p&Rp'V'       d\   \L        ;QJ d&    R V	P                   4       F  '       d   K   RM	  RM! R V	P                   4       4      '       d   \N        p&RpR pMRp'S5PQ                  VV&4      p(V'       g}   V('       du   S;! S5V	P                  S,S74       V'       dB   VR,          p)S/! V)V	4      pS-! VS54      '       d   S6! S5VS,S74      p*V*'       d   V*w  r MjMVR /p McV'       d   VR /pMR R V3u #  MMVP9                  V	4       T&pRpR pV''       d   S2'       d   S9'       g   RS>n)        V''       g   V'       g   E	K   M	  T;'       d9    V'       * ;'       d*    S-! V P                  R,          S54      ;'       g    V'       * p+V+'       d   S;! S5VS,S74       R R V3# V P/                  V4      p V P1                  V'       * VR JR7       V P                   F`  p	V	P>                  e   K  V	P                  '       d5   \%        R V	P                   4       4      V	P                  ,
          V	n        KY  ^ V	n        Kb  	  WP                  ,
          V n        V P                  '       d   V ;P(                  S1,          un        WV3# u up	i ) Nbreakanypagecontaining_blockstartz8This table row has more columns than the table, ignored z cells: r   r   c              3   :   "   T F  pVP                   x  K  	  R # 5ir   )border_bottom_width)r   headers   & r   r   5table_layout.<locals>.group_layout.<locals>.<genexpr>   s      3H.FF !' : :.Fs   TautoheightF)page_is_emptyabsolute_boxesfixed_boxesadjoining_marginsfirst_letter_stylefirst_line_stylediscard	max_lines)r'   r   c              3   r   "   T F-  pVP                  4       ;'       g    VP                  4       x  K/  	  R # 5ir   )
is_floatedis_in_normal_flowr   childs   & r   r   r+      s4      %0!. $$&CC%*A*A*CC!.s   77break_insidec              3   X   <"   T F  pS! VP                   R ,          S4      x  K!  	  R# 5i)r;   N)style)r   cellr	   contexts   & r   r   r+      s,      P2$0D )N)CWMM$0s   '*vertical_alignmiddlebottombaselinec              3   8   "   T F  qP                   x  K  	  R # 5ir   )rC   r   r>   s   & r   r   r+      s     "L^T==^   c              3   d   "   T F&  pVP                   VP                  4       ,           x  K(  	  R # 5ir   )
position_yborder_heightrE   s   & r   r   r+     s,      '2$0D $*<*<*>>>$0   .0c              3   @   "   T F  qP                  4       x  K  	  R # 5ir   )rI   )r   row_cells   & r   r   r+   
  s      5OAMX..00   dyc              3   8   "   T F  qP                   x  K  	  R # 5ir   )emptyr9   s   & r   r   r+   5  s     =u{{rF   c              3   d   "   T F&  pVP                  4       VP                  ,           x  K(  	  R # 5ir   )content_box_yr-   rE   s   & r   r   r+   s  s,      '2$0D **,t{{::$0rJ   )toprA   rB   )*r   
position_xrH   r   childrenitems	enumerateindexgrid_xcolspanlenr   warningr=   
margin_topmargin_leftborder_widthsummaxskip_cell_border_topr-   computed_heightcopycopy_with_childrenremove_decorationr"   rQ   content_heightappendr@   cell_baselinerC   add_top_paddingrowspanpoprI   padding_bottom	translateallr   overflows_pageskip_cell_border_bottom)?grouprH   bottom_spacer.   
skip_stack	resume_at	next_pageoriginal_page_is_emptynew_group_childrenrowending_cells_by_rowis_group_startskip	index_row
page_breaknew_row_children
index_cellr>   spanned_widths
cell_indexignored_cellsborders_plus_paddingcell_skip_stackheader_rowsoriginal_style
style_copynew_cellcell_resume_atr   avoid_breakbaseline_cellsr@   extraending_cellsrow_bottom_ycell_bottom_yvertical_align_shiftr:   next_position_y
break_celloverflowprevious_rowearlier_page_breakabortr/   r	   r
   r   border_spacing_xborder_spacing_yr   column_positionscolumn_widthsr?   r   r0   r   
has_footer
has_headerr   rows_left_x
rows_widthtables?   &&&&&                                       r   group_layout"table_layout.<locals>.group_layoutP   sE
   	eVT2	!.EE:&% -2^^<^cr^<#t+D","2"2"4T'tu(=TJJNI!I!3&r*C1
#J88)3g&!*D 1Ie<(CN'N"CI!$-cll$; 
D!.t{{|!<]dll!K
  #>2<<1$ "%!3!3D!9J$'LL$=MNN##&}#5"6h}oOP #D5A;;{+u4&6t{{&CDO&6t{{T\\7QTU7U&VDO"%.."##$ 
'+'8'8':$ '$q(89:() 
 !Z/*4Z*@+.t}}+=t*D&*O #x! ',nnQ&7&@&@&;r?+C+C+C OOs 3H.9"o.F.F3H 0H HO 6:2 (,{{$$!%::h'61!%!2J+1Jx(!+DJ7MT<"/ +t'+dE"8$4.!Q1 ,
#2226D*@|_&*22*.4)-u	+N'D!Q1a
 '(YN#D&&_D-He&T! (%.O	7EI(4!$ %0!%%0 %0!%%0 "0 0
 '+kk#''61"%dkk43G3G"HDK ''-E %<H  %SYY~%>H 2 2CC P2$'LLP2CCC P2$'LLP2 M2  !*BI'!1>;P,D**D*A - (()9:C  N!%,<!=!%@@*8D' +5D'$1$$7DM"))$/ % ""L^"LL*DLL4==8E}}4'e4 + #DLL1$45<<TB %.2215L::'#& '2$0'2 $2L "%\CNN%BA!FCJ!$SZZ 5OAM5O 2O "PCJ#&>>CJJ#>L"~~
!+ % $$2D2D2F F$}4**h6'e4,,8
'e4++u4+++u4+''61+,(**h6 0043F3FF!0L,,,8 0043F3FF -+a/%)]]E!OO/COD &3+ %0 "nnszz9O #33 J3==333====&)O$)M $I!%J --lOLH X#GS\\>;W%#5b#9L!7c!JJ'
G<<-D#%7.V*-<N9.! . &/$5	)!*D 1Iy00%%c*(J!MJhz04-YYy KB  ( (&&( ( ^!<gF ' '&&	 	
 +^[Jy(((();<.&8it>ST >>C||#<<<#& '2$'LL'2 $247NN$CCL $%CL " "$4$44>>>LL,,L**G	 =s   n
c                   < V f   ^ pMV P                  4       w  w  r@. pR pRRRR /p\        SP                  VR  4       EF  w  rV	P                  '       g   V	P                  '       d   K,  W,           p
Wn        V'       d*   S! VR,          V	4      pS! VS4      '       d   WR&   V
R /p MS! WW#V 4      w  rpR p Vf^   V'       dM   VR,          pS! W4      pS! VS4      '       d(   S! SVSS4      pVf   S! SVSS4       R R Wq3u # Vw  rV MLV
R /pMR R Wq3u #  M>VP                  V4       WP                  S,           ,          pRpV'       g   EK  W/p M	  WVWq3# )Nr!   r"   r#   FrT   )rX   rY   rW   	is_header	is_footerrZ   rj   r-   )rv   rH   ru   r.   r~   new_table_childrenrw   rx   irt   index_groupr   	new_groupprevious_groupr   r/   r	   r   r   r?   r   r0   r   r   r   r   s   &&&&           r   body_groups_layout(table_layout.<locals>.body_groups_layout  s   D","2"2"4T	eVT2	!%.."78HA%/// (K%K!34Fr4JER
#J88)3g&!,d 3I.:<
/L+I)J %%7%;N!7!NJ'
G<<-D#%7.V*-5/ ');^ +- $(y#DD8J5*!,d 3Iy<<%%i0**-===J!My(4	[ 9^ "iCC    c                    < S'       d   Sp M\         ) p S'       dK   SP                  ^ ,          pS! VSV RRR7      w  rpV'       d   V'       g   VP                  S,           pMRpMRpS'       dK   SP                  R,          pS! VSV RRR7      w  rRpV'       d   V'       g   VP                  S,           pMRpMRpS'       d   Sw  pM^ pRpSP                  VR  FE  p	V	P                  '       d   K  V	P                  '       d   K+  S! V	P
                  R,          S4      p M	  V'       dp   V'       dh   S! SSX,           SX,           VR7      w  rr;V
'       g   S'       d	   S'       g1   VP                  WP                  ,
          R7       W,          pWW[VV3# RpV'       d?   V'       g7   S! SSX,           SVR7      w  rr;V
'       g   S'       d	   S'       g   WW[VV3# RpV'       di   V'       ga   S! SSSX,           VR7      w  rr;V
'       g   S'       d	   S'       g1   VP                  WP                  ,
          R7       W,          pWW[VV3# RpV'       d   Q hV'       d   Q hS! SSSS4      w  rr;WW[W#3# )    NF)rv   r.   r;   )r.   rN   rT   )r   rW   r-   r   r   r=   rp   rH   )header_footer_bottom_spacer*   rw   rx   header_heightfooterfooter_heightr~   avoid_breaksrt   r   end_position_yr	   r   r   ru   r?   r   r   r   r.   rH   rv   r   
table_rowss               r   all_groups_layout'table_layout.<locals>.all_groups_layout  sq    )5&*-&^^A&F+7
$>u,6(Fy i &0@ @ F^^B'F+7
$>u,6(Fy i &0@ @ F EDD^^DE*E???5???/N0KWU +
 f #
] : =0N E9 "=  N5F5F$F G/	 
 & #
] :L".0 E9 "=	 
 & #
L=,H".0 E9 "=  N5F5F$F G/	 
 zzz:|]S 	Ay69WWr   c                   a a VV 3R l# )z(Return closure getting the column cells.c            	         < SP                    U UUu. uFH  p V P                    F5  pVP                    F"  pVP                  SP                  8X  g   K   VNK$  	  K7  	  KJ  	  uppp # u uppp i r   )rW   r[   )	row_groupr{   r>   columnr   s      r   <lambda>8table_layout.<locals>.get_column_cells.<locals>.<lambda>+  s_    "^^-+	 )){{fmm+	 D % ) +- -s   ;A%A%r   )r   r   s   ffr   get_column_cells&table_layout.<locals>.get_column_cells)  s    - 	-r   c              3   @   "   T F  qP                  4       x  K  	  R # 5ir   )deepcopy)r   column_groups   & r   r   r   @  s       I4GL4GrM   r,   r$   rtlr;   rT   )$blockr	   r
   r   r   r   r   rW   r   r   r=   rh   r   r   content_box_xrj   r   rd   rs   rX   r]   collapsed_border_gridrc   border_top_widthrS   rg   tuplecolumn_groupsskipped_rowsr-   r   r[   rV   rH   	get_cellsreverse)8r?   r   ru   rv   r%   r.   r/   r0   remove_start_decorationrV   rows_xr   split_cellsskipped_groupsgroup_skip_stackr   cells_skip_stackrt   r   horizontal_bordersinitial_position_yr:   r   r   r*   r   r   rw   rx   r1   collapsing_throughremove_end_decorationcolumns_heightr   firstlastr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   rH   r   r   r   r   s8   ffff&fff                             @@@@@@@@@@@@@@@@@@@r   table_layoutr      s   H H
 ??ENN1$5$?$?J@@ENN2$6$@$@J{{,-;H(4GGZ	3? .//+-2[[9I-J** ''M022u-%%'*::K{{;5(((*
.."E**J##J/J #  (
((*U[[8
.."E**JJ##J/ # (
 %*"(-%2<2B2B2D/.^4D4J4J4L10/#"&K 8ENN 33 9 L:$)$?$?!A!!), -9),7-9 *9;<*=&m+ m+ m+^	8D 8Dv $$&J&&
# >>8)% 	', 	>8JeX eX eXN- 	 IF
Iy !   "i,=?QQQ$$'&R	'&R	12E  %  I494G4G I%%  I494G4G I IE%T1DD*n	35JK) .AU((**,EL
  "44N~~~**$$nnF?}}s#344$4V]]$C!$6!,V]]; . %&!$%!  !>/v>F % q!~~b! ++-oo

2U5E5EE%+ %0 {{;5(  ""5;;~#>HK;GeWnkJ	)Y(9;MMMq8s   Y'Y;Yc                    V ;P                   V,          un         V P                   F  pVP                  VR7       K  	  R# )zHIncrease the top padding of a box.

This also translates the children.

rN   N)padding_toprW   rp   )boxextra_paddingr:   s   && r   rl   rl   y  s.     OO}$O=) r   c                   V P                  4       pVP                  R8w  g   Q hVP                   UUu. uF  pVP                   F  pVNK  	  K  	  pppVP                  '       dU   VP                  ^ ,          P                  '       d2   VP                  ^ ,          pVP                  ^ ,          P                  pM. p\	        \        V4      \        R V 4       4      4      pR.V,          p\        V4       F=  w  r\        VRVP                  4       VP                  R8w  g   K/  VP                  W&   K?  	  VP                  R,          R8X  d   VP                  R,          w  rM^ p
^ p	V F  p\        W4       VP                  R8w  d   VP                  4       pWVP                  ^,
          ,          ,          p. p\        WVP                  ,           4       F/  pW,          f   VP                  V4       K   WV,          ,          pK1  	  V'       d    V\        V4      ,          pV F  pVW&   K	  	  WP                  ,          p	K  	  W^,           ,          p\        R V 4       4      V,           p\        V4       U	Uu. uF  w  p	pVe   K  V	NK  	  pp	pV'       dE   VP                  V8  d4   VP                  V,
          pV\        V4      ,          pV F  p	VW&   K	  	  MV F  p	^ W&   K	  	  VP                  \        V4      ,
          V,
          pV^ 8:  d   V;P                  V,          un        M)V'       d"   VV,          pV Uu. uF  pVV,           NK  	  ppWn        R# u uppi u upp	i u upi )	z|Run the fixed table layout and return a list of column widths.

https://www.w3.org/TR/CSS21/tables.html#fixed-table-layout

r,   c              3   8   "   T F  qP                   x  K  	  R # 5ir   )r\   rE   s   & r   r   %fixed_table_layout.<locals>.<genexpr>  s     +U_TLL_rF   Nr   r   separater   c              3   0   "   T F  qf   K  Vx  K  	  R # 5ir   r   )r   ws   & r   r   r     s     Em11ms   
)get_wrapped_tabler   r   rW   rc   r]   rb   rY   r   r=   r   ra   r\   rangerj   r   )r   r   r   r   all_columnsfirst_rowgroupfirst_row_cellsnum_columnsr   r   r   r   r>   r   columns_without_widthjwidth_per_columnall_border_spacingmin_table_widthr   remaining_widthextra_widthextra_per_columns   &                      r   fixed_table_layoutr     s    !!#E;;&    $)#6#6-#6<"++F 	+ 	#6  - ~~~%..+444*(11!4==c+&+U_+U(UVKF[(M {+	vw<<<6!%||M ,
 {{$%3#kk*:;! 	
AD(::%%'E)9::E %'!1$,,./ #+)0031--E	 0
 %#(3/D+E#E .A'7M$ /	\\%  , *1_=EmEE)*O+4]+C ++C41a ! Q+C +!?++7*S1F-GG&A/M ' 'A M '
 ++M 225GGKa{"	&47DE}!---}E (U-d+( Fs   M#>	M)M)M/c           	        VP                  4       p\        WRR7      w  rErgrr^ pVP                  R8w  d   WP                  ,          pVP                  R8w  d   WP                  ,          pVP                  VP
                  ,           pVP                  VP                  ,           pVw  ppW,
          V,
          V,
          pVP                  R8X  d%   VV8:  d   WCn        M-VV8  d	   VVn        MWSn        MVP                  V8  d   WCn        V'       g
   . Vn	        R# VP                  V
,
          pVR,          pVR,          pVR,          pVR,          pVVVV3p\        \        V4      4       Ft  pVV,          '       dF   \        VV,          ^d,          V,          VV,          4      VV&   VV,          VV&   VV,          VV&   KW  V	V,          '       g   Kh  VV,          VV&   Kv  	  V\        V4      8  Ed   V^ ,          pVR,          pV F  p\        V4      VR,          8:  d   TpK   M	  VRRR1,           F  p\        V4      VR,          8  d   TpK   M	  VV8X  d
   VVn	        R# \        \        V4      4       Uu. uF  pVV,          VV,          ,
          NK  	  ppV\        V4      ,
          \        V4      ,          p\        \        V4      4       Uu. uF!  pVV,          VV,          V,          ,           NK#  	  upVn	        R# VVn	        V\        V4      ,
          p\        WVVP                  V	W4       R# u upi u upi )	zzRun the auto table layout and return a list of column widths.

https://www.w3.org/TR/CSS21/tables.html#auto-table-layout

F)outerr,   N:NNNrT   g0D   ?gv?)r   r   r`   margin_rightpadding_leftpadding_rightborder_left_widthborder_right_widthr   r   r   r]   rc   rb   distribute_excess_width)r?   r   r%   r   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marginspaddingsborderscb_widthr   available_widthassignable_widthmin_content_guessmin_content_percentage_guessmin_content_specified_guessmax_content_guessguessesr   lower_guessupper_guessguessadded_widthsavailable_ratioexcess_widths   &&&                            r   auto_table_layoutr    s>    !!#E /Q	U/$,!$ G
& ??"
6!###!!E$7$77H%%(@(@@G"KHa(83g=O{{f551K66)EK1K;;001K {{%DD1!4#<Q#? ";A">1!47#%68G 3t9'**.1,Q/#58HH)!,/.(+ .J!-L'*#?#Ba Q .Gq-I'*  #/00 ajbk E5z-::#	 
 TrT]]E5z-::#	 #
 +%"-E :?s4y9IK9IAAQ//9I  K/#k2BBc,FWWO s4y)#+)A Aa?!BBB)#+E 0'#.?*@@<)<)<o(	EK#+s    M 'Mc                    VP                  4       p\        W24       VP                  R,          R8X  d   VP                  R8w  d   \	        V4       M\        WV4       VP                  4       Vn        R# )z;Find the width of each column and derive the wrapper width.r   fixedr,   N)r   r   r=   r   r   r  ra   )r?   wrapperr%   r   s   &&& r   table_wrapper_widthr  9  sW    %%'E0{{>"g-%++2G7#',<=&&(GMr   c                    \         P                  \         P                  3p\        WR7      pVe   W P                  ,
          # V P
                  V P                  ,           V P                  ,           # )zReturn the y position of a cell baseline from the top of its border box.

See https://www.w3.org/TR/CSS21/tables.html#height-layout

)baseline_types)r   LineBoxTableRowBoxfind_in_flow_baselinerH   r   r   r-   )r>   r  results   &  r   rk   rk   F  sW     mmU%6%67N"4GF'' $$t'7'77$++EEr   Fc                b   \        W4      '       d   V P                  V P                  ,           # \        V \        P                  4      '       d   R# V'       d   \        V P                  4      MV P                  pV F/  pVP                  4       '       g   K  \        WAV4      pVf   K-  Vu # 	  R# )uz   Return the absolute y position for the first (or last) in-flow baseline.

If there’s no in-flow baseline, return None.

N)	
isinstancerH   rC   r   TableCaptionBoxreversedrW   r8   r!  )r   r   r  rW   r:   r"  s   &&&   r   r!  r!  U  s~     #&&~~,,	C..	/	/)-x%3<<H""$$*5GF!	 r   c                  aa \        W,          VP                  R7       UU	u. uF7  w  rWH,          '       d   K  SV,          ^ 8X  g   K%  SV,          ^ 8  g   K5  VNK9  	  p
pp	V
'       dK   \        V3R lV
 4       4      pW+,          pV
 F%  pW8;;,          SV,          V,          ,          uu&   K'  	  R# \        W,          VP                  R7       UU	u. uF'  w  rWH,          '       d   K  SV,          ^ 8X  g   K%  VNK)  	  p
pp	V
'       d0   V
 F'  pW8;;,          V\        V
4      ,          ,          uu&   K)  	  R# \        W,          VP                  R7       UU	u. uF7  w  rWH,          '       g   K  SV,          ^ 8X  g   K%  SV,          ^ 8  g   K5  VNK9  	  p
pp	V
'       dK   \        V3R lV
 4       4      pW+,          pV
 F%  pW8;;,          SV,          V,          ,          uu&   K'  	  R# \        W,          VP                  R7       UU	u. uF'  w  rSV,          ^ 8  g   K  SV,          ^ 8  g   K%  VNK)  	  p
pp	V
'       dK   \        V3R lV
 4       4      pW-,          pV
 F%  pW8;;,          SV,          V,          ,          uu&   K'  	  R# \        W,          VP                  R7       UUu. uF  w  rV'       g   K  VNK  	  p
ppV
'       d0   V
 F'  pW8;;,          V\        V
4      ,          ,          uu&   K)  	  R# \        W,          VP                  R7       UU	u. uF  w  rVNK	  	  p
pp	V
 F'  pW8;;,          V\        V
4      ,          ,          uu&   K)  	  R# u up	pi u up	pi u up	pi u up	pi u uppi u up	pi )zoDistribute available width to columns.

See https://www.w3.org/TR/css-tables-3/#distributing-width-to-columns

r&   c              3   6   <"   T F  pSV,          x  K  	  R # 5ir   r   r   r   r  s   & r   r   *distribute_excess_width.<locals>.<genexpr>x       $S7a%>q%A%A7   Nc              3   6   <"   T F  pSV,          x  K  	  R # 5ir   r   r)  s   & r   r   r*    r+  r,  c              3   6   <"   T F  pSV,          x  K  	  R # 5ir   r   )r   r   r  s   & r   r   r*    s      (>5<(++Wr,  )rY   r'   rb   r]   )r?   r  r  r   r  r  r  column_slicer   r   columnssum_max_content_widthsratiosum_intrinsic_percentagesr   s   &&&&&ff&       r   r   r   i  sC      2,:L:LM*Mda!! 	
$Q'1, 	
 	"!$q( 	
M  *
 !$$S7$S!S5A 9! <u DD    2,:L:LMLMda!! 	
&B1&E&J 	
M  L As7| ;;    2,:L:LM*Mda 	
$Q'1, 	
 	"!$q( 	
M  *
 !$$S7$S!S5A 9! <u DD    2,:L:LMUMda'*Q. 	
3LQ3ORS3S 	
M  U $' (>5<(> %>!8A <Q ?% GG  %T%7|?Q?QRRia 	
R   As7| ;;  't'9ASASTUTTQqTGUL3w<77 s*L*U Vsd   M M 
M M M&,M&<M&M,3M,M,M,M2%M25M20M8M8!M>transparentc           
     
  a a a!a"a#a$a% V'       d	   V'       g   . . 3# \        . RO4      p\        V4       UUu/ uF  w  rEWTbK	  	  uppo$RRRR/o#^ ^ S$R,          3R^ \        33p\        V4       Uu. uF  qv.V^,           ,          NK  	  upo%\        V^,           4       Uu. uF  qv.V,          NK  	  upo V#V$3R lo"V V"V V%3R lp^^ S$R,          3R^ \        33p	^ p
S P                   EFP  pVP                   EF;  pVP                   EF  pVP
                  VP                  VP                  prS P                  R	,          R
8X  d-   \        V^,           W,           4      p\        WV,           4      pMD\        RV,
          RV,
          V,
          R4      p\        RV,
          RV,
          V,
          R4      pV F(  p\        WV,           4       F  pV	S%V,          V&   K  	  K*  	  V F0  p\        V
^,           V
V,           4       F  pV	S V,          V&   K  	  K2  	  V! WWV4       EK   	  V
^,          p
EK>  	  EKS  	  ^ p
S P                   F*  pVP                   F  pV! V^ W^4       V
^,          p
K  	  K,  	  ^ p
S P                   F,  p\        VP                  4      pV! V^ WV4       V
V,          p
K.  	  S P                   F,  pVP                   F  pV! VVP
                  ^ ^V4       K  	  K.  	  S P                   F#  pV! VVP
                  ^ VP                  V4       K%  	  V! S ^ ^ W4       R o!V!3R lpV%3R lpV 3R lp^ p
S P                   EFx  pV! V4       VP                   EF[  pV! V4       VP                   EF5  pVP
                  T
ppVP                  VP                  ppS P                  R	,          R
8X  dT   V! VVVV,           4      pV! VVV,           VV,           4      pV! VVVV,           4      pV! VV,           VVV,           4      pMxT! V) V,
          TV) ;'       g    R4      pT! V) V,
          VV,           V) ;'       g    R4      pV! RV,
          V,
          VVV,           4      pV! RV,
          VVV,           4      pS!! VRV4       S!! VRV4       S!! VRV4       S!! VRV4       EK8  	  V
^,          p
EK^  	  EK{  	  S P                   F&  pV! V4       VP                   F  pV! V4       K  	  K(  	  S!! S RV! ^ ^ V4      4       S!! S RV! ^ W!4      4       S!! S RV! ^ ^ ^4      4       S!! S RV! V^ ^4      4       S%S 3# u uppi u upi u upi )a  Resolve border conflicts for a table in the collapsing border model.

Take a :class:`TableBox`; set appropriate border widths on the table,
column group, column, row group, row, and cell boxes; and return
a data structure for the resolved collapsed border grid.

hiddenridgeoutsetgrooveinsetnonec                    < ^RI Hp VRV R2,          pVRV R2,          pV! VRV R24      pVR8X  d   ^M^ VSV,          3p	SP                  Wf4      pW,          V,          w  rW8  d   WWx33W,          V&   R# R# )   )	get_colorborder__style_width_colorr6  N)
draw.colorr>  get)border_grid	box_stylesider[   grid_yr>  r=   r   colorscoreprevious_scorer   	style_mapstyle_scoress   &&&&&       r   set_one_border.collapse_table_borders.<locals>.set_one_border  s    *GD601GD601)wtfF%;< (!a%e9LMe+'/7!+0%2G*HK' "r   c           	      D  < V P                   pS
P                   R ,          R8X  do   \        W"V,           4       F   pS	! SVRW4       S	! SVRW,           V4       K"  	  \        WV,           4       F   pS	! SVRWr4       S	! SVRWrV,           4       K"  	  R# \        W"V,           4       F0  pS	! SVRRV,
          V,
          V4       S	! SVRRV,
          V4       K2  	  \        RV,
          RV,
          V,
          R4       F   pS	! SVRWr4       S	! SVRWrV,           4       K"  	  R# )r   r   leftrightrU   rB   NrT   )r=   r   )r   xyr   hr=   yyxxr   rN  r   vertical_borderss   &&&&&   r   set_borders+collapse_table_borders.<locals>.set_borders  s   		 ;;{#u,A1uo/F/K & A1uo15%G15(BAN & A1uo/Q
BO/aL & BFBFQJ315%G15(BAN 4r   r   r   c                 8    R V R2p\        WV^,          4       R# )r?  rA  N)setattr)r   rG  twice_widthprops   &&& r   set_border_used_width5collapse_table_borders.<locals>.set_border_used_width'  s    f%;?+r   c                 X   < S! V R ^ 4       S! V R^ 4       S! V R^ 4       S! V R^ 4       R# )rU   rR  rB   rQ  Nr   )r   r_  s   &r   remove_borders.collapse_table_borders.<locals>.remove_borders+  s3    c5!,c7A.c8Q/c61-r   c                 4   <a  \        V 3R  lSW  4       4      # )c              3   P   <"   T F  qS,          ^,          ^,          x  K  	  R# 5i)   Nr   )r   grid_rowrS  s   & r   r   Ecollapse_table_borders.<locals>.max_vertical_width.<locals>.<genexpr>2  s!     M5LA;q>!$$5Ls   #&rc   )rS  y1y2rX  s   f&&r   max_vertical_width2collapse_table_borders.<locals>.max_vertical_width1  s    M5Eb5LMMMr   c                 :   < \        R  SV,          W  4       4      # )c              3   0   "   T F  w  pw  rqx  K  	  R # 5ir   r   r   s   &  r   r   Gcollapse_table_borders.<locals>.max_horizontal_width.<locals>.<genexpr>5  s     N1M-Q151Mr   ri  )x1rT  x2r   s   &&&r   max_horizontal_width4collapse_table_borders.<locals>.max_horizontal_width4  s    N1CA1Fr1MNNNr   NrU   rB   rQ  rR  )
r6  doublesoliddasheddottedr7  r8  r9  r:  r;  rT   )r&  rY   TRANSPARENTr   rW   r[   r\   rm   r=   r]   r   span)&r   
grid_widthgrid_heightstylesrJ  r=   weak_null_borderr   rY  strong_null_borderrH  r   r{   r>   r[   r\   rm   vertical_x_rangehorizontal_x_rangerW  rV  r   r   rb  rl  rs  rS  rT  rU   rB   rQ  rR  r   r_  rN  rL  rM  rX  s&   f&&                             @@@@@@r   collapse_table_bordersr    sY    ;2v # $F 6?v5FG5F\UEL5FGL'8X6IA|F34vq+6NO 8=[7IK7I!j1n--7IK 27{Q1GI1GAZ''1GII O O. ah!788Q:TUF^^	%%C+/;;dll;;{+u4',VaZ9I'J$).v7G)H&',R&["v+:OQS'T$).rF{BK'<QSU)V&*B#FW,<=3E(,R0 > + -B#FQJ0@A5G*2.r2 B - D&7C! %" aKF% & $, F^^	%%CQA6aKF & $ F^^	i(()Iq&g>' $ ++"++Fq![A , ,
 ++,--q,2C2C[	R ,
 q!Z5
,.NO F^^	y!%%C3{{F1#'<<;;{+u4.q!Q[AC1!Q[!g+NF-aAK@D.q7{Aq7{KE.x!|Q

dKC17(Q,GaRZZSWXF-b7lQ.>1w;OD.rAvq!g+FE%dE37%dHf=%dFD9%dGU;! %" aKF' & $. ++|$"++F6" , ,
 %(<Q:(NOx-aIK %);Aq!)DE%*<ZA*NO///{ H
KIs   U0U U)__doc__mathr   tinycss2.color5tinycss2formatting_structurer   loggerr   percentr   r   	preferredr   r   rl   r   r  r  rk   r  r!  slicer   color5parse_colorrz  r  r   r   r   <module>r     s    1   (  @ 9i	NX*S(l\E~
)F %*5==:J , */q$C8L oo))-8l0r   