
    BhP'                     X    S r SSKJrJrJrJrJrJrJr  SSK	J
r
  SSKJrJr  SrS rS	 rg
)zDraw paths.    )atan2cosisclosepiradianssintan   )Matrix   )	normalizepointachlmqstvzACHLMQSTVZc                 v    U [        U5      -  U[        U5      -  -
  U[        U5      -  U [        U5      -  -   4$ )z1Rotate (x, y) point of given angle around (0, 0).)r   r   )xyangles      E/var/www/html/env/lib/python3.13/site-packages/weasyprint/svg/path.py_rotater      s7    s5z>AE
N*AE
NQU^,KKK    c           	      x   UR                  SS5      n[         H  nUR                  USU S35      nM     [        U5      nSnU R                  R
                  " U6   SnU(       G	a  UR                  5       nUR                  SS5      S   [        ;   aA  U S3R                  SS5      u  pCUS;   a#  US	;  a  UR                  R                  U5        UnOWS
:X  a  SnOUS:X  a  SnUS;   a  SnUS;  a  Wc  UnUS;   Ga  Uu  p[        XU5      u  pnUR                  SS5      u  p[        [        U5      5      nUS   USS R                  5       p=US   USS R                  5       p>[        XU5      u  nnnUS:X  a	  X-  nUU	-  n[        U5      [        U5      pUS;  d  US;  a  GMM  [        U5      [        U5      pU
(       a  U(       d,  U(       a  US   [        ;  a  U S3nOSnSU SU SU U 3nGM  [        X-
  UU	-
  U* 5      u  nnX-  nUU-  n[!        UU5      nUS-  US-  -   S-  nSn[#        U
US-  5      n
US-  nU
S-  US-  -
  S-  nX:X  a  U* n[        UUU5      u  nn[        UUU5      u  nn[!        U* U* 5      n[!        UU-
  UU-
  5      nUS:  d  US:  a(  US[$        -  -  nUS[$        -  -  nUS:  a  M   US:  a  M(  UR                  R                  U* U* 45        ['        [)        UU-
  5      [$        5      (       a4  U(       a  UU:  a  US[$        -  -  nORU(       d  UU:  a  US[$        -  -  nO8U[)        UU-
  5      [$        :  :X  a  UU:  a  US[$        -  -  nOUS[$        -  -  nU(       a&  UU-
  S-  nUUU-   4UU-   USU-  -   4USU-  -   U44nOUU44n[+        [-        U5      [/        U5      [/        U5      * U-  [-        U5      U-  X5      nS[1        US   S   US   S   -
  S-  5      -  nU H  u  nnUR3                  UU
[-        U5      -  -   UU
-  [/        U5      -  -
  UU
[/        U5      -  -   UU
-  [-        U5      -  -   5      nUR3                  UU
[-        U5      -  -   UU
-  [/        U5      -  -   UU
[/        U5      -  -   UU
-  [-        U5      -  -
  5      nUR3                  UU
[-        U5      -  -   UU
[/        U5      -  -   5      n U R                  R4                  " / UQUQU Q76   GM     UU4nGOUS;   a  [        XU5      u  pn[        XU5      u  n!n"n[        XU5      u  nnnUS:X  a#  Uu  n#n$UU#-  nU!U#-  n!UU#-  nU	U$-  n	U"U$-  n"UU$-  nUR                  R                  [!        U	U"-
  UU!-
  5      [!        UU"-
  UU!-
  5      45        U R                  R5                  XU!U"UU5        UU4nGO'US;   a  U S3R                  SS5      u  n#nUu  n%n&U R                  U#SU5      u  n#n'US:X  a  U#U%-  n#U#U%:  a  SO[$        nUR                  R                  [$        U-
  U45        U R                  R7                  U#U&5        U#U&4nGOUS;   a}  [        XU5      u  n#n$nUu  n%n&US:X  a
  U#U%-  n#U$U&-  n$[!        U$U&-
  U#U%-
  5      nUR                  R                  [$        U-
  U45        U R                  R7                  U#U$5        U#U$4nGOUS	;   ap  [        XU5      u  n#n$nU(       a!  US;  a  UR                  R                  S5        US:X  a  U#US   -  n#U$US   -  n$U R                  R                  U#U$5        U#U$4nGOUS;   a  Uu  pUS;   a  [        XU5      u  n!n"nO!US ;  a  W#W$U#U$4u  n!n"nnUW-   W!-
  n!U	W-   W"-
  n"[        XU5      u  nnnUS!:X  a
  U!U-  n!U"U	-  n"US";   a	  X-  nUU	-  nU!S-  S-  US-  -   n(U"S-  S-  U	S-  -   n)U!S-  S-  US-  -   n*U"S-  S-  US-  -   n+U R                  R5                  U(U)U*U+UU5        UR                  R                  S5        UU4nGOUS#;   a  Uu  n#n$US$;   a  WUW!-
  -   OU#nUS$;   a  WUW"-
  -   OU$n	[        XU5      u  n!n"n[        XU5      u  nnnUS%:X  a  U!U#-  n!UU#-  nU"U$-  n"UU$-  nUR                  R                  [!        U	U"-
  UU!-
  5      [!        UU"-
  UU!-
  5      45        U R                  R5                  XU!U"UU5        UU4nOUS&;   a  U S3R                  SS5      u  n$nUu  n%n&U R                  SU$U5      u  n'n$US':X  a  U$U&-  n$U$U&:  a	  [$        S-  O	[$        * S-  nUR                  R                  [$        U-
  U45        U R                  R7                  U%U$5        U%U$4nODUS;   a>  W(       a7  UR                  R                  S5        U R                  R9                  5         UnUS;  a  UR                  R                  U5        UR                  5       nUnU(       a  G	M  gg)(zDraw path node.d  )r   r   Nr   r   )NzZmMMLml)Nr    r   r   r   aAa)r   r   zL r
   g      ?   gUUUUUU?   cCchHhlLzZqQtTqQQqTtqqtsScsCSsvVv)getPATH_LETTERSreplacer   streammove_tostripsplitverticesappendr   r   floatintboolr   r   maxr   r   absr   r   r   r	   transform_pointcurve_toline_toclose),svgnode	font_sizestringlettercurrent_pointlast_letterfirst_path_pointx1y1rxryrotationlargesweepx3y3next_letterxeyey_scaler   xcycangle1angle2stepanglesmatrixr)   point1point2point3x2y2r   r   old_xold_y_xq1yq1xq2yq2s,                                               r   pathrp      s?   XXc2F!F816 vF MJJ&K
<<Q"l2!'l11#q9NF..63E$$]3#0 s]Fs]F44#33 (,T> #FB"3	:NBF%||C3HuX/H
 #1Ivabz'7'7'96"1Ivabz'7'7'96 #3	:NBF}b u:s5z5F"e6&9;U5 RfQi|; &,HA,K"$KbT2$a}VH= RWb2gy9FBgG'MB "bME 'B!G#*BB RaB aB'B!G#*B ~S RU+FBRU+FB B3_F27BG,F1*
!b& !b&  1*

 MM  6'F7!34 s6F?+R00fvoa"f$FFVOa"f$F3v/"45F?a"f$Fa"f$F 1,Vd]+d]FQX$56a$h&/1
 "6*, Hs8}X(#h-'*AF VAYq\F1IaL8A=>>A"(//c&k))AFS[,@@c&k))AFS[,@@B  //c&k))AFS[,@@c&k))AFS[,@@B  //c&k))c&k))+ 

##>V>f>v> #) FMt^"3	:NBF"3	:NBF"3	:NBF}$1aaaaaaMM  b2grBw'rBwR)@"B CJJBB7FMt^"81,,S!4IAv(LE599Q9-DAq}U
UAEMM  "u*e!45JJq%(uHMt^ i8LAq&(LE5}U
U
!e)QY/EMM  "u*e!45JJq!$qDMt^ i8LAq&{$6$$T*}]1%%]1%%JJq!$qDMv"FB~!&sI!>Bf,%&1aZNBB"Wr\"Wr\"3	:NBF}bb~bq&1*rAv%Cq&1*rAv%Cq&1*rAv%Cq&1*rAv%CJJS#sB;MM  (FMt^ DAq#.&#8rBwaB#.&#8rBwaB"3	:NBF"3	:NBF}aaaaMM  b2grBw'rBwR)@"B CJJBB7FMt^"81,,S!4IAv(LE599Q9-DAq}U
%iBFbS1WEMM  "u*e!45JJua(!1HMt^ 0MM  &JJ,MMM  /y &r   N)__doc__mathr   r   r   r   r   r   r	   rc   r   utilsr   r   r7   r   rp    r   r   <module>ru      s(     ; ; ;  #%L
Ir   