ó
    Eñiaœ  ã            	       ó(  • S SK JrJrJr  S SKJrJrJrJrJ	r	J
r
JrJrJr  SSKJrJr  SSKJrJr  SSKJr  SSKJrJr  SSKJr  SS	KJr  SS
KJr  SSKJ r J!r!  SSK"J#r#  SSK$J%r%  SSK&J'r'J(r(  SSK)J*r*J+r+  \(       a  SSK,J-r-J.r.J/r/J0r0J1r1J2r2  \ " S S5      5       r3\ " S S5      5       r4 " S S\	5      r5 " S S\5      r6\7S:X  Ga»  S SK8J-r-  S SK9J:r:  SSK;J<r<  \<" S5         \6" SSS S!9r=\=R}                  S"S#S$S%S&9  \=R}                  S'S(S)9  \=R}                  S*S S+S,9  \=R                  S-S.S/5        \=R                  S0S1S25        \=R                  S3S4S5S6S%S79  \=R                  S8S9S:5        S;\@S<S=4S> jrA\-" 5       r,\:" 5       rB\A" S?5        \,R‡                  \=S@SA9  S%\=lD        \A" SB5        \,R‡                  \=5        SC\=lE        \A" SD5        \,R‡                  \=S@SA9  S=\=lE        SE\=lD        SFSG/\=lF        \A" SH5        \,R‡                  \=S@SA9  S=\=lE        SE\=lD        SFSG/\=lF        S\=lG        \A" SI5        \,R‡                  \=S@SA9  S=\=lE        SE\=lD        SFSG/\=lF        S%\=lH        S \=lG        \A" SJ5        \,R‡                  \=S@SA9  S=S=S=5        g=g=! , (       d  f       g== f)Ké    )Ú	dataclassÚfieldÚreplace)	ÚTYPE_CHECKINGÚDictÚIterableÚListÚ
NamedTupleÚOptionalÚSequenceÚTupleÚUnioné   )ÚboxÚerrors)Úloop_first_lastÚ	loop_last)Ú	pick_bool)Úratio_distributeÚratio_reduce)ÚVerticalAlignMethod)ÚJupyterMixin)ÚMeasurement)ÚPaddingÚPaddingDimensions)Úis_renderable)ÚSegment)ÚStyleÚ	StyleType)ÚTextÚTextType)ÚConsoleÚConsoleOptionsÚJustifyMethodÚOverflowMethodÚRenderableTypeÚRenderResultc                   ó~  • \ rS rSr% SrSrS\S'    SrS\S'    Sr\	\S'    Sr
\	\S'    Sr\	\S	'    S
rS\S'    SrS\S'    SrS\S'    Sr\\   \S'    Sr\\   \S'    Sr\\   \S'    Sr\\   \S'    Sr\\S'    Sr\\S'    Sr\\S'    \" \S9r\S   \S'   S$S  jr\S\S   4S! j5       r \S\4S" j5       r!S#r"g)%ÚColumné&   a�	  Defines a column within a ~Table.

Args:
    title (Union[str, Text], optional): The title of the table rendered at the top. Defaults to None.
    caption (Union[str, Text], optional): The table caption rendered below. Defaults to None.
    width (int, optional): The width in characters of the table, or ``None`` to automatically fit. Defaults to None.
    min_width (Optional[int], optional): The minimum width of the table, or ``None`` for no minimum. Defaults to None.
    box (box.Box, optional): One of the constants in box.py used to draw the edges (see :ref:`appendix_box`), or ``None`` for no box lines. Defaults to box.HEAVY_HEAD.
    safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.
    padding (PaddingDimensions, optional): Padding for cells (top, right, bottom, left). Defaults to (0, 1).
    collapse_padding (bool, optional): Enable collapsing of padding around cells. Defaults to False.
    pad_edge (bool, optional): Enable padding of edge cells. Defaults to True.
    show_header (bool, optional): Show a header row. Defaults to True.
    show_footer (bool, optional): Show a footer row. Defaults to False.
    show_edge (bool, optional): Draw a box around the outside of the table. Defaults to True.
    show_lines (bool, optional): Draw lines between every row. Defaults to False.
    leading (int, optional): Number of blank lines between rows (precludes ``show_lines``). Defaults to 0.
    style (Union[str, Style], optional): Default style for the table. Defaults to "none".
    row_styles (List[Union, str], optional): Optional list of row styles, if more than one style is given then the styles will alternate. Defaults to None.
    header_style (Union[str, Style], optional): Style of the header. Defaults to "table.header".
    footer_style (Union[str, Style], optional): Style of the footer. Defaults to "table.footer".
    border_style (Union[str, Style], optional): Style of the border. Defaults to None.
    title_style (Union[str, Style], optional): Style of the title. Defaults to None.
    caption_style (Union[str, Style], optional): Style of the caption. Defaults to None.
    title_justify (str, optional): Justify method for title. Defaults to "center".
    caption_justify (str, optional): Justify method for caption. Defaults to "center".
    highlight (bool, optional): Highlight cell contents (if str). Defaults to False.
Ú r&   ÚheaderÚfooterÚheader_styleÚfooter_styleÚstyleÚleftr$   ÚjustifyÚtopr   ÚverticalÚellipsisr%   ÚoverflowNÚwidthÚ	min_widthÚ	max_widthÚratioFÚno_wrapÚ	highlightr   Ú_index)Údefault_factoryÚ_cellsÚreturnc                 ó   • [        U / S9$ )zReturn a copy of this Column.©r?   )r   ©Úselfs    ÚG/home/mande/repo/quber/.venv/lib/python3.13/site-packages/rich/table.pyÚcopyÚColumn.copyt   s   € ä�t BÑ'Ð'ó    c              #   ó8   #   • U R                    Sh  v•N   g N7f)z2Get all cells in the column, not including header.NrB   rC   s    rE   ÚcellsÚColumn.cellsx   s   é € ð —;‘;×Óùs   ‚’“c                 ó   • U R                   SL$ )z!Check if this column is flexible.N)r:   rC   s    rE   ÚflexibleÚColumn.flexible}   s   € ð �z‰z Ð%Ð%rH   © )r@   r)   )#Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r,   Ú__annotations__r-   r.   r   r/   r0   r2   r4   r6   r7   r   Úintr8   r9   r:   r;   Úboolr<   r=   r   Úlistr?   r	   rF   Úpropertyr   rJ   rM   Ú__static_attributes__rO   rH   rE   r)   r)   &   s5  ‡ ñð:  "€FÐÓ!ØHà!€FÐÓ!ØHà €L�)Ó Ø-à €L�)Ó Ø-à€Eˆ9ÓØ-à%€Gˆ_Ó%Ø[à&+€HÐ#Ó+ØMà!+€HÐÓ+Øà€Eˆ8�C‰=ÓØ\à#€Iˆx˜‰}Ó#Ø_à#€Iˆx˜‰}Ó#Ø_à€Eˆ8�C‰=ÓØwà€GˆTÓØRà€IˆtÓØCà€FˆCƒOØá%*¸4Ñ%@€FˆDÐ!Ñ"Ó@ô(ð ð�xÐ 0Ñ1ó ó ðð ð&˜$ó &ó ó&rH   r)   c                   ó>   • \ rS rSr% SrSr\\   \S'    Sr	\
\S'   Srg)ÚRowéƒ   zInformation regarding a row.Nr0   FÚend_sectionrO   )rP   rQ   rR   rS   rT   r0   r   r   rU   r^   rW   rZ   rO   rH   rE   r\   r\   ƒ   s$   ‡ á&à!%€Eˆ8�IÑÓ%Ø à€K�ÓÚLrH   r\   c                   ó<   • \ rS rSr% Sr\\S'    S\S'    \\S'   Srg)	Ú_CelléŽ   zA single cell in a table.r0   r&   Ú
renderabler4   rO   N)	rP   rQ   rR   rS   rT   r   rU   r   rZ   rO   rH   rE   r`   r`   Ž   s    ‡ Ù#àÓØ!Ø Ó ØØ!Ó!Ú"rH   r`   c            7       óP  • \ rS rSr% Sr\\   \S'   \\   \S'   SSSS\	R                  SSSSSSSSSS	S
SSSSSSSSSS.S\\\4   S\\   S\\   S\\   S\\   S\\	R                      S\\   S\S\S\S\S\S\S\S\S\S\S \\\      S!\\   S"\\   S#\\   S$\\   S%\\   S&S'S(S'S)\S*S46S+ jjr\S	SSSS,.S\\\4   S\S\S\S\S*S 4S- jj5       r\S*\4S. j5       r\R4                  S\S*S4S/ j5       r\S*\4S0 j5       r\S*\4S1 j5       rS2S3S4\S*\4S5 jrS2S3S6S7S*\4S8 jr\S*\ \\\\4   4S9 j5       r!\!R4                  S\S*S 4S: j5       r!  S]SSSSS;S<S=SSSSSS>.S?S@SAS@S!\\   S)\\   S"\\   S\\   SBS'SCSDSESFS\\   S\\   SG\\   SH\\   SI\S*S4SJ jjjr"SSSK.SL\S@   S\\   SM\S*S4SN jjr#S^SO jr$      S_SQ jr%S2S3S6S7S*\\   4SR jr&\SS\\   ST\\   SG\S*\\   4SU j5       r'S2S3SV\SW\S*\\(   4SX jr)SV\S*\4SY jr*S2S3S6S7SW\S*\4SZ jr+S2S3S6S7SS\\   S*SP4S[ jr,S\r-g)`ÚTableé™   a­
  A console renderable to draw a table.

Args:
    *headers (Union[Column, str]): Column headers, either as a string, or :class:`~rich.table.Column` instance.
    title (Union[str, Text], optional): The title of the table rendered at the top. Defaults to None.
    caption (Union[str, Text], optional): The table caption rendered below. Defaults to None.
    width (int, optional): The width in characters of the table, or ``None`` to automatically fit. Defaults to None.
    min_width (Optional[int], optional): The minimum width of the table, or ``None`` for no minimum. Defaults to None.
    box (box.Box, optional): One of the constants in box.py used to draw the edges (see :ref:`appendix_box`), or ``None`` for no box lines. Defaults to box.HEAVY_HEAD.
    safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.
    padding (PaddingDimensions, optional): Padding for cells (top, right, bottom, left). Defaults to (0, 1).
    collapse_padding (bool, optional): Enable collapsing of padding around cells. Defaults to False.
    pad_edge (bool, optional): Enable padding of edge cells. Defaults to True.
    expand (bool, optional): Expand the table to fit the available space if ``True``, otherwise the table width will be auto-calculated. Defaults to False.
    show_header (bool, optional): Show a header row. Defaults to True.
    show_footer (bool, optional): Show a footer row. Defaults to False.
    show_edge (bool, optional): Draw a box around the outside of the table. Defaults to True.
    show_lines (bool, optional): Draw lines between every row. Defaults to False.
    leading (int, optional): Number of blank lines between rows (precludes ``show_lines``). Defaults to 0.
    style (Union[str, Style], optional): Default style for the table. Defaults to "none".
    row_styles (List[Union, str], optional): Optional list of row styles, if more than one style is given then the styles will alternate. Defaults to None.
    header_style (Union[str, Style], optional): Style of the header. Defaults to "table.header".
    footer_style (Union[str, Style], optional): Style of the footer. Defaults to "table.footer".
    border_style (Union[str, Style], optional): Style of the border. Defaults to None.
    title_style (Union[str, Style], optional): Style of the title. Defaults to None.
    caption_style (Union[str, Style], optional): Style of the caption. Defaults to None.
    title_justify (str, optional): Justify method for title. Defaults to "center".
    caption_justify (str, optional): Justify method for caption. Defaults to "center".
    highlight (bool, optional): Highlight cell contents (if str). Defaults to False.
ÚcolumnsÚrowsN)r   r   FTr   Únoneztable.headerztable.footerÚcenter)ÚtitleÚcaptionr7   r8   r   Úsafe_boxÚpaddingÚcollapse_paddingÚpad_edgeÚexpandÚshow_headerÚshow_footerÚ	show_edgeÚ
show_linesÚleadingr0   Ú
row_stylesr.   r/   Úborder_styleÚtitle_styleÚcaption_styleÚtitle_justifyÚcaption_justifyr<   Úheadersrj   rk   r7   r8   r   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   r0   rv   r.   r/   rw   rx   ry   rz   r$   r{   r<   r@   c                ó   • / U l         / U l        Xl        X l        X0l        X@l        XPl        X`l        [        R                  " U5      U l
        X�l        X l        X°l        XÀl        XÐl        Xàl        Xðl        X€l        UU l        U=(       d    SU l        U=(       d    SU l        UU l        UU l        UU l        UU l        UU l        UU l        [9        U=(       d    / 5      U l        U R                   R<                  nU HK  n[?        U[@        5      (       a  U RC                  US9  M)  [E        U R                   5      Ul#        U" U5        MM     g )Nr+   )r,   )$rf   rg   rj   rk   r7   r8   r   rl   r   ÚunpackÚ_paddingro   Ú_expandrq   rr   rs   rt   ru   rn   r0   r.   r/   rw   rx   ry   rz   r{   r<   rX   rv   ÚappendÚ
isinstanceÚstrÚ
add_columnÚlenr=   )rD   rj   rk   r7   r8   r   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   r0   rv   r.   r/   rw   rx   ry   rz   r{   r<   r|   Úappend_columnr,   s                                rE   Ú__init__ÚTable.__init__¼   s  € ð: &(ˆŒØ!ˆŒ	ØŒ
ØŒØŒ
Ø"ŒØŒØ ŒÜŸš wÓ/ˆŒØ ŒØŒØ&ÔØ&ÔØ"ŒØ$ŒØŒØ 0ÔØˆŒ
Ø(×.¨BˆÔØ(×.¨BˆÔØ(ˆÔØ&ˆÔØ*ˆÔØ.;ˆÔØ0?ˆÔØ"ˆŒÜ/3°J×4DÀ"Ó/EˆŒØŸ™×+Ñ+ˆÛˆFÜ˜&¤#×&Ñ&Ø—‘ v�Ó.ä # D§L¡LÓ 1�”Ù˜fÖ%ò rH   )rm   rn   ro   rp   c                ó    • U " USUUSSSUUS.6$ )ay  Get a table with no lines, headers, or footer.

Args:
    *headers (Union[Column, str]): Column headers, either as a string, or :class:`~rich.table.Column` instance.
    padding (PaddingDimensions, optional): Get padding around cells. Defaults to 0.
    collapse_padding (bool, optional): Enable collapsing of padding around cells. Defaults to True.
    pad_edge (bool, optional): Enable padding around edges of table. Defaults to False.
    expand (bool, optional): Expand the table to fit the available space if ``True``, otherwise the table width will be auto-calculated. Defaults to False.

Returns:
    Table: A table instance.
NF)r   rm   rn   rq   rr   rs   ro   rp   rO   )Úclsrm   rn   ro   rp   r|   s         rE   ÚgridÚ
Table.gridü   s,   € ñ* ØØØØ-ØØØØØò

ð 
	
rH   c                 óD   • U R                   =(       d    U R                  SL$ )z-Setting a non-None self.width implies expand.N)r€   r7   rC   s    rE   rp   ÚTable.expand  s   € ð �|‰|×5˜tŸz™z°Ð5Ð5rH   c                 ó   • Xl         g)zSet expand.N)r€   )rD   rp   s     rE   rp   rŽ   "  s	   € ð �rH   c                 ó°   • SnU R                   (       a  U R                  (       a  US-  nU R                   (       a  U[        U R                  5      S-
  -  nU$ )z'Get extra width to add to cell content.r   é   r   )r   rs   r…   rf   )rD   r7   s     rE   Ú_extra_widthÚTable._extra_width'  sC   € ð ˆØ�8�8˜ŸŸØ�Q‰JˆEØ�8�8Ø”S˜Ÿ™Ó&¨Ñ*Ñ*ˆEØˆrH   c                 ó,   • [        U R                  5      $ )zGet the current number of rows.)r…   rg   rC   s    rE   Ú	row_countÚTable.row_count1  s   € ô �4—9‘9‹~ÐrH   Úconsoler"   Úindexc                 ó  • [         R                  " 5       nU R                  (       a6  X1R                  U R                  U[	        U R                  5      -     5      -  nU R
                  U   R                  nUb  X1R                  U5      -  nU$ )zGet the current row style.)r   Únullrv   Ú	get_styler…   rg   r0   )rD   r—   r˜   r0   Ú	row_styles        rE   Úget_row_styleÚTable.get_row_style6  sp   € ä—
’
“ˆØ�?�?Ø×&Ñ& t§¡°u¼sÀ4Ç?Á?Ó?SÑ7SÑ'TÓUÑUˆEØ—I‘I˜eÑ$×*Ñ*ˆ	ØÑ Ø×&Ñ& yÓ1Ñ1ˆEØˆrH   Úoptionsr#   c           	      ó:  • UR                   nU R                  b  U R                  nUS:  a  [        SS5      $ U R                  n[	        U R                  XR                  X4-
  5      5      5      nU R                  nU R                   Vs/ s H  nU" XR                  U5      U5      PM     nn[	        S U 5       5      U-   nU R                  c  [	        S U 5       5      U-   OU R                  n	[        X‰5      n
U
R                  U R                  5      n
U
$ s  snf )Nr   c              3   ó8   #   • U  H  oR                   v •  M     g 7f©N)Úminimum©Ú.0Úmeasurements     rE   Ú	<genexpr>Ú)Table.__rich_measure__.<locals>.<genexpr>V  ó   é € ÐD²|¨×#Ö#²|ùó   ‚c              3   ó8   #   • U  H  oR                   v •  M     g 7fr¢   )Úmaximumr¤   s     rE   r§   r¨   Y  r©   rª   )r9   r7   r   r’   ÚsumÚ_calculate_column_widthsÚupdate_widthÚ_measure_columnrf   Úclampr8   )rD   r—   rŸ   r9   Úextra_widthr°   ÚcolumnÚmeasurementsÚminimum_widthÚmaximum_widthr¦   s              rE   Ú__rich_measure__ÚTable.__rich_measure__@  s!  € ð ×%Ñ%ˆ	Ø�:‰:Ñ!ØŸ
™
ˆIØ�q‹=Ü˜q !Ó$Ð$à×'Ñ'ˆÜØ×)Ñ)Ø×-Ñ-¨iÑ.EÓFóó
ˆ	ð
 ×.Ñ.ˆð Ÿ,š,ó
â&�ñ ˜G×%9Ñ%9¸)Ó%DÀfÖMÙ&ð 	ð 
ô
 ÑD±|ÓDÓDÀ{ÑRð 	ð
 —
‘
Ñ"ô ÑD±|ÓDÓDÀ{ÒRà—‘ð 	ô
 " -Ó?ˆØ!×'Ñ'¨¯©Ó7ˆØÐùò
s   Â	"Dc                 ó   • U R                   $ )zGet cell padding.)r   rC   s    rE   rm   ÚTable.paddinga  s   € ð �}‰}ÐrH   c                 ó<   • [         R                  " U5      U l        U $ )zSet cell padding.)r   r~   r   )rD   rm   s     rE   rm   rº   f  s   € ô  Ÿš wÓ/ˆŒØˆrH   r1   r3   r5   )r.   r<   r/   r0   r2   r4   r6   r7   r8   r9   r:   r;   r,   r&   r-   r2   r4   r   r6   r%   r9   r:   r;   c                óâ   • [        [        U R                  5      UUU=(       d    SUb  UOU R                  U=(       d    SU=(       d    SUUU	U
UUUUS9nU R                  R	                  U5        g)aõ  Add a column to the table.

Args:
    header (RenderableType, optional): Text or renderable for the header.
        Defaults to "".
    footer (RenderableType, optional): Text or renderable for the footer.
        Defaults to "".
    header_style (Union[str, Style], optional): Style for the header, or None for default. Defaults to None.
    highlight (bool, optional): Whether to highlight the text. The default of None uses the value of the table (self) object.
    footer_style (Union[str, Style], optional): Style for the footer, or None for default. Defaults to None.
    style (Union[str, Style], optional): Style for the column cells, or None for default. Defaults to None.
    justify (JustifyMethod, optional): Alignment for cells. Defaults to "left".
    vertical (VerticalAlignMethod, optional): Vertical alignment, one of "top", "middle", or "bottom". Defaults to "top".
    overflow (OverflowMethod): Overflow method: "crop", "fold", "ellipsis". Defaults to "ellipsis".
    width (int, optional): Desired width of column in characters, or None to fit to contents. Defaults to None.
    min_width (Optional[int], optional): Minimum width of column, or ``None`` for no minimum. Defaults to None.
    max_width (Optional[int], optional): Maximum width of column, or ``None`` for no maximum. Defaults to None.
    ratio (int, optional): Flexible ratio for the column (requires ``Table.expand`` or ``Table.width``). Defaults to None.
    no_wrap (bool, optional): Set to ``True`` to disable wrapping of this column.
r+   N)r=   r,   r-   r.   r<   r/   r0   r2   r4   r6   r7   r8   r9   r:   r;   )r)   r…   rf   r<   r�   )rD   r,   r-   r.   r<   r/   r0   r2   r4   r6   r7   r8   r9   r:   r;   r³   s                   rE   r„   ÚTable.add_columnl  sr   € ôN Ü�t—|‘|Ó$ØØØ%×+¨Ø#,Ñ#8‘i¸d¿n¹nØ%×+¨Ø—+˜2ØØØØØØØØñ
ˆð" 	�‰×Ñ˜FÕ#rH   ©r0   r^   Úrenderablesr^   c                óž  • S[         SSSS4S jn[        U5      nU R                  n[        U5      [        U5      :  a  / UQS/[        U5      [        U5      -
  -  Qn[	        U5       H¿  u  pxU[        U5      :X  aT  [        XpR
                  S9n	U R                   H  n
U" U	[        S5      5        M     U R                  R                  U	5        OXg   n	Uc  U" U	S5        Mz  [        U5      (       a
  U" X˜5        M”  [        R                  " S	[        U5      R                   S
35      e   U R                  R                  [        XS95        g)a¸  Add a row of renderables.

Args:
    *renderables (None or renderable): Each cell in a row must be a renderable object (including str),
        or ``None`` for a blank cell.
    style (StyleType, optional): An optional style to apply to the entire row. Defaults to None.
    end_section (bool, optional): End a section and draw a line. Defaults to False.

Raises:
    errors.NotRenderableError: If you add something that can't be rendered.
r³   rb   r&   r@   Nc                 ó:   • U R                   R                  U5        g r¢   )r?   r�   )r³   rb   s     rE   Úadd_cellÚTable.add_row.<locals>.add_cell¸  s   € Ø�M‰M× Ñ  Õ,rH   )r=   r<   r+   zunable to render z1; a string or other renderable object is requiredr¾   )r)   rX   rf   r…   Ú	enumerater<   rg   r    r�   r   r   ÚNotRenderableErrorÚtyperP   r\   )rD   r0   r^   r¿   rÂ   Úcell_renderablesrf   r˜   rb   r³   Ú_s              rE   Úadd_rowÚTable.add_row¦  s@  € ð$	-œVð 	-Ð1Að 	-Àdô 	-ô >BÀ+Ó=NÐà—,‘,ˆÜÐÓ ¤3 w£<Ó/ð Ø!ð à�œ3˜w›<¬#Ð.>Ó*?Ñ?Ñ@ð Ðô "+Ð+;Ö!<ÑˆEØœ˜G›Ó$Ü u¿¹ÑG�ØŸœ�AÙ˜V¤T¨"£XÖ.ñ #à—‘×#Ñ# FÕ+à ™�ØÑ!Ù˜ Ö$Ü˜z×*Ñ*Ù˜Ö,ä×/Ò/Ø'¬¨ZÓ(8×(AÑ(AÐ'BÐBsÐtóð ñ "=ð  	�	‰	×Ñœ 5ÑBÕCrH   c                 óP   • U R                   (       a  SU R                   S   l        gg)z2Add a new section (draw a line after current row).TéÿÿÿÿN)rg   r^   rC   s    rE   Úadd_sectionÚTable.add_sectionÕ  s    € ð �9�9Ø(,ˆD�I‰I�b‰MÕ%ð rH   r'   c           	   #   ó  ^^#   • U R                   (       d  [        S5      v •  g UR                  nU R                  b  U R                  nU R                  nU R                  TUR                  X4-
  5      5      n[        U5      U-   nUR                  X`R                  S S9m SS[        S[        SSSS4UU4S	 jjjnU R                  (       aC  U" U R                  [        R                  " U R                  S
5      U R                   S9 S h  v•N   U R#                  TTU5       S h  v•N   U R$                  (       aD  U" U R$                  [        R                  " U R&                  S5      U R(                  S9 S h  v•N   g g  Nu N\ N
7f)NÚ
)r7   r<   ÚheightÚtextr0   r2   r$   r@   r'   c                 óŒ   >• [        U [        5      (       a  TR                  XSS9OU nTR                  UTR	                  US9S9$ )NF)r0   r<   ©r2   )rŸ   )r‚   rƒ   Ú
render_strÚrenderÚupdate)rÒ   r0   r2   Úrender_textr—   Úrender_optionss       €€rE   Úrender_annotationÚ1Table.__rich_console__.<locals>.render_annotationñ  sZ   ø€ ô
 ˜d¤C×(Ñ(ð ×"Ñ" 4ÀÐ"ÑFàð ð
 —>‘>Ø ^×%:Ñ%:À7Ð%:Ð%Kð "ð ð rH   ztable.title)r0   r2   ztable.caption)ri   )rf   r   r9   r7   r’   r®   r¯   r­   r×   r<   r!   r   rj   r   Ú
pick_firstrx   rz   Ú_renderrk   ry   r{   )	rD   r—   rŸ   r9   r²   ÚwidthsÚtable_widthrÚ   rÙ   s	    `      @rE   Ú__rich_console__ÚTable.__rich_console__Û  sr  ùé € ð �|�|Ü˜$“-ÒØà×%Ñ%ˆ	Ø�:‰:Ñ!ØŸ
™
ˆIà×'Ñ'ˆà×.Ñ.Ø�W×)Ñ)¨)Ñ*AÓBó
ˆô ˜&“k KÑ/ˆà Ÿ™Ø¯©Àð (ð 
ˆð
 JRñ
	Üð
	Ü#,ð
	Ø7Fð
	à÷
	ñ 
	ð �:�:Ù(Ø—
‘
Ü×&Ò& t×'7Ñ'7¸ÓGØ×*Ñ*ñ÷ ð ð
 —<‘< ¨¸Ó@×@Ð@Ø�<�<Ù(Ø—‘Ü×&Ò& t×'9Ñ'9¸?ÓKØ×,Ñ,ñ÷ ñ ð ññ
 	Añùs7   „DFÄFÄFÄ&FÄ'AFÅ:FÅ;FÆFÆFc           
      óâ  • UR                   nU R                  nU Vs/ s H  oPR                  XU5      PM     nnU Vs/ s H  owR                  =(       d    SPM     nnU R                  n	U R
                  n
U R                  (       Ga/  U Vs/ s H*  o»R                  (       d  M  UR                  =(       d    SPM,     nn[        U5      (       aè  [        Xd5       VVs/ s H$  u  puUR                  (       a  SOUR                  PM&     nnnU Vs/ s H>  nUR                  (       d  M  UR                  =(       d    SU	" UR                  5      -   PM@     nnU[        U5      -
  n[        XüU5      n[        U5      n[!        U5       H-  u  nnUR                  (       d  M  UU   [#        U5      -   UU'   M/     [        U5      nUU:”  aå  U R%                  UU Vs/ s H(  oUR                  SL =(       a    UR&                  (       + PM*     snU5      n[        U5      nUU:”  a*  UU-
  n[)        US/[+        U5      -  Xˆ5      n[        U5      n[        X„5       VVs/ s H'  u  nnU R                  XR-                  U5      U5      PM)     nnnU Vs/ s H  owR                  =(       d    SPM     nnUU:  a  U R                  (       d   U R.                  bn  UU R.                  U
-
  :  a[  U R.                  c  UO[1        U R.                  U
-
  U5      n[        UU-
  U5      n[        UU5       VVs/ s H  u  nnUU-   PM     nnnU$ s  snf s  snf s  snf s  snnf s  snf s  snf s  snnf s  snf s  snnf )zNCalculate the widths of each column, including padding, not including borders.r   r   N)r9   rf   r°   r¬   Ú_get_padding_widthr’   rp   rM   r:   ÚanyÚzipr7   r=   r­   r   ÚiterrÄ   ÚnextÚ_collapse_widthsr;   r   r…   r¯   r8   Úmin)rD   r—   rŸ   r9   rf   r³   Úwidth_rangesÚ_rangerÞ   Úget_padding_widthr²   ÚcolÚratiosÚfixed_widthsÚflex_minimumÚflexible_widthÚflex_widthsÚiter_flex_widthsr˜   rß   Úexcess_widthr7   Ú
_max_widthÚ
pad_widthsÚ_widthÚpads                             rE   r®   ÚTable._calculate_column_widths  s;  € ð ×%Ñ%ˆ	Ø—,‘,ˆáIPó
ÚIP¸v× Ñ  °6Ö:Éð 	ð 
ñ 5AÓA²L¨&—.‘.×% AÒ%±LˆÐAà ×3Ñ3ÐØ×'Ñ'ˆØ�;�;ˆ;Ù07ÓH²¨¿<½<“n�c—i‘i—n 1’n±ˆFÐHÜ�6�{‰{ô +.¨lÔ*Dô â*D™˜ð  ŸŸ‘A¨f¯n©nÒ<Ù*Dð ñ  ñ #*ó â")˜Ø—•ó K�V—\‘\×& QÑ*;¸F¿M¹MÓ*JÔJÙ")ð ð  ð
 "+¬S°Ó->Ñ!>�Ü.¨~À|ÓT�Ü#'¨Ó#4Ð Ü%.¨wÖ%7‘M�E˜6Ø——‘Ø(4°UÑ(;¼dÐCSÓ>TÑ(T˜˜u›ñ &8ô ˜&“kˆà˜Ó"Ø×*Ñ*ØÙMTÓUÊWÀ6—,‘, $Ð&×=¨v¯~©~Ô+=Ò=ÉWÑUØóˆFô
 ˜f›+ˆKà˜YÓ&Ø*¨YÑ6�Ü% l°Q°C¼#¸f»+Ñ4EÀvÓV�Ü! &›k�ô &)¨Ô%9ôâ%9‘M�E˜6ð ×$Ñ$ W×.BÑ.BÀ5Ó.IÈ6ÖRÙ%9ð ñ ñ 9EÓEº¨f—n‘n×)¨Ò)¹ˆFÐEà˜)Ó#¨¯¯Ø�N‰NÑ&¨;¸$¿.¹.È;Ñ:VÓ+Wð —>‘>Ñ)ñ ä˜Ÿ™¨+Ñ5°yÓAð ô
 *¨*°{Ñ*BÀFÓKˆJÜ69¸&À*Ô6MÔNÒ6M¡{ v¨s�f˜s”lÑ6MˆFÑNàˆùòs
ùò Bùò
 Iùó ùò ùò  Vùóùò Fùó Os@   �M¾MÂMÂ$MÃ+MÄMÄ(,MÇ/M
É.M ÊM&Ì*M+rÞ   Úwrapablec                 óü  ^• [        U5      nXC-
  n[        U5      (       aÕ  U(       aÎ  US:”  aÈ  [        S [        X5       5       5      m[        U4S j[        X5       5       5      nTU-
  n[        X5       VV	s/ s H  u  p‰UT:X  a	  U	(       a  SOSPM     n
nn	[        U
5      (       a  U(       d   U$ [	        XW5      /[        U5      -  n[        XZX±5      n[        U5      nXC-
  nU(       a  US:”  a  MÈ  U$ s  sn	nf )a  Reduce widths so that the total is under max_width.

Args:
    widths (List[int]): List of widths.
    wrapable (List[bool]): List of booleans that indicate if a column may shrink.
    max_width (int): Maximum width to reduce to.

Returns:
    List[int]: A new list of widths.
r   c              3   ó<   #   • U  H  u  pU(       d  M  Uv •  M     g 7fr¢   rO   )r¥   r7   Ú
allow_wraps      rE   r§   Ú)Table._collapse_widths.<locals>.<genexpr>^  s   é € ð !Ú3HÑ/˜eÌJ—E‘EÒ3Hùs   ‚“	c              3   óJ   >#   • U  H  u  pU(       a  UT:w  a  UOS v •  M     g7f)r   NrO   )r¥   r7   rý   Ú
max_columns      €rE   r§   rþ   a  s)   øé € ð (â-BÑ)˜ö (¨E°ZÓ,?‘EÀQÔFÚ-Bùs   ƒ #r   )r­   rä   Úmaxrå   ré   r…   r   )rŠ   rÞ   rú   r9   Útotal_widthrô   Úsecond_max_columnÚcolumn_differencer7   rý   rî   Ú
max_reducer   s               @rE   rè   ÚTable._collapse_widthsL  s  ø€ ô ˜&“kˆØ"Ñ.ˆÜˆx�=‰=Þ ,°Ó"2Ü ñ !Ü36°vÔ3Hó!ó �
ô %(ô (ä-0°Ô-Bó(ó %Ð!ð %/Ð1BÑ$BÐ!ô .1°Ô-Bôâ-BÑ)˜ð ! JÓ.¶:‘QÀAÒEÙ-Bð ñ ô ˜6—{‘{Ö*;Øð ˆô " ,ÓBÐCÄcÈ&ÃkÑQ�
Ü% l¸JÓO�ä! &›k�Ø*Ñ6�ö'  ,°Õ"2ð( ˆùós   Á:C8Úcolumn_indexr³   c              #   óB  ^^^^^^#   • U R                   mU R                  mU R                  m[        T5      nUS:H  mU[	        U R
                  5      S-
  :H  m0 mS[        S[        S[        [        [        [        [        4   4UUUUUU4S jjn/ nUR                  nUR                  nU R                  (       aA  U" U R                  =(       d    S5      U" UR                  5      -   n	U" X“R                  45        U" UR                  =(       d    S5      n
UR                   H  nU" X«45        M     U R                   (       aA  U" U R"                  =(       d    S5      U" UR"                  5      -   nU" XÃR$                  45        U(       aY  [&        n[)        U5       HC  u  pïu  nn[+        UU" UU" Xï5      5      [-        USS	5      =(       d    UR.                  5      v •  ME     g	U H3  u  nn[+        UU[-        USS	5      =(       d    UR.                  5      v •  M5     g	7f)
z3Get all the cells with padding and optional header.r   r   Ú	first_rowÚlast_rowr@   c                 ó  >• TR                  X45      nU(       a  U$ Tu  p4pVT	(       a*  T
(       d  [        SXd-
  5      nU(       d  [        SX5-
  5      nT(       d$  T
(       a  SnT(       a  SnU (       a  SnU(       a  SnX4XV4nUTX4'   U$ )Nr   )Úgetr  )r	  r
  Úcachedr3   ÚrightÚbottomr1   r   Ú_padding_cachern   Úfirst_columnÚlast_columnro   rm   s           €€€€€€rE   Úget_paddingÚ%Table._get_cells.<locals>.get_padding‚  sŒ   ø€ Ø#×'Ñ'¨Ð(=Ó>ˆFÞØ�Ø'.Ñ$ˆC˜æÞ#Ü˜q $¡,Ó/�DÞÜ   C¡LÓ1�FæÞØ�DÞØ�EÞØ�CÞØ�FØ FÐ1ˆHØ4<ˆN˜IÐ0Ñ1ØˆOrH   r+   r4   N)rn   ro   rm   rä   r…   rf   rW   r   rV   r�   r›   rq   r.   r,   r0   rJ   rr   r/   r-   r   r   r`   Úgetattrr4   )rD   r—   r  r³   Úany_paddingr  Ú	raw_cellsÚ_appendr›   r.   Ú
cell_styleÚcellr/   Ú_PaddingÚfirstÚlastr0   rb   r  rn   r  r  ro   rm   s                     @@@@@@rE   Ú
_get_cellsÚTable._get_cellss  sç  ýé € ð
  ×0Ñ0ÐØ—=‘=ˆØ—,‘,ˆÜ˜'“lˆà# qÑ(ˆØ"¤c¨$¯,©,Ó&7¸!Ñ&;Ñ;ˆàMOˆð	¤4ð 	´4ð 	¼EÄ#ÄsÌCÔQTÐBTÑ<U÷ 	ô 	ð2 ?Aˆ	Ø×"Ñ"ˆØ×%Ñ%ˆ	Ø××Ù$ T×%6Ñ%6×%<¸"Ó=Á	Ø×#Ñ#óAñ ˆLñ �\§=¡=Ð1Ô2Ù˜vŸ|™|×1¨rÓ2ˆ
Ø—L”LˆDÙ�ZÐ&Ö'ñ !à××Ù$ T×%6Ñ%6×%<¸"Ó=Á	Ø×#Ñ#óAñ ˆLñ �\§=¡=Ð1Ô2æÜˆHÜ4CÀIÖ4NÑ0�Ñ0˜e ZÜØÙ˜Z©°UÓ)AÓBÜ˜J¨
°DÓ9×L¸V¿_¹_óô ò 5Oó &/Ñ!��zÜØØÜ˜J¨
°DÓ9×L¸V¿_¹_óô ò &/ùs   ˆHHc                 óÖ   • U R                   u  p#p$U R                  (       a  Sn[        XC-
  5      nU R                  (       d&  US:X  a  SnU[	        U R
                  5      S-
  :X  a  SnXC-   $ )zGet extra width from padding.r   r   )rm   rn   Úabsro   r…   rf   )rD   r  rÈ   Ú	pad_rightÚpad_lefts        rE   rã   ÚTable._get_padding_width¼  sc   € à$(§L¡LÑ!ˆ�aà× × ØˆHÜ˜HÑ0Ó1ˆIà�}�}Ø˜qÓ Ø�Øœs 4§<¡<Ó0°1Ñ4Ó4Ø�	àÑ#Ð#rH   c                 ó  • UR                   nUS:  a  [        SS5      $ U R                  UR                  5      nUR                  b5  [        UR                  U-   UR                  U-   5      R                  U5      $ / n/ nUR                  nUR                  n	[        R                  n
U R                  XR                  U5       H(  nU
" XUR                  5      u  pÍU" U5        U	" U5        M*     [        U(       a  [        U5      OSU(       a  [        U5      OU5      R                  U5      nUR                  UR                  c  SOUR                  U-   UR                   c  S5      nU$ UR                   U-   5      nU$ )z0Get the minimum and maximum width of the column.r   r   N)r9   r   rã   r=   r7   Úwith_maximumr�   r  r  rb   r  r±   r8   )rD   r—   rŸ   r³   r9   Úpadding_widthÚ
min_widthsÚ
max_widthsÚ
append_minÚ
append_maxÚget_render_widthr  Ú_minÚ_maxr¦   s                  rE   r°   ÚTable._measure_columnÌ  sj  € ð ×%Ñ%ˆ	Ø�q‹=Ü˜q !Ó$Ð$à×/Ñ/°·±Ó>ˆØ�<‰<Ñ#äØ—‘˜}Ñ,¨f¯l©l¸]Ñ.Jóç‰l˜9Ó%ð&ð !#ˆ
Ø "ˆ
Ø×&Ñ&ˆ
Ø×&Ñ&ˆ
Ü&Ÿ?™?ÐØ—O‘O G¯]©]¸FÖCˆDÙ)¨'¸D¿O¹OÓL‰JˆDÙ�tÔÙ�tÖñ Dô
 "Þ)ŒC�
ŒO¨qÞ)ŒC�
ŒO¨yó
÷ ‰,�yÓ
!ð 	ð "×'Ñ'Ø×$Ñ$Ñ,‰D°&×2BÑ2BÀ]Ñ2RØ×$Ñ$Ñ,ˆDó
ˆð Ðð 39×2BÑ2BÀ]Ñ2Ró
ˆð ÐrH   c              #   ó  ^ ^^*^+^,^-#   • TR                  T R                  =(       d    S5      nUTR                  T R                  =(       d    S5      -   nUU 4S j[        T R                  5       5       n[        [        U6 5      nT R                  (       a8  T R                  R                  U[        T R                  TR                  5      S9OS nU(       a!  T R                  (       d  UR                  5       OUn[        R                  " 5       n	T R                  n
T R                  nT R                  nT R                   nT R"                  nT R$                  n[        m*U(       aÍ  T*" UR&                  U5      T*" UR(                  U5      T*" UR*                  U5      4T*" UR,                  U5      T*" UR.                  U5      T*" UR0                  U5      4T*" UR2                  U5      T*" UR4                  U5      T*" UR6                  U5      4/nU(       a  T*" UR9                  U5      U5      v •  U	v •  O/ nT R:                  nTR                   n[        [=        U5      5       GHê  u  nu  nnnU=(       a    Um,U=(       a    Um+T,(       d  T+(       d  T R>                  UU-
     OS nSn/ nT,(       d  T+(       a  [@        RB                  " 5       nOU" U" TU(       a  US-
  OU5      5      n[        UUU
5       H—  u  nnnURE                  UURF                  URH                  URJ                  S URL                  S9nTRO                  URP                  UU" UR                  5      U-   S9n[S        U[U        U5      5      nURW                  U5        M™     [S        S U 5       5      m-S[X        [X        [              S	S
S[Z        S[@        S[X        [X        [              4
U*U+U,U-4S jjn [        UUUU
5       VV!VVs/ s HA  u  nn!nnT*R]                  U " UU!R^                  UU" U!R                  5      U-   5      UU5      PMC     snnn!nUS S & U(       aî  U(       a%  U(       a  T*" URa                  USUS9U5      v •  U	v •  UU(       a  SO
U(       a  SOS   u  n"n#n$U$Rb                  Re                  5       (       a  U$O)T*" U$Rb                  URf                  U$R                  -   5      n%[i        U5       HL  n&U(       a  U"v •  [k        U5       H   u  n'n(U(U&    S h  v•N   U'(       a  M  U%v •  M"     U(       a  U#v •  U	v •  MN     O,[i        U5       H  n&U H  n(U(U&    S h  v•N   M     U	v •  M     U(       a,  U(       a%  U(       a  T*" URa                  USUS9U5      v •  U	v •  U=(       a    URl                  n)U(       d  GMX  U(       d  U(       d
  U)(       d  GMp  U(       a  GMz  U(       a  U[U        U5      S-
  :¼  a  GM–  U(       a
  T,(       a  GM§  U(       a  T*" URa                  USUS9U-  U5      v •  OT*" URa                  USUS9U5      v •  U	v •  GMí     U(       a'  U(       a  T*" URo                  U5      U5      v •  U	v •  g g g s  snnn!nf  GNv GN47f)Nr+   c              3   óL   >#   • U  H  u  pTR                  TX5      v •  M     g 7fr¢   )r  )r¥   r  r³   r—   rD   s      €€rE   r§   Ú Table._render.<locals>.<genexpr>ù  s)   øé € ð 
â(?Ñ$�ð �O‰O˜G \×:Ð:Ú(?ùs   ƒ!$)Úsafer   )r7   r2   r;   r6   rÑ   r<   ©r0   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr¢   )r…   )r¥   r  s     rE   r§   r2  N  s   é € Ð9²5¨4œS ŸY˜Y²5ùrª   r  r4   r   r7   r0   r@   c                 ó´   >• T(       a  SnO	T(       a  SnUS:X  a  TR                  XTU5      $ US:X  a  TR                  XTU5      $ TR                  XTU5      $ )Nr  r3   Úmiddle)Ú	align_topÚalign_middleÚalign_bottom)r  r4   r7   r0   Ú_SegmentÚ
footer_rowÚ
header_rowÚ
row_heights       €€€€rE   Ú
align_cellÚ!Table._render.<locals>.align_cellP  sd   ø€ ö Ø'‘HÞØ$�Hà˜uÓ$Ø#×-Ñ-¨d¸:ÀuÓMÐMØ Ó)Ø#×0Ñ0°¸jÈ%ÓPÐPØ×,Ñ,¨T¸*ÀeÓLÐLrH   Úfoot)Úedger   r‘   ÚheadÚmidÚrow)8r›   r0   rw   rÄ   rf   rX   rå   r   Ú
substituter   rl   rq   Úget_plain_headed_boxr   Úlinerr   rs   rt   ru   Ú	head_leftÚ
head_rightÚhead_verticalÚmid_leftÚ	mid_rightÚmid_verticalÚ	foot_leftÚ
foot_rightÚfoot_verticalÚget_topr�   r   rg   r   rš   r×   r2   r;   r6   r<   Úrender_linesrb   r  r…   r�   r	   rV   Ú	set_shaper4   Úget_rowrÒ   ÚstripÚbackground_styleÚranger   r^   Ú
get_bottom).rD   r—   rŸ   rÞ   Útable_stylerw   Ú_column_cellsÚ	row_cellsÚ_boxÚnew_linerf   rq   rr   rs   rt   ru   Úbox_segmentsr�   r›   r˜   r  r  Úrow_cellrE  Ú
max_heightrJ   rœ   r7   r  r³   rÙ   Úlinesr?  Ú_cellr1   r  Ú_dividerÚdividerÚline_noÚ	last_cellÚrendered_cellr^   r;  r<  r=  r>  s.   ``                                        @@@@rE   rÝ   ÚTable._renderó  s  ýé € ð ×'Ñ'¨¯
©
×(8°bÓ9ˆà" W×%6Ñ%6°t×7HÑ7H×7NÈBÓ%OÑOˆõ
ä(1°$·,±,Ô(?ó
ˆô
 .2´#°}Ð2EÓ-Fˆ	ð
 �x�xð �H‰H×ÑØœi¨¯©°w×7GÑ7GÓHð  ñ ð ð 	ö /3¸4×;K×;Kˆt×(Ñ(Ô*ÐQUˆä—<’<“>ˆà—,‘,ˆØ×&Ñ&ˆØ×&Ñ&ˆØ—N‘Nˆ	Ø—_‘_ˆ
Ø—,‘,ˆäˆÞñ ˜TŸ^™^¨\Ó:Ù˜TŸ_™_¨lÓ;Ù˜T×/Ñ/°Ó>ðñ ˜TŸ]™]¨LÓ9Ù˜TŸ^™^¨\Ó:Ù˜T×.Ñ.°Ó=ðñ ˜TŸ^™^¨\Ó:Ù˜TŸ_™_¨lÓ;Ù˜T×/Ñ/°Ó>ððˆLö" Ù˜tŸ|™|¨FÓ3°\ÓBÒBØ’øàˆLà×*Ñ*ˆØ×%Ñ%ˆ	ä.7¼È	Ó8R×.SÑ*ˆEÑ*�E˜4 Ø×. ;ˆJØ×- +ˆJö #®:ð —	‘	˜% +Ñ-Ò.àð ð
 ˆJØ/1ˆEÞžZÜ!ŸJšJ›L‘	á%Ù! '¾¨5°1ª9ÈÓOó�	ô (+¨6°8¸WÖ'EÑ#��t˜VØ!(§¡ØØ"ŸN™NØ"ŸN™NØ#Ÿ_™_ØØ$×.Ñ.ð "0ð "�ð  ×,Ñ,Ø—O‘OØ"Ù# D§J¡JÓ/°)Ñ;ð -ð �ô
 ! ¬S°«ZÓ8�
Ø—‘˜UÖ#ñ (Fô" Ñ9±5Ó9Ó9ˆJðMÜœ4¤™=Ñ)ðMà/ðMô ðMô ð	Mô
 ”dœ7‘mÑ$÷Mò Mô8 36°f¸hÈÈwÔ2Wöò 3XÑ.�E˜5 $¨ð ×"Ñ"ÙØØŸ™ØÙ! %§+¡+Ó.°Ñ:ó	ð Øö	ñ 3XôˆE‘!ˆHö ÞžKÙ"ØŸ™ V¨V¸)˜ÐDÀlóò ð #’NØ(4¾%±QÎ4ÁaÐUVÑ(XÑ%��e˜Xð
  —}‘}×*Ñ*×,Ñ,ñ á!Ø Ÿ™ y×'AÑ'AÀHÇNÁNÑ'Róð ô  % ZÖ0�GÞ Ø"š
Ü4=¸eÖ4DÑ0˜	 =Ø#0°Ñ#9×9Ð9ß(˜yØ")œMñ 5Eö !Ø#šØ"”Nò  1ô  % ZÖ0�GÛ).˜Ø#0°Ñ#9×9Ò9ñ */à"”Nñ  1ö ž¦+ÙØ—L‘L ¨°i�LÐ@À,óò ð ’Ø×1 #§/¡/ˆKß‰tž¦w·+±+ç™Þ(¨U´c¸)³nÀqÑ6HÖ-HÞ(¯Z©ZæÙ&Ø ŸL™L¨°¸Y˜LÐGÈ'ÑQØ(óó ñ
 'Ø ŸL™L¨°¸Y˜LÐGÈóò ð #•Nñm /Töp –IÙ˜4Ÿ?™?¨6Ó2°LÓAÒAØ‹Nð ˆ4ùõIòD :ò :ùsX   ˆO+ZÏ3AY=Ð;CZÔZ
Ô	ZÔ7ZÕZ
ÕAZÖ7Z×Z×Z×5ZØB ZÚZ)r€   r   rw   r   rk   r{   ry   rn   rf   r/   r.   r<   ru   r8   ro   rv   rg   rl   rs   rr   rq   rt   r0   rj   rz   rx   r7   )r+   r+   )r@   N)r—   r"   rŸ   r#   r@   r'   ).rP   rQ   rR   rS   rT   r	   r)   rU   r\   r   Ú
HEAVY_HEADr   rƒ   r   r!   rV   ÚBoxrW   r   r   r   r‡   Úclassmethodr‹   rY   rp   Úsetterr’   r•   r�   r   r·   r   rm   r„   rÉ   rÍ   rà   r®   rè   r`   r  rã   r°   rÝ   rZ   rO   rH   rE   rd   rd   ™   s…  ‡ ñð> �&‰\ÓØ
ˆs‰)ƒOð
 %)Ø&*Ø#Ø#'Ø!$§¡Ø#'Ø%+Ø!&ØØØ Ø!ØØ ØØ!Ø48Ø,:Ø,:Ø,0Ø+/Ø-1Ø)1Ø+3Øò7>&à˜ ˜Ñ$ð>&ð ˜Ñ!ð>&ð ˜(Ñ#ð	>&ð
 ˜‰}ð>&ð ˜C‘=ð>&ð �c—g‘gÑð>&ð ˜4‘.ð>&ð #ð>&ð ð>&ð ð>&ð ð>&ð ð>&ð ð>&ð ð>&ð  ð!>&ð" ð#>&ð$ ð%>&ð& ˜X iÑ0Ñ1ð'>&ð( ˜yÑ)ð)>&ð* ˜yÑ)ð+>&ð, ˜yÑ)ð->&ð. ˜iÑ(ð/>&ð0   	Ñ*ð1>&ð2 'ð3>&ð4 )ð5>&ð6 ð7>&ð8 
õ9>&ð@ ð &'Ø!%ØØò
à˜ ˜Ñ$ð
ð #ð
ð ð	
ð
 ð
ð ð
ð 
ô
ó ð
ð@ ð6˜ó 6ó ð6ð ‡]�]ð˜Tð  dó ó ðð ð˜có ó ðð ð˜3ó ó ðð Yð °sð ¸yô ðØ ðØ+;ðà	ôðB ð˜˜s C¨¨cÐ1Ñ2ó ó ðð ‡^�^ðÐ0ð °Wó ó ðð $&Ø#%ð8$ð
 -1Ø$(Ø,0Ø%)Ø#)Ø*/Ø%/Ø#Ø#'Ø#'Ø#Øò!8$à ð8$ð !ð8$ð
 ˜yÑ)ð8$ð ˜D‘>ð8$ð ˜yÑ)ð8$ð ˜	Ñ"ð8$ð !ð8$ð (ð8$ð #ð8$ð ˜‰}ð8$ð ˜C‘=ð8$ð ˜C‘=ð8$ð ˜‰}ð8$ð  ð!8$ð" 
ö#8$ðz &*Ø!ò	-DàÐ/Ñ0ð-Dð ˜	Ñ"ð-Dð ð	-Dð
 
õ-Dô^-ð.Ø ð.Ø+;ð.à	ô.ð`?Ø ð?Ø+;ð?à	ˆc‰ô?ðB ð$Ø˜#‘Yð$Ø*.¨t©*ð$ØADð$à	ˆc‰ó$ó ð$ðLGØ ðGØ03ðGØ=CðGà	�%‰ôGðR$¨sð $°sô $ð %àð%ð "ð%ð ð	%ð
 
ô%ðNtØ ðtØ+;ðtØEIÈ#ÁYðtà	÷trH   rd   Ú__main__)r"   )ÚReprHighlighter)ÚtimerzTable renderzStar Wars MovieszRich example tabler  )rj   rk   r{   ÚReleasedÚbright_cyanÚcyanT)r.   r0   r;   ÚTitleÚmagentar4  z
Box OfficeÚgreen)r2   r0   zDec 20, 2019z Star Wars: The Rise of Skywalkerz$952,110,690zMay 25, 2018zSolo: A Star Wars Storyz$393,151,347zDec 15, 2017z!Star Wars Ep. V111: The Last Jediz$1,332,539,889zon blackr¾   zDec 16, 2016zRogue One: A Star Wars Storyz$1,332,439,889rÒ   r@   Nc                 ó�   • [         R                  5         [         R                  [        U 5      5        [         R                  5         g r¢   )r—   ÚprintÚruler<   )rÒ   s    rE   r,   r,   Ð  s$   € Ü�M‰MŒOÜ�L‰Lœ 4›Ô)Ü�M‰M�OrH   zExample Tableri   rÔ   zexpand=Trueé2   zwidth=50FÚdimrh   zrow_styles=['dim', 'none']z%leading=1, row_styles=['dim', 'none']z+show_lines=True, row_styles=['dim', 'none'])IÚdataclassesr   r   r   Útypingr   r   r   r	   r
   r   r   r   r   r+   r   r   Ú_loopr   r   Ú_pickr   Ú_ratior   r   Úalignr   Újupyterr   Úmeasurer   rm   r   r   Úprotocolr   Úsegmentr   r0   r   r   rÒ   r    r!   r—   r"   r#   r$   r%   r&   r'   r)   r\   r`   rd   rP   Úrich.consoleÚrich.highlighterro  Ú_timerrp  Útabler„   rÉ   rƒ   r,   r<   rx  rp   r7   rv   ru   rt   rO   rH   rE   Ú<module>rŠ     s²  ðß 1Ñ 1÷
÷ 
õ 
÷ ß -Ý ß 2Ý &Ý !Ý  ß /Ý #Ý ß #ß  æ÷÷ ð ÷Y&ð Y&ó ðY&ðx ÷Mð Mó ðMô#ˆJô #ôNˆLô Nðb ˆzÔÝ$Ý0åá	ˆ~Õ	ÙØ$Ø(Ø#ñ
ˆð 	×ÑØ ]¸&È$ð 	ñ 	
ð 	×Ñ˜¨	ÐÑ2Ø×Ñ˜¨w¸gÐÑFà�‰ØØ.Øô	
ð
 	�‰�nÐ&?ÀÔPØ�‰ØØ/ØØØð 	ñ 	
ð 	�‰ØØ*Øô	
ð	˜ð 	 ô 	ñ
 “)ˆÙ#Ó%ˆ	ÙˆÔØ�‰�e XˆÑ.àˆŒÙˆ}ÔØ�‰�eÔàˆŒÙˆzÔà�‰�e XˆÑ.àˆŒØˆŒØ! 6˜?ˆÔÙÐ+Ô,à�‰�e XˆÑ.àˆŒØˆŒØ! 6˜?ˆÔØˆŒÙÐ6Ô7Ø�‰�e XˆÑ.àˆŒØˆŒØ! 6˜?ˆÔØˆÔØˆŒÙÐ<Ô=Ø�‰�e XˆÑ.÷O 
Ð	ð ÷ 
Õ	ús   Ã!FJÊ
J