§
    «˜ºhaL  ã            "       ó–  — d dl mZ d dlZd dl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mZmZ d dl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 ddlm Z m!Z!m"Z" ddl#m$Z$  e!j%        e&¦  «        Z'dZ( e¦   «         r	 d dl)Z(n# e*$ r d dl+Z,e,j(        Z(Y nw xY wde$de$fd„Z-d0d„Z.d„ Z/d„ Z0	 	 d1de	de1dee2         fd„Z3e-	 	 	 	 d2dee4e	f         deee4ef                  de1de1deee5e4f                  f
d„¦   «         Z6d3d „Z7e"e-dd!ddddddddddddd"œd#e4dee2         d$e4d%ee1         d&ee4         d'ee4         d(ee4         d)ee1         d*eeee4         e4f                  d+eeee4         e4f                  d,eeee4         e4f                  d-ee4         de1deee5e4f                  de1fd.„¦   «         ¦   «         Z8 G d/„ de¦  «        Z9dS )4é    N©Úwraps)ÚPath)Úcopytree)ÚAnyÚDictÚListÚOptionalÚUnion)ÚModelHubMixinÚsnapshot_download)Úget_tf_versionÚis_graphviz_availableÚis_pydot_availableÚis_tf_availableÚ	yaml_dumpé   )Ú	constants)ÚHfApi)ÚSoftTemporaryDirectoryÚloggingÚvalidate_hf_hub_args)Ú	CallableTÚfnÚreturnc                 ó<   ‡ — t          ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                 ól   •— t          | d¦  «        st          d‰j        › d�¦  «        ‚ ‰| g|¢R i |¤ŽS )NÚhistoryzCannot use 'zp': Keras 3.x is not supported. Please save models manually and upload them using `upload_folder` or `hf upload`.)ÚhasattrÚNotImplementedErrorÚ__name__)ÚmodelÚargsÚkwargsr   s      €úc/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/huggingface_hub/keras_mixin.pyÚ_innerz'_requires_keras_2_model.<locals>._inner+   se   ø€ å�u˜iÑ(Ô(ð 	Ý%ðe˜rœ{ð eð eð eñô ð ð ˆr�%Ð)˜$Ð)Ð)Ð) &Ð)Ð)Ð)ó    r   )r   r&   s   ` r%   Ú_requires_keras_2_modelr(   )   s3   ø€ å
ˆ2�Y„Yð*ð *ð *ð *ñ „Yð*ð €Mr'   Ú c                 ó<  — g }|                       ¦   «         D ]w\  }}|r|› d|› �n|}t          |t          j        ¦  «        r6|                     t          ||¦  «                              ¦   «         ¦  «         Œ`|                     ||f¦  «         Œxt          |¦  «        S )a„  Flatten a nested dictionary.
    Reference: https://stackoverflow.com/a/6027615/10319735

    Args:
        dictionary (`dict`):
            The nested dictionary to be flattened.
        parent_key (`str`):
            The parent key to be prefixed to the children keys.
            Necessary for recursing over the nested dictionary.

    Returns:
        The flattened dictionary.
    ú.)ÚitemsÚ
isinstanceÚcollectionsÚMutableMappingÚextendÚ_flatten_dictÚappendÚdict)Ú
dictionaryÚ
parent_keyr,   ÚkeyÚvalueÚnew_keys         r%   r1   r1   7   s»   € ð €EØ ×&Ò&Ñ(Ô(ð 
+ð 
+‰
ˆˆUØ+5Ð>�ZÐ'Ð' #Ð'Ð'Ð'¸3ˆÝ�e�[Ô7Ñ8Ô8ð 	+Ø�LŠLÝØØñô ÷ ’%‘'”'ñ	ô ð ð ð �LŠL˜' 5Ð)Ñ*Ô*Ð*Ð*Ý�‰;Œ;Ðr'   c                 ó  — d}| j         �v| j                              ¦   «         }t          |¦  «        }t          j                             ¦   «         j        |d<   d}|                     ¦   «         D ]\  }}|d|› d|› d�z  }Œ|S )z6Parse hyperparameter dictionary into a markdown table.NÚtraining_precisionz*| Hyperparameters | Value |
| :-- | :-- |
z| z | z |
)Ú	optimizerÚ
get_configr1   ÚkerasÚmixed_precisionÚglobal_policyÚnamer,   )r"   ÚtableÚoptimizer_paramsr6   r7   s        r%   Ú_create_hyperparameter_tablerC   T   s™   € à€EØ„Ð"Ø œ?×5Ò5Ñ7Ô7Ðå(Ð)9Ñ:Ô:ÐÝ16Ô1F×1TÒ1TÑ1VÔ1VÔ1[ÐÐ-Ñ.Ø>ˆØ*×0Ò0Ñ2Ô2ð 	.ð 	.‰JˆC�ØÐ-˜#Ð-Ð- %Ð-Ð-Ð-Ñ-ˆEˆEØ€Lr'   c                 ó\   — t           j                             | |› d�ddddddd ¬¦	  «	         d S )Nú
/model.pngFTÚTBé`   )Úto_fileÚshow_shapesÚ
show_dtypeÚshow_layer_namesÚrankdirÚexpand_nestedÚdpiÚlayer_range)r=   ÚutilsÚ
plot_model)r"   Úsave_directorys     r%   Ú_plot_networkrS   b   sO   € Ý	„K×ÒØØ!Ð-Ð-Ð-ØØØØØØØð ñ 
ô 
ð 
ð 
ð 
r'   TÚrepo_dirrQ   Úmetadatac                 ó  — |dz  }|                      ¦   «         rdS t          | ¦  «        }|r,t          ¦   «         rt          ¦   «         rt	          | |¦  «         |€i }d|d<   d}|t          |d¬¦  «        z  }|dz  }|dz  }|d	z  }|d
z  }|�|dz  }|dz  }|dz  }||z  }|dz  }|rAt          j                              |› d�¦  «        r|dz  }|dz  }|dz  }d}|d|› d�z  }|dz  }|                     |¦  «         dS )zd
    Creates a model card for the repository.

    Do not overwrite an existing README.md file.
    z	README.mdNr=   Úlibrary_namez---
F)Údefault_flow_stylez/
## Model description

More information needed
z9
## Intended uses & limitations

More information needed
z:
## Training and evaluation data

More information needed
z
## Training procedure
z
### Training hyperparameters
z;
The following hyperparameters were used during training:

ú
rE   z
 ## Model Plot
z

<details>z$
<summary>View Model Plot</summary>
z./model.pngz
![Model Image](z)
z
</details>)	ÚexistsrC   r   r   rS   r   ÚosÚpathÚ
write_text)r"   rT   rQ   rU   Úreadme_pathÚhyperparametersÚ
model_cardÚpath_to_plots           r%   Ú_create_model_cardrb   p   s„  € ð ˜[Ñ(€KØ×ÒÑÔð Øˆå2°5Ñ9Ô9€OØð 'Õ+Ñ-Ô-ð 'Õ2DÑ2FÔ2Fð 'Ý�e˜XÑ&Ô&Ð&ØÐØˆØ&€Hˆ^ÑØ€JØ•)˜H¸Ð?Ñ?Ô?Ñ?€JØ�'Ñ€JØÐGÑG€JØÐQÑQ€JØÐRÑR€JØÐ"ØÐ1Ñ1ˆ
ØÐ8Ñ8ˆ
ØÐVÑVˆ
Ø�oÑ%ˆ
Ø�dÑˆ
Øð %•b”g—n’n¨Ð%<Ð%<Ð%<Ñ=Ô=ð %ØÐ*Ñ*ˆ
Ø�mÑ#ˆ
ØÐ>Ñ>ˆ
Ø$ˆØÐ;¨,Ð;Ð;Ð;Ñ;ˆ
Ø�nÑ$ˆ
à×Ò˜:Ñ&Ô&Ð&Ð&Ð&r'   FrR   ÚconfigÚinclude_optimizerÚtagsc                 ód  — t           €t          d¦  «        ‚| j        st          d¦  «        ‚t	          |¦  «        }|                     dd¬¦  «         |r„t          |t          ¦  «        s t          dt          |¦  «        › d�¦  «        ‚|t          j        z                       d¦  «        5 }t          j        ||¦  «         ddd¦  «         n# 1 swxY w Y   i }t          |t          ¦  «        r||d	<   nt          |t           ¦  «        r|g|d	<   |                     d
d¦  «        }	|	�@t%          j        dt(          ¦  «         d	|v r|d	                              |	¦  «         n|	g|d	<   | j        �”| j        j        i k    r„|dz  }
|
                     ¦   «         rt%          j        dt0          ¦  «         |
                     dd¬¦  «        5 }t          j        | j        j        |dd¬¦  «         ddd¦  «         n# 1 swxY w Y   t3          | |||¦  «         t          j        j        | |fd|i|¤Ž dS )aL  
    Saves a Keras model to save_directory in SavedModel format. Use this if
    you're using the Functional or Sequential APIs.

    Args:
        model (`Keras.Model`):
            The [Keras
            model](https://www.tensorflow.org/api_docs/python/tf/keras/Model)
            you'd like to save. The model must be compiled and built.
        save_directory (`str` or `Path`):
            Specify directory in which you want to save the Keras model.
        config (`dict`, *optional*):
            Configuration object to be saved alongside the model weights.
        include_optimizer(`bool`, *optional*, defaults to `False`):
            Whether or not to include optimizer in serialization.
        plot_model (`bool`, *optional*, defaults to `True`):
            Setting this to `True` will plot the model and put it in the model
            card. Requires graphviz and pydot to be installed.
        tags (Union[`str`,`list`], *optional*):
            List of tags that are related to model or string of a single tag. See example tags
            [here](https://github.com/huggingface/hub-docs/blob/main/modelcard.md?plain=1).
        model_save_kwargs(`dict`, *optional*):
            model_save_kwargs will be passed to
            [`tf.keras.models.save_model()`](https://www.tensorflow.org/api_docs/python/tf/keras/models/save_model).
    Nz>Called a Tensorflow-specific function but could not import it.z+Model should be built before trying to saveT)ÚparentsÚexist_okzAProvided config to save_pretrained_keras should be a dict. Got: 'ú'Úwre   Ú	task_namez>`task_name` input argument is deprecated. Pass `tags` instead.zhistory.jsonzZ`history.json` file already exists, it will be overwritten by the history of this version.zutf-8)Úencodingé   )ÚindentÚ	sort_keysrd   )r=   ÚImportErrorÚbuiltÚ
ValueErrorr   Úmkdirr-   r3   ÚRuntimeErrorÚtyper   ÚCONFIG_NAMEÚopenÚjsonÚdumpÚlistÚstrÚpopÚwarningsÚwarnÚFutureWarningr2   r   rZ   ÚUserWarningrb   ÚmodelsÚ
save_model)r"   rR   rc   rd   rQ   re   Úmodel_save_kwargsÚfrU   rk   r\   s              r%   Úsave_pretrained_kerasr…   œ   sì  € õF €}ÝÐZÑ[Ô[Ð[àŒ;ð HÝÐFÑGÔGÐGå˜.Ñ)Ô)€NØ×Ò °ÐÑ5Ô5Ð5ð ð !Ý˜&¥$Ñ'Ô'ð 	tÝÐrÕcgÐhnÑcoÔcoÐrÐrÐrÑsÔsÐsà�yÔ4Ñ4×:Ò:¸3Ñ?Ô?ð 	!À1ÝŒI�f˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð €HÝ�$�ÑÔð "Øˆ�ÑÐÝ	�D�#Ñ	Ô	ð "Ø ˜6ˆ�Ñà!×%Ò% k°4Ñ8Ô8€IØÐÝŒØLÝñ	
ô 	
ð 	
ð �XÐÐØ�VÔ×#Ò# IÑ.Ô.Ð.Ð.à )˜{ˆH�VÑà„}Ð ØŒ=Ô  BÒ&Ð&Ø! NÑ2ˆDØ�{Š{‰}Œ}ð Ý”ØpÝñô ð ð —’˜3¨�Ñ1Ô1ð N°QÝ”	˜%œ-Ô/°¸1ÈÐMÑMÔMÐMðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nõ �u˜n¨j¸(ÑCÔCÐCÝ	„LÔ˜E >ÐlÐlÐEVÐlÐZkÐlÐlÐlÐlÐls$   Â,CÃCÃCÇ
#G9Ç9G=È G=ÚKerasModelHubMixinc                  ó$   — t          j        | i |¤ŽS )aØ
  
    Instantiate a pretrained Keras model from a pre-trained model from the Hub.
    The model is expected to be in `SavedModel` format.

    Args:
        pretrained_model_name_or_path (`str` or `os.PathLike`):
            Can be either:
                - A string, the `model id` of a pretrained model hosted inside a
                  model repo on huggingface.co. Valid model ids can be located
                  at the root-level, like `bert-base-uncased`, or namespaced
                  under a user or organization name, like
                  `dbmdz/bert-base-german-cased`.
                - You can add `revision` by appending `@` at the end of model_id
                  simply like this: `dbmdz/bert-base-german-cased@main` Revision
                  is the specific model version to use. It can be a branch name,
                  a tag name, or a commit id, since we use a git-based system
                  for storing models and other artifacts on huggingface.co, so
                  `revision` can be any identifier allowed by git.
                - A path to a `directory` containing model weights saved using
                  [`~transformers.PreTrainedModel.save_pretrained`], e.g.,
                  `./my_model_directory/`.
                - `None` if you are both providing the configuration and state
                  dictionary (resp. with keyword arguments `config` and
                  `state_dict`).
        force_download (`bool`, *optional*, defaults to `False`):
            Whether to force the (re-)download of the model weights and
            configuration files, overriding the cached versions if they exist.
        proxies (`Dict[str, str]`, *optional*):
            A dictionary of proxy servers to use by protocol or endpoint, e.g.,
            `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. The
            proxies are used on each request.
        token (`str` or `bool`, *optional*):
            The token to use as HTTP bearer authorization for remote files. If
            `True`, will use the token generated when running `transformers-cli
            login` (stored in `~/.huggingface`).
        cache_dir (`Union[str, os.PathLike]`, *optional*):
            Path to a directory in which a downloaded pretrained model
            configuration should be cached if the standard cache should not be
            used.
        local_files_only(`bool`, *optional*, defaults to `False`):
            Whether to only look at local files (i.e., do not try to download
            the model).
        model_kwargs (`Dict`, *optional*):
            model_kwargs will be passed to the model during initialization

    <Tip>

    Passing `token=True` is required when you want to use a private
    model.

    </Tip>
    )r†   Úfrom_pretrained)r#   r$   s     r%   Úfrom_pretrained_kerasr‰   ð   s   € õj Ô-¨tÐ>°vÐ>Ð>Ð>r'   z'Push Keras model using huggingface_hub.)rc   Úcommit_messageÚprivateÚapi_endpointÚtokenÚbranchÚ	create_prÚallow_patternsÚignore_patternsÚdelete_patternsÚlog_dirrd   re   rQ   Úrepo_idrŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   c                óÆ  — t          |¬¦  «        }|                     |||d¬¦  «        j        }t          ¦   «         5 }t	          |¦  «        |z  }t          | |f||||dœ|¤Ž |�F|€g nt          |t          ¦  «        r|gn|}|                     d¦  «         t          ||dz  ¦  «         | 
                    d|||||||	|
|¬	¦
  «
        cddd¦  «         S # 1 swxY w Y   dS )
aÝ  
    Upload model checkpoint to the Hub.

    Use `allow_patterns` and `ignore_patterns` to precisely filter which files should be pushed to the hub. Use
    `delete_patterns` to delete existing remote files in the same commit. See [`upload_folder`] reference for more
    details.

    Args:
        model (`Keras.Model`):
            The [Keras model](`https://www.tensorflow.org/api_docs/python/tf/keras/Model`) you'd like to push to the
            Hub. The model must be compiled and built.
        repo_id (`str`):
                ID of the repository to push to (example: `"username/my-model"`).
        commit_message (`str`, *optional*, defaults to "Add Keras model"):
            Message to commit while pushing.
        private (`bool`, *optional*):
            Whether the repository created should be private.
            If `None` (default), the repo will be public unless the organization's default is private.
        api_endpoint (`str`, *optional*):
            The API endpoint to use when pushing the model to the hub.
        token (`str`, *optional*):
            The token to use as HTTP bearer authorization for remote files. If
            not set, will use the token set when logging in with
            `hf auth login` (stored in `~/.huggingface`).
        branch (`str`, *optional*):
            The git branch on which to push the model. This defaults to
            the default branch as specified in your repository, which
            defaults to `"main"`.
        create_pr (`boolean`, *optional*):
            Whether or not to create a Pull Request from `branch` with that commit.
            Defaults to `False`.
        config (`dict`, *optional*):
            Configuration object to be saved alongside the model weights.
        allow_patterns (`List[str]` or `str`, *optional*):
            If provided, only files matching at least one pattern are pushed.
        ignore_patterns (`List[str]` or `str`, *optional*):
            If provided, files matching any of the patterns are not pushed.
        delete_patterns (`List[str]` or `str`, *optional*):
            If provided, remote files matching any of the patterns will be deleted from the repo.
        log_dir (`str`, *optional*):
            TensorBoard logging directory to be pushed. The Hub automatically
            hosts and displays a TensorBoard instance if log files are included
            in the repository.
        include_optimizer (`bool`, *optional*, defaults to `False`):
            Whether or not to include optimizer during serialization.
        tags (Union[`list`, `str`], *optional*):
            List of tags that are related to model or string of a single tag. See example tags
            [here](https://github.com/huggingface/hub-docs/blob/main/modelcard.md?plain=1).
        plot_model (`bool`, *optional*, defaults to `True`):
            Setting this to `True` will plot the model and put it in the model
            card. Requires graphviz and pydot to be installed.
        model_save_kwargs(`dict`, *optional*):
            model_save_kwargs will be passed to
            [`tf.keras.models.save_model()`](https://www.tensorflow.org/api_docs/python/tf/keras/models/save_model).

    Returns:
        The url of the commit of your model in the given repository.
    )ÚendpointT)r”   r�   r‹   rh   )rc   rd   re   rQ   Nzlogs/*Úlogsr"   )
Ú	repo_typer”   Úfolder_pathrŠ   r�   Úrevisionr�   r�   r‘   r’   )r   Úcreate_repor”   r   r   r…   r-   r{   r2   r   Úupload_folder)r"   r”   rc   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   rd   re   rQ   rƒ   ÚapiÚtmpÚ
saved_paths                       r%   Úpush_to_hub_kerasr    (  s‡  € õ` ˜Ð
&Ñ
&Ô
&€CØ�oŠo g°UÀGÐVZˆoÑ[Ô[Ôc€Gõ 
 Ñ	!Ô	!ð %
 SÝ˜#‘Y”Y Ñ(ˆ
ÝØØð	
ð Ø/ØØ!ð	
ð 	
ð  ð	
ð 	
ð 	
ð Ðð #Ð*ð �õ " /µ3Ñ7Ô7ð)�_Ð%Ð%à(ð ð ×"Ò" 8Ñ,Ô,Ð,Ý�W˜j¨6Ñ1Ñ2Ô2Ð2à× Ò ØØØ"Ø)ØØØØ)Ø+Ø+ð !ñ 
ô 
ð5%
ð %
ð %
ð %
ñ %
ô %
ð %
ð %
ð %
ð %
ð %
ð %
øøøð %
ð %
ð %
ð %
ð %
ð %
s   ½BCÃCÃCc                   óT   — e Zd ZdZd„ Ze	 ddeeee	f                  fd„¦   «         Z
dS )r†   aA  
    Implementation of [`ModelHubMixin`] to provide model Hub upload/download
    capabilities to Keras models.


    ```python
    >>> import tensorflow as tf
    >>> from huggingface_hub import KerasModelHubMixin


    >>> class MyModel(tf.keras.Model, KerasModelHubMixin):
    ...     def __init__(self, **kwargs):
    ...         super().__init__()
    ...         self.config = kwargs.pop("config", None)
    ...         self.dummy_inputs = ...
    ...         self.layer = ...

    ...     def call(self, *args):
    ...         return ...


    >>> # Initialize and compile the model as you normally would
    >>> model = MyModel()
    >>> model.compile(...)
    >>> # Build the graph by training it or passing dummy inputs
    >>> _ = model(model.dummy_inputs)
    >>> # Save model weights to local directory
    >>> model.save_pretrained("my-awesome-model")
    >>> # Push model weights to the Hub
    >>> model.push_to_hub("my-awesome-model")
    >>> # Download and initialize weights from the Hub
    >>> model = MyModel.from_pretrained("username/super-cool-model")
    ```
    c                 ó&   — t          | |¦  «         d S ©N)r…   )ÚselfrR   s     r%   Ú_save_pretrainedz#KerasModelHubMixin._save_pretrainedÈ  s   € Ý˜d NÑ3Ô3Ð3Ð3Ð3r'   Nrc   c
                 ó  — t           €t          d¦  «        ‚t          j                             |¦  «        s!t          |||dt          ¦   «         ¬¦  «        }n|}t           j                             |¦  «        }|	|_	        |S )a   Here we just call [`from_pretrained_keras`] function so both the mixin and
        functional APIs stay in sync.

                TODO - Some args above aren't used since we are calling
                snapshot_download instead of hf_hub_download.
        Nz>Called a TensorFlow-specific function but could not import it.r=   )r”   rš   Ú	cache_dirrW   Úlibrary_version)
r=   rp   r[   r\   Úisdirr   r   r�   Ú
load_modelrc   )ÚclsÚmodel_idrš   r§   Úforce_downloadÚproxiesÚresume_downloadÚlocal_files_onlyr�   rc   Úmodel_kwargsÚstorage_folderr"   s                r%   Ú_from_pretrainedz#KerasModelHubMixin._from_pretrainedË  s‡   € õ( ˆ=ÝÐ^Ñ_Ô_Ð_õ Œw�}Š}˜XÑ&Ô&ð 		&Ý.Ø Ø!Ø#Ø$Ý .Ñ 0Ô 0ðñ ô ˆNˆNð &ˆNõ ”×'Ò'¨Ñ7Ô7ˆð ˆŒàˆr'   r£   )r!   Ú
__module__Ú__qualname__Ú__doc__r¥   Úclassmethodr
   r   r{   r   r³   © r'   r%   r†   r†   ¤  so   € € € € € ð!ð !ðF4ð 4ð 4ð ð ,0ð(ð (ð ˜˜c 3˜hœÔ(ð(ð (ð (ñ „[ð(ð (ð (r'   )r)   )TN)NFTN)r   r†   ):Úcollections.abcÚabcr.   rx   r[   r}   Ú	functoolsr   Úpathlibr   Úshutilr   Útypingr   r   r	   r
   r   Úhuggingface_hubr   r   Úhuggingface_hub.utilsr   r   r   r   r   r)   r   Úhf_apir   rP   r   r   r   Úutils._typingr   Ú
get_loggerr!   Úloggerr=   Útf_kerasrp   Ú
tensorflowÚtfr(   r1   rC   rS   Úboolr3   rb   r{   rz   r…   r‰   r    r†   r¸   r'   r%   ú<module>rÉ      s§  ðØ %Ð %Ð %Ð %Ð %Ð %Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ $Ð $Ð $Ð $Ð $Ð $ð 
ˆÔ	˜HÑ	%Ô	%€à€Ø€?ÑÔð 
ð
Ø Ð Ð Ð Ð øØð ð ð ØÐÐÐà”ˆˆˆðøøøð 	ð ¨ið ð ð ð ðð ð ð ð:ð ð ðð ð ð" Ø#ð	)'ð )'àð)'ð ð)'ð �tŒnð	)'ð )'ð )'ð )'ðX ð (,Ø#ØØ'+ðPmð Pmà˜#˜t˜)Ô$ðPmð �T˜#˜s˜(”^Ô$ðPmð ð	Pmð
 ðPmð �5˜˜s˜Ô#Ô
$ðPmð Pmð Pmñ ÔðPmðf5?ð 5?ð 5?ð 5?ðp Øð
 "ØCØ"Ø"&ØØ Ø $Ø6:Ø7;Ø7;Ø!Ø#Ø'+Øð#w
ð w
ð w
àðw
ð �TŒNð	w
ð
 ðw
ð �dŒ^ðw
ð ˜3”-ðw
ð �CŒ=ðw
ð �SŒMðw
ð ˜Œ~ðw
ð ˜U 4¨¤9¨c >Ô2Ô3ðw
ð ˜e D¨¤I¨s NÔ3Ô4ðw
ð ˜e D¨¤I¨s NÔ3Ô4ðw
ð �cŒ]ðw
ð ðw
ð  �5˜˜s˜Ô#Ô
$ð!w
ð" ð#w
ð w
ð w
ñ Ôñ Ôðw
ðtPð Pð Pð Pð P˜ñ Pô Pð Pð Pð Ps   ÂB ÂBÂB