§
    ¥”j(5  ã                   ó^  — 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	m
Z
mZmZmZ d dlmZ d dl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 d dlmZ g d¢ZdZe› d�Z e› d�Z!e› d�Z" G d„ de#¦  «        Z$ ed¬¦  «         G d„ d¦  «        ¦   «         Z% G d„ de j&        ¦  «        Z'e"› d�Z( ed¬¦  «         G d„ d¦  «        ¦   «         Z) G d„ de j&        ¦  «        Z* G d„ d¦  «        Z+ ed¬¦  «         G d „ d!e+¦  «        ¦   «         Z, ed¬¦  «         G d"„ d#e+¦  «        ¦   «         Z- ed¬¦  «         G d$„ d%e+¦  «        ¦   «         Z.e j/         G d&„ d'e j&        ¦  «        ¦   «         Z0 ed¬¦  «         G d(„ d)e+¦  «        ¦   «         Z1 ed¬¦  «         G d*„ d+¦  «        ¦   «         Z2 ed¬¦  «         G d,„ d-¦  «        ¦   «         Z3 ed¬¦  «         G d.„ d/e3¦  «        ¦   «         Z4 ed¬¦  «         G d0„ d1e3¦  «        ¦   «         Z5d2e3fd3„Z6 G d4„ d5¦  «        Z7 G d6„ d7e¦  «        Z8dS )8é    N)Údefaultdict)Ú	dataclass)Údatetime)ÚDictÚ	FrozenSetÚ	GeneratorÚIterableÚOptionalÚSetÚTuple)Úx509)ÚKeyUsageConstraints)Ú	AuthorityÚAuthorityWithCertÚTrustAnchorÚTrustedServiceTypeÚTrustQualifiers)ÚInvalidCertificateError)ÚValidationPath)ÚTrustManager)Ú	CA_QC_URIÚQTST_URIÚAdditionalServiceInformationÚBaseServiceInformationÚCAServiceInformationÚCertSubjectDNCriterionÚCriteriaCombinationÚCriteriaListÚ	CriterionÚKeyUsageCriterionÚPolicySetCriterionÚQTSTServiceInformationÚ
QcCertTypeÚQualificationr$   ÚQualifiedServiceInformationÚ	QualifierÚTSPRegistryÚTSPServiceParsingErrorÚTSPTrustManagerzhttp://uri.etsi.org/TrstSvcz/Svctype/CA/QCz/Svctype/TSA/QTSTz/TrustedListc                   ó   — e Zd ZdS )r(   N)Ú__name__Ú
__module__Ú__qualname__© ó    út/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pyhanko/sign/validation/qualified/tsp.pyr(   r(   2   s   € € € € € Ø€Dr/   r(   T)Úfrozenc                   ó:   — e Zd ZU eed<   eed<   ee         ed<   dS )r   ÚuriÚcriticalÚtextual_infoN)r+   r,   r-   ÚstrÚ__annotations__Úboolr
   r.   r/   r0   r   r   6   s4   € € € € € € à	€H€H�HØ€N€N�NØ˜3”-ÐÐÑÐÐr/   r   c                   ó"   — e Zd ZdZdZ	 dZ	 dZdS )r#   z(
    Type of qualified certificate.
    Ú	qct_esignÚ	qct_esealÚqct_webN)r+   r,   r-   Ú__doc__ÚQC_ESIGNÚQC_ESEALÚQC_WEBr.   r/   r0   r#   r#   =   s=   € € € € € ðð ð €Hðð €Hðð €Fðð r/   r#   z/SvcInfoExtc                   ó¤   — e Zd ZU dZeed<   	 eed<   	 eed<   	 ee         ed<   	 ee	j
        df         ed<   	 ee         ed<   	 ee         ed	<   d
S )r   z5
    Common information about a trusted service.
    Úservice_typeÚservice_nameÚ
valid_fromÚvalid_until.Úprovider_certsÚ additional_info_certificate_typeÚother_additional_infoN)r+   r,   r-   r=   r6   r7   r   r
   r   r   ÚCertificater   r#   r   r.   r/   r0   r   r   U   s½   € € € € € € ðð ð ÐÐÑðð ÐÐÑðð ÐÐÑðð ˜(Ô#Ð#Ð#Ñ#ðð ˜$Ô*¨CÐ/Ô0Ð0Ð0Ñ0ðð '0°
Ô&;Ð;Ð;Ñ;ðð
 %Ð%AÔBÐBÐBÑBðð r/   r   c                   ó\   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZed„ ¦   «         ZdS )r&   z=
    Qualifier as specified in ETSI TS 119 612, 5.5.9.2.
    Ú
QCWithSSCDÚQCNoSSCDÚQCSSCDStatusAsInCertÚ
QCWithQSCDÚQCNoQSCDÚQCQSCDStatusAsInCertÚQCQSCDManagedOnBehalfÚQCForLegalPersonÚ	QCForESigÚ
QCForESealÚQCForWSAÚNotQualifiedÚQCStatementc                 ó$   — t           › d| j        › �S )Nú/)Ú_SVCINFOEXT_URI_BASEÚvalue©Úselfs    r0   r3   zQualifier.uri˜   s   € å&Ð5Ð5¨¬Ð5Ð5Ð5r/   N)r+   r,   r-   r=   Ú	WITH_SSCDÚNO_SSCDÚSSCD_AS_IN_CERTÚ	WITH_QSCDÚNO_QSCDÚQSCD_AS_IN_CERTÚQSCD_MANAGED_ON_BEHALFÚLEGAL_PERSONÚFOR_ESIGÚ	FOR_ESEALÚFOR_WSAÚNOT_QUALIFIEDÚQC_STATEMENTÚpropertyr3   r.   r/   r0   r&   r&   …   s{   € € € € € ðð ð €IØ€GØ,€OØ€IØ€GØ,€OØ4ÐØ%€LØ€HØ€IØ€GØ"€MØ €Làð6ð 6ñ „Xð6ð 6ð 6r/   r&   c                   ó,   — e Zd ZdZdej        defd„ZdS )r   z>
    Criterion for a qualifier to apply to a certificate.
    ÚcertÚreturnc                 ó   — t           ‚)zÔ
        Evaluate a certificate against this criterion.

        :param cert:
            The certificate to evaluate.
        :return:
            ``True`` if the criterion matches, ``False`` otherwise.
        )ÚNotImplementedError©r]   rm   s     r0   ÚmatcheszCriterion.matches¢   s
   € õ "Ð!r/   N)r+   r,   r-   r=   r   rI   r8   rr   r.   r/   r0   r   r   �   sC   € € € € € ðð ð	"˜DÔ,ð 	"°ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"r/   r   c                   ó:   — e Zd ZU dZeed<   	 dej        defd„Z	dS )r    z`
    Criterion that matches certificates that meet the specified
    key usage constraints.
    Úsettingsrm   rn   c                 ó^   — 	 | j                              |¦  «         dS # t          $ r Y dS w xY w)NTF)rt   Úvalidater   rq   s     r0   rr   zKeyUsageCriterion.matchesº   sD   € ð	ØŒM×"Ò" 4Ñ(Ô(Ð(Ø�4øÝ&ð 	ð 	ð 	Ø�5�5ð	øøøs   ‚ ž
,«,N)
r+   r,   r-   r=   r   r7   r   rI   r8   rr   r.   r/   r0   r    r    ®   sX   € € € € € € ðð ð
 "Ð!Ð!Ñ!ðð˜DÔ,ð °ð ð ð ð ð ð r/   r    c                   óF   — e Zd ZU dZee         ed<   	 dej        de	fd„Z
dS )r!   z_
    Criterion that matches certificates that meet the specified
    certificate policies.
    Úrequired_policy_oidsrm   rn   c                 ó`   — |j         pd}d„ |D ¦   «         }| j                             |¦  «        S )Nr.   c                 ó(   — h | ]}|d          j         ’ŒS )Úpolicy_identifier©Údotted)Ú.0Úpols     r0   ú	<setcomp>z-PolicySetCriterion.matches.<locals>.<setcomp>Õ   s!   € ÐPÐPÐP¸c˜#Ð1Ô2Ô9ÐPÐPÐPr/   )Úcertificate_policies_valuerx   Úissubset)r]   rm   Ú
policy_extÚfound_policiess       r0   rr   zPolicySetCriterion.matchesÓ   s9   € ØÔ4Ð:¸ˆ
ØPÐPÀZÐPÑPÔPˆØÔ(×1Ò1°.ÑAÔAÐAr/   N)r+   r,   r-   r=   r   r6   r7   r   rI   r8   rr   r.   r/   r0   r!   r!   Â   sd   € € € € € € ðð ð
 $ Cœ.Ð(Ð(Ñ(ððB˜DÔ,ð B°ð Bð Bð Bð Bð Bð Br/   r!   c                   ó@   — e Zd ZU ee         ed<   dej        defd„Z	dS )r   Úrequired_rdn_part_oidsrm   rn   c                 óf   — |j         }d„ |j        D ¦   «         }| j                             |¦  «        S )Nc                 ó2   — h | ]}|D ]}|d          j         ’ŒŒS )Útyper|   )r~   ÚrdnÚpairs      r0   r€   z1CertSubjectDNCriterion.matches.<locals>.<setcomp>ß   s@   € ð 
ð 
ð 
Ø$'Èð
ð 
ØAEˆD�ŒLÔð
ð 
ð 
ð 
r/   )ÚsubjectÚchosenr†   r‚   )r]   rm   Ú
subject_dnÚfound_rdn_part_oidss       r0   rr   zCertSubjectDNCriterion.matchesÝ   sE   € Ø $¤ˆ
ð
ð 
Ø+5Ô+<ð
ñ 
ô 
Ðð Ô*×3Ò3Ð4GÑHÔHÐHr/   N)
r+   r,   r-   r   r6   r7   r   rI   r8   rr   r.   r/   r0   r   r   Ù   sS   € € € € € € à% cœNÐ*Ð*Ñ*ðI˜DÔ,ð I°ð Ið Ið Ið Ið Ið Ir/   r   c                   ó"   — e Zd ZdZdZ	 dZ	 dZdS )r   z.
    Defines how to combine sub-criteria.
    ÚallÚ
atLeastOneÚnoneN)r+   r,   r-   r=   ÚALLÚAT_LEAST_ONEÚNONEr.   r/   r0   r   r   å   s=   € € € € € ðð ð €Cðð  €Lðð €Dðð r/   r   c                   óR   — e Zd ZU dZeed<   	 ee         ed<   	 dej	        de
fd„ZdS )r   z*
    Combine several criteria as one.
    Ú
combine_asÚcriteriarm   rn   c                 óR  ‡— | j         t          j        k    r t          ˆfd„| j        D ¦   «         ¦  «        S | j         t          j        k    r t          ˆfd„| j        D ¦   «         ¦  «        S | j         t          j        k    r!t          ˆfd„| j        D ¦   «         ¦  «         S t          ‚)Nc              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S ©N©rr   ©r~   Úcrm   s     €r0   ú	<genexpr>z'CriteriaList.matches.<locals>.<genexpr>  ó-   øè è € Ð>Ð>¨1�q—y’y ‘”Ð>Ð>Ð>Ð>Ð>Ð>r/   c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rœ   r�   rž   s     €r0   r    z'CriteriaList.matches.<locals>.<genexpr>  r¡   r/   c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rœ   r�   rž   s     €r0   r    z'CriteriaList.matches.<locals>.<genexpr>  s-   øè è € ÐBÐB¨q˜1Ÿ9š9 T™?œ?ÐBÐBÐBÐBÐBÐBr/   )	r˜   r   r”   r‘   r™   r•   Úanyr–   rp   rq   s    `r0   rr   zCriteriaList.matches  s®   ø€ ØŒ?Õ1Ô5Ò5Ð5ÝÐ>Ð>Ð>Ð>°´Ð>Ñ>Ô>Ñ>Ô>Ð>ØŒ_Õ 3Ô @Ò@Ð@ÝÐ>Ð>Ð>Ð>°´Ð>Ñ>Ô>Ñ>Ô>Ð>ØŒ_Õ 3Ô 8Ò8Ð8ÝÐBÐBÐBÐB°D´MÐBÑBÔBÑBÔBÐBÐBå%Ð%r/   N)r+   r,   r-   r=   r   r7   r   r   r   rI   r8   rr   r.   r/   r0   r   r   û   sp   € € € € € € ðð ð $Ð#Ð#Ñ#ðð ˜	Ô"Ð"Ð"Ñ"ðð&˜DÔ,ð &°ð &ð &ð &ð &ð &ð &r/   r   c                   ó6   — e Zd ZU dZee         ed<   	 eed<   dS )r$   zU
    Representation of a qualification in the sense of ETSI TS 119 612, 5.5.9.2.
    Ú
qualifiersÚcriteria_listN)r+   r,   r-   r=   r   r&   r7   r   r.   r/   r0   r$   r$     sF   € € € € € € ðð ð ˜)Ô$Ð$Ð$Ñ$ðð  ÐÐÑðð r/   r$   c                   ó6   — e Zd ZU dZeed<   	 ee         ed<   dS )r%   zB
    Representation of a service with conditional qualifiers.
    Ú	base_infoÚqualificationsN)r+   r,   r-   r=   r   r7   r   r$   r.   r/   r0   r%   r%   '  sF   € € € € € € ðð ð &Ð%Ð%Ñ%ðð ˜mÔ,Ð,Ð,Ñ,ðð r/   r%   c                   ó*   — e Zd ZU dZee         ed<   dS )r   z+
    Qualified CA service description.
    Úexpired_certs_revocation_infoN)r+   r,   r-   r=   r
   r   r7   r.   r/   r0   r   r   8  s3   € € € € € € ðð ð
 $,¨HÔ#5Ð5Ð5Ñ5ðð r/   r   c                   ó   — e Zd ZdZdS )r"   z,
    Qualified TSA service description.
    N)r+   r,   r-   r=   r.   r/   r0   r"   r"   I  s   € € € € € ðð ð ð r/   r"   Úsic                 ó:   — | j         j        €dS d| j         j        fS )N)é   Nr   )r©   rE   )r®   s    r0   Ú_service_sort_keyr±   P  s"   € Ø	„|ÔÐ'Øˆwà�"”,Ô*Ð*Ð*r/   c            	       óÔ   — e Zd ZdZdd„Zdefd„Zdefd„Zde	d	e
e         d
ee         fd„Zed
ee	         fd„¦   «         Zed
ee	         fd„¦   «         Zded	ed
eeddf         fd„ZdS )r'   z³
    Registry of trusted service providers (TSPs), typically populated from
    a trust list.

    Currently, a TSP registry can keep track of qualified CAs and TSAs (QTSTs).
    r]   c                 ój   — t          t          ¦  «        | _        t          t          ¦  «        | _        d S rœ   )r   ÚsetÚ_ca_cert_to_siÚ_tst_cert_to_sir\   s    r0   Ú__init__zTSPRegistry.__init___  s0   € å�ÑÔð 	Ôõ �ÑÔð 	ÔÐÐr/   Úca_service_infoc                 ó~   — |j         j        D ]/}| j        t          |¦  «                                      |¦  «         Œ0dS )zŠ
        Register a trusted certificate authority.

        :param ca_service_info:
            Service information about the CA.
        N)r©   rF   rµ   r   Úadd)r]   r¸   rm   s      r0   Úregister_cazTSPRegistry.register_cag  sO   € ð $Ô-Ô<ð 	Nð 	NˆDØÔÕ 1°$Ñ 7Ô 7Ô8×<Ò<¸_ÑMÔMÐMÐMð	Nð 	Nr/   Úqtst_service_infoc                 ó~   — |j         j        D ]/}| j        t          |¦  «                                      |¦  «         Œ0dS )z�
        Register a trusted time stamping authority.

        :param qtst_service_info:
            Service information about the TSA.
        N)r©   rF   r¶   r   rº   )r]   r¼   rm   s      r0   Úregister_tstzTSPRegistry.register_tstq  sP   € ð &Ô/Ô>ð 	Qð 	QˆDØÔ Õ!2°4Ñ!8Ô!8Ô9×=Ò=Ð>OÑPÔPÐPÐPð	Qð 	Qr/   Ú	authorityÚmomentrn   c              #   ó  K  — t          | j        |         ¦  «        t          | j        |         ¦  «        z   }t          |t          d¬¦  «        }|D ].}|j        j        }|j        j        }|r||k    r|r||k    r|V — Œ/dS )au  
        Retrieve the service definitions in this registry on behalf
        of which the specified authority might act.

        .. note::
            This includes all supported types of qualified services,
            not just certificate authorities.

        :param authority:
            Authority to evaluate.
        :param moment:
            Time at which to evaluate the service definitions.
            If none is specified, all matching service definitions
            will be returned, irrespective of their validity windows.
        :return:
            List of service definitions matching the authority.
        T)ÚkeyÚreverseN)Útuplerµ   r¶   Úsortedr±   r©   rD   rE   )r]   r¿   rÀ   Úall_servicesÚsorted_servicesÚservicerD   rE   s           r0   Úapplicable_service_definitionsz*TSPRegistry.applicable_service_definitions{  sº   è è € õ* ˜TÔ0°Ô;Ñ<Ô<½uØÔ  Ô+ñ@
ô @
ñ 
ˆõ !ØÕ/¸ð
ñ 
ô 
ˆð 'ð 	ð 	ˆGØ Ô*Ô5ˆJØ!Ô+Ô7ˆKØð Ø˜fÒ$Ð$Ø$ð %Ø(3°vÒ(=Ð(=à���øð	ð 	r/   c                 óH   — d„ | j                              ¦   «         D ¦   «         S )zQ
        List known certificate authorities identified by this registry.
        c                 ó   — h | ]	\  }}|¯|’Œ
S r.   r.   )r~   ÚcaÚsdss      r0   r€   z<TSPRegistry.known_certificate_authorities.<locals>.<setcomp>¤  s!   € ÐEÐEÐE‘w�r˜3ÀÐE�ÐEÐEÐEr/   )rµ   Úitemsr\   s    r0   Úknown_certificate_authoritiesz)TSPRegistry.known_certificate_authoritiesŸ  s(   € ð
 FÐE $Ô"5×";Ò";Ñ"=Ô"=ÐEÑEÔEÐEr/   c                 óH   — d„ | j                              ¦   «         D ¦   «         S )zS
        List known time stamping authorities identified by this registry.
        c                 ó   — h | ]	\  }}|¯|’Œ
S r.   r.   )r~   ÚtsarÍ   s      r0   r€   z:TSPRegistry.known_timestamp_authorities.<locals>.<setcomp>«  s!   € ÐHÐHÐH™˜˜SÀCÐH�ÐHÐHÐHr/   )r¶   rÎ   r\   s    r0   Úknown_timestamp_authoritiesz'TSPRegistry.known_timestamp_authorities¦  s(   € ð
 IÐH DÔ$8×$>Ò$>Ñ$@Ô$@ÐHÑHÔHÐHr/   ÚpathNc              #   óp   K  — |                      ¦   «         D ]}|                      ||¦  «        E d{V —† ŒdS )a  
        List applicable trusted service providers on the provided
        validation path.

        :param path:
            The validation path to evaluate.
        :param moment:
            Time at which to evaluate the service definitions.
            If none is specified, all matching service definitions
            will be returned, irrespective of their validity windows.
        :return:
            A generator that yields any service definitions matching the
            authorities on the validation path.
        N)Úiter_authoritiesrÉ   )r]   rÔ   rÀ   rÌ   s       r0   Úapplicable_tsps_on_pathz#TSPRegistry.applicable_tsps_on_path­  s\   è è € ð" ×'Ò'Ñ)Ô)ð 	Gð 	GˆBØ×:Ò:¸2¸vÑFÔFÐFÐFÐFÐFÐFÐFÐFÐFð	Gð 	Gr/   )r]   r'   )r+   r,   r-   r=   r·   r   r»   r"   r¾   r   r
   r   r	   r%   rÉ   rk   rÏ   rÓ   r   r   r×   r.   r/   r0   r'   r'   W  sP  € € € € € ðð ð
ð 
ð 
ð 
ðNÐ+?ð Nð Nð Nð NðQÐ.Dð Qð Qð Qð Qð"Ø"ð"Ø,4°XÔ,>ð"à	Ð-Ô	.ð"ð "ð "ð "ðH ðF¨x¸	Ô/Bð Fð Fð Fñ „XðFð ðI¨X°iÔ-@ð Ið Ið Iñ „XðIðGØ"ðGØ,4ðGà	Ð.°°dÐ:Ô	;ðGð Gð Gð Gð Gð Gr/   r'   c                   óf   — e Zd ZdZdefd„Zdedee         fd„Z	de
j        deeddf         fd	„ZdS )
r)   zH
    Trust manager implementation based on a :class:`.TSPRegistry`.
    Útsp_registryc                 ó   — || _         d S rœ   )rÙ   )r]   rÙ   s     r0   r·   zTSPTrustManager.__init__Ç  s   € Ø(ˆÔÐÐr/   r¿   rn   c                 ó–  — 	 t          t          | j                             |d ¬¦  «        ¦  «        ¦  «        }n# t          $ r Y d S w xY wt
          t          j        t          t          j	        i 
                    |j        j        t          j        ¦  «        }t          |t          ||j        j        |j        j        ¬¦  «        ¬¦  «        S )N)rÀ   )Útrusted_service_typerD   rE   )Úquals)ÚnextÚiterrÙ   rÉ   ÚStopIterationr   r   ÚCERTIFICATE_AUTHORITYr   ÚTIME_STAMPING_AUTHORITYÚgetr©   rB   ÚUNSUPPORTEDr   r   rD   rE   )r]   r¿   ÚsdrB   s       r0   Úas_trust_anchorzTSPTrustManager.as_trust_anchorÊ  sã   € ð
	åÝØÔ%×DÒDØ!¨$ð Eñ ô ñô ñô ˆBˆBøõ ð 	ð 	ð 	Ø�4�4ð	øøøõ Õ)Ô?ÝÕ(Ô@ð
÷ Š#ˆbŒlÔ'Õ);Ô)GÑ
HÔ
Hð 	õ ØÝ!Ø%1Øœ<Ô2ØœLÔ4ðñ ô ð
ñ 
ô 
ð 	
s   ‚69 ¹
AÁArm   Nc              #   óˆ   K  — | j         j        D ]2}|                      |¦  «        }|r|                     |¦  «        r|V — Œ3d S rœ   )rÙ   rÏ   ræ   Úis_potential_issuer_of)r]   rm   r¿   Ú	as_anchors       r0   Úfind_potential_issuersz&TSPTrustManager.find_potential_issuersã  sa   è è € ð Ô*ÔHð 	 ð 	 ˆIØ×,Ò,¨YÑ7Ô7ˆIØð  ˜Y×=Ò=¸dÑCÔCð  Ø���øð	 ð 	 r/   )r+   r,   r-   r=   r'   r·   r   r
   r   ræ   r   rI   r   rê   r.   r/   r0   r)   r)   Â  s“   € € € € € ðð ð) [ð )ð )ð )ð )ð
¨ð 
°xÀÔ7Lð 
ð 
ð 
ð 
ð2 ØÔ$ð à	�;  dÐ*Ô	+ð ð  ð  ð  ð  ð  r/   r)   )9ÚenumÚcollectionsr   Údataclassesr   r   Útypingr   r   r   r	   r
   r   r   Ú
asn1cryptor   Ú pyhanko.sign.validation.settingsr   Úpyhanko_certvalidator.authorityr   r   r   r   r   Úpyhanko_certvalidator.errorsr   Úpyhanko_certvalidator.pathr   Úpyhanko_certvalidator.registryr   Ú__all__Ú_TRSTSVC_URI_BASEr   r   Ú_TRUSTEDLIST_URI_BASEÚ
ValueErrorr(   r   ÚEnumr#   rZ   r   r&   r   r    r!   r   Úuniquer   r   r$   r%   r   r"   r±   r'   r)   r.   r/   r0   ú<module>rû      s’  ðØ €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mà Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @ðð ð ð ð ð ð ð ð ð ð ð ð ð ð AÐ @Ð @Ð @Ð @Ð @Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð €ð0 2Ð Ø Ð0Ð0Ð0€	ØÐ2Ð2Ð2€Ø,Ð:Ð:Ð:Ð ð	ð 	ð 	ð 	ð 	˜Zñ 	ô 	ð 	ð €�$ÐÑÔð ð  ð  ð  ð  ñ  ô  ñ Ôð ðð ð ð ð �”ñ ô ð ð* 0Ð<Ð<Ð<Ð ð €�$ÐÑÔð,ð ,ð ,ð ,ð ,ñ ,ô ,ñ Ôð,ð^6ð 6ð 6ð 6ð 6�”	ñ 6ô 6ð 6ð0"ð "ð "ð "ð "ñ "ô "ð "ð" €�$ÐÑÔðð ð ð ð ˜	ñ ô ñ Ôðð& €�$ÐÑÔðBð Bð Bð Bð B˜ñ Bô Bñ ÔðBð, €�$ÐÑÔðIð Ið Ið Ið I˜Yñ Iô Iñ ÔðIð „ðð ð ð ð ˜$œ)ñ ô ñ „ðð* €�$ÐÑÔð&ð &ð &ð &ð &�9ñ &ô &ñ Ôð&ð4 €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð  €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð  €�$ÐÑÔðð ð ð ð Ð6ñ ô ñ Ôðð  €�$ÐÑÔðð ð ð ð Ð8ñ ô ñ Ôðð+Ð5ð +ð +ð +ð +ðhGð hGð hGð hGð hGñ hGô hGð hGðV' ð ' ð ' ð ' ð ' �lñ ' ô ' ð ' ð ' ð ' r/   