§
    ù²Åj|=  ã                   óø  — d dl mZ d dlmZmZmZmZmZ d dlZd dlm	Z	m
Z
 d dlmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZmZ ddlmZ ddlmZmZ g d¢Z  G d„ de	j!        ¦  «        Z" G d„ de	j#        ¦  «        Z$ G d„ d¦  «        Z% G d„ de	j#        ¦  «        Z&dee%         de'dee         de(dede&fd„Z)ded d!d"œZ* G d#„ d$e¦  «        Z+ G d%„ d&e¦  «        Z, G d'„ d(e¦  «        Z- G d)„ d*e¦  «        Z. e¦   «          ed+e+j/        f¬,¦  «        dd-d.œdee+         de(dede&fd/„¦   «         ¦   «         Z0 e¦   «          ed+e,j/        f¬,¦  «        dd-d.œdee,         de(dede&fd0„¦   «         ¦   «         Z1 e¦   «          ed+e-j/        f¬,¦  «        dd-d.œdee-         de(dede&fd1„¦   «         ¦   «         Z2 e¦   «          ed+e.j/        f¬,¦  «        dd-d.œdee.         de(dede&fd2„¦   «         ¦   «         Z3dS )3é    )Úpartial)ÚAnyÚCallableÚListÚOptionalÚSequenceN)ÚnnÚTensor)Ú
functionalé   )ÚConv2dNormActivationÚPermute)ÚStochasticDepth)ÚImageClassification)Ú_log_api_usage_onceé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_ovewrite_named_paramÚhandle_legacy_interface)	ÚConvNeXtÚConvNeXt_Tiny_WeightsÚConvNeXt_Small_WeightsÚConvNeXt_Base_WeightsÚConvNeXt_Large_WeightsÚconvnext_tinyÚconvnext_smallÚconvnext_baseÚconvnext_largec                   ó   — e Zd Zdedefd„ZdS )ÚLayerNorm2dÚxÚreturnc                 ó¾   — |                      dddd¦  «        }t          j        || j        | j        | j        | j        ¦  «        }|                      dddd¦  «        }|S )Nr   r   é   r   )ÚpermuteÚFÚ
layer_normÚnormalized_shapeÚweightÚbiasÚeps©Úselfr$   s     úLC:\Projects\Historical\venv\Lib\site-packages\torchvision/models/convnext.pyÚforwardzLayerNorm2d.forward   sU   € Ø�IŠI�a˜˜A˜qÑ!Ô!ˆÝŒL˜˜DÔ1°4´;ÀÄ	È4Ì8ÑTÔTˆØ�IŠI�a˜˜A˜qÑ!Ô!ˆØˆó    N)Ú__name__Ú
__module__Ú__qualname__r
   r2   © r3   r1   r#   r#      s6   € € € € € ð˜ð  Fð ð ð ð ð ð r3   r#   c            
       ój   ‡ — e Zd Z	 d
dededeedej        f                  ddfˆ fd„Zde	de	fd	„Z
ˆ xZS )ÚCNBlockNÚlayer_scaleÚstochastic_depth_probÚ
norm_layer.r%   c                 óJ  •— t          ¦   «                              ¦   «          |€t          t          j        d¬¦  «        }t          j        t          j        ||dd|d¬¦  «        t          g d¢¦  «         ||¦  «        t          j        |d|z  d¬	¦  «        t          j	        ¦   «         t          j        d|z  |d¬	¦  «        t          g d
¢¦  «        ¦  «        | _
        t          j        t          j        |dd¦  «        |z  ¦  «        | _        t          |d¦  «        | _        d S )Nç�íµ ÷Æ°>©r.   é   r'   T)Úkernel_sizeÚpaddingÚgroupsr-   )r   r   r'   r   é   )Úin_featuresÚout_featuresr-   )r   r'   r   r   r   Úrow)ÚsuperÚ__init__r   r	   Ú	LayerNormÚ
SequentialÚConv2dr   ÚLinearÚGELUÚblockÚ	ParameterÚtorchÚonesr:   r   Ústochastic_depth)r0   Údimr:   r;   r<   Ú	__class__s        €r1   rI   zCNBlock.__init__'   s  ø€ õ 	‰Œ×ÒÑÔÐØÐÝ ¥¤°4Ð8Ñ8Ô8ˆJå”]ÝŒI�c˜3¨A°qÀÈ4ÐPÑPÔPÝ�L�L�LÑ!Ô!ØˆJ�s‰OŒOÝŒI #°A¸±GÀ$ÐGÑGÔGÝŒG‰IŒIÝŒI ! c¡'¸À$ÐGÑGÔGÝ�L�L�LÑ!Ô!ñ
ô 
ˆŒ
õ œ<­¬
°3¸¸1Ñ(=Ô(=ÀÑ(KÑLÔLˆÔÝ /Ð0EÀuÑ MÔ MˆÔÐÐr3   Úinputc                 ót   — | j         |                      |¦  «        z  }|                      |¦  «        }||z  }|S ©N)r:   rO   rS   )r0   rV   Úresults      r1   r2   zCNBlock.forward>   s<   € ØÔ! D§J¢J¨uÑ$5Ô$5Ñ5ˆØ×&Ò& vÑ.Ô.ˆØ�%‰ˆØˆr3   rX   )r4   r5   r6   Úfloatr   r   r	   ÚModulerI   r
   r2   Ú__classcell__©rU   s   @r1   r9   r9   &   s¬   ø€ € € € € ð :>ðNð Nð ðNð  %ð	Nð
 ˜X c¨2¬9 nÔ5Ô6ðNð 
ðNð Nð Nð Nð Nð Nð.˜Vð ¨ð ð ð ð ð ð ð ð r3   r9   c                   ó>   — e Zd Zdedee         deddfd„Zdefd„ZdS )ÚCNBlockConfigÚinput_channelsÚout_channelsÚ
num_layersr%   Nc                 ó0   — || _         || _        || _        d S rX   )r`   ra   rb   )r0   r`   ra   rb   s       r1   rI   zCNBlockConfig.__init__G   s   € ð -ˆÔØ(ˆÔØ$ˆŒˆˆr3   c                 ól   — | j         j        dz   }|dz  }|dz  }|dz  }|dz  } |j        di | j        ¤ŽS )Nú(zinput_channels={input_channels}z, out_channels={out_channels}z, num_layers={num_layers}ú)r7   )rU   r4   ÚformatÚ__dict__)r0   Úss     r1   Ú__repr__zCNBlockConfig.__repr__Q   sU   € ØŒNÔ# cÑ)ˆØ	Ð.Ñ.ˆØ	Ð,Ñ,ˆØ	Ð(Ñ(ˆØ	ˆS‰ˆØˆqŒxÐ(Ð(˜$œ-Ð(Ð(Ð(r3   )r4   r5   r6   Úintr   rI   Ústrrj   r7   r3   r1   r_   r_   E   sm   € € € € € ð%àð%ð ˜s”mð%ð ð	%ð
 
ð%ð %ð %ð %ð)˜#ð )ð )ð )ð )ð )ð )r3   r_   c                   óÄ   ‡ — e Zd Z	 	 	 	 	 ddee         dededed	eed
e	j
        f                  deed
e	j
        f                  deddfˆ fd„Zdedefd„Zdedefd„Zˆ xZS )r   ç        r>   éè  NÚblock_settingr;   r:   Únum_classesrO   .r<   Úkwargsr%   c                 óÎ  •— t          ¦   «                              ¦   «          t          | ¦  «         |st          d¦  «        ‚t	          |t
          ¦  «        rt          d„ |D ¦   «         ¦  «        st          d¦  «        ‚|€t          }|€t          t          d¬¦  «        }g }|d         j        }	|                     t          d|	ddd|d d	¬
¦  «        ¦  «         t          d„ |D ¦   «         ¦  «        }
d}|D ]Î}g }t          |j        ¦  «        D ]7}||z  |
dz
  z  }|                      ||j        ||¦  «        ¦  «         |dz  }Œ8|                     t#          j        |Ž ¦  «         |j        �V|                     t#          j         ||j        ¦  «        t#          j        |j        |j        dd¬¦  «        ¦  «        ¦  «         ŒÏt#          j        |Ž | _        t#          j        d¦  «        | _        |d         }|j        �|j        n|j        }t#          j         ||¦  «        t#          j        d¦  «        t#          j        ||¦  «        ¦  «        | _        |                      ¦   «         D ]y}t	          |t"          j        t"          j        f¦  «        rQt"          j                             |j        d¬¦  «         |j        �$t"          j                              |j        ¦  «         Œzd S )Nz%The block_setting should not be emptyc                 ó8   — g | ]}t          |t          ¦  «        ‘ŒS r7   )Ú
isinstancer_   )Ú.0ri   s     r1   ú
<listcomp>z%ConvNeXt.__init__.<locals>.<listcomp>j   s#   € Ð>sÐ>sÐ>sÐ`a½zÈ!Í]Ñ?[Ô?[Ð>sÐ>sÐ>sr3   z/The block_setting should be List[CNBlockConfig]r>   r?   r   r'   rD   T)rA   ÚstriderB   r<   Úactivation_layerr-   c              3   ó$   K  — | ]}|j         V — Œd S rX   )rb   )rv   Úcnfs     r1   ú	<genexpr>z$ConvNeXt.__init__.<locals>.<genexpr>„   s$   è è € Ð IÐ I°C ¤Ð IÐ IÐ IÐ IÐ IÐ Ir3   g      ð?r   r   )rA   rx   éÿÿÿÿg{®Gáz”?)Ústd)!rH   rI   r   Ú
ValueErrorru   r   ÚallÚ	TypeErrorr9   r   r#   r`   Úappendr   ÚsumÚrangerb   r	   rK   ra   rL   ÚfeaturesÚAdaptiveAvgPool2dÚavgpoolÚFlattenrM   Ú
classifierÚmodulesÚinitÚtrunc_normal_r,   r-   Úzeros_)r0   rp   r;   r:   rq   rO   r<   rr   ÚlayersÚfirstconv_output_channelsÚtotal_stage_blocksÚstage_block_idr{   ÚstageÚ_Úsd_probÚ	lastblockÚlastconv_output_channelsÚmrU   s                      €r1   rI   zConvNeXt.__init__[   s  ø€ õ 	‰Œ×ÒÑÔÐÝ˜DÑ!Ô!Ð!àð 	OÝÐDÑEÔEÐEÝ˜]­HÑ5Ô5ð 	O½#Ð>sÐ>sÐerÐ>sÑ>sÔ>sÑ:tÔ:tð 	OÝÐMÑNÔNÐNàˆ=ÝˆEàÐÝ ¥°$Ð7Ñ7Ô7ˆJà"$ˆð %2°!Ô$4Ô$CÐ!Ø�ŠÝ ØØ)ØØØØ%Ø!%Øð	ñ 	ô 	ñ	
ô 	
ð 	
õ !Ð IÐ I¸=Ð IÑ IÔ IÑIÔIÐØˆØ ð 	ð 	ˆCà%'ˆEÝ˜3œ>Ñ*Ô*ð $ð $�à/°.Ñ@ÐDVÐY\ÑD\Ñ]�Ø—’˜U˜U 3Ô#5°{ÀGÑLÔLÑMÔMÐMØ !Ñ#��Ø�MŠM�"œ-¨Ð/Ñ0Ô0Ð0ØÔÐ+à—’Ý”MØ"˜
 3Ô#5Ñ6Ô6Ýœ	 #Ô"4°cÔ6FÐTUÐ^_Ð`Ñ`Ô`ñô ñô ð øõ œ vÐ.ˆŒÝÔ+¨AÑ.Ô.ˆŒà! "Ô%ˆ	à&/Ô&<Ð&HˆIÔ"Ð"ÈiÔNfð 	!õ œ-ØˆJÐ/Ñ0Ô0µ"´*¸Q±-´-ÅÄÐKcÐepÑAqÔAqñ
ô 
ˆŒð —’‘”ð 	+ð 	+ˆAÝ˜!�bœi­¬Ð3Ñ4Ô4ð +Ý”×%Ò% a¤h°DÐ%Ñ9Ô9Ð9Ø”6Ð%Ý”G—N’N 1¤6Ñ*Ô*Ð*øð		+ð 	+r3   r$   c                 ó„   — |                       |¦  «        }|                      |¦  «        }|                      |¦  «        }|S rX   )r…   r‡   r‰   r/   s     r1   Ú_forward_implzConvNeXt._forward_impl©   s8   € Ø�MŠM˜!ÑÔˆØ�LŠL˜‰OŒOˆØ�OŠO˜AÑÔˆØˆr3   c                 ó,   — |                       |¦  «        S rX   )r™   r/   s     r1   r2   zConvNeXt.forward¯   s   € Ø×!Ò! !Ñ$Ô$Ð$r3   )rn   r>   ro   NN)r4   r5   r6   r   r_   rZ   rk   r   r   r	   r[   r   rI   r
   r™   r2   r\   r]   s   @r1   r   r   Z   s  ø€ € € € € ð (+Ø!ØØ48Ø9=ðL+ð L+à˜MÔ*ðL+ð  %ðL+ð ð	L+ð
 ðL+ð ˜  b¤i Ô0Ô1ðL+ð ˜X c¨2¬9 nÔ5Ô6ðL+ð ðL+ð 
ðL+ð L+ð L+ð L+ð L+ð L+ð\˜vð ¨&ð ð ð ð ð%˜ð % Fð %ð %ð %ð %ð %ð %ð %ð %r3   r   rp   r;   ÚweightsÚprogressrr   r%   c                 óÒ   — |�)t          |dt          |j        d         ¦  «        ¦  «         t          | fd|i|¤Ž}|�*|                     |                     |d¬¦  «        ¦  «         |S )Nrq   Ú
categoriesr;   T)rœ   Ú
check_hash)r   ÚlenÚmetar   Úload_state_dictÚget_state_dict)rp   r;   r›   rœ   rr   Úmodels         r1   Ú	_convnextr¥   ³   sz   € ð ÐÝ˜f mµS¸¼ÀlÔ9SÑ5TÔ5TÑUÔUÐUå�]ÐZÐZÐ:OÐZÐSYÐZÐZ€EàÐØ×Ò˜g×4Ò4¸hÐSWÐ4ÑXÔXÑYÔYÐYà€Lr3   )é    r¦   zNhttps://github.com/pytorch/vision/tree/main/references/classification#convnexta  
        These weights improve upon the results of the original paper by using a modified version of TorchVision's
        `new training recipe
        <https://pytorch.org/blog/how-to-train-state-of-the-art-models-using-torchvision-latest-primitives/>`_.
    )Úmin_sizerž   ÚrecipeÚ_docsc            
       ób   — e Zd Z ed eedd¬¦  «        i e¥ddddd	œid
ddœ¥¬¦  «        ZeZdS )r   z>https://download.pytorch.org/models/convnext_tiny-983f1562.pthéà   éì   ©Ú	crop_sizeÚresize_sizeiH<´úImageNet-1Kgáz®G¡T@gÓMbX	X@©zacc@1zacc@5gmçû©ñÒ@gV-²�G[@©Ú
num_paramsÚ_metricsÚ_opsÚ
_file_size©ÚurlÚ
transformsr¡   N©	r4   r5   r6   r   r   r   Ú_COMMON_METAÚIMAGENET1K_V1ÚDEFAULTr7   r3   r1   r   r   Ñ   s‚   € € € € € Ø�GØLØ�7Ð.¸#È3ÐOÑOÔOð
Øð
à"àØ#Ø#ð ð  ðð Ø!ð
ð 
ð 
ðñ ô €Mð  €G€G€Gr3   r   c            
       ób   — e Zd Z ed eedd¬¦  «        i e¥ddddd	œid
ddœ¥¬¦  «        ZeZdS )r   z?https://download.pytorch.org/models/convnext_small-0c510722.pthr«   éæ   r­   iHZþr°   g�•C‹lçT@gš™™™™)X@r±   g‘í|?5^!@gÑ"Ûù~ög@r²   r·   Nrº   r7   r3   r1   r   r   å   s‚   € € € € € Ø�GØMØ�7Ð.¸#È3ÐOÑOÔOð
Øð
à"àØ#Ø#ð ð  ðð Ø!ð
ð 
ð 
ðñ ô €Mð  €G€G€Gr3   r   c            
       ób   — e Zd Z ed eedd¬¦  «        i e¥ddddd	œid
ddœ¥¬¦  «        ZeZdS )r   z>https://download.pytorch.org/models/convnext_base-6075fbad.pthr«   éè   r­   ihÌGr°   g‡ÙÎ÷U@gHáz®7X@r±   gö(\�Âµ.@g/Ý$!u@r²   r·   Nrº   r7   r3   r1   r   r   ù   s‚   € € € € € Ø�GØLØ�7Ð.¸#È3ÐOÑOÔOð
Øð
à"àØ#Ø#ð ð  ðð Ø!ð
ð 
ð 
ðñ ô €Mð  €G€G€Gr3   r   c            
       ób   — e Zd Z ed eedd¬¦  «        i e¥ddddd	œid
ddœ¥¬¦  «        ZeZdS )r   z?https://download.pytorch.org/models/convnext_large-ea097f82.pthr«   rÁ   r­   i¨°Ér°   gÑ"Ûù~U@gX9´Èv>X@r±   g‘í|?5.A@gžï§ÆK”‡@r²   r·   Nrº   r7   r3   r1   r   r     s‚   € € € € € Ø�GØMØ�7Ð.¸#È3ÐOÑOÔOð
Øð
à#àØ#Ø#ð ð  ðð Ø!ð
ð 
ð 
ðñ ô €Mð  €G€G€Gr3   r   Ú
pretrained)r›   T)r›   rœ   c                 ó  — t                                | ¦  «        } t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        g}|                     dd	¦  «        }t	          ||| |fi |¤ŽS )
a�  ConvNeXt Tiny model architecture from the
    `A ConvNet for the 2020s <https://arxiv.org/abs/2201.03545>`_ paper.

    Args:
        weights (:class:`~torchvision.models.convnext.ConvNeXt_Tiny_Weights`, optional): The pretrained
            weights to use. See :class:`~torchvision.models.convnext.ConvNeXt_Tiny_Weights`
            below for more details and possible values. By default, no pre-trained weights are used.
        progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.convnext.ConvNext``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/convnext.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.ConvNeXt_Tiny_Weights
        :members:
    é`   éÀ   r'   é€  é   é	   Nr;   gš™™™™™¹?)r   Úverifyr_   Úpopr¥   ©r›   rœ   rr   rp   r;   s        r1   r   r   !  s‘   € õ& $×*Ò*¨7Ñ3Ô3€Gõ 	�b˜#˜qÑ!Ô!Ý�c˜3 Ñ"Ô"Ý�c˜3 Ñ"Ô"Ý�c˜4 Ñ#Ô#ð	€Mð #ŸJšJÐ'>ÀÑDÔDÐÝ�]Ð$9¸7ÀHÐWÐWÐPVÐWÐWÐWr3   c                 ó  — t                                | ¦  «        } t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        g}|                     dd	¦  «        }t	          ||| |fi |¤ŽS )
a…  ConvNeXt Small model architecture from the
    `A ConvNet for the 2020s <https://arxiv.org/abs/2201.03545>`_ paper.

    Args:
        weights (:class:`~torchvision.models.convnext.ConvNeXt_Small_Weights`, optional): The pretrained
            weights to use. See :class:`~torchvision.models.convnext.ConvNeXt_Small_Weights`
            below for more details and possible values. By default, no pre-trained weights are used.
        progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.convnext.ConvNext``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/convnext.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.ConvNeXt_Small_Weights
        :members:
    rÅ   rÆ   r'   rÇ   rÈ   é   Nr;   gš™™™™™Ù?)r   rÊ   r_   rË   r¥   rÌ   s        r1   r   r   @  s‘   € õ* %×+Ò+¨GÑ4Ô4€Gõ 	�b˜#˜qÑ!Ô!Ý�c˜3 Ñ"Ô"Ý�c˜3 Ñ#Ô#Ý�c˜4 Ñ#Ô#ð	€Mð #ŸJšJÐ'>ÀÑDÔDÐÝ�]Ð$9¸7ÀHÐWÐWÐPVÐWÐWÐWr3   c                 ó  — t                                | ¦  «        } t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        g}|                     dd	¦  «        }t	          ||| |fi |¤ŽS )
a�  ConvNeXt Base model architecture from the
    `A ConvNet for the 2020s <https://arxiv.org/abs/2201.03545>`_ paper.

    Args:
        weights (:class:`~torchvision.models.convnext.ConvNeXt_Base_Weights`, optional): The pretrained
            weights to use. See :class:`~torchvision.models.convnext.ConvNeXt_Base_Weights`
            below for more details and possible values. By default, no pre-trained weights are used.
        progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.convnext.ConvNext``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/convnext.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.ConvNeXt_Base_Weights
        :members:
    é€   é   r'   i   i   rÎ   Nr;   ç      à?)r   rÊ   r_   rË   r¥   rÌ   s        r1   r    r    a  s‘   € õ& $×*Ò*¨7Ñ3Ô3€Gõ 	�c˜3 Ñ"Ô"Ý�c˜3 Ñ"Ô"Ý�c˜4 Ñ$Ô$Ý�d˜D !Ñ$Ô$ð	€Mð #ŸJšJÐ'>ÀÑDÔDÐÝ�]Ð$9¸7ÀHÐWÐWÐPVÐWÐWÐWr3   c                 ó  — t                                | ¦  «        } t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        t          ddd¦  «        g}|                     dd	¦  «        }t	          ||| |fi |¤ŽS )
a…  ConvNeXt Large model architecture from the
    `A ConvNet for the 2020s <https://arxiv.org/abs/2201.03545>`_ paper.

    Args:
        weights (:class:`~torchvision.models.convnext.ConvNeXt_Large_Weights`, optional): The pretrained
            weights to use. See :class:`~torchvision.models.convnext.ConvNeXt_Large_Weights`
            below for more details and possible values. By default, no pre-trained weights are used.
        progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.convnext.ConvNext``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/convnext.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.ConvNeXt_Large_Weights
        :members:
    rÆ   rÇ   r'   rÈ   i   rÎ   Nr;   rÒ   )r   rÊ   r_   rË   r¥   rÌ   s        r1   r!   r!   €  s‘   € õ* %×+Ò+¨GÑ4Ô4€Gõ 	�c˜3 Ñ"Ô"Ý�c˜3 Ñ"Ô"Ý�c˜4 Ñ$Ô$Ý�d˜D !Ñ$Ô$ð	€Mð #ŸJšJÐ'>ÀÑDÔDÐÝ�]Ð$9¸7ÀHÐWÐWÐPVÐWÐWÐWr3   )4Ú	functoolsr   Útypingr   r   r   r   r   rQ   r	   r
   Útorch.nnr   r)   Úops.miscr   r   Úops.stochastic_depthr   Útransforms._presetsr   Úutilsr   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   Ú__all__rJ   r#   r[   r9   r_   r   rZ   Úboolr¥   r»   r   r   r   r   r¼   r   r   r    r!   r7   r3   r1   ú<module>rà      s"  ðØ Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bð
ð 
ð 
€ðð ð ð ð �"”,ñ ô ð ðð ð ð ð ˆbŒiñ ô ð ð>)ð )ð )ð )ð )ñ )ô )ð )ð*V%ð V%ð V%ð V%ð V%ˆrŒyñ V%ô V%ð V%ðrØ˜Ô&ðà ðð �kÔ"ðð ð	ð
 ðð ðð ð ð ð& Ø&Ø^ðð		ð 	€ðð ð ð ð ˜Kñ ô ð ð(ð ð ð ð ˜[ñ ô ð ð(ð ð ð ð ˜Kñ ô ð ð(ð ð ð ð ˜[ñ ô ð ð( €ÑÔØÐ ,Ð0EÔ0SÐ!TÐUÑUÔUØ@DÐW[ð Xð Xð X˜hÐ'<Ô=ð XÐPTð XÐgjð XÐowð Xð Xð Xñ VÔUñ ÔðXð: €ÑÔØÐ ,Ð0FÔ0TÐ!UÐVÑVÔVà37È$ðXð Xð XØÐ/Ô0ðXØCGðXØZ]ðXàðXð Xð Xñ WÔVñ ÔðXð> €ÑÔØÐ ,Ð0EÔ0SÐ!TÐUÑUÔUØ@DÐW[ð Xð Xð X˜hÐ'<Ô=ð XÐPTð XÐgjð XÐowð Xð Xð Xñ VÔUñ ÔðXð: €ÑÔØÐ ,Ð0FÔ0TÐ!UÐVÑVÔVà37È$ðXð Xð XØÐ/Ô0ðXØCGðXØZ]ðXàðXð Xð Xñ WÔVñ ÔðXð Xð Xr3   