§
    ¥”jH  ã                   óN   — d Z ddlZddlmZ ddlmZ ddlmZ d„ Z	 	 d
d„Z	d	„ Z
dS )z7Find anchors, links, bookmarks and inputs in documents.é    Né   )Úboxes)Ú
percentage)ÚMatrixc                 óX  — | s||||z   ||z   fS | j         } |||¦  «        \  }} |||z   |¦  «        \  }}	 ||||z   ¦  «        \  }
} |||z   ||z   ¦  «        \  }}t          |||
|¦  «        }t          ||	||¦  «        }t          |||
|¦  «        }t          ||	||¦  «        }||||fS )z„Apply a transformation matrix to an axis-aligned rectangle.

    Return its axis-aligned bounding box as ``(x1, y1, x2, y2)``.

    )Útransform_pointÚminÚmax)ÚmatrixÚpos_xÚpos_yÚwidthÚheightr   Úx1Úy1Úx2Úy2Úx3Úy3Úx4Úy4Úbox_x1Úbox_y1Úbox_x2Úbox_y2s                     úa/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/anchors.pyÚrectangle_aabbr   
   sê   € ð ð ;Ø�e˜U U™]¨E°F©NÐ:Ð:ØÔ,€OØˆ_˜U EÑ*Ô*�F€BˆØˆ_˜U U™]¨EÑ2Ô2�F€BˆØˆ_˜U E¨F¡NÑ3Ô3�F€BˆØˆ_˜U U™]¨E°F©NÑ;Ô;�F€BˆÝ��R˜˜RÑ Ô €FÝ��R˜˜RÑ Ô €FÝ��R˜˜RÑ Ô €FÝ��R˜˜RÑ Ô €FØ�6˜6 6Ð)Ð)ó    c           
      óÖ  — | j         d         �rìt          | t          j        ¦  «        �sÑ|                      ¦   «         }|                      ¦   «         }| j         d         \  }	}
t          |	| j         |¦  «        }t          |
| j         |¦  «        }|                      ¦   «         |z   }	|                      ¦   «         |z   }
t          |	|
¬¦  «        }| j         d         D ]ð\  }}d\  }}}}}}|dk    r|\  }}n¿|dk    r.t          j        |¦  «        x}}t          j        |¦  «        }| }n‹|dk    r9t          |d         | j         |¦  «        }t          |d	         | j         |¦  «        }nL|d
k    r5t          j        |d	         ¦  «        t          j        |d         ¦  «        }}n|dk    sJ ‚|\  }}}}}}t          ||||||¦  «        |z  }Œñt          |	 |
 ¬¦  «        |z  | _        |r| j        |z  }n
| j        }n|}| j        }| j         d         dk    rd}n| j         d         }| j         d         }| j         d         }| j         d         }|o|}|o&t          | t          j        t          j        f¦  «         }|o||v}|                      ¦   «         }|                      ¦   «         r| j        }||vrg ||<   |s|s|s|�r}|r7|                      ¦   «         |                      ¦   «         } }| j        | j        }"}!n|                      ¦   «         \  }} }!}"|s|rt5          ||| |!|"¦  «        }#|r^|\  }$}|$dk    sJ ‚|\  }%}&t          |&t6          ¦  «        sJ ‚|%dk    r|                      ¦   «         rd}%|                     |%|&|#| f¦  «         |r(||                              | j        | j         |#f¦  «         |r8|r|                     || ¦  «        \  }} |||| f|f}'|                     |'¦  «         |rN|| ||!z   | |"z   f\  }(})}*}+|r2|                     |(|)¦  «        \  }(})|                     |*|+¦  «        \  }*}+|(|)|*|+f||<   |                      ¦   «         D ]},tA          |,||||||¦  «         ŒdS )zƒGather anchors and other data related to specific positions in PDF.

    Currently finds anchors, links, bookmarks and forms.

    Ú	transformÚtransform_origin)ÚeÚf)r   r   r   r   r   r   ÚscaleÚrotateÚ	translater   r   Úskewr   Úbookmark_levelÚnoneNÚbookmark_stateÚlinkÚanchorÚurlÚexternalÚ
attachment)!ÚstyleÚ
isinstancer   Ú	InlineBoxÚborder_widthÚborder_heightr   Úborder_box_xÚborder_box_yr   ÚmathÚcosÚsinÚtanÚtransformation_matrixÚbookmark_labelÚTextBoxÚLineBoxÚis_inputÚis_formÚelementÚcontent_box_xÚcontent_box_yr   r   Úhit_arear   ÚstrÚis_attachmentÚappendr   Úall_childrenÚgather_anchors)-ÚboxÚanchorsÚlinksÚ	bookmarksÚformsÚparent_matrixÚparent_formr3   r4   Úorigin_xÚorigin_yÚoffset_xÚoffset_yr   ÚnameÚargsÚaÚbÚcÚdr"   r#   r<   r(   Ústater+   Úanchor_nameÚhas_bookmarkÚhas_linkÚ
has_anchorr?   r   r   r   r   Ú	rectangleÚ
token_typeÚ	link_typeÚtargetÚbookmarkÚpos_x1Úpos_y1Úpos_x2Úpos_y2Úchilds-                                                r   rI   rI      s8  € ð „y�Ôñ "¥j°µe´oÑ&FÔ&Fñ "Ø×'Ò'Ñ)Ô)ˆØ×)Ò)Ñ+Ô+ˆØ œYÐ'9Ô:Ñˆ�(Ý˜h¨¬	°<Ñ@Ô@ˆÝ˜h¨¬	°=ÑAÔAˆØ×#Ò#Ñ%Ô%¨Ñ0ˆØ×#Ò#Ñ%Ô%¨Ñ0ˆå˜( hÐ/Ñ/Ô/ˆØœ) KÔ0ð 	7ð 	7‰JˆD�$Ø/ÑˆAˆq�!�Q˜˜1Ø�wŠˆØ‘��1�1Ø˜Ò!Ð!Ýœ ™œÐ&��AÝ”H˜T‘N”N�Ø�B��Ø˜Ò$Ð$Ý˜t Aœw¨¬	°<Ñ@Ô@�Ý˜t Aœw¨¬	°=ÑAÔA��Ø˜’�Ý”x  Q¤Ñ(Ô(­$¬(°4¸´7Ñ*;Ô*;�1��à˜xÒ'Ð'Ð'Ð'Ø#'Ñ ��1�a˜˜A˜qÝ˜A˜q ! Q¨¨1Ñ-Ô-°Ñ6ˆFˆFå�h�Y 8 )Ð,Ñ,Ô,¨vÑ5ð 	Ô!àð 	/ØÔ.°Ñ>ˆFˆFàÔ.ˆFˆFàˆàÔ'€NØ
„yÐ!Ô" fÒ,Ð,ØˆˆàœÐ#3Ô4ˆØŒIÐ&Ô'€EØŒ9�VÔ€DØ”)˜HÔ%€KØ!Ð4 n€LàÐK�J s­U¬]½E¼MÐ,JÑKÔKÐK€HàÐ; °GÐ!;€JØ�|Š|‰~Œ~€Hà
‡{‚{�}„}ð $Ø”kˆØ˜eÐ#Ð#Ø!#ˆE�+Ñàð D�xð D :ð D°ñ DØð 	9Ø×,Ò,Ñ.Ô.°×0AÒ0AÑ0CÔ0C�5ˆEØœI s¤z�6ˆEˆEà*-¯,ª,©.¬.Ñ'ˆE�5˜% Øð 	L�xð 	LÝ& v¨u°e¸UÀFÑKÔKˆIØð 	>Ø#ÑˆJ˜Ø Ò&Ð&Ð&Ð&Ø $ÑˆI�vÝ˜f¥cÑ*Ô*Ð*Ð*Ð*Ø˜JÒ&Ð&¨3×+<Ò+<Ñ+>Ô+>Ð&Ø(�	Ø�LŠL˜) V¨Y¸Ð<Ñ=Ô=Ð=Øð 	KØ�+Ô×%Ò% s¤{°C´I¸yÐ&IÑJÔJÐJØð 	'Øð DØ%×5Ò5°e¸UÑCÔC‘��uØ&¨¸À¸ÈÐNˆHØ×Ò˜XÑ&Ô&Ð&Øð 	DØ-2°E¸5À5¹=È%ÐRXÉ.Ð-XÑ*ˆF�F˜F FØð HØ!'×!7Ò!7¸ÀÑ!GÔ!G‘�˜Ø!'×!7Ò!7¸ÀÑ!GÔ!G‘�˜Ø$*¨F°F¸FÐ#CˆG�KÑ à×!Ò!Ñ#Ô#ð Uð UˆÝ�u˜g u¨i¸ÀÈÑTÔTÐTÐTðUð Ur   c                 ó  — | j         D �]\  }}\  }}	}
||k    r|                     ||z
  dz
  ¦  «         nI|}||k     r |d|                     ¦   «         z   z  }||k     ° ||k    r|                     ||z
  dz
  ¦  «         |}|t          |¦  «        z
  }|t	          |¦  «        k    sJ ‚|dk    sJ ‚g }|                     ||	¦  «        \  }}	||||	f||
f}||dz
                                |¦  «         ||d…= |                     |¦  «         �Œ|S )z-Make a tree of all bookmarks in a given page.r   N)rM   rG   ÚpopÚsumÚlenr   )ÚpageÚskipped_levelsÚlast_by_depthÚprevious_levelÚpage_numberr   ÚlevelÚlabelÚpoint_xÚpoint_yr[   ÚtempÚdepthÚchildrenÚsubtrees                  r   Úmake_page_bookmark_treer{   „   si  € ð 48´>ð 'ñ 'Ñ/ˆˆuÑ(�w ¨%Ø�>Ò!Ð!ð ×!Ò! %¨.Ñ"8¸1Ñ"<Ñ=Ô=Ð=Ð=àˆDØ˜Ò'Ð'Ø˜˜N×.Ò.Ñ0Ô0Ñ0Ñ0�ð ˜Ò'Ð'à�nÒ$Ð$à×%Ò% d¨^Ñ&;¸aÑ&?Ñ@Ô@Ð@àˆØ�˜NÑ+Ô+Ñ+ˆØ�˜NÑ+Ô+Ò+Ð+Ð+Ð+Ø˜ŠzˆzˆzˆzàˆØ!×1Ò1°'¸7ÑCÔCÑˆ�Ø˜;¨°Ð9¸8ÀUÐKˆØ�e˜a‘iÔ ×'Ò'¨Ñ0Ô0Ð0Ø˜%˜&˜&Ð!Ø×Ò˜XÑ&Ô&Ð&Ñ&ØÐr   )NN)Ú__doc__r7   Úformatting_structurer   Úlayout.percentr   r   r   r   rI   r{   © r   r   ú<module>r€      s™   ðØ =Ð =à €€€à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð ð*ð *ð *ð( IMØ#ðcUð cUð cUð cUðLð ð ð ð r   