
    \i                     \+   S SK r S SKrS SKrS SKrS SKJr  S SKrS SKrS SK	r	S SK	J
r
JrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)  Sr*Sr+\*\+-  r,S	r-S
r.\-\.-   r/\R`                  " SSSSS5      r1\R`                  " S\2" S5      5      r3\R`                  " SSS5      \3S-  -   r4\R`                  " SSS\*-  5      \3S-  -   r5\R`                  " SSS\+-  5      \3S-  -   r6\R`                  " SSS\,-  5      \3S-  -   r7\R`                  " SSSS5      \4-   r8\R`                  " SSS\*-  S5      \5-   r9\R`                  " SSS\+-  S5      \6-   r:\R`                  " SSS\,-  S5      \7-   r;\R`                  " SSSS5      \4-   r<\R`                  " SSS\*-  S5      \5-   r=\R`                  " SSS\+-  S5      \6-   r>\R`                  " SSS\,-  S5      \7-   r?\R`                  " SSSS5      \8-   r@\R`                  " SSS\*-  S5      \9-   rA\R`                  " SSS\+-  S5      \:-   rB\R`                  " SSS\,-  S5      \;-   rCSrD\ R                  " SSS/S.SS9rF\ R                  " SSSS/S.SS0S.SS9rG\ R                  " S SSS!S"/S.S#S$0S.SS%S!S&/S'S/S(S&/S)S//S.S&S$S*.S.SS+S,S&/S-S&/S-S/S,S/S,S&///S.S.S/0S$S*.S./S0.SS9rH\	R                  " SS5      rJ\	R                  " S!S"/5      \	R                  " S!S&/S'S/S(S&/S)S//5      \	R                  " S,S&/S-S&/S-S/S,S/S,S&//5      /rMS1 rNS2 rO\R                  R                  S3SS4\RS54S6S7S8\SS94S7S4\S94S7S:\TS;4S<S=S4\S>4S=S8\SS>4S?S@S8\SSA4SBSCS4\SD4SCS8\SSD4/5      SE 5       rU\R                  R                  \	R                  SF:  SGSH9\R                  R                  SI/ SJQ5      SK 5       5       rX\R                  R                  \	R                  SF:  SLSH9SM 5       rY\R                  R                  SN\5      SO 5       rZ\R                  R                  SPSQ5      SR 5       r[\R                  R                  SPSS5      ST 5       r\SU r]SV r^SW r_\R                  R                  SXSS4\RS54S6S7S4\SY4S7S8\SSY4S7S:\TS;4SZS[S4\S\4S[S8\SS\4\DS]SS4\DS4\S^4\DS8\SS^4/5      S_ 5       r`\R                  R                  \	R                  SF:  SGSH9\R                  R                  S`SaSb\DSc4/5      Sd 5       5       ra\R                  R                  \	R                  SF:  SLSH9Se 5       rb\R                  R                  SN\5      \R                  R                  SfSgSh/5      \R                  R                  SiS S/5      Sj 5       5       5       rc\R                  R                  SN\5      \R                  R                  SfSgSh/5      \R                  R                  SiS S/5      Sk 5       5       5       rd\R                  R                  \	R                  Sl:  SmSH9\R                  R                  SN\5      \R                  R                  SfSgSh/5      \R                  R                  SiS S/5      Sn 5       5       5       5       re\R                  R                  \	R                  Sl:  SmSH9\R                  R                  SN\5      \R                  R                  SfSgSh/5      \R                  R                  SiS S/5      So 5       5       5       5       rf\R                  R                  SN\" 5       \" 5       \" 5       \
" 5       45      Sp 5       rg\R                  R                  SqSr5      Ss 5       rhSt riSu rjSv rkSw rlSx rmSy rnSz roS{ rp\R                  R                  SP/ S|Q5      S} 5       rqS~ rrS rs\R                  R                  SN\" SS 5      \" S S5      /5      S 5       rt\R                  R                  SN\" SS 5      \" S S5      /5      S 5       ru\R                  R                  SN\" S S S5      \" SS/5      \" / SQ5      \" / SQ5      \" / SQ/ SQ/5      \" SS/5      \" \" SS/5      \" SS/5      /5      \" \)\" / SQ5      /5      \
" \'\" S S S5      /5      \
" \
" \" S S S5      /5      /5      \" S S \R                  4S/5      \" S S \R                  4SSS/5      \
" \" S S 5      \" S S S5      /5      /5      S 5       rwS rxS ryS rz\R                  R                  \	R                  Sl:  SmSH9S 5       r{S r|S r}\R                  R                  \	R                  Sl:  SmSH9S 5       r~S rS rS rS rS rS rS rS rS r\R                  R                  \	R                  S:  SSH9S 5       r\R                  R                  \	R                  Sl:  SmSH9S 5       r\R                  R                  \	R                  S:  SSH9S 5       r\R                  R                  \	R                  S:  SSH9S 5       r\R                  R                  S\GR                  " \\4SS9\GR                  " \\4SS9\GR                  " \\4SS9\GR                  " \\4SS9\GR                  " \!\8SS9\GR                  " \#\8SS9\GR                  " \"\8SS9\GR                  " \$\8SS9\GR                  " \	GR                  " \/5      \<SS9\GR                  " \	GR                  " \/5      \<SS9\GR                  " \	GR                  " \/5      \<SS9\GR                  " \	GR                  " \/5      \<SS9\GR                  " \	GR                  " \!/5      \@SS9\GR                  " \	GR                  " \#/5      \@SS9\GR                  " \	GR                  " \"/5      \@SS9\GR                  " \	GR                  " \$/5      \@SS9/5      S 5       r\R                  R                  S\GR                  " \\5SS9\GR                  " \\5SS9\GR                  " \#\9SS9\GR                  " \$\9SS9\GR                  " \	GR                  " \/5      \=SS9\GR                  " \	GR                  " \/5      \=SS9\GR                  " \	GR                  " \#/5      \ASS9\GR                  " \	GR                  " \$/5      \ASS9/5      S 5       r\R                  R                  \	R                  Sl:  SmSH9\R                  R                  S\GR                  " \\6SS9\GR                  " \"\:SS9\GR                  " \	GR                  " \/5      \>SS9\GR                  " \	GR                  " \"/5      \BSS9/5      S 5       5       r\R                  R                  \	R                  Sl:  SmSH9\R                  R                  S\GR                  " \\7SS9\GR                  " \$\;SS9\GR                  " \	GR                  " \/5      \?SS9\GR                  " \	GR                  " \$/5      \CSS9/5      S 5       5       r\R                  R                  S\GR                  " \\4SS9\GR                  " \!\8SS9\GR                  " \	GR                  " \/5      \<SS9\GR                  " \	GR                  " \!/5      \@SS9/5      S 5       r\R                  R                  S\GR                  " \4S SSS9\GR                  " \5S SSS9\GR                  " \8SSSS9\GR                  " \9SSSS9\GR                  " \<SSSS9\GR                  " \=SSSS9\GR                  " \@SSSS9\GR                  " \ASSSS9/5      S 5       r\R                  R                  \	R                  Sl:  SmSH9\R                  R                  S\GR                  " \6S SS9\GR                  " \:SSS9\GR                  " \>SSS9\GR                  " \BSSS9/5      S 5       5       r\R                  R                  \	R                  Sl:  SmSH9\R                  R                  S\GR                  " \7S SS9\GR                  " \;SSS9\GR                  " \?SSS9\GR                  " \CSSS9/5      S 5       5       rS r\R                  R                  SN\\'\4-   5      S 5       r\R                  R                  SN\5      S 5       r\R                  R                  \	R                  Sl:  SmSH9\R                  R                  SN\5      S 5       5       r\R                  R                  \	R                  Sl:  SmSH9\R                  R                  SN\5      S 5       5       r\R                  R                  SN\\'\4-   5      S 5       r\R                  R                  \	R                  S:  SSH9\R                  R                  S\GR                  " \F\JSS9\GR                  " \G\JSS9\GR                  " \H\	GR                  " \M5      SS9\GR                  " \F/S-  \J/S-  SS9\GR                  " SSSS9\GR                  " \FS/\JS/SS9/5      S 5       5       r\R                  R                  \	R                  S:  SSH9S 5       r\R                  R                  \	R                  S:  SSH9S 5       r\R                  R                  \	R                  S:  SSH9S 5       r\R                  R                  \	R                  S:  SSH9S 5       r\R                  R                  \	R                  S:  SSH9\R                  R                  S\GR                  " \F\JSS9\GR                  " \F/S-  \J/S-  SS9\GR                  " SSSS9\GR                  " \FS/\JS/SS9/5      S 5       5       r\R                  R                  \	R                  S:  SSH9\R                  R                  S/ SQ5      S 5       5       r\R                  R                  \	R                  S:  SSH9S 5       r\R                  R                  \	R                  S:  SSH9\R                  R                  SN\\	GRH                  " \\%/5      \	GR                  " \\%/5      \	GR                  " \	GR                  " \/5      \%/5      /5      S 5       5       r\R                  R                  \	R                  S:  SSH9\R                  R                  SN\5      S 5       5       rg)    N)nullcontext)	GeometryCollectionGEOSException
LinearRing
LineStringMultiLineString
MultiPointMultiPolygonPointPolygon)UnsupportedGEOSVersionError)assert_geometries_equal)	all_typesall_types_mall_types_zall_types_zmempty_pointempty_point_mempty_point_zempty_point_zm)equal_geometries_abnormally_yield_unequalmulti_point_emptymulti_point_empty_mmulti_point_empty_zmulti_point_empty_zmpointpoint_mpoint_zpoint_zm	polygon_zl        i   @  i  <BI2d         ?z<dnanz<BI         z<BII   Z01030000000100000002000000507daec600b1354100de02498e5e3d41306ea321fcb03541a011a53d905e3d41r   gffffff_@g333333$@)typecoordinatesindentFeaturenamezDinagat Islands)r+   geometry
propertiesFeatureCollectiong     Y@g333333?prop0value0r   g        g     Y@g      Z@g     @Z@)prop1r4   r   g      Y@g     @Y@thisthat)r+   featuresc                      [         R                  " SS5      n [         R                  " S5      n[        X5        [         R                  " S5      n[        X5        g )Nr#   POINT (1 1)s   POINT (1 1))shapelypointsfrom_wktr   expectedactuals     X/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/shapely/tests/test_io.pytest_from_wktrC      sB    ~~a#Hm,FF-n-FF-    c                  6    [         R                  " S 5      b   eg N)r<   r>    rD   rB   test_from_wkt_nonerH          D!)))rD   zwkt, on_invalid, error, messageraise!Expected bytes or string, got int) ignoreNNrL   warnz+Expected word but encountered end of streamunsupported_optionnot a valid option)LINESTRING (0 0)rM   NNrQ   zmust contain 0 or >1 elements)NOT A WKT STRINGrM   NNrR   zUnknown type: 'NOT')POLYGON ((0 0, 0 0))rM   NNrS   zInvalid number of pointsc                 &   US:X  a  [         R                  " X#S9nO@US:X  a  [         R                  " X#S9nO%US:X  a  [        5       nO[         R                  " X#S9nU   [        R
                  " XS9nUb   e S S S 5        g ! , (       d  f       g = fNrN   matchrJ   rM   
on_invalid)pytestwarnsraisesr   r<   r>   )wktrY   errormessagehandlerresults         rB   test_from_wkt_on_invalidrb      st    & V,,u4	w	--5	x	---5	!!#=~~ 
   B
B)r'      r   z/on_invalid='fix' not supported with GEOS < 3.11)reasonzwkt, expected_wkt)	)rL   N)rQ   N)rR   N)rS   N)zPOLYGON ((0 0, 1 1, 0 1))zPOLYGON ((0 0, 1 1, 0 1, 0 0)))zPOLYGON ((0 0, 1 1))zPOLYGON ((0 0, 1 1, 0 0)))z3MULTIPOLYGON (((5 5, 6 6, 6 5, 5 5)), ((0 0, 0 0)))N)z3MULTIPOLYGON (((5 5, 6 6, 6 5, 5 5)), ((0 0, 1 1)))z8MULTIPOLYGON (((5 5, 6 6, 6 5, 5 5)), ((0 0, 1 1, 0 0))))zIGEOMETRYCOLLECTION (POLYGON ((5 5, 6 6, 6 5, 5 5)), POLYGON ((0 0, 0 0)))Nc                 f    [         R                  " U SS9n[         R                  " U5      U:X  d   egzSTests for on_invalid="fix".

Geometries that cannot be fixed are returned as None.
fixrX   N)r<   r>   to_wkt)r]   expected_wktgeoms      rB   test_from_wkt_on_invalid_fixrl      s-    : CE2D>>$<///rD   z/on_invalid='fix' is supported with GEOS >= 3.11c                      [         R                  " [        SS9   [        R                  " SSS9n SSS5        g! , (       d  f       g= f)/on_invalid="fix" not supported with GEOS < 3.110on_invalid='fix' only supported for GEOS >= 3.11rV   rL   rh   rX   N)rZ   r\   
ValueErrorr<   r>   _s    rB   -test_from_wkt_on_invalid_fix_unsupported_geosrs      s:     
L
 RE2
 
 
	   9
Ark   c                    [         R                  " U 5      n[         R                  " U5      n[        U 5      (       a/  [        R
                  " [        5         [        X 5        S S S 5        g [        X 5        g ! , (       d  f       g = frF   )r<   ri   r>   r   rZ   r\   AssertionErrorr   )rk   r]   rA   s      rB   test_from_wkt_all_typesrw      sZ    
..
Cc"F066]]>*#F1 +* 	 -	 +*s   A88
Br]   )POINT EMPTYzLINESTRING EMPTYzPOLYGON EMPTYzGEOMETRYCOLLECTION EMPTYc                    [         R                  " U 5      n[         R                  " U5      R                  5       (       d   e[         R                  " U5      R                  5       (       d   e[         R
                  " U5      U :X  d   eg rF   )r<   r>   is_geometryallis_emptyri   )r]   rk   s     rB   test_from_wkt_emptyr}      sk    
 C Dt$((****D!%%''''>>$3&&&rD   )zCIRCULARSTRING(1 3,2 4,3 1)z4COMPOUNDCURVE(CIRCULARSTRING(1 3,2 4,3 1),(3 1,0 0))zCURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 0,2 0,2 1,2 3,4 3),(4 3,4 5,1 4,0 0)),CIRCULARSTRING(1.7 1,1.4 0.4,1.6 0.4,1.6 0.5,1.7 1))zhMULTICURVE((0 0,5 5),COMPOUNDCURVE((-1 -1,0 0),CIRCULARSTRING(0 0,1 1,2 0)),CIRCULARSTRING(4 0,4 4,8 4))zMULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0,4 0,4 4,0 4,0 0),(1 1,3 3,3 1,1 1)),((10 10,14 12,11 10,10 10),(11 11,11.5 11,11 11.5,11 11)))c                 z   [         R                  S:  a9  [        R                  " [        SS9   [         R
                  " U 5        S S S 5        g [        R                  " [         R                  R                  SS9   [         R
                  " U 5        S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)Nr'      r   4Nonlinear geometry types are not currently supportedrV   zUnknown type)r<   geos_versionrZ   r\   NotImplementedErrorr>   errorsr   r]   s    rB   #test_from_wkt_nonlinear_unsupportedr      s     z)]]H
 S!	
 
 ]]7>>77~NS! ON
 
 ON   B;B,
B),
B:c                  |    [         R                  " SS5      n [         R                  " [        5      n[	        X5        g Nr#   )r<   r=   from_wkbPOINT11_WKBr   r?   s     rB   test_from_wkbr     s*    ~~a#Hk*FF-rD   c                      [         R                  " SS5      n [         R                  " S5      n[        X5        [         R                  " S5      n[        X5        g )Nr#   *0101000000000000000000F03F000000000000F03Fs*   0101000000000000000000F03F000000000000F03F)r<   r=   r   r   r?   s     rB   test_from_wkb_hexr     sD    ~~a#HJKFF-KLFF-rD   c                  6    [         R                  " S 5      b   eg rF   )r<   r   rG   rD   rB   test_from_wkb_noner   $  rI   rD   zwkb, on_invalid, error, messagezUnexpected EOF parsing WKB)       rM   NNr   ParseExceptionrM   z4Points of LinearRing do not form a closed linestringc                 &   US:X  a  [         R                  " X#S9nO@US:X  a  [         R                  " X#S9nO%US:X  a  [        5       nO[         R                  " X#S9nU   [        R
                  " XS9nUb   e S S S 5        g ! , (       d  f       g = frU   )rZ   r[   r\   r   r<   r   )wkbrY   r^   r_   r`   ra   s         rB   test_from_wkb_on_invalidr   )  st    6 V,,u4	w	--5	x	---5	!!#=~~ 
rc   zwkb, expected_wkt)rD   N)r   Nz[POLYGON ((1421568.7761 1924750.2852, 1421564.1314 1924752.2408, 1421568.7761 1924750.2852))c                 f    [         R                  " U SS9n[         R                  " U5      U:X  d   egrg   )r<   r   ri   )r   rj   rk   s      rB   test_from_wkb_on_invalid_fixr   R  s-    ( CE2D>>$<///rD   c                      [         R                  " [        SS9   [        R                  " SSS9n SSS5        g! , (       d  f       g= f)rn   ro   rV   rD   rh   rX   N)rZ   r\   rp   r<   r   rq   s    rB   -test_from_wkb_on_invalid_fix_unsupported_geosr   j  s:     
L
 SU3
 
 
rt   use_hexFT
byte_orderc                     [         R                  " U 5      [         R                  R                  :X  a  [        R
                  " S5        [         R                  " XUS9n[         R                  " U5      n[        X@5        g Nz$Linearrings are not preserved in WKBhexr   	r<   get_type_idGeometryType
LINEARRINGrZ   skipto_wkbr   r   rk   r   r   r   rA   s        rB   test_from_wkb_all_typesr   v  X     4 G$8$8$C$CC:;
..z
BCc"FF)rD   c                     [         R                  " U 5      [         R                  R                  :X  a  [        R
                  " S5        [         R                  " XUS9n[         R                  " U5      n[        X@5        g r   r   r   s        rB   test_from_wkb_all_types_zr     r   rD   r'      r   z,M coordinates not supported with GEOS < 3.12c                     [         R                  " U 5      [         R                  R                  :X  a  [        R
                  " S5        [         R                  " XUS9n[         R                  " U5      n[        X@5        g r   r   r   s        rB   test_from_wkb_all_types_mr     X     4 G$8$8$C$CC:;
..z
BCc"FF)rD   c                     [         R                  " U 5      [         R                  R                  :X  a  [        R
                  " S5        [         R                  " XUS9n[         R                  " U5      n[        X@5        g r   r   r   s        rB   test_from_wkb_all_types_zmr     r   rD   c                 @   [         R                  " U 5      n[         R                  " U5      n [         R                  " U 5      R	                  5       (       d   e[         R
                  " U 5      R	                  5       (       d   e[         R                  " U 5      U:X  d   eg rF   )r<   r   r   rz   r{   r|   )rk   r   s     rB   test_from_wkb_emptyr     sy    
 ..
CC Dt$((****D!%%''''>>$3&&&rD   r   )r010800000003000000000000000000F03F0000000000000840000000000000004000000000000010400000000000000840000000000000F03F01090000200E16000002000000010800000003000000000000000000F03F0000000000000840000000000000004000000000000010400000000000000840000000000000F03F0102000000020000000000000000000840000000000000F03F00000000000000000000000000000000"  010A0000200E1600000200000001090000000200000001080000000500000000000000000000000000000000000000000000000000004000000000000000000000000000000040000000000000F03F00000000000000400000000000000840000000000000104000000000000008400102000000040000000000000000001040000000000000084000000000000010400000000000001440000000000000F03F000000000000104000000000000000000000000000000000010800000005000000333333333333FB3F000000000000F03F666666666666F63F9A9999999999D93F9A9999999999F93F9A9999999999D93F9A9999999999F93F000000000000E03F333333333333FB3F000000000000F03F  010B000000030000000102000000020000000000000000000000000000000000000000000000000014400000000000001440010900000002000000010200000002000000000000000000F0BF000000000000F0BF0000000000000000000000000000000001080000000300000000000000000000000000000000000000000000000000F03F000000000000F03F00000000000000400000000000000000010800000003000000000000000000104000000000000000000000000000001040000000000000104000000000000020400000000000001040  010C00000002000000010A000000020000000108000000050000000000000000000000000000000000000000000000000010400000000000000000000000000000104000000000000010400000000000000000000000000000104000000000000000000000000000000000010200000004000000000000000000F03F000000000000F03F000000000000084000000000000008400000000000000840000000000000F03F000000000000F03F000000000000F03F01030000000200000004000000000000000000244000000000000024400000000000002C40000000000000284000000000000026400000000000002440000000000000244000000000000024400400000000000000000026400000000000002640000000000000274000000000000026400000000000002640000000000000274000000000000026400000000000002640c                 z   [         R                  S:  a9  [        R                  " [        SS9   [         R
                  " U 5        S S S 5        g [        R                  " [         R                  R                  SS9   [         R
                  " U 5        S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)Nr   r   rV   zUnknown WKB type)r<   r   rZ   r\   r   r   r   r   )r   s    rB   #test_from_wkb_nonlinear_unsupportedr     s      z)]]H
 S!	
 
 ]]7>>77?QRS! SR
 
 SRr   c                      [         R                  " SS5      n [         R                  " U 5      nUS:X  d   e[         R                  " U SS9nUS:X  d   e[         R                  " U SSS9nUS:X  d   eg )	Nr#   r;   FtrimzPOINT (1.000000 1.000000)r'   )rounding_precisionr   zPOINT (1.000 1.000))r<   r=   ri   r   rA   s     rB   test_to_wktr     sn    NN1a E^^E"F]"""^^E.F0000^^EaeDF****rD   c                  n   [         R                  " SSS5      n [         R                  " U 5      S:X  d   e[         R                  " U SS9S:X  d   e[         R                  " U SS9S:X  d   e[         R                  " U SS9S	:X  d   e[         R                  S
:  a  [         R                  " U SS9S:X  d   eg g )Nr#   r&   r'   POINT Z (1 2 3)output_dimensionPOINT (1 2)Told_3dPOINT (1 2 3)r   r(   )r<   r=   ri   r   r   s    rB   test_to_wkt_zr     s    NN1a#E>>% $5555>>%!4EEE>>%!48IIII>>%-@@@z)~~ea8<MMMM *rD   c                     [         R                  " S5      n [         R                  " U SS9S:X  d   e[         R                  S:  aS  [         R                  " U 5      S:X  d   e[         R                  " U SS9S:X  d   e[         R                  " U SS	9S
:X  d   eg [         R                  " U 5      S:X  d   e[         R                  " U SS9S:X  d   e[         R                  " U SS9S:X  d   e[         R                  " U SS	9S:X  d   eg )NzPOINT M (1 2 4)r&   r   r   r   zPOINT Z (1 2 4)r'   Tr   zPOINT (1 2 4)r(   r<   r>   ri   r   r   s    rB   test_to_wkt_mr     s    ./E>>%!4EEEj(~~e$(9999~~ea8<MMMM~~eD1_DDD~~e$(9999~~ea8<MMMM~~ea8<MMMM~~eD15FFFFrD   c                     [         R                  " S5      n [         R                  " U SS9S:X  d   e[         R                  " U SS9S:X  d   e[         R                  S:  a8  [         R                  " U 5      S:X  d   e[         R                  " U SS	9S
:X  d   eg [         R                  " U 5      S:X  d   e[         R                  " U SS9S:X  d   e[         R                  " U SS	9S:X  d   eg )NzPOINT ZM (1 2 3 4)r&   r   r   r'   r   r   Tr   r   r(   zPOINT (1 2 3 4)r   r   s    rB   test_to_wkt_zmr     s    12E>>%!4EEE>>%!48IIIIj(~~e$(9999~~eD1_DDD~~e$(<<<<~~ea8<PPPP~~eD15FFFFrD   c                  6    [         R                  " S 5      b   eg rF   )r<   ri   rG   rD   rB   test_to_wkt_noner         >>$'''rD   c                      / SQn [         R                  " U 5      n[        [         R                  " U5      5      U :X  d   eg )N)POINT Z EMPTYNPOLYGON Z EMPTY)r<   r>   listri   )	empty_wktempty_geomss     rB   test_to_wkt_array_with_empty_zr     s3    :I""9-K{+,	999rD   c                  F   [         R                  " [        5         [        R                  " S5        S S S 5        [         R                  " [        R
                  5         [        R                  " [        SS9  S S S 5        g ! , (       d  f       NU= f! , (       d  f       g = f)Nr#      r   )rZ   r\   	TypeErrorr<   ri   r   r   rG   rD   rB   test_to_wkt_exceptionsr     s[    	y	!q 
" 
w,,	-uq1 
.	- 
"	! 
.	-s   BB
B
B c                  D    [         R                  " [        5      S:X  d   eg )Nrx   )r<   ri   r   rG   rD   rB   test_to_wkt_point_emptyr   !  s    >>+&-777rD   )r   zLINESTRING Z EMPTYzLINEARRING Z EMPTYr   c                 d    [         R                  " [         R                  " U 5      5      U :X  d   eg rF   )r<   ri   r>   r   s    rB   test_to_wkt_empty_zr   %  s&     >>'**3/0C777rD   c                      [         R                  " [        [        /5      n [         R                  " U 5      R                  S5      (       d   eg )Nz(POINT EMPTY, POINT (2 3)))r<   geometrycollectionsr   r   ri   endswith)
collections    rB   /test_to_wkt_geometrycollection_with_point_emptyr   2  s:    ,,k5-ABJ >>*%../KLLLLrD   c                      [         R                  " [        [        /5      n [         R                  S:  a  SnOSn[         R
                  " U 5      U:X  d   eg )Nr   zMULTIPOINT (EMPTY, (2 3))zMULTIPOINT (EMPTY, 2 3))r<   multipointsr   r   r   ri   )rk   r@   s     rB   'test_to_wkt_multipoint_with_point_emptyr   9  sH    U34Dz). ->>$8+++rD   g}Ô%ITc                 R    [         R                  " U 5        S[        U 5      ;  d   eg )NException in WKT writer)r<   ri   reprrk   s    rB   test_to_wkt_large_float_okr   C  s"     NN4$DJ666rD   \nTc                 b   [         R                  S:  aA  U R                  [         R                  " [         R                  " U 5      5      5      (       d   eg [
        R                  " [        SS9   [         R                  " U 5        S S S 5        S[        U 5      ;   d   eg ! , (       d  f       N = f)Nr   z(WKT output of coordinates greater than.*rV   r   )	r<   r   equalsr>   ri   rZ   r\   rp   r   r   s    rB   test_to_wkt_large_floatr   J  s    z){{7++GNN4,@ABBBB ]]H
 NN4 
 )DJ666	
 
s   /B  
B.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   c                      [         R                  " U 5        [        U 5        g ! [         a+  n[        U5      R	                  S5      (       d   e S nAN<S nAff = f)Nz&WKT output of coordinates greater than)r<   ri   rp   str
startswithr   )rk   es     rB   #test_to_wkt_large_float_3d_no_crashr   X  sM    :Kt 	J  K1v  !IJJJJKs   $ 
A!AAc                  P    [         R                  " [        SSS5      SS9S:X  d   eg )Nr   r   r&   r   POINT (0 0))r<   ri   r   rG   rD   rB   test_to_wkt_large_float_skip_zr   |  s$    >>%1e,qA]RRRrD   c                  n    [         R                  " [        SS5      SS9R                  S5      (       d   eg )Nr   r   Fr   zPOINT ()r<   ri   r   r   rG   rD   rB   test_to_wkt_large_float_no_trimr    s,     >>%q/6AA)LLLLrD   c                  X    [        [        5      S:X  d   e[        [        5      S:X  d   eg )Nz<POINT (2 3)>z<POINT Z (2 3 4)>)r   r   r   rG   rD   rB   	test_reprr    s'    ;/)))=////rD   c                  X    [        [        5      S:X  d   e[        [        5      S:X  d   eg )Nz<POINT M (2 3 5)>z<POINT ZM (2 3 4 5)>)r   r   r   rG   rD   rB   test_repr_mr    s*    
 =////>3333rD   c                      [         R                  " [        R                  " S5      [        R                  " S5      5      n [	        U 5      n[        U5      S:X  d   eUR                  S5      (       d   eg )Nr!   P   z...>)r<   linestringsnparanger   lenr   )rk   representations     rB   test_repr_max_lengthr    sW    ryy		$@D$ZN~"$$$""6****rD   c                  .    [        [        5      S:X  d   eg )Nz<POINT Z EMPTY>)r   r   rG   rD   rB   test_repr_point_z_emptyr    s    "3333rD   c                  X    [        [        5      S:X  d   e[        [        5      S:X  d   eg )Nz<POINT M EMPTY>z<POINT ZM EMPTY>)r   r   r   rG   rD   rB   test_repr_point_m_emptyr    s,    
 "3333#5555rD   c                  t    [         R                  " SS5      n [         R                  " U SS9nU[        :X  d   eg )Nr#   r   )r<   r=   r   r   r   s     rB   test_to_wkbr    s0    NN1a E^^Ea0F[   rD   c                      [         R                  " SS5      n [         R                  " U SSS9nSnSnSnXU-   SU-  -   :X  d   eg )Nr#   Tr   0101000000000000000000F03Fr&   r<   r=   r   )r   rA   le
point_typecoords        rB   test_to_wkb_hexr    sL    NN1a E^^Et:F	BJE*_q5y0000rD   c                     [         R                  " SSS5      n [        R                  " SSSSS5      n[        R                  " SSS[        -  SSS5      n[         R
                  " U SS	9U:X  d   e[         R
                  " U SSS
9U:X  d   e[         R
                  " U SSS
9U:X  d   e[         R                  S:  a  [         R
                  " U SSS
9U:X  d   eg g )Nr#   r&   r'   r"   r$          @<BI3d      @r  r   r   r   r(   )r<   r=   structpackEWKBZr   r   )r   expected_wkbexpected_wkb_zs      rB   test_to_wkb_zr(    s    NN1a#E;;w1c37L[[!QYS#FN>>%A..@@@>>%!BlRRR>>%!BnTTTz)~~eaAF.XXX *rD   c            
         [         R                  " [        R                  " SSS[        -  SSS5      5      n [        R                  " SSSSS5      n[        R                  " SSS[        -  SSS5      n[         R
                  S:  a  Un[         R                  " U SS9U:X  d   e[         R                  " U S	SS
9U:X  d   e[         R                  " U SSS
9U:X  d   e[         R
                  S:  a  [         R                  " U SSS
9U:X  d   eg g )Nr   r#   r$   r        @r"   r   r  r&   r"  r'   r(   )r<   r   r#  r$  EWKBMr   r   )r   r&  expected_wkb_ms      rB   test_to_wkb_mr-    s    V[[!QYS#NOE;;w1c37L[[!QYS#FNj(%>>%A..@@@>>%!BlRRR>>%!BnTTTz)~~eaAF.XXX *rD   c                  d   [         R                  " [        R                  " SSS[        -  SSSS5      5      n [        R                  " SSSSS5      n[        R                  " SSS[
        -  SSS5      n[        R                  " SSS[        -  SSSS5      n[         R                  S	:  a  Un[         R                  " U SS
9U:X  d   e[         R                  " U SSS9U:X  d   e[         R                  " U SSS9U:X  d   e[         R                  S	:  a  [         R                  " U SSS9U:X  d   eg g )Nz<BI4dr#   r$   r  r!  r*  r"   r   r   r  r&   r"  r'   r(   )r<   r   r#  r$  EWKBZMr%  r   r   )r   r&  r'  expected_wkb_zms       rB   test_to_wkb_zmr1    s   V[[!QZc3PSTUE;;w1c37L[[!QYS#FNkk'1a&j#sCMOj((>>%A./AAA>>%!BlRRR>>%!BnTTTz)NN51CV	
V *rD   c                  6    [         R                  " S 5      b   eg rF   )r<   r   rG   rD   rB   test_to_wkb_noner3    r   rD   c                     [         R                  " [        5         [        R                  " S5        S S S 5        [         R                  " [        R
                  5         [        R                  " [        SS9  S S S 5        [         R                  " [        5         [        R                  " [        SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N\= f! , (       d  f       g = f)Nr#   r   r   otherflavor)rZ   r\   r   r<   r   r   r   rp   rG   rD   rB   test_to_wkb_exceptionsr8    s    	y	!q 
" 
w,,	-uq1 
. 
z	"uW- 
#	" 
"	! 
.	- 
#	"s#   B=CC=
C
C
C-c                      [         R                  " SS5      n SnSnSnSn[         R                  " U SS9X#-   SU-  -   :X  d   e[         R                  " U S	S9XS S S
2   -   SUS S S
2   -  -   :X  d   eg )Nr$          s      s         ?r#   r  r&   r   r  )r   ber  r  r  s        rB   test_to_wkb_byte_orderr>    s    NN3$E	B	B$J,E>>%A."/AI2MMMMu+rtt4D/Dq5QUSUQU;/VVVrD   c                     Sn Sn[         R                  " U 5      n[         R                  " USS9S:X  d   e[         R                  " USSS9U:X  d   e[         R                  " USSSS9U :X  d   e[         R                  " SS5      n[         R
                  " U[        R                  " S	5      5      n[         R                  " USSS
9n[        R                  " USS S5      R                  5       S	:X  d   eg )N201010000200400000000000000000000000000000000000000*010100000000000000000000000000000000000000Tr   r   r#   r   )r   include_sridr     )rB  r   r   	   z<u4)
r<   r   ri   r   r=   set_sridr	  int32
frombufferitem)ewkbr   rA   r   point_with_sridra   s         rB   test_to_wkb_sridrK  	  s    ?D
6Cd#F>>&t,===>>&dq9S@@@>>&d!LPTTTTNN1a E&&ubhhtn=O^^O$1MF==!e,113t;;;rD   )r'   r   r   zGEOS < 3.10.0c                  0   [         R                  " [        SS9n U R                  5       SS [        R
                  " SS[        -  5      R                  5       :X  d   e[         R                  " [        SSS9n U R                  5       SS [        R
                  " SS[        -  5      R                  5       :X  d   e[         R                  " [        SSS9n U R                  5       SS [        R
                  " SS[        -  5      R                  5       :X  d   eg )	Nr#   r  r&   r   <Iextendedr   r7  iso)r<   r   r   r   r#  r$  r%  ISOWKBZrA   s    rB   test_to_wkb_flavorrS    s     ^^G2F::<"T1u9!=!A!A!CCCC^^G*EF::<"T1u9!=!A!A!CCCC^^G%@F::<"T1w;!?!C!C!EEEErD   c                     [         R                  " [        SS9n U R                  5       SS [        R
                  " SS[        -  5      R                  5       :X  d   e[         R                  " [        SSS9n U R                  5       SS [        R
                  " SS[        -  5      R                  5       :X  d   e[         R                  " [        SS9n U R                  5       SS [        R
                  " SS[        -  5      R                  5       :X  d   e[         R                  " [        SSS9n U R                  5       SS [        R
                  " SS[        -  5      R                  5       :X  d   eg )Nr#   r  r&   r   rM  rP  rO  )r<   r   r   r   r#  r$  r+  ISOWKBMr   r/  ISOWKBZMrR  s    rB   test_to_wkb_m_flavorrW  %  s    ^^G2F::<"T1u9!=!A!A!CCCC^^G%@F::<"T1w;!?!C!C!EEEE ^^H3F::<"T1v:!>!B!B!DDDD^^H5AF::<"T1x<!@!D!D!FFFFrD   c                      [         R                  " [        SS9   [        R                  " [
        SSS9  S S S 5        g ! , (       d  f       g = f)Nzcannot be used togetherrV   TrP  )rB  r7  )rZ   r\   rp   r<   r   r   rG   rD   rB   test_to_wkb_flavor_sridrY  7  s.    	z)B	CwT%@ 
D	C	Cs	   >
Ac                      [         R                  " [        5         [        R                  " [
        SS9  S S S 5        g ! , (       d  f       g = f)NrP  r6  )rZ   r\   r   r<   r   r   rG   rD   rB   #test_to_wkb_flavor_unsupported_geosr[  =  s)    	2	3wu- 
4	3	3s	   >
Azgeom,expectedrx   )idr   zPOINT M EMPTYzPOINT ZM EMPTYzMULTIPOINT EMPTYzMULTIPOINT Z EMPTYzMULTIPOINT M EMPTYzMULTIPOINT ZM EMPTYz GEOMETRYCOLLECTION (POINT EMPTY)z"GEOMETRYCOLLECTION (POINT Z EMPTY)z"GEOMETRYCOLLECTION (POINT M EMPTY)z#GEOMETRYCOLLECTION (POINT ZM EMPTY)z%GEOMETRYCOLLECTION (MULTIPOINT EMPTY)z'GEOMETRYCOLLECTION (MULTIPOINT Z EMPTY)z'GEOMETRYCOLLECTION (MULTIPOINT M EMPTY)z(GEOMETRYCOLLECTION (MULTIPOINT ZM EMPTY)c                    [         R                  " U SSS9nSn[        U5      U-
  n[        U5      XC-   :X  d   eUS U US U :X  d   e[        R                  " [
        R                  " SX$S  5      5      R                  5       (       d   eg )Nr&   r#   r"     <2dr<   r   r  r	  isnanr#  unpackr{   rk   r@   rA   coordinate_lengthheader_lengths        rB   test_to_wkb_point_empty_2drf  C  s    L ^^D1CFM$55Mv;-;;;;.=!Xn}%==== 88FMM%)?@AEEGGGGrD   c                    [         R                  " U SSS9nSn[        U5      U-
  n[        U5      XC-   :X  d   eUS U US U :X  d   e[        R                  " [
        R                  " SX$S  5      5      R                  5       (       d   eg Nr'   r#   r"     z<3dr`  rc  s        rB   test_to_wkb_point_empty_zrj    s    L ^^D1CFM$55Mv;-;;;;.=!Xn}%==== 88FMM%)?@AEEGGGGrD   c                    [         R                  " U SSS9nSn[        U5      U-
  n[        U5      XC-   :X  d   eUS U US U :X  d   e[        R                  " [
        R                  " SX$S  5      5      R                  5       (       d   eg rh  r`  rc  s        rB   test_to_wkb_point_empty_mrl        4 ^^D1CFM$55Mv;-;;;;.=!Xn}%====88FMM%)?@AEEGGGGrD   c                    [         R                  " U SSS9nSn[        U5      U-
  n[        U5      XC-   :X  d   eUS U US U :X  d   e[        R                  " [
        R                  " SX$S  5      5      R                  5       (       d   eg )Nr(   r#   r"      z<4dr`  rc  s        rB   test_to_wkb_point_empty_zmrp    rm  rD   c                    [         R                  " U SSS9nSn[        U5      U-
  n[        U5      XC-   :X  d   eUS U US U :X  d   e[        R                  " [
        R                  " SX$S  5      5      R                  5       (       d   eg )Nr'   r#   r"  r^  r_  r`  rc  s        rB   'test_to_wkb_point_empty_2d_output_dim_3rr    s    $ ^^D1CFM$55Mv;-;;;;.=!Xn}%==== 88FMM%)?@AEEGGGGrD   zwkb,expected_type,expected_dimPOINT_NAN_WKBPOINTZ_NAN_WKBMULTIPOINT_NAN_WKBMULTIPOINTZ_NAN_WKBGEOMETRYCOLLECTION_NAN_WKBGEOMETRYCOLLECTIONZ_NAN_WKBNESTED_COLLECTION_NAN_WKBNESTED_COLLECTIONZ_NAN_WKBc                     [         R                  " U 5      n[         R                  " U5      (       d   e[         R                  " U5      U:X  d   e[         R                  " U5      U:X  d   eg rF   )r<   r   r|   r   get_coordinate_dimension)r   expected_typeexpected_dimrk   s       rB   test_from_wkb_point_emptyr  .  s]      C DD!!!!t$555++D1\AAArD   zwkb,expected_typePOINTM_NAN_WKBMULTIPOINTM_NAN_WKBGEOMETRYCOLLECTIONM_NAN_WKBNESTED_COLLECTIONM_NAN_WKBc                 N   [         R                  " U 5      n[         R                  " U5      (       d   e[         R                  " U5      U:X  d   e[         R                  " U5      S:X  d   e[         R
                  " U5      (       a   e[         R                  " U5      (       d   eg )Nr'   r<   r   r|   r   r|  has_zhas_mr   r}  rk   s      rB   test_from_wkb_point_empty_mr  E  s     C DD!!!!t$555++D1Q666}}T""""==rD   POINTZM_NAN_WKBMULTIPOINTZM_NAN_WKBGEOMETRYCOLLECTIONZM_NAN_WKBNESTED_COLLECTIONZM_NAN_WKBc                 N   [         R                  " U 5      n[         R                  " U5      (       d   e[         R                  " U5      U:X  d   e[         R                  " U5      S:X  d   e[         R
                  " U5      (       d   e[         R                  " U5      (       d   eg )Nr(   r  r  s      rB   test_from_wkb_point_empty_zmr  \  s      C DD!!!!t$555++D1Q666====rD   c                      [         R                  " [        S5      n [         R                  " U SS9n[         R                  " U5      n[         R
                  " U5      S:X  d   eg )Ni  T)rB  )r<   rE  r   r   r   get_srid)r@   r   rA   s      rB   test_to_wkb_point_empty_sridr  u  sM    T2H
..
5Cc"FF#t+++rD   c                 n    [         R                  " U 5      n[        [         R                  " U5      U SS9  g Nr   	tolerance)pickledumpsr   loadsrk   pickleds     rB   test_pickler  |  s%    ll4 GFLL141ErD   c                    [         R                  " U 5      n[         R                  " U5      n[        X SS9  UR                  (       d  UR
                  (       d   e[        R                  S:  a  UR                  (       a   eg g )Nr   r  r   )	r  r  r  r   r|   r  r<   r   r  rk   r  rA   s      rB   test_pickle_zr    s]    ll4 G\\'"FFA6??|||z)<<< *rD   c                     [         R                  " U 5      n[         R                  " U5      n[        X SS9  UR                  (       a   eUR
                  (       d  UR                  (       d   eg g r  )r  r  r  r   r  r|   r  r  s      rB   test_pickle_mr    sO     ll4 G\\'"FFA6||??||| rD   c                     [         R                  " U 5      n[         R                  " U5      n[        X SS9  UR                  (       d'  UR
                  (       d   eUR                  (       d   eg g r  )r  r  r  r   r|   r  r  r  s      rB   test_pickle_zmr    sN     ll4 G\\'"FFA6??|||||| rD   c                     [         R                  " U S5      n [        R                  " U 5      n[         R                  " [        R
                  " U5      5      S:X  d   eg )NrC  )r<   rE  r  r  r  r  r  s     rB   test_pickle_with_sridr    sD    D$'Dll4 GFLL12d:::rD   )r'   r   r#   zGEOS < 3.10.1zgeojson,expectedGEOJSON_GEOMETRYGEOJSON_FEATUREGEOJSON_FEATURECOLECTIONGEOJSON_GEOMETRYx2NoneGEOJSON_GEOMETRY_Nonec                 F    [         R                  " U 5      n[        X!5        g rF   )r<   from_geojsonr   )geojsonr@   rA   s      rB   test_from_geojsonr    s    6 !!'*FF-rD   c                     [         R                  " [        SS9   [        R                  " S5        S S S 5        [         R                  " [        R
                  SS9   [        R                  " S5        S S S 5        [         R                  " [        R
                  SS9   [        R                  " S5        S S S 5        [         R                  " [        R
                  SS9   [        R                  " S	5        S S S 5        [         R                  " [        R
                  S
S9   [        R                  " S5        S S S 5        [         R                  " [        R
                  S
S9   [        R                  " S5        S S S 5        g ! , (       d  f       GNZ= f! , (       d  f       GN*= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrK   rV   r#   zError parsing JSONrL   zUnknown geometry typez){"type": "NoGeometry", "coordinates": []}ztype must be array, but is nullz+{"type": "LineString", "coordinates": null}zkey 'type' not foundz${"geometry": null, "properties": []}z{"no": "geojson"})rZ   r\   r   r<   r  r   rG   rD   rB   test_from_geojson_exceptionsr    s?   	y(K	LQ 
M 
w,,4H	IR  
J 
w,,4K	LHI 
M 
w,,4U	VJK 
W
 
w,,4J	KCD 
L 
w,,4J	K01 
L	K# 
M	L 
J	I 
M	L 
W	V
 
L	K 
L	KsG   FFF( F9"G
$G
F
F%(
F69
G

G
G)c                      [         R                  " [        SS9   [        R                  " SSS9b   e S S S 5        g ! , (       d  f       g = f)NzInvalid GeoJSONrV   rL   rN   rX   )rZ   r[   Warningr<   r  rG   rD   rB   !test_from_geojson_warn_on_invalidr    s6    	g%6	7##B6:BBB 
8	7	7s	   =
Ac                      [         R                  " 5          [         R                  " S5        [        R                  " SSS9b   e S S S 5        g ! , (       d  f       g = f)Nr^   rL   rM   rX   )warningscatch_warningssimplefilterr<   r  rG   rD   rB   #test_from_geojson_ignore_on_invalidr    sA    		 	 	"g&##B8<DDD 
#	"	"s   /A
Ac                      [         R                  " [        SS9   [        R                  " [
        SS9  S S S 5        g ! , (       d  f       g = f)NrP   rV   rO   rX   )rZ   r\   rp   r<   r  r  rG   rD   rB   /test_from_geojson_on_invalid_unsupported_optionr    s/    	z)=	>-:NO 
?	>	>s	   =
AzGEOS < 3.10zexpected,geometryc                     [         R                  " U SS9n[        R                  " U[        R                  " U5      :H  5      (       d   eg )Nr(   r-   )r<   
to_geojsonr	  r{   asarray)r1   r@   rA   s      rB   test_to_geojsonr    s9    * 3F66&BJJx001111rD   r.   )Nr   r(   c                     U c  SOSn[         R                  " [         R                  " [        5      XS9n[        R
                  " [        U S9nX2:X  d   eg )N),:)r  z: )r.   
separatorsr-   )jsonr  r  r  r<   r  GEOJSON_GEOMETRY_EXPECTED)r.   r  r@   rA   s       rB   test_to_geojson_indentr    sM      &~;Jzz

#$VH  9&IFrD   c                      [         R                  " [        5         [        R                  " S5        S S S 5        g ! , (       d  f       g = fr   )rZ   r\   r   r<   r  rG   rD   rB   test_to_geojson_exceptionsr    s(    	y	!1 
"	!	!s	   ;
A	r'   r   r&   zGEOS < 3.10.2c                     U R                  [        R                  " [        R                  " U 5      5      5      (       d   eg rF   )r   r<   r  r  r   s    rB   test_to_geojson_point_emptyr  #  s/     ;;w++G,>,>t,DEFFFFrD   c                 h   [         R                  " U 5      nU[         R                  R                  :X  a  [        R
                  " S5        OYU R                  (       aH  U[         R                  R                  :X  a*  [         R                  S:  a  [        R
                  " S5        [         R                  " U 5      n[         R                  " U5      nUR                  (       a   e[         R                  " X/5      nUR                  5       (       a  UR                  5       (       d   eg [        X05        g )Nz(Linearrings are not preserved in GeoJSONr  zGEOS < 3.10.2 with POINT EMPTY)r<   r   r   r   rZ   r   r|   POINTr   r  r  r  anyr{   r   )rk   type_idr  rA   geoms_are_emptys        rB   test_geojson_all_typesr  3  s     !!$'G'&&111>?w++111  :-45  &G!!'*F||&&~6O""$$$$-rD   )r  r  r#  r  
contextlibr   numpyr	  rZ   r<   r   r   r   r   r   r	   r
   r   r   shapely.errorsr   shapely.testingr   shapely.tests.commonr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r%  r+  r/  rQ  rU  rV  r$  r   floatNANrs  rt  r  r  ru  rv  r  r  rw  rx  r  r  ry  rz  r  r  INVALID_WKBr  r  r  r  r=   r  r  polygonsGEOJSON_COLLECTION_EXPECTEDrC   rH   markparametrizer   r  rp   rb   skipifr   rl   rs   rw   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-  r1  r3  r8  r>  rK  rS  rW  rY  r[  paramr   rf  rj  rl  rp  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  rG   rD   rB   <module>r     s       "   
 
 
 7 3    * 		

Wkk'1ac2kk$e%E1a(C!G4UAq5y1S1W=UAq5y1S1W=++eQF
3sQw?[[Aq1MA kk&!QY:^K kk&!QY:^K {{61a&j!<N #[[Aq9MI $kk&!QYB^S $kk&!QYB^S %{{61a&j!DV "KK1a8;MM #[[AIqADWW #[[AIqADWW 
KK1v:q),@@  k::wt}MVWX **$eT]C01
   ::# "%,eS\J&1 "(	$ ),h? "% #CL"CL"CL"CL"CL$ *0(88L'#
&N Q) V $NN5$7 NNE3< %s|eS\E3<PQ
s|eS\E3<%N .*
 %	
GY CD"	VWKL	Wm%RS	!:/CD2	Wm5TU	VW.MN2	VW.CD6	-9ST	2LM$%$ :%<   (0)	00 J&<  3	3 +
. ,
. 	T'	' 		"	"..*
 %	
GY CD"	Wm%AB	VW:;	!:/CD;	$g}>NO	$fg7GH	hd+B		
 B		
!454 :%<   +i	

0
	0 J&<  4	4 +UDM21v.* / 3 ,* -UDM21v.* / 3 .* :%9   -UDM21v.* / 3 .	* :%9   .UDM21v.* / 3 /	* 

WjlGI'9';<'	' 	""	+	NG"G (
:28 	88M, %q/5E?!CD7 E7 %q/5E?!CD
7 E
7 
 	aEI}-.CD@A:=>	
 	I}-.I./Y<V1WX	
 	 PQR	
 	GU1a%789.aE0B/CDEFQ266NM23!QM9EFE!QKq!U);<=+454S
M0
 :%9  4	4
+4 :%9  6	6
!1
YY"
((
.
<" G((:5oNF OF :%9  G	G G((:5oNA OA
 G((J6O. P.
 [-MB]MoF]MoF^]7GH!	

 	#	

 	#	

 	 $	

 	''6&1	

 	''8&3	

 	''8&3	

 	''(89&4	

 	''):(;<%6	

 	'')<(=>%8	

 	'')<(=>%8	

 	'')=(>?%9	
yADJHKDJH ]NG^^8HI#	

 	 $	

 	''8'3	

 	''(89'4	

 	'')<(=>&8	

 	'')=(>?&9	
9!$JHK$JH :%9   ]NG#	

 	''8'3	

 	'')<(=>&8	
*H+	2H :%9   ^_9IJ  $	

 	''(89(4	

 	'')=(>?'9	
*H+	2H [-MB&(:?QR''6&1	

 	''):(;<%6	
"H#"H $]Aq_=^Q.>?'A2FG(!Q3HI/A:VW'A2O	
 	.19TU/A:VWBB :%9   ^Q+;<(!0EF0!8UV/7ST		 :%9   _a,=>)11GH(!0N	
 	0!8UV

	, g{-C!CDF EF
 -  .  :%9   - .	
 :%9   . /	
 g{-C!CD; E; G((:5oN7<N	
 	_&?DUV$''(CD)	

 	"&'!+#	

 	T4F+t$&-&	
!2.3 O4.
 G((:5oN2 O2, G((:5oNC OC
 G((:5oNE OE G((:5oNP OP
 G((:5mL7<N	
 	"&'!+#	

 	T4F+t$&-&	
&2' M(2
 G((:5mL<0 1 M G((:5mL M
 G((:5oN
[%01##[%$89##((+7?	
	
G
 OG G((:5oN+. , O.rD   