§
    «v¦j™D  ã                  óÞ   — d Z ddlm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
Z
ddlZddlmZmZmZmZmZ ddlmZ dZdZd	ZdZd
Zddd„Z G d„ d¦  «        Zdd„Zedk    r e¦   «          dS dS )u®  
Poe2VisualTool Item Tooltip Overlay HUD (Semi-transparent Tkinter Overlay)
Giao diá»‡n hiá»ƒn thá»‹ Ä‘Ã¡nh giÃ¡ váº­t pháº©m POE2 trá»±c quan, hiá»‡n Ä‘áº¡i, Ä‘á»™ trá»… cá»±c tháº¥p (<1ms).
Ä�áº·c tÃ­nh ká»¹ thuáº­t:
- Cá»­a sá»• khÃ´ng viá»�n (overrideredirect = True), luÃ´n ghim trÃªn cÃ¹ng (topmost = True).
- Kiá»ƒu cá»­a sá»• Windows Click-through: WS_EX_LAYERED | WS_EX_TRANSPARENT | WS_EX_NOACTIVATE.
- Tá»± Ä‘á»™ng cÄƒn chá»‰nh vá»‹ trÃ­ hiá»ƒn thá»‹ cÃ¡ch con trá»� chuá»™t 15px, tá»± láº­t hÆ°á»›ng khi sÃ¡t mÃ©p mÃ n hÃ¬nh.
- Header: TÃªn Ä‘á»“, Rarity, Badge Ä‘Ã¡nh giÃ¡ Ä‘iá»ƒm / Ä‘á»™ nguy hiá»ƒm (Brick / Safe / God Roll).
- PhÃ¢n má»¥c mÃ u sáº¯c:
  * Xanh LÃ¡: Mod xá»‹n, pháº§n thÆ°á»Ÿng Map, God Roll
  * VÃ ng SÃ¡ng: Tiá»�m nÄƒng cháº¿ Ä‘á»“, Open Affixes
  * Ä�á»�: Cáº£nh bÃ¡o nguy hiá»ƒm, ká»µ build, Brick Mods
100% Zero-Crash, an toÃ n Ä‘a luá»“ng (Thread-safe Tkinter dispatch).
Bá»‘i cáº£nh: 13/09/2026 (Rule 2)
é    )ÚannotationsN)ÚOptional)Ú	AffixTypeÚInspectionSeverityÚItemCategoryÚItemInspectionReportÚ
ItemRarity)Úattach_to_default_desktopi   é    i   é   TÚhwndÚintÚenableÚboolÚreturnc                ó¨   — 	 ddl }|rt          nt          }t          |j        j                             | |¦  «        ¦  «        S # t          $ r Y dS w xY w)uf   áº¨n cá»­a sá»• khá»�i OBS, Discord Screen Share vÃ  áº£nh chá»¥p mÃ n hÃ¬nh (WDA_EXCLUDEFROMCAPTURE).r   NF)ÚctypesÚWDA_EXCLUDEFROMCAPTUREÚWDA_NONEr   ÚwindllÚuser32ÚSetWindowDisplayAffinityÚ	Exception)r   r   r   Úaffinitys       ú@C:\Projects\Poe2VisualTool\src\assistant\item_tooltip_overlay.pyÚapply_streamer_affinityr   .   se   € ðØˆˆˆØ-3ÐAÕ)Ð)½ˆÝ�F”MÔ(×AÒAÀ$ÈÑQÔQÑRÔRÐRøÝð ð ð Øˆuˆuðøøøs   ‚A A Á
AÁAc                  óÌ   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zej        dej        d	ej        dej        diZd"d#d„Zd$d„Zd$d„Zd%d„Zd%d„Zd$d„Zd$d„Zed&d „¦   «         Zd$d!„ZdS )'ÚItemTooltipOverlayu\   
    HUD Overlay bÃ¡n trong suá»‘t hiá»ƒn thá»‹ thÃ´ng tin Ä‘Ã¡nh giÃ¡ trang bá»‹ POE2.
    z#0B0B10z#4A3820z#382C18z#E6E6E6z#2ECC71z#F1C40Fz#FF4D4Dz#8888FFz#9E9EB0z#DCDCDCz#FFE066z#AF6025NÚrootúOptional[tk.Tk]c           	     ó  — |d u | _         t          ¦   «          	 |�!|| _        t          j        |¦  «        | _        n$t          j        ¦   «         | _        | j        | _        n-# t          $ r  d | _        d | _        d | _        d| _	        Y d S w xY wd| _	        d| _
        t          j        ¦   «         | _        d | _        t          j        ¦   «         | _        | j                             ¦   «          | j                             d¦  «         | j                             dd¦  «         | j                             | j        ¬¦  «         | j                             d| j        ¦  «         	 | j                             ¦   «          | j                             ¦   «         }t5          j        |¦  «        }|r|n|}|| _        t5          j        |t:          j        ¦  «        }t5          j        |t:          j        |t@          z  tB          z  tD          z  ¦  «         d| _
        tG          |d¦  «         n# t          $ r Y nw xY wt          j$        | j        | j        | j%        ddd	¬
¦  «        | _&        | j&         '                    t          j(        d¬¦  «         t          j$        | j&        | j        ¬¦  «        | _)        | j)         '                    t          j*        d¬¦  «         t          j+        | j)        dddd| j        ¬¦  «        | _,        t          j+        | j)        dd| j-        | j        dt          j.        ¬¦  «        | _/        | j/         '                    t          j*        ¬¦  «         t          j+        | j)        dd| j0        | j        dt          j.        ¬¦  «        | _1        | j1         '                    t          j*        d¬¦  «         t          j$        | j&        | j        ¬¦  «        | _2        | j2         '                    t          j(        d¬¦  «         d S )NFTz-alphag®Gázî?)Úbgé   é   é   é
   )r"   ÚhighlightbackgroundÚhighlightthicknessÚpadxÚpady)ÚfillÚexpand)r   é   ©r+   r*   Ú )úSegoe UIé   Úboldé   )ÚtextÚfontr)   r*   r"   )r0   é   r2   Úcenter©r4   r5   Úfgr"   ÚanchorÚjustify)r+   ©r0   é	   )r$   r-   )3Ú
_owns_rootr
   r   ÚtkÚToplevelÚwindowÚTkr   Útarget_hwndÚ_is_visibleÚ_click_through_appliedÚ	threadingÚ	get_identÚ_main_thread_idÚqueueÚQueueÚ_event_queueÚwithdrawÚoverrideredirectÚ
attributesÚconfigÚBG_COLORÚafterÚ_poll_event_queueÚupdate_idletasksÚwinfo_idÚwin32guiÚ	GetParentÚGetWindowLongÚwin32conÚGWL_EXSTYLEÚSetWindowLongÚWS_EX_LAYEREDÚWS_EX_TRANSPARENTÚWS_EX_NOACTIVATEr   ÚFrameÚBORDER_COLORÚ
main_frameÚpackÚBOTHÚheader_frameÚXÚLabelÚbadge_labelÚ
TEXT_COLORÚCENTERÚ
name_labelÚSUB_TEXT_COLORÚ	sub_labelÚ
mods_frame)Úselfr   r   Úparent_hwndrC   Ústyles         r   Ú__init__zItemTooltipOverlay.__init__N   sÇ  € Ø $˜,ˆŒÝ!Ñ#Ô#Ð#ð	ØÐØ �”	Ý œk¨$Ñ/Ô/�”�åœE™GœG�”	Ø"œi�”øøÝð 	ð 	ð 	àˆDŒIØˆDŒKØ#ˆDÔØ$ˆDÔØˆFˆFð	øøøð !ˆÔØ&+ˆÔ#Ý(Ô2Ñ4Ô4ˆÔØ*.ˆÔÝ).¬©¬ˆÔð 	Œ×ÒÑÔÐØŒ×$Ò$ TÑ*Ô*Ð*ØŒ×Ò˜x¨Ñ.Ô.Ð.ØŒ×Ò˜dœmÐÑ,Ô,Ð,ØŒ×Ò˜"˜dÔ4Ñ5Ô5Ð5ð	ØŒK×(Ò(Ñ*Ô*Ð*Ø”;×'Ò'Ñ)Ô)ˆDÝ"Ô,¨TÑ2Ô2ˆKØ)4Ð>˜+˜+¸$ˆKØ*ˆDÔåÔ*¨;½Ô8LÑMÔMˆEÝÔ"ØÝÔ$Ø�Ñ%Õ(9Ñ9Õ<LÑLñô ð ð
 +/ˆDÔ'å# K°Ñ6Ô6Ð6Ð6øÝð 	ð 	ð 	ØˆDð	øøøõ œ(ØŒKØŒ}Ø $Ô 1Ø ØØð
ñ 
ô 
ˆŒð 	Œ×Ò¥"¤'°$ÐÑ7Ô7Ð7õ œH T¤_¸¼ÐGÑGÔGˆÔØÔ×Ò¥B¤D¨vÐÑ6Ô6Ð6åœ8ØÔØØ(ØØØŒ}ð
ñ 
ô 
ˆÔõ œ(ØÔØØ)ØŒØŒ}ØÝ”Ið
ñ 
ô 
ˆŒð 	Œ×Ò¥"¤$ÐÑ'Ô'Ð'õ œØÔØØ ØÔ"ØŒ}ØÝ”Ið
ñ 
ô 
ˆŒð 	Œ×Ò¥¤¨FÐÑ3Ô3Ð3õ œ( 4¤?°t´}ÐEÑEÔEˆŒØŒ×Ò¥"¤'°$ÐÑ7Ô7Ð7Ð7Ð7s%   ™AA! Á!&BÂ
BÅ"CH$ È$
H1È0H1r   ÚNonec                óÌ  — | j         s| j        €dS 	 | j        sQ| j                             ¦   «          | j                             ¦   «         }t          j        |¦  «        }|r|n|| _        | j        }|r`t          j        |t          j	        ¦  «        }t          j
        |t          j	        |t          z  t          z  t          z  ¦  «         d| _         dS dS # t          $ r Y dS w xY w)uV   Thiáº¿t láº­p kiá»ƒu cá»­a sá»• Windows Click-through khÃ´ng cÆ°á»›p focus cá»§a game.NT)rE   rA   rC   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r   )rm   r   rn   rC   ro   s        r   Ú_apply_click_throughz'ItemTooltipOverlay._apply_click_throughµ   s  € àÔ&ð 	¨$¬+Ð*=ØˆFð	ØÔ#ð HØ”×,Ò,Ñ.Ô.Ð.Ø”{×+Ò+Ñ-Ô-�Ý&Ô0°Ñ6Ô6�Ø2=Ð#G ; ;À4�Ô àÔ*ˆKØð 3Ý Ô.¨{½HÔ<PÑQÔQ�ÝÔ&ØÝÔ(Ø�MÑ)Õ,=Ñ=Õ@PÑPñô ð ð
 /3�Ô+Ð+Ð+ð3ð 3øõ ð 	ð 	ð 	ØˆDˆDð	øøøs   ’B?C Ã
C#Ã"C#c                óî  — 	 | j                              ¦   «         ss| j                              ¦   «         \  }}|dk    r|\  }}}|                      |||¦  «         n|dk    r|                      ¦   «          | j                              ¦   «         ¯sn# t
          $ r Y nw xY w| j        �O	 | j                             ¦   «         r"| j                             d| j	        ¦  «         dS dS # t
          $ r Y dS w xY wdS )ud   Ä�á»�c vÃ  xá»­ lÃ½ sá»± kiá»‡n hiá»ƒn thá»‹/áº©n tá»« luá»“ng worker an toÃ n trÃªn Tkinter thread.ÚshowÚhideNr#   )
rK   ÚemptyÚ
get_nowaitÚ_show_internalÚ_hide_internalr   rA   Úwinfo_existsrQ   rR   )rm   ÚactionÚargsÚreportÚsxÚsys         r   rR   z$ItemTooltipOverlay._poll_event_queueÍ   s;  € ð		ØÔ'×-Ò-Ñ/Ô/ð *Ø#Ô0×;Ò;Ñ=Ô=‘�˜Ø˜VÒ#Ð#Ø%)‘N�F˜B Ø×'Ò'¨°°BÑ7Ô7Ð7Ð7Ø˜vÒ%Ð%Ø×'Ò'Ñ)Ô)Ð)ð Ô'×-Ò-Ñ/Ô/ð *øøõ ð 	ð 	ð 	ØˆDð	øøøàŒ;Ð"ðØ”;×+Ò+Ñ-Ô-ð BØ”K×%Ò% b¨$Ô*@ÑAÔAÐAÐAÐAðBð Bøåð ð ð Ø��ðøøøð	 #Ð"s$   ‚BB Â
BÂBÂ'9C$ Ã$
C2Ã1C2r~   r   Úscreen_xr   Úscreen_yc                óÄ   — | j         �|€dS t          j        ¦   «         | j        k    r!| j                             d|||ff¦  «         dS |                      |||¦  «         dS )uR   Hiá»ƒn thá»‹ overlay vá»›i ná»™i dung bÃ¡o cÃ¡o táº¡i vá»‹ trÃ­ con trá»� chuá»™t.Nru   )rA   rF   rG   rH   rK   Úputry   )rm   r~   r�   r‚   s       r   ru   zItemTooltipOverlay.showà   ss   € àŒ;Ð & .ØˆFõ ÔÑ Ô  DÔ$8Ò8Ð8ØÔ×!Ò! 6¨F°H¸hÐ+GÐ"HÑIÔIÐIÐIÐIà×Ò ¨°(Ñ;Ô;Ð;Ð;Ð;ó    c           
     ó  ‡— | j                              |j        | j        ¦  «        }| j                             |j        p|j        |¬¦  «         g }|j        t          j
        k    r"|                     |j        p|j        ¦  «         n;|                     |j        j                             ¦   «         › d|j        › �¦  «         |j        dk    r|                     d|j        › �¦  «         |j        dk    r|                     d|j        › d�¦  «         d                     |¦  «        }| j                             |¬¦  «         |j        r@| j                             d	d
| j        ¬¦  «         | j                             ddd¬¦  «         n| j                             ¦   «          | j                             ¦   «         D ]}|                     ¦   «          Œt7          j        | j        d| j        ¬¦  «        }|                     t6          j        d¬¦  «         d„ |j         D ¦   «         }	d„ |j         D ¦   «         }
|	�r/|	D ]è}|j!         "                    ¦   «         ŠtG          ˆfd„dD ¦   «         ¦  «        r| j$        }nU|j%        tL          j'        tL          j(        fv r| j$        }n.|j%        tL          j)        tL          j*        fv r| j        }n| j+        }t7          j,        | j        |j!        d|| j-        dt6          j.        ¬¦  «        }|                     t6          j        d¬¦  «         Œé|
rBt7          j        | j        d| j        ¬¦  «        }|                     t6          j        d¬¦  «         |	r|
n|j         }|D ]É}|j%        tL          j)        tL          j*        fv r| j        }nK|j%        tL          j'        tL          j(        fv r| j$        }n$|j%        tL          j/        k    r| j0        }n| j1        }t7          j,        | j        |j!        d|| j-        dt6          j.        ¬¦  «        }|                     t6          j        d¬¦  «         ŒÊ|j        t          j
        k    r·|j2        dk    s|j3        dk    r¡|j2        dk    r|j3        dk    rd|j3        › d|j2        › d�}n"|j2        dk    rd|j2        › d�}nd|j3        › d�}t7          j,        | j        |d | j0        | j-        dt6          j.        ¬¦  «        }|                     t6          j        d!¬¦  «         | j4         5                    ¦   «          | j6         7                    ¦   «         d"z   }| j6         8                    ¦   «         d"z   }| j4         9                    ¦   «         }| j4         :                    ¦   «         }||d#z  k    rtw          d$||z
  d%z
  ¦  «        }nty          ||z
  d$z
  |d&z   ¦  «        }tw          d'ty          ||d#z  z
  ||z
  d'z
  ¦  «        ¦  «        }| j4         =                    |› d(|› d|› d|› �¦  «         | j>        s|  ?                    ¦   «          | j>        r@t�          jA        | j>        t„          jC        ||||t„          jD        t„          jE        z  ¦  «         d)| _F        d S )*N)r4   r9   ú r   ziLvl: ú+z% Qualz | )r4   u   âš ï¸� NGUY HIá»‚Mz#3D1010)r4   r"   r9   g      ð?g        Úne)ÚrelxÚrelyr:   r$   )Úheightr"   )é   r3   r.   c                ó<   — g | ]}|j         t          j        k    ¯|‘ŒS © ©Ú
affix_typer   ÚIMPLICIT©Ú.0Úms     r   ú
<listcomp>z5ItemTooltipOverlay._show_internal.<locals>.<listcomp>  ó'   € Ð_Ð_Ð_˜1¸A¼LÍIÔL^Ò<^Ð<^�QÐ<^Ð<^Ð<^r…   c                ó<   — g | ]}|j         t          j        k    ¯|‘ŒS r�   r�   r“   s     r   r–   z5ItemTooltipOverlay._show_internal.<locals>.<listcomp>  r—   r…   c              3  ó    •K  — | ]}|‰v V — Œ	d S ©Nr�   )r”   ÚkÚlowers     €r   ú	<genexpr>z4ItemTooltipOverlay._show_internal.<locals>.<genexpr>  s'   øè è € Ð^Ð^ a�q˜E�zÐ^Ð^Ð^Ð^Ð^Ð^r…   )z	pack sizeÚquantityÚrarityzdrop chancer<   r7   r8   )r$   r$   u	   â€” CÃ²n z Open Prefix & u(    Open Suffix Ä‘á»ƒ Ä‘áº­p Rune/Exalt â€”u(    Open Prefix Ä‘á»ƒ Ä‘áº­p Rune/Exalt â€”)r0   r1   Úitalic)r3   r$   r&   r-   é   é   é#   r#   ÚxT)GÚRARITY_COLORSÚgetrŸ   rg   ri   rO   Ú	item_nameÚ
item_classÚcategoryr   ÚWAYSTONEÚappendÚ	base_typeÚvalueÚ
capitalizeÚ
item_levelÚqualityÚjoinrk   Úis_brickrf   Ú	RED_COLORÚplaceÚplace_forgetrl   Úwinfo_childrenÚdestroyr?   r^   ÚDIVIDER_COLORra   rd   Úordered_modifiersr4   rœ   ÚanyÚGREEN_COLORÚseverityr   ÚREWARDÚGOD_ROLLÚBRICKÚ	DANGEROUSrj   re   rP   rh   ÚCRAFTINGÚYELLOW_COLORÚNEUTRAL_COLORÚopen_suffixesÚopen_prefixesrA   rS   r`   Úwinfo_reqwidthÚwinfo_reqheightÚwinfo_screenwidthÚwinfo_screenheightÚmaxÚminÚgeometryrC   rs   rU   ÚSetWindowPosrX   ÚHWND_TOPMOSTÚSWP_NOACTIVATEÚSWP_SHOWWINDOWrD   )rm   r~   r�   r‚   Úrarity_colorÚ	sub_partsÚsub_textÚwidgetÚdiv1Ú	implicitsÚ	explicitsr•   ÚcolorÚm_lblÚdiv2Úmods_to_displayÚ
craft_textÚ	craft_lblÚreq_wÚreq_hÚswÚshÚtarget_xÚtarget_yrœ   s                           @r   ry   z!ItemTooltipOverlay._show_internalë   sÐ  ø€ àÔ)×-Ò-¨f¬m¸T¼_ÑMÔMˆØŒ×Ò FÔ$4Ð$I¸Ô8IÈlÐÑ[Ô[Ð[àˆ	ØŒ?�lÔ3Ò3Ð3Ø×Ò˜VÔ-ÐB°Ô1BÑCÔCÐCÐCà×Ò ¤Ô 3× >Ò >Ñ @Ô @ÐVÐVÀ6ÔCTÐVÐVÑWÔWÐWØÔ˜qÒ Ð Ø×ÒÐ9 fÔ&7Ð9Ð9Ñ:Ô:Ð:ØŒ>˜AÒÐØ×ÒÐ7 ¤Ð7Ð7Ð7Ñ8Ô8Ð8Ø—:’:˜iÑ(Ô(ˆØŒ×Ò 8ÐÑ,Ô,Ð,ð Œ?ð 	,ØÔ×#Ò#Ø)ØØ”>ð $ñ ô ð ð
 Ô×"Ò"¨°#¸dÐ"ÑCÔCÐCÐCàÔ×)Ò)Ñ+Ô+Ð+ð ”o×4Ò4Ñ6Ô6ð 	ð 	ˆFØ�NŠNÑÔÐÐõ Œx˜œ°°dÔ6HÐIÑIÔIˆØ�	Š	•r”t &ˆ	Ñ)Ô)Ð)ð `Ð_ Ô 8Ð_Ñ_Ô_ˆ	Ø_Ð_ Ô 8Ð_Ñ_Ô_ˆ	ð ñ 	2Øð 3ð 3�ØœŸš™œ�ÝÐ^Ð^Ð^Ð^Ð+]Ð^Ñ^Ô^Ñ^Ô^ð 0Ø Ô,�E�EØ”ZÕ$6Ô$=Õ?QÔ?ZÐ#[Ð[Ð[Ø Ô,�E�EØ”ZÕ$6Ô$<Õ>PÔ>ZÐ#[Ð[Ð[Ø œN�E�Eà Ô/�EåœØ”OØœØ(ØØ”}Ø#ÝœIðñ ô �ð —
’
¥¤¨6�
Ñ2Ô2Ð2Ð2ð ð 2Ý”x ¤¸¸dÔ>PÐQÑQÔQ�Ø—	’	�rœt¨&�	Ñ1Ô1Ð1ð (1ÐN˜)˜)°fÔ6NˆØ ð 	/ð 	/ˆAØŒzÕ0Ô6Õ8JÔ8TÐUÐUÐUØœ��Ø”Õ 2Ô 9Õ;MÔ;VÐWÐWÐWØÔ(��Ø”Õ1Ô:Ò:Ð:ØÔ)��àÔ*�å”HØ”Ø”VØ$ØØ”=ØÝœ	ðñ ô ˆEð �JŠJ�BœD vˆJÑ.Ô.Ð.Ð.ð Œ?�lÔ3Ò3Ð3¸Ô9MÐPQÒ9QÐ9QÐU[ÔUiÐlmÒUmÐUmØÔ# aÒ'Ð'¨FÔ,@À1Ò,DÐ,Dð M¨Ô)=ð  Mð  MÈfÔNbð  Mð  Mð  M�
�
ØÔ%¨Ò)Ð)Øg¨Ô)=ÐgÐgÐg�
�
àg¨Ô)=ÐgÐgÐg�
åœØ”ØØ.ØÔ$Ø”=ØÝœ	ðñ ô ˆIð �NŠN¥¤¨6ˆNÑ2Ô2Ð2ð 	Œ×$Ò$Ñ&Ô&Ð&Ø”×.Ò.Ñ0Ô0°2Ñ5ˆØ”×/Ò/Ñ1Ô1°BÑ6ˆàŒ[×*Ò*Ñ,Ô,ˆØŒ[×+Ò+Ñ-Ô-ˆà�b˜A‘gÒÐÝ˜2˜x¨%Ñ/°"Ñ4Ñ5Ô5ˆHˆHå˜2 ™:¨™?¨H°r©MÑ:Ô:ˆHå�r�3˜x¨%°1©*Ñ4°b¸5±jÀ2±oÑFÔFÑGÔGˆàŒ×Ò ÐEÐE¨ÐEÐE°ÐEÐE¸8ÐEÐEÑFÔFÐFØÔð 	(Ø×%Ò%Ñ'Ô'Ð'àÔð 		ÝÔ!ØÔ ÝÔ%ØØØØÝÔ'­(Ô*AÑAñô ð ð  ˆÔÐÐr…   c                ó°   — | j         €dS t          j        ¦   «         | j        k    r| j                             d¦  «         dS |                      ¦   «          dS )u   áº¨n overlay tá»©c thÃ¬ (0ms).N)rv   r�   )rA   rF   rG   rH   rK   r„   rz   ©rm   s    r   rv   zItemTooltipOverlay.hidez  s[   € àŒ;ÐØˆFåÔÑ Ô  DÔ$8Ò8Ð8ØÔ×!Ò! ,Ñ/Ô/Ð/Ð/Ð/à×ÒÑ!Ô!Ð!Ð!Ð!r…   c                ó  — | j         rx| j        r6	 t          j        | j        t          j        ¦  «         nB# t          $ r Y n6w xY w| j        r+	 | j                             ¦   «          n# t          $ r Y nw xY wd| _         d S d S )NF)	rD   rC   rU   Ú
ShowWindowrX   ÚSW_HIDEr   rA   rL   rå   s    r   rz   z!ItemTooltipOverlay._hide_internal„  s·   € ØÔð 	%ØÔð 	ðÝÔ'¨Ô(8½(Ô:JÑKÔKÐKÐKøÝ ð ð ð Ø�Dðøøøà”ð ðØ”K×(Ò(Ñ*Ô*Ð*Ð*øÝ ð ð ð Ø�Dðøøøà$ˆDÔÐÐð	%ð 	%s!   �$5 µ
AÁAÁA' Á'
A4Á3A4r   c                ó   — | j         S rš   )rD   rå   s    r   Ú
is_visiblezItemTooltipOverlay.is_visible’  s   € àÔÐr…   c                ó\   — | j         �"| j        r| j                              ¦   «          dS dS dS )u'   Cháº¡y vÃ²ng láº·p giao diá»‡n Tkinter.N)r   r>   Úmainlooprå   s    r   rì   zItemTooltipOverlay.mainloop–  s9   € àŒ9Ð  T¤_Ð ØŒI×ÒÑ Ô Ð Ð Ð ð !Ð Ð Ð r…   rš   )r   r    ©r   rq   )r~   r   r�   r   r‚   r   r   rq   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rP   r_   r¸   rg   r»   rÂ   r³   rÃ   rj   r	   ÚNORMALÚMAGICÚRAREÚUNIQUEr¥   rp   rs   rR   ru   ry   rv   rz   Úpropertyrê   rì   r�   r…   r   r   r   8   sE  € € € € € ðð ð €HØ€LØ€MØ€JØ€KØ€LØ€IØ€MØ€Nð 	Ô˜9ØÔ˜)ØŒ˜ØÔ˜9ð	€Mðe8ð e8ð e8ð e8ð e8ðNð ð ð ð0ð ð ð ð&	<ð 	<ð 	<ð 	<ðM ð M ð M ð M ð^"ð "ð "ð "ð%ð %ð %ð %ð ð ð  ð  ñ „Xð ð!ð !ð !ð !ð !ð !r…   r   rq   c                 óª  ‡— ddl m}  t          dd¬¦  «         t          dd¬¦  «         t          dd¬¦  «         t          dd¬¦  «         t          dd¬¦  «         t          ¦   «         Š‰j        €%t          d
d¬¦  «         t          j        d¦  «         dˆfd„}t          dd¬¦  «          | |‰j        dd¬¦  «        }|                     ¦   «          t          dd¬¦  «         t          dd¬¦  «         t          dd¬¦  «         t          dd¬¦  «         t          dd¬¦  «         t          dd¬¦  «         	 ‰ 	                    ¦   «          n# t          $ r Y nw xY wt          dd¬¦  «         |                     ¦   «          t          dd¬¦  «         d	S # t          dd¬¦  «         |                     ¦   «          t          dd¬¦  «         w xY w)u2   Cháº¡y Ä‘á»™c láº­p Auto-Hover Item Inspector HUD.r   )ÚItemHoverWatcherz<============================================================T©Úflushz8  Poe2VisualTool Universal Auto-Hover Item Inspector HUDu9     Báº£n quyá»�n 2026 - Thá»¥ Ä‘á»™ng 100% (Zero-Ban Risk)u9   [*] Khá»Ÿi táº¡o giao diá»‡n HUD Layered Click-Through...Nu6   [!] KhÃ´ng thá»ƒ táº¡o cá»­a sá»• giao diá»‡n Tkinter.r$   r~   r   r¤   r   Úyr   rq   c                ó  •— t          d|› d|› d| j        › d| j        › d| j        › dt	          | j        ¦  «        › dt	          | j        ¦  «        › dt	          | j        ¦  «        › �d	¬
¦  «         ‰                     | ||¦  «         d S )Nz[INSPECTED @ (ú,z)] z [z] | Score: u   /100 | ðŸŸ¢ Xanh: u    | ðŸŸ¡ VÃ ng: u    | ðŸ”´ Ä�á»�: Trù   )	Úprintr§   r¨   Úquality_scoreÚlenÚ
green_modsÚyellow_modsÚred_modsru   )r~   r¤   rû   Úoverlays      €r   Úhandle_inspectz&run_standalone.<locals>.handle_inspect«  sâ   ø€ Ýð@˜Qð @ð @ ð @ð @ vÔ'7ð @ð @¸6Ô;Lð @ð @ØÔ*ð@ð @å˜fÔ/Ñ0Ô0ð@ð @åADÀVÔEWÑAXÔAXð@ð @åilÐmsÔm|Ñi}Ôi}ð@ð @ð ð		
ñ 	
ô 	
ð 	
ð 	�Š�V˜Q Ñ"Ô"Ð"Ð"Ð"r…   uC   [*] Khá»Ÿi Ä‘á»™ng ItemHoverWatcher (Chu ká»³ 40Hz, Dwell 180ms)...g     €f@)Úon_item_inspectedÚon_cursor_movedÚdwell_time_msÚenable_focus_interlocku>   [+] Ä�Ãƒ Sáº´N SÃ€NG! HÃ£y chuyá»ƒn vÃ o game Path of Exile 2.u_       â€¢ RÃª chuá»™t dá»«ng yÃªn >= 180ms lÃªn báº¥t ká»³ mÃ³n Ä‘á»“ nÃ o Ä‘á»ƒ xem Ä‘Ã¡nh giÃ¡.uK       â€¢ Hoáº·c nháº¥n Ctrl+C / Ctrl+Alt+C thá»§ cÃ´ng Ä‘á»ƒ soi tá»©c thÃ¬.uB       â€¢ Di chuyá»ƒn chuá»™t ra ngoÃ i Ä‘á»ƒ tá»± Ä‘á»™ng áº©n HUD.u2   [*] Nháº¥n Ctrl+C trong console nÃ y Ä‘á»ƒ thoÃ¡t.u   [*] Ä�ang dá»«ng watcher...u   [+] Ä�Ã£ thoÃ¡t an toÃ n.)r~   r   r¤   r   rû   r   r   rq   )Ú src.assistant.item_hover_watcherrø   rþ   r   r   ÚsysÚexitrv   Ústartrì   ÚKeyboardInterruptÚstop)rø   r  Úwatcherr  s      @r   Úrun_standaloner  œ  sD  ø€ àAÐAÐAÐAÐAÐAå	ˆ(˜$ÐÑÔÐÝ	Ð
DÈDÐQÑQÔQÐQÝ	Ð
EÈTÐRÑRÔRÐRÝ	ˆ(˜$ÐÑÔÐÝ	Ð
EÈTÐRÑRÔRÐRå Ñ"Ô"€GØ„|ÐÝÐFÈdÐSÑSÔSÐSÝŒ�‰Œˆð#ð #ð #ð #ð #ð #õ 
Ð
OÐW[Ð\Ñ\Ô\Ð\ØÐØ(ØœØØ#ð	ñ ô €Gð ‡M‚M�O„O€Oå	Ð
JÐRVÐWÑWÔWÐWÝ	Ð
kÐswÐxÑxÔxÐxÝ	Ð
WÐ_cÐdÑdÔdÐdÝ	Ð
NÐVZÐ[Ñ[Ô[Ð[Ý	Ð
>ÀdÐKÑKÔKÐKÝ	ˆ(˜$ÐÑÔÐð7Ø×ÒÑÔÐÐøÝð ð ð Øˆðøøøõ 	Ð+°4Ð8Ñ8Ô8Ð8Ø�Š‰ŒˆÝÐ)°Ð6Ñ6Ô6Ð6Ð6Ð6øõ 	Ð+°4Ð8Ñ8Ô8Ð8Ø�Š‰ŒˆÝÐ)°Ð6Ñ6Ô6Ð6Ð6øøøs*   Ä=E ÅF Å
EÅF ÅEÅF Æ8GÚ__main__)T)r   r   r   r   r   r   rí   )rñ   Ú
__future__r   rI   r  rF   Útkinterr?   Útypingr   rX   rU   Úsrc.assistant.item_inspectorr   r   r   r   r	   r
  r
   r[   r\   r]   r   r   r   r   r  rî   r�   r…   r   ú<module>r     sr  ððð ð  #Ð "Ð "Ð "Ð "Ð "à €€€Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð GÐ FÐ FÐ FÐ FÐ Fà€ØÐ ØÐ ð €Ø#Ð ðð ð ð ð ða!ð a!ð a!ð a!ð a!ñ a!ô a!ð a!ðH/7ð /7ð /7ð /7ðd ˆzÒÐØ€NÑÔÐÐÐð Ðr…   