Ë
    ÂÓ^jFR  ã            $       óÞ  — d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	m
Z
 ddlmZ dd	lmZmZmZmZ dd
lmZ ddlmZmZ ddlmZmZ ddlmZmZ  ej:                  e«      Z ed¬«      Z e jC                  dg d¢¬«      	 	 	 	 d|dee" ed¬«      f   dee# edd¬«      f   deedz   edd¬«      f   dee# edd¬«      f   deddfd „«       Z$d!e"de#fd"„Z%e jC                  d#g d$¢¬«      	 	 	 	 	 	 d}d!ee"dz   ed%¬«      f   d&ee# ed'd(d)¬«      f   d*ee# ed+d,¬«      f   d-ee# ed.d/d0¬«      f   d1ededdfd2„«       Z&d3e"dz  d1e"dz  d&e#d*e#d-e#de"dz  ddfd4„Z'd!e"d&e#d*e#d-e#de"dz  ddfd5„Z(e jC                  d6d7d8g¬«      	 d~dee" ed9¬«      f   deddfd:„«       Z)e jC                  d;g d<¢¬«      	 	 	 ddee" ed9¬«      f   d=ee# ed>d?d@¬«      f   dAee# edBdC¬«      f   deddf
dD„«       Z*e jC                  dEg dF¢¬«      	 	 	 	 	 	 d€d!ee" edG¬«      f   d-ee# ed.d/dH¬«      f   d=ee# ed>d?d@¬«      f   dIee# edJdK¬«      f   dLee+e"   dz   edM¬«      f   dNee+e"   dz   edO¬«      f   deddfdP„«       Z,e jC                  dQg dR¢¬«      	 d~dSee" edT¬«      f   dUee" edV¬«      f   deddfdW„«       Z-e jC                  dXg dY¢¬«      	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d�dZee"dz   ed[¬«      f   d\ee"dz   ed]¬«      f   d;ee# ed^¬«      f   d_ee# ed`da¬«      f   dbee# edcdd¬«      f   deee"dz   edf¬«      f   dgee"dz   edh¬«      f   dIee# edJdi¬«      f   dLee+e"   dz   edj¬«      f   dNee+e"   dz   edk¬«      f   dlee"dz   edm¬«      f   dnee# edodp¬«      f   dqee# edrds¬«      f   dtee# edudvdw¬«      f   deddf dx„«       Z. e jC                  dyg dz¢¬«       ed{«      «       y)‚z7Contains commands to interact with buckets via the CLI.é    )Ú	AnnotatedN)Úlogging)ÚBUCKET_PREFIXÚ
BucketFileÚFilterMatcherÚ_parse_bucket_urié   )ÚREPO_REGIONSé   )Ú	SearchOptÚTokenOptÚ
get_hf_apiÚtyper_factory)Úmake_cp)Úformat_sizeÚprint_file_listing)ÚArgumentÚOption)ÚOutputFormatÚoutz"Commands to interact with buckets.)ÚhelpÚcreate)zhf buckets create my-bucketz hf buckets create user/my-bucketz-hf buckets create hf://buckets/user/my-bucketz*hf buckets create user/my-bucket --privatez+hf buckets create user/my-bucket --exist-okz,hf buckets create user/my-bucket --region us)ÚnameÚexamplesÚ	bucket_idzTBucket ID: bucket_name, namespace/bucket_name, or hf://buckets/namespace/bucket_nameÚprivatez	--privatezCreate a private bucket.Úregionz--regionzdCloud region in which to create the bucket. Can be one of 'us' or 'eu'. Requires Team plan or above.Úexist_okz
--exist-okz3Do not raise an error if the bucket already exists.ÚtokenÚreturnc                 ór  — t        |¬«      }| j                  t        «      rCt        | «      }|j                  r t        j                  d| › dt        › d�«      ‚|j                  } |j                  | |r|nd||¬«      }t        j                  d|j                  j                  «       |j                  ¬«       y)	zCreate a new bucket.©r   z-Cannot specify a prefix for bucket creation: ú. Use namespace/bucket_name or únamespace/bucket_name.N)r   r   r   zBucket created)ÚuriÚurl)r   Ú
startswithr   r   Úpath_in_repoÚclickÚBadParameterÚidÚcreate_bucketr   Úresultr%   Úto_urir&   )r   r   r   r   r   ÚapiÚparsedÚ
bucket_urls           úf/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/huggingface_hub/cli/buckets.pyr   r   /   s²   € ôT ˜5Ô
!€Cà×ÑœMÔ*Ü" 9Ó-ˆØ×ÒÜ×$Ñ$Ø?À	¸{ð K1Ü1>°Ð?UðWóð ð —I‘Iˆ	à×"Ñ"ØÙ"‘¨ØØð	 #ó €Jô ‡J�JÐ Z§^¡^×%:Ñ%:Ó%<À*Ç.Á.ÖQó    Úargumentc                 ód   — | j                  t        «      r| t        t        «      d }d|v S | }d|v S )zFCheck if argument is a bucket ID (namespace/name) vs just a namespace.Nú/)r'   r   Úlen)r4   Úpaths     r2   Ú_is_bucket_idr9   m   s?   € à×Ñœ=Ô)ØœœMÓ*Ð,Ð-ˆð �$ˆ;Ðð ˆØ�$ˆ;Ðr3   z	list | ls)
zhf buckets listzhf buckets list huggingfacez$hf buckets list --search "my-prefix"zhf buckets list user/my-bucketz!hf buckets list user/my-bucket -Rz!hf buckets list user/my-bucket -hz%hf buckets list user/my-bucket --treez(hf buckets list user/my-bucket --tree -hz+hf buckets list hf://buckets/user/my-bucketz%hf buckets list user/my-bucket/sub -RzyNamespace (user or org) to list buckets, or bucket ID (namespace/bucket_name(/prefix) or hf://buckets/...) to list files.Úhuman_readablez--human-readablez-hz$Show sizes in human readable format.Úas_treez--treez3List files in tree format (only for listing files).Ú	recursivez--recursivez-Rz0List files recursively (only for listing files).Úsearchc                 óœ   — | duxr t        | «      }|r(|�t        j                  d«      ‚t        | ||||¬«       yt	        | |||||¬«       y)z½List buckets or files in a bucket.

    When called with no argument or a namespace, lists buckets.
    When called with a bucket ID (namespace/bucket_name), lists files in the bucket.
    Nz'Cannot use --search when listing files.)r4   r:   r;   r<   r   )Ú	namespacer=   r:   r;   r<   r   )r9   r)   r*   Ú_list_filesÚ_list_buckets)r4   r:   r;   r<   r=   r   Úis_file_modes          r2   Úlist_cmdrC   v   sg   € ðr  4Ð'ÒC¬M¸(Ó,C€LáØÐÜ×$Ñ$Ð%NÓOÐOÜØØ)ØØØö	
ô 	ØØØ)ØØØö	
r3   r?   c           	      ó  — |rt        j                  d«      ‚|rt        j                  d«      ‚| �8| j                  t        «      r#| t	        t        «      d } | j                  d«      } t        |¬«      }|j                  | |¬«      D �cg c]T  }|j                  |j                  |rt        |j                  |«      n|j                  |j                  |j                  dœ‘ŒV }}t        j                  |dd	i¬
«       yc c}w )zList buckets in a namespace.z'Cannot use --tree when listing buckets.z,Cannot use --recursive when listing buckets.Nr6   r"   )r?   r=   )r+   r   ÚsizeÚtotal_filesÚ
created_atrE   Úright)Ú
alignments)r)   r*   r'   r   r7   Úrstripr   Úlist_bucketsr+   r   r   rE   rF   rG   r   Útable)	r?   r=   r:   r;   r<   r   r/   ÚbucketÚitemss	            r2   rA   rA   Æ   sõ   € ñ Ü× Ñ Ð!JÓKÐKÙÜ× Ñ Ð!OÓPÐPð Ð ×!5Ñ!5´mÔ!DØœc¤-Ó0Ð2Ð3ˆ	à×$Ñ$ SÓ)ˆ	ä
˜5Ô
!€Cð ×&Ñ&°À6Ð&ÓJö	ð ð —)‘)Ø—~‘~Ù@N”K §¡¨^Ô<ÐTZ×T_ÑT_Ø!×-Ñ-Ø ×+Ñ+ó	
ð	€Eð 	ô ‡I�Iˆe ¨Ð 1Ö2ùò	s   Â
AC?c                 ó*  — |r6t         j                  t        j                  k(  rt	        j
                  d«      ‚t        |¬«      }t        | «      }t        |j                  |j                  |j                  xs d|¬«      «      }t        ||||¬«       y)zList files in a bucket.z%Cannot use --tree with --format json.r"   N©Úprefixr<   )r:   r;   r<   )r   Úmoder   Újsonr)   r*   r   r   ÚlistÚlist_bucket_treer+   r(   r   )r4   r:   r;   r<   r   r/   r0   rN   s           r2   r@   r@   é   s„   € ñ ”3—8‘8œ|×0Ñ0Ò0Ü× Ñ Ð!HÓIÐIä
˜5Ô
!€CÜ˜xÓ(€FÜØ×ÑØ�I‰IØ×&Ñ&Ò.¨$Øð 	ó 	
ó€Eô �u¨^ÀWÐXaÖbr3   Úinfozhf buckets info user/my-bucketz+hf buckets info hf://buckets/user/my-bucketzFBucket ID: namespace/bucket_name or hf://buckets/namespace/bucket_namec                 ó–   — t        |¬«      }t        | «      }|j                  |j                  «      }t	        j
                  |d¬«       y)zGet info about a bucket.r"   r+   )Úid_keyN)r   r   Úbucket_infor+   r   Údict)r   r   r/   r0   rM   s        r2   rV   rV     s8   € ô" ˜5Ô
!€CÜ˜yÓ)€FØ�_‰_˜VŸY™YÓ'€FÜ‡H�HˆV˜DÖ!r3   Údelete)z hf buckets delete user/my-bucketz-hf buckets delete hf://buckets/user/my-bucketz&hf buckets delete user/my-bucket --yesz-hf buckets delete user/my-bucket --missing-okÚyesz--yesz-yzSkip confirmation prompt.Ú
missing_okz--missing-okz3Do not raise an error if the bucket does not exist.c                 ó   — | j                  t        «      rDt        | «      }|j                  r t	        j
                  d| › dt        › d�«      ‚|j                  } n$d| vr t	        j
                  d| › dt        › d�«      ‚t        j                  d| › d�|¬	«       t        |¬
«      }|j                  | |¬«       t        j                  d| ¬«       y)zDelete a bucket.

    This deletes the entire bucket and all its contents. Use `hf buckets rm` to remove individual files.
    z-Cannot specify a prefix for bucket deletion: r#   r$   r6   zInvalid bucket ID: z-. Must be in format namespace/bucket_name or z(Are you sure you want to delete bucket 'ú'?©r\   r"   )r]   zBucket deleted)r   N)r'   r   r   r(   r)   r*   r+   r   Úconfirmr   Údelete_bucketr-   )r   r\   r]   r   r0   r/   s         r2   r[   r[     sÚ   € ðJ ×ÑœMÔ*Ü" 9Ó-ˆØ×ÒÜ×$Ñ$Ø?À	¸{ð K1Ü1>°Ð?UðWóð ð —I‘I‰	Ø	�IÑ	Ü× Ñ Ø! ) ð -;Ü;H¸/ÐI_ðaó
ð 	
ô
 ‡K�KÐ:¸9¸+ÀRÐHÈcÕRä
˜5Ô
!€CØ×Ñ�i¨JÐÔ7Ü‡J�JÐ¨9Ö5r3   zremove | rm)z)hf buckets remove user/my-bucket/file.txtz2hf buckets rm hf://buckets/user/my-bucket/file.txtz.hf buckets rm user/my-bucket/logs/ --recursivez:hf buckets rm user/my-bucket --recursive --include "*.tmp"z8hf buckets rm user/my-bucket/data/ --recursive --dry-runz¡Bucket path: namespace/bucket_name/path or hf://buckets/namespace/bucket_name/path. With --recursive, namespace/bucket_name is also accepted to target all files.z0Remove files recursively under the given prefix.Údry_runz	--dry-runz8Preview what would be deleted without actually deleting.ÚincludezQInclude only files matching pattern (can specify multiple). Requires --recursive.ÚexcludezLExclude files matching pattern (can specify multiple). Requires --recursive.c                 ó:  ‡— t        | «      }|j                  Š|j                  }|dk(  r|st        j                  d‰› d‰› d�«      ‚|s|r|st        j                  d«      ‚t        |¬«      }	|�rt        j                  d«      }
g }|	j                  ‰|xs dd	¬
«      D ]B  }t        |t        «      sŒ|j                  |«       |
j                  dt        |«      › d�«       ŒD |
j                  dt        |«      › d�«       |s|r9t        ||¬«      }|D �cg c]   }|j!                  |j"                  «      sŒ|‘Œ" }}n|}|D �cg c]  }|j"                  ‘Œ }}t%        d„ |D «       «      }t'        |d	¬«      }|st        j(                  d«       yt        |«      › d|› �}|sK|sIt        j(                  dj+                  d„ |D «       «      «       t        j,                  d|› d‰› d�d¬«       |rGt        j(                  dj+                  ˆfd„|D «       «      «       t        j(                  d|› d�«       y|	j/                  ‰|¬«       t        j0                  d|› d‰› d�‰t        |«      |¬«       y|}|st        j                  d «      ‚|r7t        j(                  d!t2        › ‰› d"|› �«       t        j(                  d#«       yt        j,                  d$|› d%‰› d�|¬«       |	j/                  ‰|g¬«       t        j0                  d&|‰¬'«       yc c}w c c}w )(zbRemove files from a bucket.

    To delete an entire bucket, use `hf buckets delete` instead.
    Ú z?No file path specified. To remove files, provide a path (e.g. 'zd/FILE') or use --recursive to remove all files. To delete the entire bucket, use `hf buckets delete z`.z,--include and --exclude require --recursive.r"   zListing files from remoteNTrP   zListing files from remote (z files))Úinclude_patternsÚexclude_patternsc              3   ó4   K  — | ]  }|j                   –— Œ y ­w©N)rE   )Ú.0Úfs     r2   ú	<genexpr>zremove.<locals>.<genexpr>´  s   è ø€ Ò7 A˜Ÿ�Ñ7ùs   ‚)r:   zNo files to remove.z file(s) totaling ú
c              3   ó&   K  — | ]	  }d |› �–— Œ y­w)z  N© )rl   r8   s     r2   rn   zremove.<locals>.<genexpr>¾  s   è ø€ ÒB¨t  D 6œ{ÑBùs   ‚zRemove z from 'r_   Fr`   c              3   ó:   •K  — | ]  }d t         › ‰› d|› �–— Œ y­w)údelete: r6   N)r   )rl   r8   r   s     €r2   rn   zremove.<locals>.<genexpr>Â  s#   øè ø€ ÒcÐPT ¬-¨¸¸À1ÀTÀFÔKÑcùs   ƒz
(dry run) z would be removed.)r[   zRemoved ú')r   Úfiles_deletedrE   zFile path cannot be empty.rs   r6   z"(dry run) 1 file would be removed.zRemove 'z' from 'zFile removed)r8   r   )r   r+   r(   r)   r*   r   r   ÚstatusrU   Ú
isinstancer   ÚappendÚupdater7   Údoner   Úmatchesr8   Úsumr   ÚtextÚjoinra   Úbatch_bucket_filesr-   r   )r4   r<   r\   rc   rd   re   r   r0   rQ   r/   rv   Ú	all_filesÚitemÚmatcherrm   Úmatched_filesÚ
file_pathsÚ
total_sizeÚsize_strÚcount_labelÚ	file_pathr   s                        @r2   Úremover‰   R  sú  ø€ ôz ˜xÓ(€FØ—	‘	€IØ× Ñ €Fà�‚|™IÜ× Ñ ðØ �kð "DØDMÀ;ÈbðRó
ð 	
ñ 	‘7¡IÜ× Ñ Ð!OÓPÐPä
˜5Ô
!€CâÜ—‘Ð7Ó8ˆà&(ˆ	Ø×(Ñ(ØØ’>˜TØð )ó 
ò 	UˆDô
 ˜$¤
Õ+Ø× Ñ  Ô&Ø—‘Ð ;¼CÀ	»NÐ;KÈ7ÐSÕTð	Uð 	�‰Ð1´#°i³.Ð1AÀÐIÔJá‘gÜ#°WÈwÔWˆGØ(1ÖM 1°W·_±_ÀQÇVÁVÕ5LšQÐMˆMÑMà%ˆMà&3Ö4 �a—f“fÐ4ˆ
Ð4ÜÑ7¨Ô7Ó7ˆ
Ü˜z¸$Ô?ˆáÜ�H‰HÐ*Ô+Øä˜Z›Ð)Ð);¸H¸:ÐFˆá™7Ü�H‰H�T—Y‘YÑB°zÔBÓBÔCÜ�K‰K˜' + ¨g°i°[ÀÐCÈÕOáÜ�H‰H�T—Y‘YÓcÐXbÔcÓcÔdÜ�H‰H�z + Ð.@ÐAÔBØà×Ñ˜y°ÐÔ<Ü�
‰
Ø�{�m 7¨9¨+°QÐ7ØÜ˜j›/Øö		
ð ˆ	ÙÜ×$Ñ$Ð%AÓBÐBáÜ�H‰H�x¤˜¨y¨k¸¸9¸+ÐFÔGÜ�H‰HÐ9Ô:Øä�‰�h˜y˜k¨°)°¸BÐ?ÀSÕIà×Ñ˜y°)°ÐÔ=Ü�
‰
�>¨	¸YÖGùòY Nùò 5s   Ä LÄ:LÅLÚmove)z/hf buckets move user/old-bucket user/new-bucketz/hf buckets move user/my-bucket my-org/my-bucketzIhf buckets move hf://buckets/user/old-bucket hf://buckets/user/new-bucketÚfrom_idzMSource bucket ID: namespace/bucket_name or hf://buckets/namespace/bucket_nameÚto_idzRDestination bucket ID: namespace/bucket_name or hf://buckets/namespace/bucket_namec                 óž  — t        | «      }|j                  r t        j                  d| › dt        › d�«      ‚t        |«      }|j                  r t        j                  d|› dt        › d�«      ‚t        |¬«      }|j                  |j                  |j                  ¬«       t        j                  d|j                  |j                  ¬«       y)z2Move (rename) a bucket to a new name or namespace.z)Cannot specify a prefix for bucket move: r#   r$   r"   )r‹   rŒ   zBucket movedN)
r   r(   r)   r*   r   r   Úmove_bucketr+   r   r-   )r‹   rŒ   r   Úparsed_fromÚ	parsed_tor/   s         r2   rŠ   rŠ   Þ  sÃ   € ô2 $ GÓ,€KØ×ÒÜ× Ñ Ø7¸°yð A-Ü-:¨OÐ;QðSó
ð 	
ô " %Ó(€IØ×ÒÜ× Ñ Ø7¸°wð ?-Ü-:¨OÐ;QðSó
ð 	
ô
 ˜5Ô
!€CØ‡O�O˜KŸN™N°)·,±,€OÔ?Ü‡J�Jˆ~ {§~¡~¸Y¿\¹\ÖJr3   Úsync)z2hf buckets sync ./data hf://buckets/user/my-bucketz2hf buckets sync hf://buckets/user/my-bucket ./dataz;hf buckets sync ./data hf://buckets/user/my-bucket --deletez^hf buckets sync hf://buckets/user/my-bucket ./data --include "*.safetensors" --exclude "*.tmp"zIhf buckets sync ./data hf://buckets/user/my-bucket --plan sync-plan.jsonlz'hf buckets sync --apply sync-plan.jsonlz<hf buckets sync ./data hf://buckets/user/my-bucket --dry-runzChf buckets sync ./data hf://buckets/user/my-bucket --dry-run | jq .ÚsourcezKSource path: local directory or hf://buckets/namespace/bucket_name(/prefix)ÚdestzPDestination path: local directory or hf://buckets/namespace/bucket_name(/prefix)z/Delete destination files not present in source.Úignore_timesz--ignore-timesz;Skip files only based on size, ignoring modification times.Úignore_sizesz--ignore-sizesz<Skip files only based on modification times, ignoring sizes.Úplanz=Save sync plan to JSONL file for review instead of executing.Úapplyz#Apply a previously saved plan file.z5Print sync plan to stdout as JSONL without executing.z6Include files matching pattern (can specify multiple).z6Exclude files matching pattern (can specify multiple).Úfilter_fromz(Read include/exclude patterns from file.Úexistingz
--existingzASkip creating new files on receiver (only update existing files).Úignore_existingz--ignore-existingzCSkip updating files that exist on receiver (only create new files).Úverbosez	--verbosez-vz%Show detailed logging with reasoning.c                 óâ   — t        |¬«      }|j                  | ||||||||	|
||||t        j                  «       ¬«       |r/t        j                  «       st        j                  d|› d�«       yyy)z0Sync files between local directory and a bucket.r"   )r’   r“   r[   r”   r•   r™   rš   rd   re   r˜   r–   r—   rc   r›   ÚquietzRun `hf buckets sync --apply z` to execute this plan.N)r   Úsync_bucketr   Úis_quietÚhint)r’   r“   r[   r”   r•   r–   r—   rc   rd   re   r˜   r™   rš   r›   r   r/   s                   r2   r‘   r‘     s~   € ôX ˜5Ô
!€CØ‡O�OØØØØ!Ø!ØØ'ØØØØØØØÜ�l‰l‹nð ô ñ" ”C—L‘L”NÜ�‰Ð0°°Ð6MÐNÕOð #€tr3   Úcp)zEhf buckets cp hf://buckets/username/my-bucket/config.json config.jsonz<hf buckets cp hf://buckets/username/my-bucket/data.csv data/z;hf buckets cp hf://buckets/username/my-bucket/config.json -zQhf buckets cp model.safetensors hf://buckets/username/my-bucket/model.safetensorsz?hf buckets cp config.json hf://buckets/username/my-bucket/logs/z;hf buckets cp - hf://buckets/username/my-bucket/config.jsonzYhf buckets cp hf://buckets/username/my-bucket/data.csv hf://buckets/username/dest-bucket/z_hf buckets cp hf://buckets/username/source-bucket/logs/ hf://buckets/username/dest-bucket/logs/Úbuckets)FNFN)NFFFNNrk   )FFN)FFFNNN)NNFFFNNFNNNFFFN)/Ú__doc__Útypingr   r)   Úhuggingface_hubr   Úhuggingface_hub._bucketsr   r   r   r   Úhf_apir
   Ú
_cli_utilsr   r   r   r   Ú_cpr   Ú_file_listingr   r   Ú
_frameworkr   r   Ú_outputr   r   Ú
get_loggerÚ__name__ÚloggerÚbuckets_cliÚcommandÚstrÚboolr   r9   rC   rA   r@   rV   r[   rT   r‰   rŠ   r‘   rq   r3   r2   ú<module>r´      s%	  ðñ >å ã å #÷ó õ "÷ó õ ß :ß (ß &ð 
ˆ×	Ñ	˜HÓ	%€ñ Ð!EÔF€ð ×ÑØ	òð ó 
ð0 	ð 	ð 	Øñ90RØØÙØgô	
ð	ñð0Rð ØÙØØ+ô	
ð	ñð0Rð Ø�tÑÙØØwô	
ð	ñð0Rð* ØÙØØFô	
ð	ñð+0Rð8 ð90Rð: 
ò;0Ró
ð0Rðf˜Cð  Dó ð ×ÑØ	òð ó ð0 	ð 	ð 	ð 	ØØñE>
ØØˆd‰
ÙðWô	
ð	ñð>
ð ØÙØØØ7ô	
ð	ñð>
ð$ ØÙØØFô	
ð	ñð%>
ð2 ØÙØØØCô	
ð	ñð3>
ðB ðC>
ðD ðE>
ðF 
òG>
óð>
ðB 3Ø�T‰zð 3à�$‰Jð 3ð ð 3ð ð	 3ð
 ð 3ð �‰:ð 3ð 
ó 3ðFcØðcàðcð ðcð ð	cð
 �‰:ðcð 
ócð0 ×ÑØ	à(Ø5ðð ó ð ñ"ØØÙØYô	
ð	ñð"ð ð"ð 
ò"óð"ð  ×ÑØ	òð ó ð. 	ð 	Øñ-.6ØØÙØYô	
ð	ñð.6ð 
ØÙØØØ,ô	
ð	ñ
ð.6ð ØÙØØFô	
ð	ñð.6ð, ð-.6ð. 
ò/.6óð.6ðb ×ÑØ	òð ó 	ð6 	ð 	ð 	ð 	ð 	Øñ[HØØÙðaô	
ð	ñðHð ØÙØØØCô	
ð	ñðHð$ 
ØÙØØØ,ô	
ð	ñ
ð%Hð4 ØÙØØKô	
ð	ñð5HðB ØˆS‰	�DÑÙØdô	
ð	ñðCHðN ØˆS‰	�DÑÙØ_ô	
ð	ñðOHðZ ð[Hð\ 
ò]Hó	ðHðD ×ÑØ	òð ó ð* ñ"KØØÙØ`ô	
ð	ñð"Kð ØÙØeô	
ð	ñð"Kð ð"Kð 
ò"Kóð"KðT ×ÑØ	ò	ð ó ð& 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ØñyrPØØˆd‰
ÙØ^ô	
ð	ñðrPð Øˆd‰
ÙØcô	
ð	ñðrPð ØÙØBô	
ð	ñðrPð& ØÙØØNô	
ð	ñð'rPð4 ØÙØØOô	
ð	ñð5rPðB Øˆd‰
ÙØPô	
ð	ñðCrPðN Øˆd‰
ÙØ6ô	
ð	ñðOrPðZ ØÙØØHô	
ð	ñð[rPðh ØˆS‰	�DÑÙØIô	
ð	ñðirPðt ØˆS‰	�DÑÙØIô	
ð	ñðurPð@ Øˆd‰
ÙØ;ô	
ð	ñðArPðL ØÙØØTô	
ð	ñðMrPðZ ØÙØØVô	
ð	ñð[rPðh ØÙØØØ8ô	
ð	ñðirPðx ðyrPðz 
ò{rPóðrPðv€× Ñ Ø	òð ó ñ 
ˆ)Óõr3   