§ x<ˆjË;ã ó”—UddlmZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z mZddlZddlZddlm ZddlmZmZmZ ddlmZdZn #e$rd ZYnwxYwerdd lmZej ej  e!¦«d ¦«Z"ej e"d ¦«Z#ej e"d ¦«Z$ej e"d¦«Z%ej e"d¦«Z&ej e"d¦«Z'ej e"d¦«Z(iZ)de*d<dNd„Z+dOd„Z,dPd„Z-ej.j/ej. 0ed¬¦«ej1dd ¬ ¦«dQd"„¦«¦«¦«Z2dRd%„Z3ej.j/ej. 0ed¬¦«ej. 4d&e3e#¦«¦«dQd'„¦«¦«¦«Z5ej.j/ej. 0ed¬¦«ej. 4d&e3e$¦«¦«dSd(„¦«¦«¦«Z6d)Z7d*Z8dTd1„Z9dUd3„Z:dUd4„Z;e;¦«Zej.j/ej. 0ed¬¦«ej. 4d&e3e%¦«¦«dSd:„¦«¦«¦«Z?d;Z@ejAd<¦«ZBdWd>„ZCej.j/ej. 0ed¬¦«ej. 4d&e3e#¦«¦«dSd?„¦«¦«¦«ZDd@dAdBdCdDdEdFdGdHdIdJdKdLœ ZEej.j/ej. 0ed¬¦«dQdM„¦«¦«ZFdS)Xé)Ú annotationsN)Ú defaultdict)ÚIterator)ÚIOÚ TYPE_CHECKING)Ú_PRECISION_DICTÚ_EXTENDED_PRECISION_LISTÚ_C_INTP)ÚapiFT)Ú ParameterSetÚdataÚpassÚfailÚrevealÚmisczmypy.iniz .mypy_cachezdict[str, list[str]]Ú OUTPUT_MYPYÚkeyÚstrÚreturncóº—tj |¦«\}}tj || dd¦«d¦«S)zySplit at the first occurrence of the ``:`` character. Windows drive-letters (*e.g.* ``C:``) are ignored herein. ú:ér)ÚosÚpathÚ splitdriveÚjoinÚsplit)rÚdriveÚtails úr/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/numpy/typing/tests/test_typing.pyÚ _key_funcr!.sF€õ ”'×$Ò$ SÑ)Ô)�K€Eˆ4Ý Œ7�<Š<˜˜tŸzšz¨#¨qÑ1Ô1°!Ô4Ñ 5Ô 5Ð5óÚmsgcó~—tj |¦«\}}| dd¦«dS)z'Strip the filename from a mypy message.rréÿÿÿÿ)rrrr)r#Ú_rs r Ú_strip_filenamer'7s4€åŒg× Ò  Ñ%Ô%�G€A€tØ �:Š:�c˜1Ñ Ô ˜bÔ !Ð!r"Úmatchú re.Match[str]có6—| ¦«dS)z4`re.sub` helper function for stripping module names.r)Úgroups)r(s r Ú strip_funcr,=s€à �<Š<‰>Œ>˜!Ô Ðr"zMypy is not installed)ÚreasonÚmodule)ÚscopeÚautouseÚNonecó¢—tj t¦«rFt tj dd¦«¦«rtjt¦«ttttfD]É}tjdtdt|g¦«\}}}|rt!jd|›�¦«n|dvrt!jd|›d|›�¦«| d d ¦«}t'j| d ¦«t,¬ ¦«}t. d „|D¦«¦«ŒÊdS)zøClears the cache and run mypy before running any of the typing tests. The mypy results are cached in `OUTPUT_MYPY` for further use. The cache refresh can be skipped using NUMPY_TYPING_TEST_CLEAR_CACHE=0 pytest numpy/typing/tests ÚNUMPY_TYPING_TEST_CLEAR_CACHETz --config-filez --cache-dirz Unexpected mypy standard error >rrzUnexpected mypy exit code: ú Ú*Úú )rc3óBK—|]\}}|¯|t|¦«fV—ŒdS©N)Úlist©Ú.0ÚkÚvs r ú zrun_mypy..es5èè€ÐBÐB©D¨A¨qÀÐB˜A�t A™wœw˜<ÐBÐBÐBÐBÐBÐBr"N)rrÚisdirÚ CACHE_DIRÚboolÚenvironÚgetÚshutilÚrmtreeÚPASS_DIRÚ REVEAL_DIRÚFAIL_DIRÚMISC_DIRr ÚrunÚMYPY_INIÚpytestrÚreplaceÚ itertoolsÚgroupbyrr!rÚupdate)Ú directoryÚstdoutÚstderrÚ exit_codeÚiterators r Úrun_mypyrWBsN€õ Œ� Š •iÑ Ô ð!å •”—’Ð ?ÀÑFÔFÑ GÔ Gð!õ Œ •iÑ Ô Ð å¥ ­HµhÐ?ðCðCˆ å$'¤GØ Ý Ø Ý Ø ð - ñ% ô% Ñ!ˆ�˜ ð ð OÝ ŒKÐE¸VÐEÐEÑ FÔ FÐ FÐ FØ ˜fÐ $Ð $Ý ŒKÐM°iÐMÐMÀVÐMÐMÑ NÔ NÐ NØ—’  RÑ(Ô(ˆõÔ$ V§\¢\°$Ñ%7Ô%7½YÐGÑGÔGˆÝ×ÒÐBÐB°HÐBÑBÔBÑBÔBÐBÐBð#CðCr"rRúIterator[ParameterSet]c#óK—tj|¦«D]i\}}}|D]`}tj |¦«\}}|dvr8tj ||¦«}t j||¬¦«V—ŒaŒjdS)N)z.pyiz.py)Úid)rÚwalkrÚsplitextrrMÚparam)rRÚrootr&ÚfilesÚfnameÚ short_fnameÚextÚfullpaths r Úget_test_casesrdhs™èè€Ýœ' )Ñ,Ô,ð=ð=‰ˆˆa�Øð =ð =ˆEÝ!œw×/Ò/°Ñ6Ô6Ñ ˆK˜Ø�oÐ%Ð%Ýœ7Ÿ<š<¨¨eÑ4Ô4�Ý”l 8° Ð<Ñ<Ô<Ð<Ð<Ð<øð  =ð=ð=r"rcóŽ—t}||vr9d}|d d„||D¦«¦«z }t|¦«‚dS)NzUnexpected mypy output r7c3ó4K—|]}t|¦«V—ŒdSr9)r')r<r>s r r?ztest_success..ys*èè€ÐGÐG°�¨Ñ+Ô+ÐGÐGÐGÐGÐGÐGr")rrÚAssertionError)rÚ output_mypyr#s r Ú test_successriqsY€õ €KØ ˆ{ÐÐØ*ˆØ ˆt�yŠyÐGÐG°[ÀÔ5FÐGÑGÔGÑGÔGÑGˆÝ˜SÑ!Ô!Ð!ðÐr"cób—d}t|¦«5}| ¦«}ddd¦«n #1swxYwYtd„¦«}t}||vsJ‚||D]‰}t |¦« dd¦«d}t jd|¦«}|€td|›�¦«‚t|  d¦«¦«}||xx|›d�z cc<ŒŠt|¦«D]²\} } | dz}|   d ¦«sd | vr||vrŒ(||dz } d | vr[|   d ¦«\} } }|| ¦«}| ¦«}t|| |||¦«Œ’t!jd |›d||›�¦«Œ³dS)NTcó—dS)Nr6©rlr"r úztest_fail..†s€ €r"r7rrz"(?P\d+): (error|note): .+$zUnexpected error line format: Úlinenoú#z E:z# E:ú # E: zUnexpected mypy output at line r4)ÚopenÚ readlinesrrr'rÚrer(Ú ValueErrorÚintÚgroupÚ enumerateÚ startswithÚ partitionÚstripÚ _test_failrMr)rÚ__tracebackhide__ÚfinÚlinesÚerrorsrhÚ error_liner(rnÚiÚlineÚ target_lineÚ expressionr&ÚmarkerÚexpected_errors r Ú test_failr‡}s9€ðÐå ˆd‰Œð �sØ— ’ ‘”ˆð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ˜˜Ñ $Ô $€Få€KØ �;Ð Ð Ð Ð Ø! $Ô'ð ,ð ,ˆ Ý$ ZÑ0Ô0×6Ò6°t¸QÑ?Ô?ÀÔBˆ Ý”Ø 1Ø ñ ô ˆð ˆ=ÝÐJ¸jÐJÐJÑKÔKÐ KÝ�U—[’[ Ñ*Ô*Ñ+Ô+ˆØˆvˆˆŒ˜ZÐ+Ð+Ð+Ñ+ˆˆ‰ˆå˜UÑ#Ô#ðð‰ˆˆ4Ø�Q‘ˆà �OŠO˜CÑ Ô ð à˜TÐ!Ð! f°FÐ&:Ð&:à à˜F Q™JÔ'ˆ Ø �[Ð Ð Ø$/×$9Ò$9¸)Ñ$DÔ$DÑ !ˆJ˜˜6Ø# Fœ^×1Ò1Ñ3Ô3ˆNØ—\’\‘^”^ˆFÝ �t˜Z¨°ÀÑ HÔ HÐ HÐ Hå ŒKØN°&ÐNÐN¸fÀV¼nÐNÐNñ ô ð ð ððs ’3³7º7z9Extra error at line {} Expression: {} Extra error: {!r} zTError mismatch at line {} Expression: {} Expected error: {!r} Observed error: {!r} r„Úerrorr†ú None | strrnrucó¸—|€)tt |||¦«¦«‚||vr*tt ||||¦«¦«‚dSr9)rgÚ _FAIL_MSG1ÚformatÚ _FAIL_MSG2)rr„rˆr†rns r r{r{·sj€ðÐÝ�Z×.Ò.¨v°zÀ5ÑIÔIÑJÔJÐJØ �nÐ $Ð $Ý�Z×.Ò.Ø �J °ñ ô ñ ô ð ð %Ð $r"údict[str, str]có—ddddddddd d d d d dœ }i}i}| ¦«D]V\}}tt|¦«¦«}|jj|jjf}| |d|›�¦«||<ŒW|S)NÚc_ubyteÚc_ushortÚc_uintÚc_ulongÚ c_ulonglongÚc_byteÚc_shortÚc_intÚc_longÚ c_longlongÚc_floatÚc_doubleÚ c_longdouble) ÚubyteÚushortÚuintcÚuintÚ ulonglongÚbyteÚshortÚintcÚint_ÚlonglongÚsingleÚdoubleÚ longdoubleúctypes.)ÚitemsÚgetattrÚnpÚdtypeÚkindÚitemsizeÚ setdefault)ÚdctÚretÚvisitedÚnp_nameÚct_nameÚ np_scalarrs r Ú_construct_ctypes_dictr¸Æsµ€àØØØØ"ØØØØØ ØØØ$ð ð €Cð( €CØ*,€GØŸIšI™KœKðDðDш�Ø(•G�B Ñ(Ô(Ñ*Ô*ˆ ðŒÔ# Y¤_Ô%=Ð>ˆØ×)Ò)¨#Ð/B¸Ð/BÐ/BÑCÔCˆˆG‰ ˆ Ø €Jr"cóü—d„tj¦«D¦«}idd“dd“dd“dd “d d “d d “dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“id$d%“d&d'“d(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5|d6›d7�“d8d5|d9›d7�“d:d5|d;›d7�“dd5|d?›d7�“d@d5|dA›d7�“dBdC|d6›d7�“dDdC|d9›d7�“dEdC|d;›d7�“¥dC|d=›d7�dC|d?›d7�dC|dA›d7�dF|dG›d7�dF|dH›d7�dF|dI›d7�dF|dJ›d7�dK|dH›dL|dH›d7�dK|dI›dL|dI›d7�dK|dJ›dL|dJ›d7�|d?dMt›�dNœ ¥S)ONcót—i|]5\}}| d¦«d| dd¦«“Œ6S)ú.r%Únumpyz numpy._typing)rrNr;s r ú z*_construct_format_dict..çsK€ð ,ð ,ð ,Ù ˆ1ˆað �7Š7�3‰<Œ<˜Ô ˜QŸYšY w°Ñ@Ô@ð ,ð ,ð ,r"Úuint8z*numpy.unsignedinteger[numpy._typing._8Bit]Úuint16z+numpy.unsignedinteger[numpy._typing._16Bit]Úuint32z+numpy.unsignedinteger[numpy._typing._32Bit]Úuint64z+numpy.unsignedinteger[numpy._typing._64Bit]Úuint128z,numpy.unsignedinteger[numpy._typing._128Bit]Úuint256z,numpy.unsignedinteger[numpy._typing._256Bit]Úint8z(numpy.signedinteger[numpy._typing._8Bit]Úint16z)numpy.signedinteger[numpy._typing._16Bit]Úint32z)numpy.signedinteger[numpy._typing._32Bit]Úint64z)numpy.signedinteger[numpy._typing._64Bit]Úint128z*numpy.signedinteger[numpy._typing._128Bit]Úint256z*numpy.signedinteger[numpy._typing._256Bit]Úfloat16z$numpy.floating[numpy._typing._16Bit]Úfloat32z$numpy.floating[numpy._typing._32Bit]Úfloat64z$numpy.floating[numpy._typing._64Bit]Úfloat80z$numpy.floating[numpy._typing._80Bit]Úfloat96z$numpy.floating[numpy._typing._96Bit]Úfloat128z%numpy.floating[numpy._typing._128Bit]Úfloat256z%numpy.floating[numpy._typing._256Bit]Ú complex64zAnumpy.complexfloating[numpy._typing._32Bit, numpy._typing._32Bit]Ú complex128zAnumpy.complexfloating[numpy._typing._64Bit, numpy._typing._64Bit]Ú complex160zAnumpy.complexfloating[numpy._typing._80Bit, numpy._typing._80Bit]Ú complex192zAnumpy.complexfloating[numpy._typing._96Bit, numpy._typing._96Bit]Ú complex256zCnumpy.complexfloating[numpy._typing._128Bit, numpy._typing._128Bit]Ú complex512zCnumpy.complexfloating[numpy._typing._256Bit, numpy._typing._256Bit]r�znumpy.unsignedinteger[Ú _NBitByteú]ržÚ _NBitShortrŸÚ _NBitIntCÚuintpÚ _NBitIntPr Ú_NBitIntr¡Ú _NBitLongLongr¢znumpy.signedinteger[r£r¤znumpy.floating[Ú _NBitHalfÚ _NBitSingleÚ _NBitDoubleÚ_NBitLongDoubleznumpy.complexfloating[z, rª) Úintpr¥r¦Úhalfr§r¨r©ÚcsingleÚcdoubleÚ clongdoublerÝÚc_intp)rr«r )r²s r Ú_construct_format_dictréæs€ð ,ð ,Ý"Ô(Ñ*Ô*ð ,ñ ,ô ,€Cð@ ØÐ=ð@ àÐ?ð@ ð Ð?ð@ ð Ð?ð @ ð ÐAð @ ð ÐAð @ ð Ð:ð@ ð Ð<ð@ ð Ð<ð@ ð Ð<ð@ ð Ð>ð@ ð Ð>ð@ ð Ð9ð@ ð Ð9ð@ ð Ð9ð@ ð Ð9ð!@ ð" Ð9ð#@ ð@ ð$ Ð;ð%@ ð& Ð;ð'@ ð( ðEð)@ ð, ðFð-@ ð0 ðFð1@ ð4 ðFð5@ ð8 ðHð9@ ð< ðHð=@ ðB Ð=¨#¨kÔ*:Ð=Ð=Ð=ðC@ ðD Ð?¨3¨|Ô+<Ð?Ð?Ð?ðE@ ðF Ð=¨#¨kÔ*:Ð=Ð=Ð=ðG@ ðH Ð=¨#¨kÔ*:Ð=Ð=Ð=ðI@ ðJ Ð;¨¨Z¬Ð;Ð;Ð;ðK@ ðL ÐE¨c°/Ô.BÐEÐEÐEðM@ ðN Ð: s¨;Ô'7Ð:Ð:Ð:ðO@ ðP Ð<¨¨LÔ(9Ð<Ð<Ð<ðQ@ ðR Ð: s¨;Ô'7Ð:Ð:Ð:ðS@ ð@ ðT; s¨;Ô'7Ð:Ð:Ð:Ø9 s¨:¤Ð9Ð9Ð9ØB¨3¨Ô+?ÐBÐBÐBà5 # kÔ"2Ð5Ð5Ð5Ø9 C¨ Ô$6Ð9Ð9Ð9Ø9 C¨ Ô$6Ð9Ð9Ð9ØA¨Ð,=Ô(>ÐAÐAÐAðDؘMÔ*ðDðDØ.1°-Ô.@ðDðDðDðDؘMÔ*ðDðDØ.1°-Ô.@ðDðDðDð DØÐ%Ô&ð Dð DØ*-Ð.?Ô*@ð Dð Dð Dð ˜ ”Oð&�GÐ%Ð%ð@ ð@ ð@ ð@r"Ú FORMAT_DICTÚfileúIO[str]ú&tuple[npt.NDArray[np.str_], list[str]]cóš—| ¦« dd¦«}tj | d¦«d¬¦«j\}}}d |¦«}ttj d|¦«¦«}d„|D¦«}|j d i|¤Ž}|| d¦«fS) aExtract and parse all ``" # E: "`` comments from the passed file-like object. All format keys will be substituted for their respective value from `FORMAT_DICT`, *e.g.* ``"{float64}"`` becomes ``"numpy.floating[numpy._typing._64Bit]"``. r5r6r7rp)Úsepz/nz \{(.*?)\}c óN—i|]"}|t |d|›d�¦«“Œ#S)z)rêrD)r<r=s r r½z"_parse_reveals..FsD€ðððà ð �;�?Š?˜1Ð@¸!Ð@Ð@Ð@Ñ AÔ Aðððr"rl) ÚreadrNr­ÚcharryrÚTrÚsetrsÚfindallrŒ) rëÚstringÚexpression_arrayr&Úcomments_arrayÚcommentsÚkey_setÚkwargsÚfmt_strs r Ú_parse_revealsrþ3sÙ€ð�YŠY‰[Œ[× Ò   bÑ )Ô )€Fõ+-¬'×*;Ò*;Ø� Š �TÑÔ  ð+<ñ+ô+äñ(Ð�a˜ð�yŠy˜Ñ(Ô(€Hõ•"”*˜\¨8Ñ4Ô4Ñ5Ô5€Gððà ðñô€FðˆhŒoÐ'Ð' Ð'Ð'€Gà ˜WŸ]š]¨4Ñ0Ô0Ð 0Ð0r"c ó¾—d}t|¦«5}t|¦«\}}ddd¦«n #1swxYwYt}||vsJ‚||D]‹}t|¦«}t jd|¦«}|€t d|›�¦«‚t| d¦«¦«dz }d|vsJ‚||} ||} t|| | |d|z¦«ŒŒdS)z[Validate that mypy correctly infers the return-types of the expressions in `path`. TNz(?P\d+): note: .+$úUnexpected reveal line format: rnrzRevealed type is) rqrþrr'rsr(rtrurvÚ _test_reveal) rr|r}røÚ reveal_listrhr€r(rnr…r„s r Ú test_revealrOsW€ðÐå ˆd‰Œð<�sÝ(6°sÑ(;Ô(;Ñ%И+ð<ð<ð<ñ<ô<ð<ð<ð<ð<ð<ð<øøøð<ð<ð<ð<õ€KØ �;Ð Ð Ð Ð Ø! $Ô'ð Gð Gˆ Ý$ ZÑ0Ô0ˆ Ý”Ø )Ø ñ ô ˆð ˆ=ÝÐK¸zÐKÐKÑLÔLÐ LÝ�U—[’[ Ñ*Ô*Ñ+Ô+¨aÑ/ˆØ! ZÐ/Ð/Ð/Ð/à˜VÔ$ˆØ% fÔ-ˆ Ý�T˜: v¨z¸1¸v¹:ÑFÔFÐFÐFð Gð Gs ’1±5¸5zWReveal mismatch at line {} Expression: {} Expected reveal: {!r} Observed reveal: {!r} z (\w+\.)+(\w+)Úexpected_revealcóâ—t t|¦«}t t|¦«}||vr*tt ||||¦«¦«‚dS)z2Error-reporting helper function for `test_reveal`.N)Ú_STRIP_PATTERNÚsubr,rgÚ _REVEAL_MSGrŒ)rr„rrrnÚstripped_revealÚstripped_expected_reveals r rrvss€õ%×(Ò(­°VÑ<Ô<€OÝ-×1Ò1µ*¸oÑNÔNÐØÐ6Ð6Ð6ÝÝ × Ò ˜vØ)Ø7Ø.ñ 0ô 0ñ ô ð ð7Ð6r"cót—tj |¦«\}}| tj¦«dd…\}}t j |›d|›�|¦«}|€J‚|j€J‚t j  |¦«}|j  |¦«dS)z9Validate that the code in `path` properly during runtime.éþÿÿÿNr») rrr\rrïÚ importlibÚutilÚspec_from_file_locationÚloaderÚmodule_from_specÚ exec_module)rÚpath_without_extensionr&ÚdirnameÚfilenameÚspecÚ test_modules r Útest_code_runsr‰s·€õ !#¤× 0Ò 0°Ñ 6Ô 6ÑИAØŸ š ¥2¤6Ñ*Ô*¨2¨3¨3Ô/Ñ€GˆXå Œ>× 1Ò 1Ø ÐÐ�XÐРñ ô €Dð Ð Ð Ð Ø Œ;Ð "Ð "Ð "å”.×1Ò1°$Ñ7Ô7€KØ„K×Ò˜KÑ(Ô(Ð(Ð(Ð(r"rÂrÃrÈrÉrÍrÎrÏrÐrÓrÔrÕrÖ) ééééé é é é éééécó¼—tj td¦«}t}||vsJ‚t |¦«5}| ¦«}ddd¦«n #1swxYwY||D]å}| d¦«�^}}}}t|¦«}t|¦«} || dz   d¦«} |  ¦«}|dvsJ‚t| tvrD|dkrtd| ›�¦«‚tt| } t!|| | || ¦«ŒÊ|dkrd} t#|| | || ¦«ŒædS) Nzextended_precision.pyirrr7>ÚnoterˆrˆrzModule has no attribute)rrrrJrrqrrrr'ruÚrstriprzÚLINENO_MAPPINGr rtrêrr{) rrhÚfÚexpression_listÚ_msgr&Ú_linenoÚmsg_typr#rnr„r…s r Útest_extended_precisionr.«s¬€õ Œ7�<Š<�Ð":Ñ ;Ô ;€DÝ€KØ �;Ð Ð Ð Ð å ˆd‰Œð(�qØŸ+š+™-œ-ˆð(ð(ð(ñ(ô(ð(ð(ð(ð(ð(ð(øøøð(ð(ð(ð(ð˜DÔ!ðBðBˆØ$(§J¢J¨s¡O¤OÑ!ˆˆG�W˜cå˜cÑ"Ô"ˆÝ�W‘”ˆØ$ V¨a¡ZÔ0×7Ò7¸Ñ=Ô=ˆ Ø—-’-‘/”/ˆØÐ+Ð+Ð+Ð+Ð+å ˜&Ô !Õ%=Ð =Ð =ؘ'Ò!Ð!Ý Ð!KÀ6Ð!KÐ!KÑLÔLÐLå$¥^°FÔ%;Ô<�ݘT :¨v°s¸FÑCÔCÐCÐCà˜'Ò!Ð!Ø2�ݘ4 ¨V°S¸&ÑAÔAÐAøð%BðBsÁA#Á#A'Á*A')rrrr)r#rrr)r(r)rr)rr1)rRrrrX)rrrr1) rrr„rrˆrr†r‰rnrurr1)rrŽ)rërìrrí) rrr„rrrrrrnrurr1)GÚ __future__rÚimportlib.utilr rOrrsrEÚ collectionsrÚcollections.abcrÚtypingrrrMr¼r­Ú numpy.typingÚnptÚnumpy.typing.mypy_pluginrr r Úmypyr ÚNO_MYPYÚ ImportErrorÚ_pytest.mark.structuresr rrrÚ__file__ÚDATA_DIRrGrIrHrJrLrArÚ__annotations__r!r'r,ÚmarkÚslowÚskipifÚfixturerWrdÚ parametrizerir‡r‹r�r{r¸rérêrQrþrrÚcompilerrrr(r.rlr"r úrDsÅðØ"Ð"Ð"Ð"Ð"Ð"Ð"àÐÐÐØÐÐÐØ € € € Ø € € € Ø € € € Ø#Ð#Ð#Ð#Ð#Ð#Ø$Ð$Ð$Ð$Ð$Ð$Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$à € € € ØÐÐÐØÐÐÐÐÐððððððððððð ØÐÐÐÐÐð€G€GøððððØ€G€G€Gðøøøð ð5ð5Ð4Ð4Ð4Ð4Ð4à Œ7�<Š<˜œŸš¨Ñ1Ô1°6Ñ :Ô :€Ø Œ7�<Š<˜ &Ñ )Ô )€Ø Œ7�<Š<˜ &Ñ )Ô )€Ø ŒW�\Š\˜( HÑ -Ô -€ Ø Œ7�<Š<˜ &Ñ )Ô )€Ø Œ7�<Š<˜ *Ñ -Ô -€Ø ŒG�LŠL˜ =Ñ 1Ô 1€ ð%'€ Ð&Ð&Ð&Ñ&ð6ð6ð6ð6ð"ð"ð"ð"ð ðððð „ÔØ„×Ò�GÐ$;ÐÑ<Ô<Ø€„�h¨Ð-Ñ-Ô-ð Cð Cð Cñ.Ô-ñ=Ô<ñÔð CðF=ð=ð=ð=ð„ÔØ„×Ò�GÐ$;ÐÑ<Ô<Ø„×Ò˜  °Ñ!9Ô!9Ñ:Ô:ð"ð"ð"ñ;Ô:ñ=Ô<ñÔð"ð„ÔØ„×Ò�GÐ$;ÐÑ<Ô<Ø„×Ò˜  °Ñ!9Ô!9Ñ:Ô:ð&ð&ð&ñ;Ô:ñ=Ô<ñÔð&ðR€ ð € ð  ð  ð  ð  ððððð@DðDðDðDðR5Ð4Ñ6Ô6€ Ð6Ð6Ð6Ñ6Ø ×ÒÐ)Ð)Ñ+Ô+Ñ,Ô,Ð,ð1ð1ð1ð1ð8„ÔØ„×Ò�GÐ$;ÐÑ<Ô<Ø„×Ò˜  ° Ñ!;Ô!;Ñ<Ô<ðGðGðGñ=Ô<ñ=Ô<ñÔðGð6€ ð �”Ð,Ñ-Ô-€ð ð ð ð ð&„ÔØ„×Ò�GÐ$;ÐÑ<Ô<Ø„×Ò˜  °Ñ!9Ô!9Ñ:Ô:ð )ð )ð )ñ;Ô:ñ=Ô<ñÔð )ð ØØØØØØØØØØØð ð €ð „ÔØ„×Ò�GÐ$;ÐÑ<Ô<ðBðBðBñ=Ô<ñÔðBðBðBsÁ AÁAÁA