§
    Ô.¡jV/  ã                   óê  — d Z ddlZddlZddlZddlZ eej        d¦  «        rej                             d¬¦  «         dZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ G d„ dej         ¦  «        Z! G d„ dej         ¦  «        Z" G d„ d ej         ¦  «        Z# G d!„ d"ej         ¦  «        Z$ G d#„ d$ej         ¦  «        Z% G d%„ d&ej         ¦  «        Z& ej'        e!¦  «        dk    sJ d' ej'        e!¦  «        › d(�¦   «         ‚ ej'        e"¦  «        d)k    sJ d* ej'        e"¦  «        › d(�¦   «         ‚ ej'        e#¦  «        d+k    sJ d, ej'        e#¦  «        › d(�¦   «         ‚ ej'        e$¦  «        dk    sJ d- ej'        e$¦  «        › d(�¦   «         ‚ ej'        e&¦  «        d.k    sJ d/ ej'        e&¦  «        › d(�¦   «         ‚ ej'        e%¦  «        d0k    sJ d1 ej'        e%¦  «        › d(�¦   «         ‚e!j(        j)        dk    sJ ‚e!j*        j)        d2k    sJ ‚e!j+        j)        d3k    sJ ‚e!j,        j)        dk    sJ ‚e!j-        j)        d	k    sJ ‚e!j.        j)        d
k    sJ ‚e!j/        j)        d4k    sJ ‚e!j0        j)        dk    sJ ‚e!j1        j)        d5k    sJ ‚d6e2d7e2fd8„Z3dEd9e2fd:„Z4	 	 dFd<e2d=e5d>e5d?e5d@e2f
dA„Z6dGdB„Z7d7e8fdC„Z9e:dDk    r  e9¦   «         Z; ej<        e;rdnd¦  «         dS dS )Hur  
Test IPC Bridge v1.1 giá»¯a Python Agent vÃ  C++ Core Engine
- Telemetry: Seqlock double-buffer (2 slot ping-pong, chá»‘ng torn-read)
- Command : HÃ ng Ä‘á»£i vÃ²ng SPSC 16 slot (Agent produce, Core consume)
- Heartbeat: Agent cáº­p nháº­t nhá»‹p tim Ä‘á»ƒ Core watchdog giÃ¡m sÃ¡t
CÃ¡ch cháº¡y: khá»Ÿi Ä‘á»™ng bin/AutoPOE2_Core.exe trÆ°á»›c, rá»“i cháº¡y script nÃ y.
é    NÚreconfigurezutf-8)ÚencodingzLocal\POE2_Auto_SharedMem_v1i  @ é   é   é    é0   i   i   i  0 é@   l   OTªÉz é   é   é   é   é   é   é`   éa   éb   éc   c            
       ó¦   — e Zd ZdZdej        fdej        fdej        fdej        fdej        fdej        fdej        fd	ej        fd
ej        fg	ZdS )ÚSharedMemoryHeaderr
   ÚmagicÚprotocolVersionÚ	isRunningÚtelemetrySequenceÚcommandSequenceÚcommandReadIndexÚlastCoreHeartbeatÚlastAgentHeartbeatÚreservedN)Ú__name__Ú
__module__Ú__qualname__Ú_pack_ÚctypesÚc_uint64Úc_uint32Ú_fields_© ó    ú/C:\Projects\AutoPOE2\scripts\test_ipc_bridge.pyr   r   0   st   € € € € € Ø€Fà	�&”/Ð"Ø	˜FœOÐ,Ø	�f”oÐ&Ø	˜fœoÐ.Ø	˜FœOÐ,Ø	˜Vœ_Ð-Ø	˜fœoÐ.Ø	˜vœÐ/Ø	�V”_Ð%ð
€H€H€Hr(   r   c                   óF  — e Zd ZdZdej        fdej        fdej        fdej        fdej        fdej        fdej        fd	ej        fd
ej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fgZdS )ÚPlayerTelemetryDatar
   Ú
playerAddrÚposXÚposYÚposZÚyawÚpitchÚ	currentHPÚmaxHPÚcurrentManaÚmaxManaÚ	currentESÚmaxESÚcurrentWardÚmaxWardÚcurrentSpiritÚ	maxSpiritÚactiveWeaponSetÚmovementFlagsÚ
debuffMaskN)	r   r    r!   r"   r#   r$   Úc_floatr%   r&   r'   r(   r)   r+   r+   ?   sØ   € € € € € Ø€Fà	�v”Ð'Ø	�”Ð Ø	�”Ð Ø	�”Ð Ø	�”ÐØ	�&”.Ð!Ø	�f”oÐ&Ø	�&”/Ð"Ø	˜œÐ(Ø	�F”OÐ$Ø	�f”oÐ&Ø	�&”/Ð"Ø	˜œÐ(Ø	�F”OÐ$Ø	˜&œ/Ð*Ø	�f”oÐ&Ø	˜FœOÐ,Ø	˜&œ/Ð*Ø	�v”Ð'ð'€H€H€Hr(   r+   c                   óì   — e Zd ZdZdej        fdej        fdej        fdej        fdej        fdej        fdej        fd	ej        fd
ej        fdej        fdej        fdej        fdej        dz  fgZ	dS )ÚEntityTelemetryDatar
   ÚidÚtypeÚrarityr-   r.   r/   ÚdistanceToPlayerr2   r3   ÚstaggerProgressÚcurrentAnimationIdÚ
extraFlagsÚnamer   N)
r   r    r!   r"   r#   r%   Úc_uint16r?   Úc_charr&   r'   r(   r)   rA   rA   X   s¡   € € € € € Ø€Fà	ˆvŒÐØ	�”Ð!Ø	�6”?Ð#Ø	�”Ð Ø	�”Ð Ø	�”Ð Ø	˜Vœ^Ð,Ø	�f”oÐ&Ø	�&”/Ð"Ø	˜FœOÐ,Ø	˜vœÐ/Ø	�v”Ð'Ø	�” Ñ#Ð$ð€H€H€Hr(   rA   c                   ór   — e Zd ZdZdej        fdej        fdej        fdej        dz  fdej        dz  fgZd	S )
ÚAreaTelemetryDatar
   ÚareaLoadTimestampMsÚ	areaLevelÚareaSeedÚareaCoder   ÚareaNamer   N)	r   r    r!   r"   r#   r$   r%   rK   r&   r'   r(   r)   rM   rM   k   sV   € € € € € Ø€Fà	 ¤Ð0Ø	�f”oÐ&Ø	�V”_Ð%Ø	�V”] RÑ'Ð(Ø	�V”] RÑ'Ð(ð€H€H€Hr(   rM   c                   ót   — e Zd ZdZdej        fdej        fdefdej        fdedz  fdej	        d	z  fd
e
fgZdS )ÚTelemetryPacketr
   Ú
snapshotIdÚ	timestampÚplayerÚentityCountÚentitiesé   ÚterrainWalkabilityi @  ÚareaN)r   r    r!   r"   r#   r$   r+   r%   rA   Úc_uint8rM   r&   r'   r(   r)   rT   rT   v   sg   € € € € € Ø€Fà	�v”Ð'Ø	�f”oÐ&Ø	Ð&Ð'Ø	˜œÐ(Ø	Ð(¨3Ñ.Ð/Ø	˜vœ~°Ñ;Ð<Ø	Ð"Ð#ð€H€H€Hr(   rT   c            	       ó–   — e Zd ZdZdej        fdej        fdej        fdej        fdej        fdej        fdej        fd	ej        fgZd
S )ÚCommandPacketr
   Ú	commandIdÚopCodeÚtargetXÚtargetYÚtargetZÚtargetEntityIdÚpriorityÚ	timeoutMsN)	r   r    r!   r"   r#   r$   r%   r?   r&   r'   r(   r)   r_   r_   ƒ   sj   € € € € € Ø€Fà	�f”oÐ&Ø	�6”?Ð#Ø	�F”NÐ#Ø	�F”NÐ#Ø	�F”NÐ#Ø	˜6œ?Ð+Ø	�V”_Ð%Ø	�f”oÐ&ð	€H€H€Hr(   r_   zSharedMemoryHeader != 64B (ú)éT   zPlayerTelemetryData != 84B (éX   zEntityTelemetryData != 88B (zAreaTelemetryData != 96B (é$   zCommandPacket != 36B (iÈ˜  zTelemetryPacket != 39112B (é   é   é(   é8   ÚoffsetÚreturnc                 óˆ   — |                       |¦  «         t                               |                      d¦  «        d¦  «        S )Nrl   Úlittle)ÚseekÚintÚ
from_bytesÚread)Úshmrp   s     r)   Úread_u64ry   ¦   s2   € Ø‡H‚HˆVÑÔÐÝ�>Š>˜#Ÿ(š( 1™+œ+ xÑ0Ô0Ð0r(   Úretriesc                 ó”  — t          |¦  «        D ]·}t          | t          ¦  «        }|dk    r dS |dz  }|                      t          |t
          z  z   t          z   ¦  «         |                      t          j	        t          ¦  «        ¦  «        }t          | t          ¦  «        }||k    r|t                               |¦  «        fc S Œ¸dS )u}   Ä�á»�c snapshot telemetry chá»‘ng rÃ¡ch theo giao thá»©c seqlock.
    Tráº£ vá»� (sequence, PlayerTelemetryData) hoáº·c None.r   Nr
   )Úrangery   Ú
SEQ_OFFSETrt   ÚTELEMETRY_SLOT0_OFFSETÚTELEMETRY_SLOT_STRIDEÚPLAYER_OFFSET_IN_PKTrw   r#   Úsizeofr+   Úfrom_buffer_copy)rx   rz   Ú_Ús1ÚslotÚplayer_bytesÚs2s          r)   Úseqlock_readrˆ   «   sÅ   € õ �7‰^Œ^ð 	Jð 	JˆÝ�c�:Ñ&Ô&ˆØ�Š7ˆ7Ø�4�4Ø�A‰vˆØ�ŠÕ'¨$Õ1FÑ*FÑFÕI]Ñ]Ñ^Ô^Ð^Ø—x’x¥¤Õ.AÑ BÔ BÑCÔCˆÝ�c�:Ñ&Ô&ˆØ�Š8ˆ8ØÕ*×;Ò;¸LÑIÔIÐIÐIÐIÐIð àˆ4r(   ç        Úop_codeÚxÚyÚzÚ	entity_idc                 ó^  — t          | t          ¦  «        }t          | t          ¦  «        }||z
  t          k    rt	          d¦  «         dS t          ¦   «         }|dz   |_        ||_        ||_        ||_	        ||_
        ||_        d|_        d|_        |                      t          |t          z  t           z  z   ¦  «         |                      t%          |¦  «        ¦  «         |                      t          ¦  «         |                      |dz                        dd¦  «        ¦  «         |j        S )u<   Ä�áº©y lá»‡nh vÃ o SPSC Command Ring (producer phÃ­a Agent).u9   [Command] HÃ ng Ä‘á»£i Ä‘áº§y - bá»� qua láº§n gá»­i nÃ yNr
   i¸  rl   rs   )ry   ÚCMD_WRITE_OFFSETÚCMD_READ_OFFSETÚCOMMAND_QUEUE_CAPACITYÚprintr_   r`   ra   rb   rc   rd   re   rf   rg   rt   ÚCOMMAND_QUEUE_OFFSETÚCOMMAND_SLOT_STRIDEÚwriteÚbytesÚto_bytes)	rx   rŠ   r‹   rŒ   r�   rŽ   ÚwÚrÚcmds	            r)   Úpublish_commandrœ   »   s
  € õ 	�Õ&Ñ'Ô'€AÝ�•oÑ&Ô&€AØˆ1�uÕ&Ò&Ð&ÝÐIÑJÔJÐJØˆtå
‰/Œ/€CØ˜‘E€C„MØ€C„JØ€C„KØ€C„KØ€C„KØ"€CÔØ€C„LØ€C„Mà‡H‚HÕ! QÕ)?Ñ%?ÕCVÑ$VÑVÑWÔWÐWØ‡I‚I�e�C‰jŒjÑÔÐØ‡H‚HÕÑÔÐØ‡I‚Iˆq�1‰u×Ò˜q (Ñ+Ô+Ñ,Ô,Ð,ØŒ=Ðr(   c                 óÎ   — |                       t          ¦  «         |                      t          t	          j        ¦   «         dz  ¦  «                             dd¦  «        ¦  «         d S )Néè  rl   rs   )rt   ÚAGENT_HEARTBEAT_OFFSETr–   ru   Útimer˜   )rx   s    r)   Úupdate_agent_heartbeatr¡   Õ   sP   € Ø‡H‚HÕ#Ñ$Ô$Ð$Ø‡I‚I�c•$”)‘+”+ Ñ$Ñ%Ô%×.Ò.¨q°(Ñ;Ô;Ñ<Ô<Ð<Ð<Ð<r(   c                  óR
  — t          d¦  «         t          d¦  «         t          d¦  «         	 t          j        dt          t          t          j        ¬¦  «        } n*# t
          $ r}t          d|› �¦  «         Y d }~dS d }~ww xY wd }t          j        ¦   «         dz   }t          j        ¦   «         |k     r¢|                      d¦  «         t           	                    |  
                    t          j        t          ¦  «        ¦  «        ¦  «        }|j        t          k    r|j        dk    r|}n+t          j        d	¦  «         t          j        ¦   «         |k     °¢|€t          d
¦  «         dS t          d|j        d›dt          d›d�¦  «         t          d|j        d›�¦  «         t          d|j        dk    rdnd› �¦  «         t          d¦  «         d }t          j        ¦   «         dz   }t          j        ¦   «         |k     r=t%          | ¦  «        }|rn+t          j        d¦  «         t          j        ¦   «         |k     °=|€t          d¦  «         dS |\  }}t          d|› d|j        › d|j        › d|j        › d|j        › �
¦  «         t          j        d	¦  «         t/          | ¦  «         t%          | ¦  «        }|�|d         |k    rt          d¦  «         dS t          d|› d|d         › d�¦  «         t          d¦  «         g }	|	                     t3          | t4          d d!¦  «        ¦  «         |	                     t3          | t6          d"¬#¦  «        ¦  «         |	                     t3          | t8          ¦  «        ¦  «         t;          d$„ |	D ¦   «         ¦  «        rt          d%¦  «         dS t          d&|	d         › d'|	d         › d(|	d)         › d*�¦  «         t          d+¦  «         t=          | t>          ¦  «        }
d}t          j        ¦   «         dz   }t          j        ¦   «         |k     rYt/          | ¦  «         t=          | t>          ¦  «        |
z
  d,k    rd-}n+t          j        d¦  «         t          j        ¦   «         |k     °Y|st          d.¦  «         dS t          d/¦  «         t=          | d0¦  «        }t=          | t@          ¦  «        }tC          t          j        ¦   «         d1z  ¦  «        }t          d2||z
  › d3||z
  › d4�¦  «         t          d5¦  «         t          d6¦  «         d-S )7Nz2==================================================z2   AutoPOE2 IPC Bridge Test (Protocol v1.1)       r   )ÚtagnameÚaccessu]   [Error] KhÃ´ng tÃ¬m tháº¥y Shared Memory. HÃ£y cháº¯c cháº¯n CoreEngine Ä‘ang cháº¡y! Lá»—i: Fé
   r
   gš™™™™™É?uB   [FAIL] Core khÃ´ng pháº£n há»“i hoáº·c magic header khÃ´ng khá»›p!z  - Magic Header: 0xÚXu    (Chuáº©n: 0xrh   u      - PhiÃªn báº£n Giao thá»©c: 0xu     - Tráº¡ng thÃ¡i Core: u   HOáº T Ä�á»˜NGu   Táº®Tu2   
[1] Ä�á»�c telemetry qua Seqlock double-buffer...r   gš™™™™™©?uD   [FAIL] KhÃ´ng Ä‘á»�c Ä‘Æ°á»£c snapshot telemetry nÃ o trong 5 giÃ¢y!z  - Snapshot seq=z | Player HP: ú/z | Spirit: uD   [FAIL] Telemetry sequence khÃ´ng tÄƒng - Core cÃ³ thá»ƒ Ä‘Ã£ dá»«ng!u      - Sequence tÄƒng liÃªn tá»¥c: z -> z (Core publish 120Hz OK)u-   
[2] Gá»­i 3 lá»‡nh vÃ o SPSC Command Ring...g      ”@g     €†@i90  )rŽ   c              3   ó   K  — | ]}|d u V — Œ	d S )Nr'   )Ú.0Úcs     r)   ú	<genexpr>zmain.<locals>.<genexpr>  s&   è è € Ð
#Ð
#˜ˆ1�ˆ9Ð
#Ð
#Ð
#Ð
#Ð
#Ð
#r(   u!   [FAIL] Gá»­i lá»‡nh tháº¥t báº¡i!u     - Ä�Ã£ gá»­i lá»‡nh #z (NAVIGATE 1280,720), #z (ENGAGE), #r   z	 (PICKUP)u*   
[3] Chá»� Core rÃºt lá»‡nh (SPSC FIFO)...r   Tu4   [FAIL] Core khÃ´ng tiÃªu thá»¥ lá»‡nh trong 5 giÃ¢y!uO     - Core Ä‘Ã£ tiÃªu thá»¥ cáº£ 3 lá»‡nh theo Ä‘Ãºng FIFO (readIndex tÄƒng >= 3)rn   rž   u   
[4] Nhá»‹p tim: Core lá»‡ch u   ms | Agent lá»‡ch ÚmsuQ   [SUCCESS] Thá»­ nghiá»‡m IPC v1.1 (Seqlock + SPSC Ring + Heartbeat) THÃ€NH CÃ”NG!ua   [Info] Script káº¿t thÃºc -> Core sáº½ tá»± ngáº¯t sau 5s máº¥t nhá»‹p tim Agent (watchdog demo).)"r“   ÚmmapÚSHARED_MEM_SIZEÚSHARED_MEM_NAMEÚACCESS_WRITEÚ	Exceptionr    rt   r   r‚   rw   r#   r�   r   ÚSHARED_MEM_MAGICr   Úsleepr   rˆ   r2   r3   r:   r;   r¡   Úappendrœ   ÚOP_NAVIGATE_TO_COORDÚOP_ENGAGE_TARGETÚOP_PICKUP_ITEMÚanyry   r‘   rŸ   ru   )rx   ÚeÚheaderÚdeadlineÚhÚresultÚseq1rW   Úresult2ÚsentÚ
start_readÚconsumedÚcore_hbÚagent_hbÚnow_mss                  r)   ÚmainrÆ   Ú   so  € Ý	Ð
>Ñ?Ô?Ð?Ý	Ð
>Ñ?Ô?Ð?Ý	Ð
>Ñ?Ô?Ð?ðÝŒi˜�?µOÍDÔL]Ð^Ñ^Ô^ˆˆøÝð ð ð ÝÐqÐnoÐqÐqÑrÔrÐrØˆuˆuˆuˆuˆuøøøøðøøøð
 €FÝŒy‰{Œ{˜RÑ€HÝ
Œ)‰+Œ+˜Ò
 Ð
 Ø�Š�‰ŒˆÝ×/Ò/°·²½¼ÕGYÑ9ZÔ9ZÑ0[Ô0[Ñ\Ô\ˆØŒ7Õ&Ò&Ð&¨1¬;¸!Ò+;Ð+;ØˆFØÝŒ
�3‰Œˆõ Œ)‰+Œ+˜Ò
 Ð
 ð €~ÝÐRÑSÔSÐSØˆuå	Ð
S ¤Ð
SÐ
SÐ
SÕ>NÐ
SÐ
SÐ
SÐ
SÑTÔTÐTÝ	Ð
G¨VÔ-CÐ
GÐ
GÐ
GÑHÔHÐHÝ	Ð
]¸Ô9IÈQÒ9NÐ9NÐ%5Ð%5ÐT[Ð
]Ð
]Ñ^Ô^Ð^õ 
Ð
?Ñ@Ô@Ð@Ø€FÝŒy‰{Œ{˜Q‰€HÝ
Œ)‰+Œ+˜Ò
 Ð
 Ý˜cÑ"Ô"ˆØð 	ØÝŒ
�4ÑÔÐõ	 Œ)‰+Œ+˜Ò
 Ð
 ð
 €~ÝÐTÑUÔUÐUØˆuà�L€Dˆ&Ý	ð B˜dð Bð B°&Ô2Bð Bð BÀVÄ\ð Bð BØÔ,ðBð BØ/5Ô/?ðBð Bñ Cô Cð Cõ 	„Jˆs�O„O€OÝ˜3ÑÔÐÝ˜3ÑÔ€GØ€˜' !œ*¨Ò,Ð,ÝÐTÑUÔUÐUØˆuÝ	Ð
[¨TÐ
[Ð
[°w¸q´zÐ
[Ð
[Ð
[Ñ\Ô\Ð\õ 
Ð
:Ñ;Ô;Ð;Ø€DØ‡K‚K• Õ%9¸6À5ÑIÔIÑJÔJÐJØ‡K‚K• Õ%5ÀÐGÑGÔGÑHÔHÐHØ‡K‚K• ¥^Ñ4Ô4Ñ5Ô5Ð5Ý
Ð
#Ð
#˜dÐ
#Ñ
#Ô
#Ñ#Ô#ð ÝÐ1Ñ2Ô2Ð2ØˆuÝ	Ð
k D¨¤GÐ
kÐ
kÀDÈÄGÐ
kÐ
kÐY]Ð^_ÔY`Ð
kÐ
kÐ
kÑlÔlÐlõ 
Ð
7Ñ8Ô8Ð8Ý˜#�Ñ/Ô/€JØ€HÝŒy‰{Œ{˜Q‰€HÝ
Œ)‰+Œ+˜Ò
 Ð
 Ý˜sÑ#Ô#Ð#Ý�C�Ñ)Ô)¨JÑ6¸!Ò;Ð;ØˆHØÝŒ
�4ÑÔÐõ Œ)‰+Œ+˜Ò
 Ð
 ð ð ÝÐDÑEÔEÐEØˆuÝ	Ð
[Ñ\Ô\Ð\õ �s˜DÑ!Ô!€GÝ˜Õ3Ñ4Ô4€HÝ•”‘”˜tÑ#Ñ$Ô$€FÝ	Ð
d¨6°GÑ+;Ð
dÐ
dÈvÐX`ÑO`Ð
dÐ
dÐ
dÑeÔeÐeÝ	Ð
]Ñ^Ô^Ð^Ý	Ð
mÑnÔnÐnØˆ4s   ¯,A Á
BÁ&A>Á>BÚ__main__)r   )r‰   r‰   r‰   r   )rq   N)=Ú__doc__r#   r­   Úsysr    ÚhasattrÚstdoutr   r¯   r®   r}   r�   r‘   rŸ   r~   r   r€   r”   r’   r•   r²   ÚOP_IDLErµ   r¶   r·   ÚOP_CAST_EMERGENCY_PORTALÚOP_EXECUTE_STASH_ROUTINEÚOP_EXECUTE_VENDOR_ROUTINEÚOP_TRIGGER_WORLD_MAP_TRAVELÚOP_TRIGGER_AUTO_LOGINÚOP_RECALIBRATE_XYZÚOP_PANIC_STOPÚ	Structurer   r+   rA   rM   rT   r_   r�   r   rp   r   r   r   r   r   r   r   r   ru   ry   rˆ   Úfloatrœ   r¡   ÚboolrÆ   r   ÚsuccessÚexitr'   r(   r)   ú<module>rÙ      sN  ððð ð €€€Ø €€€Ø 
€
€
€
Ø €€€à
€7ˆ3Œ:�}Ñ%Ô%ð -Ø„J×Ò GÐÑ,Ô,Ð,à1€Ø!€ð €
ØÐ Ø€ØÐ ØÐ ØÐ ØÐ ØÐ ØÐ ØÐ à%Ð ð €ØÐ ØÐ Ø€ØÐ ØÐ ØÐ Ø Ð ØÐ ØÐ Ø€ðð ð ð ð ˜Ô)ñ ô ð ðð ð ð ð ˜&Ô*ñ ô ð ð2ð ð ð ð ˜&Ô*ñ ô ð ð&ð ð ð ð ˜Ô(ñ ô ð ð
ð 
ð 
ð 
ð 
�fÔ&ñ 
ô 
ð 
ðð ð ð ð �FÔ$ñ ô ð ð" €v„}Ð'Ñ(Ô(¨BÒ.Ð.Ð.Ð0rÈmÈfÌmÐ\nÑNoÔNoÐ0rÐ0rÐ0rÑ.Ô.Ð.Ø€v„}Ð(Ñ)Ô)¨RÒ/Ð/Ð/Ð1uÐP]ÐPVÔP]Ð^qÑPrÔPrÐ1uÐ1uÐ1uÑ/Ô/Ð/Ø€v„}Ð(Ñ)Ô)¨RÒ/Ð/Ð/Ð1uÐP]ÐPVÔP]Ð^qÑPrÔPrÐ1uÐ1uÐ1uÑ/Ô/Ð/Ø€v„}Ð&Ñ'Ô'¨2Ò-Ð-Ð-Ð/oÈMÈFÌMÐZkÑLlÔLlÐ/oÐ/oÐ/oÑ-Ô-Ð-Ø€v„}�]Ñ#Ô# rÒ)Ð)Ð)Ð+cÀMÀFÄMÐR_ÑD`ÔD`Ð+cÐ+cÐ+cÑ)Ô)Ð)Ø€v„}�_Ñ%Ô%¨Ò.Ð.Ð.Ð0oÈmÈfÌmÐ\kÑNlÔNlÐ0oÐ0oÐ0oÑ.Ô.Ð.àÔÔ&¨!Ò+Ð+Ð+Ð+ØÔ)Ô0°AÒ5Ð5Ð5Ð5ØÔ#Ô*¨bÒ0Ð0Ð0Ð0ØÔ+Ô2°bÒ8Ð8Ð8Ð8ØÔ)Ô0°BÒ6Ð6Ð6Ð6ØÔ*Ô1°RÒ7Ð7Ð7Ð7ØÔ+Ô2°bÒ8Ð8Ð8Ð8ØÔ,Ô3°rÒ9Ð9Ð9Ð9ØÔ"Ô)¨RÒ/Ð/Ð/Ð/ð1˜#ð 1 #ð 1ð 1ð 1ð 1ð
ð ˜sð ð ð ð ð  CFØ56ðð  #ð ¨%ð ¸%ð ØðØ/2ðð ð ð ð4=ð =ð =ð =ð
[ˆdð [ð [ð [ð [ð| ˆzÒÐØˆd‰fŒf€GØ€C„H�'Ð ˆQˆQ˜qÑ!Ô!Ð!Ð!Ð!ð Ðr(   