
    Ig8                    >   S SK Jr  S SKJr  S SKrS SKrS SKrS SKJrJ	r	  S SK
r
S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  \R&                  S    S:  d   S5       e/ SQr\R*                  " S	\S S
9r\R*                  " S/ SQS S
9r0 \R0                  S_\R2                  S_\R4                  S_\R6                  S_\R8                  S_\R:                  S_\R<                  S_\R>                  S_\R@                  S_\RB                  S_\RD                  S_\RF                  S_\RH                  S_\RJ                  S_\RL                  S_\RN                  S_\RP                  S_\RR                  S\RT                  S\RV                  S0Er,\" SS5      r-\R\                  \-" SS 5      \R^                  \-" SS5      \R`                  \-" SS5      \Rb                  \-" S S!5      0r2S" r3S# r4\" 5       S$ 5       r5GSS% jr6S& r7S' r8\9" S(5      S)\9" S*5      S+\9" S,5      S-\9" S.5      S/\9" S05      S10r:\;" S S25       H  r<\<\:;  d  M  S3\<S4 3\:\<'   M     S5 r=GSS6 jr>GSS7 jr?S8 r@S9 rAS: rBS; rCS< rDS= rES> rFS? rG\R                  " S@SS5      R                  5       rJSA rKSB rLSC rMSD rNSE rOSF rP " SG SH5      rQ " SI SJ5      rR " SK SL5      rS " SM SN5      rT " SO SP5      rU " SQ SR\5      rV " SS ST\V5      rW " SU SV\V5      rX " SW SX5      rY " SY SZ\Y5      rZ " S[ S\5      r[ " S] S^5      r\ " S_ S`\[5      r] " Sa Sb\5      r^ " Sc Sd\5      r_ " Se Sf\5      r` " Sg Sh\5      ra " Si Sj\_5      rb\" SkSl5      rc " Sm Sn\5      rd " So Sp\5      re\" SqSr5      rf\f" SsSt5      \f" SuSv5      Sw.rg " Sx Sy5      rh " Sz S{\h5      ri " S| S}\h5      rj\i\jSw.rk\kR                  5        V Vs0 s H  u  pS~U  S	3U_M     snn rm " S S5      rn " S S5      ro " S S5      rp " S S5      rq0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_ESSSS.Err " S S5      rs " S S\s5      rt " S S\s5      ru " S S\u5      rv " S S\s5      rw " S S\s5      rx " S S\s5      ry " S S\y5      rz " S S\y5      r{ " S S\s5      r| " S S\s5      r} " S S\s5      r~ " S S\s5      r " S S5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S GS \5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS	 GS
\5      r " GS GS\5      r " GS GS5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS \5      r " GS! GS"\5      r " GS# GS$\5      r " GS% GS&\5      r " GS' GS(5      r " GS) GS*5      r " GS+ GS,5      r " GS- GS.\5      r " GS/ GS0\5      r " GS1 GS2\5      r " GS3 GS4\5      r " GS5 GS6\5      r " GS7 GS8\5      r " GS9 GS:\5      r " GS; GS<\5      r " GS= GS>\5      r " GS? GS@\5      r " GSA GSB\5      r " GSC GSD\5      r " GSE GSF\5      r " GSG GSH\5      r " GSI GSJ\5      r " GSK GSL\5      r " GSM GSN\5      r " GSO GSP\5      r " GSQ GSR\5      r " GSS GST\5      r " GSU GSV\5      r " GSW GSX\5      r\" GSYGSZ5      r0 \GRr                  \" \S5      _\GRt                  \" \S5      _\R8                  \" \S5      _\R0                  \" \S5      _\R:                  \" \S5      _\R2                  \" \S5      _\R<                  \" \S5      _\R4                  \" \S5      _\R>                  \" \S5      _\R6                  \" \S5      _\R@                  \" \S5      _\RB                  \" \S5      _\RD                  \" \S5      _\GRv                  \" \S5      _\GRx                  \" \S5      _\GRz                  \" \S5      _\GR|                  \" \S5      _0 \GR~                  \" \S5      _\RF                  \" \S5      _\RH                  \" \S5      _\RV                  \" \S5      _\RJ                  \" \S5      _\RL                  \" \S5      _\RT                  \" \S5      _\RP                  \" \S5      _\RN                  \" \S5      _\RR                  \" \S5      _\GR                  \" \S5      _\GR                  \" \S5      _\GR                  \" \S5      _\GR                  \" \S5      _\GR                  \" \S5      _\GR                  \" \S5      _\GR                  \" \S5      _E\GR                  \" \GS[5      \GR                  \" \GS\5      \GR                  \" \GS]5      \GR                  \" \S5      0Er\" \5      S-
  rGS^ r " GS_ GS`5      r " GSa GSb\5      r " GSc GSd5      r " GSe GSf5      r " GSg GSh5      r " GSi GSj5      r " GSk GSl\5      r " GSm GSn\5      r " GSo GSp5      r " GSq GSr5      r " GSs GSt5      r " GSu GSv5      r " GSw GSx5      r0 GSy\_GSz\	" \Ss5      _GS{\	" \Su5      _GS|\_GS}\_GS~\_GS\	" \Ss5      _GS\	" \Su5      _GS\_GS\_GS\_GS\_GS\_GS\_GS\_GS\_GS\_GS\0ErGS rGS r\GS:X  a  \" 5         ggs  snn f (      )
namedtuple)SequenceN)	lru_cachepartial)get_basic_type   z#Arrow GDB extension needs Python 3+)&NABOOLUINT8INT8UINT16INT16UINT32INT32UINT64INT64
HALF_FLOATFLOATDOUBLESTRINGBINARYFIXED_SIZE_BINARYDATE32DATE64	TIMESTAMPTIME32TIME64INTERVAL_MONTHSINTERVAL_DAY_TIME
DECIMAL128
DECIMAL256LISTSTRUCTSPARSE_UNIONDENSE_UNION
DICTIONARYMAP	EXTENSIONFIXED_SIZE_LISTDURATIONLARGE_STRINGLARGE_BINARY
LARGE_LISTINTERVAL_MONTH_DAY_NANOType)startTimeUnit)SECONDMILLIMICRONANObhiqBHIQefdiiiiqTimeUnitTraits)
multiplierfractional_digits   i  i@B    i ʚ;	   c                     U $ N )vs    share/arrow/gdb/gdb_arrow.pyidentityrN   [   s    H    c                 f    U [         R                  [         R                  [         R                  4;  $ rJ   )r/   r	   r$   r%   )type_ids    rM   has_null_bitmaprR   _   s$    477D$5$5t7G7GHHHrO   c                      [         R                  " SSS9R                  5       n SU ;   a  gSU ;   a  g[        R                  " SU  S35        [
        R                  $ )z9
Get the target program (not the GDB host's) endianness.
zshow endianT)	to_stringbiglittlez>Could not determine target endianness from GDB's response:
"""z""")gdbexecutestripwarningswarnsys	byteorder)ss    rM   
byte_orderr_   c   sZ    
 	MT288:Az	QMM //0c6 7 ==rO   c                 4   Uc  [        U R                  5      n[        U5      nSU;   a  UR                  S5      (       d  SU 3nUR                  [
        R                  :X  a	  SU SU  S3$ U R                  c  [        SU  35      eSU SU R                   S3$ )zK
Return a parsable form of gdb.Value `val`, optionally with gdb.Type `ty`.
z::z((z) (z))z Cannot further evaluate rvalue: z(* (z*) ()	r   typestr
startswithcoderW   TYPE_CODE_PTRaddress
ValueError)valtytypenames      rM   for_evaluationrk   s   s     
zCHH%2wHx 3 3D 9 9 z?	ww####H:SR((
{{;C5ABB(4}B//rO   c                     [        U 5      n U R                  [        R                  :H  =(       aD    [        U R	                  5       5      R                  [        R
                  [        R                  4;   $ rJ   )r   rd   rW   re   targetTYPE_CODE_CHARTYPE_CODE_INT)ri   s    rM   is_char_starrp      sU    		BGGs((( ;299;',,&&(9(9:;<rO   c                    [        U R                  5      nUR                  [        R                  :X  a  U R                  5       $ UR                  R                  S5      (       aJ  SUR                  ;   a  [        U 5      R                  $ SUR                  ;   a  [        U 5      R                  $ [        SUR                   S35      e)z%
Dereference a raw or smart pointer.
zstd::shareduniquez"Cannot dereference value of type '')r   ra   rd   rW   re   dereferencenamerc   	SharedPtrvalue	UniquePtr	TypeErrorrh   ri   s     rM   derefr|      s     
	!B	ww####  	ww'""rwwS>'''rwwS>'''
8	C
DDrO   \z\\
z\nz\r	z\t"z\"    z\x02xc                     Sn[        U [        R                  5      (       a  U R                  5       n [	        U 5      U:  a   U SU n SU R                  [        5      -   S-   $ SU R                  [        5      -   S-   $ )z?
Format a Python string or gdb.Value for display as a literal.
2   Nr   z" [continued])
isinstancerW   Valuestringlen	translate_string_literal_mapping)r^   max_lens     rM   string_literalr      sp     G!SYYHHJ
1vhwKQ[[!899OKKQ[[!899C??rO   c                 <    U R                  US9R                  5       $ )zY
Format a gdb.Value for display as a literal containing possibly
unprintable characters.
length)lazy_stringrx   )rh   sizes     rM   bytes_literalr      s    
 ??$?'--//rO   c                 t    Uc  U R                  SSS9nOUS:w  a  U R                  SSUS9nOSn[        U5      $ )z4
Format a gdb.Value for display as a utf-8 literal.
utf8backslashreplace)encodingerrorsr   )r   r   r    )r   r   )rh   r   r^   s      rM   utf8_literalr      sH     |JJ/AJB	JJ/A$JO!rO   c                     [         R                  " 5       R                  U R                  S5      n[        R
                  " SU5      S   $ )zV
Return a Python float of the given half-float (represented as a uint64_t
gdb.Value).
   r>   r   )rW   selected_inferiorread_memoryrf   structunpack)rh   bufs     rM   half_float_valuer      s9    
 


!
-
-ckk1
=C==c"1%%rO   c                     U R                   R                  S5      nU R                  R                  UR	                  5       5      R                  5       $ )z 
Load a std::atomic<T>'s value.
r   )ra   template_argumentrf   reinterpret_castpointerru   )rh   valtys     rM   load_atomicr      s<     HH&&q)E;;''8DDFFrO   c                 ~    [        U R                  5      R                  [        R                  :w  a  [        U 5      n U $ )zJ
Load a null count from a gdb.Value of an integer (either atomic or not).
)r   ra   rd   rW   ro   r   rh   s    rM   load_null_countr      s0     chh$$(9(99#JrO   c                 n    [        U [        5      (       d  [        [        U 5      5      nWS:w  a  SU 3$ S$ )z
Format a null count value.
znull count zunknown null count)r   intr   )rh   
null_counts     rM   format_null_countr      s>     c3-.
*4*:k*& '%'rO   c                 "    / SQ[        U 5         $ )N)r^   msusnsr   r   s    rM   short_time_unitr      s    "3s8,,rO   c                     [        U 5       S3$ )z
Format a MonthInterval value.
Mr   r   s    rM   format_month_intervalr      s     #hZq>rO   c                     U  SU S3$ )Nr@   r   rK   )daysmillisecondss     rM   format_days_millisecondsr      s    V1\N"%%rO   c                     U  SU SU S3$ )Nr   r@   r   rK   )monthsr   nanoss      rM   format_months_days_nanosr     s    XQtfAeWB''rO   i  c                     [        U 5      n  [        R                  R                  U [        -   5      nU  SU S3$ ! [
         a    U  S3s $ f = f)z
Format a date32 value.
zd []zd [year <= 0])r   datetimedatefromordinal
_date_baserg   )rh   decodeds     rM   format_date32r     s^     c(C%--++C*,<= c'!$$  %m$$%s   &; AAc                     [        U 5      n [        U S5      u  pU(       a  U  S3$  [        R                  R	                  U[
        -   5      nU  SU S3$ ! [         a    U  S3s $ f = f)z
Format a date64 value.
i \&zms [non-multiple of 86400000]zms [r   zms [year <= 0])r   divmodr   r   r   r   rg   )rh   r   	remainderr   s       rM   format_date64r     s}     c(CS,/OD344&--++D:,=> d7)1%%  &n%%&s   &A A'&A'c                    [        U 5      n [        U5      n[        U5      n[        U   n[        XR                  5      u  pE [
        R
                  R                  U5      nUR                  5       R                  SS5      nUR                  S:  a  USUSUR                   S3 3-  nU  U SU S	3$ ! [        [        [        4 a    Sn N#f = f)
z
Format a timestamp value.
T r   .0r@   ztoo large to represent [r   )r   r   time_unit_traitsr   rD   r   utcfromtimestamp	isoformatreplacerE   rg   OSErrorOverflowError)rh   unit
short_unittraitsseconds
subsecondsdtprettys           rM   format_timestampr   (  s     c(Ct9D &Jd#F &7&78GD//8
 ''S1##a'*Qv'?'?&@$ABCCFU:,b** / *)*s   B3 3CCc                 x    U R                  5       R                  UR                  5       5      R                  5       $ rJ   )reference_valuer   	referencereferenced_valuer{   s     rM   cast_to_concreter   =  s-    !222<<>B!rO   c                 B    U R                  S5      (       d   eU SS S-   $ )zg
Given a DataTypeClass class name (such as "BooleanType"), return the
corresponding Scalar class name.
r/   NScalarendswithrv   s    rM   scalar_class_from_typer   B  s*    
 ==    9xrO   c                 B    U R                  S5      (       d   eU SS S-   $ )zf
Given a DataTypeClass class name (such as "BooleanType"), return the
corresponding Array class name.
r/   Nr   Arrayr   r   s    rM   array_class_from_typer   K  s*    
 ==    9wrO   c                   L    \ rS rSrSrS rS r\S 5       rS r	S r
S rS	 rS
rg)CStringiT  z#
A `const char*` or similar value.
c                     Xl         g rJ   r   selfrh   s     rM   __init__CString.__init__Y      rO   c                 ^    [        [        5      S:g  =(       a    [        [        S   5      S:g  $ Nr   )r   datar   s    rM   __bool__CString.__bool__\  s"    4yA~3#d1g,!"33rO   c                     U R                   $ rJ   r   r   s    rM   r   CString.data_  s    xxrO   c                 R    U R                   R                  5       R                  5       $ rJ   )rh   r   rx   r   s    rM   r   CString.bytes_literalc  s    xx##%++--rO   c                 ,    [        U R                  5      $ rJ   )r   rh   r   s    rM   r   CString.string_literalf  s    dhh''rO   c                 6    U R                   R                  5       $ rJ   )rh   r   r   s    rM   r   CString.stringj  s    xx  rO   c                 4    [        U R                  5       5      $ rJ   rb   r   r   fmts     rM   
__format__CString.__format__m      4%%'((rO   r   N)__name__
__module____qualname____firstlineno____doc__r   r   propertyr   r   r   r   r  __static_attributes__rK   rO   rM   r   r   T  s9    4  .(!)rO   r   c                   4    \ rS rSrSrS rS r\S 5       rSr	g)rw   iv  z
A `std::shared_ptr<T>` value.
c                     Xl          US   U l        g ! [        R                   a*    [        R                  " [        U5       S35      U l         g f = f)N_M_ptrz.get())rh   _ptrrW   errorparse_and_evalrk   r   s     rM   r   SharedPtr.__init__{  sL    	KHDIyy 	K**nS.A-B&+IJDI	Ks   
 ;AAc                     U R                   $ z'
Return the underlying pointer (a T*).
r  r   s    rM   getSharedPtr.get       yyrO   c                 6    U R                   R                  5       $ z
The underlying value (a T).
r  ru   r   s    rM   rx   SharedPtr.value      
 yy$$&&rO   r  rh   N
r  r  r  r  r  r   r  r  rx   r  rK   rO   rM   rw   rw   v  s&    K ' 'rO   rw   c                   4    \ rS rSrSrS rS r\S 5       rSr	g)ry   i  z
A `std::unique_ptr<T>` value.
c                     Xl         U R                   R                  R                  S5      nU R                   R                  R	                  UR                  5       R                  5       5      U l        g r   )rh   ra   r   rf   r   r   r  )r   rh   ri   s      rM   r   UniquePtr.__init__  sL    XX]],,Q/ HH$$55bjjl6J6J6LM	rO   c                     U R                   $ r  r  r   s    rM   r  UniquePtr.get  r!  rO   c                 6    U R                   R                  5       $ r#  r$  r   s    rM   rx   UniquePtr.value  r&  rO   r'  Nr(  rK   rO   rM   ry   ry     s&    N ' 'rO   ry   c                   .    \ rS rSrSrS r\S 5       rSrg)Varianti  z
A `std::variant<...>`.
c                 @   Xl          US   U l         U R                   R                  R                  U R                  5      U l        g ! [        R                   a*    [        R                  " [        U5       S35      U l         Nsf = f! [         a
    S U l         g f = f)N_M_indexz.index())
rh   indexrW   r  r  rk   ra   r   
value_typeRuntimeErrorr   s     rM   r   Variant.__init__  s    	NZDJ	#"hhmm==djjIDO	 yy 	N++~c/B.C8,LMDJ	N
  	#"DO	#s"   
A 4B	 ;BB	BBc                     U R                   c  g U R                  R                  nUb7  UR                  U R                   R	                  5       5      R                  5       $ g rJ   )r5  rh   rf   r   r   ru   )r   ptrs     rM   rx   Variant.value  sO    ??"hh?''(?(?(A **5+-8rO   )r4  rh   r5  N)	r  r  r  r  r  r   r  rx   r  rK   rO   rM   r1  r1    s     #  rO   r1  c                   \    \ rS rSrSrS rS r\S 5       r\S 5       r	S r
S rS	 rS
 rSrg)	StdStringi  z9
A `std::string` (or possibly `std::string_view`) value.
c                    Xl          US   S   U l        US   U l        g ! [        R                   aQ    [        R
                  " [        U5       S35      U l        [        R
                  " [        U5       S35      U l         g f = f)N_M_dataplus_M_p_M_string_lengthz.c_str().size())rh   _data_sizerW   r  r  rk   r   s     rM   r   StdString.__init__  s~    	M]+F3DJ/0DJyy 	M++~c/B.C8,LMDJ++~c/B.C7,KLDJ	Ms     A"BBc                      U R                   S:g  $ r   rC  r   s    rM   r   StdString.__bool__  s    zzQrO   c                     U R                   $ rJ   )rB  r   s    rM   r   StdString.data      zzrO   c                     U R                   $ rJ   rF  r   s    rM   r   StdString.size  rJ  rO   c                 d    U R                   R                  U R                  S9R                  5       $ )Nr   )rB  r   rC  rx   r   s    rM   r   StdString.bytes_literal  s'    zz%%TZZ%8>>@@rO   c                 ,    [        U R                  5      $ rJ   )r   rB  r   s    rM   r   StdString.string_literal  s    djj))rO   c                 6    U R                   R                  5       $ rJ   )rB  r   r   s    rM   r   StdString.string  s    zz  ""rO   c                 4    [        U R                  5       5      $ rJ   r  r	  s     rM   r  StdString.__format__  r  rO   rB  rC  rh   N)r  r  r  r  r  r   r   r  r   r   r   r   r   r  r  rK   rO   rM   r<  r<    sO    	M    A*#)rO   r<  c                   L    \ rS rSrSrS rS rS rS rS r	S r
\S	 5       rS
rg)	StdVectori  z
A `std::vector<T>` value.
c                    Xl          U R                   S   nUS   U l        [        US   U R                  -
  5      U l        g ! [        R
                   aw    [        [        R                  " [        U R                   5       S35      5      U l        [        [        R                  " [        U R                   5       S35      5      U l         g f = f)N_M_impl_M_start	_M_finishz.data()rA  )rh   rB  r   rC  rW   r  r  rk   r   rh   impls      rM   r   StdVector.__init__  s    
	788I&Dj)DJT+.;<DJyy 	7S//!$((+,G46 7DJS//!$((+,G46 7DJ		7s   9A BCCc                 l    US:  d  XR                   :  a  [        SU SU R                   S-
   S35      eg )Nr   zIndex z! out of bounds (should be in [0, rF   z]))rC  
IndexErrorr   r4  s     rM   _check_indexStdVector._check_index  sC    19+@a@PPRSU U ,rO   c                     U R                   $ rJ   rF  r   s    rM   __len__StdVector.__len__  s    zzrO   c                 B    U R                  U5        U R                  U   $ rJ   )rb  rB  ra  s     rM   __getitem__StdVector.__getitem__  s    % zz%  rO   c                     U R                  U5        [        R                  " UR                  [	        U R
                  U   5      5      5      $ )z
Run `eval_format` with the value at `index`.

For example, if `eval_format` is "{}.get()", this will evaluate
"{self[index]}.get()".
)rb  rW   r  formatrk   rB  )r   r4  eval_formats      rM   eval_atStdVector.eval_at  sC     	% !!~djj.?@AC 	CrO   c           	   #      #    [        U R                  5      n[        U R                  5       H0  n[        R
                  " UR                  U SU S35      5      v   M2     g 7f)N[r   )rk   rB  rangerC  rW   r  rk  )r   rl  	data_evalr8   s       rM   	iter_evalStdVector.iter_eval  sT     "4::.	tzz"A$$""i[!A#679 9 #s   A A"c                     U R                   $ rJ   rF  r   s    rM   r   StdVector.size#  rJ  rO   rU  N)r  r  r  r  r  r   rb  re  rh  rm  rs  r  r   r  rK   rO   rM   rW  rW    s;    7U
!	C9  rO   rW  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )StdPtrVectori(  c                 4   > [        [        TU ]	  U5      5      $ rJ   )r|   superrh  r   r4  	__class__s     rM   rh  StdPtrVector.__getitem__*  s    UW(/00rO   rK   )r  r  r  r  rh  r  __classcell__r|  s   @rM   rx  rx  (  s    1 1rO   rx  c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )FieldVectori.  c                 F   > [        [        [        TU ]  U5      5      5      $ )z-
Dereference the Field object at this index.
)Fieldr|   rz  rh  r{  s     rM   rh  FieldVector.__getitem__0  s     U57.u5677rO   c                     [        [        U 5      5       Vs/ s H  n[        X   5      PM     nnSSR                  U5      -   S-   $ s  snf )N{, })rq  r   rb   join)r   r8   ls      rM   __str__FieldVector.__str__6  sD    #(T#34#3aS\#34TYYq\!C'' 5s   ArK   )r  r  r  r  rh  r  r  r~  r  s   @rM   r  r  .  s    8( (rO   r  c                   T    \ rS rSrSrS r\S 5       r\S 5       r\S 5       r	S r
Srg	)
r  i;  z
A arrow::Field value.
c                     Xl         g rJ   r   r   s     rM   r   Field.__init__@  r   rO   c                 2    [        U R                  S   5      $ )Nname_)r<  rh   r   s    rM   rv   
Field.nameC  s    '*++rO   c                 2    [        U R                  S   5      $ )Ntype_r|   rh   r   s    rM   ra   
Field.typeG  s    TXXg&''rO   c                 2    [        U R                  S   5      $ )N	nullable_)boolrh   r   s    rM   nullableField.nullableK  s    DHH[)**rO   c                 ,    [        U R                  5      $ rJ   )rb   rh   r   s    rM   r  Field.__str__O  s    488}rO   r   N)r  r  r  r  r  r   r  rv   ra   r  r  r  rK   rO   rM   r  r  ;  sM     , , ( ( + +rO   r  c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )FieldPtriS  z(
A std::shared_ptr<arrow::Field> value.
c                 6   > [         TU ]  [        U5      5        g rJ   )rz  r   r|   )r   rh   r|  s     rM   r   FieldPtr.__init__X  s    s$rO   rK   )r  r  r  r  r  r   r  r~  r  s   @rM   r  r  S  s    % %rO   r  c                   B    \ rS rSrSrS r\S 5       rS rS	S jr	\	r
Srg)
Bufferi\  z
A arrow::Buffer value.
c                 6    Xl         [        US   5      U l        g )Nsize_)rh   r   r   r   s     rM   r   Buffer.__init__a  s    G%	rO   c                      U R                   S   $ )Ndata_r   r   s    rM   r   Buffer.datae  s    xx  rO   c                     U R                   S:  a4  U R                  S   R                  U R                   S9R                  5       $ g)Nr   r  r   "")r   rh   r   rx   r   s    rM   r   Buffer.bytes_literali  s:    99q=88G$00		0BHHJJrO   Nc                     U R                   S:  aO  Uc  U R                   n[        R                  " 5       R                  U R                  S   U-   U R                   5      nO[        S5      nUR                  S5      $ )z.
Return a view over the bytes of this buffer.
r   r  rO   r:   )r   rW   r   r   rh   
memoryviewcast)r   offsetr   mems       rM   
bytes_viewBuffer.bytes_viewo  sh     99q=~'')55!F*DII7C S/C xx}rO   )r   rh   r   N)r  r  r  r  r  r   r  r   r   r  viewr  rK   rO   rM   r  r  \  s1    & ! ! DrO   r  c                   D    \ rS rSrSrS r\S 5       r\S 5       rS r	Sr
g)		BufferPtri  z)
A arrow::Buffer* value (possibly null).
c                     Xl         [        U R                   5      nUS:w  a  [        UR                  5       5      U l        g S U l        g r   )rh   r   r  ru   r   )r   rh   r9  s      rM   r   BufferPtr.__init__  s3    $((m03q6#//+,drO   c                 J    U R                   c  g U R                   R                  $ rJ   )r   r   r   s    rM   r   BufferPtr.data      88xx}}rO   c                 J    U R                   c  g U R                   R                  $ rJ   )r   r   r   s    rM   r   BufferPtr.size  r  rO   c                 R    U R                   c  g U R                   R                  5       $ rJ   )r   r   r   s    rM   r   BufferPtr.bytes_literal  s"    88xx%%''rO   )r   rh   N)r  r  r  r  r  r   r  r   r   r   r  rK   rO   rM   r  r    s:    C
  
  
(rO   r  c                   d   ^  \ rS rSrSr\" 5       rU 4S jr\S 5       r	SS jr
\S 5       rSrU =r$ )	TypedBufferi  z=
A buffer containing values of a given a struct format code.
c                    > [         TU ]  U5        X l        U R                  (       d)  [        R
                  " SU R                  -   5      U l        g g N=)rz  r   
mem_format
is_booleanr   calcsize
byte_width)r   rh   r  r|  s      rM   r   TypedBuffer.__init__  s:    $$oocDOO.CDDO rO   c                     [        U[        5      (       d   eU[        R                  :X  a  U R                  nO	[
        U   nU " X5      $ rJ   )r   r   r/   r
   _boolean_formattype_id_to_struct_code)clsrh   rQ   r  s       rM   from_type_idTypedBuffer.from_type_id  sA    '3''''dii,,J/8J3##rO   c                     U R                   (       a  [        R                  XU5      $ XR                  -  nUb  U R	                  X2U R                  -  5      nOU R	                  U5      n[        X@R                  5      $ )z
Return a view over the primitive values in this buffer.

The optional `offset` and `length` are expressed in primitive values,
not bytes.
)r  Bitmapfrom_bufferr  r  	TypedViewr  )r   r  r   byte_offsetr  s        rM   r  TypedBuffer.view  sd     ??%%dF;;.//+/GHC//+.Coo..rO   c                 2    U R                   U R                  L $ rJ   )r  r  r   s    rM   r  TypedBuffer.is_boolean  s    $"6"666rO   )r  r  r  )r  r  r  r  r  objectr  r   classmethodr  r  r  r  r  r~  r  s   @rM   r  r    sD     hOE $ $/" 7 7rO   r  c                   0    \ rS rSrSrS rS rS rS rSr	g)	r  i  z\
View a bytes-compatible object as a sequence of objects described
by a struct format code.
c                     [        U[        5      (       d   eXl        X l        [        R
                  " SU-   5      U l        UR                  U R                  -  U l        g r  )	r   r  r  r  r   r  r  nbytesr   )r   r  r  s      rM   r   TypedView.__init__  sH    #z****$ //#
*:;jjDOO3rO   c                 L    SUs=::  a  U R                   :  d  O  [        S5      eg Nr   zWrong index for bitmapr   r`  ra  s     rM   rb  TypedView._check_index  $    E'DKK'566 (rO   c                     U R                   $ rJ   r   r   s    rM   re  TypedView.__len__      {{rO   c                     U R                  U5        U R                  nU R                  X-  US-   U-   n[        R                  " SU R
                  -   U5      $ )NrF   r  )rb  r  r  r   r   r  )r   r4  wr  s       rM   rh  TypedView.__getitem__  sO    % OO hhuy%!)q1}}S4??2C88rO   )r  r   r  r  N)
r  r  r  r  r  r   rb  re  rh  r  rK   rO   rM   r  r    s    
479rO   r  c                   H    \ rS rSrSr/ SQrS rS rS rS r	\
S 5       rS	rg
)r  i  z8
View a bytes-compatible object as a sequence of bools.
)rF   r            r   @      c                 (    Xl         X l        X0l        g rJ   )r  r  r   )r   r  r  r   s       rM   r   Bitmap.__init__  s    	rO   c                 L    SUs=::  a  U R                   :  d  O  [        S5      eg r  r  ra  s     rM   rb  Bitmap._check_index  r  rO   c                     U R                   $ rJ   r   r   s    rM   re  Bitmap.__len__  r  rO   c                     U R                  U5        XR                  -  n[        US5      u  p#U R                  U   nX@R                  U   -  S:g  $ )Nr  r   )rb  r  r   r  _masks)r   r4  
byte_index	bit_indexbytes        rM   rh  Bitmap.__getitem__  sP    %  &ua 0
yy$kk),,11rO   c                     [        U[        5      (       d   e[        US5      u  pE[        R                  " X2S-  -   5      U-
  nU " UR                  XF5      XS5      $ )Nr  )r   r  r   mathceilr  )r  r   r  r   r  
bit_offsetbyte_lengths          rM   r  Bitmap.from_buffer  sY    #v&&&&"("3ii! 34{B3>>+;' 	'rO   )r   r  r  N)r  r  r  r  r  r  r   rb  re  rh  r  r  r  rK   rO   rM   r  r    s6     :F
72 ' 'rO   r  c                   &    \ rS rSrS rS rS rSrg)
MappedViewi  c                     X l         Xl        g rJ   r  funcr   r  r  s      rM   r   MappedView.__init__	      		rO   c                 ,    [        U R                  5      $ rJ   r   r  r   s    rM   re  MappedView.__len__      499~rO   c                 >    U R                  U R                  U   5      $ rJ   r  r  ra  s     rM   rh  MappedView.__getitem__  s    yy5)**rO   r  Nr  r  r  r  r   re  rh  r  rK   rO   rM   r  r    s    +rO   r  c                   &    \ rS rSrS rS rS rSrg)StarMappedViewi  c                     X l         Xl        g rJ   r  r  s      rM   r   StarMappedView.__init__  r	  rO   c                 ,    [        U R                  5      $ rJ   r  r   s    rM   re  StarMappedView.__len__  r  rO   c                 :    U R                   " U R                  U   6 $ rJ   r  ra  s     rM   rh  StarMappedView.__getitem__  s    yy$))E*++rO   r  Nr  rK   rO   rM   r  r    s    ,rO   r  c                   >   ^  \ rS rSrU 4S jr\U 4S j5       rSrU =r$ )
NullBitmapi!  c                 `   > U R                  U5        U R                  c  g[        TU ]  U5      $ )NT)rb  r  rz  rh  r{  s     rM   rh  NullBitmap.__getitem__#  s.    % 99w"5))rO   c                 <   > Uc	  U " XU5      $ [         TU ]  XU5      $ )z]
Create a null bitmap from a Buffer (or None if missing,
in which case all values are True).
)rz  r  )r  r   r  r   r|  s       rM   r  NullBitmap.from_buffer)  s)     ;sF++w"377rO   rK   )	r  r  r  r  rh  r  r  r  r~  r  s   @rM   r  r  !  s    * 8 8rO   r  KeyValue)keyrx   c                   *    \ rS rSrSrS rS rS rSrg)Metadatai7  z"
A arrow::KeyValueMetadata value.
c                     Xl         [        U R                   S   5      U l        [        U R                   S   5      U l        g )Nkeys_values_)rh   rW  keysvaluesr   s     rM   r   Metadata.__init__<  s1    dhhw/0	 34rO   c                 ,    [        U R                  5      $ rJ   )r   r'  r   s    rM   re  Metadata.__len__A  r  rO   c                 r    [        [        U R                  U   5      [        U R                  U   5      5      $ rJ   )r   r<  r'  r(  r   r8   s     rM   rh  Metadata.__getitem__D  s)    	$))A,/4;;q>1JKKrO   )r'  rh   r(  N	r  r  r  r  r  r   re  rh  r  rK   rO   rM   r#  r#  7  s    5
LrO   r#  c                   *    \ rS rSrSrS rS rS rSrg)MetadataPtriH  z=
A shared_ptr<arrow::KeyValueMetadata> value, possibly null.
c                     [        U5      R                  5       U l        [        U R                  5      S:H  U l        U R                  (       a  S U l        g [        U R                  R                  5       5      U l        g r   )rw   r  r9  r   is_nullr#  ru   mdr   s     rM   r   MetadataPtr.__init__M  sO    S>%%'488}),,$HTXX5I5I5K,LrO   c                 R    U R                   (       a  S$ [        U R                  5      $ r   )r3  r   r4  r   s    rM   re  MetadataPtr.__len__R  s    LLq2c$''l2rO   c                 N    U R                   (       a  [        eU R                  U   $ rJ   )r3  r`  r4  r-  s     rM   rh  MetadataPtr.__getitem__U  s    <<wwqzrO   )r3  r4  r9  Nr/  rK   rO   rM   r1  r1  H  s    M
3rO   r1  DecimalTraits)	bit_widthstruct_format_ler  Qq   QQQq)r  r>  c                   Z    \ rS rSrSrS r\S 5       r\S 5       r\	S 5       r
S rS rS	rg
)BaseDecimalib  z8
Base class for arrow::BasicDecimal{128,256...} values.
c                     Xl         g rJ   rf   )r   rf   s     rM   r   BaseDecimal.__init__g  s    rO   c                 ,    U " US   R                   5      $ )zc
Create a decimal from a gdb.Value representing the corresponding
arrow::BasicDecimal{128,256...}.
array_rC  )r  rh   s     rM   
from_valueBaseDecimal.from_valuej  s     3x=(())rO   c                     U " U5      $ )zX
Create a decimal from a gdb.Value representing the address of the
raw decimal storage.
rK   )r  rf   s     rM   from_addressBaseDecimal.from_addressr  s     7|rO   c                 J   [         R                  " 5       R                  U R                  U R                  R
                  S-  5      nU R                  R                  n[        5       S:X  a  USSS2   n[        R                  " SU 3U5      n[        5       S:X  a  USSS2   nU$ )z4
The decimal words, from least to most significant.
r  rU   Nr   r  )
rW   r   r   rf   r   r;  r<  r_   r   r   )r   r  r
  wordss       rM   rM  BaseDecimal.wordsz  s    
 ##%11$,,26++2G2G12LNkk**<5 dd)C#i-<5 $B$KErO   c                     SnU R                   nU R                  R                  [        U5      -  n[	        U5       H
  nX-  U-   nM     U$ )z
The underlying bigint value.
r   )rM  r   r;  r   reversed)r   rL   rM  bits_per_wordr  s        rM   __int__BaseDecimal.__int__  sJ     

--U;%A#q(A !rO   c                     [        U 5      n[        R                  " 5        nXl        SUl        [        [        R                  " U5      R                  U* 5      5      sSSS5        $ ! , (       d  f       g= f)z@
Format as a decimal number with the given precision and scale.
FN)r   decimallocalcontextpreccapitalsrb   Decimalscaleb)r   	precisionscalerL   ctxs        rM   rk  BaseDecimal.format  sQ     I!!#s H CLwq)00%89 $##s   <A''
A5rC  N)r  r  r  r  r  r   r  rG  rJ  r  rM  rR  rk  r  rK   rO   rM   rA  rA  b  sR     * *    	:rO   rA  c                       \ rS rSr\S   rSrg)
Decimal128i  r  rK   Nr  r  r  r  decimal_traitsr   r  rK   rO   rM   r`  r`        C FrO   r`  c                       \ rS rSr\S   rSrg)
Decimal256i  r>  rK   Nra  rK   rO   rM   re  re    rc  rO   re  rY  c                   4    \ rS rSrSrS r\S 5       rS rSr	g)ExtensionTypei  z
A arrow::ExtensionType.
c                     Xl         g rJ   r   r   s     rM   r   ExtensionType.__init__  r   rO   c                 2    [        U R                  S   5      $ )Nstorage_type_r  r   s    rM   storage_typeExtensionType.storage_type  s    TXXo.//rO   c                 l    [        [        R                  " [        U R                  5       S35      5      $ )z5
The result of calling ToString(show_metadata=True).
z.ToString(true))r<  rW   r  rk   rh   r   s    rM   rT   ExtensionType.to_string  s2     ++dhh'(8: ; 	;rO   r   N)
r  r  r  r  r  r   r  rl  rT   r  rK   rO   rM   rg  rg    s%     0 0;rO   rg  c                       \ rS rSrSrS rSrg)Schemai  z
A arrow::Schema.
c                     Xl         [        U R                   S   5      n[        US   5      U l        [	        US   5      U l        g )Nimpl_fields_	metadata_)rh   r|   r  fieldsr1  metadatar\  s      rM   r   Schema.__init__  s;    TXXg&'!$y/2#D$56rO   )rv  rw  rh   Nr  r  r  r  r  r   r  rK   rO   rM   rq  rq    s    7rO   rq  c                   .    \ rS rSrSrS r\S 5       rSrg)RecordBatchi  z
A arrow::RecordBatch.
c                     [        U[        R                  " S5      5      U l        [	        [        U R                  S   5      5      U l        [        U R                  S   5      U l        g )Narrow::SimpleRecordBatchschema_columns_	r   rW   lookup_typerh   rq  r|   schemarx  columnsr   s     rM   r   RecordBatch.__init__  sO     $C$'OO4N$OQU488I#678#DHHZ$89rO   c                      U R                   S   $ N	num_rows_r   r   s    rM   num_rowsRecordBatch.num_rows      xx$$rO   r  r  rh   N	r  r  r  r  r  r   r  r  r  rK   rO   rM   r{  r{    s     : % %rO   r{  c                   .    \ rS rSrSrS r\S 5       rSrg)Tablei  z
A arrow::Table.
c                     [        U[        R                  " S5      5      U l        [	        [        U R                  S   5      5      U l        [        U R                  S   5      U l        g )Narrow::SimpleTabler~  r  r  r   s     rM   r   Table.__init__  sO     $C$'OO4H$IKU488I#678#DHHZ$89rO   c                      U R                   S   $ r  r   r   s    rM   r  Table.num_rows  r  rO   r  Nr  rK   rO   rM   r  r    s     : % %rO   r  NullTypenullBooleanTypeboolean	UInt8Typeuint8Int8Typeint8
UInt16Typeuint16	Int16Typeint16
UInt32Typeuint32	Int32Typeint32
UInt64Typeuint64	Int64Typeint64HalfFloatTypefloat16	FloatTypefloat32
DoubleTypefloat64
Date32Typedate32
Date64Typedate64
Time32Typetime32
Time64Typetime64TimestampType	timestampMonthIntervalTypemonth_intervalDayTimeIntervalTypeday_time_intervalMonthDayNanoIntervalTypemonth_day_nano_intervalDurationTypedurationDecimal128Type
decimal128Decimal256Type
decimal256
StringTyper   LargeStringType
large_utf8
BinaryTypebinaryLargeBinaryTypelarge_binaryFixedSizeBinaryTypefixed_size_binaryListTypelistLargeListType
large_listFixedSizeListTypefixed_size_listMapTypemap
StructTypestruct_sparse_uniondense_union
dictionary)SparseUnionTypeDenseUnionTypeDictionaryTypec                   :    \ rS rSrSrS r\S 5       rS rS r	Sr
g)	TypePrinteri"  z9
Pretty-printer for arrow::DataTypeClass and subclasses.
c                     Xl         [        R                  " SU 35      U l        [	        X R                  5      U l        g Narrow::)rv   rW   r  ra   r   rh   r   rv   rh   s      rM   r   TypePrinter.__init__'  s0    	 OOgdV$45	#C3rO   c                 2    [        U R                  S   5      $ )N	children_)r  rh   r   s    rM   rv  TypePrinter.fields.  s    488K011rO   c                 `    [         R                  U R                  U R                  5      nSU 3$ r  )
type_reprsr  rv   )r   rs     rM   _format_typeTypePrinter._format_type2  s&    NN499dii0}rO   c                 B    [        U R                  U R                  5      $ rJ   )rk   rh   ra   r   s    rM   _for_evaluationTypePrinter._for_evaluation6  s    dhh		22rO   )rv   ra   rh   N)r  r  r  r  r  r   r  rv  r  r  r  rK   rO   rM   r  r  "  s*    4 2 23rO   r  c                       \ rS rSrSrS rSrg)PrimitiveTypePrinteri:  z*
Pretty-printer for non-parametric types.
c                 (    U R                  5        S3$ )Nz()r  r   s    rM   rT   PrimitiveTypePrinter.to_string?  s    ##%&b))rO   rK   Nr  r  r  r  r  rT   r  rK   rO   rM   r  r  :  s    *rO   r  c                   $    \ rS rSrSrS rS rSrg)TimeTypePrinteriC  z-
Pretty-printer for time and duration types.
c                      U R                   S   $ Nunit_r   r   s    rM   	_get_unitTimeTypePrinter._get_unitH  s    xx  rO   c                 J    U R                  5        SU R                  5        S3$ N())r  r  r   s    rM   rT   TimeTypePrinter.to_stringK  s'    ##%&a(8'9;;rO   rK   N)r  r  r  r  r  r  rT   r  rK   rO   rM   r  r  C  s    !<rO   r  c                       \ rS rSrSrS rSrg)TimestampTypePrinteriO  z%
Pretty-printer for timestamp types.
c                     [        U R                  S   5      nU(       a'  U R                  5        SU R                  5        SU S3$ U R                  5        SU R                  5        S3$ )N	timezone_r  r  r  )r<  rh   r  r  )r   tzs     rM   rT   TimestampTypePrinter.to_stringT  sh    txx,-'')*!DNN,<+=Rt1EE'')*!DNN,<+=Q??rO   rK   Nr  rK   rO   rM   r  r  O  s    @rO   r  c                       \ rS rSrSrS rSrg)FixedSizeBinaryTypePrinteri\  z-
Pretty-printer for fixed-size binary types.
c                 ^    [        U R                  S   5      nU R                  5        SU S3$ )Nbyte_width_r  r  r   rh   r  )r   widths     rM   rT   $FixedSizeBinaryTypePrinter.to_stringa  s2    DHH]+,##%&awa00rO   rK   Nr  rK   rO   rM   r  r  \  s    1rO   r  c                       \ rS rSrSrS rSrg)DecimalTypePrinterif  z#
Pretty-printer for decimal types.
c                     [        U R                  S   5      n[        U R                  S   5      nU R                  5        SU SU S3$ )N
precision_scale_r  r  r  r  )r   r[  r\  s      rM   rT   DecimalTypePrinter.to_stringk  sK    ./	DHHX&'##%&a	{"UG1==rO   rK   Nr  rK   rO   rM   r  r  f      >rO   r  c                   $    \ rS rSrSrS rS rSrg)ListTypePrinteriq  z 
Pretty-printer for list types.
c                 X    U R                   n[        U5      S:w  a  g US   R                  $ )NrF   r   )rv  r   ra   )r   rv  s     rM   _get_value_typeListTypePrinter._get_value_typev  s(    v;!ay~~rO   c                 z    U R                  5       nUc  U R                  5        S3$ U R                  5        SU S3$ )N<uninitialized or corrupt>r  r  )r  r  )r   childs     rM   rT   ListTypePrinter.to_string|  sJ    $$&='')**DEE'')*!E7!44rO   rK   N)r  r  r  r  r  r  rT   r  rK   rO   rM   r  r  q  s    5rO   r  c                       \ rS rSrSrS rSrg)FixedSizeListTypePrinteri  z*
Pretty-printer for fixed-size list type.
c                     U R                  5       nUc  U R                  5        S3$ [        U R                  S   5      nU R                  5        SU SU S3$ )Nr  
list_size_r  r  r  )r  r  r   rh   )r   r  	list_sizes      rM   rT   "FixedSizeListTypePrinter.to_string  sc    $$&='')**DEE./	##%&awb1==rO   rK   Nr  rK   rO   rM   r  r    s    >rO   r  c                       \ rS rSrSrS rSrg)MapTypePrinteri  z
Pretty-printer for map types.
c                 <   U R                  5       nUc  U R                  5        S3$ [        US   5      n[        U5      S:w  a  U R                  5        S3$ US   R                  nUS   R                  nU R                  5        SU SU SU R
                  S	    S
3$ )Nr  r  r   r   rF   r  r  z, keys_sorted=keys_sorted_r  )r  r  r  r   ra   rh   )r   struct_typestruct_childrenkey_type	item_types        rM   rT   MapTypePrinter.to_string  s    **,'')**DEE%k+&>?1$'')**DEE"1%**#A&++	$$&'q
"YK @#xx78; 	<rO   rK   Nr  rK   rO   rM   r%  r%    s    
<rO   r%  c                       \ rS rSrSrS rSrg)DictionaryTypePrinteri  z&
Pretty-printer for dictionary types.
c                     [        U R                  S   5      n[        U R                  S   5      nU R                  S   nU R                  5        SU SU SU S3$ )Nindex_type_value_type_ordered_r  r  z
, ordered=r  )r|   rh   r  )r   
index_typer5  ordereds       rM   rT   DictionaryTypePrinter.to_string  sh    488M23
488M23
((:&$$&'qBzl C")1& 	'rO   rK   Nr  rK   rO   rM   r.  r.    s    'rO   r.  c                       \ rS rSrSrS rSrg)StructTypePrinteri  z"
Pretty-printer for struct types.
c                 B    U R                  5        SU R                   S3$ r  )r  rv  r   s    rM   rT   StructTypePrinter.to_string  s#    ##%&a}A66rO   rK   Nr  rK   rO   rM   r7  r7    s    7rO   r7  c                       \ rS rSrSrS rSrg)UnionTypePrinteri  z!
Pretty-printer for union types.
c                     [        U R                  S   5      nSSR                  S U 5       5      -   S-   nU R                  5        SU R                   SU S3$ )	Ntype_codes_r  r  c              3   ~   #    U  H3  n[        UR                  [        R                  " S 5      5      5      v   M5     g7f)r   N)rb   r  rW   r  ).0xs     rM   	<genexpr>-UnionTypePrinter.to_string.<locals>.<genexpr>  s1      %:.8 &)0F)G%H%H.8s   ;=r  z(fields=z, type_codes=r  )rW  rh   r  r  rv  )r   
type_codess     rM   rT   UnionTypePrinter.to_string  sh    txx67
499 %:.8%: : :<?@
##%&ht{{m=TUVVrO   rK   Nr  rK   rO   rM   r;  r;    s    WrO   r;  c                       \ rS rSrSrS rSrg)ExtensionTypePrinteri  z%
Pretty-printer for extension types.
c                     [        U R                  5      nU R                  5        SUR                  5       R	                  5        SUR
                   3$ )Nr   z with storage type )rg  rh   r  rT   r   rl  )r   ext_types     rM   rT   ExtensionTypePrinter.to_string  sT     *$$&'q););)=)L)L)N(O P%%-%:%:$;= 	>rO   rK   Nr  rK   rO   rM   rF  rF    r  rO   rF  c                   @    \ rS rSrSrS r\S 5       rS rS r	S r
Srg	)
ScalarPrinteri  z2
Pretty-printer for arrow::Scalar and subclasses.
c                    [        [        US   5      S   5      n[        U5      nUb#  UR                  n [	        U [
        5      (       d   e[        R                  U 5      nX4l        UR                  Ul
        [        UR                  5      Ul	        X$l        [        R                  " SUR                   35      n[        X5      Ul        [#        UR                   S   5      Ul        U$ )Nra   id_r  is_valid)r   r|   lookup_type_classscalar_printer
issubclassrK  r  __new__
type_classrv   	type_namer   rQ   rW   r  r   rh   r  rN  )r  rh   rQ   rS  r   concrete_types         rM   rR  ScalarPrinter.__new__  s    eCK(/0&w/
!++Cc=1111~~c"$#*4>>:	'$))(=>#C7TXXj12rO   c                     [         R                  " SU R                   35      n[        [	        U R
                  S   5      U5      $ z&
The concrete DataTypeClass instance.
r  ra   rW   r  rT  r   r|   rh   r   rU  s     rM   ra   ScalarPrinter.type  s>    
 '$..1A(BCdhhv&6 7 -/ 	/rO   c                      SU R                    3$ r  r   r   s    rM   r  ScalarPrinter._format_type  s    $$rO   c                     U R                   R                  (       a   U R                  5        SU R                   S3$ U R                  5        S3$ )N	 of type , null valuez of null value)rS  is_parametricr  ra   r   s    rM   _format_nullScalarPrinter._format_null  sG    ??(('')*)DII;lKK'')*.99rO   c                 ,    [        U R                  5      $ rJ   )rk   rh   r   s    rM   r  ScalarPrinter._for_evaluation  s    dhh''rO   )rN  rv   rS  rQ   rT  rh   N)r  r  r  r  r  rR  r  ra   r  rb  r  r  rK   rO   rM   rK  rK    s/    $ / /%:(rO   rK  c                       \ rS rSrSrS rSrg)NullScalarPrinteri  z'
Pretty-printer for arrow::NullScalar.
c                 "    U R                  5       $ rJ   r  r   s    rM   rT   NullScalarPrinter.to_string  s      ""rO   rK   Nr  rK   rO   rM   rg  rg    s    #rO   rg  c                       \ rS rSrSrS rSrg)NumericScalarPrinteri  z+
Pretty-printer for numeric Arrow scalars.
c                 Z   U R                   (       d  U R                  5       $ U R                  S   nU R                  S:X  a"  U R	                  5        S[        U5       SU S3$ U R                  S;   a%  UR                  [        R                  " S5      5      nU R	                  5        SU 3$ )Nrx   r  
 of value r   r   )r  r  r   )	rN  rb  rh   rT  r  r   r  rW   r  r   rx   s     rM   rT   NumericScalarPrinter.to_string  s    }}$$&&!>>_,((*+ ,  0 785'D E>>66JJsu56E##%&j88rO   rK   Nr  rK   rO   rM   rk  rk    s    	9rO   rk  c                       \ rS rSrSrS rSrg)TimeScalarPrinteri  z-
Pretty-printer for Arrow time-like scalars.
c                     [        U R                  S   5      nU R                  (       d  U R                  5        SU S3$ U R                  S   nU R                  5        SU U 3$ )Nr   of null value [r   rx   rm  )r   ra   rN  r  rh   )r   r   rx   s      rM   rT   TimeScalarPrinter.to_string  sg    tyy12}}'')**:4&BB!##%&jv>>rO   rK   Nr  rK   rO   rM   rq  rq    s    ?rO   rq  c                       \ rS rSrSrS rSrg)Date32ScalarPrinteri$  z)
Pretty-printer for arrow::Date32Scalar.
c                     U R                   (       d  U R                  5       $ U R                  S   nU R                  5        S[	        U5       3$ Nrx   rm  )rN  rb  rh   r  r   rn  s     rM   rT   Date32ScalarPrinter.to_string)  G    }}$$&&!##%&ju1E0FGGrO   rK   Nr  rK   rO   rM   rv  rv  $      HrO   rv  c                       \ rS rSrSrS rSrg)Date64ScalarPrinteri0  z)
Pretty-printer for arrow::Date64Scalar.
c                     U R                   (       d  U R                  5       $ U R                  S   nU R                  5        S[	        U5       3$ rx  )rN  rb  rh   r  r   rn  s     rM   rT   Date64ScalarPrinter.to_string5  rz  rO   rK   Nr  rK   rO   rM   r}  r}  0  r{  rO   r}  c                       \ rS rSrSrS rSrg)TimestampScalarPrinteri<  z,
Pretty-printer for arrow::TimestampScalar.
c                 N   [        U R                  S   5      n[        U R                  S   5      nUR                  S:w  a  UR	                  5       OSnU R
                  (       d  U R                  5        SU SU S3$ U R                  S   nU R                  5        S	U U S
U S3$ )Nr  r  r   zno timezoners  r  r   rx   rm  r   )r   ra   r<  r   r   rN  r  rh   )r   r   r  rx   s       rM   rT    TimestampScalarPrinter.to_stringA  s    tyy12tyy-.$&GGqLR m}}'')**:4&2$aHH!##%&jvRt1EErO   rK   Nr  rK   rO   rM   r  r  <  s    FrO   r  c                       \ rS rSrSrS rSrg)MonthIntervalScalarPrinteriK  z7
Pretty-printer for arrow::MonthIntervalScalarPrinter.
c                     U R                   (       d  U R                  5       $ U R                  S   nU R                  5        S[	        U5       3$ rx  )rN  rb  rh   r  r   rn  s     rM   rT   $MonthIntervalScalarPrinter.to_stringP  sH    }}$$&&!##%&j1Fu1M0NOOrO   rK   Nr  rK   rO   rM   r  r  K  s    PrO   r  c                   .    \ rS rSrSr\S 5       rS rSrg)DecimalScalarPrinteriW  z9
Pretty-printer for arrow::DecimalScalar and subclasses.
c                 (    [         U R                     $ rJ   )decimal_type_to_classrT  r   s    rM   decimal_class"DecimalScalarPrinter.decimal_class\  s    $T^^44rO   c                 N   U R                   n[        US   5      n[        US   5      nSU SU S3nU R                  (       d  U R                  5        SU 3$ U R                  R                  U R                  S   5      R                  X#5      nU R                  5        SU S	U 3$ )
Nr  r  z[precision=z, scale=r   z of null value rx   rm  r   )ra   r   rN  r  r  rG  rh   rk  )r   ri   r[  r\  suffixrx   s         rM   rT   DecimalScalarPrinter.to_string`  s    YY<()	BxL!yk%:}}'')*/&BB""--dhhw.? 006y0H 	##%&jqAArO   rK   N)	r  r  r  r  r  r  r  rT   r  rK   rO   rM   r  r  W  s!     5 5	BrO   r  c                   $    \ rS rSrSrS rS rSrg)BaseBinaryScalarPrinteril  z<
Pretty-printer for arrow::BaseBinaryScalar and subclasses.
c                     SU R                   ;   a   [        UR                  UR                  5      $ UR	                  5       $ )NString)rT  r   r   r   r   )r   bufptrs     rM   _format_buf#BaseBinaryScalarPrinter._format_bufq  s2    t~~%V[[99''))rO   c                 4   U R                   (       d  U R                  5       $ [        [        U R                  S   5      R                  5       5      nUR                  nUc  U R                  5        S3$ U R                  5        SU SU R                  U5       3$ )Nrx   z of value <unallocated>	 of size , value )	rN  rb  r  rw   rh   r  r   r  r  )r   r  r   s      rM   rT   !BaseBinaryScalarPrinter.to_stringw  s    }}$$&&9TXXg%67;;=>{{<'')**ABB$$&'y 7))&124 	5rO   rK   N)r  r  r  r  r  r  rT   r  rK   rO   rM   r  r  l  s    *5rO   r  c                       \ rS rSrSrS rSrg)FixedSizeBinaryScalarPrinteri  z2
Pretty-printer for arrow::FixedSizeBinaryScalar.
c           	      B   U R                   S   n[        [        U R                  S   5      R	                  5       5      nUR
                  c  U R                  5        SU S3$ U R                  (       a  SOSnU R                  5        SU SU SU R                  U5       3$ )	Nr
  rx   r  z, <unallocated>r   z
null with r  zvalue )	ra   r  rw   rh   r  r   r  rN  r  )r   r   r  nullnesss       rM   rT   &FixedSizeBinaryScalarPrinter.to_string  s    yy'9TXXg%67;;=>;;'')*)D6II2L$$&'yb*F4#3#3F#;"<> 	?rO   rK   Nr  rK   rO   rM   r  r    s    ?rO   r  c                       \ rS rSrSrS rSrg)DictionaryScalarPrinteri  z-
Pretty-printer for arrow::DictionaryScalar.
c                     U R                   (       d  U R                  5       $ [        U R                  S   S   5      n[        U R                  S   S   5      nU R	                  5        SU SU 3$ )Nrx   r4  r  z
 of index z, dictionary rN  rb  r|   rh   r  )r   r4  r  s      rM   rT   !DictionaryScalarPrinter.to_string  sq    }}$$&&dhhw'01488G,\:;
$$&'z% 9(\+ 	,rO   rK   Nr  rK   rO   rM   r  r    s    ,rO   r  c                       \ rS rSrSrS rSrg)BaseListScalarPrinteri  z:
Pretty-printer for arrow::BaseListScalar and subclasses.
c                     U R                   (       d  U R                  5       $ [        U R                  S   5      nU R	                  5        SU 3$ rx  r  rn  s     rM   rT   BaseListScalarPrinter.to_string  sF    }}$$&&dhhw'(##%&j88rO   rK   Nr  rK   rO   rM   r  r    s    9rO   r  c                   *    \ rS rSrSrS rS rS rSrg)StructScalarPrinteri  z)
Pretty-printer for arrow::StructScalar.
c                     gNr  rK   r   s    rM   display_hint StructScalarPrinter.display_hint      rO   c              #   ,  #    U R                   (       d  g [        U R                  S   5      n[        U R                  S   5      n[	        X5       H?  u  p4[        [        U5      S   5      R                  5       nSU4v   S[        U5      4v   MA     g 7f)Nr  rx   r  rv   )rN  rW  ra   rh   zipr<  r|   r   )r   eval_fieldseval_valuesfieldrx   rv   s         rM   childrenStructScalarPrinter.children  s{     }}		+ 67 129LEU5\'23BBDD4. E%L)) :s   BBc                 f    U R                   (       d  U R                  5       $ U R                  5        $ rJ   )rN  rb  r  r   s    rM   rT   StructScalarPrinter.to_string  s*    }}$$&&##%&'rO   rK   N)	r  r  r  r  r  r  r  rT   r  rK   rO   rM   r  r    s    *(rO   r  c                       \ rS rSrSrS rSrg)SparseUnionScalarPrinteri  7
Pretty-printer for arrow::UnionScalar and subclasses.
c                    U R                   S   R                  [        R                  " S5      5      nU R                  (       d#  U R                  5        SU R                   SU S3$ [        U R                   S   5      nU R                   S   R                  [        R                  " S5      5      nU R                  5        SU S	[        X#   5       3$ )
N	type_coder   r_  , type code r`  rx   child_id of type code r  )	rh   r  rW   r  rN  r  ra   rW  r|   )r   r  r  r  s       rM   rT   "SparseUnionScalarPrinter.to_string  s    HH[)..su/EF	}}((*+9TYYK @!!*<9 : 1288J',,S__U-CD$$&'~i[ A{4568 	9rO   rK   Nr  rK   rO   rM   r  r    s    9rO   r  c                       \ rS rSrSrS rSrg)DenseUnionScalarPrinteri  r  c                 .   U R                   S   R                  [        R                  " S5      5      nU R                  (       d#  U R                  5        SU R                   SU S3$ [        U R                   S   5      nU R                  5        SU SU 3$ )	Nr  r   r_  r  r`  rx   r  r  )rh   r  rW   r  rN  r  ra   r|   )r   r  rx   s      rM   rT   !DenseUnionScalarPrinter.to_string  s    HH[)..su/EF	}}((*+9TYYK @!!*<9 :dhhw'($$&'~i[ A! 	"rO   rK   Nr  rK   rO   rM   r  r    s    "rO   r  c                       \ rS rSrSrS rSrg)MapScalarPrinteri  z&
Pretty-printer for arrow::MapScalar.
c                    U R                   (       d  U R                  5       $ [        U R                  S   5      n[        US   5      n[	        SU5      nU R                  5        SU R                   SUR                  5        3$ )Nrx   r  arrow::ArrayDatar_  r  )rN  rb  r|   rh   ArrayDataPrinterr  ra   _format_contents)r   arrayr   data_printers       rM   rT   MapScalarPrinter.to_string  s}    }}$$&&dhhw'(U7^$'(:DA$$&'y <%6689; 	<rO   rK   Nr  rK   rO   rM   r  r    s    <rO   r  c                       \ rS rSrSrS rSrg)ExtensionScalarPrinteri  z,
Pretty-printer for arrow::ExtensionScalar.
c                 J   [        U R                  5      nU R                  (       d2  U R                  5        SUR	                  5       R                  5        S3$ [        U R                  S   5      nU R                  5        SUR	                  5       R                  5        SU 3$ )Nr_  r`  rx   r  )rg  ra   rN  r  rT   r   r|   rh   )r   rH  rx   s      rM   rT    ExtensionScalarPrinter.to_string  s     +}}((*+9))+::<=\K Ldhhw'($$&'y%%'6689%J 	KrO   rK   Nr  rK   rO   rM   r  r    s    KrO   r  c                   v    \ rS rSrSrS r\S 5       rS rSS jr	SS jr
SS	 jrS
 rS rS rS rS rS rSrg)r  i  z&
Pretty-printer for arrow::ArrayData.
c                    [        [        US   5      S   5      n[        U5      nUb#  UR                  n [	        U [
        5      (       d   e[        R                  U 5      nXl        X%l	        XEl
        UR                  Ul        X5l        [        UR                  S   5      Ul        [        UR                  S   5      Ul        U$ )Nra   rM  r  r   )r   r|   rO  array_data_printerrQ  r  r  rR  rv   rh   rS  rT  rQ   r  r   )r  rv   rh   rQ   rS  r   s         rM   rR  ArrayDataPrinter.__new__  s    eCK(/0&w/
!//Cc#34444~~c"	$#$((8,-$((8,-rO   c                     [         R                  " SU R                   35      n[        [	        U R
                  S   5      U5      $ rX  rY  rZ  s     rM   ra   ArrayDataPrinter.type  s9    
 '$..1A(BCdhhv&6 7GGrO   c           	      l    SU R                    SU R                   S[        U R                  S   5       3$ )Nzlength z	, offset r  r   )r   r  r   rh   r   s    rM   r  !ArrayDataPrinter._format_contents   s<    $++ '++b$TXXl%;<=? 	@rO   Nc                    [        U R                  S   5      n[        X1   5      R                  5       n[	        U5      S:X  a  g Ub$  [
        R                  UR                  5       U5      $ [        UR                  5       5      $ )Nbuffersr   )	rW  rh   rw   r  r   r  r  ru   r  )r   r4  rQ   r  r  s        rM   _bufferArrayDataPrinter._buffer%  so    DHHY/07>*..0v;!++F,>,>,@'JJ&,,.//rO   c                     U R                  X5      nUc  gUc  U R                  nUR                  U R                  U5      $ )z
Return a typed view of values in the buffer with the given index.

Values are returned as tuples since some types may decode to
multiple values (for example day_time_interval).
N)r  r   r  r  )r   r4  rQ   r   r   s        rM   _buffer_valuesArrayDataPrinter._buffer_values/  s=     ll5*;>[[FxxV,,rO   c                 B    [        [        U R                  XU5      5      $ )zS
Like _buffer_values(), but assumes values are 1-tuples
and returns them unpacked.
)r  rN   r  )r   r4  rQ   r   s       rM   _unpacked_buffer_values(ArrayDataPrinter._unpacked_buffer_values=  s%    
 h"11%&IK 	KrO   c                     [        U R                  5      (       a  U R                  S5      OS n[        R	                  XR
                  U R                  5      $ r   )rR   rQ   r  r  r  r  r   )r   r   s     rM   _null_bitmapArrayDataPrinter._null_bitmapE  s:    !0!>!>dll1oD%%c;;DDrO   c                     [        U5      S4$ )Nr  rb   r-  s     rM   _null_childArrayDataPrinter._null_childI  s    1vv~rO   c                     [        U5      U4$ rJ   r  )r   r8   rx   s      rM   _valid_childArrayDataPrinter._valid_childL  s    1vu}rO   c                     g rJ   rK   r   s    rM   r  ArrayDataPrinter.display_hintO  s    rO   c                     g)NrK   rK   r   s    rM   r  ArrayDataPrinter.childrenR  s    rO   c                 ^    U R                   nU R                   SU SU R                  5        3$ )Nr_  r  )ra   rv   r  r   ri   s     rM   rT   ArrayDataPrinter.to_stringU  s5    YY99+Yrd"((*+- 	.rO   )r   rv   r  rS  rQ   rT  rh   rJ   )r  r  r  r  r  rR  r  ra   r  r  r  r  r  r  r  r  r  rT   r  rK   rO   rM   r  r    sW    " H H@
0-KE.rO   r  c                   :    \ rS rSrSr\" \5      rS rS r	S r
Srg)NumericArrayDataPrinteri[  z9
ArrayDataPrinter specialization for numeric data types.
c                 b    [        U R                  U R                  SU R                  5      5      $ NrF   )r  _format_valuer  rQ   r   s    rM   _values_view$NumericArrayDataPrinter._values_viewa  s-    d00"11!T\\BD 	DrO   c                     gNr  rK   r   s    rM   r  $NumericArrayDataPrinter.display_hinte      rO   c              #      #    U R                   S:X  a  g U R                  5       nU R                  5       n[        [	        X!5      5       HA  u  nu  pEU(       a  U R                  U[        U5      5      v   M.  U R                  U5      v   MC     g 7fr   )r   r  r  	enumerater  r  rb   r  )r   r(  	null_bitsr8   validrx   s         rM   r   NumericArrayDataPrinter.childrenh  sw     ;;!""$%%'	!*3y+A!BA~''3u:66&&q))	 "Cs   BBrK   N)r  r  r  r  r  staticmethodrN   r  r  r  r  r  rK   rO   rM   r  r  [  s#     !*MD	*rO   r  c                   $    \ rS rSrSrS rS rSrg)BooleanArrayDataPrinterit  z.
ArrayDataPrinter specialization for boolean.
c                 4    [        U5      R                  5       $ rJ   )rb   lower)r   rL   s     rM   r  %BooleanArrayDataPrinter._format_valuey  s    1v||~rO   c                 b    [        U R                  U R                  SU R                  5      5      $ r  )r  r  r  rQ   r   s    rM   r  $BooleanArrayDataPrinter._values_view|  s-    $,,--a>@ 	@rO   rK   N)r  r  r  r  r  r  r  r  rK   rO   rM   r	  r	  t  s    @rO   r	  c                   (    \ rS rSrSr\" \5      rSrg)Date32ArrayDataPrinteri  z-
ArrayDataPrinter specialization for date32.
rK   N)	r  r  r  r  r  r  r   r  r  rK   rO   rM   r  r         !/MrO   r  c                   (    \ rS rSrSr\" \5      rSrg)Date64ArrayDataPrinteri  z-
ArrayDataPrinter specialization for date64.
rK   N)	r  r  r  r  r  r  r   r  r  rK   rO   rM   r  r    r  rO   r  c                   $    \ rS rSrSrS rS rSrg)TimeArrayDataPrinteri  z8
ArrayDataPrinter specialization for time32 and time64.
c                 `    U R                   S   U l        [        U R                  5      U l        g r  )ra   r   r   unit_stringr  s      rM   r   TimeArrayDataPrinter.__init__  s#    IIg&	*4995rO   c                 "    U U R                    3$ rJ   )r  r   s     rM   r  "TimeArrayDataPrinter._format_value  s    t''())rO   )r   r  Nr  r  r  r  r  r   r  r  rK   rO   rM   r  r    s    6*rO   r  c                   $    \ rS rSrSrS rS rSrg)TimestampArrayDataPrinteri  z0
ArrayDataPrinter specialization for timestamp.
c                 ,    U R                   S   U l        g r  )ra   r   r  s      rM   r   "TimestampArrayDataPrinter.__init__  s    IIg&	rO   c                 ,    [        XR                  5      $ rJ   )r   r   r   s     rM   r  'TimestampArrayDataPrinter._format_value  s    YY//rO   )r   Nr  rK   rO   rM   r  r    s    '0rO   r  c                   (    \ rS rSrSr\" \5      rSrg)MonthIntervalArrayDataPrinteri  z5
ArrayDataPrinter specialization for month_interval.
rK   N)	r  r  r  r  r  r  r   r  r  rK   rO   rM   r#  r#    s     !!67MrO   r#  c                   (    \ rS rSrSr\" \5      rSrg)DayTimeIntervalArrayDataPrinteri  8
ArrayDataPrinter specialization for day_time_interval.
rK   N)	r  r  r  r  r  r  r   r  r  rK   rO   rM   r%  r%         !!9:MrO   r%  c                   (    \ rS rSrSr\" \5      rSrg)$MonthDayNanoIntervalArrayDataPrinteri  r&  rK   N)	r  r  r  r  r  r  r   r  r  rK   rO   rM   r)  r)    r'  rO   r)  c                   *    \ rS rSrSrS rS rS rSrg)DecimalArrayDataPrinteri  z/
ArrayDataPrinter specialization for decimals.
c                     U R                   n[        US   5      U l        [        US   5      U l        [        U R
                     U l        U R                  R                  R                  S-  U l	        g )Nr  r  r  )
ra   r   r[  r\  r  rT  r  r   r;  r  )r   rv   rh   ri   s       rM   r    DecimalArrayDataPrinter.__init__  s[    YYR-.H&
24>>B,,33==BrO   c                     gr  rK   r   s    rM   r  $DecimalArrayDataPrinter.display_hint  r  rO   c              #     #    U R                   S:X  a  g U R                  5       nU R                  S5      R                  U R                  U R
                  -  -   n[        U5       H  u  p4U(       aS  U R                  R                  U5      nU R                  X5R                  U R                  U R                  5      5      v   OU R                  U5      v   X R
                  -  nM     g 7f)Nr   rF   )r   r  r  r   r  r  r  r  rJ  r  rk  r[  r\  r  )r   r  rf   r8   r  decs         rM   r   DecimalArrayDataPrinter.children  s     ;;!%%'	,,q/&&t)FF!),HA((55g>''zz$..$**=? ? &&q))&G -s   C'C))r  r  r[  r\  N	r  r  r  r  r  r   r  r  r  rK   rO   rM   r+  r+    s    C'rO   r+  c                   *    \ rS rSrSrS rS rS rSrg)FixedSizeBinaryArrayDataPrinteri  z8
ArrayDataPrinter specialization for fixed_size_binary.
c                 ,    U R                   S   U l        g )Nr
  )ra   r  r  s      rM   r   (FixedSizeBinaryArrayDataPrinter.__init__  s    ))M2rO   c                     gr  rK   r   s    rM   r  ,FixedSizeBinaryArrayDataPrinter.display_hint  r  rO   c              #     #    U R                   S:X  a  g U R                  5       nU R                  S5      R                  U R                  U R
                  -  -   n[        U5       H{  u  p4U(       aN  U R
                  (       a(  U R                  U[        X R
                  5      5      v   O(U R                  US5      v   OU R                  U5      v   X R
                  -  nM}     g 7f)Nr   rF   r  )
r   r  r  r   r  r  r  r  r   r  )r   r  rf   r8   r  s        rM   r  (FixedSizeBinaryArrayDataPrinter.children  s     ;;!%%'	,,q/&&t)FF!),HA??++=//BD D ++At44&&q))&G -s   C"C$)r  Nr3  rK   rO   rM   r5  r5    s    3'rO   r5  c                   *    \ rS rSrSrS rS rS rSrg)BinaryArrayDataPrinteri  z<
ArrayDataPrinter specialization for variable-sized binary.
c                    U R                   [        R                  [        R                  4;   U l        U R                   [        R
                  [        R                  4;   U l        U R                  (       a  [        U l	        g [        U l	        g rJ   )
rQ   r/   r,   r+   is_larger   is_utf8r   r   format_stringr  s      rM   r   BinaryArrayDataPrinter.__init__  sW    ):):D<M<M(NN||T5F5F'GG-1\\\}rO   c                     gr  rK   r   s    rM   r  #BinaryArrayDataPrinter.display_hint  r  rO   c              #     #    U R                   S:X  a  g U R                  5       nU R                  SU R                  (       a  [        R
                  O[        R                  U R                   S-   S9nU R                  S5      R                  n[        U5       Hq  u  pEU(       aR  X$   nX$S-      U-
  nU(       a'  U R                  X@R                  X6-   U5      5      v   MH  U R                  US5      v   M^  U R                  U5      v   Ms     g 7f)Nr   rF   r   r   r  )r   r  r  r?  r/   r   r   r  r   r  r  rA  r  )r   r  offsetsr(  r8   r  r0   r   s           rM   r  BinaryArrayDataPrinter.children  s     ;;!%%'	..T]]tzz

;;? / $ a%%!),HA
1u~-++--fndCE E ++At44&&q)) -s   DD)rA  r?  r@  Nr3  rK   rO   rM   r=  r=    s    M
*rO   r=  c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
ArrayPrinteri  z1
Pretty-printer for arrow::Array and subclasses.
c                     [        US   5      n[        SU5      U l        [        U R                  R                  5      U l        g )Nr  r  )r|   r  r  r   rT  rv   )r   rh   r   s      rM   r   ArrayPrinter.__init__  s8    S\",-?F)$*;*;*E*EF	rO   c                 6    U R                   R                  5       $ rJ   )r  r  r   s    rM   r  ArrayPrinter._format_contents#  s      1133rO   c                     U R                   R                  R                  (       a9  U R                   R                  nSU R                   SU SU R                  5        3$ SU R                   SU R                  5        3$ )Nr  r_  r  z of )r  rS  ra  ra   rv   r  r  s     rM   rT   ArrayPrinter.to_string&  sp    ''55""''BTYYKyBt7L7L7N6OPPTYYKtD,A,A,C+DEErO   c                 6    U R                   R                  5       $ rJ   )r  r  r   s    rM   r  ArrayPrinter.display_hint-  s      --//rO   c                 6    U R                   R                  5       $ rJ   )r  r  r   s    rM   r  ArrayPrinter.children0  s      ))++rO   )r  rv   N)r  r  r  r  r  r   r  rT   r  r  r  rK   rO   rM   rI  rI    s"    G
4F0,rO   rI  c                   0    \ rS rSrSrS rS rS rS rSr	g)	ChunkedArrayPrinteri4  z)
Pretty-printer for arrow::ChunkedArray.
c                 V    Xl         X l        [        U R                  S   5      U l        g )Nchunks_)rv   rh   rW  chunksr  s      rM   r   ChunkedArrayPrinter.__init__9  s!    	 34rO   c                     gr  rK   r   s    rM   r   ChunkedArrayPrinter.display_hint>  r  rO   c              #      #    [        U R                  5       H6  u  p[        [        U5      5      n[	        U5      UR                  5       4v   M8     g 7frJ   )r  rX  rI  r|   rb   r  )r   r8   chunkprinters       rM   r  ChunkedArrayPrinter.childrenA  s@     !$++.HA"5<0Ga&'22444 /s   AAc                     [        U R                  S   5      nU R                   SU SU R                  S    S[        U R                  S   5       S[	        U R
                  5       S3
$ )	Nr  r_  z	, length length_r  null_count_ with z chunks)r|   rh   rv   r   r   rX  r  s     rM   rT   ChunkedArrayPrinter.to_stringF  sj    488G$%99+Yrd)DHHY4G3H$TXXm%<=> ?DKK()2 	3rO   )rX  rv   rh   N
r  r  r  r  r  r   r  r  rT   r  rK   rO   rM   rU  rU  4  s    5
5
3rO   rU  c                       \ rS rSr\rS rSrg)DataTypeClassiM  c                     Xl         g rJ   r   )r   rv   s     rM   r   DataTypeClass.__init__P  s    	rO   r   N)r  r  r  r  r  r  r   r  rK   rO   rM   rg  rg  M  s    )rO   rg  c                        \ rS rSrSr\r\rSr	g)NullTypeClassiT  FrK   N)
r  r  r  r  ra  r  type_printerrg  rP  r  rK   rO   rM   rk  rk  T  s    M'L&NrO   rk  c                   $    \ rS rSrSr\r\r\	r
Srg)NumericTypeClassiZ  FrK   N)r  r  r  r  ra  r  rl  rk  rP  r  r  r  rK   rO   rM   rn  rn  Z      M'L)N0rO   rn  c                   $    \ rS rSrSr\r\r\	r
Srg)BooleanTypeClassia  FrK   N)r  r  r  r  ra  r  rl  rk  rP  r	  r  r  rK   rO   rM   rq  rq  a  ro  rO   rq  c                   $    \ rS rSrSr\r\r\	r
Srg)Date32TypeClassih  FrK   N)r  r  r  r  ra  r  rl  rv  rP  r  r  r  rK   rO   rM   rs  rs  h      M'L(N/rO   rs  c                   $    \ rS rSrSr\r\r\	r
Srg)Date64TypeClassio  FrK   N)r  r  r  r  ra  r  rl  r}  rP  r  r  r  rK   rO   rM   rv  rv  o  rt  rO   rv  c                   $    \ rS rSrSr\r\r\	r
Srg)TimeTypeClassiv  TrK   Nr  r  r  r  ra  r  rl  rq  rP  r  r  r  rK   rO   rM   rx  rx  v      M"L&N-rO   rx  c                   $    \ rS rSrSr\r\r\	r
Srg)TimestampTypeClassi}  TrK   N)r  r  r  r  ra  r  rl  r  rP  r  r  r  rK   rO   rM   r|  r|  }  s    M'L+N2rO   r|  c                   $    \ rS rSrSr\r\r\	r
Srg)DurationTypeClassi  TrK   Nry  rK   rO   rM   r~  r~    rz  rO   r~  c                   $    \ rS rSrSr\r\r\	r
Srg)MonthIntervalTypeClassi  FrK   N)r  r  r  r  ra  r  rl  r  rP  r#  r  r  rK   rO   rM   r  r    s    M'L/N6rO   r  c                   $    \ rS rSrSr\r\r\	r
Srg)DayTimeIntervalTypeClassi  FrK   N)r  r  r  r  ra  r  rl  rk  rP  r%  r  r  rK   rO   rM   r  r    s    M'L)N8rO   r  c                   $    \ rS rSrSr\r\r\	r
Srg)MonthDayNanoIntervalTypeClassi  FrK   N)r  r  r  r  ra  r  rl  rk  rP  r)  r  r  rK   rO   rM   r  r    s    M'L)N=rO   r  c                   $    \ rS rSrSr\r\r\	r
Srg)DecimalTypeClassi  TrK   N)r  r  r  r  ra  r  rl  r  rP  r+  r  r  rK   rO   rM   r  r    s    M%L)N0rO   r  c                   $    \ rS rSrSr\r\r\	r
Srg)BaseBinaryTypeClassi  FrK   N)r  r  r  r  ra  r  rl  r  rP  r=  r  r  rK   rO   rM   r  r    s    M'L,N/rO   r  c                   $    \ rS rSrSr\r\r\	r
Srg)FixedSizeBinaryTypeClassi  TrK   N)r  r  r  r  ra  r  rl  r  rP  r5  r  r  rK   rO   rM   r  r    s    M-L1N8rO   r  c                        \ rS rSrSr\r\rSr	g)BaseListTypeClassi  TrK   N)
r  r  r  r  ra  r  rl  r  rP  r  rK   rO   rM   r  r    s    M"L*NrO   r  c                        \ rS rSrSr\r\rSr	g)FixedSizeListTypeClassi  TrK   N)
r  r  r  r  ra  r  rl  r  rP  r  rK   rO   rM   r  r    s    M+L*NrO   r  c                        \ rS rSrSr\r\rSr	g)MapTypeClassi  TrK   N)
r  r  r  r  ra  r%  rl  r  rP  r  rK   rO   rM   r  r    s    M!L%NrO   r  c                        \ rS rSrSr\r\rSr	g)StructTypeClassi  TrK   N)
r  r  r  r  ra  r7  rl  r  rP  r  rK   rO   rM   r  r    s    M$L(NrO   r  c                        \ rS rSrSr\r\rSr	g)DenseUnionTypeClassi  TrK   N)
r  r  r  r  ra  r;  rl  r  rP  r  rK   rO   rM   r  r    s    M#L,NrO   r  c                        \ rS rSrSr\r\rSr	g)SparseUnionTypeClassi  TrK   N)
r  r  r  r  ra  r;  rl  r  rP  r  rK   rO   rM   r  r    s    M#L-NrO   r  c                        \ rS rSrSr\r\rSr	g)DictionaryTypeClassi  TrK   N)
r  r  r  r  ra  r.  rl  r  rP  r  rK   rO   rM   r  r    s    M(L,NrO   r  c                        \ rS rSrSr\r\rSr	g)ExtensionTypeClassi  TrK   N)
r  r  r  r  ra  rF  rl  r  rP  r  rK   rO   rM   r  r    s    M'L+NrO   r  DataTypeTraits)factoryrv   r  r  r  c                 j    [         R                  U 5      nUb  UR                  UR                  5      $ g)zD
Lookup a type class (an instance of DataTypeClass) by its type id.
N)type_traits_by_idr  r  rv   )rQ   r   s     rM   rO  rO  "  s0     ""7+F~~fkk**rO   c                       \ rS rSrSr0 SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"_S#S$_rS% rS& rS' rS( r	S)r
g*)+StatusPrinteri,  z#
Pretty-printer for arrow::Status.
r   OKrF   OutOfMemoryr   KeyErrorr   rz   r  Invalid   IOErrorrG   CapacityError   r`  r  	CancelledrH   UnknownError
   NotImplemented   SerializationError   RError(   CodeGenError)   ExpressionValidationError*   ExecutionError-   AlreadyExistsc                     X l         g rJ   r   r  s      rM   r   StatusPrinter.__init__D  r   rO   c                 N   [        US   5      R                  5       n[        U5      S:X  a  g [        [        R
                  " [        U5       S35      5      n[        [        R
                  " [        U5       S35      5      nSUR                  5        SUR                  5        3$ )Ndetailr   z->type_id()z->ToString().c_str()rp  z] )	rw   r  r   r   rW   r  rk   r   r   )r   state
detail_ptr	detail_id
detail_msgs        rM   _format_detailStatusPrinter._format_detailG  s    uX/335
z?aC..j)*+68 9	 S//j)**>?A B
9##%&b)B)B)D(EFFrO   c                     [        US   5      nU R                  R                  U5      nUb  SU S3nOSU S3nU[        US   5      R	                  5       -  nU R                  U5      nUb	  USU S3-   $ US-   $ )	Nrd   zarrow::Status::r  zarrow::Status(<unknown code z>, msgz	, detail=r  )r   _status_codes_by_idr  r<  r   r  )r   r  rd   codenamer^   r  s         rM   _format_errorStatusPrinter._format_errorR  s    5=!++//5!(1-A.tfC8A	YuU|$3355((/
!:,a000s7NrO   c                 ~    U R                   S   n[        U5      S:X  a  gU R                  UR                  5       5      $ )Nstate_r   zarrow::Status::OK())rh   r   r  ru   )r   	state_ptrs     rM   rT   StatusPrinter.to_string`  s9    HHX&	y>Q(!!)"7"7"9::rO   r   N)r  r  r  r  r  r  r   r  r  rT   r  rK   rO   rM   r  r  ,  s    	4	= 	
: 	
;	
 	
9 	
9 	
? 	
< 	
; 	
> 	 	  	H 	N 	'  	!" 	O#(	G;rO   r  c                       \ rS rSrSrS rSrg)ResultPrinterig  z&
Pretty-printer for arrow::Result<T>.
c                 h   U R                   R                  R                  S5      nU R                   S   S   n[        U5      S:w  a  U R	                  U5      nORU R                   S   S   R
                  nU(       d   eUR                  UR                  5       5      R                  5       nSU SU S3$ )	Nr   status_r  storage_r  zarrow::Result<z>(r  )	rh   ra   r   r   r  rf   r   r   ru   )r   	data_typer  innerdata_ptrs        rM   rT   ResultPrinter.to_stringl  s    HHMM33A6	HHY'1	y>Q&&y1Exx
+G4<<HO8--!!#%%0[] 	{"UG155rO   rK   Nr  rK   rO   rM   r  r  g  s    
6rO   r  c                   $    \ rS rSrSrS rS rSrg)FieldPrinteriy  z"
Pretty-printer for arrow::Field.
c                     X l         g rJ   r   r  s      rM   r   FieldPrinter.__init__~  r   rO   c                     [        U R                  5      nUR                  nU(       a  SUR                   SUR                   S3$ SUR                   SUR                   S3$ )Nzarrow::field(r  r  z, nullable=false))r  rh   r  rv   ra   )r   r?   r  s      rM   rT   FieldPrinter.to_string  sV    $((O::"166("QVVHA66"166("QVVH4EFFrO   r   Nr  r  r  r  r  r   rT   r  rK   rO   rM   r  r  y  s    GrO   r  c                   0    \ rS rSrSrS rS rS rS rSr	g)	MetadataPrinteri  z-
Pretty-printer for arrow::KeyValueMetadata.
c                 D    X l         [        U R                   5      U l        g rJ   )rh   r#  rw  r  s      rM   r   MetadataPrinter.__init__  s     *rO   c                     gr  rK   r   s    rM   r  MetadataPrinter.display_hint  r  rO   c              #      #    U R                    H-  u  pSUR                  5       4v   SUR                  5       4v   M/     g 7f)Nr!  rx   )rw  r   )r   krL   s      rM   r  MetadataPrinter.children  s9     MMDA!//+,,AOO-.. "s   ?Ac                 2    S[        U R                  5       3$ )Nz arrow::KeyValueMetadata of size )r   rw  r   s    rM   rT   MetadataPrinter.to_string  s    1#dmm2D1EFFrO   )rw  rh   Nre  rK   rO   rM   r  r    s    +/
GrO   r  c                   0    \ rS rSrSrS rS rS rS rSr	g)	SchemaPrinteri  z#
Pretty-printer for arrow::Schema.
c                 0    X l         [        U5      U l        g rJ   )rh   rq  r  r  s      rM   r   SchemaPrinter.__init__  s    SkrO   c                     gr  rK   r   s    rM   r  SchemaPrinter.display_hint  r  rO   c              #      #    U R                   R                   H1  nSUR                  R                  5       4v   SUR                  4v   M3     g 7f)Nrv   ra   )r  rv  rv   r   ra   )r   r  s     rM   r  SchemaPrinter.children  s@     [[''E5::446775::&& (s   AAc                     [        U R                  R                  5      n[        U R                  R                  5      nUS:  a	  SU SU S3$ SU S3$ )Nr   zarrow::Schema with z fields and  metadata itemsz fields)r   r  rv  rw  )r   
num_fieldsmd_itemss      rM   rT   SchemaPrinter.to_string  s_    ++,
t{{++,a<)* 6#*O5 6 )G<<rO   )r  rh   Nre  rK   rO   rM   r  r    s    "
'
=rO   r  c                   ,    \ rS rSrS rS rS rS rSrg)BaseColumnarPrinteri  c                 ^    Xl         X l        X0l        U R                  R                  U l        g rJ   )rv   rh   columnarr  )r   rv   rh   r  s       rM   r   BaseColumnarPrinter.__init__  s"    	 mm**rO   c                     gr  rK   r   s    rM   r   BaseColumnarPrinter.display_hint  r  rO   c              #      #    [        U R                  R                  U R                  R                  5       H)  u  pSUR
                  R                  5       4v   SU4v   M+     g 7f)Nrv   rx   )r  r  rv  r  r  rv   r   )r   r  cols      rM   r  BaseColumnarPrinter.children  sQ     dkk00"mm335JE5::44677C. 5s   A#A%c           	         [        U R                  R                  5      nU R                  R                  n[        U R                  R
                  5      nUS:  a  SU R                   SU SU SU S3	$ SU R                   SU SU S3$ )Nr   r  rc  z
 columns, z rows, r  z rows)r   r  rv  r  r  rw  rv   )r   r  r  r  s       rM   rT   BaseColumnarPrinter.to_string  s    ++,
==))t{{++,a<dii[zl*jzB C dii[zl*j' (rO   )r  rv   r  rh   N)	r  r  r  r  r   r  r  rT   r  rK   rO   rM   r  r    s    +!	(rO   r  c                       \ rS rSrSrS rSrg)RecordBatchPrinteri  z(
Pretty-printer for arrow::RecordBatch.
c                 F    [         R                  U SU[        U5      5        g )Nr{  )r  r   r{  r  s      rM   r   RecordBatchPrinter.__init__  s    $$T=#{3?OPrO   rK   Nry  rK   rO   rM   r  r    s    QrO   r  c                       \ rS rSrSrS rSrg)TablePrinteri  z"
Pretty-printer for arrow::Table.
c                 F    [         R                  U SU[        U5      5        g )Nr  )r  r   r  r  s      rM   r   TablePrinter.__init__  s    $$T7CsDrO   rK   Nry  rK   rO   rM   r  r    s    ErO   r  c                   $    \ rS rSrSrS rS rSrg)DatumPrinteri  z"
Pretty-printer for arrow::Datum.
c                 6    X l         [        US   5      U l        g )Nrx   )rh   r1  variantr  s      rM   r   DatumPrinter.__init__  s    s7|,rO   c                     U R                   R                  S:X  a  gU R                   R                  c  g[        U R                   R                  5      nSU 3$ )Nr   zarrow::Datum (empty)z(arrow::Datum (uninitialized or corrupt?)zarrow::Datum of value )r  r4  r5  r|   rx   rn  s     rM   rT   DatumPrinter.to_string  sK    <<")<<""*=dll(()'w//rO   )rh   r  Nr  rK   rO   rM   r
  r
    s    -0rO   r
  c                   $    \ rS rSrSrS rS rSrg)BufferPrinteri  z2
Pretty-printer for arrow::Buffer and subclasses.
c                     Xl         X l        g rJ   rv   rh   r  s      rM   r   BufferPrinter.__init__	  s    	rO   c                 \   [        U R                  S   5      (       a  SnOSn[        U R                  S   5      nUS:X  a  SU R                   SU 3$ U R                  S   (       d  SU R                   S	U S
U S3$ [	        U R                  S   U5      nSU R                   S	U S
U S
U 3$ )Nis_mutable_mutablez	read-onlyr  r   r  z of size 0, is_cpu_r  r  z, not on CPUr  )r  rh   r   rv   r   )r   r  r   r   s       rM   rT   BufferPrinter.to_string	  s    '((G!G488G$%19TYYK|G9==xx	"TYYKyb	NNTXXg.59TF"WIRvFFrO   r  Nr  rK   rO   rM   r  r    s    GrO   r  c                   $    \ rS rSrSrS rS rSrg)DayMillisecondsPrinteri	  zA
Pretty-printer for arrow::DayTimeIntervalType::DayMilliseconds.
c                     X l         g rJ   r   r  s      rM   r   DayMillisecondsPrinter.__init__	  r   rO   c                 N    [        U R                  S   U R                  S   5      $ )Nr   r   )r   rh   r   s    rM   rT    DayMillisecondsPrinter.to_string	  s(    '(8(,(@B 	BrO   r   Nr  rK   rO   rM   r  r  	  s    BrO   r  c                   $    \ rS rSrSrS rS rSrg)MonthDayNanosPrinteri"	  zD
Pretty-printer for arrow::MonthDayNanoIntervalType::MonthDayNanos.
c                     X l         g rJ   r   r  s      rM   r   MonthDayNanosPrinter.__init__'	  r   rO   c                 j    [        U R                  S   U R                  S   U R                  S   5      $ )Nr   r   nanoseconds)r   rh   r   s    rM   rT   MonthDayNanosPrinter.to_string*	  s4    '(:(,(8(,(?A 	ArO   r   Nr  rK   rO   rM   r!  r!  "	  s    ArO   r!  c                   $    \ rS rSrSrS rS rSrg)DecimalPrinteri0	  z*
Pretty-printer for Arrow decimal values.
c                 (    X l         X0l        Xl        g rJ   )rv   rh   r;  )r   r;  rv   rh   s       rM   r   DecimalPrinter.__init__5	  s    	"rO   c                     [         U R                     R                  U R                  5      nU R                   S[        U5       S3$ r  )decimal_bits_to_classr;  rG  rh   rv   r   )r   r1  s     rM   rT   DecimalPrinter.to_string:	  s:    #DNN3>>txxH))Ac#hZq))rO   )r;  rv   rh   Nr  rK   rO   rM   r(  r(  0	  s    #
*rO   r(  r  zarrow::BasicDecimal128zarrow::BasicDecimal256zarrow::ChunkedArrayzarrow::Datumz+arrow::DayTimeIntervalType::DayMillisecondszarrow::Decimal128zarrow::Decimal256z.arrow::MonthDayNanoIntervalType::MonthDayNanoszarrow::Fieldzarrow::KeyValueMetadatazarrow::RecordBatchzarrow::Resultzarrow::Schemar}  r  zarrow::Statuszarrow::Tablec                    U R                   R                  5       R                  nUc  g UR                  S5      S   n[        R                  U5      nUb  U" X5      $ UR                  S5      (       d  g U[        S5      S  nUR                  S5      (       a   U S     [        X05      $ UR                  S5      (       a:   [        U S   5      n[        U5      nUb  UR                  UR                  U 5      $ g UR                  S5      (       a  [        U 5      $ UR                  S	5      (       a   U S
     [        U 5      $ g ! [         a     g f = f! [         a     g f = f! [         a     g f = f)N<r   r  r  r  r/   rM  r   r   rN  )ra   strip_typedefsrv   	partitionprintersr  rc   r   r   r  	Exceptionr   rO  rl  rI  rK  )rh   rv   r^  
arrow_namerQ   rS  s         rM   arrow_pretty_printr5  U	  sy   88""$))D|>>#q!Dll4 Gt!!??9%%c)no&J8$$	2L
 !11			V	$	$	E#e*oG
 +73J%!..zDD & 
		W	%	%C  			X	&	&	&
O
 !%% 
'-  		  		  		s6   E  E 1E" 
EE
EE"
E/.E/c                  ~    [         R                  " 5       n U c  [         n U R                  R                  [        5        g rJ   )rW   current_objfilepretty_printersappendr5  )objfiles    rM   mainr;  	  s1     !!#G""#56rO   __main__rJ   )collectionsr   collections.abcr   r   rU  enum	functoolsr   r   	itertoolsr  operatorr   r\   rZ   rW   	gdb.typesr   version_info	_type_idsIntEnumr/   r1   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r*   r   r  rC   r2   r3   r4   r5   r   rN   rR   r_   rk   rp   r|   ordr   rq  cr   r   r   r   r   r   r   r   r   r   r   r   	toordinalr   r   r   r   r   r   r   r   rw   ry   r1  r<  rW  rx  r  r  r  r  r  r  r  r  r  r  r  r   r#  r1  r:  rb  rA  r`  re  r,  itemsr  rg  rq  r{  r  r  r  r  r  r  r  r  r  r  r%  r.  r7  r;  rF  rK  rg  rk  rq  rv  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r#  r%  r)  r+  r5  r=  rI  rU  rg  rk  rn  rq  rs  rv  rx  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    r!   r"   r-   r)   r'   r#   r$   r%   r&   r(   r  r   max_type_idrO  r  r  r  r  r  r  r  r  r
  r  r  r!  r(  r2  r5  r;  r  )bitsr  s   00rM   <module>rM     s  $ # $    (     
  
 $ a F!F F=	 ||FIQ/ <<
$H!IIsJJ 	JJ 	JJ	
 	JJ 	KK 	KK 	KK 	OOS 	JJ 	KK 	KK 	KK 	KK 	KK  	D!" 	##$ 	  %MM3NNC) . , /D E OO^Aq)NNN5!,NNN9a0MM>-3	 I  0,<E  IuIuIuIuHe  
q"A'''*1S']" 

@0
&G'-&( ]]4A&002

%& +*!
 ) )D' '8' '4 <&) &)R2 2j19 1
() 
( 0%u %" "J( (8(7& (7V9 9:'X 'D
+ 
+
,X 
,8 8& j"23Lx L"( & ?,MN 
sD	!	sF	#
:: ::z! !! !
 
	  -2244 dV4#4 ; ;,	7 	7% %&% %$&&9& & 	&
 (& & (& & (& & Y& & )& (& (&  (!&" (#&$ [%&& )'&( .)&*  9+&, J-&. l/&0 l1&2 &3&4 |5&6 (7&8 ~9&: .;&< =&> \?&@ *A&B uC&D )E&F &#"K&
R3 30*; *	<k 	<
@? 
@1 1> >5k 5&
> 
><_ <$
'K 
'7 7	W{ 	W>; >*( *(Z# #9= 9"
? 
?	H+ 	H	H+ 	HF] F	P 	PB= B*5m 5,?#: ?,m ,	9M 	9(- (09} 9""m "<} < K] KV. V.r*. *2
@5 
@04 004 0
*2 
*	0 7 	08$; 8;&= ;;+B ;'. '<'&6 '8*- *D, ,63 32 'M '1} 11} 10m 00m 0.M .3 3. .7] 79} 9>M >1} 10- 09} 9+ ++] +&= &)m )-- -.= .-- -, , ,.AB5GG^M:65 	II~.>5
 	JJ/=5 	II~.
;5 	KK 0,?5 	JJ/=5 	KK 0,?5 	JJ/=5 	KK 0,?5 	JJ/=5 	OO^$4oF5 	JJ/=5 	KK 0,?5" 	KK 3\B#5$ 	KK 3\B%5& 	~&9;LM'5( 	~&9;LM)5, 	N+C+@B-52 	KK>354 	KK>556 	NNN#5G758 	KK|<95: 	KK|<;5< 	MM>"3^D=5> 	.)?)<>?5B 	N+C+@BC5F 	  .1N1K#MG5L 	OO^$46FGM5N 	OO^$46FGO5R 	II~/<S5T 	OO^$5GU5V 	.)?)<>W5Z 	HHn\95[5^ 	KK>_5` 	~&:<MNn%8:JKOO^$79IJNNN#5Gi5 n #$q(8; 8;v6M 6$G G"G G*= =8( (:Q, QE& E0 0(G G.
B 
BA A* *(gnc: gnc: .	
 L 23I 5 5 56J L  , ] ]  2  ,!" ]#$ L%,-&`
7 zF M/s   p