+
    i]z                    "   R t ^ RIHt ^ RIHt ]'       g   R]9   d   ^RIH	t	 M^ RI	t	 ^ RI
tR tR tR tR	 t ! R
 R]4      t^ RIt]	P(                  t^ RIHtHtHt ^ RIt ! R R]4      t]	P8                  ! ]4       R R ltR R lt]	P>                  t ]	P@                  t  RR R llt!]	PD                  t" ]	PF                  t# ]	PH                  t$ ]	PJ                  t% ]	PL                  t& ]	PN                  t' ]	PP                  t( ]	PR                  t) ]	PT                  t* ]	PV                  t+ ]	PX                  t, ]	PZ                  t- ]	P\                  t. ]	P^                  t/ ]	P`                  t0 ]	Pb                  t1 ]	Pd                  t2 RR R llt3R R lt4R R lt5R R lt6R R lt7R R  lt8]	Pr                  t9 ]	Pt                  t: ]	Pv                  t; ]	Px                  t< ]	Pz                  t= ]	P|                  t> ]	P~                  t? ]	P                  t@ ]	P                  tA RR! R" lltBR# R$ ltCR% R& ltDR' R( ltERR) R* lltFR+ R, ltGR- R. ltHR/ R0 ltIR1 R2 ltJR3 R4 ltKR5 R6 ltLR7 R8 ltMR9 R: ltNR; R< ltOR= R> ltP]	P                  tQ ]	P                  tR ]	P                  tS ]	P                  tT ]	P                  tU ]	P                  tV ]	P                  tW ]	P                  tX ]	P                  tY ]	P                  tZ ]	P                  t[ ]	P                  t\ ]	P                  t] ]	P                  t^ ]	P                  t_ ]	P                  t` ]	P                  ta ]	P                  tb ]	P                  tc ]	P                  td RR? R@ llteRRA RB lltfRRC RD lltgRRE RF llthRRG RH lltiRRI RJ lltjRRK RL lltkRM RN ltl]	P                  tm ]	P                  tn ]	P                  to RRO RP lltpRRQ RR lltq]	P                  tr ]	P                  ts ]	P                  tt ]	P                  tu ]	P                  tv ]	P                  tw ]	P                  tx ]	P                  ty ]	P                  tz ]	P                  t{ RS RT lt|RU RV lt}RW RX lt~RY RZ ltR[ R\ ltR] R^ ltR_ R` ltRa Rb ltRc Rd ltRe Rf ltRg Rh ltRi Rj ltRk Rl ltRm Rn lt]	EP                  t ]	EP                  t ]	EP                  t ]	EP                  t  ! Ro Rp]4      t]	EP                  ! ]4       Rq Rr ltRs Rt ltRu Rv ltRw Rx lt]	EP(                  t ]	EP*                  t ]	EP,                  t ]	EP.                  t ]	EP0                  t ]	EP2                  t ]3Ry Rz lltR{ R| ltRR} R~ llt]	EP:                  t ]	EP<                  t ]	EP>                  t]	EP@                  t]	EPB                  t]	EPD                  t]	EPF                  t]	EPH                  t]	EPJ                  t]	EPL                  t]	EPN                  t]	EPP                  t]	EPR                  t]	EPT                  t]	EPV                  t]	EPX                  t]	EPZ                  t]	EP\                  t]	EP^                  t]	EP`                  t]	EPb                  t]	EPd                  t]	EPf                  t]	EPh                  t]	EPj                  t]	EPl                  t]	EPn                  t]	EPp                  t]	EPr                  t]	EPt                  t]	EPv                  t]	EPx                  t]	EPz                  t]	EP|                  t]	EP~                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  t]	EP                  tR R lEt R R lEtRR R llEtRR R llEt^ REIEt^ REIEt^ REIEt ! R R]4      EtR Et]	EP                  Et	E]	EP                  Et
E]	EP                  EtE]	EP                  EtE]	EP                  EtE]	EP                  EtE]	EP                  EtE]	EP                   EtE]	EP"                  EtR#   ] d	    ^ RIt EL_i ; i)a  Functions that deal with names.

A non-tail address of the program may have a name. Tail addresses (i.e. the addresses in the middle of an instruction or data item) cannot have names.

.. tip::
   The `IDA Domain API <https://ida-domain.docs.hex-rays.com/>`_ simplifies
   common tasks and provides better type hints, while remaining fully compatible
   with IDAPython for advanced use cases.

   For name and symbol operations, see :mod:`ida_domain.names`.)annotations)version_info.)	_ida_nameNc                     R V P                   P                  4       ,           pRV P                  P
                  : RV P                  P                  : RV: R2#   \        P                   d    Rp LPi ; i)z	proxy of  <r   z; z >)this__repr____builtin__	Exception	__class__
__module____name__)selfstrthiss   & @C:\Users\user\Downloads\ida93sp2\portable_win\python\ida_name.py
_swig_reprr      sg    		 2 2 44 "^^669     s   !A A43A4c                   a  V 3R  lpV# )c                  < VR 8X  d   S! WV4       R# VR8X  d   V P                   P                  V4       R# \        W4      '       d5   \        \	        \        V 4      V4      \        4      '       d   S! WV4       R# \        RV ,          4      h)r	   thisownz(You cannot add instance attributes to %sN)r	   ownhasattr
isinstancegetattrtypepropertyAttributeError)r   namevaluesets   &&&r   set_instance_attrE_swig_setattr_nondynamic_instance_variable.<locals>.set_instance_attr"   su    6>E"YIIMM% T  ZT
D0I& &E" !K"       )r    r!   s   f r   *_swig_setattr_nondynamic_instance_variabler%       s    
 r#   c                   a  V 3R  lpV# )c                   < \        W4      '       d+   \        \        W4      \        4      '       g   S! WV4       R# \	        R V ,          4      h)z%You cannot add class attributes to %sN)r   r   r   r   r   )clsr   r   r    s   &&&r   set_class_attr?_swig_setattr_nondynamic_class_variable.<locals>.set_class_attr2   s:    3j1CX&N&N5! !H3!NOOr#   r$   )r    r)   s   f r   '_swig_setattr_nondynamic_class_variabler+   0   s    P
 r#   c                   a  V 3R lpV# )zlClass decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclassc                p   < S! V P                   V P                  V P                  P                  4       4      # N)r   	__bases____dict__copy)r(   	metaclasss   &r   wrapper$_swig_add_metaclass.<locals>.wrapper=   s'    s}}cll6G6G6IJJr#   r$   )r2   r3   s   f r   _swig_add_metaclassr5   :   s    KNr#   c                  >    ] tR t^BtRt]! ]P                  4      tRtR# )_SwigNonDynamicMetazKMeta class to enforce nondynamic attributes (no new attributes) for a classr$   N)	r   r   __qualname____firstlineno____doc__r+   r   __setattr____static_attributes__r$   r#   r   r7   r7   B   s    U9$:J:JKKr#   r7   )TupleListUnionc                     ] tR t^Mt]! R R RR7      t]tR t]	P                  tR R ltR R	 ltR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ lt R0 R1 lt!R2 R3 lt"R4 R5 lt#]$PJ                  t&]$PN                  t(]$PR                  t*R6t+R7# )8ea_name_vec_tc                	6    V P                   P                  4       # r.   r	   r   xs   &r   <lambda>ea_name_vec_t.<lambda>N       r#   c                	8    V P                   P                  V4      # r.   rC   rE   vs   &&r   rF   rG   N       AFFJJqMr#   The membership flagdocc                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   ea_name_vec_t_swiginitnew_ea_name_vec_tr   argss   &*r   __init__ea_name_vec_t.__init__R   s"    ((y/J/J0 	r#   c                   V ^8  d   QhRR/# )   returnz'ea_name_t &'r$   )formats   "r   __annotate__ea_name_vec_t.__annotate__W   s     > > >r#   c                	2    \         P                  ! V .VO5!  # r.   )r   ea_name_vec_t_push_backrS   s   &*r   	push_backea_name_vec_t.push_backW   s    00===r#   c                   V ^8  d   QhRR/# rX   rY   Noner$   )rZ   s   "r   r[   r\   Z        6 6 6r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t_pop_backr   s   &r   pop_backea_name_vec_t.pop_backZ       //55r#   c                   V ^8  d   QhRR/# rX   rY   intr$   )rZ   s   "r   r[   r\   ]   s     2 2S 2r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t_sizerg   s   &r   sizeea_name_vec_t.size]   s    ++D11r#   c                   V ^8  d   QhRR/# rX   rY   boolr$   )rZ   s   "r   r[   r\   `        3 3d 3r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t_emptyrg   s   &r   emptyea_name_vec_t.empty`       ,,T22r#   c                    V ^8  d   QhRRRR/# )rX   _idxrm   rY   'ea_name_t const &'r$   )rZ   s   "r   r[   r\   c   s     6 6s 61 6r#   c                	.    \         P                  ! W4      # r.   )r   ea_name_vec_t_at)r   r|   s   &&r   atea_name_vec_t.atc   s    ))$55r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   f   s     4 4t 4r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t_qclearrg   s   &r   qclearea_name_vec_t.qclearf   s    --d33r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   i   ru   r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t_clearrg   s   &r   clearea_name_vec_t.cleari   rz   r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   l   s     ; ;d ;r#   c                	2    \         P                  ! V .VO5!  # r.   )r   ea_name_vec_t_resizerS   s   &*r   resizeea_name_vec_t.resizel   s    --d:T::r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   o   s     9 9D 9r#   c                	2    \         P                  ! V .VO5!  # r.   )r   ea_name_vec_t_growrS   s   &*r   growea_name_vec_t.growo   s    ++D8488r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r\   r   s     6 6 6r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t_capacityrg   s   &r   capacityea_name_vec_t.capacityr   rj   r#   c                    V ^8  d   QhRRRR/# )rX   cntrm   rY   rc   r$   )rZ   s   "r   r[   r\   u   s     : :3 :$ :r#   c                	.    \         P                  ! W4      # r.   )r   ea_name_vec_t_reserve)r   r   s   &&r   reserveea_name_vec_t.reserveu   s    ..t99r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r\   x   rd   r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t_truncaterg   s   &r   truncateea_name_vec_t.truncatex   rj   r#   c                    V ^8  d   QhRRRR/# )rX   r'ea_name_vec_t'rY   rc   r$   )rZ   s   "r   r[   r\   {   s     5 5o 5 5r#   c                	.    \         P                  ! W4      # r.   )r   ea_name_vec_t_swap)r   r   s   &&r   swapea_name_vec_t.swap{   s    ++D44r#   c                   V ^8  d   QhRR/# )rX   rY   z'ea_name_t *'r$   )rZ   s   "r   r[   r\   ~   s     5 5 5r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t_extractrg   s   &r   extractea_name_vec_t.extract~       ..t44r#   c               $    V ^8  d   QhRRRRRR/# )rX   s'ea_name_t'lenrm   rY   rc   r$   )rZ   s   "r   r[   r\      s!     < < <# < <r#   c                	0    \         P                  ! WV4      # r.   )r   ea_name_vec_t_inject)r   r   r   s   &&&r   injectea_name_vec_t.inject   s    --ds;;r#   c                   V ^8  d   QhRR/# rX   rY   z&'qvector< ea_name_t >::const_iterator'r$   )rZ   s   "r   r[   r\      s     : :C :r#   c                	2    \         P                  ! V .VO5!  # r.   )r   ea_name_vec_t_beginrS   s   &*r   beginea_name_vec_t.begin       ,,T9D99r#   c                   V ^8  d   QhRR/# r   r$   )rZ   s   "r   r[   r\      s     8 8A 8r#   c                	2    \         P                  ! V .VO5!  # r.   )r   ea_name_vec_t_endrS   s   &*r   endea_name_vec_t.end   s    **47$77r#   c               $    V ^8  d   QhRRRRRR/# )rX   itr   rE   rY    'qvector< ea_name_t >::iterator'r$   )rZ   s   "r   r[   r\      s"     ; ; ; ;,;r#   c                	0    \         P                  ! WV4      # r.   )r   ea_name_vec_t_insert)r   r   rE   s   &&&r   insertea_name_vec_t.insert   s    --d::r#   c                   V ^8  d   QhRR/# )rX   rY   r   r$   )rZ   s   "r   r[   r\      s     : := :r#   c                	2    \         P                  ! V .VO5!  # r.   )r   ea_name_vec_t_eraserS   s   &*r   eraseea_name_vec_t.erase   r   r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r\      s     5 5 5r#   c                	.    \         P                  ! V 4      # r.   )r   ea_name_vec_t___len__rg   s   &r   __len__ea_name_vec_t.__len__   r   r#   c                    V ^8  d   QhRRRR/# )rX   irm   rY   r}   r$   )rZ   s   "r   r[   r\      s     < <S <$7 <r#   c                	.    \         P                  ! W4      # r.   )r   ea_name_vec_t___getitem__)r   r   s   &&r   __getitem__ea_name_vec_t.__getitem__   s    224;;r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   rm   rK   r   rY   rc   r$   )rZ   s   "r   r[   r\      s!     ? ?S ?[ ?D ?r#   c                	0    \         P                  ! WV4      # r.   )r   ea_name_vec_t___setitem__)r   r   rK   s   &&&r   __setitem__ea_name_vec_t.__setitem__   s    224A>>r#   c                    V ^8  d   QhRRRR/# )rX   rE   r   rY   rc   r$   )rZ   s   "r   r[   r\      s     7 7 7t 7r#   c                	.    \         P                  ! W4      # r.   )r   ea_name_vec_t_appendr   rE   s   &&r   appendea_name_vec_t.append       --d66r#   c                    V ^8  d   QhRRRR/# )rX   rE   r   rY   rc   r$   )rZ   s   "r   r[   r\      s     7 7 74 7r#   c                	.    \         P                  ! W4      # r.   )r   ea_name_vec_t_extendr   s   &&r   extendea_name_vec_t.extend   r   r#   r$   N),r   r   r8   r9   r   r   r   r
   rU   r   delete_ea_name_vec_t__swig_destroy__r_   rh   rp   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
ida_idaapi_qvector_frontfront_qvector_backback_bounded_getitem_iterator__iter__r<   r$   r#   r   rA   rA   M   s    -/I!#GH !55>623643;96:655<:8;:5<?77%%E##D33Hr#   rA   c                    V ^8  d   QhRRRR/# rX   eaida_idaapi.ea_trY   strr$   )rZ   s   "r   r[   r[      s     " " "C "r#   c                .    \         P                  ! V 4      # r.   )r   get_namer   s   &r   r   r      s    b!!r#   c                    V ^8  d   QhRRRR/# r   r$   )rZ   s   "r   r[   r[      s     * * *C *r#   c                .    \         P                  ! V 4      # r.   )r   get_colored_namer   s   &r   r  r         %%b))r#   c               (    V ^8  d   QhRRRRRRRR/# 	rX   r   r   r   r   flagsrm   rY   rt   r$   )rZ   s   "r   r[   r[      s(     / / / /C /T /r#   c                0    \         P                  ! WV4      # )a  Set or delete name of an item at the specified address. An item can be anything: instruction, function, data byte, word, string, structure, etc... Include name into the list of names. 
        
:param ea: linear address. do nothing if ea is not valid (return 0). tail bytes can't have names.
:param name: new name.
* nullptr: do nothing (return 0).
* "" : delete name.
* otherwise this is a new name.
:param flags: Set name flags. If a bit is not specified, then the corresponding action is not performed and the name will retain the same bits as before calling this function. For new names, default is: non-public, non-weak, non-auto.
:returns: 1: ok, name is changed
:returns: 0: failure, a warning is displayed)r   set_namer   r   r  s   &&&r   r  r     s     b..r#   c               (    V ^8  d   QhRRRRRRRR/# r  r$   )rZ   s   "r   r[   r[      s(     1 1? 1# 1c 1t 1r#   c                0    \         P                  ! WV4      # r.   )r   
force_namer	  s   &&&r   r  r     s    %00r#   c                    V ^8  d   QhRRRR/# rX   r   r   rY   rt   r$   )rZ   s   "r   r[   r[      s     ) ) )4 )r#   c                .    \         P                  ! V 4      # r.   )r   del_global_namer   s   &r   r  r     s    $$R((r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r[          ( ( ($ (r#   c                .    \         P                  ! V 4      # r.   )r   del_local_namer   s   &r   r  r        ##B''r#   c               $    V ^8  d   QhRRRRRR/# )rX   _fromr   r   rY   rt   r$   )rZ   s   "r   r[   r[     s!     / // / /$ /r#   c                .    \         P                  ! W4      # )zGive an autogenerated (dummy) name. Autogenerated names have special prefixes (loc_...). 
        
:param ea: linear address
:returns: 1: ok, dummy name is generated or the byte already had a name
:returns: 0: failure, invalid address or tail byte)r   set_dummy_namer  r   s   &&r   r  r         ##E..r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r[     r  r#   c                .    \         P                  ! V 4      # r.   )r   make_name_autor   s   &r   r  r    r  r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r[     r  r#   c                .    \         P                  ! V 4      # r.   )r   make_name_userr   s   &r   r!  r!    r  r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   cp'wchar32_t'kind'nametype_t'dataz'void *'rY   rt   r$   )rZ   s   "r   r[   r[   4  s)     1 1K 1| 18 11r#   c                0    \         P                  ! WV4      # )z8Is the given codepoint acceptable in the given context?
)r   is_valid_cp)r#  r%  r'  s   &&&r   r)  r)  4  s       400r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r[   ;       , ,T ,r#   c                 *    \         P                  ! V !  # )zMark the given codepoint (or range) as acceptable or unacceptable in the given context If 'endcp' is not BADCP, it is considered to be the end of the range: [cp, endcp), and is not included in the range 
        )r   set_cp_validityrT   s   *r   r-  r-  ;       $$d++r#   c                   V ^8  d   QhRR/# rs   r$   )rZ   s   "r   r[   r[   A  r+  r#   c                 *    \         P                  ! V !  # )zIs the given codepoint (or range) acceptable in the given context? If 'endcp' is not BADCP, it is considered to be the end of the range: [cp, endcp), and is not included in the range 
        )r   get_cp_validityr.  s   *r   r2  r2  A  r/  r#   c                    V ^8  d   QhRRRR/# rX   r#  r$  rY   rt   r$   )rZ   s   "r   r[   r[   G  s     % %K %4 %r#   c                .    \         P                  ! V 4      # )zLCan a character appear in a name? (present in ::NameChars or ::MangleChars)
)r   is_ident_cpr#  s   &r   r6  r6  G  s       $$r#   c               $    V ^8  d   QhRRRRRR/# )rX   r#  r$  specific_rangesz'rangeset_crefvec_t const *'rY   rt   r$   )rZ   s   "r   r[   r[   M  s#     7 7[ 7 7)-7r#   c                .    \         P                  ! W4      # )a   Can a character appear in a string literal (present in ::StrlitChars) If 'specific_ranges' are specified, those will be used instead of the ones corresponding to the current culture (only if ::StrlitChars is configured to use the current culture) 
        )r   is_strlit_cp)r#  r9  s   &&r   r;  r;  M  s     !!"66r#   c                    V ^8  d   QhRRRR/# r4  r$   )rZ   s   "r   r[   r[   T  s     ' 'k 'T 'r#   c                .    \         P                  ! V 4      # )zACan a character be displayed in a name? (present in ::NameChars)
)r   is_visible_cpr7  s   &r   r>  r>  T  s     ""2&&r#   c                    V ^8  d   QhRRRR/# rX   r   r   rY   rt   r$   )rZ   s   "r   r[   r[   Z  s     $ $3 $$ $r#   c                .    \         P                  ! V 4      # )z+Is a valid name? (including ::MangleChars)
)r   is_identr   s   &r   rB  rB  Z  s     d##r#   c                    V ^8  d   QhRRRR/# r@  r$   )rZ   s   "r   r[   r[   `  s     $ $3 $$ $r#   c                .    \         P                  ! V 4      # )zIs valid user-specified name? (valid name & !dummy prefix). 
        
:param name: name to test. may be nullptr.
:returns: 1: yes
:returns: 0: no)r   is_unamerC  s   &r   rF  rF  `  s     d##r#   c                    V ^8  d   QhRRRR/# r@  r$   )rZ   s   "r   r[   r[   i  s     - -C -4 -r#   c                .    \         P                  ! V 4      # )ziIs valid type name? 
        
:param name: name to test. may be nullptr.
:returns: 1: yes
:returns: 0: no)r   is_valid_typenamerC  s   &r   rI  rI  i  s     &&t,,r#   c               $    V ^8  d   QhRRRRRR/# )rX   liner   rE   rm   rY   r$   )rZ   s   "r   r[   r[   r  s!     + +s +s +c +r#   c                .    \         P                  ! W4      # )zExtract a name or address from the specified string. 
        
:param line: input string
:param x: x coordinate of cursor
:returns: -1 if cannot extract. otherwise length of the name)r   extract_name)rK  rE   s   &&r   rM  rM  r  s     !!$**r#   c                    V ^8  d   QhRRRR/# rX   r   r   rY   rc   r$   )rZ   s   "r   r[   r[   {  s     # #/ #T #r#   c                .    \         P                  ! V 4      # )zKRemove name from the list of names 
        
:param ea: address of the name)r   	hide_namer   s   &r   rQ  rQ  {  s     r""r#   c                    V ^8  d   QhRRRR/# rO  r$   )rZ   s   "r   r[   r[     s     # #/ #T #r#   c                .    \         P                  ! V 4      # )z"Insert name to the list of names.
)r   	show_namer   s   &r   rT  rT    s     r""r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r   r   r   rY   r$   )rZ   s   "r   r[   r[     s!     . . .c ._ .r#   c                .    \         P                  ! W4      # )zGet the address of a name. This function resolves a name into an address. It can handle regular global and local names, as well as debugger names. 
        
:param name: any name in the program or nullptr
:returns: address of the name or BADADDR)r   get_name_ear  r   s   &&r   rW  rW    s    
   --r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r   torY   r$   )rZ   s   "r   r[   r[     s"     1 1O 1 11r#   c                .    \         P                  ! W4      # )zGet address of the name used in the expression for the address 
        
:param to: the referenced address
:returns: address of the name used to represent the operand)r   get_name_base_ea)r  rZ  s   &&r   r\  r\    s     %%e00r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r   r   r   rY   z
'uval_t *'r$   )rZ   s   "r   r[   r[     s!     1 1/ 1 1
 1r#   c                .    \         P                  ! W4      # )zGet value of the name. This function knows about: regular names, enums, special segments, etc. 
        
:param name: any name in the program or nullptr
:returns: Name value result codes)r   get_name_valuerX  s   &&r   r_  r_    s    
 ##E00r#   c               $    V ^8  d   QhRRRRRR/# rX   r   r   	gtn_flagsrm   rY   r   r$   )rZ   s   "r   r[   r[     s!     5 5 5S 5c 5r#   c                .    \         P                  ! W4      # r.   )r   get_visible_namer   rb  s   &&r   rd  rd    s    %%b44r#   c               $    V ^8  d   QhRRRRRR/# ra  r$   )rZ   s   "r   r[   r[     s!     3 3 33 3C 3r#   c                .    \         P                  ! W4      # r.   )r   get_short_namere  s   &&r   rh  rh    s    ##B22r#   c               $    V ^8  d   QhRRRRRR/# ra  r$   )rZ   s   "r   r[   r[     s!     2 2o 2# 23 2r#   c                .    \         P                  ! W4      # r.   )r   get_long_namere  s   &&r   rk  rk    s    ""211r#   c               $    V ^8  d   QhRRRRRR/# ra  r$   )rZ   s   "r   r[   r[     s!     ; ; ;3 ;C ;r#   c                .    \         P                  ! W4      # r.   )r   get_colored_short_namere  s   &&r   rn  rn    s    ++B::r#   c               $    V ^8  d   QhRRRRRR/# ra  r$   )rZ   s   "r   r[   r[     s!     : :o :# :3 :r#   c                .    \         P                  ! W4      # r.   )r   get_colored_long_namere  s   &&r   rq  rq    s    **299r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# 	rX   r   r   	inhibitorrm   demformrb  rY   r   r$   )rZ   s   "r   r[   r[     s8     K K? Ks KS KKKr#   c                0    \         P                  ! WW#4      # r.   )r   get_demangled_namer   rt  ru  rb  s   &&&&r   rw  rw    s    ''wJJr#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# rs  r$   )rZ   s   "r   r[   r[     s2      ? s  r#   c                2    \         P                  ! WVV4      # r.   )r   get_colored_demangled_namerx  s   &&&&r   r{  r{    s    //w r#   c               $    V ^8  d   QhRRRRRR/# )rX   r  r   r   rY   z	'color_t'r$   )rZ   s   "r   r[   r[     s!     / // / /) /r#   c                .    \         P                  ! W4      # )z`Calculate flags for get_ea_name() function.

Get name color. 
        
:param ea: linear address)r   get_name_colorr  s   &&r   r~  r~    r  r#   c               0    V ^8  d   QhRRRRRRRRRRRR	/# )
rX   r  r   nrm   r   offr  rY   r   r$   )rZ   s   "r   r[   r[     s9     	= 	= 	=S 	=o 	=	=	=	=r#   c                2    \         P                  ! WW#V4      # )a,  Convert address to name expression (name with a displacement). This function takes into account fixup information and returns a colored name expression (in the form <name> +/- <offset>). It also knows about structure members and arrays. If the specified address doesn't have a name, a dummy name is generated. 
        
:param n: number of referencing operand. for data items specify 0
:param ea: address to convert to name expression
:param off: the value of name expression. this parameter is used only to check that the name expression will have the wanted value. 'off' may be equal to BADADDR but this is discouraged because it prohibits checks.
:param flags: Name expression flags
:returns: < 0 if address is not valid, no segment or other failure. otherwise the length of the name expression in characters.)r   get_name_expr)r  r  r   r  r  s   &&&&&r   r  r    s     ""5Re<<r#   c               $    V ^8  d   QhRRRRRR/# )rX   r   r   r  rm   rY   r   r$   )rZ   s   "r   r[   r[     s!     6 6o 6c 6s 6r#   c                .    \         P                  ! W4      # )a  Get a nice colored name at the specified address. Ex:
* segment:sub+offset
* segment:sub:local_label
* segment:label
* segment:address
* segment:address+offset



:param ea: linear address
:param flags: Nice colored name flags
:returns: the length of the generated name in bytes.)r   get_nice_colored_name)r   r  s   &&r   r  r    s     **255r#   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )rX   dispz'adiff_t *'r  rm   pathz'tid_t const *'r  z'flags64_t'deltaz	'adiff_t'appzerort   rY   r   r$   )rZ   s   "r   r[   r[   N  sJ     P P{ Ps P/ PP(P37P;>Pr#   c                2    \         P                  ! WW#WE4      # )a  Append names of struct fields to a name if the name is a struct name. 
        
:param disp: displacement from the name
:param n: operand number in which the name appears
:param path: path in the struct. path is an array of id's. maximal length of array is MAXSTRUCPATH. the first element of the array is the structure id. consecutive elements are id's of used union members (if any).
:param flags: the input flags. they will be returned if the struct cannot be found.
:param delta: delta to add to displacement
:param appzero: should append a struct field name if the displacement is zero?
:returns: flags of the innermost struct member or the input flags)r   append_struct_fields)r  r  r  r  r  r  s   &&&&&&r   r  r  N  s     ))$4OOr#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r[   \  r  r#   c                .    \         P                  ! V 4      # r.   )r   is_public_namer   s   &r   r  r  \  r  r#   c                    V ^8  d   QhRRRR/# rO  r$   )rZ   s   "r   r[   r[   `  s     * * *D *r#   c                .    \         P                  ! V 4      # r.   )r   make_name_publicr   s   &r   r  r  `  r  r#   c                    V ^8  d   QhRRRR/# rO  r$   )rZ   s   "r   r[   r[   d  s     . ._ . .r#   c                .    \         P                  ! V 4      # r.   )r   make_name_non_publicr   s   &r   r  r  d  s    ))"--r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r[   h  s     & &_ & &r#   c                .    \         P                  ! V 4      # r.   )r   is_weak_namer   s   &r   r  r  h  s    !!"%%r#   c                    V ^8  d   QhRRRR/# rO  r$   )rZ   s   "r   r[   r[   l  r  r#   c                .    \         P                  ! V 4      # r.   )r   make_name_weakr   s   &r   r  r  l  r  r#   c                    V ^8  d   QhRRRR/# rO  r$   )rZ   s   "r   r[   r[   p  s     , ,? ,d ,r#   c                .    \         P                  ! V 4      # r.   )r   make_name_non_weakr   s   &r   r  r  p  s    ''++r#   c                   V ^8  d   QhRR/# rl   r$   )rZ   s   "r   r[   r[   t  s     & &s &r#   c                 ,    \         P                  ! 4       # r.   )r   get_nlist_sizer$   r#   r   r  r  t  s    ##%%r#   c                    V ^8  d   QhRRRR/# )rX   r   r   rY   rm   r$   )rZ   s   "r   r[   r[   x  s     ' 'o ' 'r#   c                .    \         P                  ! V 4      # r.   )r   get_nlist_idxr   s   &r   r  r  x  s    ""2&&r#   c                    V ^8  d   QhRRRR/# r  r$   )rZ   s   "r   r[   r[   |  s     % %O %t %r#   c                .    \         P                  ! V 4      # r.   )r   is_in_nlistr   s   &r   r  r  |  s      $$r#   c                    V ^8  d   QhRRRR/# )rX   idxrm   rY   r   r$   )rZ   s   "r   r[   r[     s     ' 'c '_ 'r#   c                .    \         P                  ! V 4      # r.   )r   get_nlist_ear  s   &r   r  r    s    !!#&&r#   c                    V ^8  d   QhRRRR/# )rX   r  rm   rY   r   r$   )rZ   s   "r   r[   r[     s     ) ) )s )r#   c                .    \         P                  ! V 4      # r.   )r   get_nlist_namer  s   &r   r  r    s    ##C((r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r[     s     % %d %r#   c                 ,    \         P                  ! 4       # r.   )r   rebuild_nlistr$   r#   r   r  r    s    ""$$r#   c                   V ^8  d   QhRR/# rb   r$   )rZ   s   "r   r[   r[     s     + +D +r#   c                 ,    \         P                  ! 4       # )zRenumber dummy names.
)r   reorder_dummy_namesr$   r#   r   r  r    s     ((**r#   c                      ] tR tRt$ ]! R R RR7      t]t]! ]P                  ]P                  4      tR]R&   ]! ]P                  ]P                  4      tR]R	&   R
 t]P"                  tRtR# )	ea_name_ti  c                	6    V P                   P                  4       # r.   rC   rD   s   &r   rF   ea_name_t.<lambda>  rH   r#   c                	8    V P                   P                  V4      # r.   rC   rJ   s   &&r   rF   r    rL   r#   rM   rN   r   r   r   r   c                	X    \         P                  ! V \         P                  ! V!  4       R # r.   )r   ea_name_t_swiginitnew_ea_name_trS   s   &*r   rU   ea_name_t.__init__  s    $$T9+B+BD+IJr#   r$   N)r   r   r8   r9   r   r   r   r
   r   ea_name_t_ea_getea_name_t_ea_setr   __annotations__ea_name_t_name_getea_name_t_name_setr   rU   delete_ea_name_tr   r<   r$   r#   r   r  r    sn    -/I!#GH"9#=#=yB 55yD# K 11r#   r  c               $    V ^8  d   QhRRRRRR/# )rX   r   r   r   r   rY   rt   r$   )rZ   s   "r   r[   r[     s!     . . .c .T .r#   c                .    \         P                  ! W4      # r.   )r   set_debug_name)r   r   s   &&r   r  r    s    ##B--r#   c               $    V ^8  d   QhRRRRRR/# )rX   ea_ptrz'ea_t *'howz'debug_name_how_t'rY   r   r$   )rZ   s   "r   r[   r[     s"     1 18 1*< 1 1r#   c                .    \         P                  ! W4      # r.   )r   get_debug_name)r  r  s   &&r   r  r    s    ##F00r#   c               $    V ^8  d   QhRRRRRR/# )rX   ea1r   ea2rY   rc   r$   )rZ   s   "r   r[   r[     s!     / / / /$ /r#   c                .    \         P                  ! W4      # r.   )r   del_debug_names)r  r  s   &&r   r  r    s    $$S..r#   c                    V ^8  d   QhRRRR/# )rX   r   r   rY   r   r$   )rZ   s   "r   r[   r[     s     - -C -? -r#   c                .    \         P                  ! V 4      # r.   )r   get_debug_name_earC  s   &r   r  r    s    &&t,,r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r   r   disable_maskrm   demreqz'demreq_type_t'rY   r$   )rZ   s   "r   r[   r[     s)     ? ? ?3 ? ??r#   c                0    \         P                  ! WV4      # )a)  Demangle a name. 
        
:param name: name to demangle
:param disable_mask: bits to inhibit parts of demangled name (see MNG_). by the M_COMPILER bits a specific compiler can be selected (see MT_).
:param demreq: the request type demreq_type_t
:returns: ME_... or MT__ bitmasks from demangle.hpp)r   demangle_name)r   r  r  s   &&&r   r  r    s     ""4v>>r#   c                   V ^8  d   QhRR/# rs   r$   )rZ   s   "r   r[   r[     s     	4 	4T 	4r#   c                 *    \         P                  ! V !  # )a{  Is the name defined locally in the specified function? 
        
:param pfn: pointer to function
:param name: name to check
:param ignore_name_def: which names to ignore when checking
:param ea1: the starting address of the range inside the function (optional)
:param ea2: the ending address of the range inside the function (optional)
:returns: true if the name has been defined)r   is_name_defined_locallyr.  s   *r   r  r    s     ,,d33r#   c               (    V ^8  d   QhRRRRRRRR/# )rX   r   r   r   r   r  rm   rY   r$   )rZ   s   "r   r[   r[     s(     3 3_ 3C 3 3 3r#   c                0    \         P                  ! WV4      # r.   )r   cleanup_namer	  s   &&&r   r  r    s    !!"E22r#   c                    V ^8  d   QhRRRR/# )rX   r   r   rY   z'mangled_name_type_t'r$   )rZ   s   "r   r[   r[   Y  s     1 1 1'< 1r#   c                .    \         P                  ! V 4      # r.   )r   get_mangled_name_typerC  s   &r   r  r  Y  s    **400r#   c                   V ^8  d   QhRR/# )rX   rY   'PyObject *'r$   )rZ   s   "r   r[   r[   ]  s     , ,\ ,r#   c                 *    \         P                  ! V !  # r.   )r   get_debug_namesr.  s   *r   r  r  ]  s    $$d++r#   c               $    V ^8  d   QhRRRRRR/# ra  r$   )rZ   s   "r   r[   r[   a  s!     0 0O 0 0 0r#   c                .    \         P                  ! W4      # )zGet name at the specified address. 
        
:param ea: linear address
:param gtn_flags: how exactly the name should be retrieved. combination of bits for get_ea_name() function. There is a convenience bits
:returns: success)r   get_ea_namere  s   &&r   r  r  a  s       //r#   c               (    V ^8  d   QhRRRRRRRR/# )	rX   r   r   r   r&  r  rm   rY   r  r$   )rZ   s   "r   r[   r[   j  s(     6 6 6< 6 6 6r#   c                0    \         P                  ! WV4      # )ao  Validate a name. If SN_NOCHECK is specified, this function replaces all invalid characters in the name with SUBSTCHAR. However, it will return false if name is valid but not allowed to be an identifier (is a register name).

:param name: ptr to name. the name will be modified
:param type: the type of name we want to validate
:param flags: see SN_*
:returns: success)r   validate_name)r   r   r  s   &&&r   r  r  j  s     ""4u55r#   c                  >    ] tR tRtRtR tR tR tR tR t	R t
R	tR
# )NearestNameiy  zK
Utility class to help find the nearest name in a given ea/name dictionary
c                	(    V P                  V4       R # r.   )updater   ea_namess   &&r   rU   NearestName.__init__~  s    Hr#   c                    Wn         \        VP                  4       4      V n        V P                  P	                  4        R# )zUpdates the ea/names mapN)_nameslistkeys_addrssortr  s   &&r   r  NearestName.update  s)    8==?+r#   c                    \         P                  ! V P                  V4      pV\        V P                  4      8  d   R# V P                  V,          V8w  d
   V^,          pV^ 8  d   R# W,          # )zs
Returns a tupple (ea, name, pos) that is the nearest to the passed ea
If no name is matched then None is returned
N)bisectbisect_leftr  r   )r   r   poss   && r   findNearestName.find  sZ    
   b1#dkk"";;sr!1HC7yr#   c                	R    V P                   V,          pW P                  V,          V3# r.   r  r  )r   indexr   s   && r   	_get_itemNearestName._get_item  s#    [[;;r?E))r#   c                	V   a  V 3R  l\        ^ \        S P                  4      4       4       # )c              3  F   <"   T F  pSP                  V4      x  K  	  R # 5ir.   )r  ).0r  r   s   & r   	<genexpr>'NearestName.__iter__.<locals>.<genexpr>  s     N3M%u%%3Ms   !)ranger   r  rg   s   fr   r   NearestName.__iter__  s    N5C<L3MNNr#   c                d    V\        V P                  4      8  d   \        hV P                  V4      # )z$Returns the tupple (ea, name, index))r   r  StopIterationr  )r   r  s   &&r   r   NearestName.__getitem__  s(    3t{{##~~e$$r#   r  N)r   r   r8   r9   r:   rU   r  r   r  r   r   r<   r$   r#   r   r  r  y  s&    *O%r#   r  c                    ^ pV \         P                  8w  d9   \        P                  ! V 4      p\        P                  ! W14      '       d   \
        pV# )z
Calculate flags for get_ea_name() function

:param fromaddr: the referring address. May be BADADDR.
:param ea: linear address

:returns: flags
)_ida_idaapiBADADDR
_ida_funcsget_funcfunc_containsGN_LOCAL)fromaddrr   rb  pfns   &&  r   calc_gtn_flagsr    sC     I;&&&!!(+##C,, Ir#   )    r.   )   (  r:   
__future__r   sysr   _swig_python_version_info__package__r   r   r   builtinsr   ImportErrorr   r%   r+   r5   r   r7   weakrefSWIG_PYTHON_LEGACY_BOOLtypingr=   r>   r?   r   objectrA   ea_name_vec_t_swigregisterr   r  
MAXNAMELENFUNC_IMPORT_PREFIXr  SN_CHECK
SN_NOCHECK	SN_PUBLICSN_NON_PUBLICSN_WEAKSN_NON_WEAKSN_AUTOSN_NON_AUTO	SN_NOLIST	SN_NOWARNSN_LOCAL	SN_IDBENCSN_FORCE
SN_NODUMMY
SN_DELTAILSN_MULTISN_MULTI_FORCEr  r  r  r  r  r!  UCDR_STRLIT	UCDR_NAMEUCDR_MANGLED	UCDR_TYPE	VNT_IDENTVNT_TYPE
VNT_UDTMEM
VNT_STRLITVNT_VISIBLEr)  r-  r2  r6  r;  r>  rB  rF  rI  rM  rQ  rT  rW  r\  r_  NT_NONENT_BYTENT_LOCAL	NT_STKVARNT_ENUMNT_ABSNT_SEG	NT_STROFFNT_BMASK	NT_REGVAR
GN_VISIBLE
GN_COLOREDGN_DEMANGLED	GN_STRICTGN_SHORTGN_LONGr  GN_ISRETGN_NOT_ISRETGN_NOT_DUMMYrd  rh  rk  rn  rq  rw  r{  r~  GETN_APPZEROGETN_NOFIXUPGETN_NODUMMYr  r  
GNCN_NOSEGGNCN_NOCOLORGNCN_NOLABELGNCN_NOFUNCGNCN_SEG_FUNCGNCN_SEGNUMGNCN_REQFUNCGNCN_REQNAMEGNCN_NODBGNMGNCN_PREFDBGr  r  r  r  r  r  r  r  r  r  r  r  r  r  DEBNAME_EXACTDEBNAME_LOWERDEBNAME_UPPERDEBNAME_NICEr  ea_name_t_swigregisterr  r  r  r  DQT_NPURGED_8DQT_NPURGED_4DQT_NPURGED_2DQT_COMPILERDQT_NAME_TYPEDQT_FULLr  r  r  CN_KEEP_TRAILING_DIGITSCN_KEEP_UNDERSCORES	ME_INTERRME_PARAMERR	ME_ILLSTRME_SMALLANSME_FRAME	ME_NOCOMP
ME_ERRAUTOME_NOHASHMEMME_NOSTRMEMME_NOERROR_LIMITM_PRCMSK
MT_DEFAULTMT_CDECL	MT_PASCAL
MT_STDCALLMT_FASTCALLMT_THISCALL
MT_FORTRAN
MT_SYSCALLMT_INTERRUPTMT_MSFASTCALL
MT_CLRCALL
MT_DMDCALLMT_VECTORCALL
MT_REGCALLMT_LOCALNAME
M_SAVEREGSM_CLASS	MT_PUBLIC
MT_PRIVATE
MT_PROTECT	MT_MEMBER	MT_VTABLEMT_RTTIM_PARMSK	MT_PARSHF	MT_PARMAX
M_ELLIPSIS
MT_VOIDARGM_STATIC	M_VIRTUAL	M_AUTOCRT	M_TYPMASK	MT_OPERAT	MT_CONSTRMT_DESTR
MT_CASTINGMT_CLRCDTOR
M_TRUNCATEM_THUNK	M_ANONNSP	M_TMPLNAM	M_DBGNAME
M_COMPILER	MT_MSCOMP	MT_BORLAN	MT_WATCOMMT_OTHERMT_GNUMT_GCC3	MT_VISAGE
MNG_PTRMSKMNG_DEFNEARMNG_DEFNEARANY
MNG_DEFFARMNG_NOPTRTYP16MNG_DEFHUGEMNG_DEFPTR64MNG_DEFNONEMNG_NOPTRTYPMNG_NODEFINITMNG_NOUNDERSCORE
MNG_NOTYPEMNG_NORETTYPEMNG_NOBASEDTMNG_NOCALLCMNG_NOPOSTFCMNG_NOSCTYPMNG_NOTHROWMNG_NOSTVIR
MNG_NOECSUMNG_NOCSVOLMNG_NOCLOSURMNG_NOUNALGMNG_NOMANAGEMNG_NOMODULEMNG_SHORT_SMNG_SHORT_UMNG_ZPT_SPACEMNG_DROP_IMPMNG_IGN_ANYWAYMNG_IGN_JMPMNG_MOVE_JMPMNG_COMPILER_MSKMNG_SHORT_FORMMNG_LONG_FORMMNG_CALC_VALIDr  r  r  r  r  r  r  r  r  cvarignore_noneignore_regvarignore_llabelignore_stkvarignore_glabelMANGLED_CODEMANGLED_DATAMANGLED_UNKNOWNr$   r#   r   <module>r     sA  	C # 9#/"
 L$ L
 #;;  % % T4F T4n 
 $ $] 3"* !!
11 / !!
	''


##


##			!!
!!
))1)(/(( ##	%%		!!
!!
##1,,%7'$$-+##.11 




	


								!!
!!
%%	


%%%%532;:K
/ %%%%%%	=6  !!
%%%%##''##%%%%%%%%P(*.&(,&'%')%+ ''''''%%2 2 
     +.1/- ''''''%%''
 ?	43 $;; 33 	##	##	!!
%%##-- !!
	!!
####!!
!!
%%''!!
!!
''!!
%%!!



	!!
!!
		


		!!
!!
					!!
##!!



			!!
						


	!!
##))!!
))##%%##%%''-- !!
''%%##%%######!!
##%%##%%%%####''%%))##%%-- ))''))1,0 06 6   '%& '%T" ~~""""""""    &&S  s   m? ?nn