Ë
    vl�j7  ã                   ó  — d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZ ddlmZmZ dde
e   ded	e
e
e      fd
„Zde	e   ded	eeef   fd„Z edeeedf   «      Z	 dde
e   deeeegef   f   deded	e
e
e      f
d„Zy)é    N)ÚHashable)Ú
itemgetter)ÚAnyÚCallableÚDictÚIterableÚListÚTupleÚTypeVarÚUnioné   )ÚT_numÚT_objÚxsÚ	toleranceÚreturnc                 ó€  — |dk(  rt        | «      D �cg c]  }|g‘Œ c}S t        | «      dk  rt        | «      D �cg c]  }|g‘Œ c}S g }t        t        | «      «      } | d   g}| d   }| dd  D ]2  }|||z   k  r|j                  |«       n|j                  |«       |g}|}Œ4 |j                  |«       |S c c}w c c}w )Nr   r   é   )ÚsortedÚlenÚlistÚappend)r   r   ÚxÚgroupsÚcurrent_groupÚlasts         úQ/var/www/html/pp/venv/lib/python3.12/site-packages/pdfplumber/utils/clustering.pyÚcluster_listr   	   sÌ   € Ø�A‚~Ü# B›ZÖ(˜�’Ò(Ð(Ü
ˆ2ƒw�‚{Ü# B›ZÖ(˜�’Ò(Ð(Ø€FÜ	Œf�R‹jÓ	€BØ˜‘U�G€MØˆa‰5€DØ��ˆVò ˆØ�˜	Ñ!Ò"Ø× Ñ  Õ#à�M‰M˜-Ô(Ø˜CˆMØ‰ðð ‡M�M�-Ô Ø€Mùò )ùâ(s
   “
B6»
B;Úvaluesc           
      óê   — t        t        t        | «      «      |«      }t        |«      D ���cg c]  \  }}|D �cg c]  }||f‘Œ c}‘Œ }}}}t	        t        j                  |Ž «      S c c}w c c}}}w ©N)r   r   ÚsetÚ	enumerateÚdictÚ	itertoolsÚchain)r   r   ÚclustersÚiÚvalue_clusterÚvalÚnested_tupless          r   Úmake_cluster_dictr,      sr   € ÜœD¤ V£Ó-¨yÓ9€Hô ENÈhÓDW÷ð Ù0@°°=˜]Ö+�cˆ#ˆqŠÔ+ð€Mò ô ”	—‘ Ð/Ó0Ð0ùò 	,ùôs   ®A.ºA)ÁA.Á)A.ÚClusterable.Úkey_fnÚpreserve_orderc           
      ó¢  ‡‡— t        ‰«      st        ‰«      Št        ‰| «      }t        ||«      Št        d«      t        d«      }}|r'| D �cg c]  }|‰j	                   ‰|«      «      f‘Œ }}nt        ˆˆfd„| D «       |¬«      }t        j                  ||¬«      }	|	D �
�cg c]  \  }
}t        t        ||«      «      ‘Œ c}}
S c c}w c c}}
w )Nr   r   c              3   óP   •K  — | ]  }|‰j                   ‰|«      «      f–— Œ y ­wr!   )Úget)Ú.0r   Úcluster_dictr.   s     €€r   ú	<genexpr>z"cluster_objects.<locals>.<genexpr>=   s%   øè ø€ Ò:°!ˆa�×!Ñ!¡&¨£)Ó,Ô-Ñ:ùs   ƒ#&)Úkey)	Úcallabler   Úmapr,   r2   r   r%   Úgroupbyr   )r   r.   r   r/   r   Úget_0Úget_1r   Úcluster_tuplesÚgroupedÚkÚvr4   s    `          @r   Úcluster_objectsr@   *   s¼   ù€ ô �FÔÜ˜FÓ#ˆä�˜‹_€FÜ$ V¨YÓ7€Lä˜a“=¤*¨Q£-ˆ5€EáØDFÖG¸q˜1˜l×.Ñ.©v°a«yÓ9Ò:ÐGˆÑGäÜ:°rÔ:Àô
ˆô ×Ñ °EÔ:€Gà,3×4¡D A qŒD”�U˜A“ÕÓ4Ð4ùò Hùó 5s   Á CÂ#C)r   )F)r%   Úcollections.abcr   Úoperatorr   Útypingr   r   r   r   r	   r
   r   r   Ú_typingr   r   r   Úintr,   r-   Úboolr@   © ó    r   ú<module>rI      sÞ   ðÛ Ý $Ý ß M× MÓ Mç "ñ�T˜%‘[ð ¨Uð ¸4ÀÀUÁÑ;Ló ð(1˜h u™oð 1¸%ð 1ÀDÈÐPSÈÑDTó 1ñ �m U¨E°#°s°(©OÓ<€ð !ñ	5Øˆ[Ñð5à�(˜H k ]°EÐ%9Ñ:Ð:Ñ;ð5ð ð5ð ð	5ð
 
ˆ$ˆ{Ñ
Ñô5rH   