Ë
    sPêj‚}  ã                   ó   — 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mZ d dl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 d
dlmZ d
dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d
dl)m*Z* ddl+m,Z,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z: ddl;m<Z<m=Z=m>Z>m?Z? ddl@mAZAmBZBmCZC ddlDmEZE ddlFmGZGmHZHmIZI ddlJmKZK e	rd dlLmMZM ejœ                   G d„ deOe«      «       ZP ej¢                  d ¬!«       G d"„ d#«      «       ZR ej¢                  d ¬!«       G d$„ d%«      «       ZS ej¢                  h d&£d ¬'«       G d(„ d)«      «       ZTy)*é    )Ú	GeneratorÚIterable)Údatetime)ÚEnum)Úchain)ÚTYPE_CHECKINGÚOptionalÚUnion)ÚUUIDÚuuid4)ÚwarnN)Ú	SortedSeté   )ÚComparableTuple)Úget_now_utc)Ú)LicenseExpressionAlongWithOthersExceptionÚ#UnknownComponentDependencyException)ÚSchemaDeprecationWarning1Dot6)ÚSchemaVersion1Dot0ÚSchemaVersion1Dot1ÚSchemaVersion1Dot2ÚSchemaVersion1Dot3ÚSchemaVersion1Dot4ÚSchemaVersion1Dot5ÚSchemaVersion1Dot6ÚSchemaVersion1Dot7)ÚUrnUuidHelperé   )Ú_BOM_LINK_PREFIXÚExternalReferenceÚProperty)ÚBomRef)Ú	Component)ÚOrganizationalContactÚOrganizationalEntity)ÚDefinitions)Ú
DependableÚ
Dependency)ÚLicenseÚLicenseExpressionÚLicenseRepositoryÚ%_LicenseRepositorySerializationHelper)Ú	LifecycleÚLifecycleRepositoryÚ_LifecycleRepositoryHelper)ÚService)ÚToolÚToolRepositoryÚ_ToolRepositoryHelper)ÚVulnerability)Ú
PackageURLc                   ó$   — e Zd ZdZdZdZdZdZdZy)ÚTlpClassificationaT  
    Enum object that defines the Traffic Light Protocol (TLP) classification that controls the sharing and distribution
    of the data that the BOM describes.

    .. note::
        Introduced in CycloneDX v1.7

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_tlpClassificationType
    ÚCLEARÚGREENÚAMBERÚAMBER_AND_STRICTÚREDN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r8   r9   r:   r;   r<   © ó    úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/cyclonedx/model/bom.pyr7   r7   =   s#   „ ñ	ð €EØ€EØ€EØ)ÐØ
�CrB   r7   T)Ú%ignore_unknown_during_deserializationc                   óÞ   — e Zd ZdZddœdee   ddfd„Ze ej                  d«      defd„«       «       Z
e
j                  deddfd	„«       Z
defd
„Zdedefd„Zdedefd„Zdefd„Zdefd„Zy)ÚDistributionConstraintsam  
    Our internal representation of the `distributionConstraints` complex type.
    Conditions and constraints governing the sharing and distribution of the data or components described by this BOM.

    .. note::
        Introduced in CycloneDX v1.7

    .. note::
        See the CycloneDX Schema definition: https://cyclonedx.org/docs/1.7/xml/#type_metadata
    N©ÚtlprH   Úreturnc                ó6   — |xs t         j                  | _        y ©N)r7   r8   rH   ©ÚselfrH   s     rC   Ú__init__z DistributionConstraints.__init__^   s   € ð Ò1Ô+×1Ñ1ˆ�rB   r   c                 ó   — | j                   S )zÕ
        The Traffic Light Protocol (TLP) classification that controls the sharing and distribution of the data that the
        BOM describes.

        Returns:
            `TlpClassification` enum value
        ©Ú_tlp©rM   s    rC   rH   zDistributionConstraints.tlpd   s   € ð �y‰yÐrB   c                 ó   — || _         y rK   rP   rL   s     rC   rH   zDistributionConstraints.tlpp   s	   € àˆ�	rB   c                 ó,   — t        | j                  «      S rK   )Ú_ComparableTuplerH   rR   s    rC   Ú__comparable_tuplez*DistributionConstraints.__comparable_tuplet   s   € Ü §¡Ó)Ð)rB   Úotherc                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S y©NF)Ú
isinstancerF   Ú*_DistributionConstraints__comparable_tuple©rM   rW   s     rC   Ú__eq__zDistributionConstraints.__eq__w   s-   € Ü�eÔ4Ô5Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØrB   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k  S t        S rK   )rZ   rF   r[   ÚNotImplementedr\   s     rC   Ú__lt__zDistributionConstraints.__lt__|   s0   € Ü�eÔ4Ô5Ø×*Ñ*Ó,¨u×/GÑ/GÓ/IÑIÐIÜÐrB   c                 ó4   — t        | j                  «       «      S rK   )Úhashr[   rR   s    rC   Ú__hash__z DistributionConstraints.__hash__�   ó   € Ü�D×+Ñ+Ó-Ó.Ð.rB   c                 ó"   — d| j                   › d�S )Nz<DistributionConstraints tlp=ú>rG   rR   s    rC   Ú__repr__z DistributionConstraints.__repr__„   s   € Ø.¨t¯x©x¨j¸Ð:Ð:rB   )r=   r>   r?   r@   r	   r7   rN   ÚpropertyÚserializableÚxml_sequencerH   ÚsetterrU   r[   ÚobjectÚboolr]   r`   Úintrc   Ústrrg   rA   rB   rC   rF   rF   Q   sÌ   „ ñ	ð ,0ò2àÐ'Ñ(ð2ð 
ó2ð Ø€\×Ñ˜qÓ!ðÐ&ò ó "ó ðð 	‡Z�ZðÐ(ð ¨Tò ó ðð*Ð$4ó *ð˜Fð  tó ð
˜Fð  tó ð
/˜#ó /ð;˜#ô ;rB   rF   c                   ó:  — e Zd ZdZddddddddddddœdeeee   ef      deee	      dee
   dee   deee      d	eee      d
ee   dee   deee      dee   dee   ddfd„Ze ej(                  ej*                  j,                  «       ej.                  d«      defd„«       «       «       Zej2                  d
eddfd„«       Ze ej4                  e«       ej4                  e«       ej4                  e«       ej(                  e«       ej.                  d«      defd„«       «       «       «       «       «       Z e j2                  dee   ddfd„«       Z e ej(                  e!«       ej.                  d«      defd„«       «       «       Z"e"j2                  deee   ef   ddfd„«       Z"e ejF                  ejH                  jJ                  d«       ej.                  d«      d:d„«       «       «       Z&e&j2                  dee	   ddfd„«       Z&e ej.                  d«      dee
   fd„«       «       Z'e'j2                  dee
   ddfd „«       Z'e ej4                  e(«       ej4                  e)«       ej4                  e*«       ej4                  e«       ej4                  e«       ej4                  e«       ej.                  d!«      dee   fd"„«       «       «       «       «       «       «       «       Z+e+j2                  dee   ddfd#„«       Z+e ej4                  e«       ej4                  e«       ej.                  d$«      dee   fd%„«       «       «       «       Z,e,j2                  dee   ddfd&„«       Z,e ej.                  d'«      dee   fd(„«       «       Z-e-j2                  dee   ddfd)„«       Z-e ej4                  e)«       ej4                  e*«       ej4                  e«       ej4                  e«       ej4                  e«       ej(                  e.«       ej.                  d*«      de/fd+„«       «       «       «       «       «       «       «       Z0e0j2                  dee   ddfd,„«       Z0e ej4                  e)«       ej4                  e*«       ej4                  e«       ej4                  e«       ej4                  e«       ejF                  ejH                  jJ                  d-«       ej.                  d.«      d;d/„«       «       «       «       «       «       «       «       Z1e1j2                  d	ee   ddfd0„«       Z1e ej4                  e«       ej.                  d1«      dee   fd2„«       «       «       Z2e2j2                  dee   ddfd3„«       Z2de3fd4„Z4d5e5de6fd6„Z7d5e5de6fd7„Z8de9fd8„Z:de;fd9„Z<y)<ÚBomMetaDatazÝ
    This is our internal representation of the metadata complex type within the CycloneDX standard.

    .. note::
        See the CycloneDX Schema for Bom metadata: https://cyclonedx.org/docs/1.7/xml/#type_metadata
    N)ÚtoolsÚauthorsÚ	componentÚsupplierÚlicensesÚ
propertiesÚ	timestampÚmanufacturerÚ
lifecyclesÚdistribution_constraintsÚmanufacturerr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   rI   c                óÞ   — |xs
 t        «       | _        |xs g | _        |xs g | _        || _        || _        |xs g | _        |xs g | _        || _        |	xs g | _	        |
| _
        || _        y rK   )Ú_get_now_utcrx   rr   rs   rt   ru   rv   rw   ry   rz   r{   r|   )rM   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   s               rC   rN   zBomMetaData.__init__‘   sq   € ð #Ò4¤l£nˆŒØ’[˜bˆŒ
Ø’} "ˆŒØ"ˆŒØ ˆŒØ š BˆŒØ$Ò*¨ˆŒØ(ˆÔØ$Ò*¨ˆŒØ(@ˆÔ%à&ˆÕrB   r   c                 ó   — | j                   S )z‘
        The date and time (in UTC) when this BomMetaData was created.

        Returns:
            `datetime` instance in UTC timezone
        ©Ú
_timestamprR   s    rC   rx   zBomMetaData.timestamp­   s   € ð �‰ÐrB   c                 ó   — || _         y rK   r€   )rM   rx   s     rC   rx   zBomMetaData.timestamp¹   s	   € à#ˆ�rB   r   c                 ó   — | j                   S )zl
        An optional list of BOM lifecycle stages.

        Returns:
            Set of `Lifecycle`
        )Ú_lifecyclesrR   s    rC   rz   zBomMetaData.lifecycles½   s   € ð ×ÑÐrB   c                 ó$   — t        |«      | _        y rK   )r.   r„   )rM   rz   s     rC   rz   zBomMetaData.lifecyclesÌ   s   € ä.¨zÓ:ˆÕrB   é   c                 ó   — | j                   S )zn
        Tools used to create this BOM.

        Returns:
            :class:`ToolRepository` object.
        )Ú_toolsrR   s    rC   rr   zBomMetaData.toolsÐ   s   € ð �{‰{ÐrB   c                 óV   — t        |t        «      r|| _        y t        |¬«      | _        y )N)rr   )rZ   r2   rˆ   )rM   rr   s     rC   rr   zBomMetaData.toolsÜ   s&   € ô ˜%¤Ô0ð ˆ�ä eÔ,ð 	�rB   Úauthoré   c                 ó   — | j                   S )zû
        The person(s) who created the BOM.

        Authors are common in BOMs created through manual processes.

        BOMs created through automated means may not have authors.

        Returns:
            Set of `OrganizationalContact`
        )Ú_authorsrR   s    rC   rs   zBomMetaData.authorsâ   s   € ð �}‰}ÐrB   c                 ó$   — t        |«      | _        y rK   )r   r�   )rM   rs   s     rC   rs   zBomMetaData.authorsò   s   € ä! 'Ó*ˆ�rB   é   c                 ó   — | j                   S )z¦
        The (optional) component that the BOM describes.

        Returns:
            `cyclonedx.model.component.Component` instance for this Bom Metadata.
        ©Ú
_componentrR   s    rC   rt   zBomMetaData.componentö   s   € ð �‰ÐrB   c                 ó   — || _         y)zæ
        The (optional) component that the BOM describes.

        Args:
            component
                `cyclonedx.model.component.Component` instance to add to this Bom Metadata.

        Returns:
            None
        Nr‘   ©rM   rt   s     rC   rt   zBomMetaData.component  s   € ð $ˆ�rB   é   c                 ó   — | j                   S )z¢
        The organization that manufactured the component that the BOM describes.

        Returns:
            `OrganizationalEntity` if set else `None`
        )Ú_manufacturerR   s    rC   r|   zBomMetaData.manufacture  s   € ð × Ñ Ð rB   c                 óB   — |�t        j                  dd«       || _        y)z›
        @todo Based on https://github.com/CycloneDX/specification/issues/346,
              we should set this data on `.component.manufacturer`.
        Nzbom.metadata.manufacturez#bom.metadata.component.manufacturer)r   Ú_warnr—   )rM   r|   s     rC   r|   zBomMetaData.manufacture   s$   € ð Ð"Ü)×/Ñ/Ð0JÐLqÔrØ'ˆÕrB   é   c                 ó   — | j                   S )a  
        The organization that created the BOM.
        Manufacturer is common in BOMs created through automated processes. BOMs created through manual means may have
        `@.authors` instead.

        Returns:
            `OrganizationalEntity` if set else `None`
        ©Ú_manufacturerrR   s    rC   ry   zBomMetaData.manufacturer*  s   € ð ×!Ñ!Ð!rB   c                 ó   — || _         y rK   rœ   )rM   ry   s     rC   ry   zBomMetaData.manufacturer9  s
   € à)ˆÕrB   é   c                 ó   — | j                   S )a   
        The organization that supplied the component that the BOM describes.

        The supplier may often be the manufacturer, but may also be a distributor or repackager.

        Returns:
            `OrganizationalEntity` if set else `None`
        ©Ú	_supplierrR   s    rC   ru   zBomMetaData.supplier=  s   € ð �~‰~ÐrB   c                 ó   — || _         y rK   r¡   )rM   ru   s     rC   ru   zBomMetaData.supplierJ  ó	   € à!ˆ�rB   é	   c                 ó   — | j                   S )z„
        A optional list of statements about how this BOM is licensed.

        Returns:
            Set of `LicenseChoice`
        )Ú	_licensesrR   s    rC   rv   zBomMetaData.licensesN  s   € ð �~‰~ÐrB   c                 ó$   — t        |«      | _        y rK   )r+   r§   )rM   rv   s     rC   rv   zBomMetaData.licenses_  s   € ä*¨8Ó4ˆ�rB   rh   é
   c                 ó   — | j                   S )a  
        Provides the ability to document properties in a key/value store. This provides flexibility to include data not
        officially supported in the standard without having to use additional namespaces or create extensions.

        Property names of interest to the general public are encouraged to be registered in the CycloneDX Property
        Taxonomy - https://github.com/CycloneDX/cyclonedx-property-taxonomy. Formal registration is OPTIONAL.

        Return:
            Set of `Property`
        ©Ú_propertiesrR   s    rC   rw   zBomMetaData.propertiesc  s   € ð& ×ÑÐrB   c                 ó$   — t        |«      | _        y rK   ©r   r¬   ©rM   rw   s     rC   rw   zBomMetaData.propertiesx  ó   € ä$ ZÓ0ˆÕrB   é   c                 ó   — | j                   S )zÎ
        Conditions and constraints governing the sharing and distribution of the data or components described by this
        BOM.

        Returns:
            `DistributionConstraints` or `None`
        ©Ú_distribution_constraintsrR   s    rC   r{   z$BomMetaData.distribution_constraints|  s   € ð ×-Ñ-Ð-rB   c                 ó   — || _         y rK   r³   )rM   r{   s     rC   r{   z$BomMetaData.distribution_constraints‰  s
   € à)AˆÕ&rB   c                 óR  — t        t        | j                  «      | j                  t        | j                  «      | j                  t        | j
                  «      | j                  t        | j                  «      | j                  | j                  | j                  | j                  f«      S rK   )rU   rs   rt   rv   r|   rw   r{   rz   ru   rx   rr   ry   rR   s    rC   rV   zBomMetaData.__comparable_tuple�  sv   € ÜÜ˜TŸ\™\Ó*¨D¯N©NÔ<LÈTÏ]É]Ó<[Ð]a×]mÑ]mÜ˜TŸ_™_Ó-¨t×/LÑ/LÜ˜TŸ_™_Ó-¨t¯}©}¸d¿n¹nÈdÏjÉjÐZ^×ZkÑZkð!
ó ð 	rB   rW   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrY   )rZ   rq   Ú_BomMetaData__comparable_tupler\   s     rC   r]   zBomMetaData.__eq__”  s,   € Ü�eœ[Ô)Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØrB   c                 óp   — t        |t        «      r!| j                  «       |j                  «       k(  S t        S rK   )rZ   rq   r¸   r_   r\   s     rC   r`   zBomMetaData.__lt__™  s/   € Ü�eœ[Ô)Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJÜÐrB   c                 ó4   — t        | j                  «       «      S rK   )rb   r¸   rR   s    rC   rc   zBomMetaData.__hash__ž  rd   rB   c                 ó<   — d| j                   › d| j                  › d�S )Nz<BomMetaData timestamp=z, component=rf   )rx   rt   rR   s    rC   rg   zBomMetaData.__repr__¡  s"   € Ø(¨¯©Ð(8¸ÀTÇ^Á^ÐDTÐTUÐVÐVrB   )rI   z SortedSet[OrganizationalContact]©rI   zSortedSet[Property])=r=   r>   r?   r@   r	   r
   r   r1   r2   r$   r#   r%   r)   r!   r   r-   rF   rN   rh   ri   Útype_mappingÚhelpersÚXsdDateTimerj   rx   rk   Úviewr   r   r   r/   r.   rz   r3   rr   Ú	xml_arrayÚXmlArraySerializationTypeÚNESTEDrs   rt   r   r   r   r|   ry   ru   r,   r+   rv   rw   r{   rU   r¸   rl   rm   r]   r`   rn   rc   ro   rg   rA   rB   rC   rq   rq   ˆ   sù  „ ñð BFØ=AØ)-Ø37Ø04Ø37Ø(,Ø7;Ø48ØFJà6:ò'à˜˜h t™n¨nÐ<Ñ=Ñ>ð'ð ˜(Ð#8Ñ9Ñ:ð'ð ˜IÑ&ð	'ð
 Ð/Ñ0ð'ð ˜8 GÑ,Ñ-ð'ð ˜X hÑ/Ñ0ð'ð ˜HÑ%ð'ð Ð3Ñ4ð'ð ˜X iÑ0Ñ1ð'ð #+Ð+BÑ"Cð'ð Ð2Ñ3ð'ð 
ó'ð8 Ø€\×Ñ˜|×3Ñ3×?Ñ?Ó@Ø€\×Ñ˜qÓ!ð˜8ò ó "ó Aó ðð ×Ñð$ 8ð $°ò $ó ð$ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ9Ó:Ø€\×Ñ˜qÓ!ð Ð/ò  ó "ó ;ó +ó +ó +ó ð ð ×Ñð; X¨iÑ%8ð ;¸Tò ;ó ð;ð Ø€\×ÑÐ4Ó5Ø€\×Ñ˜qÓ!ð�~ò ó "ó 6ó ðð ‡\�\ð-˜5 ¨$¡°Ð!?Ñ@ð -ÀTò -ó ð-ð
 Ø€\×Ñ˜L×BÑB×IÑIÈ8ÓTØ€\×Ñ˜qÓ!òó "ó Uó ðð ‡^�^ð+˜xÐ(=Ñ>ð +À4ò +ó ð+ð Ø€\×Ñ˜qÓ!ð˜8 IÑ.ò ó "ó ðð ×Ñð$ 8¨IÑ#6ð $¸4ò $ó ð$ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜qÓ!ð!˜XÐ&:Ñ;ò !ó "ó +ó +ó +ó +ó +ó +ó ð!ð ×Ñð( xÐ0DÑ'Eð (È$ò (ó ð(ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜qÓ!ð	"˜hÐ';Ñ<ò 	"ó "ó +ó +ó ð	"ð ×Ñð*¨Ð2FÑ)Gð *ÈDò *ó ð*ð Ø€\×Ñ˜qÓ!ð	˜(Ð#7Ñ8ò 	ó "ó ð	ð ‡_�_ð" Ð*>Ñ!?ð "ÀDò "ó ð"ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐDÓEØ€\×Ñ˜qÓ!ðÐ+ò ó "ó Fó +ó +ó +ó +ó +ó ðð ‡_�_ð5 ¨'Ñ!2ð 5°tò 5ó ð5ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ:ÓVØ€\×Ñ˜rÓ"ò ó #ó Wó +ó +ó +ó +ó +ó ð ð ×Ñð1 X¨hÑ%7ð 1¸Dò 1ó ð1ð Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð.¨(Ð3JÑ*Kò .ó #ó +ó ð.ð ×$Ñ$ðBÀÐJaÑAbð BÐgkò Bó %ðBðÐ$4ó ð˜Fð  tó ð
˜Fð  tó ð
/˜#ó /ðW˜#ô WrB   rq   >   ú$schemaÚ
bom_formatÚspec_version)Úignore_during_deserializationrD   c                   ó  — e Zd ZdZdddddddddddœ
deee      deee      deee      dee	   d	e
d
ee   deee      deee      deee      dee   ddfd„Ze ej&                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej:                  «       de	fd„«       «       «       «       «       «       «       «       «       «       Zej>                  de	ddfd„«       Ze ej:                  «       de
fd„«       «       Z e j>                  d	e
ddfd„«       Z e ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ejB                  d«      defd„«       «       «       «       «       «       «       «       Z"e"j>                  d
eddfd„«       Z"e ejF                  e$«       ejF                  e«       ejJ                  ejL                  jN                  d«       ejB                  d«      dGd„«       «       «       «       «       Z(e(j>                  dee   ddfd„«       Z(e ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ejJ                  ejL                  jN                  d«       ejB                  d«      dHd„«       «       «       «       «       «       «       «       «       Z)e)j>                  dee   ddfd„«       Z)e ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ejJ                  ejL                  jN                  d «       ejB                  d!«      dId"„«       «       «       «       «       «       «       «       «       «       Z*e*j>                  dee   ddfd#„«       Z*e ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ejJ                  ejL                  jN                  d$«       ejB                  d%«      dJd&„«       «       «       «       «       «       «       «       «       Z+e+j>                  dee   ddfd'„«       Z+e ej*                  e«       ej*                  e«       ej*                  e«       ejJ                  ejL                  jN                  d(«       ejB                  d)«      dKd*„«       «       «       «       «       «       Z,e,j>                  dee   ddfd+„«       Z,e ej*                  e«       ej*                  e«       ej*                  e«       ej*                  e«       ejJ                  ejL                  jN                  d,«       ejB                  d-«      dLd/„«       «       «       «       «       «       «       Z-e-j>                  dee   ddfd0„«       Z-e ej*                  e«       ej*                  e«       ejB                  d1«      dee   fd2„«       «       «       «       Z.e.j>                  deddfd3„«       Z.d4ed5   dee   fd6„Z/de0fd7„Z1dede2fd8„Z3de4eddf   fd9„Z5d:e6dd.fd;„Z7de2fd<„Z8dMd=e9d>eee9      ddfd?„Z:de0fd@„Z;de2fdA„Z<de=fdB„Z>dCe?de2fdD„Z@de
fdE„ZAde0fdF„ZBy)NÚBoma!  
    This is our internal representation of a bill-of-materials (BOM).

    Once you have an instance of `cyclonedx.model.bom.Bom`, you can pass this to an instance of
    `cyclonedx.output.BaseOutput` to produce a CycloneDX document according to a specific schema version and format.
    Nr   )
Ú
componentsÚservicesÚexternal_referencesÚserial_numberÚversionÚmetadataÚdependenciesÚvulnerabilitiesrw   ÚdefinitionsrÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rw   rÒ   rI   c       
         ó  — |xs
 t        «       | _        || _        |xs
 t        «       | _        |xs g | _        |xs g | _        |xs g | _        |xs g | _        |xs g | _	        |	xs g | _
        |
xs
 t        «       | _        y)z©
        Create a new Bom that you can manually/programmatically add data to later.

        Returns:
            New, empty `cyclonedx.model.bom.Bom` instance.
        N)r   rÍ   rÎ   rq   rÏ   rÊ   rË   rÌ   rÑ   rÐ   rw   r&   rÒ   )rM   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rw   rÒ   s              rC   rN   zBom.__init__³  s�   € ð& +Ò5¬e«gˆÔØˆŒØ Ò1¤K£MˆŒØ$Ò*¨ˆŒØ š BˆŒØ#6Ò#<¸"ˆÔ Ø.Ò4°"ˆÔØ(Ò.¨BˆÔØ$Ò*¨ˆŒØ&Ò7¬+«-ˆÕrB   c                 ó   — | j                   S )zt
        Unique UUID for this BOM

        Returns:
            `UUID` instance
            `UUID` instance
        ©Ú_serial_numberrR   s    rC   rÍ   zBom.serial_numberÑ  s   € ð$ ×"Ñ"Ð"rB   c                 ó   — || _         y rK   rÕ   )rM   rÍ   s     rC   rÍ   zBom.serial_numberå  s
   € à+ˆÕrB   c                 ó   — | j                   S rK   ©Ú_versionrR   s    rC   rÎ   zBom.versioné  s   € ð �}‰}ÐrB   c                 ó   — || _         y rK   rÙ   )rM   rÎ   s     rC   rÎ   zBom.versionî  s	   € àˆ�rB   r©   c                 ó   — | j                   S )a  
        Get our internal metadata object for this Bom.

        Returns:
            Metadata object instance for this Bom.

        .. note::
            See the CycloneDX Schema for Bom metadata: https://cyclonedx.org/docs/1.7/xml/#type_metadata
        ©Ú	_metadatarR   s    rC   rÏ   zBom.metadataò  s   € ð$ �~‰~ÐrB   c                 ó   — || _         y rK   rÝ   )rM   rÏ   s     rC   rÏ   zBom.metadata  r¤   rB   rt   é   c                 ó   — | j                   S )z}
        Get all the Components currently in this Bom.

        Returns:
             Set of `Component` in this Bom
        )Ú_componentsrR   s    rC   rÊ   zBom.components
  s   € ð ×ÑÐrB   c                 ó$   — t        |«      | _        y rK   )r   râ   )rM   rÊ   s     rC   rÊ   zBom.components  r°   rB   Úserviceé   c                 ó   — | j                   S )zy
        Get all the Services currently in this Bom.

        Returns:
             Set of `Service` in this BOM
        )Ú	_servicesrR   s    rC   rË   zBom.services  s   € ð  �~‰~ÐrB   c                 ó$   — t        |«      | _        y rK   )r   rç   )rM   rË   s     rC   rË   zBom.services.  s   € ä" 8Ó,ˆ�rB   Ú	referenceé(   c                 ó   — | j                   S )z·
        Provides the ability to document external references related to the BOM or to the project the BOM describes.

        Returns:
            Set of `ExternalReference`
        )Ú_external_referencesrR   s    rC   rÌ   zBom.external_references2  s   € ð" ×(Ñ(Ð(rB   c                 ó$   — t        |«      | _        y rK   )r   rì   )rM   rÌ   s     rC   rÌ   zBom.external_referencesE  s   € ä$-Ð.AÓ$BˆÕ!rB   Ú
dependencyé2   c                 ó   — | j                   S rK   )Ú_dependenciesrR   s    rC   rÐ   zBom.dependenciesI  s   € ð ×!Ñ!Ð!rB   c                 ó$   — t        |«      | _        y rK   )r   rñ   )rM   rÐ   s     rC   rÐ   zBom.dependenciesU  s   € ä& |Ó4ˆÕrB   rh   éF   c                 ó   — | j                   S )a  
        Provides the ability to document properties in a name/value store. This provides flexibility to include data
        not officially supported in the standard without having to use additional namespaces or create extensions.
        Property names of interest to the general public are encouraged to be registered in the CycloneDX Property
        Taxonomy - https://github.com/CycloneDX/cyclonedx-property-taxonomy. Formal registration is OPTIONAL.

        Return:
            Set of `Property`
        r«   rR   s    rC   rw   zBom.propertiesf  s   € ð$ ×ÑÐrB   c                 ó$   — t        |«      | _        y rK   r®   r¯   s     rC   rw   zBom.propertiesz  r°   rB   ÚvulnerabilityéP   úSortedSet[Vulnerability]c                 ó   — | j                   S )zp
        Get all the Vulnerabilities in this BOM.

        Returns:
             Set of `Vulnerability`
        )Ú_vulnerabilitiesrR   s    rC   rÑ   zBom.vulnerabilities~  s   € ð ×$Ñ$Ð$rB   c                 ó$   — t        |«      | _        y rK   )r   rú   )rM   rÑ   s     rC   rÑ   zBom.vulnerabilitiesŽ  s   € ä )¨/Ó :ˆÕrB   én   c                 ób   — t        | j                  j                  «      dkD  r| j                  S dS )z\
        The repository for definitions

        Returns:
            `Definitions`
        r   N)ÚlenÚ_definitionsÚ	standardsrR   s    rC   rÒ   zBom.definitions¨  s-   € ô %(¨×(9Ñ(9×(CÑ(CÓ$DÀqÒ$Hˆt× Ñ ÐRÈdÐRrB   c                 ó   — || _         y rK   )rÿ   )rM   rÒ   s     rC   rÒ   zBom.definitionsµ  s
   € à'ˆÕrB   Úpurlr5   c                 óŠ   — |r<| j                   D �cg c]  }|j                  |k(  sŒ|‘Œ }}t        |«      dk(  r|d   S yc c}w )a	  
        Get a Component already in the Bom by its PURL

        Args:
             purl:
                An instance of `packageurl.PackageURL` to look and find `Component`.

        Returns:
            `Component` or `None`

        .. deprecated:: next
        r   r   N)rÊ   r  rþ   )rM   r  ÚxÚfounds       rC   Úget_component_by_purlzBom.get_component_by_purl¹  sE   € ñ Ø $§¡ÖB˜1°1·6±6¸T³>’QÐBˆEÐBÜ�5‹z˜QŠØ˜Q‘x�àùò	 Cs
   ‘A ¦A c                 ó.   — | j                   j                  S )z³
        Get the unique reference for this Bom.

        Returns:
            URN formatted UUID that uniquely identified this Bom instance.

        .. deprecated:: next
        )rÍ   ÚurnrR   s    rC   Úget_urn_uuidzBom.get_urn_uuidÍ  s   € ð ×!Ñ!×%Ñ%Ð%rB   c                 ó   — || j                   v S )ab  
        Check whether this Bom contains the provided Component.

        Args:
            component:
                The instance of `cyclonedx.model.component.Component` to check if this Bom contains.

        Returns:
            `bool` - `True` if the supplied Component is part of this Bom, `False` otherwise.

        .. deprecated:: next
        )rÊ   r”   s     rC   Úhas_componentzBom.has_componentØ  s   € ð ˜DŸO™OÐ+Ð+rB   c              #   óò   K  — | j                   j                  r.| j                   j                  j                  d¬«      E d {  –—†  | j                  D ]  }|j                  d¬«      E d {  –—†  Œ y 7 Œ07 Œ	­w)NT©Úinclude_self)rÏ   rt   Úget_all_nested_componentsrÊ   )rM   Úcs     rC   Ú_get_all_componentszBom._get_all_componentsç  sk   è ø€ Ø�=‰=×"Ò"Ø—}‘}×.Ñ.×HÑHÐVZÐHÓ[×[Ð[Ø—‘ò 	FˆAØ×2Ñ2ÀÐ2ÓE×EÑEñ	Fð \øàEús$   ‚A A7ÁA3Á(A7Á+A5Á,A7Á5A7Úbom_refc                 ó´   — t        «       }| j                  D ]>  }|j                  D ]-  }|j                  |j                  k(  sŒ|j                  |«       Œ/ Œ@ |S )a	  
        Get all known Vulnerabilities that affect the supplied bom_ref.

        Args:
            bom_ref: `BomRef`

        Returns:
            `SortedSet` of `Vulnerability`

        .. deprecated:: next
            Deprecated without any replacement.
        )r   rÑ   ÚaffectsÚrefÚvalueÚadd)rM   r  rÑ   ÚvÚtargets        rC   Úget_vulnerabilities_for_bom_refz#Bom.get_vulnerabilities_for_bom_refí  sY   € ô 5>³KˆØ×%Ñ%ò 	+ˆAØŸ)™)ò +�Ø—:‘: §¡Ó.Ø#×'Ñ'¨Õ*ñ+ð	+ð ÐrB   c                 ó,   — t        | j                  «      S )a  
        Check whether this Bom has any declared vulnerabilities.

        Returns:
            `bool` - `True` if this Bom has at least one Vulnerability, `False` otherwise.

        .. deprecated:: next
            Deprecated without any replacement.
        )rm   rÑ   rR   s    rC   Úhas_vulnerabilitieszBom.has_vulnerabilities  s   € ô �D×(Ñ(Ó)Ð)rB   r  Ú
depends_onc           	      óZ  ‡— t        t        ˆfd„| j                  «      d «      }|r)|rf|j                  j                  t	        d„ |«      «       n?| j
                  j                  t        ‰j                  |rt	        d„ |«      ng ¬«      «       |r|D ]  }| j                  |d ¬«       Œ y y )Nc                 ó6   •— | j                   ‰j                  k(  S rK   )r  r  )Ú_dr  s    €rC   ú<lambda>z)Bom.register_dependency.<locals>.<lambda>  s   ø€  B§F¡F¨f¯n©nÑ$<€ rB   c                 ó.   — t        | j                  ¬«      S ©N©r  ©r(   r  )r   s    rC   r!  z)Bom.register_dependency.<locals>.<lambda>  s   € ´jÀRÇZÁZÔ6P€ rB   c                 ó.   — t        | j                  ¬«      S r#  r%  )Ú_deps    rC   r!  z)Bom.register_dependency.<locals>.<lambda>  s   € ¬j¸T¿\¹\Ô.J€ rB   )r  rÐ   )r  r  )
ÚnextÚfilterrÐ   ÚupdateÚmaprñ   r  r(   r  Úregister_dependency)rM   r  r  r   Ú_d2s    `   rC   r,  zBom.register_dependency  s¡   ø€ Ü”&Ó<¸d×>OÑ>OÓPÐRVÓWˆÙáØ—‘×&Ñ&¤sÑ+PÐR\Ó']Õ^ð ×Ñ×"Ñ"¤:Ø—N‘NÙ[eœSÑ!JÈJÔWÐkmô$ô ñ
 à!ò F�Ø×(Ñ(°ÀÐ(ÕEñFð rB   c                 óD   — t         › | j                  › d| j                  › �S )zV
        .. deprecated:: next
            Deprecated without any replacement.
        ú/)r   rÍ   rÎ   rR   s    rC   r  zBom.urn  s%   € ô #Ð# D×$6Ñ$6Ð#7°q¸¿¹¸ÐGÐGrB   c           	      ó  ‡ — ‰ j                   j                  r&‰ j                  ‰ j                   j                  ¬«       ‰ j                  D ]  }‰ j                  |¬«       Œ ‰ j                  D ]  }‰ j                  |¬«       Œ t        t        d„ ‰ j                  «       «      «      t        t        d„ ‰ j                  «      «      z  }t        t        d„ ‰ j                  D «       t        j                  d„ ‰ j                  D «       «      «      «      }||z
  }t        |«      dkD  rt        d|› �«      ‚‰ j                   j                  rnt        ‰ j                  «      dkD  rVt        t        ˆ fd„‰ j                  «      «      s4t        d	‰ j                   j                  j                  › d
�t         d¬«       t        ‰ j                   g‰ j                   j                  r&‰ j                   j                  j#                  d¬«      ng t        j                  d„ ‰ j                  D «       «      ‰ j                  «      D ]E  }t        |j$                  «      dkD  sŒt        d„ |j$                  D «       «      sŒ9t'        d|›�«      ‚ y)a
  
        Perform data-model level validations to make sure we have some known data integrity prior to attempting output
        of this `Bom`

        Returns:
             `bool`

        .. deprecated:: next
            Deprecated without any replacement.
        )r  c                 ó   — | j                   S rK   ©r  )r  s    rC   r!  zBom.validate.<locals>.<lambda><  s
   € ¨q¯y©y€ rB   c                 ó   — | j                   S rK   r2  )Úss    rC   r!  zBom.validate.<locals>.<lambda>=  s
   € ˜!Ÿ)™)€ rB   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wrK   r$  ©Ú.0Úds     rC   ú	<genexpr>zBom.validate.<locals>.<genexpr>?  s   è ø€ Ò.�qˆQ�U�UÑ.ùs   ‚c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrK   )Údependencies_as_bom_refsr6  s     rC   r9  zBom.validate.<locals>.<genexpr>@  s   è ø€ ÒXÀ × :Ñ :× <ÑXùó   ‚r   zsOne or more Components have Dependency references to Components/Services that are not known in this BOM. They are: c                 ó’   •— | j                   ‰j                  j                  j                  k(  xr t	        | j
                  «      dkD  S )Nr   )r  rÏ   rt   r  rþ   rÐ   )r8  rM   s    €rC   r!  zBom.validate.<locals>.<lambda>K  s4   ø€ �a—e‘e˜tŸ}™}×6Ñ6×>Ñ>Ñ>ÒZÄ3ÀqÇ~Á~ÓCVÐYZÑCZ€ rB   z%The Component this BOM is describing z° has no defined dependencies which means the Dependency Graph is incomplete - you should add direct dependencies to this "root" Component to complete the Dependency Graph data.r   )ÚcategoryÚ
stacklevelTr  c              3   ó@   K  — | ]  }|j                  d ¬«      –— Œ y­w)Tr  N)r  )r7  r  s     rC   r9  zBom.validate.<locals>.<genexpr>[  s   è ø€ ÒhÐST × ;Ñ ;ÈÐ ;× NÑhùs   ‚c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrK   )rZ   r*   )r7  Úlis     rC   r9  zBom.validate.<locals>.<genexpr>^  s   è ø€ Ò-hÐTV¬j¸Ô=N×.OÑ-hùr<  z7Found LicenseExpression along with others licenses in: )rÏ   rt   r,  rÊ   rË   Úsetr+  r  r   rÐ   Úfrom_iterablerþ   r   Úanyr   r  ÚUserWarningr  rv   r   )rM   Ú_cÚ_sÚcomponent_bom_refsÚdependency_bom_refsÚdependency_diffÚelems   `      rC   ÚvalidatezBom.validate'  sF  ø€ ð �=‰=×"Ò"Ø×$Ñ$¨D¯M©M×,CÑ,CÐ$ÔDØ—/‘/ò 	0ˆBØ×$Ñ$¨BÐ$Õ/ð	0à—-‘-ò 	0ˆBØ×$Ñ$¨BÐ$Õ/ð	0ô !¤Ñ%8¸$×:RÑ:RÓ:TÓ!UÓVÔY\ÜÑ# T§]¡]Ó3óZ5ñ 5Ðä!¤%Ù.˜D×-Ñ-Ô.Ü×ÑÑXÀd×FWÑFWÔXÓXó#
ó Ðð .Ð0BÑBˆÜˆÓ !Ò#Ü5ð"Ø"1Ð!2ð4ó5ð 5ð �=‰=×"Ò"¤s¨4¯?©?Ó';¸aÒ'?ÌÌCÛZØ×ÑóM
ô Iô Ø7¸¿¹×8OÑ8O×8TÑ8TÐ7Uð VJð Jô %°õ	ô Ø�]‰]ˆOØTX×TaÑTa×TkÒTkˆD�M‰M×#Ñ#×=Ñ=È4Ð=ÔPÐqsÜ×ÑÑhÐX\×XgÑXgÔhÓhØ�M‰Mó	
ò 	XˆDô �4—=‘=Ó! AÓ%¬#Ñ-hÐZ^×ZgÑZgÔ-hÕ*hÜ?ØMÈdÈXÐVóXð Xð	Xð rB   c                 óJ  — t        | j                  | j                  | j                  t        | j                  «      t        | j
                  «      t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  «      f	«      S rK   )
rU   rÍ   rÎ   rÏ   rÊ   rË   rÌ   rÐ   rw   rÑ   rR   s    rC   rV   zBom.__comparable_tupled  s}   € ÜØ×Ñ §¡¨d¯m©mÔ=MØ—‘ó>!Ü"2°4·=±=Ó"AÜ˜T×5Ñ5Ó6Ô8HØ×!Ñ!ó9#Ü$4°T·_±_Ó$EÜ˜T×1Ñ1Ó2ð!
ó ð 	rB   rW   c                 óf   — t        |t        «      r!| j                  «       |j                  «       k(  S yrY   )rZ   rÉ   Ú_Bom__comparable_tupler\   s     rC   r]   z
Bom.__eq__m  s,   € Ü�eœSÔ!Ø×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJØrB   c                 ó4   — t        | j                  «       «      S rK   )rb   rP  rR   s    rC   rc   zBom.__hash__r  rd   rB   c                 ó:   — d| j                   › dt        | «      › d�S )Nz
<Bom uuid=z, hash=rf   )rÍ   rb   rR   s    rC   rg   zBom.__repr__u  s"   € Ø˜D×.Ñ.Ð/¨w´t¸D³z°lÀ!ÐDÐDrB   )rI   zSortedSet[Component])rI   zSortedSet[Service])rI   zSortedSet[ExternalReference])rI   zSortedSet[Dependency]r¼   )rI   rø   rK   )Cr=   r>   r?   r@   r	   r   r#   r0   r    r   rn   rq   r(   r4   r!   r&   rN   rh   ri   r½   r   rÀ   r   r   r   r   r   r   r   Úxml_attributerÍ   rk   rÎ   rj   rÏ   Úinclude_noner   rÁ   rÂ   rÃ   rÊ   rË   rÌ   rÐ   rw   rÑ   rÒ   r  ro   r	  rm   r  r   r  r"   r  r  r'   r,  r  rM  rU   rP  rl   r]   rc   rg   rA   rB   rC   rÉ   rÉ   ¥  sá	  „ ñð 59Ø04ØEIØ(,ØØ*.Ø7;Ø=AØ37Ø-1ò8à˜X iÑ0Ñ1ð8ð ˜8 GÑ,Ñ-ð8ð & hÐ/@Ñ&AÑBð	8ð
   ‘~ð8ð ð8ð ˜;Ñ'ð8ð ˜x¨
Ñ3Ñ4ð8ð " (¨=Ñ"9Ñ:ð8ð ˜X hÑ/Ñ0ð8ð ˜kÑ*ð8ð 
ó8ð< Ø€\×Ñ˜}Ó-Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÓ!ð#˜tò #ó "ó +ó +ó +ó +ó +ó +ó +ó .ó ð#ð ×Ñð,¨4ð ,°Dò ,ó ð,ð Ø€\×ÑÓ!ð˜ò ó "ó ðð ‡^�^ð ˜sð   tò  ó ð ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜rÓ"ð
˜+ò 
ó #ó +ó +ó +ó +ó +ó +ó ð
ð ‡_�_ð" ð "°ò "ó ð"ð Ø€\×ÑÐ1Ó2Ø€\×ÑÐ1Ó2Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜rÓ"ò ó #ó Xó 3ó 3ó ð
 ð ×Ñð1 X¨iÑ%8ð 1¸Tò 1ó ð1ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ9ÓUØ€\×Ñ˜rÓ"òó #ó Vó +ó +ó +ó +ó +ó +ó ðð ‡_�_ð- ¨'Ñ!2ð -°tò -ó ð-ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ;ÓWØ€\×Ñ˜rÓ"ò)ó #ó Xó +ó +ó +ó +ó +ó +ó +ó ð)ð ×ÑðC°xÐ@QÑ7Rð CÐW[ò Có  ðCð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ<ÓXØ€\×Ñ˜rÓ"ò"ó #ó Yó +ó +ó +ó +ó +ó +ó ð"ð ×Ñð5¨°*Ñ)=ð 5À$ò 5ó ð5ð  ð €\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ:ÓVØ€\×Ñ˜rÓ"ò
 ó #ó Wó +ó +ó +ó ð
 ð ×Ñð1 X¨hÑ%7ð 1¸Dò 1ó ð1ð Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜L×BÑB×IÑIÈ?Ó[Ø€\×Ñ˜rÓ"ò%ó #ó \ó +ó +ó +ó +ó ð%ð ×Ñð;¨x¸Ñ/Fð ;È4ò ;ó ð;ð2 Ø€\×ÑÐ)Ó*Ø€\×ÑÐ)Ó*Ø€\×Ñ˜sÓ#ðS˜X kÑ2ò Só $ó +ó +ó ðSð ×Ñð( {ð (°tò (ó ð(ð¨(°<Ñ*@ð ÀXÈiÑEXó ð(	&˜có 	&ð, yð ,°Tó ,ðF Y¨y¸$ÀÐ/DÑ%Eó Fð°vð ÐB\ó ð(
* Tó 
*ñF¨*ð FÀ(È8ÐT^ÑK_ÑB`ð FÐlpó Fð$H�Só Hð;˜$ó ;ðzÐ$4ó ð˜Fð  tó ð
/˜#ó /ðE˜#ô ErB   rÉ   )UÚcollections.abcr   r   r   Úenumr   Ú	itertoolsr   Útypingr   r	   r
   Úuuidr   r   Úwarningsr   Úpy_serializableri   Úsortedcontainersr   Ú_internal.comparer   rU   Ú_internal.timer   r~   Úexception.modelr   r   Úschema.deprecationr   Úschema.schemar   r   r   r   r   r   r   r   Úserializationr   Ú r   r    r!   r  r"   rt   r#   Úcontactr$   r%   Ú
definitionr&   rî   r'   r(   Úlicenser)   r*   r+   r,   Ú	lifecycler-   r.   r/   rä   r0   Útoolr1   r2   r3   rö   r4   Ú
packageurlr5   Úserializable_enumro   r7   Úserializable_classrF   rq   rÉ   rA   rB   rC   ú<module>rl     s'  ð÷& 0Ý Ý Ý ß 1Ñ 1ß Ý ã &Ý &å CÝ 8ß lÝ >÷	÷ 	ó 	õ *ß ;Ñ ;Ý Ý  ß @Ý #ß .ß iÓ iß QÑ QÝ ß =Ñ =Ý (áÝ%ð ×Ñô˜˜Tó ó  ðð& !€× Ñ ÀtÔL÷3;ð 3;ó Mð3;ðl !€× Ñ ÀtÔL÷YWð YWó MðYWðx !€× Ñ ò#ð +/ô	÷KEð KEóñKErB   