ó
    x[hAF  ã                   óP  • S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	J
r
Jr  SSKJrJrJrJrJrJr  SSKJrJr  SSKJr  SSKJr  SS	KJr  SS
KJrJrJr  Sr \RB                   " S S\RD                  5      5       r#\RB                   " S S\RD                  5      5       r$\RB                   " S S\RD                  5      5       r%\&" \%RN                  \%RP                  \%RR                  \%RT                  /5      r+ " S S\5      r,Sr-S\\.   S\/S\.4S jr0S.S jr1S\#S\$S\\.\.4   4S jr2S\,4S jr3S\44S jr5S\/4S  jr6S\\%\.4   4S! jr7S\/4S" jr8S\/S\/4S# jr9S\/4S$ jr:S\#4S% jr;S\.4S& jr<S' r=S( r>S\\\4   4S) jr? S/S*\\   S\/S\,4S+ jjr@S, rA\BS-:X  a  \A" 5         gg)0zGDefine 'status' utility and handler as part of cloud-init command line.é    N)Údeepcopy)ÚgmtimeÚsleepÚstrftime)ÚAnyÚDictÚListÚ
NamedTupleÚOptionalÚTuple)ÚsafeyamlÚsubp)Úread_cfg_paths)Úuses_systemd)ÚPaths)Úget_cmdlineÚ	load_jsonÚload_text_filez/etc/cloud/cloud-init.disabledc                   ó(   • \ rS rSrSrSrSrSrSrSr	g)	ÚRunningStatusé   z=Enum representing user-visible cloud-init application status.znot startedÚrunningÚdoneÚdisabled© N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚNOT_STARTEDÚRUNNINGÚDONEÚDISABLEDÚ__static_attributes__r   ó    Ú6/usr/lib/python3/dist-packages/cloudinit/cmd/status.pyr   r      s   † áGà€KØ€GØ€DØƒHr&   r   c                   ó$   • \ rS rSrSrSrSrSrSrg)ÚConditionStatusé%   z;Enum representing user-visible cloud-init condition status.ÚerrorÚdegradedÚhealthyr   N)	r   r   r   r   r    ÚERRORÚDEGRADEDÚPEACHYr%   r   r&   r'   r)   r)   %   s   † áEà€EØ€HØƒFr&   r)   c                   ó8   • \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrg)ÚEnabledStatusé.   z<Enum representing user-visible cloud-init boot status codes.zdisabled-by-generatorzdisabled-by-kernel-command-linezdisabled-by-marker-filez disabled-by-environment-variablezenabled-by-generatorzenabled-by-kernel-command-linezenabled-by-sysvinitÚunknownr   N)r   r   r   r   r    ÚDISABLED_BY_GENERATORÚDISABLED_BY_KERNEL_CMDLINEÚDISABLED_BY_MARKER_FILEÚDISABLED_BY_ENV_VARIABLEÚENABLED_BY_GENERATORÚENABLED_BY_KERNEL_CMDLINEÚENABLED_BY_SYSVINITÚUNKNOWNr%   r   r&   r'   r2   r2   .   s4   † áFà3ÐØ!BÐØ7ÐØAÐØ1ÐØ @ÐØ/ÐØƒGr&   r2   c                   ó–   • \ rS rSr% \\S'   \\S'   \\S'   \\S'   \	\   \S'   \
\\	\   4   \S'   \\S'   \\   \S	'   \
\\4   \S
'   Srg)ÚStatusDetailséF   Úrunning_statusÚcondition_statusÚboot_status_codeÚdescriptionÚerrorsÚrecoverable_errorsÚlast_updateÚ
datasourceÚv1r   N)r   r   r   r   r   Ú__annotations__r)   r2   Ústrr	   r   r   r   r%   r   r&   r'   r>   r>   F   sU   ‡ Ø!Ó!Ø%Ó%Ø#Ó#ØÓØ�‰IÓØ˜S $ s¡)˜^Ñ,Ó,ØÓØ˜‘ÓØˆS�#ˆX‰Ör&   r>   z›extended_status: {extended_status}
boot_status_code: {boot_code}
{last_update}detail: {description}
errors:{errors}
recoverable_errors:{recoverable_errors}Úsystemctl_argsÚwaitÚreturnc                óÆ   •   [         R                   " S/U Q5      R                  R                  5       $ ! [         R                   a    U(       d  e [	        S5         Of = fMa  )z-Query systemd with retries and return output.Ú	systemctlç      Ð?)r   ÚstdoutÚstripÚProcessExecutionErrorr   )rK   rL   s     r'   Úquery_systemctlrT   Z   sY   € ð ð	Ü—9’9˜kÐ;¨NÐ;Ó<×CÑC×IÑIÓKÐKøÜ×)Ñ)ó 	ÞØÜ�$ŽKð	úñ s   ƒ04 ´'AÁAc                 ó¼   • U (       d  [         R                  " SSS9n U R                  S[        / SQSSS9  U R                  S	S
SSSS9  U R                  SSSSSS9  U $ )a  Build or extend an arg parser for status utility.

@param parser: Optional existing ArgumentParser instance representing the
    status subcommand which will be extended to support the args of
    this utility.

@returns: ArgumentParser with proper argument configuration.
ÚstatuszReport run status of cloud init)ÚprogrC   z--format)ÚjsonÚtabularÚyamlrY   z5Specify output format for cloud-id (default: tabular))ÚtypeÚchoicesÚdefaultÚhelpz-lz--longÚ
store_trueFzJReport long format of statuses including run stage name and error messages)Úactionr]   r^   z-wz--waitz'Block waiting on cloud-init to complete)ÚargparseÚArgumentParserÚadd_argumentrJ   ©Úparsers    r'   Ú
get_parserrf   i   s’   € ö Ü×(Ò(ØÐ'Hñ
ˆð ×ÑØÜÚ+ØØDð ñ ð ×ÑØØØØðð ñ 	ð ×ÑØØØØØ6ð ñ ð €Mr&   r   Ú	conditionc                 óR  • U[         R                  :X  a  SUR                   SU R                   34$ U[         R                  :X  aK  U [        R
                  [        R                  4;   a'  U R                  UR                   SU R                   34$ U R                  U R                  4$ )z’Translate running and condition status to human readable strings.

Returns (status, extended_status).
Much of this is for backwards compatibility
r+   z - Ú )r)   r.   Úvaluer/   r   r#   r"   )r   rg   s     r'   Útranslate_statusrk   ‘   s•   € ð ”O×)Ñ)Ó)Ø˜9Ÿ?™?Ð+¨3¨w¯}©}¨oÐ>Ð>Ð>à	”o×.Ñ.Ó	.°7Ü×ÑÜ×Ñð?ó 4ð �}‰} §¡Ð 1°°7·=±=°/ÐBÐBÐBØ�=‰=˜'Ÿ-™-Ð'Ð'r&   Údetailsc                 ó,  • [        UR                  UR                  5      u  p#UR                  UR                  R
                  UUUR                  UR                  UR                  UR                  S.UR                  EnU R                  S:X  Ga  SnUS   n[        U SU 35        U R                  (       aî  UR                  S5      (       a
  SUS    S3nOSnUS	   (       a  S
S
R                  US	   5      -   OSnUS   (       aq  SSR                  US   R!                  5        V	V
Vs/ s H<  u  pšU	 S3S
R                  U
 Vs/ s H  o»R#                  SS5      PM     sn5      -   PM>     snn
n	5      -   OSn[        [$        R                  US   UUS   US   UUUS95        ggU R                  S:X  a!  [        [&        R(                  " USSSS95        gU R                  S:X  a   [        [*        R(                  " U5      5        ggs  snf s  snn
n	f )zPrint status out to the CLI.)rG   rB   rV   Úextended_statusÚdetailrD   rE   rF   rY   Ú rV   zstatus: rF   zlast_update: Ú
rD   z
	- z []rE   z:
	- ri   z {}rn   rB   ro   )rn   ÚprefixÚ	boot_coderC   rF   rD   rE   rX   é   T)Ú,z: )ÚindentÚ	sort_keysÚ
separatorsrZ   N)rk   r@   rA   rG   rB   rj   rC   rD   rE   rF   rH   ÚformatÚprintÚlongÚgetÚjoinÚitemsÚreplaceÚTABULAR_LONG_TMPLrX   Údumpsr   )Úargsrl   rV   rn   Údetails_dictrr   ÚstaterF   Úerrors_outputÚkÚvÚiÚrecoverable_errors_outputs                r'   Úprint_statusrŠ   ¥   s3  € ä.Ø×Ñ × 8Ñ 8óÑ€Fð ×(Ñ(Ø#×4Ñ4×:Ñ:ØØ*Ø×%Ñ%Ø—.‘.Ø%×8Ñ8Ø×*Ñ*ñ
$ð �*‰*ð
$€Lð ‡{�{�iÔØˆð ˜XÑ&ˆÜ��˜  Ð(Ô)Ø�9�9Ø×Ñ ×.Ñ.Ø -¨l¸=Ñ.IÐ-JÈ"ÐM‘à �ð   ×)ð ˜8Ÿ=™=¨°hÑ)?Ó@Ò@àð ð  Ð 4×5ð Ø—)‘)ð %1Ð1EÑ$F×$LÑ$LÔ$Nõò %O™D˜Að ˜#˜W˜Ø"Ÿ-™-ÁqÓ(IÂqÀ!¯©°4¸Ö)=ÁqÑ(IÓJôKá$Nóóòð ð &ô Ü!×(Ñ(Ø$0Ð1BÑ$CØ!Ø*Ð+=Ñ>Ø ,¨XÑ 6Ø +Ø(Ø'@ð )ð õ
ð- ðB 
�‰˜Ó	ÜÜ�JŠJØ Q°$À;ñõ	
ð
 
�‰˜Ó	ÜŒh�nŠn˜\Ó*Õ+ð 
ùò1 )Jùôs   Ä+HÅH
Å!HÈ
Hc                 óŒ  • [        5       n[        X!R                  5      nUR                  (       aË  UR                  [        R
                  [        R                  4;   a�  UR                  S:X  a=  [        R                  R                  S5        [        R                  R                  5         [        X!R                  5      n[        S5        UR                  [        R
                  [        R                  4;   a  M�  [        X5        UR                  [        R                   :X  a  gUR                  [        R"                  :X  a  gg)z4Handle calls to 'cloud-init status' as a subcommand.rY   Ú.rP   é   rt   r   )r   Úget_status_detailsrL   r@   r   r!   r"   ry   ÚsysrQ   ÚwriteÚflushr   rŠ   rA   r)   r.   r/   )Únamer‚   Úpathsrl   s       r'   Úhandle_status_argsr”   ç   sï   € ô Ó€EÜ  ¯	©	Ó2€GØ‡y‡yØ×$Ñ$Ü×%Ñ%Ü×!Ñ!ð)
ó 
ð �{‰{˜iÓ'Ü—
‘
× Ñ  Ô%Ü—
‘
× Ñ Ô"Ü(¨·	±	Ó:ˆGÜ�$ŒKð ×$Ñ$Ü×%Ñ%Ü×!Ñ!ð)
õ 
ô �Ôð ×Ñ¤?×#8Ñ#8Ó8Øà	×	!Ñ	!¤_×%=Ñ%=Ó	=ØØr&   c                 ód   •  [        S/U S9nSU;   $ ! [        R                   a	    Sn SU;   $ f = f)z?Return whether cloud-init is disabled via environment variable.zshow-environment©rL   rp   úcloud-init=disabled)rT   r   rS   )rL   Úenvs     r'   Ú_disabled_via_environmentr™     sK   € ðÜÐ1Ð2¸Ñ>ˆð ! CÑ'Ð'øô ×%Ñ%ó Ø‰Ø  CÑ'Ð'ðús   ‚ ’/®/c                 óÐ  • [        5       R                  5       n[        5       (       d  [        R                  nSnXE4$ SU;   a  [        R
                  nSnXE4$ [        R                  R                  U 5      (       a$  [        R                  nSR                  U 5      nXE4$ SU;   a  [        R                  nSnXE4$ S[        R                  R                  SS5      ;   d  [        5       (       a#  [        US	9(       a  [        R                  nS
nXE4$ [        R                  R                  [        R                  R!                  UR"                  S5      5      (       a  [        R$                  nSnXE4$ [        R                  R                  [        R                  R!                  UR"                  S5      5      (       a  [        R&                  nSnXE4$ [        R(                  nSnXE4$ )a@  Report whether cloud-init current boot status

@param disable_file: The path to the cloud-init disable file.
@param paths: An initialized cloudinit.helpers.Paths object.
@param wait: If user has indicated to wait for cloud-init to complete.
@returns: A tuple containing (code, reason) about cloud-init's status and
why.
zCloud-init enabled on sysvinitzcloud-init=enabledz<Cloud-init enabled by kernel command line cloud-init=enabledzCloud-init disabled by {0}r—   z;Cloud-init disabled by kernel parameter cloud-init=disabledÚKERNEL_CMDLINErp   r–   zNCloud-init disabled by environment variable KERNEL_CMDLINE=cloud-init=disabledr   z+Cloud-init disabled by cloud-init-generatorÚenabledz2Cloud-init enabled by systemd cloud-init-generatorz'Systemd generator may not have run yet.)r   Úsplitr   r2   r;   r:   ÚosÚpathÚexistsr7   ry   r6   Úenvironr|   r™   r8   r}   Úrun_dirr5   r9   r<   )Údisable_filer“   rL   Úcmdline_partsÚbootstatus_codeÚreasons         r'   Úget_bootstatusr§     s¥  € ô  “M×'Ñ'Ó)€MÜ�>‰>Ü'×;Ñ;ˆØ1ˆð6 Ð$Ð$ð5 
 Ó	.Ü'×AÑAˆØOˆð0 Ð$Ð$ô/ 
�‰�‰˜×	%Ñ	%Ü'×?Ñ?ˆØ-×4Ñ4°\ÓBˆð* Ð$Ð$ð) 
 -Ó	/Ü'×BÑBˆØNˆð$ Ð$Ð$ð# 
¤"§*¡*§.¡.Ð1AÀ2Ó"FÓ	FÜ�‰Ô4¸$×?ä'×@Ñ@ˆð1ð 	ð Ð$Ð$ô 
�‰�‰œŸ™Ÿ™ U§]¡]°JÓ?×	@Ñ	@Ü'×=Ñ=ˆØ>ˆð Ð$Ð$ô 
�‰�‰œŸ™Ÿ™ U§]¡]°IÓ>×	?Ñ	?Ü'×<Ñ<ˆØEˆð Ð$Ð$ô (×/Ñ/ˆØ:ˆØÐ$Ð$r&   c                  óJ   • [        [        5       5      R                  [        ;  $ ©N)rŽ   r   rB   ÚDISABLED_BOOT_CODESr   r&   r'   Úis_cloud_init_enabledr«   5  s    € äœ>Ó+Ó,×=Ñ=Ü"ñ	#ðr&   c                 óJ  • S HË  n [        SSU/U S9n[        UR                  5        VVs/ s H1  oDR                  S	5       Vs/ s H  oUR                  5       PM     snPM3     snn5      nUS
   R                  S5      (       d  US
   S:X  d    gUS   S:X  a!  US   S:X  a  M¡  US   S:X  a  US   S:X  a    g  gUS   S:X  d	  US   S:X  a    g  g   g! [        R                   a0  n[        SUR                   3[
        R                  S9   SnA  gSnAff = fs  snf s  snnf )z2Return if systemd units report a cloud-init error.)zcloud-final.servicezcloud-config.servicezcloud-init-network.servicezcloud-init-local.servicezcloud-init-main.serviceÚshowz5--property=ActiveState,UnitFileState,SubState,MainPIDr–   z^Failed to get status from systemd. Cloud-init status may be inaccurate. Error from systemctl: )ÚfileNFÚ=ÚUnitFileStaterœ   ÚstaticTÚActiveStateÚactiveÚSubStateÚexitedr   ÚMainPIDÚ0Úfailed)rT   r   rS   rz   Ústderrr�   ÚdictÚ
splitlinesr�   rR   Ú
startswith)rL   ÚservicerQ   ÚeÚrÚxÚstatess          r'   Úsystemd_failedrÂ   <  sO  € óˆð	Ü$àØKØðð
 ñˆFô" Ø8>×8IÑ8IÔ8KÔLÒ8K°1§¡¨¤Ó.¢˜A�g‰gŽi¡Ô.Ñ8KÒLó
ˆð �?Ñ#×.Ñ.¨y×9Ñ9Ø�oÑ&¨(Ó2ñ Ø�MÑ" hÓ.Ø�jÑ! XÓ-áØ˜
Ñ# yÓ0°V¸IÑ5FÈ#Ó5Mñ ñ ð �=Ñ! XÓ-°¸
Ñ1CÀxÓ1Oáñ ñgðl øôM ×)Ñ)ó 	äð)à)*¯©¨
ð4ô —Z‘Zò	õ ûð	üò /ùÓLs.   ‡C¬DÁDÁDÃDÃ'%DÄDÄDc                 ó–   • [         R                  R                  U 5      =(       a$    [         R                  R                  U5      (       + $ )z%Return True if cloud-init is running.)rž   rŸ   r    )Ústatus_fileÚresult_files     r'   Ú
is_runningrÆ   w  s*   € ä�7‰7�>‰>˜+Ó&×J¬r¯w©w¯~©~¸kÓ/JÔ+JÐJr&   c                 óÂ   • U[         ;   a  [        R                  $ [        X5      (       a  [        R                  $ US:”  a  [        R
                  $ [        R                  $ )z(Return the running status of cloud-init.r   )rª   r   r$   rÆ   r"   r#   r!   )rÄ   rÅ   rB   Úlatest_events       r'   Úget_running_statusrÉ   |  sP   € ð Ô.Ó.Ü×%Ñ%Ð%Ü	�K×	-Ñ	-Ü×$Ñ$Ð$Ø	˜Ó	Ü×!Ñ!Ð!ä×(Ñ(Ð(r&   c                 ó¢   • U R                  SS5      nU(       a5  UR                  S5      u  n  nUR                  5       R                  SS5      nU$ )zqGet the datasource from status.json.

Return a lowercased non-prefixed version. So "DataSourceEc2" becomes "ec2"
rG   rp   ri   )r|   Ú	partitionÚlowerr   )Ú	status_v1rG   ÚdsÚ_s       r'   Úget_datasourcerÐ   Š  sK   € ð
 —‘˜|¨RÓ0€JÞØ×'Ñ'¨Ó,‰ˆˆAˆqØ—X‘X“Z×'Ñ'¨°bÓ9ˆ
ØÐr&   c                 óv   • U R                  S5      nU(       a  U$ U R                  S5      (       a  SU S    3$ U$ )z°Return a description of the current status.

If we have a datasource, return that. If we're running in a particular
stage, return that. Otherwise, return the boot_description.
rG   ÚstagezRunning in stage: )r|   )rÍ   Úboot_descriptionrG   s      r'   Úget_descriptionrÔ   –  sC   € ð —‘˜|Ó,€JÞØÐØ	�‰�w×	Ñ	Ø# I¨gÑ$6Ð#7Ð8Ð8àÐr&   c                 óà   • SnU R                  5        HW  n[        U[        5      (       d  M  [        UUR	                  S5      =(       d    SUR	                  S5      =(       d    S5      nMY     U$ )z,Return the latest event time from status_v1.r   ÚstartÚfinished)ÚvaluesÚ
isinstancerº   Úmaxr|   )rÍ   rÈ   Ú
stage_infos      r'   Úget_latest_eventrÜ   ¥  s^   € à€LØ×&Ñ&Ö(ˆ
Ü�j¤$×'Ó'ÜØØ—‘˜wÓ'×,¨1Ø—‘˜zÓ*×/¨aóŠLñ )ð Ðr&   c                 ól  • / n0 n[        U R                  5       5       H‘  u  p4[        U[        5      (       d  M  UR	                  UR                  S/ 5      5        UR                  S0 5      nUR                  5        H.  nXb;  a  [        XV   5      X&'   M  X&   R	                  XV   5        M0     M“     X4$ )z>Return a list of errors and recoverable_errors from status_v1.rD   rE   )Úsortedr~   rÙ   rº   Úextendr|   Úkeysr   )rÍ   rD   rE   Ú_keyrÛ   Úcurrent_recoverable_errorsÚerr_types          r'   Ú
get_errorsrä   ²  s³   € à€FØÐÜ" 9§?¡?Ó#4Ö5ÑˆÜ�j¤$×'Ó'Ø�M‰M˜*Ÿ.™.¨°2Ó6Ô7ð *4¯©Ø$ bó*Ð&ð 7×;Ñ;Ö=�ØÓ5Ü3;Ø2Ñ<ó4Ð&Ó0ð 'Ñ0×7Ñ7Ø2Ñ<öó >ñ 6ð" Ð%Ð%r&   r“   c                 óÈ  • [         R                  nU =(       d
    [        5       n [        R                  R                  U R                  S5      n[        R                  R                  U R                  S5      n[        [        X5      u  pV0 n[        R                  R                  U5      (       a$  [        [        U5      5      R                  S0 5      n[        U5      n[        Xv5      n	[        U5      n
U
(       a  [!        S[#        U
5      5      OSn[%        U5      u  pÍU(       a  [         R&                  nOU(       a  [         R(                  n[+        X4XZ5      nU[,        R.                  :X  aP  [1        5       (       aA  [3        US9(       a3  [,        R4                  n[         R&                  nSn	UR7                  S5        UR9                  S	S
5        [;        UUUU	UUUUU5	      $ )zñReturn a dict with status, details and errors.

@param paths: An initialized cloudinit.helpers.paths object.
@param wait: If user has indicated to wait for cloud-init to complete.

Values are obtained from parsing paths.run_dir/status.json.
zstatus.jsonzresult.jsonrH   z%a, %d %b %Y %H:%M:%S %zrp   r–   z"Failed due to systemd unit failurez‹Failed due to systemd unit failure. Ensure all cloud-init services are enabled, and check 'systemctl' or 'journalctl' for more information.rG   N)r)   r0   r   rž   rŸ   r}   r¢   r§   ÚCLOUDINIT_DISABLED_FILEr    r   r   r|   rÐ   rÔ   rÜ   r   r   rä   r.   r/   rÉ   r   r"   r   rÂ   r#   ÚappendÚpopr>   )r“   rL   rA   rÄ   rÅ   rB   rÓ   rÍ   rG   rC   rÈ   rF   rD   rE   r@   s                  r'   rŽ   rŽ   Ê  s”  € ô '×-Ñ-ÐØ×%”^Ó%€EÜ—'‘'—,‘,˜uŸ}™}¨mÓ<€KÜ—'‘'—,‘,˜uŸ}™}¨mÓ<€KÜ)7Ü ó*Ñ&Ðð €IÜ	‡w�w‡~�~�k×"Ñ"Üœn¨[Ó9Ó:×>Ñ>¸tÀRÓHˆ	ä 	Ó*€JÜ! )Ó>€Kä# IÓ.€Lö ô 	Ð+¬V°LÓ-AÔBàð ô ",¨IÓ!6Ñ€FÞÜ*×0Ñ0ÑÞ	Ü*×3Ñ3Ðä'ØÐ"2ó€Nð
 	œ-×/Ñ/Ó/Ü�N‰NÜ ×%ä&×+Ñ+ˆÜ*×0Ñ0ÐØ:ˆØ�‰ð$ô	
ð ‡M�M�, Ô%äØØØØØØØØØó
ð 
r&   c                  ót   • [        5       n [        R                  " [        SU R	                  5       5      5        g)z$Tool to report status of cloud-init.rV   N)rf   r�   Úexitr”   Ú
parse_argsrd   s    r'   Úmainrì     s&   € ä‹\€FÜ‡H‚HÔ ¨&×*;Ñ*;Ó*=Ó>Õ?r&   Ú__main__r©   )NF)Cr    ra   ÚenumrX   rž   r�   Úcopyr   Útimer   r   r   Útypingr   r   r	   r
   r   r   Ú	cloudinitr   r   Úcloudinit.cmd.develr   Úcloudinit.distrosr   Úcloudinit.helpersr   Úcloudinit.utilr   r   r   ræ   ÚuniqueÚEnumr   r)   r2   Ú	frozensetr5   r6   r7   r8   rª   r>   r€   rJ   ÚboolrT   rf   rk   rŠ   Úintr”   r™   r§   r«   rÂ   rÆ   rÉ   rÐ   rÔ   rÜ   rä   rŽ   rì   r   r   r&   r'   Ú<module>rü      s+  ðñ Nã Û Û Û 	Û 
Ý ß (Ñ (ß ?× ?ç $Ý .Ý *Ý #ß AÑ Aà:Ð ð ‡�ô�D—I‘Ió ó ðð ‡�ô�d—i‘ió ó ðð ‡�ô
�D—I‘Ió 
ó ð
ñ  à×+Ñ+Ø×0Ñ0Ø×-Ñ-Ø×.Ñ.ð	óÐ ô	�Jô 	ð+Ð ðØ˜‘Iðð ðð 	ô	ô%ðP(Øð(Ø'6ð(à
ˆ3�ˆ8�_ô(ð(?, ô ?,ðD cô ð6( tô (ð'%°°}ÀcÐ7IÑ1Jô '%ðT˜tô ð8˜ð 8 $ô 8ðvK¨Dô Kð
)àô)ð	 ô 	ò ò
ð&˜U 4¨ :Ñ.ô &ð2 16ñDØ�E‰?ðDØ)-ðDàõDòN@ð ˆzÓÙ…Fð r&   