403Webshell
Server IP : 172.24.0.40  /  Your IP : 216.73.216.10
Web Server : Apache
System : Linux dbweb26.ust.edu.ph 4.18.0-513.5.1.el8_9.x86_64 #1 SMP Fri Sep 29 05:21:10 EDT 2023 x86_64
User : apache ( 48)
PHP Version : 8.2.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/self/root/usr/share/gcc-8/python/libstdcxx/v6/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/usr/share/gcc-8/python/libstdcxx/v6/__pycache__/printers.cpython-36.pyc
3

���`�@s�ddlZddlZddlZddlZejddkr@eZeZe	Z
eZnGdd�d�ZddlmZm
Z
da
yddlZWnek
r�da
YnXdayddlZeejd�r�daWnek
r�YnXd	d
�Zdadd
�Zdd�Zdd�Zdd�ZGdd�de�ZGdd�d�ZGdd�d�Zdd�Zdd�ZGdd�d�ZGd d!�d!�Z Gd"d#�d#e �Z!Gd$d%�d%e �Z"Gd&d'�d'�Z#Gd(d)�d)�Z$Gd*d+�d+�Z%Gd,d-�d-�Z&Gd.d/�d/�Z'Gd0d1�d1�Z(Gd2d3�d3e�Z)d4d5�Z*Gd6d7�d7�Z+Gd8d9�d9�Z,d:d;�Z-Gd<d=�d=�Z.Gd>d?�d?�Z/Gd@dA�dA�Z0GdBdC�dC�Z1GdDdE�dE�Z2GdFdG�dG�Z3GdHdI�dIe�Z4GdJdK�dKe�Z5GdLdM�dM�Z6GdNdO�dO�Z7GdPdQ�dQ�Z8GdRdS�dSe�Z9dTdU�Z:GdVdW�dWe9�Z;GdXdY�dYe9�Z<GdZd[�d[e9�Z=Gd\d]�d]e9�Z>Gd^d_�d_�Z?Gd`da�da�Z@Gdbdc�dc�ZAGddde�dee�ZBGdfdg�dge�ZCdaDGdhdi�die�ZEdjdk�ZFGdldm�dme�ZGdndo�ZHdpdq�ZIdrds�ZJdtdu�ZKeK�dS)v�N�c@seZdZdZdd�ZdS)�Iteratora:Compatibility mixin for iterators

        Instead of writing next() methods for iterators, write
        __next__() methods and use this mixin to make them work in
        Python 2 as well as Python 3.

        Idea stolen from the "six" documentation:
        <http://pythonhosted.org/six/#six.Iterator>
        cCs|j�S)N)�__next__)�self�r�0/usr/share/gcc-8/python/libstdcxx/v6/printers.py�next<sz
Iterator.nextN)�__name__�
__module__�__qualname__�__doc__rrrrrr1s	r)�imap�izipTFZTypePrintercCsn|j�}x`d|j�|f}y
tj|�Stk
r8YnX|j�d}|js`tdt|�|f��|j	}q
WdS)Nz%s::%srzCannot find type %s::%s)
�strip_typedefs�unqualified�gdb�lookup_type�RuntimeError�fields�
is_base_class�
ValueError�str�type)Zorig�name�typ�searchZfieldrrr�	find_typeUs
rz__8::cCs0trtjdt|f|�dk	Stjd||�dk	S)z1Test if a type is a given template instantiation.z^std::(%s)?%s<.*>$Nz
^std::%s<.*>$)�_versioned_namespace�re�match)r�
template_namerrr�is_specialization_ofhsr!cCstr|jtd�S|S)N�)r�replace)�typenamerrr�strip_versioned_namespaceosr%cCsVt|�}|jdd�}d}x d	D]}|j||d|�}qW|d}|j|d|�}|S)
zARemove known inline namespaces from the canonical name of a type.zstd::__cxx11::zstd::zstd::experimental::�fundamentals_v1�fundamentals_v2z::zfilesystem::zv1::)r&r')r%r#)�type_strZexpt_nsZlfts_nsZfs_nsrrr�strip_inline_namespacesus
r)c	Cs:d}g}x,y|j|j|��Wn
|S|d7}q
WdS)z,Return a type's template arguments as a listr�N)�append�template_argument)�type_obj�n�
template_argsrrr�get_template_arg_list�sr0c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�SmartPtrIteratorz?An iterator for smart pointer types with a single 'child' valuecCs
||_dS)N)�val)rr2rrr�__init__�szSmartPtrIterator.__init__cCs|S)Nr)rrrr�__iter__�szSmartPtrIterator.__iter__cCs$|jdkrt�d|j|_}d|fS)Nzget())r2�
StopIteration)rr2rrrr�s
zSmartPtrIterator.__next__N)r	r
rrr3r4rrrrrr1�sr1c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�SharedPointerPrinterzPrint a shared_ptr or weak_ptrcCst|�|_||_|d|_dS)N�_M_ptr)r%r$r2�pointer)rr$r2rrrr3�s
zSharedPointerPrinter.__init__cCs
t|j�S)N)r1r8)rrrr�children�szSharedPointerPrinter.childrencCsjd}|jdd}|dkrL|d}|d}|dkr<d|}nd||d	f}d
|jt|jjjd��|fS)N�emptyZ_M_refcountZ_M_pirZ_M_use_countZ
_M_weak_countzexpired, weak count %dzuse count %d, weak count %dr*z%s<%s> (%s))r2r$rrr,)r�stateZ	refcountsZusecountZ	weakcountrrr�	to_string�s
zSharedPointerPrinter.to_stringN)r	r
rrr3r9r<rrrrr6�sr6c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�UniquePointerPrinterzPrint a unique_ptrcCs�||_|jj�djj�}tt|�d�r6|dd}n(tt|�d�rN|d}ntdt|���|jj�dj}|j�dj}|j�d}|jdkr�|d|_n&|j	r�|j
|j�|_ntdt|���dS)	NrZ__uniq_ptr_impl�_M_t�tuplez-Unsupported implementation for unique_ptr: %sr*�_M_head_implz6Unsupported implementation for tuple in unique_ptr: %s)r2rrrr!rrrr8r�cast)rr$r2Z	impl_typeZtuple_memberZtuple_impl_typeZtuple_head_typeZ
head_fieldrrrr3�s

zUniquePointerPrinter.__init__cCs
t|j�S)N)r1r8)rrrrr9�szUniquePointerPrinter.childrencCsdt|jjjd��S)Nzstd::unique_ptr<%s>r)rr2rr,)rrrrr<�szUniquePointerPrinter.to_stringN)r	r
rrr3r9r<rrrrr=�sr=cCs|djj|j��j�S)z8Returns the value held in a __gnu_cxx::__aligned_membuf.�
_M_storage)�addressrAr8�dereference)Zbuf�valtyperrr�get_value_from_aligned_membuf�srFc
CsjyF|jj�dj}|dkr"|dS|dkrD|jjd�}t|d|�SWnYnXtdt|j���dS)z-Returns the value held in an _List_node<_Val>r*�_M_datarBrz!Unsupported implementation for %sN)rrrr,rFrr)�node�memberrErrr�get_value_from_list_node�srJc@s8eZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
S)�StdListPrinterzPrint a std::listc@s$eZdZdd�Zdd�Zdd�ZdS)zStdListPrinter._iteratorcCs"||_|d|_|j|_d|_dS)N�_M_nextr)�nodetype�baserC�head�count)rrMrOrrrr3�s
z!StdListPrinter._iterator.__init__cCs|S)Nr)rrrrr4�sz!StdListPrinter._iterator.__iter__cCsR|j|jkrt�|jj|j�j�}|d|_|j}|jd|_t|�}d||fS)NrLr*z[%d])rNrOr5rArMrDrPrJ)r�eltrPr2rrrr�s
z!StdListPrinter._iterator.__next__N)r	r
rr3r4rrrrr�	_iterator�srRcCst|�|_||_dS)N)r%r$r2)rr$r2rrrr3�s
zStdListPrinter.__init__cCs0t|jjd�}|j�j�}|j||jdd�S)N�_Node�_M_impl�_M_node)rr2rrr8rR)rrMrrrr9�szStdListPrinter.childrencCs6|jddj|jdddkr,d|jSd|jS)NrTrUrLzempty %sz%s)r2rCr$)rrrrr<s"
zStdListPrinter.to_stringN)	r	r
rrrrRr3r9r<rrrrrK�s
rKc@seZdZdd�Zdd�ZdS)�NodeIteratorPrintercCs||_||_||_dS)N)r2r$�contname)rr$r2rWrrrr3szNodeIteratorPrinter.__init__cCsN|jdsd|jSt|jjd�}|j�j�}|jdj|�j�}tt	|��S)NrUz(non-dereferenceable iterator for std::%srS)
r2rWrrrr8rArDrrJ)rrMrHrrrr<s

zNodeIteratorPrinter.to_stringN)r	r
rr3r<rrrrrVsrVc@seZdZdZdd�ZdS)�StdListIteratorPrinterzPrint std::list::iteratorcCstj|||d�dS)N�list)rVr3)rr$r2rrrr3szStdListIteratorPrinter.__init__N)r	r
rrr3rrrrrXsrXc@seZdZdZdd�ZdS)�StdFwdListIteratorPrinterz!Print std::forward_list::iteratorcCstj|||d�dS)N�forward_list)rVr3)rr$r2rrrr3sz"StdFwdListIteratorPrinter.__init__N)r	r
rrr3rrrrrZsrZc@s8eZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
S)�StdSlistPrinterzPrint a __gnu_cxx::slistc@s$eZdZdd�Zdd�Zdd�ZdS)zStdSlistPrinter._iteratorcCs||_|dd|_d|_dS)N�_M_headrLr)rMrNrP)rrMrOrrrr3#sz"StdSlistPrinter._iterator.__init__cCs|S)Nr)rrrrr4(sz"StdSlistPrinter._iterator.__iter__cCsL|jdkrt�|jj|j�j�}|d|_|j}|jd|_d||dfS)NrrLr*z[%d]rG)rNr5rArMrDrP)rrQrPrrrr+s

z"StdSlistPrinter._iterator.__next__N)r	r
rr3r4rrrrrrR"srRcCs
||_dS)N)r2)rr$r2rrrr34szStdSlistPrinter.__init__cCs(t|jjd�}|j�j�}|j||j�S)NrS)rr2rrr8rR)rrMrrrr97szStdSlistPrinter.childrencCs|jdddkrdSdS)Nr]rLrzempty __gnu_cxx::slistz__gnu_cxx::slist)r2)rrrrr<<szStdSlistPrinter.to_stringN)	r	r
rrrrRr3r9r<rrrrr\s
r\c@s eZdZdZdd�Zdd�ZdS)�StdSlistIteratorPrinterz Print __gnu_cxx::slist::iteratorcCs
||_dS)N)r2)rr$r2rrrr3Dsz StdSlistIteratorPrinter.__init__cCsD|jdsdSt|jjd�}|j�j�}t|jdj|�j�d�S)NrUz1non-dereferenceable iterator for __gnu_cxx::slistrSrG)r2rrrr8rrArD)rrMrrrr<Gs

z!StdSlistIteratorPrinter.to_stringN)r	r
rrr3r<rrrrr^Asr^c@s@eZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
d�Z	dS)
�StdVectorPrinterzPrint a std::vectorc@s$eZdZdd�Zdd�Zdd�ZdS)zStdVectorPrinter._iteratorcCsb||_|rL|d|_|d|_|d|_|d|_|jj�j}d|j|_n||_||_d|_	dS)N�_M_p�	_M_offset�r)
�bitvec�item�so�finish�forDr�sizeof�isizerP)r�startrfrc�ityperrrr3Rs



z#StdVectorPrinter._iterator.__init__cCs|S)Nr)rrrrr4`sz#StdVectorPrinter._iterator.__iter__cCs�|j}|jd|_|jr�|j|jkr4|j|jkr4t�|jj�}|d|j>@rRd}nd}|jd|_|j|jkr�|jd|_d|_d||fS|j|jkr�t�|jj�}|jd|_d||fSdS)Nr*rz[%d])	rPrcrdrfrergr5rDri)rrPrQZobitrrrrcs&

z#StdVectorPrinter._iterator.__next__N)r	r
rr3r4rrrrrrRQsrRcCs*t|�|_||_|jjd�jtjk|_dS)Nr)	r%r$r2rr,�coderZTYPE_CODE_BOOL�is_bool)rr$r2rrrr3zs
zStdVectorPrinter.__init__cCs$|j|jdd|jdd|j�S)NrT�_M_start�	_M_finish)rRr2rm)rrrrr9szStdVectorPrinter.childrenc
Cs�|jdd}|jdd}|jdd}|jr�|jddd}|jddd}|jddd}|jddd}|j�j}d|j}|||||d|}|||}	d	|jt|�t|	�fSd
|jt||�t||�fSdS)NrTrnroZ_M_end_of_storager`rarbr*z"%s<bool> of length %d, capacity %dz%s of length %d, capacity %d)r2rmrDrrhr$�int)
rrjrf�endrergrkZbl�lengthZcapacityrrrr<�s 

zStdVectorPrinter.to_stringcCsdS)N�arrayr)rrrr�display_hint�szStdVectorPrinter.display_hintN)
r	r
rrrrRr3r9r<rtrrrrr_Ns)r_c@s eZdZdZdd�Zdd�ZdS)�StdVectorIteratorPrinterzPrint std::vector::iteratorcCs
||_dS)N)r2)rr$r2rrrr3�sz!StdVectorIteratorPrinter.__init__cCs |jdsdSt|jdj��S)NZ
_M_currentz,non-dereferenceable iterator for std::vector)r2rrD)rrrrr<�s
z"StdVectorIteratorPrinter.to_stringN)r	r
rrr3r<rrrrru�sruc@s8eZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
S)�StdTuplePrinterzPrint a std::tuplec@s$eZdZdd�Zdd�Zdd�ZdS)zStdTuplePrinter._iteratorcCsR||_|jjj�}t|�dkr4|jj|dj�|_nt|�dkrHtd��d|_dS)Nr*rz4Top of tuple tree does not consist of a single node.)rOrr�lenrArrP)rrO�nodesrrrr3�sz"StdTuplePrinter._iterator.__init__cCs|S)Nr)rrrrr4�sz"StdTuplePrinter._iterator.__iter__cCs�|js
t�|jjj�}t|�dkr&t�t|�dkr:td��t|�dkr`|jj|dj�}d|_n&|jj|dj�}|jj|dj�|_|jd|_|jj�}t|�dks�|djdkr�d|j|fSd|j|dfSdS)Nrrz/Cannot parse more than 2 nodes in a tuple tree.r*r@z[%d])	rOr5rrrwrrArPr)rrx�implrrrrr�s"	
z"StdTuplePrinter._iterator.__next__N)r	r
rr3r4rrrrrrR�s
rRcCst|�|_||_dS)N)r%r$r2)rr$r2rrrr3�s
zStdTuplePrinter.__init__cCs|j|j�S)N)rRr2)rrrrr9�szStdTuplePrinter.childrencCs(t|jjj��dkrd|jSd|jS)Nrzempty %sz
%s containing)rwr2rrr$)rrrrr<�s
zStdTuplePrinter.to_stringN)	r	r
rrrrRr3r9r<rrrrrv�s
:rvc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�StdStackOrQueuePrinterz Print a std::stack or std::queuecCst|�|_tj|d�|_dS)N�c)r%r$r�default_visualizer�
visualizer)rr$r2rrrr3�s
zStdStackOrQueuePrinter.__init__cCs
|jj�S)N)r}r9)rrrrr9�szStdStackOrQueuePrinter.childrencCsd|j|jj�fS)Nz%s wrapping: %s)r$r}r<)rrrrr<�sz StdStackOrQueuePrinter.to_stringcCst|jd�r|jj�SdS)Nrt)�hasattrr}rt)rrrrrt�s
z#StdStackOrQueuePrinter.display_hintN)r	r
rrr3r9r<rtrrrrrz�s
rzc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�RbtreeIteratorzf
    Turn an RB-tree-based container (std::map, std::set etc.) into
    a Python iterable object.
    cCs2|ddd|_|dddd|_d|_dS)Nr>rTZ
_M_node_countZ	_M_header�_M_leftr)�sizerHrP)rZrbtreerrrr3szRbtreeIterator.__init__cCs|S)Nr)rrrrr4szRbtreeIterator.__iter__cCs
t|j�S)N)rpr�)rrrr�__len__szRbtreeIterator.__len__cCs�|j|jkrt�|j}|jd|_|j|jkr�|j}|j�drl|j�d}xd|j�drh|j�d}qNWnF|j�d}x$||j�dkr�|}|j�d}qzW|j�d|kr�|}||_|S)Nr*Z_M_rightr�Z	_M_parent)rPr�r5rHrD)r�resultrH�parentrrrrs$zRbtreeIterator.__next__N)r	r
rrr3r4r�rrrrrrs
rc
CsjyF|jj�dj}|dkr"|dS|dkrD|jjd�}t|d|�SWnYnXtdt|j���dS)z0Returns the value held in an _Rb_tree_node<_Val>r*Z_M_value_fieldrBrz!Unsupported implementation for %sN)rrrr,rFrr)rHrIrErrr�get_value_from_Rb_tree_node(sr�c@s eZdZdZdd�Zdd�ZdS)�StdRbtreeIteratorPrinterz2Print std::map::iterator, std::set::iterator, etc.cCsb||_|jjjd�j�}dt|�d}trB|jdt�rBt|}tjd|�}|j�j	�|_
dS)Nrz_Rb_tree_node<�>zstd::)r2rr,rrr�
startswithrrr8�	link_type)rr$r2rErMrrrr3=sz!StdRbtreeIteratorPrinter.__init__cCs0|jdsdS|jdj|j�j�}tt|��S)NrUz6non-dereferenceable iterator for associative container)r2rAr�rDrr�)rrHrrrr<Fs
z"StdRbtreeIteratorPrinter.to_stringN)r	r
rrr3r<rrrrr�:s	r�c@s eZdZdZdd�Zdd�ZdS)�StdDebugIteratorPrinterz,Print a debug enabled version of an iteratorcCs
||_dS)N)r2)rr$r2rrrr3Osz StdDebugIteratorPrinter.__init__cCsbtjd�}|jjjd�}|jj|�d}|s<t|jj|��S|jd|dkrRdSt|jj|��S)Nz __gnu_debug::_Safe_iterator_baserZ_M_sequenceZ
_M_versionzinvalid iterator)rrr2rr,rAr)rZ	base_typerkZsafe_seqrrrr<Ts
z!StdDebugIteratorPrinter.to_stringN)r	r
rrr3r<rrrrr�Lsr�cCs|dkrdSd|S)zDReturn either "1 element" or "N elements" depending on the argument.r*z	1 elementz%d elementsr)Znumrrr�num_elements^sr�c@s@eZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
d�Z	dS)
�
StdMapPrinterz!Print a std::map or std::multimapc@s$eZdZdd�Zdd�Zdd�ZdS)zStdMapPrinter._itercCs||_d|_||_dS)Nr)�rbiterrPr)rr�rrrrr3gszStdMapPrinter._iter.__init__cCs|S)Nr)rrrrr4lszStdMapPrinter._iter.__iter__cCsh|jddkr@t|j�}|j|j�j�}t|�}||_|d}n
|jd}d|j|f}|jd|_|S)Nrr�first�secondz[%d]r*)rPrr�rArrDr��pair)rr.rdr�rrrros


zStdMapPrinter._iter.__next__N)r	r
rr3r4rrrrr�_iterfsr�cCst|�|_||_dS)N)r%r$r2)rr$r2rrrr3|s
zStdMapPrinter.__init__cCsd|jttt|j���fS)Nz
%s with %s)r$r�rwrr2)rrrrr<�szStdMapPrinter.to_stringcCs2t|jjd�}t|d�}|j�}|jt|j�|�S)N�	_Rep_type�
_Link_type)rr2rrr�r)r�rep_typerHrrrr9�s
zStdMapPrinter.childrencCsdS)N�mapr)rrrrrt�szStdMapPrinter.display_hintN)
r	r
rrrr�r3r<r9rtrrrrr�bsr�c@s8eZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
S)�
StdSetPrinterz!Print a std::set or std::multisetc@s$eZdZdd�Zdd�Zdd�ZdS)zStdSetPrinter._itercCs||_d|_||_dS)Nr)r�rPr)rr�rrrrr3�szStdSetPrinter._iter.__init__cCs|S)Nr)rrrrr4�szStdSetPrinter._iter.__iter__cCs@t|j�}|j|j�j�}t|�}d|j|f}|jd|_|S)Nz[%d]r*)rr�rArrDr�rP)rrdr�rrrr�s
zStdSetPrinter._iter.__next__N)r	r
rr3r4rrrrrr��sr�cCst|�|_||_dS)N)r%r$r2)rr$r2rrrr3�s
zStdSetPrinter.__init__cCsd|jttt|j���fS)Nz
%s with %s)r$r�rwrr2)rrrrr<�szStdSetPrinter.to_stringcCs2t|jjd�}t|d�}|j�}|jt|j�|�S)Nr�r�)rr2rrr�r)rr�rHrrrr9�s
zStdSetPrinter.childrenN)	r	r
rrrr�r3r<r9rrrrr��s
r�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�StdBitsetPrinterzPrint a std::bitsetcCst|�|_||_dS)N)r%r$r2)rr$r2rrrr3�s
zStdBitsetPrinter.__init__cCs
d|jS)Nz%s)r$)rrrrr<�szStdBitsetPrinter.to_stringc	
Cs�y|jd}Wn
gS|j}|jtjkr8|j�j}n|g}|j}|j|}g}d}xh||kr�||}d}xF|dkr�|d@dkr�|jd||d|df�|d}|d?}qnW|d}qXW|S)NZ_M_wrr*z[%d]rb)r2rrlr�TYPE_CODE_ARRAY�targetrhr+)	rZwordsZwtypeZtsizeZnwordsr�Zbyte�w�bitrrrr9�s,


zStdBitsetPrinter.childrenN)r	r
rrr3r<r9rrrrr��sr�c@s@eZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
d�Z	dS)
�StdDequePrinterzPrint a std::dequec@s$eZdZdd�Zdd�Zdd�ZdS)zStdDequePrinter._itercCs(||_||_||_||_||_d|_dS)Nr)rH�prq�last�buffer_sizerP)rrHrjrqr�r�rrrr3�szStdDequePrinter._iter.__init__cCs|S)Nr)rrrrr4�szStdDequePrinter._iter.__iter__cCsr|j|jkrt�d|j|jj�f}|jd|_|jd|_|j|jkrn|jd|_|jd|_|j|j|_|S)Nz[%d]r*r)r�r�r5rPrDrqrHr�)rr�rrrr�szStdDequePrinter._iter.__next__N)r	r
rr3r4rrrrrr��sr�cCsHt|�|_||_|jjd�|_|jj}|dkr>td|�|_nd|_dS)Nrir*)	r%r$r2rr,Zelttyperhrpr�)rr$r2r�rrrr3s
zStdDequePrinter.__init__cCsx|jdd}|jdd}|d|dd}|d|d}|d|d}|j|||}d	|jtt|��fS)
NrTrnrorUr*�_M_last�_M_cur�_M_firstz
%s with %s)r2r�r$r��long)rrjrqZdelta_nZdelta_sZdelta_er�rrrr<szStdDequePrinter.to_stringcCs@|jdd}|jdd}|j|d|d|d|d|j�S)NrTrnrorUr�r�)r2r�r�)rrjrqrrrr9szStdDequePrinter.childrencCsdS)Nrsr)rrrrrtszStdDequePrinter.display_hintN)
r	r
rrrr�r3r<r9rtrrrrr��s
r�c@s eZdZdZdd�Zdd�ZdS)�StdDequeIteratorPrinterzPrint std::deque::iteratorcCs
||_dS)N)r2)rr$r2rrrr3#sz StdDequeIteratorPrinter.__init__cCs |jdsdSt|jdj��S)Nr�z+non-dereferenceable iterator for std::deque)r2rrD)rrrrr<&s
z!StdDequeIteratorPrinter.to_stringN)r	r
rrr3r<rrrrr� sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�StdStringPrinterz&Print a std::basic_string of some kindcCs||_|jd�dk|_dS)Nz::__cxx11::basic_stringr*���)r2�find�
new_string)rr$r2rrrr3.szStdStringPrinter.__init__cCs�|jj}|jtjkr|j�}|jdd}|jrL|jd}|j|jj��}n<|j	�j�}tj
t|�d�j�}|j|�d}|j
�d}t|d�r�|j|d�S|j|d�S)	NZ_M_dataplusr`Z_M_string_lengthz::_Repr*Z	_M_length�lazy_string)rr)r2rrlr�
TYPE_CODE_REFr�r�rArrrrr8rDr~r��string)rr�ptrrrZrealtypeZreptype�headerrrrr<2s

zStdStringPrinter.to_stringcCsdS)Nr�r)rrrrrtIszStdStringPrinter.display_hintN)r	r
rrr3r<rtrrrrr�+sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�Tr1HashtableIteratorcCsj|d|_d|_|d|_t|jd�j�|_d|_x2|j|jkrd|j|j|_|jrVP|jd|_q4WdS)NZ
_M_bucketsrZ_M_bucket_countrSr*)�buckets�bucket�bucket_countrrr8�	node_typerH)r�hashrrrr3Ms

zTr1HashtableIterator.__init__cCs|S)Nr)rrrrr4YszTr1HashtableIterator.__iter__cCs�|jdkrt�|jj|j�}|j�d}|j�d|_|jdkr�|jd|_x2|j|jkr~|j|j|_|jrpP|jd|_qNW|S)NrZ_M_vrLr*)rHr5rAr�rDr�r�r�)rrHr�rrrr\s

zTr1HashtableIterator.__next__N)r	r
rr3r4rrrrrr�Lsr�c@s$eZdZdd�Zdd�Zdd�ZdS)�StdHashtableIteratorcCs$|dd|_t|jd�j�|_dS)NZ_M_before_begin�_M_nxtZ__node_type)rHrrr8r�)rr�rrrr3lszStdHashtableIterator.__init__cCs|S)Nr)rrrrr4pszStdHashtableIterator.__iter__cCsR|jdkrt�|jj|j�j�}|d|_|dj}|j|jjd�j��}|j�S)Nrr�rB)	rHr5rAr�rDrCrr,r8)rrQ�valptrrrrrss


zStdHashtableIterator.__next__N)r	r
rr3r4rrrrrr�ksr�c@s<eZdZdZdd�Zdd�Zdd�Zedd	��Zd
d�Z	dS)
�Tr1UnorderedSetPrinterzPrint a tr1::unordered_setcCst|�|_||_dS)N)r%r$r2)rr$r2rrrr3s
zTr1UnorderedSetPrinter.__init__cCs|jjd�r|jS|jdS)Nzstd::tr1�_M_h)r$r�r2)rrrr�	hashtable�sz Tr1UnorderedSetPrinter.hashtablecCs|j�d}d|jt|�fS)N�_M_element_countz
%s with %s)r�r$r�)rrPrrrr<�sz Tr1UnorderedSetPrinter.to_stringcCsd|S)Nz[%d]r)�irrr�format_count�sz#Tr1UnorderedSetPrinter.format_countcCs@t|jtj��}|jjd�r.t|t|j���St|t	|j���S)Nzstd::tr1)
r
r��	itertoolsrPr$r�rr�r�r�)r�counterrrrr9�szTr1UnorderedSetPrinter.childrenN)
r	r
rrr3r�r<�staticmethodr�r9rrrrr�|sr�c@s\eZdZdZdd�Zdd�Zdd�Zedd	��Zed
d��Z	edd
��Z
dd�Zdd�ZdS)�Tr1UnorderedMapPrinterzPrint a tr1::unordered_mapcCst|�|_||_dS)N)r%r$r2)rr$r2rrrr3�s
zTr1UnorderedMapPrinter.__init__cCs|jjd�r|jS|jdS)Nzstd::tr1r�)r$r�r2)rrrrr��sz Tr1UnorderedMapPrinter.hashtablecCs|j�d}d|jt|�fS)Nr�z
%s with %s)r�r$r�)rrPrrrr<�sz Tr1UnorderedMapPrinter.to_stringccs&x |D]}x|D]
}|VqWqWdS)Nr)rYrQr�rrr�flatten�s

zTr1UnorderedMapPrinter.flattencCs|d|dfS)Nr�r�r)rQrrr�
format_one�sz!Tr1UnorderedMapPrinter.format_onecCsd|S)Nz[%d]r)r�rrrr��sz#Tr1UnorderedMapPrinter.format_countcCsdt|jtj��}|jjd�r@|jt|jt|j	����}t
||�S|jt|jt|j	����}t
||�S)Nzstd::tr1)r
r�r�rPr$r�r�r�r�r�rr�)rr��datarrrr9�s
zTr1UnorderedMapPrinter.childrencCsdS)Nr�r)rrrrrt�sz#Tr1UnorderedMapPrinter.display_hintN)
r	r
rrr3r�r<r�r�r�r�r9rtrrrrr��sr�c@s8eZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
S)�StdForwardListPrinterzPrint a std::forward_listc@s$eZdZdd�Zdd�Zdd�ZdS)zStdForwardListPrinter._iteratorcCs||_|d|_d|_dS)NrLr)rMrNrP)rrMrOrrrr3�s
z(StdForwardListPrinter._iterator.__init__cCs|S)Nr)rrrrr4�sz(StdForwardListPrinter._iterator.__iter__cCsl|jdkrt�|jj|j�j�}|d|_|j}|jd|_|dj}|j|jjd�j	��}d||j�fS)NrrLr*rBz[%d])
rNr5rArMrDrPrCrr,r8)rrQrPr�rrrr�s


z(StdForwardListPrinter._iterator.__next__N)r	r
rr3r4rrrrrrR�srRcCs||_t|�|_dS)N)r2r%r$)rr$r2rrrr3�szStdForwardListPrinter.__init__cCs0t|jjd�}|j�j�}|j||jdd�S)NrSrTr])rr2rrr8rR)rrMrrrr9�szStdForwardListPrinter.childrencCs*|jddddkr d|jSd|jS)NrTr]rLrzempty %sz%s)r2r$)rrrrr<�s
zStdForwardListPrinter.to_stringN)	r	r
rrrrRr3r9r<rrrrr��s
r�c@sBeZdZdZd
dd�Zdd�ZGdd�de�Zd	d
�Zdd�Z	dS)�SingleObjContainerPrinterz7Base class for printers of containers of single objectsNcCs||_||_||_dS)N)�contained_valuer}�hint)rr2Zvizr�rrrr3�sz"SingleObjContainerPrinter.__init__cCs(tst|�Stjjtjj�|�p&t|�S)z4Return TYPE as a string after applying type printers)�_use_type_printingrr�types�apply_type_recognizers�get_type_recognizers)rrrrr�
_recognize�sz$SingleObjContainerPrinter._recognizec@s$eZdZdd�Zdd�Zdd�ZdS)z$SingleObjContainerPrinter._containedcCs
||_dS)N)r2)rr2rrrr3�sz-SingleObjContainerPrinter._contained.__init__cCs|S)Nr)rrrrr4�sz-SingleObjContainerPrinter._contained.__iter__cCs"|jdkrt�|j}d|_d|fS)Nz[contained value])r2r5)rZretvalrrrr�s

z-SingleObjContainerPrinter._contained.__next__N)r	r
rr3r4rrrrr�
_contained�sr�cCs6|jdkr|jd�St|jd�r*|jj�S|j|j�S)Nr9)r�r�r~r}r9)rrrrr9s



z"SingleObjContainerPrinter.childrencCs(t|jd�r"t|jd�r"|jj�S|jS)Nr9rt)r~r}rtr�)rrrrrts
z&SingleObjContainerPrinter.display_hint)N)
r	r
rrr3r�rr�r9rtrrrrr��s
r�c	CsH|j�j}tjddkr"t|�}nt|�}ytj|�jj	SdSdS)z>Find the name of the function referred to by the gdb.Value f, rrN)
rDrC�sys�version_infor�rprZblock_for_pc�functionr)�frrr�function_pointer_to_names

r�cs(eZdZdZ�fdd�Zdd�Z�ZS)�StdExpAnyPrinterz*Print a std::any or std::experimental::anycsLt|�|_tjdd|jd�|_||_d|_d}d}|jd}|dk�r6t|�}|s`td|j��dj|�}tj	||�}|s�td|j��|j
d�}	d	|	kr�tjd
ttj
d	�j��|j
d��}	tj
|	�}
|
jd�|_d}d|	kr�|jdd
j}n(d|	k�r
|jdd}ntd|j��|j|jj��j�}tj|�}tt|�j||�dS)Nz&^std::experimental::fundamentals_v\d::zstd::experimental::r*Z
_M_managerrzInvalid function pointer in %sz"({0}::_Manager_\w+<.*>)::_S_managezUnknown manager function in %szstd::stringzstd::string(?!\w)z::_Manager_internalrBZ	_M_bufferz::_Manager_externalr7)r%r$r�subr2�contained_typer�r�formatr�grouprrrrr,rCrAr8rDr|�superr�r3)rr$r2r�r}Zmgr�funcZrx�mZmgrnameZmgrtyper�)�	__class__rrr3,s:




"


zStdExpAnyPrinter.__init__cCsT|jdkrd|jSd|j}t|jd�r8||jj�S|j|j�}|tt|��S)Nz%s [no contained value]z%s containing r9)r�r$r~r}r<r�r%r)r�descrErrrr<Os


zStdExpAnyPrinter.to_string)r	r
rrr3r<�
__classcell__rr)r�rr�)s#r�cs(eZdZdZ�fdd�Zdd�Z�ZS)�StdExpOptionalPrinterz4Print a std::optional or std::experimental::optionalcs�|j|jjd��}t|�|_tjdd||jd�|_|jjd�sH|d}||_|jdr`|dnd}t	j
|d�}tt|�j
||�dS)Nrz0^std::(experimental::|)(fundamentals_v\d::|)(.*)z
std::\1\3<%s>r*zstd::experimental�
_M_payload�
_M_engaged)r�rr,r%r$rr�r�r2rr|r�r�r3)rr$r2rEr�r})r�rrr3[s
zStdExpOptionalPrinter.__init__cCs:|jdkrd|jSt|jd�r4d|j|jj�fS|jS)Nz%s [no contained value]r9z%s containing %s)r�r$r~r}r<)rrrrr<fs

zStdExpOptionalPrinter.to_string)r	r
rrr3r<r�rr)r�rr�Xsr�cs(eZdZdZ�fdd�Zdd�Z�ZS)�StdVariantPrinterzPrint a std::variantcs�t|j�}t|��_d�jdj�fdd�|D��f�_|d�_�jt|�kr`d�_d}d}n@|t�j��_|dddj	}|j
�jj��j�}t
j|�}tt��j||d	�dS)
Nz%s<%s>z, csg|]}�j|��qSr)r�)�.0Zalt)rrr�
<listcomp>tsz.StdVariantPrinter.__init__.<locals>.<listcomp>Z_M_indexZ_M_ur�rBrs)r0rr%r$�join�indexrwr�rprCrAr8rDrr|r�r�r3)rr$r2Zalternativesr�r}Zaddr)r�)rrr3qs

$

zStdVariantPrinter.__init__cCsH|jdkrd|jSt|jd�r8d|j|j|jj�fSd|j|jfS)Nz%s [no contained value]r9z%s [index %d] containing %sz
%s [index %d])r�r$r~r}r�r<)rrrrr<�s


zStdVariantPrinter.to_string)r	r
rrr3r<r�rr)r�rr�nsr�cs(eZdZdZ�fdd�Zdd�Z�ZS)�StdNodeHandlePrinterzPrint a container node handlecs�|jjd�|_|jjd�jd�}t|jd�|_|jjd�|jk|_|d}|r~|jrbt|j��}nt	|d|j�}t
j|�}nd}d}|d}|dr�|d	nd|_t
t|�j||d
�dS)Nr*rrZ
_Rb_tree_noder7rBZ_M_allocr�r�rs)rr,Z
value_typer!r�is_rb_tree_node�is_map_noder�rDrFrr|Zallocr�r�r3)rr$r2rMZnodeptrr�r}Zoptalloc)r�rrr3�s"zStdNodeHandlePrinter.__init__cCsfd}|js|d7}|jr"|d7}n|d7}|jrZ|d7}t|jd�rVd||jj�fS|Sd|SdS)	Nznode handle for z
unordered r��setz
 with elementr9z%s = %szempty %s)r�r�r�r~r}r<)rr�rrrr<�s
zStdNodeHandlePrinter.to_string)r	r
rrr3r<r�rr)r�rr��sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�StdExpStringViewPrinterzFPrint a std::basic_string_view or std::experimental::basic_string_viewcCs
||_dS)N)r2)rr$r2rrrr3�sz StdExpStringViewPrinter.__init__cCs6|jd}|jd}t|d�r*|j|d�S|j|d�S)NZ_M_strZ_M_lenr�)rr)r2r~r�r�)rr�rwrrrr<�s



z!StdExpStringViewPrinter.to_stringcCsdS)Nr�r)rrrrrt�sz$StdExpStringViewPrinter.display_hintN)r	r
rrr3r<rtrrrrr��sr�c@s@eZdZdZdd�Zdd�Zdd�ZGdd	�d	e�Zd
d�Z	dS)
�StdExpPathPrinterzDPrint a std::experimental::filesystem::path or std::filesystem::pathcCsB||_||_|jddd}|jddd}t||�|_dS)N�_M_cmptsrTrnro)r2r$rp�	num_cmpts)rr$r2rjrfrrrr3�s
zStdExpPathPrinter.__init__cCs:t|jd�}|dd�dkr"dS|d	d�dkr6dSdS)
NZ_M_type�	Z	_Root_dirzroot-directory�
Z
_Root_namez	root-namei����i����)rr2)r�trrr�
_path_type�szStdExpPathPrinter._path_typecCs8d|jd}|jdkr0|j�}|r0d||f}d|S)Nz%s�_M_pathnamerz%s [%s]zfilesystem::path %s)r2r�r�)r�pathr�rrrr<�s
zStdExpPathPrinter.to_stringc@s$eZdZdd�Zdd�Zdd�ZdS)zStdExpPathPrinter._iteratorcCs,||_|dd|_|dd|_d|_dS)NrTrnror)�pathtyperdrfrP)rZcmptsr�rrrr3�sz$StdExpPathPrinter._iterator.__init__cCs|S)Nr)rrrrr4�sz$StdExpPathPrinter._iterator.__iter__cCsd|j|jkrt�|jj�}|j}|jd|_|jd|_|d}t|j|�j�}|sX|}d||fS)Nr*r�z[%s])rdrfr5rDrPr�r�r�)rrdrPr�r�rrrr�s
z$StdExpPathPrinter._iterator.__next__N)r	r
rr3r4rrrrrrR�srRcCs|j|jd|j�S)Nr�)rRr2r$)rrrrr9�szStdExpPathPrinter.childrenN)
r	r
rrr3r�r<rrRr9rrrrr��sr�c@s8eZdZdZdd�ZGdd�de�Zdd�Zdd	�Zd
S)�StdPairPrinterz?Print a std::pair object, with 'first' and 'second' as childrencCs
||_dS)N)r2)rr$r2rrrr3�szStdPairPrinter.__init__c@s(eZdZdZdd�Zdd�Zdd�ZdS)	zStdPairPrinter._iterz?An iterator for std::pair types. Returns 'first' then 'second'.cCs||_d|_dS)Nr�)r2�which)rr2rrrr3szStdPairPrinter._iter.__init__cCs|S)Nr)rrrrr4szStdPairPrinter._iter.__iter__cCs8|jdkrt�|j}|dkr$d|_nd|_||j|fS)Nr�r�)r�r5r2)rr�rrrrs
zStdPairPrinter._iter.__next__N)r	r
rrr3r4rrrrrr��sr�cCs|j|j�S)N)r�r2)rrrrr9szStdPairPrinter.childrencCsdS)Nr)rrrrr<szStdPairPrinter.to_stringN)	r	r
rrr3rr�r9r<rrrrr��s
r�cs$eZdZ�fdd�Zdd�Z�ZS)�	RxPrintercs$tt|�j�||_||_d|_dS)NT)r�r�r3rr��enabled)rrr�)r�rrr3szRxPrinter.__init__cCs:|js
dS|jjtjkr,ttjd�r,|j�}|j|j	|�S)N�referenced_value)
r�rrlrr�r~�Valuer�r�r)r�valuerrr�invoke!szRxPrinter.invoke)r	r
rr3r�r�rr)r�rr�sr�csHeZdZ�fdd�Zdd�Zdd�Zdd�Zed	d
��Zdd�Z	�Z
S)
�Printercs6tt|�j�||_g|_i|_d|_tjd�|_	dS)NTz^([a-zA-Z0-9_:]+)(<.*>)?$)
r�r�r3r�subprinters�lookupr�r�compile�compiled_rx)rr)r�rrr3.szPrinter.__init__cCs<|jj|�std|��t||�}|jj|�||j|<dS)Nz0libstdc++ programming error: "%s" does not match)rrrr�r�r+r�)rrr��printerrrr�add6s

zPrinter.addcCs:|j|||�tr6tjddt|�}|j|||�dS)Nz^(std|__gnu_cxx)::z\g<0>%s)rrrr�)rrNrr�Zvbaserrr�add_version@szPrinter.add_versioncCs$|j|||�|j|d||�dS)Nz__cxx1998::)r)rrNrr�rrr�
add_containerGszPrinter.add_containercCs&|jtjkr|j�}|j�j�}|jS)N)rlrr�r�rr�tag)rrrr�get_basic_typeKszPrinter.get_basic_typecCsr|j|j�}|sdS|jj|�}|s(dS|jd�}|jjtjkrTttj	d�rT|j
�}||jkrn|j|j|�SdS)Nr*r�)
rrrrr�rlrr�r~r�r�r�r�)rr2r$r�basenamerrr�__call__Vs

zPrinter.__call__)r	r
rr3rrrr�rr	r�rr)r�rr�-s
r�c@s0eZdZdZdd�ZGdd�de�Zdd�ZdS)	�TemplateTypePrinteral
    A type printer for class templates with default template arguments.

    Recognizes specializations of class templates and prints them without
    any template arguments that use a default template argument.
    Type printers are recursively applied to the template arguments.

    e.g. replace "std::vector<T, std::allocator<T> >" with "std::vector<T>".
    cCs||_||_d|_dS)NT)r�defargsr�)rrrrrrr3zszTemplateTypePrinter.__init__c@s(eZdZdZdd�Zdd�Zdd�ZdS)	zTemplateTypePrinter._recognizerz-The recognizer class for TemplateTypePrinter.cCs||_||_dS)N)rr)rrrrrrr3�sz(TemplateTypePrinter._recognizer.__init__c	Cs�|jdkrdS|jj|j�s dSt|�}g}d}x�tt|��D]�}||}|jj|�}|dk	r�|j|�}y|t	j
|�kr|dSWn$t	jk
r�|j|kr�dSYnXd}q>|r�dS|j|j
|��q>W|jd|jjd��}t|�}|ddj|�dS)a
            If type_obj is a specialization of self.name that uses all the
            default template arguments for the class template, then return
            a string representation of the type without default arguments.
            Otherwise, return None.
            NFTr�<z, r�)rr�rr0�rangerwr�getr�rr�errorr+�_recognize_subtyper�r)r�)	rr-r/Zdisplayed_argsZrequire_defaultedr.ZtargZdefargr rrr�	recognize�s2



z)TemplateTypePrinter._recognizer.recognizecCs�|jtjkr|j|j��dS|jtjkrj|j|j��}t|j��jd�rR|dSd||j	�ddfS|jtj
kr�|j|j��dSttd�r�|jtjkr�|j|j��dStj
jtj
j�|�}|r�|St|�S)zxConvert a gdb.Type to a string by applying recognizers,
            or if that fails then simply converting to a string.�*z[]z%s[%d]r*�&�TYPE_CODE_RVALUE_REFz&&)rlrZ
TYPE_CODE_PTRrr�r�rr�endswithr
r�r~rr�r�r�)rr-r(rrrr�s"
z2TemplateTypePrinter._recognizer._recognize_subtypeN)r	r
rrr3rrrrrr�_recognizers1rcCs|j|j|j�S)z1Return a recognizer object for this type printer.)rrr)rrrr�instantiate�szTemplateTypePrinter.instantiateN)r	r
rrr3�objectrrrrrrr
os	Pr
csbtd||�}tjj||�tr^dt�t�fdd�|j�D��}t�||�}tjj||�dS)a�
    Add a type printer for a class template with default template arguments.

    Args:
        name (str): The template-name of the class template.
        defargs (dict int:string) The default template arguments.

    Types in defargs can refer to the Nth template-argument using {N}
    (with zero-based indices).

    e.g. 'unordered_map' has these defargs:
    { 2: 'std::hash<{0}>',
      3: 'std::equal_to<{0}>',
      4: 'std::allocator<std::pair<const {0}, {1}> >' }

    zstd::c3s"|]\}}||jd��fVqdS)zstd::N)r#)r�r.�d)�nsrr�	<genexpr>�sz0add_one_template_type_printer.<locals>.<genexpr>N)r
rr��register_type_printerr�dict�items)�objrrrr)rr�add_one_template_type_printer�sr c@s0eZdZdZdd�ZGdd�de�Zdd�ZdS)	�FilteringTypePrintera�
    A type printer that uses typedef names for common template specializations.

    Args:
        match (str): The class template to recognize.
        name (str): The typedef-name that will be used instead.

    Checks if a specialization of the class template 'match' is the same type
    as the typedef 'name', and prints it as 'name' instead.

    e.g. if an instantiation of std::basic_istream<C, T> is the same type as
    std::istream then print it as std::istream.
    cCs||_||_d|_dS)NT)rrr�)rrrrrrr3�szFilteringTypePrinter.__init__c@s eZdZdZdd�Zdd�ZdS)z FilteringTypePrinter._recognizerz-The recognizer class for TemplateTypePrinter.cCs||_||_d|_dS)N)rrr-)rrrrrrr3sz)FilteringTypePrinter._recognizer.__init__c	Csf|jdkrdS|jdkrN|jj|j�s*dSytj|j�j�|_WnYnX|j|krbt|j�SdS)z�
            If type_obj starts with self.match and is the same type as
            self.name then return self.name, otherwise None.
            N)	rr-r�rrrrrr))rr-rrrr
s



z*FilteringTypePrinter._recognizer.recognizeN)r	r
rrr3rrrrrrsrcCs|j|j|j�S)z1Return a recognizer object for this type printer.)rrr)rrrrrsz FilteringTypePrinter.instantiateN)r	r
rrr3rrrrrrrr!�s
r!cCsPtd|d|�}tjj||�trLdt}t||||�}tjj||�dS)Nzstd::)r!rr�rr)rrrrrrrr�add_one_type_printer"sr"c
Cs�tsdSx@dVD]8}t|d|d�t|dd|d�t|d	|d
�qWxddWD]\}x dXD]}t|d|||�qZWx4dYD],}t|d|||�t|d|||�q|WqPWx�dZD]z}x$d[D]}t||d||d�q�WxNd\D]F}t||d ||d!�x&d]D]}t||||||��qW�q�Wq�Wt|d%d&�xd^D]}t|d-|��qFWt|d.d/�t|d.d0�t|d1d2�t|d1d3�t|d4d5�t|d4d6�t|d7d8�t|d7d9�t|d:d;�d<}x&d_D]}t||d	||d
��q�Wt|d=d>d?i�t|d@d>dAi�t|dBd>dAi�t|dCd>dAi�t|dDd>dAi�t|dEd>dAi�t|dFdGdHdI��t|dJdGdHdI��t|dKdGdAdL��t|dMdGdAdL��t|dNdOdPdHdQ��t|dRdOdPdHdQ��t|dSdOdPdAdT��t|dUdOdPdAdT��dS)`Nr"r��u16�u32�basic_stringr�z__cxx11::basic_string�	__cxx11::�basic_string_viewZstring_view�ios�	streambuf�istream�ostream�iostream�filebuf�ifstream�ofstream�fstreamZbasic_�	stringbuf�
istringstream�
ostringstream�stringstreamz__cxx11::basic_Zbasic_regexZregexr{�s�wc�wsZ
match_resultsr�	sub_match�regex_iterator�regex_token_iteratorZfposZ	streampos�nanoseconds�microseconds�milliseconds�seconds�minutes�hoursZdurationZlinear_congruential_engineZminstd_rand0Zminstd_randZmersenne_twister_engineZmt19937Z
mt19937_64Zsubtract_with_carry_engineZ
ranlux24_baseZ
ranlux48_baseZdiscard_block_engineZranlux24Zranlux48Zshuffle_order_engineZknuth_bzexperimental::fundamentals_v1::�
unique_ptrr*zstd::default_delete<{0}>�dequezstd::allocator<{0}>r[rYz
__cxx11::list�vectorr�zstd::less<{0}>z)std::allocator<std::pair<{0} const, {1}>>)r��multimapr�)r*r�multiset�
unordered_mapzstd::hash<{0}>zstd::equal_to<{0}>)rrD��unordered_multimap�
unordered_set)r*rrD�unordered_multiset)r"r�r#r$)r"r�)	r(r)r*r+r,r-r.r/r0)r1r2r3r4)r"r&)r"r�)r{r5r6r7)r8r9r:)r;r<r=r>r?r@)r"r�r#r$)r�r"r )rZch�x�abiZdurrrrr�register_type_printers*s�





(







rNcCs8trtjj|t�n|dkr t}|jjt�t|�dS)z4Register libstdc++ pretty-printers with objfile Obj.N)�_use_gdb_pprZprintingZregister_pretty_printer�libstdcxx_printerZpretty_printersr+rN)rrrr�register_libstdcxx_printers�srQcCs�td�atjddt�tjddt�tjddt�tjddt�tjddt�tjddt�tjddt�tjdd	t�tjdd
t	�tjddt
�tjddt�tjdd
t�tjddt�tjddt	�tjddt�tjddt
�tjddt�tjdt�tjdt�tjdt�tjdt�tjdt�tjdt	�tjdt�tjdt�tjdt	�tjdt�tjdt
�tjdt�tjddt�tjdd t�tjdd!t�tjdd"t�tjdd#t�tjdd$t�tjdd%t�tjd&dt�tjd&d t�tjd&d!t�tjd&d"t�tjd&d#t�tjd&d$t�tjd't�tjd(t�tjd)t�tjd*t�tjd+t�tjd,d-t�tjd,d.t�tjd,d/t�tjd0d1t�tjd2d1t�tjd3d1t�tjd4d1t�tjdd-t�tjdd.t�tjdd/t�tjdd5t�tjdd6t�tjd7d8t�tjdd9t�tjdd:t�tjdd;t�tjdd<t�tjdd=t�tjdd>t�tjd7d?t�tjd7d@t�tjddAt �tjddBt �tjdCt!�dS)DNzlibstdc++-v6zstd::r%zstd::__cxx11::ZbitsetrBrYr�rErFr�Zpriority_queueZqueuer?r��stackrArCzstd::__debug::bitsetzstd::__debug::dequezstd::__debug::listzstd::__debug::mapzstd::__debug::multimapzstd::__debug::multisetzstd::__debug::priority_queuezstd::__debug::queuezstd::__debug::setzstd::__debug::stackzstd::__debug::unique_ptrzstd::__debug::vectorZ
shared_ptrZweak_ptrrGrJrIrKr[z
std::tr1::zstd::__debug::unordered_mapzstd::__debug::unordered_setz std::__debug::unordered_multimapz std::__debug::unordered_multisetzstd::__debug::forward_listz$std::experimental::fundamentals_v1::�anyZoptionalr'z#std::experimental::filesystem::v1::r�z,std::experimental::filesystem::v1::__cxx11::zstd::filesystem::zstd::filesystem::__cxx11::ZvariantZ_Node_handlez__gnu_cxx::ZslistZ_List_iteratorZ_List_const_iteratorZ_Rb_tree_iteratorZ_Rb_tree_const_iteratorZ_Deque_iteratorZ_Deque_const_iteratorZ__normal_iteratorZ_Slist_iteratorZ_Fwd_list_iteratorZ_Fwd_list_const_iteratorz__gnu_debug::_Safe_iterator)"r�rPrr�rr�r�rKr�r�r�rzrvr=r_rr6r�r�r�r�r�r�r�r�r�r\rXr�r�rur^rZr�rrrr�build_libstdcxx_dictionary�s�rT)Lrr�rr�r�rrr�r
�ziprrpr�rOZgdb.printing�ImportErrorr�Z	gdb.typesr~r�rrr!r%r)r0r1r6r=rFrJrKrVrXrZr\r^r_rurvrzrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rPr
r r!r"rNrQrTrrrr�<module>s�
%"
LI'+%.@!,%+/)5#@d4^

Youez - 2016 - github.com/yon3zu
LinuXploit