
    Mhv                         d Z ddlmZmZmZmZmZmZ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
Zd Zd Zd Zd Z	 ddZd Zd ZddZd Zd Zy)zDraw borders.    )ceilcosfloorpisinsqrttan   )boxes)replaced)
percentage)Matrix   )	get_colorstyled_color)toprightbottomleftc           
         |j                   d   d   dk(  s|j                  y|j                         \  }}}}}}}}	t        ||      }
|
| j                  z  }
| j                  |||||j                   d         }t        |||j                  |j                   d   |j                   d   |j                   d	   |j                   d
          y)z5Set ``box`` mask border as alpha state on ``stream``.mask_border_sourcer   noneNefmask_border_modemask_border_slicemask_border_repeatmask_border_outsetmask_border_width)stylemask_border_imagerounded_border_boxr   ctmset_alpha_statedraw_border_image)streamboxxywhtltrbrblmatrixmask_streams               n/var/www/pru.catia.catastroantioquia-mas.com/valormasv2/lib/python3.12/site-packages/weasyprint/draw/border.pyset_mask_borderr4      s    
yy%&q)V3s7L7L7T!$!7!7!9Aq!QBBa1F
fjjF((Aq!SYY?Q5RSK[#//;N1O		&'3G)H		%&(    c           
         ddd|j                   d   f}d}|j                  D ]  }|j                   d   dk(  rd}|rd}| j                         5  |j                   d   }|j                   d   }|j                   d   d	k(  r|j                   d
   }n#t        |j                   d   |j                        }|j
                  |j                   d   |z   dz  z
  }||j                  ||j                  f}	t        | ||d|	|       t        |t        |j                   d      d      }
t        | |	|||
       ddd        y# 1 sw Y   $xY w)z1Draw the column rules to a ``pdf.stream.Stream``.r   column_rule_widthTcolumn_spanallFcolumn_rule_style
column_gapnormal	font_sizer
   r   column_rule_colorN)r!   childrenstackedr   width
position_x
position_yheightclip_border_segmentr   r   draw_rect_border)r'   r(   border_widths	skip_nextchild
rule_width
rule_stylegaprB   
border_boxcolors              r3   draw_column_rulesrO      sZ   1cii(;<=MI S;;}%.II^^ 	S#67J#67Jyy&(2ii, <!8#))D  CII.A$BS$HA#MM #U%5%5z5<<OJ
J
MS Icii1DEvOEVZ
ER	S 	SS	S 	Ss   C D<<E	c                 *   |j                   d   dk7  ryt        |t        j                        xr& |j                   d   dk7  xs |j                   d   dk7  }|r4|j                   d   r%| j	                         5  t        | |       ddd       |j                   d   d	   d
k7  ru|j                  i| j	                         5  t        || |j                  |j                   d   |j                   d   |j                   d   |j                   d          ddd       yt        D cg c]  }t        |d| d       }}t        |      d	hk(  ryt        D cg c]  }t        |j                   d| d       }}t        t              D cg c])  \  }}||   j                  xr |j                   d| d   + }}}t        |      dhdhfv }t        t        |            dk(  }	d	|v}
|r2|	r0|
r.| j	                         5  t        | ||d	   |d	          ddd       yt!        t#        t        |||            }dD ]  }||   \  }}}}|d	k(  s|s| j	                         5  | j%                         5  t'        | ||||j)                         dd ||j)                         dd        t        | ||t+        |||             ddd       ddd        y# 1 sw Y   FxY w# 1 sw Y   yxY wc c}w c c}w c c}}w # 1 sw Y   yxY w# 1 sw Y   IxY w# 1 sw Y   xY w)zADraw the box borders and column rules to a ``pdf.stream.Stream``.
visibilityvisibleNcolumn_widthautocolumn_countr7   border_image_sourcer   r   border_image_sliceborder_image_repeatborder_image_outsetborder_image_widthborder__width_color_stylesoliddoubler   )r
      r   r      )r!   
isinstancer   BlockContainerBoxartifactrO   border_imager&   SIDESgetattrsetr   	enumeratealphalendraw_rounded_bordertuplezipr@   rE   r#   r   )r'   r(   columnssidewidthscolorsistylessimple_stylesingle_color
four_sidesvaluesindexrA   rN   r!   s                   r3   draw_borderr{   8   s.    yy)+ 	3//0 	1IIn%/ 0IIn%/  39901__ 	+fc*	+ yy&'*f49I9I9U__ 	1VS--syy9M/N		/0#))<Q2R		./1	1
 	?DEtgcWTF&12EFE
6{qcGLMti		WTF&#9:MFM #5)+Q 	q	=CIIvV&<==+F + v;G9xj"99Ls6{#q(L&J__ 	CVAYq	B	C
 3ufff56F V$*5M!eUEA:U__ 	V 0 	VudC,B,B,DRa,H..046  ULt4TU		V 	V 	V	VI	+ 	+
	1
 	E N+	C	V 	V 	V 	Vs\   7K=AKK!!K&.K+7K1L	(AK=5L	KK1K:=LL		L	c                    45 j                   j                  d    j                  d         \  }}}	t        j                  |||	dd j	                          j                               \  54|dd }
|d   }d } ||
d   4      } ||
d   5      } ||
d	   4      } ||
d
   5      }|\  }} j                         \  }}}}}}}} j                         \  }}}}}} }!}"||z
  }#||z
  }$||z
  |#z
  }%||z
  |$z
  }&d }' |'|d   |$      }( |'|d   |%      }) |'|d	   |&      }* |'|d
   |#      }+||+z  }||(z  }||+|)z   z  }||(|*z   z  }d }, |,|d   |$||      }$ |,|d   |%||      }% |,|d	   |&||      }& |,|d
   |#||      }#	 	 d 45fd	}- |-|||#|$dd||      \  }.}/ |-||z   |%z
  ||%|$5|z
  d||        |-||z   |%z
  ||z   |&z
  |%|&5|z
  4|z
  ||      \  }0}1 |-|||z   |&z
  |#|&d4|z
  ||       ||z   5k  x}2rI |-||#z   |||#z
  |%z
  |$|d5|z
  |z
  ||	        |-||#z   ||z   |&z
  ||#z
  |%z
  |&|4|z
  5|z
  |z
  ||	       ||z   4k  x}3rI |-||z   |%z
  ||$z   |%||$z
  |&z
  5|z
  ||4|z
  |z
  |	        |-|||$z   |#||$z
  |&z
  d||4|z
  |z
  |	       |rA|2r>|3r; |-||#z   ||$z   ||#z
  |%z
  ||$z
  |&z
  ||5|z
  |z
  4|z
  |z
  |||.xs |0|/xs |1       yyyy)zHDraw ``image`` as a border image for ``box`` on ``stream`` as specified.image_resolutionr=   N)specified_widthspecified_heightdefault_widthdefault_heightrb   c                     t        | t        t        f      rt        | |      S | j                  dk(  sJ t        d| j
                        dz  |z  S )N%d   )rc   intfloatminunitvalue)	dimension	intrinsics     r3   compute_slice_dimensionz2draw_border_image.<locals>.compute_slice_dimension   sJ    i#u.y),,>>S(((sIOO,s2Y>>r5   r   r   r
   ra   c                 r    | j                   | j                  |z  S | j                   dk(  sJ | j                  S )Npx)r   r   )r   from_borders     r3   compute_outset_dimensionz3draw_border_image.<locals>.compute_outset_dimension   s7    >>!??[00>>T)))??"r5   c                     | dk(  r|S t        | t        t        f      r| |z  S | j                  dk(  r| j                  dz  |z  S | j                  dk(  sJ | j                  S )NrT   r   r   r   )rc   r   r   r   r   )r   originalr   area_dimensions       r3   compute_width_adjustmentz3draw_border_image.<locals>.compute_width_adjustment   se    	C<0x''^^s"??S(>99>>T)))??"r5   c                    d||fv rd}
n~d}|
s|r|r||z  nd}
|dk(  rt        ||z  |
z        }nX|dk(  r#t        ||z  |
z        }||
z  ||z  z
  |dz   z  }n0|dk(  r$t        dt        ||z  |
z              }|||z  z  }
nd}||z  }
d||fv rd}n~d}|s|r|r||z  nd}|	dk(  rt        ||z  |z        }nX|	dk(  r#t        ||z  |z        }||z  ||z  z
  |dz   z  }n0|	dk(  r$t        dt        ||z  |z              }|||z  z  }nd}||z  }d|
|fv r|
|fS |
z  }|z  }||z  z  }||z  z  }j	                         5  j                  | |||       j                          j                          j                  | |z
  z   ||z
  z          j                  |
|       t              D ]  }t              D ]  }j	                         5  |||z   z  }|||z   z  }j                  ||       j                  ||
z  ||z  ||       j                          j                          j                  j                  d          d d d          	 d d d        |
|fS # 1 sw Y   xY w# 1 sw Y   |
|fS xY w)	Nr   r   repeatspaceroundr   )adimage_rendering)r   r   maxr   r@   	rectangleclipend	transformrangedrawr!   )r)   r*   rA   rD   slice_xslice_yslice_widthslice_heightrepeat_xrepeat_yscale_xscale_yextra_dxn_repeats_xextra_dyn_repeats_yrendered_widthrendered_heightoffset_xoffset_yrt   jtranslate_xtranslate_yr(   imageintrinsic_heightintrinsic_widthr'   s                           r3   draw_border_image_regionz3draw_border_image.<locals>.draw_border_image_region   sG    %55GH5;6L0RS8#"5;#6#@AW$#EK$7'$AB W_{['@@[ST_U W$!!U5;+>+H%IJ;#<=+-!6<88GH38[5;.a8#"6L#87#BCW$#F\$9G$CD g%l(BB{UVW W$!!U6L+@7+J%KL K,$>? </'""G##(72*W4!G+o="W,/??^^ 	:Q5&1KKMJJLq8|h6!h,:QRw'2;' :{+ :A) :&';+A&B&'<(+B&C((;+(F(($w.70B'7 



"O5EII&78:: :::	:* : :	:* s&   BI=A?I1	I=1I:6I==J	)r   )r   )r   r   r   r   )stretchr   NN)get_intrinsic_sizer!   r   default_image_sizingborder_widthborder_heightr#   rounded_padding_box)6r(   r'   r   border_sliceborder_repeatborder_outsetr   rA   rD   ratioimage_sliceshould_fillr   	slice_topslice_rightslice_bottom
slice_leftr   r   r)   r*   r+   r,   r-   r.   r/   r0   r   pypwphptlptrpbrpblborder_left
border_topborder_rightborder_bottomr   
outset_topoutset_rightoutset_bottomoutset_leftr   r   
scale_left	scale_topscale_rightscale_bottomx_middley_middler   r   s6   ```                                                 @@r3   r&   r&   t   s    !33		$%syy'=?E65(0(E(EvudT&&(9J9J9L)N%O% r"Kq/K? (A8HII)+a./JK*;q>;KLL(QIJ&Hh!$!7!7!9Aq!QBB),)@)@)B&BBCc3q&KaJr6K'LFZ'M# *-*:JGJ+M!,<lKL,]1-=}MM*=+;[IKAOA|	##Am	##A
#" *QY3J+Q{A7L,Qa9M*Qj!5K MV7;J  J Z 5	1k:q!ZDJ	 	Aaz+%q+yB !9	Aa!em3\=+%'7,'F\!#K
 	1q5= +}	l*JF +o==x= OQK, >
?Z7+E	*
 	!OQU]2Ol*M(<7j(;6	 |+.>>>x> EL !j.!j.=8k)9)I5D	 	!q:~{A
N],Jy*y(<7		
 xH OQ^Q_|-K
N]*J	j(;6y(<7-+y7PL	R %-x{r5   Nc           
      	   ;<=> |\  }}}	}
|xs d\  \  }}\  }}\  }}\  }}|xs d|fz  \  }}}}d }d }d fd	=dk(  r- |||||      \  \  }}} || || |      \  \  }}}|}d}d;|>nd	k(  r4 || || |      \  \  }}} || | | |       \  \  }}}|}d}d
;||	z   >njdk(  r4 ||| ||       \  \  }}} || | | |       \  \  }}}|}d}d;||
z   >n1dk(  r, |||||      \  \  }}} ||| ||       \  \  }}}|}d}d;|>dv r|d
z  z
  z  |d
z  z
  }!}  |d
z  z
  |z  |d
z  z
  }#}"|	|z
  |z   }$|	}% j                  ||	z   >        j                  |>        j                  ||z   >|z           j                  ||	z   |z   >|z          ndv r z  |d
z  z
  |d
z  z
  }!} | z  |d
z  z
   |d
z  z
  }#}"|
|z
  |z   }$|
}% j                  >||
z           j                  >|        j                  >|z   ||z           j                  >|z   ||
z   |z          dv rldk(  r|nd|z  < j                  d        j                          srT | !      }& |"#      }'$|&z   |'z   }%t	        |%<z        }(|rr|%|(|(d
z  z   z  <n|%|(|(d
z  z   dz
  z  <t        |&<d
z  z
  <z        })t        |'<d
z  z
  <z        }*t        |$<z        }+;<=> fd}, |,|)|+|||&      \  }+}- |,|*|+| ||	z   ||
z   |'      d   }+|$dkD  rt        d|+d
      D ]  }.|.|-z  }.dv r+||z   |.<z  z   }/||z   |.dz   <z  z   }0>|dk  r|ndz
  }1|1|z   }2n.dv r*||z   |.<z  z   }1||z   |.dz   <z  z   }2>|dkD  r|ndz
  }/|/|z   }0 =/0|/z
  d
z  z   12|1z
  d
z  z   |0|/z
  |2|1z
  |d
z          nt        %<z  d
z        }3|3dz   }4dk(  r|<|3r|%|4<z  z
  |3z  }5nd}5ndk(  r|%|3|4z   z  xs dx}5<t        d|4dz         D ]  }.|.5<z   z  }6dk(  r||6z   <d
z  z   ||d
z  z   }8}7<|}:}9n\d	k(  r||	z   |d
z  z
  ||6z   <d
z  z   }8}7|<}:}9n<dk(  r||6z   <d
z  z   ||
z   |d
z  z
  }8}7<|}:}9ndk(  r||d
z  z   ||6z   <d
z  z   }8}7|<}:}9 =789:<d
z           j                  d        j                          y)zClip one segment of box border.

    The strategy is to remove the zones not needed because of the style or the
    side before painting.

    )r   r   r   r   r   rb   c                 v    t        |       t        |      kD  rt        |      t        |      kD  r| |fdfS ||fdfS )a  Get the point use for border transition.

        The extra boolean returned is ``True`` if the point is in the padding
        box (ie. the padding box is rounded).

        This point is not specified. We must be sure to be inside the rounded
        padding box, and in the zone defined in the "transition zone" allowed
        by the specification. We chose the corner of the transition zone. It's
        easy to get and gives quite good results, but it seems to be different
        from what other browsers do.

        TF)abs)x1y1x2y2s       r3   transition_pointz-clip_border_segment.<locals>.transition_pointO  sD     !$B#b' 1c"gB6Gb"Xt	$r(E"	$r5   c           
      ~    | |z
  | |z   z  }t         dz  | |z   z  dd|dz  z  dt        dd|dz  z  z
        z   z  z   z  S )a7  Return the length of the half of one ellipsis corner.

        Inspired by [Ramanujan, S., "Modular Equations and Approximations to
        pi" Quart. J. Pure. Appl. Math., vol. 45 (1913-1914), pp. 350-372],
        wonderfully explained by Dr Rob.

        https://mathforum.org/dr.math/faq/formulas/

           r   ra   r
   
   rb   )r   r   )r   br)   s      r3   corner_half_lengthz/clip_border_segment.<locals>.corner_half_length`  s[     Uq1uAvQAF
b4AQJ#7788: 	:r5   r   c           	         dk(  r|t        t              z  }j                  | |z   |       j                  | |z   ||z   | |z   ||z   | ||z          j                  | |z
  ||z   | |z
  ||z   | |z
  |       j                  | |z
  ||z
  | |z
  ||z
  | ||z
         j                  | |z   ||z
  | |z   ||z
  | |z   |       j	                          ydk(  r!j                  | |dz  z
  ||dz  z
  ||       yy)z-Draw a single dash or dot centered on cx, cy.dotteddashedr
   N)r   r   move_tocurve_tocloser   )cxcyrA   rD   rr   r'   r!   s         r3   	draw_dashz&clip_border_segment.<locals>.draw_dashn  s   HRLENN262&OOBFBJU
BFBQOOOBJQQU
BFBOOOBFBJU
BFBQOOOBJQQU
BFBOLLNhR%!)^R&1*_eVL r5   r   r   r   r
   r   ra   r   r   r   r   r   )r   r   r   Teven_odd      ?c           	      V   dk(  r| dk(  r|dz   dfS | dk(  r|dz   dfS t        d| d      D ]  }dz  |z
  ||z  z  |z  z   dz  t        z  }	dv r|n}
d	v r|n} |
|z   t        |      dz  z
  t        |	      z  z
  ||z   t        |      dz  z
  t	        |	      z  z
  dz  
        dz  |z
  dz   |z  z  |z  z   dz  t        z  }|t        z  dz  z
  }| dz  r|dz  }||fS | dk(  r|dz   dfS t        d| d      D ]  }|dz  }dz  |z
  ||z  z  |z  z   dz  t        z  } |dkD  rt
        nt        dz  |z
  |dz   |z  z  |z  z   dz  t        z  t        z  dz        }dv rmj                  ||z   |z          j                  ||z   ||z  dz  t        |      z  z
         j                  ||z   ||z  dz  t        |      z  z
         njd	v rfj                  |z   ||z          j                  ||z   ||z  t        |      z  z          j                  ||z   ||z  t        |      z  z          |t        z  dz  k(  sT||z
  dz  |z
  |dz   |z  z  |z  z   dz  t        z  |z
  z  }|dz  } ||fS  dt        z  dz  z
  |z
  z  z
  }||fS )Nr   r   r   r   g      r
   rb   r   r   )r   gUUUUUUտr   )
r   r   r   r   r   r   r   r   line_tor	   )dasheslinewayr)   r*   r   r   chlrt   r   r   r   next_aoffsetangle1angle2angledashr   main_offsetrq   r'   r!   s                   r3   draw_dashesz(clip_border_segment.<locals>.draw_dashes  s   H${#ax|+1#ax~-"1fa0 *%i#oS4#1EEJRO"&*;";Q"&*;";Q!Gs2w'9SV&CCGs2w'9SV&CC#ax*	*  !5y31q5C-$2F2LLPQQTVVF#b[1_u4Fz	<'Q;!8T>)q&!, GAHAe)c/QWt^c-AA  6S1Wc#e)c/a!es]T-AC-GG
Q(F 00q2v{R/?@FS2X\CK%??NFS2X\CK%??N!22{R'7R@'R#(S[2H)HJ'R#(S[2H)HJa/"(6/%i#o!a%31E1KK "#&,7- ". 	 V|#=G8 a&0Vf_EGFV|#r5   gư>r   N)r   r   r   )r   r   r   r   r   r   r   r   )?r'   r!   rA   rq   rM   rG   radiibbxbbybbwbbhtlhtlvtrhtrvbrhbrvblhblvbtr/   bbr0   r   r   px1py1rounded1px2py2rounded2r  a1b1a2b2line_lengthlengthchl1chl2dash_lengthdashes1dashes2r   r
  r  rt   r   r   r   r   number_of_spacesnumber_of_dashesr   advancer   r   
dash_widthdash_heightr  r  r   r	  s?   `` `                                                       @@@@r3   rE   rE   C  s    $Cc35:5Km2JS#
cJS#
c"2a5(lNBB$":M u}/S"bA
cH/cB3C
cH	/cB3C
cH/sdRC"E
cHCi		/cT2sC
cH/sdRC"E
cHCi	/S"bA
cH/cT2sC
cH  rAvsSy5194BQc	EAI 5BCi#osSy+.sK(sSy+"34sSy3c(9:	"	"eai'rAvBeai'#QBCi#o{C#I.{C({S(#)4{S(#)c/:$$)uq5yT"

x%b"-D%b"-D 4'$.F.KH{Q!>? {Q!>!DED4!8Ot34GD4!8Ot34Gt+,D6$ 6$p 'wc3S#tTLD&tS3Yc	3TKKLND T!q$* 5AKA00 3YT1 3Y!a%47(S1WE!D%Z!22 3YT1 3Y!a%47(S1WE!D%Zb2g]*B"r'Q,>Rb%!)55"  %Vd]Q%67/!3 ##&6&==AQQEE("%)9<L)LMRQRR1.23 Eut|,5= 7]TAX5sUQYB.2EJW_ 3Y2C'MD1H4LB.3TJX% 7]TAX5sSy5197LB.2EJV^ 519_cGmdQh.FB.3TJ"b*k4!8DE KKK
JJLr5   c                    |dv r| j                  |d          t        | |j                                t        | |j                  d             | j	                  d       | j                  |d          t        | |j                  d             t        | |j                                | j	                  d       y | j                  |       t        | |j                                |dk(  r6t        | |j                  d             t        | |j                  d	             t        | |j                                | j	                  d       y )
Nridgegroover   r   Tr   r   r`   gUUUUUU?gUUUUUU?)	set_colorrounded_boxr   rounded_box_ratiofillr#   )r'   r(   r!   rN   s       r3   rm   rm   *  s   ##q"FC3356FC11%89T"q"FC11%89FC2245T"
U//12FC11%89FC11%89..01
KKKr5   c                    |\  }}}}|\  }	}
}}|dv r| j                  |d           | j                  |  | j                  ||dz  z   ||	dz  z   |||
z   dz  z
  ||	|z   dz  z
         | j                  d       | j                  ||dz  z   ||	dz  z   |||
z   dz  z
  ||	|z   dz  z
         | j                  ||z   ||	z   ||z
  |
z
  ||	z
  |z
         | j                  |d          | j                  d       y | j                  |        | j                  |  |dk(  rp| j                  ||dz  z   ||	dz  z   |||
z   dz  z
  ||	|z   dz  z
         | j                  ||dz  dz  z   ||	dz  dz  z   |||
z   dz  dz  z
  ||	|z   dz  dz  z
         | j                  ||z   ||	z   ||z
  |
z
  ||	z
  |z
         | j                  d       y )	Nr1  r   r
   Tr   r   r`   ra   )r4  r   r7  )r'   r(   rr   r!   rN   r  r  r  r  r  r/   r  r0   s                r3   rF   rF   >  s)   Cc3NBB##q"#"q&L#Q,27a-R1}!4	6 	T""q&L#Q,27a-R1}!4	6 	r38S2X]C"HrMJq"T"
UFc"q&L#Q,27a-R1}!4	6 	"q&1*cBFQJ.27a-!##SBGq=1+<%<	> S2XsRxrBb2F
KKKr5   c	           
      t   ||k(  s||k(  sJ | j                         5  |dvr| j                  |d       |dk(  r| j                  d|z  g|       n-|dk(  r(| j                  d       | j                  dd	|z  g|       |d
k(  r| j	                  |dz         ||k(  rb| j                  ||dz  z
  |       | j                  ||dz  z
  |       | j                  ||dz  z   |       | j                  ||dz  z   |       n||k(  r| j                  |||dz  z
         | j                  |||dz  z
         | j                  |||dz  z          | j                  |||dz  z          n/|dv r*| j	                  |d	z         | j                  |d   d       ||k(  r1| j                  ||dz  z   |       | j                  ||dz  z   |       n5||k(  r0| j                  |||dz  z          | j                  |||dz  z          | j                          | j                  |d   d       ||k(  r2| j                  ||dz  z
  |       | j                  ||dz  z
  |       n8||k(  r2| j                  |||dz  z
         | j                  |||dz  z
         n |dk(  r||k(  sJ d}	d|z  }
| j                  ||d	|
z  z
  ||z
  d|
z         | j                          | j                          ||z
  }| j                  ||       ||k  r| j	                  |       | j                  ||
d	z  z   ||	|
z  z   |d|
z  d	z  z   ||	|
z  z   |d	|
z  z   |       |d	|
z  z  }|	dz  }	||k  r[n5| j	                  |       | j                  ||       | j                  ||       | j                          d d d        y # 1 sw Y   y xY w)Nr1  T)stroker      r   r   r   r
   r`   ra   rb   wavyg      ?r   )r@   r4  set_dashset_line_capset_line_widthr   r   r:  r   r   r   r   )r'   r   r   r   r   	thicknessr!   rN   r  upradiusr)   s               r3   	draw_linerC  \  s   8rRx		 >++U40HOOQ]OV4h"OOQI.7H!!)a-0RxrIM126rIM126rIM126rIM126rr2	A#56r2	A#56r2	A#56r2	A#56))!!)a-0U1Xd3RxrIM126rIM126rr2	A#56r2	A#56MMOU1Xd3RxrIM126rIM126rr2	A#56r2	A#56f_8O8BI%FRa&j"r'1v:FKKMJJLVANN1b!b&%%i0
NBf$4F
Q&R&[(8F
NB( QZb b& !!),NN2r"NN2r"}> > >s   MN.AN..N7c                    |j                   d   }|j                   d   }t        |j                   d      }|j                   d   }|j                   d   dk(  r|r|j                  r|j                         |z
  |z
  |j	                         |z
  |z
  |j                         d|z  z   d|z  z   |j                         d|z  z   d|z  z   f}t        D ]a  }| j                         5  | j                         5  t        | ||||       t        | |d|fz  |t        |||             d d d        d d d        c |j                  D ])  }t        |t        j                         st#        | |       + y # 1 sw Y   LxY w# 1 sw Y   xY w)	Noutline_widthoutline_offsetoutline_coloroutline_stylerQ   rR   r
   rb   )r!   r   rk   border_box_xborder_box_yr   r   rg   re   r@   rE   rF   r   r?   rc   r   Boxdraw_outline)	r'   r(   rA   r  rN   r!   outline_boxrq   rI   s	            r3   rL  rL    sx   IIo&EYY'(Fcii1EIIo&E
yy)+%++&/&/U*QZ7!e)+a&j8	:
  	6D" 6FNN$4 6#FE5$L KeXu t466 6 6	6  (eUYY''(6 6 6 6s$   E50.E)E5)E2.E55E>	c           
      4   |\  }}}}}}}}	t        d ||||	fD              r| j                  ||||       yd}
| j                  ||d   z   |       | j                  ||z   |d   z
  |       | j	                  ||z   |d   |
z  z
  |||z   ||d   |
z  z   ||z   ||d   z          | j                  ||z   ||z   |d   z
         | j	                  ||z   ||z   |d   |
z  z
  ||z   |d   |
z  z
  ||z   ||z   |d   z
  ||z          | j                  ||	d   z   ||z          | j	                  ||	d   |
z  z   ||z   |||z   |	d   |
z  z
  |||z   |	d   z
         | j                  |||d   z          | j	                  |||d   |
z  z   ||d   |
z  z   |||d   z   |       y)zDraw the path of the border radius box.

    ``widths`` is a tuple of the inner widths (top, right, bottom, left) from
    the border box. Radii are adjusted from these values. Default is (0, 0, 0,
    0).

    c              3   $   K   | ]  }d |v  
 yw)r   N ).0corners     r3   	<genexpr>zrounded_box.<locals>.<genexpr>  s     
661;
6s   Ng?r   r   )r9   r   r   r   r   )r'   r  r)   r*   r+   r,   r-   r.   r/   r0   r   s              r3   r5  r5    s    "'Aq!QBB

6b"b"%5
66Aq!$A
NN1r!u9a 
NN1q52a5=!$
OO	A1	1a!eQA]AE1r!u9F
NN1q5!a%"Q%-(
OO	Aq1ur!uqy !a%"Q%!)"3QUAEBqEM	A NN1r!u9a!e$
OO	BqEAIq1uaQA!2Aq1ur!u}F
NN1a"Q%i 
OO	1r!uqy=!beai-A1Iq:r5   )NN)r   )__doc__mathr   r   r   r   r   r   r	   formatting_structurer   layoutr   layout.percentr   r1   r   rN   r   r   rg   r4   rO   r{   r&   rE   rm   rF   rC  rL  r5  rP  r5   r3   <module>rY     sf     5 5 5 (  '  **(S89VxLR` 37dN(<AH(.:r5   