
    (&h'                        d dl Z d dlmZ d dlZd dlZ ej         ej        d           ej        d                     ej        dddd          fZ	 ej
        dd          Z ej        g d          Z ej        g d          Z ej        g d	          Z ej        g d
g dg          Z ej        ddg          Z ej        ddgg          Z ej        g dg dg          Z ej         ej
        dd           ej        ddg          g          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z  ej        d          Z! ej        d          Z" ej#        eg          Z$ ej%        eg          Z& ej        eg          Z' ej(        eg          Z) ej
        ddd          Z* ej        g d          Z+ ej        g d          Z, ej        g d          Z- ej        g dg dg          Z. ej        d d!g          Z/ ej        d d!gg          Z0 ej        g d"g d#g          Z1 ej        e*e+g          Z2 ej        d$          Z3 ej        d%          Z4 ej        d&          Z5 ej        d'          Z6 ej        d(          Z7 ej        d)          Z8 ej        d*          Z9 ej#        e4g          Z: ej%        e5g          Z; ej        e6g          Z< ej(        e5g          Z= ej        d+          Z> ej        d,          Z? ej        d-          Z@ ej        d.          ZA ej        d/          ZB ej        d0          ZC ej        d1          ZD ej        d2          ZE ej        e>e?g          ZF ej        d3          ZG ej        d4          ZH ej        d5          ZI ej        d6          ZJ ej        d7          ZK ej        d8          ZL ej        d9          ZM ej#        eHg          ZN ej%        eIg          ZO ej        eJg          ZP ej(        eIg          ZQ ej        d:          ZR ej        d;          ZS ej        d<          ZT ej        d=          ZU ej        d>          ZV ej        d?          ZW ej        d@          ZX ej        dA          ZY ej        eReSg          ZZ ej        dB          Z[ ej        dC          Z\ ej        dD          Z] ej        dE          Z^ ej        dF          Z_ ej        dG          Z` ej        dH          Za ej#        e\g          Zb ej%        e]g          Zc ej        e^g          Zd ej(        e]g          Zeeeeeeeeeeeeeee e!e"e$e&e'e)fZfe*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;e<e=fZge>e?e@eAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQfZheReSeTeUeVeWeXeYeZe[e\e]e^e_e`eaebecedeefZiedOdJ            Zj ej            5   ej        ejk        ejk        fejk        ejk        fg          Zlddd           n# 1 swxY w Y   edK             ZmdL Zn G dM dN          ZodS )P    N)contextmanager            )r   r      r   r
   r
   )r   r	   r   )r   r
   r   )r   )r   r   r   r   )r   r   r   )r   )r   
   )r   r   )r   r   r   )r   )r   r   )r   r   )r   r   r   )holesr   )r
   r   ) @r   )皙@r   )r   r   )r   r   r   3   )4   r   )1   r   zGEOMETRYCOLLECTION EMPTYzPOINT EMPTYzLINESTRING EMPTYzPOLYGON EMPTYzMULTIPOINT EMPTYzMULTILINESTRING EMPTYzMULTIPOLYGON EMPTY)r   r   r   r
   r   r   r
   r
   r   )r   r      )r
   r      )r
   r
   r   )r   r
   	   r   )r   )r   r   r   r   r   r   )r   r   r   r   )r   )r   r   r   )r   r   r   )r   r   r   r   )r   )r   r   r   )r   r   r   )r   r   r   r   r   )r
   r   r   )r   r   r   )r   r
   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   zGEOMETRYCOLLECTION Z EMPTYzPOINT Z EMPTYzLINESTRING Z EMPTYzPOLYGON Z EMPTYzMULTIPOINT Z EMPTYzMULTILINESTRING Z EMPTYzMULTIPOLYGON Z EMPTYzPOINT M (2 3 5)z"LINESTRING M (0 0 1, 1 0 2, 1 1 3)z0LINEARRING M (0 0 1, 1 0 2, 1 1 3, 0 1 2, 0 0 1)z/POLYGON M ((0 0 1, 2 0 2, 2 2 3, 0 2 2, 0 0 1))zjPOLYGON M ((0 0 1, 0 10 2, 10 10 3, 10 0 2, 0 0 1),
                  (2 2 6, 2 4 5, 4 4 4, 4 2 5, 2 2 6))zMULTIPOINT M ((0 0 3), (1 2 5))z"MULTILINESTRING M ((0 0 3, 1 2 5))zMULTIPOLYGON M (((0 0 1, 2 0 2, 2 2 3, 0 2 2, 0 0 1)),
       ((2.1 2.1 1.1, 2.2 2.1 1.2, 2.2 2.2 1.3, 2.1 2.2 1.4, 2.1 2.1 1.1)))zGEOMETRYCOLLECTION M EMPTYzPOINT M EMPTYzLINESTRING M EMPTYzPOLYGON M EMPTYzMULTIPOINT M EMPTYzMULTILINESTRING M EMPTYzMULTIPOLYGON M EMPTYzPOINT ZM (2 3 4 5)z)LINESTRING ZM (0 0 4 1, 1 0 4 2, 1 1 4 3)z;LINEARRING ZM (0 0 1 8, 1 0 2 7, 1 1 3 6, 0 1 2 9, 0 0 1 8)z:POLYGON ZM ((0 0 4 1, 2 0 4 2, 2 2 4 3, 0 2 4 2, 0 0 4 1))ztPOLYGON ZM ((0 0 4 1, 0 10 4 2, 10 10 4 3, 10 0 4 2, 0 0 4 1),
       (2 2 4 6, 2 4 4 5, 4 4 4 4, 4 2 4 5, 2 2 4 6))z$MULTIPOINT ZM ((0 0 4 3), (1 2 4 5))z'MULTILINESTRING ZM ((0 0 4 3, 1 2 4 5))zMULTIPOLYGON ZM (((0 0 4 1, 2 0 4 2, 2 2 4 3, 0 2 4 2, 0 0 4 1)),
       ((2.1 2.1 4 1.1, 2.2 2.1 4 1.2, 2.2 2.2 4 1.3, 2.1 2.2 4 1.4, 2.1 2.1 4 1.1)))zGEOMETRYCOLLECTION ZM EMPTYzPOINT ZM EMPTYzLINESTRING ZM EMPTYzPOLYGON ZM EMPTYzMULTIPOINT ZM EMPTYzMULTILINESTRING ZM EMPTYzMULTIPOLYGON ZM EMPTYTc              #   ~   K   | r4t          j        d          5  d V  d d d            d S # 1 swxY w Y   d S d V  d S )Nignore)invalid)nperrstate)	conditions    O/var/www/html/reinick/venv/lib/python3.11/site-packages/shapely/tests/common.pyignore_invalidr&      s       [*** 	 	EEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ,00c              #      K   t           j        | k     rHt          j                    5  t          j        d|           d V  d d d            d S # 1 swxY w Y   d S d V  d S )Nr    )category)shapelygeos_versionwarningscatch_warningsfilterwarnings)r*   r(   s     r%   ignore_warningsr.      s      l**$&& 	 	#Hx@@@@EEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     | j         rat          j        |           dk    rIt          j        dk     r| j        dk    rdS t          j        dk     r| j                            d          rdS dS )z6Older GEOS versions have various issues with "equals".r   )r   r   r   GeometryCollectionT)r      r   MultiF)is_emptyr)   get_num_geometriesr*   	geom_type
startswith)geoms    r%   )equal_geometries_abnormally_yield_unequalr8      sn    } 3D99A==*,,CW1W1W4*,,1J1J71S1S,45    c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )		ArrayLikezO
    Simple numpy Array like class that implements the
    ufunc protocol.
    c                 8    t          j        |          | _        d S Nr"   asarray_array)selfarrays     r%   __init__zArrayLike.__init__  s    j''r9   c                 *    t          | j                  S r=   )lenr@   rA   s    r%   __len__zArrayLike.__len__
  s    4;r9   c                     | j         |         S r=   )r@   )rA   keys     r%   	__getitemzArrayLike.__getitem  s    {3r9   c                 4    | j                                         S r=   )r@   __iter__rF   s    r%   rL   zArrayLike.__iter__  s    {##%%%r9   c                 4    t          j        | j                  S r=   r>   rF   s    r%   	__array__zArrayLike.__array__  s    z$+&&&r9   c                 p     |dk    r) fd|D             }                       ||i |          S t          S )N__call__c                 L    g | ] }t          |j                  r|j        n|!S  )
isinstance	__class__r@   ).0argrA   s     r%   
<listcomp>z-ArrayLike.__array_ufunc__.<locals>.<listcomp>  s=       KNjdn==F

3  r9   )rT   NotImplemented)rA   ufuncmethodinputskwargss   `    r%   __array_ufunc__zArrayLike.__array_ufunc__  s_    Z   RX  F >>%%":6":":;;;!!r9   N)
__name__
__module____qualname____doc__rC   rG   _ArrayLike__getitemrL   rN   r]   rR   r9   r%   r;   r;     sx         
( ( (          & & &' ' '" " " " "r9   r;   )T)pr+   
contextlibr   numpyr"   r)   pointsarangeboxpoint_polygon_testdataPointpoint
LineStringline_string
LinearRinglinear_ringPolygonpolygonpolygon_with_hole
MultiPointmulti_pointMultiLineStringmulti_line_stringmultipolygonsmulti_polygonr0   geometry_collectionfrom_wktemptyempty_pointempty_line_stringempty_polygonempty_multi_pointempty_multi_line_stringempty_multi_polygonmultipointsmulti_point_emptymultilinestringsmulti_line_string_emptymulti_polygon_emptygeometrycollectionsgeometry_collection_emptypoint_zline_string_zlinear_ring_z	polygon_zpolygon_with_hole_zmulti_point_zmulti_line_string_zmulti_polygon_zgeometry_collection_zempty_geometry_collection_zempty_point_zempty_line_string_zempty_polygon_zempty_multi_point_zempty_multi_line_string_zempty_multi_polygon_zmulti_point_empty_zmulti_line_string_empty_zmulti_polygon_empty_zgeometry_collection_empty_zpoint_mline_string_mlinear_ring_m	polygon_mpolygon_with_hole_mmulti_point_mmulti_line_string_mmulti_polygon_mgeometry_collection_mempty_geometry_collection_mempty_point_mempty_line_string_mempty_polygon_mempty_multi_point_mempty_multi_line_string_mempty_multi_polygon_mmulti_point_empty_mmulti_line_string_empty_mmulti_polygon_empty_mgeometry_collection_empty_mpoint_zmline_string_zmlinear_ring_zm
polygon_zmpolygon_with_hole_zmmulti_point_zmmulti_line_string_zmmulti_polygon_zmgeometry_collection_zmempty_geometry_collection_zmempty_point_zmempty_line_string_zmempty_polygon_zmempty_multi_point_zmempty_multi_line_string_zmempty_multi_polygon_zmmulti_point_empty_zmmulti_line_string_empty_zmmulti_polygon_empty_zmgeometry_collection_empty_zm	all_typesall_types_zall_types_mall_types_zmr&   nanline_string_nanr.   r8   r;   rR   r9   r%   <module>r      s	    % % % % % %      GN929Q<<1..GK1a 
 	a g !9!9!9:: g !I!I!IJJ
'/BBB
C
C#GO000333
4    !g &&!122+G+ff-=,>?? %%000DDD  1g0W]2r.G.'/BCCD   	344g}--$G$%788   11$G$%788 *'*+BCC &g&';<< 'G'66 2'24E3FGG +g+]O<< 7G79J8KLL 
'-1a
 
 ""#D#D#DEE"";;;  GOSSSTT	%go???BBB
C    #"Iy#9::-g-	9/E.FGG '''???SSS  32G]3KLL .g./KLL   11&g&';<< "'"#455&g&';<< ,G,-FGG (()?@@ )g)=/:: 4G46I5JKK --.?@@ 9g9;N:OPP 
'
,
-
-  !EFF  !STTGNOO	&g&:   ! !BCC&g&'KLL "'"O  32G]3KLL .g./KLL   11&g&';<< "'"#455&g&';<< ,G,-FGG (()?@@ )g)=/:: 4G46I5JKK --.?@@ 9g9;N:OPP 7011!!"MNN!!A  W@ 
 (w'9   "!"HII'w'(QRR #7#Y   43X~4NOO /w/0MNN !!"233'w'(=>> #7#$677 'w'(=>> -W-.HII ))*ABB *w*N+;<< 5W57K6LMM ..0@/ABB :w:<P;QRR  
	)	0 ). ).   )0     ^ O O(g(2626*:RVRV<L)MNNOO O O O O O O O O O O O O O O     " " " " " " " " " "s   ++Y""Y&)Y&