§
    §h®jÉ{  ã            	       óz  — d Z ddlZddlZddlZddlZddl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 ej        j        dk    rE	 ej                             dd	¬
¦  «         ej                             dd	¬
¦  «         n# e$ r Y nw xY wej                             d e ee¦  «                             ¦   «         j        j        dz  ¦  «        ¦  «         	 ddl m!Z!m"Z"m#Z# n# e$$ r dZ!dZ#Y nw xY w	 ddl%m&Z& n# e$$ r	 ddl'm&Z& Y nw xY w G d„ d¦  «        Z(dede)fd„Z*de)fd„Z+ G d„ d¦  «        Z,e-dk    �rnddl.Z. e.j/        d¬¦  «        Z0e0 1                    de2dd¬¦  «         e0 1                    de3dd¬¦  «         e0 1                    d e2d!d"¬¦  «         e0 1                    d#d$d%d&d'¬(¦  «         e0 1                    d)d$d*d+¬,¦  «         e0 1                    d-e2d.d/¬¦  «         e0 1                    d0e2d1d2¬¦  «         e0 1                    d3e2d4d5¬¦  «         e0 4                    ¦   «         Z5 e,e5j6        e5j7        e5j8        e5j9        e5j:        e5j;        e5j<        ¬6¦  «        Z=e= >                    ¦   «         Z? e@d7e?d8         › d9 eAe?d:         ¦  «        › d;e?d<         d=›d>�¦  «         dS dS )?uÕ   
AutoPOE2 - Autonomous Map Runner & Realtime Screenshot Sentinel (Doc 17/39)
Ä�iá»�u phá»‘i tá»± Ä‘á»™ng clear map, chá»¥p áº£nh mÃ n hÃ¬nh Ä‘á»‹nh ká»³ vÃ  kÃ­ch hoáº¡t khÃ³a dá»«ng kháº©n cáº¥p khi tá»­ tráº­n.
é    N)Údatetime)ÚPath)Úwintypes)ÚOptionalÚListÚDictÚAnyÚTuple©ÚImageúutf-8Úreplace)ÚencodingÚerrorsÚsrc)ÚCoreShmBridgeÚCoreTelemetrySnapshotÚCharacterLifecycleState)ÚMapClearEvaluatorc                   ó(   — e Zd ZdZd„ Zdedefd„ZdS )ÚScreenCapturerGDIux   Chá»¥p áº£nh mÃ n hÃ¬nh siÃªu tá»‘c báº±ng Windows GDI BitBlt (Há»— trá»£ 1440p/4K khÃ´ng phá»¥ thuá»™c Desktop session)c                 ó¢   — t           j        j        | _        t           j        j        | _        	 ddlm}  |¦   «          d S # t          $ r Y d S w xY w)Nr   ©Úattach_to_default_desktop)ÚctypesÚwindllÚuser32Úgdi32Úsrc.common.win32_windowr   Ú	Exception)Úselfr   s     ú3C:\Projects\AutoPOE2\tools\autonomous_map_runner.pyÚ__init__zScreenCapturerGDI.__init__+   sh   € Ý”mÔ*ˆŒÝ”]Ô(ˆŒ
ð	ØIÐIÐIÐIÐIÐIØ%Ð%Ñ'Ô'Ð'Ð'Ð'øÝð 	ð 	ð 	ØˆDˆDð	øøøs   ®A  Á 
AÁAÚoutput_pathÚreturnc                 óÀ  ‡— 	 | j                              d¦  «        }| j                              d¦  «        }|dk    s|dk    rd\  }}| j                              d¦  «        }| j                             |¦  «        }| j                             |||¦  «        }| j                             ||¦  «        }d}| j                             |dd|||dd|¦	  «	          G d„ dt          j	        ¦  «        Š G ˆfd„dt          j	        ¦  «        }	 |	¦   «         }
t          j
        ‰¦  «        |
j        _        ||
j        _        | |
j        _        d|
j        _        d	|
j        _        d|
j        _        ||z  d
z  }t          j        |¦  «        }| j                             ||d||t          j        |
¦  «        d¦  «        }|dk    r„t+          j        d||f|dddd¦  «        }t/          j        t.          j                             t.          j                             |¦  «        ¦  «        d¬¦  «         |                     |¦  «         d}nd}| j                             ||¦  «         | j                             |¦  «         | j                             |¦  «         | j                              d|¦  «         |S # t@          $ r}tC          d|› �d¬¦  «         Y d }~dS d }~ww xY w)Nr   é   )é 
  é   i  Ì c                   óÂ   — e 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gZdS )ú3ScreenCapturerGDI.capture.<locals>.BITMAPINFOHEADERÚbiSizeÚbiWidthÚbiHeightÚbiPlanesÚ
biBitCountÚbiCompressionÚbiSizeImageÚbiXPelsPerMeterÚbiYPelsPerMeterÚ	biClrUsedÚbiClrImportantN)Ú__name__Ú
__module__Ú__qualname__r   ÚDWORDÚLONGÚWORDÚ_fields_© ó    r"   ÚBITMAPINFOHEADERr+   E   sƒ   € € € € € à˜xœ~Ð.Ø ¤Ð.Ø ¤Ð/Ø ¤Ð/Ø! 8¤=Ð1Ø$ h¤nÐ5Ø" H¤NÐ3Ø&¨¬Ð6Ø&¨¬Ð6Ø  (¤.Ð1Ø% x¤~Ð6ð���r?   r@   c                   ó0   •— e Zd Zd” fdej        dz  fgZdS )ú-ScreenCapturerGDI.capture.<locals>.BITMAPINFOÚ	bmiHeaderÚ	bmiColorsé   N)r7   r8   r9   r   r:   r=   )r@   s   €r"   Ú
BITMAPINFOrB   T   s.   ø€ € € € € à Ð"2Ð3Ø  (¤.°1Ñ"4Ð5ð���r?   rF   é    é   ÚRGBAÚrawÚBGRAT©Úexist_okFz[ScreenCapturerGDI Error] ©Úflush)"r   ÚGetSystemMetricsÚGetDCr   ÚCreateCompatibleDCÚCreateCompatibleBitmapÚSelectObjectÚBitBltr   Ú	StructureÚsizeofrC   r,   r-   r.   r/   r0   r1   Úcreate_string_bufferÚ	GetDIBitsÚbyrefr   Ú
frombufferÚosÚmakedirsÚpathÚdirnameÚabspathÚsaveÚDeleteObjectÚDeleteDCÚ	ReleaseDCr    Úprint)r!   r$   ÚwÚhÚdesk_dcÚmem_dcÚbmpÚold_bmpÚSRCCOPYrF   ÚbmiÚbuf_sizeÚraw_bufÚlinesÚimgÚresÚer@   s                    @r"   ÚcapturezScreenCapturerGDI.capture6   sø  ø€ ð>	Ø”×,Ò,¨QÑ/Ô/ˆAØ”×,Ò,¨QÑ/Ô/ˆAØ�AŠvˆv˜˜aš˜Ø!‘��1à”k×'Ò'¨Ñ*Ô*ˆGØ”Z×2Ò2°7Ñ;Ô;ˆFØ”*×3Ò3°G¸QÀÑBÔBˆCØ”j×-Ò-¨f°cÑ:Ô:ˆGà ˆGØŒJ×Ò˜f a¨¨A¨q°'¸1¸aÀÑIÔIÐIðð ð ð ð ¥6Ô#3ñ ô ð ðð ð ð ð ð ð �VÔ-ñ ô ð ð �*‘,”,ˆCÝ#)¤=Ð1AÑ#BÔ#BˆCŒMÔ Ø$%ˆCŒMÔ!Ø&' RˆCŒMÔ"Ø%&ˆCŒMÔ"Ø')ˆCŒMÔ$Ø*+ˆCŒMÔ'à˜1‘u˜q‘yˆHÝÔ1°(Ñ;Ô;ˆGØ”J×(Ò(¨°°a¸¸GÅVÄ\ÐRUÑEVÔEVÐXYÑZÔZˆEà�qŠyˆyÝÔ& v°°1¨v°wÀÀvÈqÐRSÑTÔT�Ý”�BœGŸOšO­B¬G¯OªO¸KÑ,HÔ,HÑIÔIÐTXÐYÑYÔYÐYØ—’˜Ñ%Ô%Ð%Ø��à�àŒJ×#Ò# F¨GÑ4Ô4Ð4ØŒJ×#Ò# CÑ(Ô(Ð(ØŒJ×Ò Ñ'Ô'Ð'ØŒK×!Ò! ! WÑ-Ô-Ð-ØˆJøÝð 	ð 	ð 	ÝÐ2¨qÐ2Ð2¸$Ð?Ñ?Ô?Ð?Ø�5�5�5�5�5øøøøð	øøøs   ƒJ0J4 Ê4
KÊ>KËKN)r7   r8   r9   Ú__doc__r#   ÚstrÚboolrt   r>   r?   r"   r   r   )   sQ   € € € € € ð Cð  Cð	ð 	ð 	ð? 3ð ?¨4ð ?ð ?ð ?ð ?ð ?ð ?r?   r   Úimg_pathr%   c                 ó  — 	 t           j                             | ¦  «        sdS t          j        | ¦  «        5 }|j        \  }}t          |dz  ¦  «        t          |dz  ¦  «        t          |dz  ¦  «        t          |dz  ¦  «        f}|                     |¦  «                             d¦  «        }t          |dz  ¦  «        t          |dz  ¦  «        t          |dz  ¦  «        t          |dz  ¦  «        f}|                     |¦  «                             d¦  «        }| 	                    ¦   «         }t          |¦  «        d	z  }	|	d
k    r�d
}
t          d
t          |¦  «        d	¦  «        D ]I}||         ||dz            ||dz            }}}|dk    r|dk     r|dk     s|dk    r|dk    r|dk     r|
dz  }
ŒJ|
t          |	¦  «        z  }|dk    r	 ddd¦  «         dS ddd¦  «         n# 1 swxY w Y   n# t          $ r Y nw xY wdS )u°   
    Kiá»ƒm tra quang há»�c trÃªn áº£nh chá»¥p mÃ n hÃ¬nh:
    TÃ¬m dáº¥u hiá»‡u mÃ n hÃ¬nh tá»­ tráº­n (Death modal á»Ÿ trung tÃ¢m mÃ n hÃ¬nh, hoáº·c thanh HP/ES rá»—ng).
    FçffffffÖ?gÍÌÌÌÌÌä?ÚRGBç{®Gáz„?g333333ë?ç{®Gáz´?g\�Âõ(\ï?rE   r   r'   é   éx   é<   éŒ   én   é2   g
×£p=
§?NT)r\   r^   Úexistsr   ÚopenÚsizeÚintÚcropÚconvertÚtobytesÚlenÚrangeÚfloatr    )rx   rq   rf   rg   Úcrop_boxÚcenter_regionÚorb_boxÚ
orb_regionrJ   Útotal_pxÚdeath_btn_pixelsÚiÚrÚgÚbÚratios                   r"   Úcheck_optical_deathr™   w   s[  € ð
ÝŒw�~Š~˜hÑ'Ô'ð 	Ø�5ÝŒZ˜Ñ!Ô!ð 	  SØ”8‰DˆAˆqå˜A ™H™œ¥s¨1¨t©8¡}¤}µc¸!¸d¹(±m´mÅSÈÈTÉÁ]Ä]ÐSˆHØŸHšH XÑ.Ô.×6Ò6°uÑ=Ô=ˆMõ ˜1˜t™8‘}”}¥c¨!¨d©(¡m¤mµS¸¸T¹±]´]ÅCÈÈDÉÁMÄMÐRˆGØŸš 'Ñ*Ô*×2Ò2°5Ñ9Ô9ˆJð  ×'Ò'Ñ)Ô)ˆCÝ˜3‘x”x 1‘}ˆHØ˜!Š|ˆ|Ø#$Ð Ý˜q¥# c¡(¤(¨AÑ.Ô.ð .ð .�AØ! !œf c¨!¨A©#¤h°°A°a±C´˜!�q�AØ˜Cš˜ A¨¢F F¨q°2ªv¨v¸1¸sº7¸7ÀqÈ3ÂwÀwÐSTÐWYÒSYÐSYØ(¨AÑ-Ð(øØ(­5°©?¬?Ñ:�Ø˜5’=�=Øð-	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 øøõ. ð ð ð Øˆðøøøàˆ5s@   ‚G2 £G2 ·FG&ÇG2 ÇG2 Ç&G*Ç*G2 Ç-G*Ç.G2 Ç2
G?Ç>G?c                  óÒ  — 	 t           j        j        } t           j        j        }ddlm}  |¦   «          	 ddlm}m}  |¦   «         }|r ||¦  «        rdS n# t          $ r d}Y nw xY w|s|  	                    dd¦  «        }|s|  	                    dd¦  «        }|�r|  
                    |¦  «        r|                      |d¦  «         n|                      |d	¦  «         |                     ¦   «         }|                      ¦   «         }|                      |d¦  «        }||k    rY|                      ||d¦  «         |                      |¦  «         |                      |¦  «         |                      ||d
¦  «         n*|                      |¦  «         |                      |¦  «         t%          j        d¦  «         dS n+# t          $ r}	t)          d|	› �d¬¦  «         Y d}	~	nd}	~	ww xY wd
S )uD   Ä�Æ°a cá»­a sá»• Path of Exile 2 lÃªn foreground Ä‘á»ƒ nháº­n input.r   r   )Úfind_poe2_windowÚensure_window_focusTÚPOEWindowClassNzPath of Exile 2é	   é   Fçš™™™™™¹?z[Focus Error] rN   )r   r   r   Úkernel32r   r   r›   rœ   r    ÚFindWindowWÚIsIconicÚ
ShowWindowÚGetCurrentThreadIdÚGetForegroundWindowÚGetWindowThreadProcessIdÚAttachThreadInputÚSetForegroundWindowÚBringWindowToTopÚtimeÚsleepre   )
r   r¡   r   Ú	_find_winÚ_ensure_focusÚhwndÚ
cur_threadÚfg_hwndÚ	fg_threadrs   s
             r"   Úfocus_poe2_windowr³   š   s]  € ð%0Ý”Ô%ˆÝ”=Ô)ˆØEÐEÐEÐEÐEÐEØ!Ð!Ñ#Ô#Ð#ð	ØsÐsÐsÐsÐsÐsÐsÐsØ�9‘;”;ˆDØð ˜˜ dÑ+Ô+ð Ø�tøøÝð 	ð 	ð 	ØˆDˆDˆDð	øøøð ð 	>Ø×%Ò%Ð&6¸Ñ=Ô=ˆDØð 	?Ø×%Ò% dÐ,=Ñ>Ô>ˆDØñ 	Ø�Š˜tÑ$Ô$ð +Ø×!Ò! $¨Ñ*Ô*Ð*Ð*à×!Ò! $¨Ñ*Ô*Ð*Ø!×4Ò4Ñ6Ô6ˆJØ×0Ò0Ñ2Ô2ˆGØ×7Ò7¸ÀÑFÔFˆIØ˜YÒ&Ð&Ø×(Ò(¨°YÀÑEÔEÐEØ×*Ò*¨4Ñ0Ô0Ð0Ø×'Ò'¨Ñ-Ô-Ð-Ø×(Ò(¨°YÀÑFÔFÐFÐFà×*Ò*¨4Ñ0Ô0Ð0Ø×'Ò'¨Ñ-Ô-Ð-ÝŒJ�s‰OŒOˆOØ�4ð#	øõ$ ð 0ð 0ð 0ÝÐ"˜qÐ"Ð"¨$Ð/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/øøøøð0øøøàˆ5s;   ‚2F< µA ÁF< ÁA&Á#F< Á%A&Á&EF< Æ<
G$ÇGÇG$c                   óâ   — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 d)dee         dededededededededee         dee         dedefd„Z	d*de
eef         fd„Zdefd„Zd„ Zd+d!ed"ed#ed$ed%ed&efd'„Zd(„ ZdS ),ÚAutonomousMapRunnerNúcaptures\map_runéð   ç      @rE   Té¼  ép  éñ   ç     €V@çš™™™™™é?Úcore_exeÚcapture_dirÚmax_duration_secÚcapture_interval_secÚmax_respawnsÚportal_exitÚmax_esÚmax_manaÚmax_wardÚminimap_adapterÚwasd_senderÚmin_duration_secÚtarget_coveragec                 ó"  — |s$t           j                             d¦  «        rd}nd}|| _        || _        || _        || _        || _        || _        || _	        || _
        || _        || _        |	| _        |
| _        || _        d| _        t          j        | j        d¬¦  «         t$          rt%          ||d¬¦  «        nd | _        t)          ¦   «         | _        t,          rt-          ¦   «         nd | _        d | _        d| _        d| _        g | _        d S )	Nzbin\AutoPOE2_Core.exezbin\Release\AutoPOE2_Core.exer   TrL   g     À’@)rÉ   rÊ   Úmin_traverse_unitsF)r\   r^   r„   r¾   r¿   rÀ   rÉ   rÊ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   Úrespawn_countr]   r   Úclear_evaluatorr   Úcapturerr   Ú
shm_bridgeÚprocÚ
is_stoppedÚdeath_detectedÚcaptured_files)r!   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   s                 r"   r#   zAutonomousMapRunner.__init__Å   s1  € ð  ð 	<ÝŒw�~Š~Ð6Ñ7Ô7ð <Ø3��à;�Ø ˆŒØ&ˆÔØ 0ˆÔØ 0ˆÔØ.ˆÔØ$8ˆÔ!Ø(ˆÔØ&ˆÔØˆŒØ ˆŒØ ˆŒØ.ˆÔØ&ˆÔØˆÔÝ
Œ�DÔ$¨tÐ4Ñ4Ô4Ð4õ ð	 )Õ0Ø-Ø+Ø%ð 
ñ  
ô  
ð  
ð %)ð	 	Ôõ *Ñ+Ô+ˆŒÝ-:ÐD�-™/œ/˜/ÀˆŒØ04ˆŒ	ØˆŒØ#ˆÔØ ˆÔÐÐr?   ©ç        rÖ   Úvectorc                 ó\  — 	 ddl m}m} ddlm}m}  |¦   «         }|râ ||¦  «        \  }}}}	|dk    r¥|	dk    rŸ|dz  }
|	dz  }|\  }}t          |¦  «        dk    st          |¦  «        dk    r1t          |
||dz  z  z   ¦  «        }t          |||	dz  z  z   ¦  «        }n*|
t          |dz  ¦  «        z   }|t          |	dz  ¦  «        z
  } ||||d	¬
¦  «          ||dddd¬¦  «         t          d|› d�d¬¦  «         dS dS # t          $ r}t          d|› �d¬¦  «         Y d}~dS d}~ww xY w)u  
        Thá»±c thi chu ká»³ Micro-Stutter-Stepping & Combat Skill Cast (ExiledBot 2 Model):
        - Settle pause: Dwell ngáº¯n ~50ms sau khi nháº£ WASD.
        - Mouse Aiming: HÆ°á»›ng chuá»™t vá»� phÃ­a má»¥c tiÃªu/vector di chuyá»ƒn (khÃ´ng click chuá»™t trÃ¡i - INV-WASD-NO-BLIND-LMB).
        - Skill Cast: Báº¥m phÃ­m Primary Skill ('F' - VK_F 0x46 / SC 0x21 - INV-KEY-NO-F-FOR-INTERACT).
        - Dwell cast: Giá»¯ phÃ­m ~180ms.
        - Release & Recovery: Nháº£ phÃ­m, sáºµn sÃ ng cho nhá»‹p di chuyá»ƒn káº¿ tiáº¿p.
        r   ©r›   Úget_client_rect)Úpost_message_hoverÚpost_message_keyr~   r|   g{®GázÄ?r}   çš™™™™™©?g{®Gáz”?)Údelay_afteréF   é!   g
×£p=
Ç?ç{®Gáz¤?©Údwell_msrÞ   uH   [Combat] âš”ï¸� Stutter-Step cast skill 'F' táº¥n cÃ´ng ngáº§m (Vector: ú)TrN   u:   [Combat Warning] Lá»—i thá»±c hiá»‡n Stutter-Step attack: N)
r   r›   rÚ   Úsrc.common.win32_inputrÛ   rÜ   Úabsr‡   re   r    )r!   r×   r­   Ú	_get_rectrÛ   rÜ   r¯   Ú_ÚcwÚchÚcxÚcyÚvxÚvyÚaim_xÚaim_yrs   s                    r"   Úexecute_stutter_step_attackz/AutonomousMapRunner.execute_stutter_step_attack÷   sÉ  € ð	`ØkÐkÐkÐkÐkÐkÐkÐkØSÐSÐSÐSÐSÐSÐSÐSØ�9‘;”;ˆDØð xØ(˜y¨™œ‘��1�b˜"Ø˜’6�6˜b 1šf˜fØ˜q™�BØ˜q™�BØ#‘F�B˜Ý˜2‘w”w ’~�~­¨R©¬°4ª¨Ý # B¨¨r°D©yÑ)9Ñ$9Ñ :Ô :˜Ý # B¨¨r°D©yÑ)9Ñ$9Ñ :Ô :˜˜à "¥S¨¨d©¡^¤^Ñ 3˜Ø "¥S¨¨d©¡^¤^Ñ 3˜Ø&Ð& t¨U°EÀtÐLÑLÔLÐLð !Ð   t¨T¸DÈdÐSÑSÔSÐSÝÐjÐagÐjÐjÐjÐrvÐwÑwÔwÐwÐwÐwð!xð xøõ" ð 	`ð 	`ð 	`ÝÐRÈqÐRÐRÐZ^Ð_Ñ_Ô_Ð_Ð_Ð_Ð_Ð_Ð_Ð_øøøøð	`øøøs   ‚C<D Ä
D+ÄD&Ä&D+r%   c                 ó  — t          dd¬¦  «         t          j        d¦  «         ddlm}m} ddlm}m}  |¦   «         }d}|r |||d	d
d¬¦  «         t          dd¬¦  «         t          j        d¦  «         t          j
        ¦   «                              d¦  «        }t          j                             | j        d|› d�¦  «        }d\  }	}
}}d}t          j        | j        d¬¦  «         	 ddlm} |rN ||¦  «        \  }}}}|dk    r8|dk    r2||||f\  }	}
}} ||	|
||¦  «        }|r|                     |¦  «         d}n+# t(          $ r}t          d|› �d¬¦  «         Y d}~nd}~ww xY w|s| j                             |¦  «         | j                             |¦  «         t          d|› d|› d�d¬¦  «         d}	 ddlm} ddlm}  |j        |¦  «        } ||¦  «        }|r2d„ |D ¦   «         }|r|d         n|d         }|d         |d         }}||f}n# t(          $ r Y nw xY w|rH||d         |d         t=          |dz  ¦  «        z   f|d         |d         t=          |d z  ¦  «        z   fg}nkt=          |d!z  ¦  «        t=          |d"z  ¦  «        ft=          |d!z  ¦  «        t=          |d#z  ¦  «        ft=          |d!z  ¦  «        t=          |d$z  ¦  «        fg}|r|D ]\  }}  |||| d%d&¬'¦  «         Œt          d(d¬¦  «         t          j        d)¦  «         t          j                             | j        d*|› d�¦  «        }!|rr	 ddlm}  ||	|
||¦  «        }"|"r|"                     |!¦  «         n| j                             |!¦  «         nD# t(          $ r | j                             |!¦  «         Y nw xY w| j                             |!¦  «         | j                             |!¦  «         t          d+|!› �d¬¦  «         dS ),uÍ  
        Thá»±c thi quy trÃ¬nh thoÃ¡t map báº±ng Town Portal phÃ­m '.' (VK 0xBE / HID 0x37) tuÃ¢n thá»§ INV-TOWN-PORTAL-KEY.
        1. Ä�Æ°a cá»­a sá»• game lÃªn Foreground
        2. Gá»­i phÃ­m '.' má»Ÿ Town Portal
        3. Chá»� 1.5s táº¡o portal vÃ  chá»¥p áº£nh báº±ng chá»©ng
        4. Click vÃ o tÃ¢m mÃ n hÃ¬nh / portal Ä‘á»ƒ bÆ°á»›c vÃ o cá»•ng trá»Ÿ vá»� Hideout
        5. Chá»� 3.5s mÃ n hÃ¬nh táº£i vÃ  chá»¥p áº£nh xÃ¡c nháº­n Hideout
        uQ   
[Portal] >> KÃ�CH HOáº T QUY TRÃŒNH THOÃ�T MAP Báº°NG TOWN PORTAL (PhÃ­m '.') <<TrN   ç333333Ó?r   rÙ   )rÜ   Úpost_message_clické¾   é4   g¸…ëQ¸®?r    râ   u_   [Portal] Ä�Ã£ gá»­i phÃ­m '.' niá»‡m má»Ÿ Town Portal ngáº§m. Chá»� 1.5s cá»•ng hÃ¬nh thÃ nh...g      ø?ú%Y%m%d_%H%M%SÚportal_opened_ú.png)r   r   r(   r)   FrL   )Úcapture_rect_bitbltu$   [Portal] Lá»—i capture client rect: Nu+   [Portal] áº¢nh báº±ng chá»©ng portal má»Ÿ: z (is_client_crop=rä   )Úfind_portal_label_by_ocrr   c                 óJ   ‡— g | ]Št          ˆfd „dD ¦   «         ¦  «        ¯‰‘Œ S )c              3   óP   •K  — | ] }|‰d                                ¦   «         v V — Œ!dS )r~   N)Úupper)Ú.0ÚkwÚps     €r"   ú	<genexpr>zEAutonomousMapRunner.execute_portal_exit.<locals>.<listcomp>.<genexpr>M  s5   øè è € Ð:qÐ:qÐRT¸2ÀÀ1ÄÇÂÁÄÐ;MÐ:qÐ:qÐ:qÐ:qÐ:qÐ:qr?   )ÚHIDEOUTÚ	SHORELINE)Úany)rÿ   r  s    @r"   ú
<listcomp>z;AutonomousMapRunner.execute_portal_exit.<locals>.<listcomp>M  s<   ø€ Ð!rÐ!rÐ!r¨µsÐ:qÐ:qÐ:qÐ:qÐXpÐ:qÑ:qÔ:qÑ7qÔ7qÐ!r !Ð!rÐ!rÐ!rr?   r'   rá   r}   ç      à?gìQ¸…ëÑ?rz   gáz®GáÚ?rÝ   çš™™™™™É?)Úhold_msrÞ   uO   [Portal] Ä�Ã£ click LMB bÆ°á»›c vÃ o Town Portal. Chá»� 3.5s chuyá»ƒn cáº£nh...g      @Úmap_exit_result_u+   [Portal] áº¢nh xÃ¡c nháº­n sau thoÃ¡t map: )re   r«   r¬   r   r›   rÚ   rå   rÜ   rô   r   ÚnowÚstrftimer\   r^   Újoinr¿   r]   Úsrc.common.screen_capturerú   ra   r    rÏ   rt   rÔ   ÚappendÚsrc.common.vision_ocrrû   ÚPILr   r…   r‡   )#r!   r­   rç   rÜ   rô   r¯   ÚVK_OEM_PERIODÚtsÚ
portal_imgÚclÚctré   rê   Úis_client_cropÚ	_cap_rectÚrclÚrctÚrcwÚrchÚimg_capturedrs   Úocr_ptrû   r   Úimg_pÚlabelsÚhideout_labelsÚchosenÚbxÚbyÚportal_pointsÚclick_xÚclick_yÚ
return_imgÚimg_rets#                                      r"   Úexecute_portal_exitz'AutonomousMapRunner.execute_portal_exit  s@  € õ 	ÐbÐjnÐoÑoÔoÐoÝŒ
�3‰ŒˆØgÐgÐgÐgÐgÐgÐgÐgØOÐOÐOÐOÐOÐOÐOÐOØˆy‰{Œ{ˆØˆØð 	XØÐ˜T =°$ÀÐSVÐWÑWÔWÐWÝÐoÐw{Ð|Ñ|Ô|Ð|ÝŒ
�3‰ŒˆåŒ\‰^Œ^×$Ò$ _Ñ5Ô5ˆÝ”W—\’\ $Ô"2Ð4MÀRÐ4MÐ4MÐ4MÑNÔNˆ
ð *‰ˆˆB��BØˆÝ
Œ�DÔ$¨tÐ4Ñ4Ô4Ð4ð	JØRÐRÐRÐRÐRÐRØð .Ø%. Y¨t¡_¤_Ñ"��S˜#˜sØ˜’7�7˜s Qšw˜wØ%(¨#¨s°CÐ%7‘N�B˜˜B Ø#, 9¨R°°R¸Ñ#<Ô#<�LØ#ð .Ø$×)Ò)¨*Ñ5Ô5Ð5Ø)-˜øøÝð 	Jð 	Jð 	JÝÐ<¸Ð<Ð<ÀDÐIÑIÔIÐIÐIÐIÐIÐIÐIøøøøð	Jøøøð ð 	.ØŒM×!Ò! *Ñ-Ô-Ð-ØÔ×"Ò" :Ñ.Ô.Ð.ÝÐj¸JÐjÐjÐYgÐjÐjÐjÐrvÐwÑwÔwÐwð ˆð	ØFÐFÐFÐFÐFÐFØ!Ð!Ð!Ð!Ð!Ð!Ø�E”J˜zÑ*Ô*ˆEØ-Ð-¨eÑ4Ô4ˆFØð "Ø!rÐ!r¨VÐ!rÑ!rÔ!r�Ø.<ÐK˜¨Ô*Ð*À&ÈÄ)�Ø œ F¨1¤I�B�Ø˜b˜�øøÝð 	ð 	ð 	ØˆDð	øøøð ð 	àØ˜”˜F 1œI­¨B°©I©¬Ñ6Ð7Ø˜”˜F 1œI­¨B°©I©¬Ñ6Ð7ðˆMˆMõ �R˜$‘Y‘”¥ R¨$¡Y¡¤Ð0Ý�R˜$‘Y‘”¥ R¨$¡Y¡¤Ð0Ý�R˜$‘Y‘”¥ R¨$¡Y¡¤Ð0ðˆMð
 ð 	ZØ$1ð Zð ZÑ �˜Ø"Ð" 4¨°'À4ÐUXÐYÑYÔYÐYÐYÝÐ_ÐgkÐlÑlÔlÐlÝŒ
�3‰Œˆå”W—\’\ $Ô"2Ð4OÀrÐ4OÐ4OÐ4OÑPÔPˆ
Øð 	.ð2ØVÐVÐVÐVÐVÐVØ#˜) B¨¨B°Ñ3Ô3�Øð 6Ø—L’L Ñ,Ô,Ð,Ð,à”M×)Ò)¨*Ñ5Ô5Ð5øøÝð 2ð 2ð 2Ø”×%Ò% jÑ1Ô1Ð1Ð1Ð1ð2øøøð ŒM×!Ò! *Ñ-Ô-Ð-ØÔ×"Ò" :Ñ.Ô.Ð.ÝÐH¸JÐHÐHÐPTÐUÑUÔUÐUØˆts?   Ã-AE Å
E,ÅE'Å'E,Ç AH È
H)È(H)ÍAN Î$N:Î9N:c                 óN  — t          dd¬¦  «         t          dd¬¦  «         t          dd¬¦  «         t          ¦   «         rt          dd¬¦  «         nt          dd¬¦  «         | j        r<| j                             ¦   «         rt          dd¬¦  «         nt          dd¬¦  «         | j        d	d
ddddddt          | j        ¦  «        dt          | j        ¦  «        dt          | j        ¦  «        dddddg}t          dd 	                    |¦  «        › �d¬¦  «         t          j        dd¬¦  «         t          ddd¬¦  «        }	 t          j        ||t          j        t          j        ¦   «         ¬ ¦  «        | _        nò# t$          $ rå}t          d!|› d"�d¬¦  «         	 t&          j        j                             d d#| j        d 	                    |d$d …         ¦  «        d d$¦  «        }|d%k    rIt&          j        j                             d d&| j        d 	                    |d$d …         ¦  «        d d$¦  «         n,# t.          $ r}t          d'|› d(�d¬¦  «         Y d }~nd }~ww xY wY d }~nd }~ww xY wt1          j        ¦   «         }d)}d*}	 | j        �sVt1          j        ¦   «         }	|	|z
  }
| j        r?| j                             ¦   «         �&t          d+| j        j        › d,�d¬¦  «         d | _        |
| j        k    rft          d-| j        › d.�d¬¦  «         |                      ¦   «          t1          j        d/¦  «         | j        r| j         s|  !                    ¦   «          �n‡d$}d0}d1\  }}d*}| j        rW| j         "                    ¦   «         }|j#        r7|j$        j%        }|j$        j&        }|j$        j'        }|j$        j(        }|j)        }d2}d3}| j*        rÆ| j        r¿| j        j+        }|r|j#        r|j,        nd }|r|j#        rt[          |d4d2¦  «        nd2}d)}| j.        r<t_          | j.        d5¦  «        r'| j.        j0        rt[          | j.        j0        d6d)¦  «        }| j*         1                    ||||||	¬7¦  «         | j*         2                    |
||	¬8¦  «        \  }}|rat          d9|› d:�d¬¦  «         |                      ¦   «          t1          j        d/¦  «         | j        r| j         s|  !                    ¦   «          �nêd2}|d*k    s|d*k    r|d$k    r|
d;k    rd}d2}d3}|	|z
  | j3        k    �rÅ|	}|d$z  }ti          j5        ¦   «          6                    d<¦  «        }d=|› d>|d?›d@�}t          j7         	                    | j8        |¦  «        }| j9         :                    |¦  «        �rN| j;         <                    |¦  «         t          dA|dB›dC|› dDt{          |
¦  «        › dE|› dF|› dG|dH›dI|dH›dJ|› �d¬¦  «         | j.        rá	 | j.         >                    |¦  «        }|rƒ|j?        j@        rwt          dK|j?        j@        › dL|jA        dH›dM|jB        dNz  dH›dO�d¬¦  «         | jC        r;| j.         D                    || jC        ¬P¦  «         |  E                    |jF        ¦  «         n|  E                    dQ¦  «         n+# t.          $ r}t          dR|› �d¬¦  «         Y d }~nd }~ww xY wt�          |¦  «        rd}|}|s|�rÕ|rdSndT}|}| xjH        d$z  c_H        t          dUd¬¦  «         | jH        | jI        k    r>t          dV| jH        › dW| jI        › dX�d¬¦  «         |  J                    ||||||¦  «         �nzd2} t1          j        ¦   «         }!t1          j        ¦   «         |!z
  dYk     rÚ| j        sÓt1          j        dZ¦  «         | j                             ¦   «         �n¥| j        r}| j         "                    ¦   «         }|j#        r]|j$        j%        }"|j$        j&        }#|j$        jK        d$k    r|"d*k    r|#d*k    s"|j$        jK        d$k    r|"d*k    s|"d$k    s|#d*k    rd} |"}|#}n!t1          j        ¦   «         |!z
  dYk     r| j        ¯Ó| r't          d[d¬¦  «         t1          j        d\¦  «         �Œt          d]d¬¦  «         |  J                    d^|||||¦  «         nt1          j        d_¦  «         | j        �¯Vn!# t˜          $ r t          d`d¬¦  «         Y nw xY w|                      ¦   «          	 | M                    ¦   «          nN# t.          $ r Y nBw xY w# |                      ¦   «          	 | M                    ¦   «          w # t.          $ r Y w w xY wxY w| j         | j;        t1          j        ¦   «         |z
  daœS )bNz1=================================================TrN   z1   AutoPOE2 Autonomous Map Clear & Sentinel      u?   [Focus] Ä�Ã£ Ä‘Æ°a cá»­a sá»• 'Path of Exile 2' lÃªn ForegrounduD   [Focus Warning] KhÃ´ng tÃ¬m tháº¥y HWND cá»­a sá»• 'Path of Exile 2'u?   [Bridge] Ä�Ã£ káº¿t ná»‘i vÃ o khá»‘i nhá»› chia sáº» IPC (SHM)uW   [Bridge Warning] ChÆ°a káº¿t ná»‘i Ä‘Æ°á»£c SHM (sáº½ tá»± thá»­ láº¡i khi Core cháº¡y)z--user-modez--ciz
--ci-staffz--primary-skillÚfz--max-hpÚ1ú--max-esú
--max-manaú
--max-wardz--fast-clearz--autoquestz--wasdz--movez--auto-respawnu$   [Runner] Khá»Ÿi cháº¡y Core Engine: ú zbin\ReleaserL   zbin\Release\core_map_run.logrf   r   ©r   )ÚstdoutÚstderrÚcwdu?   [Runner Warning] KhÃ´ng thá»ƒ spawn trá»±c tiáº¿p Core Engine (u*   ). Thá»­ kÃ­ch hoáº¡t qua ShellExecuteW...r…   r'   rG   Úrunasu*   [Runner Error] ShellExecute tháº¥t báº¡i (u.   ). Tiáº¿p tá»¥c váº­n hÃ nh giÃ¡m sÃ¡t in-map.rÖ   r   u3   [Runner Warning] Core Engine káº¿t thÃºc (ExitCode=uf   ). Tiáº¿p tá»¥c váº­n hÃ nh Autonomous In-Map Controller (Minimap Navigation + Stutter-Step Combat)...u/   [Runner] Ä�Ã£ Ä‘áº¡t thá»�i lÆ°á»£ng tá»‘i Ä‘a u    s. Dá»«ng chu trÃ¬nh kiá»ƒm tra.ró   ii  rÕ   FÚ Ú
boss_slainÚexplorerÚcoverage_ratio)Úpos_xÚpos_yÚmonsters_nearr:  r8  Únow_sec)Úelapsed_secÚcore_lifecycle_stater>  uH   
[Runner] ðŸŽ¯ XÃ�C NHáº¬N HOÃ€N Táº¤T Báº¢N Ä�á»’ CHUáº¨N THá»°C Táº¾ (u   ). Káº¿t thÃºc Stage 5.r¸   r÷   Ústep_rè   Ú03drù   z
[Watcher #Ú02du	   ] Chá»¥p z | Elapsed: zs | HP=z ES=z | Pos=(ú.1fz, z	) | Mobs=u0   [MinimapNav] HÆ°á»›ng sÆ°Æ¡ng mÃ¹ Ä‘á»� xuáº¥t: z (u   Â°), Coverage: éd   ú%)Úsender_func)rÖ   g      ð¿u=   [MinimapNav Warning] Lá»—i tÃ­nh toÃ¡n hÆ°á»›ng sÆ°Æ¡ng mÃ¹: ÚRAM_TELEMETRY_ZERO_VITALSÚOPTICAL_DEATH_MODALuk   
[Sentinel] PhÃ¡t hiá»‡n tá»­ tráº­n -> Chá»� Core Engine tá»± Ä‘á»™ng click há»“i sinh táº¡i Checkpoint...u#   [Sentinel] Sá»‘ láº§n tá»­ tráº­n (u   ) vÆ°á»£t quÃ¡ max_respawns (u#   )! KÃ­ch hoáº¡t káº¿t thÃºc phiÃªn.g      @r  uT   [Sentinel] NhÃ¢n váº­t Ä‘Ã£ há»“i sinh thÃ nh cÃ´ng! Tiáº¿p tá»¥c phiÃªn tá»± hÃ nh.g      ð?uX   [Sentinel] QuÃ¡ 6 giÃ¢y khÃ´ng há»“i sinh thÃ nh cÃ´ng! KÃ­ch hoáº¡t káº¿t thÃºc phiÃªn.ÚRESPAWN_TIMEOUTr  uB   
[Runner] NgÆ°á»�i dÃ¹ng báº¥m ngáº¯t (Ctrl+C). Dá»«ng an toÃ n...)rÓ   rÔ   r?  )Nre   r³   rÐ   Úconnectr¾   rv   rÄ   rÅ   rÆ   r  r\   r]   r…   Ú
subprocessÚPopenÚSTDOUTÚgetcwdrÑ   ÚOSErrorr   r   Úshell32ÚShellExecuteWr    r«   rÒ   ÚpollÚ
returncoderÀ   Ústopr¬   rÃ   rÓ   r*  Úread_telemetry_snapshotÚ	is_onlineÚplayerÚ
current_hpÚ
current_esr;  r<  Úmonsters_countrÎ   Úlast_snapshotÚlifecycle_stateÚgetattrrÇ   Úhasattrr9  Úupdate_telemetryÚevaluate_clearrÁ   r   r  r  r^   r¿   rÏ   rt   rÔ   r  r‡   Úprocess_fullscreen_frameÚ	directionÚvalueÚ	angle_degr:  rÈ   Údispatch_to_controllerrñ   r×   r™   rÍ   rÂ   Úhandle_death_eventÚmax_hpÚKeyboardInterruptÚclose)$r!   Úcmd_argsÚlog_filers   ÚretÚexÚ
start_timeÚlast_capture_timeÚstep_idxr  ÚelapsedÚcur_hpÚcur_esr;  r<  ÚmonstersÚsnapÚis_map_clearedÚclear_reasonÚ	snap_currÚ
core_stater8  Ú	cov_ratioÚis_dead_ramÚis_dead_opticalÚoptical_evidence_imgÚts_strÚimg_namerx   Úwasd_cmdÚdeath_reasonÚevidence_imgÚ	respawnedÚ
wait_startÚr_hpÚr_ess$                                       r"   ÚstartzAutonomousMapRunner.startw  sc  € ÝÐBÈ$ÐOÑOÔOÐOÝÐBÈ$ÐOÑOÔOÐOÝÐBÈ$ÐOÑOÔOÐOõ ÑÔð 	fÝÐSÐ[_Ð`Ñ`Ô`Ð`Ð`åÐXÐ`dÐeÑeÔeÐeð Œ?ð 	}ØŒ×&Ò&Ñ(Ô(ð }ÝÐWÐ_cÐdÑdÔdÐdÐdåÐoÐw{Ð|Ñ|Ô|Ð|ð
 ŒMØØØØ˜sØ˜Ø�˜DœKÑ(Ô(Ø�#˜dœmÑ,Ô,Ø�#˜dœmÑ,Ô,ØØØØØð
ˆõ" 	ÐI°S·X²X¸hÑ5GÔ5GÐIÐIÐQUÐVÑVÔVÐVÝ
Œ�N¨TÐ2Ñ2Ô2Ð2ÝÐ7¸ÀwÐOÑOÔOˆð	CÝ"Ô(ØØÝ!Ô(Ý”I‘K”Kð	ñ ô ˆDŒIˆIøõ ð 	Cð 	Cð 	CÝð  BÐTUð  Bð  Bð  Bð  JNð  Oñ  Oô  Oð  Oð	CÝ”mÔ+×9Ò9Ø˜& $¤-°·²¸(À1À2À2¼,Ñ1GÔ1GÈÈqñô �ð ˜"’9�9Ý”MÔ)×7Ò7Ø˜g t¤}°c·h²h¸xÈÈÈ¼|Ñ6LÔ6LÈdÐTUñô ð øøõ ð Cð Cð CÝÐuÀ2ÐuÐuÐuð  ~Bð  Cñ  Cô  Cð  Cð  Cð  Cð  Cð  Cð  CøøøøðCøøøøøøøøøøøøð	Cøøøõ ”Y‘[”[ˆ
ØÐØˆðb	Ø”oñ X Ý”i‘k”k�Ø 
Ñ*�ð ”9ð % ¤§¢Ñ!1Ô!1Ð!=Ýð  MÐPTÔPYÔPdð  Mð  Mð  Mð  UYð  Zñ  Zô  Zð  ZØ $�D”Ið ˜dÔ3Ò3Ð3Ýð  DÈDÔLað  Dð  Dð  Dð  LPð  Qñ  Qô  Qð  QØ—I’I‘K”K�KÝ”J˜s‘O”O�OØÔ'ð 3°Ô0Cð 3Ø×0Ò0Ñ2Ô2Ð2Ùð �Ø�Ø'‘��uØ�Ø”?ð 7Øœ?×BÒBÑDÔD�DØ”~ð 7Ø!%¤Ô!7˜Ø!%¤Ô!7˜Ø $¤Ô 1˜Ø $¤Ô 1˜Ø#'Ô#6˜ð "'�Ø!�ØÔ'ð ¨D¬Oð Ø $¤Ô =�IØ?HÐ!kÈYÔM`Ð!k Ô!:Ð!:Ðgk�JØMVÐ!zÐ[dÔ[nÐ!z¥¨°LÀ%Ñ!HÔ!HÐ!HÐuz�Jð !$�IØÔ+ð bµ¸Ô8LÈjÑ0YÔ0Yð bÐ^bÔ^rÔ^{ð bÝ$+¨DÔ,@Ô,IÐK[Ð]`Ñ$aÔ$a˜	àÔ(×9Ò9Ø#Ø#Ø&.Ø'0Ø#-Ø #ð :ñ ô ð ð 48Ô3G×3VÒ3VØ$+Ø-7Ø #ð 4Wñ 4ô 4Ñ0�N Lð "ð Ýð  LÐfrð  Lð  Lð  Lð  TXð  Yñ  Yô  Yð  YØ—I’I‘K”K�KÝ”J˜s‘O”O�OØÔ'ð 3°Ô0Cð 3Ø×0Ò0Ñ2Ô2Ð2Ùð $�Ø˜Q’;�; 6¨Q¢; ;°6¸Q²;°;à ’}�}Ø&*˜à"'�Ø')Ð$ð Ð*Ñ*¨dÔ.GÒGÑGØ(+Ð%Ø ‘M�HÝ%œ\™^œ^×4Ò4°_ÑEÔE�FØB vÐBÐB°ÐBÐBÐBÐB�HÝ!œwŸ|š|¨DÔ,<¸hÑGÔG�Hà”}×,Ò,¨XÑ6Ô6ñ <ØÔ+×2Ò2°8Ñ<Ô<Ð<Ýð  u¨8ð  uð  uð  uÀ(ð  uð  uÕX[Ð\cÑXdÔXdð  uð  uÐmsð  uð  uÐyð  uð  uð  JOð  uð  uð  uð  W\ð  uð  uð  uð  ksð  uð  uð  }Að  Bñ  Bô  Bð  Bð  Ô/ð xðxØ+/Ô+?×+XÒ+XÐYaÑ+bÔ+b Ø#+ð !R°Ô0BÔ0Hð !RÝ$)ð  +CÐ]eÔ]oÔ]uð  +Cð  +Cð  zBô  zLð  +Cð  +Cð  +Cð  aiô  axð  y|ñ  a|ð  +Cð  +Cð  +Cð  +Cð  KOð  %Pñ  %Pô  %Pð  %PØ'+Ô'7ð %ZØ(,Ô(<×(SÒ(SÐT\ÐjnÔjzÐ(SÑ({Ô({Ð({à(,×(HÒ(HÈÌÑ(YÔ(YÐ(Yøð %)×$DÒ$DÀ[Ñ$QÔ$QÐ$QøøÝ#,ð xð xð xÝ %Ð&jÐfhÐ&jÐ&jÐrvÐ wÑ wÔ wÐ wÐ wÐ wÐ wÐ wÐ wøøøøðxøøøõ /¨xÑ8Ô8ð <Ø.2˜OØ3;Ð0àð % /ñ %ØBMÐ#hÐ#>Ð#>ÐSh�LØ#7�LØÐ&Ô&¨!Ñ+Ð&Ô&Ýð  Jð  RVð  Wñ  Wô  Wð  WàÔ)¨DÔ,=Ò=Ð=Ýð  lÀDÔDVð  lð  lÐuyô  vGð  lð  lð  lð  txð  yñ  yô  yð  yØ×/Ò/°¸fÀfÈeÐUZÐ\hÑiÔiÐiÙð !&�IÝ!%¤¡¤�JÝœ)™+œ+¨
Ñ2°SÒ8Ð8ÀÄÐ8Ýœ
 3™œ˜Øœ9Ÿ>š>Ñ+Ô+Ð7Ø!Øœ?ð 
*Ø#'¤?×#JÒ#JÑ#LÔ#L˜DØ#œ~ð *Ø'+¤{Ô'= Ø'+¤{Ô'= à$(¤KÔ$6¸!Ò$;Ð$;ÀÀqÂÀÈTÐTUÊXÈXÐ[_Ô[fÔ[mÐpqÒ[qÐ[qÐvzÐ}~Òv~Ðv~ð  EIð  LMò  EMð  EMð  QUð  XYò  QYð  QYØ04 IØ-1 FØ-1 FØ$)õ œ)™+œ+¨
Ñ2°SÒ8Ð8ÀÄÐ8ð  !ð ÝÐuð  ~Bð  Cñ  Cô  Cð  CÝœ
 3™œ˜Ù åÐyð  BFð  Gñ  Gô  Gð  GØ×/Ò/Ð0AÀ6È6ÐSXÐZ_ÐamÑnÔnÐnØå”
˜3‘”�ðq ”oñ X øøõt !ð 	eð 	eð 	eÝÐWÐ_cÐdÑdÔdÐdÐdÐdð	eøøøð �IŠI‰KŒKˆKðØ—’Ñ Ô Ð Ð øÝð ð ð Ø�ðøøøøð �IŠI‰KŒKˆKðØ—’Ñ Ô Ð Ð øÝð ð ð Ø�ðøøøøøøð #Ô1Ø"Ô1Ýœ9™;œ;¨Ñ3ð
ð 
ð 	
sÐ   Å8F Æ
I0ÆI+Æ!BH:È9I+È:
I#ÉIÉI+ÉI#É#I+É+I0ÊM4c* Ø B4Z5 Ú4c* Ú5
[Ú?[Ûc* Û[ÛHc* ã)e ã*däe ädäe ä d5 ä5
eåeåf åe0å/f å0
e=å:f å<e=å=f r7  ÚreasonÚhpÚesÚxÚyrƒ  c                 ó*  — d| _         d| _        |                      ¦   «          t          j        ¦   «                              d¦  «        }t          j                             dd|› d�¦  «        }|r:t          j         	                    |¦  «        rdd l
}	|	                     ||¦  «         n| j                             |¦  «         dt          j        ¦   «                              ¦   «         |||dœ||d	œ|d
œ}
t          j                             dd|› d�¦  «        }t          |dd¬¦  «        5 }t!          j        |
|d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t%          dd¬¦  «         t%          d|› �d¬¦  «         t%          d|› �d¬¦  «         d S )NTr÷   ÚcapturesÚINCIDENT_DEATH_rù   r   ÚCHARACTER_DEATH)rŠ  r‹  )rŒ  r�  )Úincident_typeÚ	timestampr‰  ÚvitalsÚpositionÚevidence_imageÚincident_dossier_z.jsonrf   r   r2  r~   )Úindentud   [SENTINEL INTERLOCK] Ä�Ã£ kÃ­ch hoáº¡t Kill-Switch: Tiáº¿n trÃ¬nh Core Ä‘Ã£ bá»‹ dá»«ng hoÃ n toÃ n.rN   u=   [SENTINEL INTERLOCK] Há»“ sÆ¡ sá»± cá»‘ Ä‘Æ°á»£c lÆ°u táº¡i: u9   [SENTINEL INTERLOCK] áº¢nh hiá»‡n trÆ°á»�ng tá»­ tráº­n: )rÓ   rÒ   rU  r   r  r  r\   r^   r  r„   ÚshutilÚcopyfilerÏ   rt   Ú	isoformatr…   ÚjsonÚdumpre   )r!   r‰  rŠ  r‹  rŒ  r�  rƒ  r  Úincident_imgr™  ÚdossierÚdossier_pathr,  s                r"   rg  z&AutonomousMapRunner.handle_death_eventa  sõ  € Ø"ˆÔØˆŒØ�	Š	‰Œˆå”‘”×(Ò(¨Ñ9Ô9ˆÝ”w—|’| JÐ0NÀ&Ð0NÐ0NÐ0NÑOÔOˆØð 	0�BœGŸNšN¨<Ñ8Ô8ð 	0ØˆMˆMˆMØ�OŠO˜L¨,Ñ7Ô7Ð7Ð7àŒM×!Ò! ,Ñ/Ô/Ð/ð /Ý!œ™œ×1Ò1Ñ3Ô3ØØ rÐ*Ð*Ø aÐ(Ð(Ø*ð
ð 
ˆõ ”w—|’| JÐ0QÀFÐ0QÐ0QÐ0QÑRÔRˆÝ�, ¨gÐ6Ñ6Ô6ð 	,¸!ÝŒI�g˜q¨Ð+Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,õ 	Ðuð  ~Bð  	Cñ  	Cô  	Cð  	CÝÐ\ÈlÐ\Ð\ÐdhÐiÑiÔiÐiÝÐXÈ,ÐXÐXÐ`dÐeÑeÔeÐeÐeÐes   Ä+EÅEÅEc                 ó‚  — d| _         | j        r®| j                             ¦   «         €—t          dd¬¦  «         	 | j                             ¦   «          | j                             d¬¦  «         n;# t          $ r. 	 | j                             ¦   «          n# t          $ r Y nw xY wY nw xY wt          dd¬¦  «         d S d S d S )NTu0   [Runner] Gá»­i tÃ­n hiá»‡u dá»«ng Core Engine...rN   g       @)Útimeoutu:   [Runner] Core Engine Ä‘Ã£ Ä‘Æ°á»£c giáº£i phÃ³ng an toÃ n.)rÒ   rÑ   rS  re   Ú	terminateÚwaitr    Úkill)r!   s    r"   rU  zAutonomousMapRunner.stop~  sñ   € ØˆŒØŒ9ð 
	\˜œŸšÑ)Ô)Ð1ÝÐDÈDÐQÑQÔQÐQðØ”	×#Ò#Ñ%Ô%Ð%Ø”	—’ s�Ñ+Ô+Ð+Ð+øÝð ð ð ðØ”I—N’NÑ$Ô$Ð$Ð$øÝ ð ð ð Ø�Dðøøøøøðøøøõ
 ÐNÐVZÐ[Ñ[Ô[Ð[Ð[Ð[ð
	\ð 
	\Ð1Ð1s5   º4A/ Á/
B'Á:BÂB'Â
B!ÂB'Â B!Â!B'Â&B')Nr¶   r·   r¸   rE   Tr¹   rº   r»   NNr¼   r½   )rÕ   )r7  )r7   r8   r9   r   rv   r‡   r�   rw   r	   r#   r
   rñ   r*  rˆ  rg  rU  r>   r?   r"   rµ   rµ   Ä   sª  € € € € € ð #'Ø.Ø #Ø&)ØØ ØØØØ)-Ø%)Ø"&Ø!%ð0!ð 0!à˜3”-ð0!ð ð0!ð ð	0!ð
 $ð0!ð ð0!ð ð0!ð ð0!ð ð0!ð ð0!ð " #œð0!ð ˜c”]ð0!ð  ð0!ð ð0!ð 0!ð 0!ð 0!ðd`ð `°%¸¸u¸Ô2Eð `ð `ð `ð `ðB] Tð ]ð ]ð ]ð ]ð~h
ð h
ð h
ðTfð f¨ð f°#ð f¸3ð fÀ5ð fÈUð fÐbeð fð fð fð fð:\ð \ð \ð \ð \r?   rµ   Ú__main__zAutoPOE2 Autonomous Map Runner)Údescriptionz
--durationé   u$   Thá»�i gian cháº¡y tá»‘i Ä‘a (giÃ¢y))ÚtypeÚdefaultÚhelpz
--intervalg      @u)   Khoáº£ng thá»�i gian chá»¥p áº£nh (giÃ¢y)z--max-respawnsrE   u:   Sá»‘ láº§n há»“i sinh tá»‘i Ä‘a trÆ°á»›c khi dá»«ng phiÃªnz--portal-exitrÃ   Ú
store_trueTu:   Tá»± Ä‘á»™ng má»Ÿ portal báº±ng phÃ­m '.' khi háº¿t phiÃªn)ÚdestÚactionrª  r«  z--no-portal-exitÚstore_falseu0   KhÃ´ng tá»± Ä‘á»™ng má»Ÿ portal khi háº¿t phiÃªn)r­  r®  r«  r.  r¹   u!   Expected Max ES cá»§a nhÃ¢n váº­tr/  rº   u#   Expected Max Mana cá»§a nhÃ¢n váº­tr0  r»   u#   Expected Max Ward cá»§a nhÃ¢n váº­t)rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   z'
[Summary] Run finished: DeathDetected=rÓ   z, Captured=rÔ   z frames, Duration=r?  rD  Ús)Bru   r\   Úsysr«   rœ  r   ÚstructrL  Ú	threadingr   Úpathlibr   r   Útypingr   r   r   r	   r
   r  r   r3  r   Úreconfigurer4  r    r^   Úinsertrv   Ú__file__ÚresolveÚparentÚassistant_tool.core_shm_bridger   r   r   ÚImportErrorÚ-assistant_tool.navigation.map_clear_evaluatorr   Ú1src.assistant_tool.navigation.map_clear_evaluatorr   rw   r™   r³   rµ   r7   ÚargparseÚArgumentParserÚparserÚadd_argumentr‡   r�   Ú
parse_argsÚargsÚdurationÚintervalrÂ   rÃ   rÄ   rÅ   rÆ   Úrunnerrˆ  rr   re   r‹   r>   r?   r"   ú<module>rÈ     s  ððð ð
 
€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð ð „:Ô˜'Ò!Ð!ðØŒ
×Ò¨¸	ÐÑBÔBÐBØŒ
×Ò¨¸	ÐÑBÔBÐBÐBøØð ð ð Øˆðøøøð „‡‚��3�3�t�t˜H‘~”~×-Ò-Ñ/Ô/Ô6Ô=ÀÑEÑFÔFÑ GÔ GÐ Gð#ØlÐlÐlÐlÐlÐlÐlÐlÐlÐlÐløØð #ð #ð #Ø€MØ"ÐÐÐð#øøøðTØOÐOÐOÐOÐOÐOÐOøØð Tð Tð TØSÐSÐSÐSÐSÐSÐSÐSðTøøøðLð Lð Lð Lð Lñ Lô Lð Lð\! #ð !¨$ð !ð !ð !ð !ðF(˜4ð (ð (ð (ð (ðTF\ð F\ð F\ð F\ð F\ñ F\ô F\ð F\ðP ˆzÒÑØ€O€O€OØ$ˆXÔ$Ð1QÐRÑRÔR€FØ
×Ò˜¨3¸ÐAgÐÑhÔhÐhØ
×Ò˜¨5¸#ÐDoÐÑpÔpÐpØ
×ÒÐ(¨s¸Að  EAÐñ  Bô  Bð  BØ
×Ò˜¨mÀLÐZ^ð  fbÐñ  cô  cð  cØ
×ÒÐ*°À}ð  \NÐñ  Oô  Oð  OØ
×Ò˜
¨°dÐAdÐÑeÔeÐeØ
×Ò˜¨3¸ÐBgÐÑhÔhÐhØ
×Ò˜¨3¸ÐBgÐÑhÔhÐhØ×ÒÑÔ€Dà Ð ØœØ!œ]ØÔ&ØÔ$ØŒ{Ø”Ø”ðñ ô €Fð �,Š,‰.Œ.€CØ	€Eð  _°SÐ9IÔ5Jð  _ð  _ÐWZÐWZÐ[^Ð_oÔ[pÑWqÔWqð  _ð  _ð  FIð  JWô  FXð  _ð  _ð  _ð  _ñ  `ô  `ð  `ð  `ð  `ð/ Ðs6   Á8B ÂBÂBÃ+
C6 Ã6	DÄDÄD ÄDÄD