§
    Þ˜ºhtn  ã                   óò  — d dl Z d dlmZmZ d dlmZmZmZmZ d dl	Z	ddl
mZmZmZ ddlmZmZmZ ddlmZ erd d	l	mZmZ  ej        e¦  «        Z e¦   «         r"d d
lmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(  e¦   «         rd dlm)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1  e¦   «         s e¦   «         se 2                    d¦  «         ddœde3dee3         de4e3eegef         f         fd„Z5 G d„ d¦  «        Z6dS )é    N)ÚpartialÚreduce)ÚTYPE_CHECKINGÚCallableÚOptionalÚUnioné   )ÚPretrainedConfigÚis_tf_availableÚis_torch_available)ÚTF2_WEIGHTS_NAMEÚWEIGHTS_NAMEÚloggingé   )Ú
OnnxConfig©ÚPreTrainedModelÚTFPreTrainedModel)Ú	AutoModelÚAutoModelForCausalLMÚAutoModelForImageClassificationÚAutoModelForImageSegmentationÚAutoModelForMaskedImageModelingÚAutoModelForMaskedLMÚAutoModelForMultipleChoiceÚAutoModelForObjectDetectionÚAutoModelForQuestionAnsweringÚ AutoModelForSemanticSegmentationÚAutoModelForSeq2SeqLMÚ"AutoModelForSequenceClassificationÚAutoModelForSpeechSeq2SeqÚAutoModelForTokenClassificationÚAutoModelForVision2Seq)	ÚTFAutoModelÚTFAutoModelForCausalLMÚTFAutoModelForMaskedLMÚTFAutoModelForMultipleChoiceÚTFAutoModelForQuestionAnsweringÚ"TFAutoModelForSemanticSegmentationÚTFAutoModelForSeq2SeqLMÚ$TFAutoModelForSequenceClassificationÚ!TFAutoModelForTokenClassificationz–The ONNX export features are only supported for PyTorch or TensorFlow. You will not be able to export models without one of these libraries installed.©Úonnx_config_clsÚsupported_featuresr.   Úreturnc                 ó.  — | €t          d¦  «        ‚t          }|                      d¦  «        D ]}t          ||¦  «        }Œi }|D ]O}d|v r0|                     dd¦  «        }t          |j        |¬¦  «        ||<   Œ6t          |j        |¬¦  «        ||<   ŒP|S )ac  
    Generate the mapping between supported the features and their corresponding OnnxConfig for a given model.

    Args:
        *supported_features: The names of the supported features.
        onnx_config_cls: The OnnxConfig full name corresponding to the model.

    Returns:
        The dictionary mapping a feature to an OnnxConfig constructor.
    Nz#A OnnxConfig class must be providedú.ú
-with-pastÚ )Útask)Ú
ValueErrorÚtransformersÚsplitÚgetattrÚreplacer   Ú	with_pastÚfrom_model_config)r.   r/   Ú
config_clsÚ	attr_nameÚmappingÚfeaturer5   s          úb/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/onnx/features.pyÚsupported_features_mappingrB   7   s¿   € ð ÐÝÐ>Ñ?Ô?Ð?å€JØ$×*Ò*¨3Ñ/Ô/ð 4ð 4ˆ	Ý˜Z¨Ñ3Ô3ˆ
ˆ
Ø€GØ%ð Sð SˆØ˜7Ð"Ð"Ø—?’? <°Ñ4Ô4ˆDÝ& zÔ';À$ÐGÑGÔGˆG�GÑÐå& zÔ'CÈ'ÐRÑRÔRˆG�GÑÐà€Nó    c                   óx
  — e Zd Zi Zi Z e¦   «         reeee	e
eeeeeeeeeedœZ e¦   «         reeeeeeeeedœ	Zi d edddddd	d
¬¦  «        “d edddddddd	d¬¦	  «	        “d eddd¬¦  «        “d eddddddd	d¬¦  «        “d eddddddd	d¬¦  «        “d edddddddd	d¬¦	  «	        “d eddddddd¬¦  «        “d eddddddd¬¦  «        “d  eddddddd!¬¦  «        “d" eddddddd	d#¬¦  «        “d$ edd%¬¦  «        “d& eddd'¬¦  «        “d( edddddd	d)¬¦  «        “d* eddd+¬¦  «        “d, edddddd	d-¬¦  «        “d. eddd/¬¦  «        “d0 eddddd	d1¬¦  «        “i d2 edddddd	d3¬¦  «        “d4 eddd5¬¦  «        “d6 edd7d8d9¬¦  «        “d: edddddd	d;¬¦  «        “d< eddddddd	d=¬¦  «        “d> eddddddd	d?¬¦  «        “d@ edddddddA¬¦  «        “dB eddddd	ddC¬¦  «        “dD eddddddE¬¦  «        “dF eddG¬¦  «        “dH edddddd	dI¬¦  «        “dJ edddK¬¦  «        “dL edddddM¬¦  «        “dN edd	dddO¬¦  «        “dP edddQ¬¦  «        “dR edddddS¬¦  «        “dT edddd	dddU¬¦  «        “¥i dV edddddddW¬¦  «        “dX edddddddd	dY¬¦	  «	        “dZ edddddd	d[¬¦  «        “d\ eddd]¬¦  «        “d^ eddd_¬¦  «        “d` eddda¬¦  «        “db edddddc¬¦  «        “dd eddddde¬¦  «        “df eddg¬¦  «        “dh eddddi¬¦  «        “dj edddk¬¦  «        “dl eddddddd	dm¬¦  «        “dn edddo¬¦  «        “dp eddddddd	dq¬¦  «        “dr eddddddd	dds¬¦	  «	        “dt edddudv¬¦  «        “dw edddddd	dx¬¦  «        “¥ edddy¬¦  «         edddddz¬¦  «         ed{d|¬¦  «         eddd}¬¦  «         eddd~dd€¬¦  «         eddddddd	d�¬¦  «         eddddddd	d‚¬¦  «         edd7dƒ¬¦  «        d„œ¥Z  e! e"d…„ d†„ e  #                    ¦   «         D ¦   «         ¦  «        ¦  «        Z$e%	 d™dˆe&d‰e'e&         dŠe(e&e)e*ge+f         f         fd‹„¦   «         Z,e%dŒe&dŠe&fd�„¦   «         Z-e%dŽe&fd�„¦   «         Z.e%dšdŒe&dŽe&dŠe/fd‘„¦   «         Z0e%d™d’e&dŽe'e&         dŠe&fd“„¦   «         Z1e%	 d›dŒe&d’e&dŽe'e&         d”e'e&         dŠe2d•         f
d–„¦   «         Z3e%	 dœd’e2d•         dŒe&dŠe4e&e)f         fd—„¦   «         Z5dˆe&dŒe&dŠe+fd˜„Z6d‡S )�ÚFeaturesManager)Údefaultú	masked-lmú	causal-lmú
seq2seq-lmúsequence-classificationútoken-classificationúmultiple-choiceúobject-detectionúquestion-answeringúimage-classificationúimage-segmentationz	masked-imúsemantic-segmentationúvision2seq-lmúspeech2seq-lm)	rF   rG   rH   rI   rJ   rK   rL   rN   rQ   ÚalbertrF   rG   rJ   rL   rK   rN   zmodels.albert.AlbertOnnxConfigr-   Úbartzdefault-with-pastrH   zcausal-lm-with-pastrI   zseq2seq-lm-with-pastzmodels.bart.BartOnnxConfigÚbeitrO   zmodels.beit.BeitOnnxConfigÚbertzmodels.bert.BertOnnxConfigzbig-birdz!models.big_bird.BigBirdOnnxConfigzbigbird-pegasusz/models.bigbird_pegasus.BigBirdPegasusOnnxConfigÚ
blenderbotz&models.blenderbot.BlenderbotOnnxConfigzblenderbot-smallz1models.blenderbot_small.BlenderbotSmallOnnxConfigÚbloomzmodels.bloom.BloomOnnxConfigÚ	camembertz$models.camembert.CamembertOnnxConfigÚclipzmodels.clip.CLIPOnnxConfigÚcodegenz models.codegen.CodeGenOnnxConfigÚconvbertz"models.convbert.ConvBertOnnxConfigÚconvnextz"models.convnext.ConvNextOnnxConfigzdata2vec-textz&models.data2vec.Data2VecTextOnnxConfigzdata2vec-visionz(models.data2vec.Data2VecVisionOnnxConfigÚdebertaz models.deberta.DebertaOnnxConfigz
deberta-v2z%models.deberta_v2.DebertaV2OnnxConfigÚdeitzmodels.deit.DeiTOnnxConfigÚdetrrM   rP   zmodels.detr.DetrOnnxConfigÚ
distilbertz&models.distilbert.DistilBertOnnxConfigÚelectraz models.electra.ElectraOnnxConfigÚflaubertz"models.flaubert.FlaubertOnnxConfigÚgpt2zmodels.gpt2.GPT2OnnxConfigÚgptjzmodels.gptj.GPTJOnnxConfigzgpt-neozmodels.gpt_neo.GPTNeoOnnxConfigÚgroupvitz"models.groupvit.GroupViTOnnxConfigÚibertzmodels.ibert.IBertOnnxConfigÚimagegptz"models.imagegpt.ImageGPTOnnxConfigÚlayoutlmz"models.layoutlm.LayoutLMOnnxConfigÚ
layoutlmv3z&models.layoutlmv3.LayoutLMv3OnnxConfigÚlevitzmodels.levit.LevitOnnxConfigÚlongt5zmodels.longt5.LongT5OnnxConfigÚ
longformerz&models.longformer.LongformerOnnxConfigÚmarianzmodels.marian.MarianOnnxConfigÚmbartzmodels.mbart.MBartOnnxConfigÚ
mobilebertz&models.mobilebert.MobileBertOnnxConfigzmobilenet-v1z)models.mobilenet_v1.MobileNetV1OnnxConfigzmobilenet-v2z)models.mobilenet_v2.MobileNetV2OnnxConfigÚ	mobilevitz$models.mobilevit.MobileViTOnnxConfigÚmt5zmodels.mt5.MT5OnnxConfigzm2m-100zmodels.m2m_100.M2M100OnnxConfigÚowlvitzmodels.owlvit.OwlViTOnnxConfigÚ	perceiverz$models.perceiver.PerceiverOnnxConfigÚ
poolformerz&models.poolformer.PoolFormerOnnxConfigÚrembertz models.rembert.RemBertOnnxConfigÚresnetzmodels.resnet.ResNetOnnxConfigÚrobertaz models.roberta.RobertaOnnxConfigÚroformerz"models.roformer.RoFormerOnnxConfigÚ	segformerrQ   z$models.segformer.SegformerOnnxConfigÚsqueezebertz(models.squeezebert.SqueezeBertOnnxConfigzmodels.swin.SwinOnnxConfigzmodels.t5.T5OnnxConfigrR   z<models.vision_encoder_decoder.VisionEncoderDecoderOnnxConfigzmodels.vit.ViTOnnxConfigrS   zspeech2seq-lm-with-pastz models.whisper.WhisperOnnxConfigzmodels.xlm.XLMOnnxConfigz'models.xlm_roberta.XLMRobertaOnnxConfigzmodels.yolos.YolosOnnxConfig)ÚswinÚt5zvision-encoder-decoderÚvitÚwhisperÚxlmzxlm-robertaÚyolosc                 ó   — | |z  S ©N© )Ús1Ús2s     rA   ú<lambda>zFeaturesManager.<lambda>*  s
   € °b¸2±g€ rC   c              #   ó>   K  — | ]}|                      ¦   «         V — Œd S r„   )Úkeys)Ú.0Úvs     rA   ú	<genexpr>zFeaturesManager.<genexpr>*  s*   è è € Ð?qÐ?qÈQÀÇÂÁÄÐ?qÐ?qÐ?qÐ?qÐ?qÐ?qrC   NÚ
model_typeÚ
model_namer0   c                 ó  — |                       ¦   «         } | t          j        vrM|r| › d|› d�n| }t          |› dt	          t          j                             ¦   «         ¦  «        › d| › d�¦  «        ‚t          j        |          S )aÎ  
        Tries to retrieve the feature -> OnnxConfig constructor map from the model type.

        Args:
            model_type (`str`):
                The model type to retrieve the supported features for.
            model_name (`str`, *optional*):
                The name attribute of the model object, only used for the exception message.

        Returns:
            The dictionary mapping each feature to a corresponding OnnxConfig constructor.
        z (ú)z is not supported yet. Only z' are supported. If you want to support z) please propose a PR or open up an issue.)ÚlowerrE   Ú_SUPPORTED_MODEL_TYPEÚKeyErrorÚlistrŠ   )rŽ   r�   Úmodel_type_and_model_names      rA   Ú%get_supported_features_for_model_typez5FeaturesManager.get_supported_features_for_model_type,  s±   € ð   ×%Ò%Ñ'Ô'ˆ
Ø�_ÔBÐBÐBØJTÐ(d¨:Ð(FÐ(F¸Ð(FÐ(FÐ(FÐ(FÐZdÐ%ÝØ,ð `ð `Ý�_ÔB×GÒGÑIÔIÑJÔJð`ð `à*4ð`ð `ð `ñô ð õ
 Ô4°ZÔ@Ð@rC   r@   c                 ó.   — |                       dd¦  «        S )Nr3   r4   )r:   )r@   s    rA   Úfeature_to_taskzFeaturesManager.feature_to_taskF  s   € à�Š˜|¨RÑ0Ô0Ð0rC   Ú	frameworkc                 óÄ   — | dvrt          d| › d�¦  «        ‚| dk    rt          ¦   «         st          d¦  «        ‚| dk    rt          ¦   «         st          d¦  «        ‚dS dS )	z‹
        Validates if the framework requested for the export is both correct and available, otherwise throws an
        exception.
        ©ÚptÚtfzAOnly two frameworks are supported for ONNX export: pt or tf, but z was provided.r�   zOCannot export model to ONNX using PyTorch because no PyTorch package was found.rž   zUCannot export model to ONNX using TensorFlow because no TensorFlow package was found.N)r6   r   ÚRuntimeErrorr   )rš   s    rA   Ú_validate_framework_choicez*FeaturesManager._validate_framework_choiceJ  s‹   € ð ˜LÐ(Ð(ÝØmÐT]ÐmÐmÐmñô ð ð ˜$ÒÐÕ'9Ñ';Ô';ÐÝÐpÑqÔqÐqØ˜$ÒÐ¥Ñ'8Ô'8ÐÝÐvÑwÔwÐwð ÐÐÐrC   r�   c           	      ó<  — t                                | ¦  «        }t                                |¦  «         |dk    rt           j        }nt           j        }||vr>t          d| › dt          t           j                             ¦   «         ¦  «        › �¦  «        ‚||         S )ad  
        Attempts to retrieve an AutoModel class from a feature name.

        Args:
            feature (`str`):
                The feature required.
            framework (`str`, *optional*, defaults to `"pt"`):
                The framework to use for the export.

        Returns:
            The AutoModel class corresponding to the feature.
        r�   zUnknown task: z. Possible values are )rE   r™   r    Ú_TASKS_TO_AUTOMODELSÚ_TASKS_TO_TF_AUTOMODELSr”   r•   Úvalues)r@   rš   r5   Útask_to_automodels       rA   Úget_model_class_for_featurez+FeaturesManager.get_model_class_for_featureY  s    € õ ×.Ò.¨wÑ7Ô7ˆÝ×2Ò2°9Ñ=Ô=Ð=Ø˜ÒÐÝ /Ô DÐÐå /Ô GÐØÐ(Ð(Ð(ÝØu ÐuÐuÅÅ_ÔEi×EpÒEpÑErÔErÑ@sÔ@sÐuÐuñô ð ð ! Ô&Ð&rC   Úmodelc                 ó¨  — |�|S dddœ}dddœ}t           j                             | ¦  «        rÏt           j                             t           j                             | t
          ¦  «        ¦  «        rd}net           j                             t           j                             | t          ¦  «        ¦  «        rd}n t          d	t
          › d
t          › d�¦  «        ‚t           	                    d||         › d�¦  «         n1t          ¦   «         rd}n t          ¦   «         rd}nt          d¦  «        ‚t           	                    d||         › d�¦  «         |S )a…  
        Determines the framework to use for the export.

        The priority is in the following order:
            1. User input via `framework`.
            2. If local checkpoint is provided, use the same framework as the checkpoint.
            3. Available framework in environment, with priority given to PyTorch

        Args:
            model (`str`):
                The name of the model to export.
            framework (`str`, *optional*, defaults to `None`):
                The framework to use for the export. See above for priority if none provided.

        Returns:
            The framework to use for the export.

        NÚPyTorchÚ
TensorFlowrœ   ÚtorchÚtf2onnxr�   rž   zMCannot determine framework from given checkpoint location. There should be a z for PyTorch or z for TensorFlow.zLocal z model found.zKNeither PyTorch nor TensorFlow found in environment. Cannot export to ONNX.zFramework not requested. Using z to export to ONNX.)ÚosÚpathÚisdirÚisfileÚjoinr   r   ÚFileNotFoundErrorÚloggerÚinfor   r   ÚOSError)r§   rš   Úframework_mapÚexporter_maps       rA   Údetermine_frameworkz#FeaturesManager.determine_frameworkt  s^  € ð( Ð ØÐà(°Ð=Ð=ˆØ%¨YÐ7Ð7ˆåŒ7�=Š=˜ÑÔð 	mÝŒw�~Š~�bœgŸlšl¨5µ,Ñ?Ô?Ñ@Ô@ð 	Ø �	�	Ý”—’¥¤§¢¨UÕ4DÑ EÔ EÑFÔFð Ø �	�	å'ð>Ý*6ð>ð >å+ð>ð >ð >ñô ð õ
 �KŠKÐH ¨yÔ!9ÐHÐHÐHÑIÔIÐIÐIå!Ñ#Ô#ð mØ �	�	Ý Ñ"Ô"ð mØ �	�	åÐkÑlÔlÐlå�ŠÐb°lÀ9Ô6MÐbÐbÐbÑcÔcÐcàÐrC   Ú	cache_dirr   c                 óš  — t                                ||¦  «        }t                                | |¦  «        }	 |                     ||¬¦  «        }n{# t          $ rn |dk    r3t
                               d¦  «         |                     |d|¬¦  «        }n2t
                               d¦  «         |                     |d|¬¦  «        }Y nw xY w|S )a  
        Attempts to retrieve a model from a model's name and the feature to be enabled.

        Args:
            feature (`str`):
                The feature required.
            model (`str`):
                The name of the model to export.
            framework (`str`, *optional*, defaults to `None`):
                The framework to use for the export. See `FeaturesManager.determine_framework` for the priority should
                none be provided.

        Returns:
            The instance of the model.

        )r¹   r�   z=Loading TensorFlow model in PyTorch before exporting to ONNX.T)Úfrom_tfr¹   z=Loading PyTorch model in TensorFlow before exporting to ONNX.)Úfrom_ptr¹   )rE   r¸   r¦   Úfrom_pretrainedrµ   r³   r´   )r@   r§   rš   r¹   Úmodel_classs        rA   Úget_model_from_featurez&FeaturesManager.get_model_from_feature¦  sß   € õ( $×7Ò7¸¸yÑIÔIˆ	Ý%×AÒAÀ'È9ÑUÔUˆð	^Ø×/Ò/°ÀÐ/ÑKÔKˆEˆEøÝð 	^ð 	^ð 	^Ø˜DÒ Ð Ý—’Ð[Ñ\Ô\Ð\Ø#×3Ò3°EÀ4ÐS\Ð3Ñ]Ô]��å—’Ð[Ñ\Ô\Ð\Ø#×3Ò3°EÀ4ÐS\Ð3Ñ]Ô]�øøð	^øøøð ˆs   ¸A ÁA5CÃCc                 ó.  — | j         j                             dd¦  «        }t          | dd¦  «        }t                               ||¬¦  «        }||vr!t          | j         j        › d|› d|› �¦  «        ‚| j         j        t          j        |         |         fS )aR  
        Check whether or not the model has the requested features.

        Args:
            model: The model to export.
            feature: The name of the feature to check if it is available.

        Returns:
            (str) The type of the model (OnnxConfig) The OnnxConfig instance holding the model export properties.

        Ú_ú-Únamer4   )r�   z doesn't support feature z. Supported values are: )ÚconfigrŽ   r:   r9   rE   r—   r6   r“   )r§   r@   rŽ   r�   Úmodel_featuress        rA   Úcheck_supported_model_or_raisez.FeaturesManager.check_supported_model_or_raiseÇ  s¤   € ð ”\Ô,×4Ò4°S¸#Ñ>Ô>ˆ
Ý˜U F¨BÑ/Ô/ˆ
Ý(×NÒNÈzÐfpÐNÑqÔqˆØ˜.Ð(Ð(ÝØ”<Ô*ÐvÐvÀWÐvÐvÐftÐvÐvñô ð ð Œ|Ô&­Ô(MÈjÔ(YÐZaÔ(bÐbÐbrC   c                 ó2   — t           j        |          |         S )aU  
        Gets the OnnxConfig for a model_type and feature combination.

        Args:
            model_type (`str`):
                The model type to retrieve the config for.
            feature (`str`):
                The feature to retrieve the config for.

        Returns:
            `OnnxConfig`: config for the combination
        )rE   r“   )rŽ   r@   s     rA   Ú
get_configzFeaturesManager.get_configà  s   € õ Ô4°ZÔ@ÀÔIÐIrC   r„   )r�   )NN)rF   )7Ú__name__Ú
__module__Ú__qualname__r¢   r£   r   r   r   r   r   r    r"   r   r   r   r   r   r   r   r#   r!   r   r$   r&   r%   r*   r+   r,   r'   r(   r)   rB   r“   Úsortedr   r¤   ÚAVAILABLE_FEATURESÚstaticmethodÚstrr   Údictr   r
   r   r—   r™   r    Útyper¦   r¸   r   r¿   ÚtuplerÆ   rÈ   r…   rC   rA   rE   rE   U   s}  € € € € € ØÐØ ÐØÐÑÔð 
à Ø-Ø-Ø/Ø'IØ$CØ9Ø ;Ø"?Ø$CØ"?Ø8Ø%EØ3Ø6ð 
ð  
Ðð" €ÑÔð 
à"Ø/Ø/Ø1Ø'KØ$EØ;Ø"AØ%Gð
#
ð 
#
ÐðpØÐ,Ð,ØØØ%ØØ"Ø Ø<ð
ñ 
ô 
ðpð 	Ð*Ð*ØØØØ!ØØ"Ø%Ø Ø8ð

ñ 

ô 

ðpð, 	Ð*Ð*ØÐ-Ð?[ð
ñ 
ô 
ð-pð2 	Ð*Ð*ØØØØ%ØØ"Ø Ø8ð	
ñ 	
ô 	
ð3pðF 	Ð.Ð.ØØØØ%ØØ"Ø Ø?ð	
ñ 	
ô 	
ðGpðZ 	Ð5Ð5ØØØØ!ØØ"Ø%Ø ØMð

ñ 

ô 

ð[pðp 	Ð0Ð0ØØØØ!ØØ"ØDð
ñ 
ô 
ðqpðB 	Ð6Ð6ØØØØ!ØØ"ØOð
ñ 
ô 
ðCpðT 	Ð+Ð+ØØØØ!Ø%Ø"Ø:ð
ñ 
ô 
ðUpðf 	Ð/Ð/ØØØØ%ØØ"Ø ØBð	
ñ 	
ô 	
ðgpðz 	Ð*Ð*ØØ8ð
ñ 
ô 
ð{pðB 	Ð-Ð-ØØØ>ð
ñ 
ô 
ðCpðL 	Ð.Ð.ØØØ%ØØ"Ø Ø@ð
ñ 
ô 
ðMpð^ 	Ð.Ð.ØØ"Ø@ð
ñ 
ô 
ð_pðh 	Ð3Ð3ØØØ%ØØ"Ø ØDð
ñ 
ô 
ðipðz 	Ð5Ð5ØØ"ð Gð
ñ 
ô 
ð{pðH 	Ð-Ð-ØØØ%Ø"Ø Ø>ð
ñ 
ô 
ðIpð pðX 	Ð0Ð0ØØØ%ØØ"Ø ØCð
ñ 
ô 
ðYpðj 	Ð*Ð*ØÐ-Ð?[ð
ñ 
ô 
ðkpðp 	Ð*Ð*ØØØ Ø8ð	
ñ 
ô 
ðqpð| 	Ð0Ð0ØØØ%ØØ"Ø ØDð
ñ 
ô 
ð}pðN 	Ð-Ð-ØØØØ%ØØ"Ø Ø>ð	
ñ 	
ô 	
ðOpðb 	Ð.Ð.ØØØØ%ØØ"Ø Ø@ð	
ñ 	
ô 	
ðcpðv 	Ð*Ð*ØØØØ!Ø%Ø"Ø8ð
ñ 
ô 
ðwpðH 	Ð*Ð*ØØØØ!Ø Ø%Ø8ð
ñ 
ô 
ðIpðZ 	Ð-Ð-ØØØØ!Ø%Ø=ð
ñ 
ô 
ð[pðj 	Ð.Ð.ØØ@ð
ñ 
ô 
ðkpðr 	Ð+Ð+ØØØ%ØØ"Ø Ø:ð
ñ 
ô 
ðspðD 	Ð.Ð.ØÐ-Ð?cð
ñ 
ô 
ðEpðJ 	Ð.Ð.ØØØ%Ø"Ø@ð
ñ 
ô 
ðKpðX 	Ð0Ð0ØØ Ø%Ø"ØDð
ñ 
ô 
ðYpðf 	Ð+Ð+ØÐ-Ð?]ð
ñ 
ô 
ðgpðl 	Ð,Ð,ØØØØ"Ø<ð
ñ 
ô 
ðmpðz 	Ð0Ð0ØØØØ Ø%Ø"ØDð
ñ 
ô 
ð{pð pð pðL 	Ð,Ð,ØØØØ"ØØ!Ø<ð
ñ 
ô 
ðMpð^ 	Ð+Ð+ØØØØ!ØØ"Ø%Ø Ø:ð

ñ 

ô 

ð_pðt 	Ð0Ð0ØØØ%ØØ"Ø ØDð
ñ 
ô 
ðupðF	 	Ð2Ð2ØØ"ØGð
ñ 
ô 
ðG	pðP	 	Ð2Ð2ØØ"ØGð
ñ 
ô 
ðQ	pðZ	 	Ð/Ð/ØØ"ØBð
ñ 
ô 
ð[	pðd	 	Ð)Ð)ØØØØ"Ø6ð
ñ 
ô 
ðe	pðr	 	Ð-Ð-ØØØØ"Ø=ð
ñ 
ô 
ðs	pð@
 	Ð,Ð,ØØ<ð
ñ 
ô 
ðA
pðH
 	Ð/Ð/Ø"ØØ%ØBð	
ñ 
ô 
ðI
pðT
 	Ð0Ð0ØÐ-Ð?gð
ñ 
ô 
ðU
pðZ
 	Ð-Ð-ØØØØ%ØØ"Ø Ø>ð	
ñ 	
ô 	
ð[
pðn
 	Ð,Ð,ØØ"Ø<ð
ñ 
ô 
ðo
pðx
 	Ð-Ð-ØØØØ%ØØ"Ø Ø>ð	
ñ 	
ô 	
ðy
pðL 	Ð.Ð.ØØØØ%Ø"ØØ Ø"Ø@ð

ñ 

ô 

ðMpðb 	Ð/Ð/ØØ"Ø#ØBð	
ñ 
ô 
ðcpðn 	Ð1Ð1ØØØ%ØØ"Ø ØFð
ñ 
ô 
ðopð pð@ +Ð*ØÐ-Ð?[ð
ñ 
ô 
ð )Ð(ØØØØ"Ø4ð
ñ 
ô 
ð #=Ð"<ØÐ-kð#
ñ #
ô #
ð *Ð)ØÐ-Ð?Yð
ñ 
ô 
ð .Ð-ØØØØ%Ø>ð
ñ 
ô 
ð *Ð)ØØØØ%ØØ"Ø Ø6ð	
ñ 	
ô 	
ð 2Ð1ØØØØ%ØØ"Ø ØEð	
ñ 	
ô 	
ð ,Ð+ØØØ:ð
ñ 
ô 
ðWpð pð pÐðd  ˜  Ð'=Ð'=Ð?qÐ?qÐRg×RnÒRnÑRpÔRpÐ?qÑ?qÔ?qÑ rÔ rÑsÔsÐàà59ðAð AØðAØ%-¨c¤]ðAà	ˆc�8Ð-Ð.°
Ð:Ô;Ð;Ô	<ðAð Að Añ „\ðAð2 ð1 ð 1¨ð 1ð 1ð 1ñ „\ð1ð ðx¨cð xð xð xñ „\ðxð ð'ð '¨Sð '¸Sð 'ÈDð 'ð 'ð 'ñ „\ð'ð4 ð/ð / 3ð /°8¸C´=ð /ÈCð /ð /ð /ñ „\ð/ðb à^bðð ØðØ ðØ-5°c¬]ðØNVÐWZÌmðà	Ð5Ô	6ðð ð ñ „\ðð@ àMVðcð cØÐ;Ô<ðcØGJðcà	ˆs�Hˆ}Ô	ðcð cð cñ „\ðcð0J˜sð J¨Sð J°Zð Jð Jð Jð Jð Jð JrC   rE   )7r­   Ú	functoolsr   r   Útypingr   r   r   r   r7   r4   r
   r   r   Úutilsr   r   r   rÄ   r   r   r   Ú
get_loggerrÉ   r³   Útransformers.models.autor   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   ÚwarningrÏ   rÐ   rB   rE   r…   rC   rA   ú<module>rÙ      sò  ðØ 	€	€	€	Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;à Ð Ð Ð à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø Ð Ð Ð Ð Ð ð ð @Ø?Ð?Ð?Ð?Ð?Ð?Ð?Ð?ð 
ˆÔ	˜HÑ	%Ô	%€àÐÑÔð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð" €?ÑÔð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð ÐÑÔð  O OÑ$5Ô$5ð Ø
‡N‚Nð	5ñô ð ð @Dðð ð ØðØ/7¸¬}ðà	ˆ#ˆxÐ)Ð*¨JÐ6Ô7Ð
7Ô8ðð ð ð ð<X
Jð X
Jð X
Jð X
Jð X
Jñ X
Jô X
Jð X
Jð X
Jð X
JrC   