§
    ù²Åj-<  ã                   óœ  — d dl mZ d dlmZmZmZ d dl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mZ ddlmZmZmZ ddlmZmZmZmZm Z  ddlm!Z! ddl"m#Z# g d¢Z$ G d„ de!¦  «        Z% G d„ dej&        ¦  «        Z' G d„ dej&        ¦  «        Z( G d„ dej&        ¦  «        Z) G d„ dej*        ¦  «        Z+dede,dee-         de%fd „Z.ed!d"d#œZ/ G d$„ d%e¦  «        Z0 G d&„ d'e¦  «        Z1 G d(„ d)e¦  «        Z2dede,dee-         de%fd*„Z3 e¦   «          ed+e0j4        fd,e j5        f¬-¦  «        dd.dde j5        d/œd0ee0         d1e-dee,         d2ee-         d3ee          d4ede%fd5„¦   «         ¦   «         Z6 e¦   «          ed+e1j4        fd,ej5        f¬-¦  «        dd.ddej5        d/œd0ee1         d1e-dee,         d2ee-         d3ee         d4ede%fd6„¦   «         ¦   «         Z7 e¦   «          ed+e2j4        fd,ej5        f¬-¦  «        dd.ddej5        d/œd0ee2         d1e-dee,         d2ee-         d3ee         d4ede%fd7„¦   «         ¦   «         Z8dS )8é    )Úpartial)ÚAnyÚOptionalÚSequenceN)Únn)Ú
functionalé   )ÚSemanticSegmentationé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_VOC_CATEGORIES)Ú_ovewrite_value_paramÚhandle_legacy_interfaceÚIntermediateLayerGetter)Úmobilenet_v3_largeÚMobileNet_V3_Large_WeightsÚMobileNetV3)ÚResNetÚ	resnet101ÚResNet101_WeightsÚresnet50ÚResNet50_Weightsé   )Ú_SimpleSegmentationModel)ÚFCNHead)Ú	DeepLabV3ÚDeepLabV3_ResNet50_WeightsÚDeepLabV3_ResNet101_WeightsÚ$DeepLabV3_MobileNet_V3_Large_WeightsÚdeeplabv3_mobilenet_v3_largeÚdeeplabv3_resnet50Údeeplabv3_resnet101c                   ó   — e Zd ZdZdS )r   a™  
    Implements DeepLabV3 model from
    `"Rethinking Atrous Convolution for Semantic Image Segmentation"
    <https://arxiv.org/abs/1706.05587>`_.

    Args:
        backbone (nn.Module): the network used to compute the features for the model.
            The backbone should return an OrderedDict[Tensor], with the key being
            "out" for the last feature map used, and "aux" if an auxiliary classifier
            is used.
        classifier (nn.Module): module that takes the "out" element returned from
            the backbone and returns a dense prediction.
        aux_classifier (nn.Module, optional): auxiliary classifier used during training
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úZC:\Projects\Historical\venv\Lib\site-packages\torchvision/models/segmentation/deeplabv3.pyr   r      s   € € € € € ðð ð 	€Dr+   r   c            	       ó>   ‡ — e Zd Zddededee         ddfˆ fd„Zˆ xZS )	ÚDeepLabHead©é   é   é$   Úin_channelsÚnum_classesÚatrous_ratesÚreturnNc                 ó
  •— t          ¦   «                              t          ||¦  «        t          j        ddddd¬¦  «        t          j        d¦  «        t          j        ¦   «         t          j        d|d¦  «        ¦  «         d S )Né   r	   r   F)ÚpaddingÚbias)ÚsuperÚ__init__ÚASPPr   ÚConv2dÚBatchNorm2dÚReLU)Úselfr3   r4   r5   Ú	__class__s       €r,   r<   zDeepLabHead.__init__1   su   ø€ Ý‰Œ×ÒÝ�˜lÑ+Ô+ÝŒI�c˜3 ¨1°5Ð9Ñ9Ô9ÝŒN˜3ÑÔÝŒG‰IŒIÝŒI�c˜;¨Ñ*Ô*ñ	
ô 	
ð 	
ð 	
ð 	
r+   )r/   )r&   r'   r(   Úintr   r<   Ú__classcell__©rB   s   @r,   r.   r.   0   sd   ø€ € € € € ð
ð 
 Cð 
°cð 
ÈÐRUÌð 
Ðjnð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r+   r.   c                   ó0   ‡ — e Zd Zdedededdfˆ fd„Zˆ xZS )ÚASPPConvr3   Úout_channelsÚdilationr6   Nc                 ó´   •— t          j        ||d||d¬¦  «        t          j        |¦  «        t          j        ¦   «         g} t	          ¦   «         j        |Ž  d S )Nr	   F)r9   rI   r:   )r   r>   r?   r@   r;   r<   )rA   r3   rH   rI   ÚmodulesrB   s        €r,   r<   zASPPConv.__init__<   sW   ø€ åŒI�k <°¸HÈxÐ^cÐdÑdÔdÝŒN˜<Ñ(Ô(ÝŒG‰IŒIð
ˆð
 	�‰ŒÔ˜'Ð"Ð"Ð"Ð"r+   )r&   r'   r(   rC   r<   rD   rE   s   @r,   rG   rG   ;   sY   ø€ € € € € ð# Cð #°sð #Àcð #Èdð #ð #ð #ð #ð #ð #ð #ð #ð #ð #r+   rG   c                   óP   ‡ — e Zd Zdededdfˆ fd„Zdej        dej        fd„Zˆ xZS )ÚASPPPoolingr3   rH   r6   Nc           	      óæ   •— t          ¦   «                              t          j        d¦  «        t          j        ||dd¬¦  «        t          j        |¦  «        t          j        ¦   «         ¦  «         d S )Nr   F©r:   )r;   r<   r   ÚAdaptiveAvgPool2dr>   r?   r@   )rA   r3   rH   rB   s      €r,   r<   zASPPPooling.__init__F   sc   ø€ Ý‰Œ×ÒÝÔ  Ñ#Ô#ÝŒI�k <°¸Ð?Ñ?Ô?ÝŒN˜<Ñ(Ô(ÝŒG‰IŒIñ		
ô 	
ð 	
ð 	
ð 	
r+   Úxc                 óp   — |j         dd …         }| D ]} ||¦  «        }Œt          j        ||dd¬¦  «        S )NéþÿÿÿÚbilinearF)ÚsizeÚmodeÚalign_corners)ÚshapeÚFÚinterpolate)rA   rQ   rU   Úmods       r,   ÚforwardzASPPPooling.forwardN   sH   € ØŒw�r�s�sŒ|ˆØð 	ð 	ˆCØ��A‘”ˆAˆAÝŒ}˜Q T°
È%ÐPÑPÔPÐPr+   )	r&   r'   r(   rC   r<   ÚtorchÚTensorr\   rD   rE   s   @r,   rM   rM   E   s‚   ø€ € € € € ð
 Cð 
°sð 
¸tð 
ð 
ð 
ð 
ð 
ð 
ðQ˜œð Q¨%¬,ð Qð Qð Qð Qð Qð Qð Qð Qr+   rM   c            	       ób   ‡ — e Zd Zd
dedee         deddfˆ fd„Zdej        dej        fd	„Zˆ xZ	S )r=   r8   r3   r5   rH   r6   Nc           
      óð  •— t          ¦   «                              ¦   «          g }|                     t          j        t          j        ||dd¬¦  «        t          j        |¦  «        t          j        ¦   «         ¦  «        ¦  «         t          |¦  «        }|D ]&}|                     t          |||¦  «        ¦  «         Œ'|                     t          ||¦  «        ¦  «         t          j        |¦  «        | _        t          j        t          j        t          | j        ¦  «        |z  |dd¬¦  «        t          j        |¦  «        t          j        ¦   «         t          j        d¦  «        ¦  «        | _        d S )Nr   FrO   g      à?)r;   r<   Úappendr   Ú
Sequentialr>   r?   r@   ÚtuplerG   rM   Ú
ModuleListÚconvsÚlenÚDropoutÚproject)rA   r3   r5   rH   rK   ÚratesÚraterB   s          €r,   r<   zASPP.__init__V   s6  ø€ Ý‰Œ×ÒÑÔÐØˆØ�ŠÝŒM�"œ) K°¸qÀuÐMÑMÔMÍrÌ~Ð^jÑOkÔOkÕmoÔmtÑmvÔmvÑwÔwñ	
ô 	
ð 	
õ �lÑ#Ô#ˆØð 	Fð 	FˆDØ�NŠN�8 K°¸tÑDÔDÑEÔEÐEÐEà�Š•{ ;°Ñ=Ô=Ñ>Ô>Ð>å”] 7Ñ+Ô+ˆŒ
å”}ÝŒI•c˜$œ*‘o”o¨Ñ4°lÀAÈEÐRÑRÔRÝŒN˜<Ñ(Ô(ÝŒG‰IŒIÝŒJ�s‰OŒOñ	
ô 
ˆŒˆˆr+   rQ   c                 ó¬   — g }| j         D ] }|                      ||¦  «        ¦  «         Œ!t          j        |d¬¦  «        }|                      |¦  «        S )Nr   )Údim)re   ra   r]   Úcatrh   )rA   rQ   Ú_resÚconvÚress        r,   r\   zASPP.forwardl   s[   € ØˆØ”Jð 	!ð 	!ˆDØ�KŠK˜˜˜Q™œÑ Ô Ð Ð ÝŒi˜ !Ð$Ñ$Ô$ˆØ�|Š|˜CÑ Ô Ð r+   )r8   )
r&   r'   r(   rC   r   r<   r]   r^   r\   rD   rE   s   @r,   r=   r=   U   sŠ   ø€ € € € € ð
ð 
 Cð 
°xÀ´}ð 
ÐTWð 
Ðbfð 
ð 
ð 
ð 
ð 
ð 
ð,!˜œð !¨%¬,ð !ð !ð !ð !ð !ð !ð !ð !r+   r=   Úbackboner4   Úauxr6   c                 ó¤   — ddi}|rd|d<   t          | |¬¦  «        } |rt          d|¦  «        nd }t          d|¦  «        }t          | ||¦  «        S )NÚlayer4Úoutrr   Úlayer3©Úreturn_layersi   i   )r   r   r.   r   )rq   r4   rr   rx   Úaux_classifierÚ
classifiers         r,   Ú_deeplabv3_resnetr{   t   sl   € ð
 ˜uÐ%€MØ
ð (Ø"'ˆ�hÑÝ& x¸}ÐMÑMÔM€Hà36Ð@•W˜T ;Ñ/Ô/Ð/¸D€NÝ˜T ;Ñ/Ô/€JÝ�X˜z¨>Ñ:Ô:Ð:r+   )r   r   zŽ
        These weights were trained on a subset of COCO, using only the 20 categories that are present in the Pascal VOC
        dataset.
    )Ú
categoriesÚmin_sizeÚ_docsc                   ób   — e Zd Z ed eed¬¦  «        i e¥dddddd	œid
ddœ¥¬¦  «        ZeZdS )r   zHhttps://download.pytorch.org/models/deeplabv3_resnet50_coco-cd0a2569.pthé  ©Úresize_sizeijî€zVhttps://github.com/pytorch/vision/tree/main/references/segmentation#deeplabv3_resnet50úCOCO-val2017-VOC-labelsgš™™™™™P@çš™™™™W@©ÚmiouÚ	pixel_accgÉv¾ŸWf@g®Gázd@©Ú
num_paramsÚrecipeÚ_metricsÚ_opsÚ
_file_size©ÚurlÚ
transformsÚmetaN©	r&   r'   r(   r   r   r
   Ú_COMMON_METAÚCOCO_WITH_VOC_LABELS_V1ÚDEFAULTr*   r+   r,   r   r   �   s„   € € € € € Ø%˜gØVØ�7Ð/¸SÐAÑAÔAð
Øð
à"Ønà)Ø Ø!%ð,ð ,ðð Ø!ð
ð 
ð 
ðñ ô Ðð" &€G€G€Gr+   r   c                   ób   — e Zd Z ed eed¬¦  «        i e¥dddddd	œid
ddœ¥¬¦  «        ZeZdS )r    zIhttps://download.pytorch.org/models/deeplabv3_resnet101_coco-586e9e4e.pthr€   r�   ijº¢zQhttps://github.com/pytorch/vision/tree/main/references/segmentation#fcn_resnet101rƒ   gš™™™™ÙP@r„   r…   gÙÎ÷Sã+p@gmçû©ñ&m@rˆ   rŽ   Nr’   r*   r+   r,   r    r    ¢   s„   € € € € € Ø%˜gØWØ�7Ð/¸SÐAÑAÔAð
Øð
à"Øià)Ø Ø!%ð,ð ,ðð Ø!ð
ð 
ð 
ðñ ô Ðð" &€G€G€Gr+   r    c                   ób   — e Zd Z ed eed¬¦  «        i e¥dddddd	œid
ddœ¥¬¦  «        ZeZdS )r!   zMhttps://download.pytorch.org/models/deeplabv3_mobilenet_v3_large-fc3c493d.pthr€   r�   iPK¨ z`https://github.com/pytorch/vision/tree/main/references/segmentation#deeplabv3_mobilenet_v3_largerƒ   gfffff&N@gÍÌÌÌÌÌV@r…   g�•C‹lç$@gJ+‡&E@rˆ   rŽ   Nr’   r*   r+   r,   r!   r!   ·   s„   € € € € € Ø%˜gØ[Ø�7Ð/¸SÐAÑAÔAð
Øð
à"Øxà)Ø Ø!%ð,ð ,ðð Ø ð
ð 
ð 
ðñ ô Ðð" &€G€G€Gr+   r!   c                 óœ  — | j         } dgd„ t          | ¦  «        D ¦   «         z   t          | ¦  «        dz
  gz   }|d         }| |         j        }|d         }| |         j        }t	          |¦  «        di}|rd|t	          |¦  «        <   t          | |¬¦  «        } |rt          ||¦  «        nd }	t          ||¦  «        }
t          | |
|	¦  «        S )	Nr   c                 ó:   — g | ]\  }}t          |d d¦  «        ¯|‘ŒS )Ú_is_cnF)Úgetattr)Ú.0ÚiÚbs      r,   ú
<listcomp>z*_deeplabv3_mobilenetv3.<locals>.<listcomp>Ô   s.   € Ð\Ð\Ð\¡  AÅÈÈ8ÐUZÑ@[Ô@[Ð\˜1Ð\Ð\Ð\r+   r   éÿÿÿÿéüÿÿÿru   rr   rw   )	ÚfeaturesÚ	enumeraterf   rH   Ústrr   r   r.   r   )rq   r4   rr   Ústage_indicesÚout_posÚout_inplanesÚaux_posÚaux_inplanesrx   ry   rz   s              r,   Ú_deeplabv3_mobilenetv3rª   Ì   së   € ð
 Ô €Hð �CÐ\Ð\­°8Ñ)<Ô)<Ð\Ñ\Ô\Ñ\Õ`cÐdlÑ`mÔ`mÐpqÑ`qÐ_rÑr€MØ˜BÔ€GØ˜GÔ$Ô1€LØ˜BÔ€GØ˜GÔ$Ô1€LÝ˜‘\”\ 5Ð)€MØ
ð ,Ø&+ˆ•c˜'‘l”lÑ#Ý& x¸}ÐMÑMÔM€Hà;>ÐH•W˜\¨;Ñ7Ô7Ð7ÀD€NÝ˜\¨;Ñ7Ô7€JÝ�X˜z¨>Ñ:Ô:Ð:r+   Ú
pretrainedÚpretrained_backbone)ÚweightsÚweights_backboneT)r­   Úprogressr4   Úaux_lossr®   r­   r¯   r°   r®   Úkwargsc                 óˆ  — t                                | ¦  «        } t          j        |¦  «        }| �=d}t          d|t	          | j        d         ¦  «        ¦  «        }t          d|d¦  «        }n|€d}t          |g d¢¬¦  «        }t          |||¦  «        }| �*|                     |  	                    |d¬	¦  «        ¦  «         |S )
ad  Constructs a DeepLabV3 model with a ResNet-50 backbone.

    .. betastatus:: segmentation module

    Reference: `Rethinking Atrous Convolution for Semantic Image Segmentation <https://arxiv.org/abs/1706.05587>`__.

    Args:
        weights (:class:`~torchvision.models.segmentation.DeepLabV3_ResNet50_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.segmentation.DeepLabV3_ResNet50_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.
        num_classes (int, optional): number of output classes of the model (including the background)
        aux_loss (bool, optional): If True, it uses an auxiliary loss
        weights_backbone (:class:`~torchvision.models.ResNet50_Weights`, optional): The pretrained weights for the
            backbone
        **kwargs: unused

    .. autoclass:: torchvision.models.segmentation.DeepLabV3_ResNet50_Weights
        :members:
    Nr4   r|   r°   Té   ©FTT©r­   Úreplace_stride_with_dilation©r¯   Ú
check_hash)
r   Úverifyr   r   rf   r‘   r   r{   Úload_state_dictÚget_state_dict©r­   r¯   r4   r°   r®   r±   rq   Úmodels           r,   r#   r#   ã   sÓ   € õJ )×/Ò/°Ñ8Ô8€GÝ'Ô.Ð/?Ñ@Ô@ÐàÐØÐÝ+¨M¸;ÍÈGÌLÐYeÔLfÑHgÔHgÑhÔhˆÝ(¨°X¸tÑDÔDˆˆØ	Ð	ØˆåÐ 0ÐObÐObÐObÐcÑcÔc€HÝ˜h¨°XÑ>Ô>€EàÐØ×Ò˜g×4Ò4¸hÐSWÐ4ÑXÔXÑYÔYÐYà€Lr+   c                 óˆ  — t                                | ¦  «        } t          j        |¦  «        }| �=d}t          d|t	          | j        d         ¦  «        ¦  «        }t          d|d¦  «        }n|€d}t          |g d¢¬¦  «        }t          |||¦  «        }| �*|                     |  	                    |d¬	¦  «        ¦  «         |S )
ai  Constructs a DeepLabV3 model with a ResNet-101 backbone.

    .. betastatus:: segmentation module

    Reference: `Rethinking Atrous Convolution for Semantic Image Segmentation <https://arxiv.org/abs/1706.05587>`__.

    Args:
        weights (:class:`~torchvision.models.segmentation.DeepLabV3_ResNet101_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.segmentation.DeepLabV3_ResNet101_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.
        num_classes (int, optional): number of output classes of the model (including the background)
        aux_loss (bool, optional): If True, it uses an auxiliary loss
        weights_backbone (:class:`~torchvision.models.ResNet101_Weights`, optional): The pretrained weights for the
            backbone
        **kwargs: unused

    .. autoclass:: torchvision.models.segmentation.DeepLabV3_ResNet101_Weights
        :members:
    Nr4   r|   r°   Tr³   r´   rµ   r·   )
r    r¹   r   r   rf   r‘   r   r{   rº   r»   r¼   s           r,   r$   r$     sÓ   € õJ *×0Ò0°Ñ9Ô9€GÝ(Ô/Ð0@ÑAÔAÐàÐØÐÝ+¨M¸;ÍÈGÌLÐYeÔLfÑHgÔHgÑhÔhˆÝ(¨°X¸tÑDÔDˆˆØ	Ð	ØˆåÐ!1ÐPcÐPcÐPcÐdÑdÔd€HÝ˜h¨°XÑ>Ô>€EàÐØ×Ò˜g×4Ò4¸hÐSWÐ4ÑXÔXÑYÔYÐYà€Lr+   c                 ó„  — t                                | ¦  «        } t          j        |¦  «        }| �=d}t          d|t	          | j        d         ¦  «        ¦  «        }t          d|d¦  «        }n|€d}t          |d¬¦  «        }t          |||¦  «        }| �*|                     |  	                    |d¬¦  «        ¦  «         |S )	ak  Constructs a DeepLabV3 model with a MobileNetV3-Large backbone.

    Reference: `Rethinking Atrous Convolution for Semantic Image Segmentation <https://arxiv.org/abs/1706.05587>`__.

    Args:
        weights (:class:`~torchvision.models.segmentation.DeepLabV3_MobileNet_V3_Large_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.segmentation.DeepLabV3_MobileNet_V3_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.
        num_classes (int, optional): number of output classes of the model (including the background)
        aux_loss (bool, optional): If True, it uses an auxiliary loss
        weights_backbone (:class:`~torchvision.models.MobileNet_V3_Large_Weights`, optional): The pretrained weights
            for the backbone
        **kwargs: unused

    .. autoclass:: torchvision.models.segmentation.DeepLabV3_MobileNet_V3_Large_Weights
        :members:
    Nr4   r|   r°   Tr³   )r­   Údilatedr·   )
r!   r¹   r   r   rf   r‘   r   rª   rº   r»   r¼   s           r,   r"   r"   S  sÌ   € õF 3×9Ò9¸'ÑBÔB€GÝ1Ô8Ð9IÑJÔJÐàÐØÐÝ+¨M¸;ÍÈGÌLÐYeÔLfÑHgÔHgÑhÔhˆÝ(¨°X¸tÑDÔDˆˆØ	Ð	Øˆå!Ð*:ÀDÐIÑIÔI€HÝ" 8¨[¸(ÑCÔC€EàÐØ×Ò˜g×4Ò4¸hÐSWÐ4ÑXÔXÑYÔYÐYà€Lr+   )9Ú	functoolsr   Útypingr   r   r   r]   r   Útorch.nnr   rY   Útransforms._presetsr
   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   r   Úmobilenetv3r   r   r   Úresnetr   r   r   r   r   r   Úfcnr   Ú__all__r   rb   r.   rG   rM   ÚModuler=   rC   Úboolr{   r“   r   r    r!   rª   r”   ÚIMAGENET1K_V1r#   r$   r"   r*   r+   r,   ú<module>rÏ      sÀ  ðØ Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à €€€Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø #Ð #Ð #Ð #Ð #Ð #Ø \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð ðð ð €ð	ð 	ð 	ð 	ð 	Ð(ñ 	ô 	ð 	ð&
ð 
ð 
ð 
ð 
�"”-ñ 
ô 
ð 
ð#ð #ð #ð #ð #ˆrŒ}ñ #ô #ð #ðQð Qð Qð Qð Q�"”-ñ Qô Qð Qð !ð !ð !ð !ð !ˆ2Œ9ñ !ô !ð !ð>;Øð;àð;ð 
�$Œð;ð ð	;ð ;ð ;ð ;ð  "Øððð €ð&ð &ð &ð &ð & ñ &ô &ð &ð*&ð &ð &ð &ð & +ñ &ô &ð &ð*&ð &ð &ð &ð &¨;ñ &ô &ð &ð*;Øð;àð;ð 
�$Œð;ð ð	;ð ;ð ;ð ;ð. €ÑÔØÐØÐ5ÔMÐNØ+Ð-=Ô-KÐLðñ ô ð 59ØØ!%Ø#Ø3CÔ3Qð0ð 0ð 0àÐ0Ô1ð0ð ð0ð ˜#”ð	0ð
 �tŒnð0ð Ð/Ô0ð0ð ð0ð ð0ð 0ð 0ñ	ô ñ Ôð
0ðf €ÑÔØÐØÐ6ÔNÐOØ+Ð->Ô-LÐMðñ ô ð 6:ØØ!%Ø#Ø4EÔ4Sð0ð 0ð 0àÐ1Ô2ð0ð ð0ð ˜#”ð	0ð
 �tŒnð0ð Ð0Ô1ð0ð ð0ð ð0ð 0ð 0ñ	ô ñ Ôð
0ðf €ÑÔØÐØÐ?ÔWÐXØ+Ð-GÔ-UÐVðñ ô ð ?CØØ!%Ø#Ø=WÔ=eð.ð .ð .àÐ:Ô;ð.ð ð.ð ˜#”ð	.ð
 �tŒnð.ð Ð9Ô:ð.ð ð.ð ð.ð .ð .ñ	ô ñ Ôð
.ð .ð .r+   