§
    )xÅj½[  ã            	      ó”  — d Z ddlmZ ddlZddlZddlZddlmZmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZ dgZi dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“Zi dd1“dd2“dd3“dd4“dd5“dd6“dd7“dd8“dd9“d!d:“d#d;“d%d<“d'd=“d)d>“d+d?“d-d@“d/dA“Zi ddB“ddB“ddC“d!dD“d/dE“ddF“ddG“ddH“ddI“ddJ“ddK“d#dL“d%dM“d'dN“d)dO“d+dP“d-dQ“Z ee¦  «         ee¦  «        k    sJ ‚ ee¦  «         ee¦  «        k    sJ ‚ ee¦  «         ee¦  «        k    sJ ‚didjd[„Z e!e"e#f         Z$ G d\„ d]¦  «        Z% G d^„ d_e&e!e"e"e"f         e"f         ¦  «        Z' e%d`¬a¦  «        Z( e%db¬a¦  «        Z) e'¦   «         Z* G dc„ dde&ee#f         ¦  «        Z+dkdg„Z, G dh„ de¦  «        Z-dS )lzö
Output for vt100 terminals.

A lot of thanks, regarding outputting of colors, goes to the Pygments project:
(We don't rely on Pygments anymore, because many things are very custom, and
everything has been highly optimized.)
http://pygments.org/
é    )ÚannotationsN)ÚCallableÚHashableÚIterableÚSequence)ÚTextIO)ÚCursorShape)ÚSize)ÚOutput)ÚANSI_COLOR_NAMESÚAttrs)Úis_dumb_terminalé   )Ú
ColorDepth)Úflush_stdoutÚVt100_OutputÚansidefaulté'   Ú	ansiblacké   Úansiredé   Ú	ansigreené    Ú
ansiyellowé!   Úansiblueé"   Úansimagentaé#   Úansicyané$   Úansigrayé%   ÚansibrightblackéZ   Úansibrightredé[   Úansibrightgreené\   Úansibrightyellowé]   Úansibrightblueé^   Úansibrightmagentaé_   Úansibrightcyané`   Ú	ansiwhiteéa   é1   é(   é)   é*   é+   é,   é-   é.   é/   éd   ée   éf   ég   éh   éi   éj   ék   ©r   r   r   ©éå   rH   rH   ©é   rJ   rJ   ©éÿ   rL   rL   ©éÍ   r   r   ©r   rN   r   ©rN   rN   r   )r   r   rN   ©rN   r   rN   ©r   rN   rN   ©rL   r   r   ©r   rL   r   ©rL   rL   r   )r   r   rL   ©rL   r   rL   ©r   rL   rL   © ÚrÚintÚgÚbÚexcludeúSequence[str]ÚreturnÚstrc                óx  — t          |¦  «        }t          | |z
  ¦  «        t          ||z
  ¦  «        z   t          || z
  ¦  «        z   }|dk    r|                     g d¢¦  «         d}d}t                               ¦   «         D ]7\  }\  }}	}
|dk    r(||vr$| |z
  dz  ||	z
  dz  z   ||
z
  dz  z   }||k     r|}|}Œ8|S )zÿ
    Find closest ANSI color. Return it by name.

    :param r: Red (Between 0 and 255.)
    :param g: Green (Between 0 and 255.)
    :param b: Blue (Between 0 and 255.)
    :param exclude: A tuple of color names to exclude. (E.g. ``('ansired', )``.)
    r   )ÚansilightgrayÚansidarkgrayr3   r   é r   é   )ÚlistÚabsÚextendÚANSI_COLORS_TO_RGBÚitems)rY   r[   r\   r]   Ú
saturationÚdistanceÚmatchÚnameÚr2Úg2Úb2Úds               úLC:\Projects\Historical\venv\Lib\site-packages\prompt_toolkit/output/vt100.pyÚ_get_closest_ansi_colorrt   m   sç   € õ �7‰mŒm€Gõ �Q˜‘U‘”�c ! a¡%™jœjÑ(­3¨q°1©u©:¬:Ñ5€Jà�B‚€Ø�ŠÐRÐRÐRÑSÔSÐSð €HØ€Eå0×6Ò6Ñ8Ô8ð ð Ñˆ‰lˆr�2�rØ�=Ò Ð  T°Ð%8Ð%8Ø�R‘˜A‘  R¡¨A¡Ñ-°°R±¸A±Ñ=ˆAà�8Š|ˆ|Ø�Ø�øà€Ló    c                  ó4   — e Zd ZdZddd„Z	 ddd„Z	 ddd„ZdS )Ú_16ColorCachez‚
    Cache which maps (r, g, b) tuples to 16 ansi colors.

    :param bg: Cache for background colors, instead of foreground.
    FÚbgÚboolr_   ÚNonec                ó"   — || _         i | _        d S ©N)rx   Ú_cache)Úselfrx   s     rs   Ú__init__z_16ColorCache.__init__™   s   € ØˆŒØ9;ˆŒˆˆru   rX   Úvalueútuple[int, int, int]r]   r^   Ú_ColorCodeAndNamec                ó|   — |t          |¦  «        f}| j        }||vr|                      ||¦  «        ||<   ||         S )zx
        Return a (ansi_code, ansi_name) tuple. (E.g. ``(44, 'ansiblue')``.) for
        a given (r,g,b) value.
        )Útupler}   Ú_get)r~   r€   r]   ÚkeyÚcaches        rs   Úget_codez_16ColorCache.get_code�   sG   € ð ¥ g¡¤Ð/ˆØ”ˆà�eÐÐØŸš 5¨'Ñ2Ô2ˆE�#‰Jà�SŒzÐru   c                ó€   — |\  }}}t          ||||¬¦  «        }| j        rt          |         }nt          |         }||fS )N©r]   )rt   rx   ÚBG_ANSI_COLORSÚFG_ANSI_COLORS)r~   r€   r]   rY   r[   r\   rm   Úcodes           rs   r…   z_16ColorCache._get¬   sQ   € ð ‰ˆˆ1ˆaÝ'¨¨1¨a¸ÐAÑAÔAˆð Œ7ð 	)Ý! %Ô(ˆDˆDå! %Ô(ˆDà�Uˆ{Ðru   N)F)rx   ry   r_   rz   ©rX   )r€   r�   r]   r^   r_   r‚   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rˆ   r…   rX   ru   rs   rw   rw   ’   sw   € € € € € ðð ð<ð <ð <ð <ð <ð
 EGðð ð ð ð ð  EGðð ð ð ð ð ð ru   rw   c                  ó"   — e Zd ZdZd
d„Zdd„Zd	S )Ú_256ColorCachez:
    Cache which maps (r, g, b) tuples to 256 colors.
    r_   rz   c                óÂ  — g }|                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d	¦  «         |                      d
¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         d}t          d¦  «        D ]A}||dz  dz           }||dz  dz           }||dz           }|                      |||f¦  «         ŒBt          d¦  «        D ]"}d|dz  z   }|                      |||f¦  «         Œ#|| _        d S )NrF   rM   rO   rP   )r   r   éî   rQ   rR   rG   rI   rS   rT   rU   )r*   r*   rL   rV   rW   rK   )r   r0   é‡   é¯   é×   rL   éØ   r"   é   é   é   é
   )ÚappendÚrangeÚcolors)r~   r¡   Ú
valuerangeÚirY   r[   r\   Úvs           rs   r   z_256ColorCache.__init__À   sì  € à-/ˆð 	�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)ð :ˆ
å�s‘”ð 	%ð 	%ˆAØ˜A ™G q™=Ô)ˆAØ˜A ™F a™<Ô(ˆAØ˜1˜q™5Ô!ˆAØ�MŠM˜1˜a ˜)Ñ$Ô$Ð$Ð$õ �r‘”ð 	%ð 	%ˆAØ�A˜‘F‘
ˆAØ�MŠM˜1˜a ˜)Ñ$Ô$Ð$Ð$àˆŒˆˆru   r€   r�   rZ   c                ó´   — |\  }}}d}d}t          | j        ¦  «        D ]3\  }\  }}	}
|dk    r$||z
  dz  ||	z
  dz  z   ||
z
  dz  z   }||k     r|}|}Œ4|| |<   |S )Nrd   r   é   re   )Ú	enumerater¡   )r~   r€   rY   r[   r\   rl   rm   r£   ro   rp   rq   rr   s               rs   Ú__missing__z_256ColorCache.__missing__æ   s’   € Ø‰ˆˆ1ˆað !ˆØˆå(¨¬Ñ5Ô5ð 	!ð 	!‰OˆA‰|��B˜Ø�BŠwˆwð ˜‘V ‘M Q¨¡V°¡MÑ1°Q¸±VÀ±MÑA�à�x’<�<Ø�EØ �Høð ˆˆU‰Øˆru   N©r_   rz   )r€   r�   r_   rZ   )r�   r�   r‘   r’   r   r¨   rX   ru   rs   r”   r”   »   sG   € € € € € ðð ð$ð $ð $ð $ðLð ð ð ð ð ru   r”   F)rx   Tc                  ó2   — e Zd ZdZdd„Zdd
„Zdd„Zdd„ZdS )Ú_EscapeCodeCachezõ
    Cache for VT100 escape codes. It maps
    (fgcolor, bgcolor, bold, underline, strike, italic, blink, reverse, hidden, dim) tuples to VT100
    escape sequences.

    :param true_color: When True, use 24bit colors instead of 256 colors.
    Úcolor_depthr   r_   rz   c                ó   — || _         d S r|   )r¬   )r~   r¬   s     rs   r   z_EscapeCodeCache.__init__  s   € Ø&ˆÔÐÐru   Úattrsr   r`   c           
     ó8  — |\
  }}}}}}}}	}
}g }|                      |                      |pd|pd¦  «        ¦  «         |r|                     d¦  «         |r|                     d¦  «         |r|                     d¦  «         |r|                     d¦  «         |r|                     d¦  «         |	r|                     d¦  «         |
r|                     d¦  «         |r|                     d	¦  «         |rd
d                     |¦  «        z   dz   }nd}|| |<   |S )NÚ Ú1Ú2Ú3Ú5Ú4Ú7Ú8Ú9z[0;ú;Úmú[0m)rh   Ú_colors_to_coderŸ   Újoin)r~   r®   ÚfgcolorÚbgcolorÚboldÚ	underlineÚstrikeÚitalicÚblinkÚreverseÚhiddenÚdimÚpartsÚresults                 rs   r¨   z_EscapeCodeCache.__missing__  s_  € ð ñ	
ØØØØØØØØØØàˆà�Š�T×)Ò)¨'¨-°R¸¸ÀBÑGÔGÑHÔHÐHàð 	Ø�LŠL˜ÑÔÐØð 	Ø�LŠL˜ÑÔÐØð 	Ø�LŠL˜ÑÔÐØð 	Ø�LŠL˜ÑÔÐØð 	Ø�LŠL˜ÑÔÐØð 	Ø�LŠL˜ÑÔÐØð 	Ø�LŠL˜ÑÔÐØð 	Ø�LŠL˜ÑÔÐàð 	Ø §¢¨%¡¤Ñ0°3Ñ6ˆFˆFàˆFàˆˆU‰Øˆru   Úcolorr�   c                óv   — 	 t          |d¦  «        }|dz	  dz  }|dz	  dz  }|dz  }|||fS # t          $ r ‚ w xY w)z'Turn 'ffffff', into (0xff, 0xff, 0xff).r¦   rL   r�   )rZ   Ú
ValueError)r~   rÊ   ÚrgbrY   r[   r\   s         rs   Ú_color_name_to_rgbz#_EscapeCodeCache._color_name_to_rgb8  sf   € ð	Ý�e˜R‘.”.ˆCð ˜‘˜dÑ"ˆAØ˜‘˜TÑ!ˆAØ�d‘
ˆAØ�a˜�7ˆNøõ ð 	ð 	ð 	Øð	øøøs   ‚, ¬8Úfg_colorÚbg_colorúIterable[str]c                óÊ   ‡ ‡‡‡— dŠdˆˆˆˆ fd„}g }|                       |‰d	¦  «        ¦  «         |                       |‰d
¦  «        ¦  «         t          t          |¦  «        S )zR
        Return a tuple with the vt100 values  that represent this color.
        r°   rÊ   r`   rx   ry   r_   ú	list[int]c                ó  •— |rt           nt          }| r‰j        t          j        k    rg S | |v r	||          gS 	 ‰                     | ¦  «        }n# t          $ r g cY S w xY w‰j        t          j        k    rR|r.‰‰
k    r‰g}ng }t           	                    ||¬¦  «        \  }}|gS t           	                    |¦  «        \  }}|Š|gS ‰j        t          j        k    r|\  }}}	|rdndd|||	gS |rdnddt          |         gS )NrŠ   é0   é&   re   é   )r‹   rŒ   r¬   r   ÚDEPTH_1_BITrÎ   rÌ   ÚDEPTH_4_BITÚ_16_bg_colorsrˆ   Ú_16_fg_colorsÚDEPTH_24_BITÚ_256_colors)rÊ   rx   ÚtablerÍ   r]   r�   rn   rY   r[   r\   rÐ   Úfg_ansirÏ   r~   s             €€€€rs   Úgetz-_EscapeCodeCache._colors_to_code.<locals>.getM  sU  ø€ ð ')Ð<•N�N­nˆEàð #E˜DÔ,µ
Ô0FÒFÐFØ�	ð ˜%��Ø˜eœ�~Ð%ðØ×1Ò1°%Ñ8Ô8�C�CøÝ!ð ð ð Ø�I�I�Iðøøøð Ô#¥zÔ'=Ò=Ð=Øð 
&Ø# xÒ/Ð/Ø'. i˜G˜Gà&(˜GÝ%2×%;Ò%;¸CÈÐ%;Ñ%QÔ%Q™
˜˜dØ $˜v˜å%2×%;Ò%;¸CÑ%@Ô%@™
˜˜dØ"&˜Ø $˜v˜ð Ô%­Ô)@Ò@Ð@Ø!‘G�A�q˜!Ø#%Ð-˜R˜R¨2°°1°a¸Ð;Ð;ð $&Ð-˜R˜R¨2°µ;¸sÔ3CÐDÐDs   ¹A ÁAÁAFT)rÊ   r`   rx   ry   r_   rÓ   )rh   Úmapr`   )r~   rÏ   rÐ   rà   rÉ   rß   s   ```  @rs   r¼   z _EscapeCodeCache._colors_to_codeD  s—   øøøø€ ð ˆð(	Eð (	Eð (	Eð (	Eð (	Eð (	Eð (	Eð (	Eð (	EðT ˆØ�Š�c�c˜( EÑ*Ô*Ñ+Ô+Ð+Ø�Š�c�c˜( DÑ)Ô)Ñ*Ô*Ð*å•3˜ÑÔÐru   N)r¬   r   r_   rz   )r®   r   r_   r`   )rÊ   r`   r_   r�   )rÏ   r`   rÐ   r`   r_   rÑ   )r�   r�   r‘   r’   r   r¨   rÎ   r¼   rX   ru   rs   r«   r«     so   € € € € € ðð ð'ð 'ð 'ð 'ð(ð (ð (ð (ðT
ð 
ð 
ð 
ð7 ð 7 ð 7 ð 7 ð 7 ð 7 ru   r«   Úfilenoútuple[int, int]c                óF   — t          j        | ¦  «        }|j        |j        fS )zw
    Get the size of this pseudo terminal.

    :param fileno: stdout.fileno()
    :returns: A (rows, cols) tuple.
    )ÚosÚget_terminal_sizeÚlinesÚcolumns)râ   Úsizes     rs   Ú	_get_sizerê   ~  s#   € õ Ô Ñ'Ô'€DØŒ:�t”|Ð#Ð#ru   c                  óŽ  — e Zd ZU dZ e¦   «         Zded<   	 	 	 	 dGdHd„Ze	 	 	 dIdJd„¦   «         Z	dKd„Z
dLd„ZdMd„ZdNd„ZdNd„ZdOd„ZdPd „ZdPd!„ZdPd"„ZdPd#„ZdPd$„ZdPd%„ZdPd&„ZdPd'„ZdPd(„ZdQd-„ZdPd.„ZdPd/„ZdPd0„ZdPd1„ZdPd2„ZdRdSd6„ZdTd8„Z dTd9„Z!dTd:„Z"dTd;„Z#dPd<„Z$dPd=„Z%dUd@„Z&dPdA„Z'dPdB„Z(dPdC„Z)e*dVdD„¦   «         Z+dPdE„Z,dWdF„Z-dS )Xr   aé  
    :param get_size: A callable which returns the `Size` of the output terminal.
    :param stdout: Any object with has a `write` and `flush` method + an 'encoding' property.
    :param term: The terminal environment variable. (xterm, xterm-256color, linux, ...)
    :param enable_cpr: When `True` (the default), send "cursor position
        request" escape sequences to the output in order to detect the cursor
        position. That way, we can properly determine how much space there is
        available for the UI (especially for drop down menus) to render. The
        `Renderer` will still try to figure out whether the current terminal
        does respond to CPR escapes. When `False`, never attempt to send CPR
        requests.
    zset[int]Ú_fds_not_a_terminalNTÚstdoutr   Úget_sizeúCallable[[], Size]Útermú
str | NoneÚdefault_color_depthúColorDepth | NoneÚenable_bellry   Ú
enable_cprr_   rz   c           
     óæ  ‡— t          ˆfd„dD ¦   «         ¦  «        sJ ‚g | _        ‰| _        || _        || _        || _        || _        || _        t          j	        t          t          j	        ¦  «        t          j        t          t          j        ¦  «        t          j        t          t          j        ¦  «        t          j        t          t          j        ¦  «        i| _        d| _        d | _        d S )Nc              3  ó8   •K  — | ]}t          ‰|¦  «        V — Œd S r|   )Úhasattr)Ú.0Úarí   s     €rs   ú	<genexpr>z(Vt100_Output.__init__.<locals>.<genexpr>¤  s-   øè è € ÐBÐB¨!•7˜6 1Ñ%Ô%ÐBÐBÐBÐBÐBÐBru   )ÚwriteÚflushF)ÚallÚ_bufferrí   rò   rê   rð   rô   rõ   r   rØ   r«   rÙ   ÚDEPTH_8_BITrÜ   Ú_escape_code_cachesÚ_cursor_shape_changedÚ_cursor_visible)r~   rí   rî   rð   rò   rô   rõ   s    `     rs   r   zVt100_Output.__init__›  sÙ   ø€ õ ÐBÐBÐBÐBÐ/AÐBÑBÔBÑBÔBÐBÐBÐBà"$ˆŒØ$ˆŒØ#6ˆÔ Ø!ˆŒØˆŒ	Ø&ˆÔØ$ˆŒõ Ô"Õ$4µZÔ5KÑ$LÔ$LÝÔ"Õ$4µZÔ5KÑ$LÔ$LÝÔ"Õ$4µZÔ5KÑ$LÔ$LÝÔ#Õ%5µjÔ6MÑ%NÔ%Nð	H
ˆÔ ð &+ˆÔ"ð
 -1ˆÔÐÐru   c                ó„  ‡— 	 ‰                      ¦   «         }n# t          j        $ r d}Y nw xY w‰                     ¦   «         si|�	|| j        vr^d}t
          j                             ||z  ¦  «         t
          j                             ¦   «          |�| j         	                    |¦  «         dˆfd„} | ‰||||¬¦  «        S )z›
        Create an Output class from a pseudo terminal.
        (This will take the dimensions by reading the pseudo
        terminal attributes.)
        Nz+Warning: Output is not a terminal (fd=%r).
r_   r
   c                 ó¤   •— d\  } }	 t          ‰                     ¦   «         ¦  «        \  } }n# t          $ r Y nw xY wt          | pd|pd¬¦  «        S )N)NNrœ   éP   )Úrowsrè   )rê   râ   ÚOSErrorr
   )r  rè   rí   s     €rs   rî   z'Vt100_Output.from_pty.<locals>.get_sizeÝ  si   ø€ ð )‰MˆD�'ðÝ )¨&¯-ª-©/¬/Ñ :Ô :‘��g�gøÝð ð ð Ø�ðøøøå˜T˜Z R°°¸BÐ?Ñ?Ô?Ð?s   ˆ$- ­
:¹:)rð   rò   rô   ©r_   r
   )
râ   ÚioÚUnsupportedOperationÚisattyrì   ÚsysÚstderrrü   rý   Úadd)Úclsrí   rð   rò   rô   ÚfdÚmsgrî   s    `      rs   Úfrom_ptyzVt100_Output.from_ptyÀ  sþ   ø€ ð"	Ø—’‘”ˆBˆBøÝÔ&ð 	ð 	ð 	ØˆBˆBˆBð	øøøð �}Š}‰Œð 	0 B J°"¸CÔ<SÐ2SÐ2SØ@ˆCÝŒJ×Ò˜S 2™XÑ&Ô&Ð&ÝŒJ×ÒÑÔÐØˆ~ØÔ'×+Ò+¨BÑ/Ô/Ð/ð	@ð 	@ð 	@ð 	@ð 	@ð 	@ð  ˆsØØØØ 3Ø#ð
ñ 
ô 
ð 	
s   ƒ ˜,«,r
   c                ó*   — |                       ¦   «         S r|   )rê   ©r~   s    rs   rî   zVt100_Output.get_sizeõ  s   € Ø�~Š~ÑÔÐru   rZ   c                ó4   — | j                              ¦   «         S )zReturn file descriptor.)rí   râ   r  s    rs   râ   zVt100_Output.filenoø  s   € àŒ{×!Ò!Ñ#Ô#Ð#ru   r`   c                ó   — | j         j        S )z Return encoding used for stdout.)rí   Úencodingr  s    rs   r  zVt100_Output.encodingü  s   € àŒ{Ô#Ð#ru   Údatac                ó:   — | j                              |¦  «         dS )z+
        Write raw data to output.
        N)rÿ   rŸ   ©r~   r  s     rs   Ú	write_rawzVt100_Output.write_raw   s    € ð 	Œ×Ò˜DÑ!Ô!Ð!Ð!Ð!ru   c                ób   — | j                              |                     dd¦  «        ¦  «         dS )zn
        Write text to output.
        (Removes vt100 escape codes. -- used for safely writing text.)
        úú?N)rÿ   rŸ   Úreplacer  s     rs   rü   zVt100_Output.write  s.   € ð
 	Œ×Ò˜DŸLšL¨°Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6ru   Útitlec                ó¼   — | j         dvrR|                      d                     |                     dd¦  «                             dd¦  «        ¦  «        ¦  «         dS dS )z%
        Set terminal title.
        ©Úlinuxzeterm-colorz]2;{}r  r°   úN)rð   r  Úformatr   )r~   r!  s     rs   Ú	set_titlezVt100_Output.set_title  st   € ð Œ9ð 
ð 
ð 
ð �NŠNØ×&Ò& u§}¢}°V¸RÑ'@Ô'@×'HÒ'HÈÐQSÑ'TÔ'TÑUÔUñô ð ð ð ð	
ð 
ru   c                ó0   — |                       d¦  «         d S )Nr°   )r'  r  s    rs   Úclear_titlezVt100_Output.clear_title  s   € Ø�Š�rÑÔÐÐÐru   c                ó0   — |                       d¦  «         dS )zc
        Erases the screen with the background color and moves the cursor to
        home.
        z[2JN©r  r  s    rs   Úerase_screenzVt100_Output.erase_screen  s   € ð
 	�Š�yÑ!Ô!Ð!Ð!Ð!ru   c                ó0   — |                       d¦  «         d S )Nz[?1049h[Hr+  r  s    rs   Úenter_alternate_screenz#Vt100_Output.enter_alternate_screen#  s   € Ø�ŠÐ*Ñ+Ô+Ð+Ð+Ð+ru   c                ó0   — |                       d¦  «         d S )Nz[?1049lr+  r  s    rs   Úquit_alternate_screenz"Vt100_Output.quit_alternate_screen&  ó   € Ø�Š�}Ñ%Ô%Ð%Ð%Ð%ru   c                ó®   — |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         d S )Nz[?1000hz[?1003hz[?1015hz[?1006hr+  r  s    rs   Úenable_mouse_supportz!Vt100_Output.enable_mouse_support)  sV   € Ø�Š�}Ñ%Ô%Ð%ð 	�Š�}Ñ%Ô%Ð%ð 	�Š�}Ñ%Ô%Ð%ð 	�Š�}Ñ%Ô%Ð%Ð%Ð%ru   c                ó®   — |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         d S )Nz[?1000lz[?1015lz[?1006lz[?1003lr+  r  s    rs   Údisable_mouse_supportz"Vt100_Output.disable_mouse_support8  sP   € Ø�Š�}Ñ%Ô%Ð%Ø�Š�}Ñ%Ô%Ð%Ø�Š�}Ñ%Ô%Ð%Ø�Š�}Ñ%Ô%Ð%Ð%Ð%ru   c                ó0   — |                       d¦  «         dS )zY
        Erases from the current cursor position to the end of the current line.
        z[KNr+  r  s    rs   Úerase_end_of_linezVt100_Output.erase_end_of_line>  s   € ð 	�Š�xÑ Ô Ð Ð Ð ru   c                ó0   — |                       d¦  «         dS )zc
        Erases the screen from the current line down to the bottom of the
        screen.
        z[JNr+  r  s    rs   Ú
erase_downzVt100_Output.erase_downD  s   € ð
 	�Š�xÑ Ô Ð Ð Ð ru   c                ó0   — |                       d¦  «         d S )Nr»   r+  r  s    rs   Úreset_attributeszVt100_Output.reset_attributesK  s   € Ø�Š�yÑ!Ô!Ð!Ð!Ð!ru   r®   r   r¬   r   c                óV   — | j         |         }|                      ||         ¦  «         dS )zW
        Create new style and output.

        :param attrs: `Attrs` instance.
        N)r  r  )r~   r®   r¬   Úescape_code_caches       rs   Úset_attributeszVt100_Output.set_attributesN  s2   € ð !Ô4°[ÔAÐð 	�ŠÐ(¨Ô/Ñ0Ô0Ð0Ð0Ð0ru   c                ó0   — |                       d¦  «         d S )Nz[?7lr+  r  s    rs   Údisable_autowrapzVt100_Output.disable_autowrapZ  ó   € Ø�Š�zÑ"Ô"Ð"Ð"Ð"ru   c                ó0   — |                       d¦  «         d S )Nz[?7hr+  r  s    rs   Úenable_autowrapzVt100_Output.enable_autowrap]  rA  ru   c                ó0   — |                       d¦  «         d S )Nz[?2004hr+  r  s    rs   Úenable_bracketed_pastez#Vt100_Output.enable_bracketed_paste`  r1  ru   c                ó0   — |                       d¦  «         d S )Nz[?2004lr+  r  s    rs   Údisable_bracketed_pastez$Vt100_Output.disable_bracketed_pastec  r1  ru   c                ó0   — |                       d¦  «         dS )zh
        For vt100 only.
        Put the terminal in cursor mode (instead of application mode).
        z[?1lNr+  r  s    rs   Úreset_cursor_key_modez"Vt100_Output.reset_cursor_key_modef  s   € ð 	�Š�zÑ"Ô"Ð"Ð"Ð"ru   r   ÚrowÚcolumnc                ó:   — |                       d||fz  ¦  «         dS )z'
        Move cursor position.
        z[%i;%iHNr+  )r~   rJ  rK  s      rs   Úcursor_gotozVt100_Output.cursor_goton  s%   € ð 	�Š�}¨¨V }Ñ4Ñ5Ô5Ð5Ð5Ð5ru   Úamountc                ó€   — |dk    rd S |dk    r|                       d¦  «         d S |                       d|z  ¦  «         d S )Nr   r   z[Az[%iAr+  ©r~   rN  s     rs   Ú	cursor_upzVt100_Output.cursor_upt  óN   € Ø�QŠ;ˆ;ØˆDØ�qŠ[ˆ[Ø�NŠN˜8Ñ$Ô$Ð$Ð$Ð$à�NŠN˜:¨Ñ.Ñ/Ô/Ð/Ð/Ð/ru   c                ó€   — |dk    rd S |dk    r|                       d¦  «         d S |                       d|z  ¦  «         d S )Nr   r   z[Bz[%iBr+  rP  s     rs   Úcursor_downzVt100_Output.cursor_down|  sP   € Ø�QŠ;ˆ;ØˆDØ�qŠ[ˆ[ð �NŠN˜8Ñ$Ô$Ð$Ð$Ð$à�NŠN˜:¨Ñ.Ñ/Ô/Ð/Ð/Ð/ru   c                ó€   — |dk    rd S |dk    r|                       d¦  «         d S |                       d|z  ¦  «         d S )Nr   r   z[Cz[%iCr+  rP  s     rs   Úcursor_forwardzVt100_Output.cursor_forward†  rR  ru   c                ó€   — |dk    rd S |dk    r|                       d¦  «         d S |                       d|z  ¦  «         d S )Nr   r   úz[%iDr+  rP  s     rs   Úcursor_backwardzVt100_Output.cursor_backwardŽ  sN   € Ø�QŠ;ˆ;ØˆDØ�qŠ[ˆ[Ø�NŠN˜4Ñ Ô Ð Ð Ð à�NŠN˜:¨Ñ.Ñ/Ô/Ð/Ð/Ð/ru   c                óT   — | j         dv rd| _         |                      d¦  «         d S d S )N)TNFz[?25l©r  r  r  s    rs   Úhide_cursorzVt100_Output.hide_cursor–  s8   € ØÔ <Ð/Ð/Ø#(ˆDÔ Ø�NŠN˜;Ñ'Ô'Ð'Ð'Ð'ð 0Ð/ru   c                óT   — | j         dv rd| _         |                      d¦  «         d S d S )N)FNTz[?12l[?25hr[  r  s    rs   Úshow_cursorzVt100_Output.show_cursor›  s9   € ØÔ =Ð0Ð0Ø#'ˆDÔ Ø�NŠNÐ/Ñ0Ô0Ð0Ð0Ð0ð 1Ð0ru   Úcursor_shaper	   c                ó  — |t           j        k    rd S d| _        |                      t           j        dt           j        dt           j        dt           j        dt           j        dt           j	        di 
                    |d¦  «        ¦  «         d S )	NTz[2 qz[6 qz[4 qz[1 qz[5 qz[3 qr°   )r	   Ú_NEVER_CHANGEr  r  ÚBLOCKÚBEAMÚ	UNDERLINEÚBLINKING_BLOCKÚBLINKING_BEAMÚBLINKING_UNDERLINErà   )r~   r_  s     rs   Úset_cursor_shapezVt100_Output.set_cursor_shape   sƒ   € Ø�;Ô4Ò4Ð4ØˆFà%)ˆÔ"Ø�ŠåÔ! :ÝÔ  *ÝÔ% zÝÔ*¨JÝÔ)¨:ÝÔ.°
ð÷ Šc�, Ñ#Ô#ñ		
ô 		
ð 		
ð 		
ð 		
ru   c                óP   — | j         rd| _         |                      d¦  «         dS dS )zReset cursor shape.Fz[0 qN)r  r  r  s    rs   Úreset_cursor_shapezVt100_Output.reset_cursor_shape°  s;   € ð Ô%ð 	'Ø).ˆDÔ&ð �NŠN˜:Ñ&Ô&Ð&Ð&Ð&ð		'ð 	'ru   c                ó„   — | j         sdS d                     | j         ¦  «        }g | _         t          | j        |¦  «         dS )z3
        Write to output stream and flush.
        Nr°   )rÿ   r½   r   rí   r  s     rs   rý   zVt100_Output.flush¹  sE   € ð Œ|ð 	ØˆFà�wŠw�t”|Ñ$Ô$ˆØˆŒå�T”[ $Ñ'Ô'Ð'Ð'Ð'ru   c                óX   — |                       d¦  «         |                      ¦   «          dS )z:
        Asks for a cursor position report (CPR).
        z[6nN)r  rý   r  s    rs   Úask_for_cprzVt100_Output.ask_for_cprÅ  s'   € ð 	�Š�yÑ!Ô!Ð!Ø�
Š
‰Œˆˆˆru   c                óâ   — | j         sdS t          j                             dd¦  «        dk    rdS t	          | j        ¦  «        rdS 	 | j                             ¦   «         S # t          $ r Y dS w xY w)NFÚPROMPT_TOOLKIT_NO_CPRr°   r±   )	rõ   rå   Úenvironrà   r   rð   rí   r  rÌ   r  s    rs   Úresponds_to_cprzVt100_Output.responds_to_cprÌ  s†   € àŒð 	Ø�5õ Œ:�>Š>Ð1°2Ñ6Ô6¸#Ò=Ð=Ø�5å˜DœIÑ&Ô&ð 	Ø�5ð	Ø”;×%Ò%Ñ'Ô'Ð'øÝð 	ð 	ð 	Ø�5�5ð	øøøs   ÁA  Á 
A.Á-A.c                ój   — | j         r+|                      d¦  «         |                      ¦   «          dS dS )zSound bell.r%  N)rô   r  rý   r  s    rs   ÚbellzVt100_Output.bellÝ  s:   € àÔð 	Ø�NŠN˜4Ñ Ô Ð Ø�JŠJ‰LŒLˆLˆLˆLð	ð 	ru   c                ó¶   — | j         �| j         S | j        }|€t          j        S t	          |¦  «        rt          j        S |dv rt          j        S t          j        S )zó
        Return the default color depth for a vt100 terminal, according to the
        our term value.

        We prefer 256 colors almost always, because this is what most terminals
        support these days, and is a good default.
        Nr#  )rò   rð   r   ÚDEFAULTr   rØ   rÙ   )r~   rð   s     rs   Úget_default_color_depthz$Vt100_Output.get_default_color_depthã  sb   € ð Ô#Ð/ØÔ+Ð+àŒyˆàˆ<ÝÔ%Ð%å˜DÑ!Ô!ð 	*ÝÔ)Ð)àÐ+Ð+Ð+ÝÔ)Ð)åÔ!Ð!ru   )NNTT)rí   r   rî   rï   rð   rñ   rò   ró   rô   ry   rõ   ry   r_   rz   )NNT)
rí   r   rð   rñ   rò   ró   rô   ry   r_   r   r	  )r_   rZ   )r_   r`   )r  r`   r_   rz   )r!  r`   r_   rz   r©   )r®   r   r¬   r   r_   rz   )r   r   )rJ  rZ   rK  rZ   r_   rz   )rN  rZ   r_   rz   )r_  r	   r_   rz   )r_   ry   )r_   r   ).r�   r�   r‘   r’   Úsetrì   Ú__annotations__r   Úclassmethodr  rî   râ   r  r  rü   r'  r)  r,  r.  r0  r3  r5  r7  r9  r;  r>  r@  rC  rE  rG  rI  rM  rQ  rT  rV  rY  r\  r^  rh  rj  rý   rm  Úpropertyrq  rs  rv  rX   ru   rs   r   r   ‰  s`  € € € € € € ðð ð %( C¡E¤EÐÐ)Ð)Ð)Ñ)ð  Ø15Ø Øð#1ð #1ð #1ð #1ð #1ðJ ð  Ø15Ø ð2
ð 2
ð 2
ð 2
ñ „[ð2
ðh ð  ð  ð  ð$ð $ð $ð $ð$ð $ð $ð $ð"ð "ð "ð "ð7ð 7ð 7ð 7ð
ð 
ð 
ð 
ðð ð ð ð"ð "ð "ð "ð,ð ,ð ,ð ,ð&ð &ð &ð &ð
&ð 
&ð 
&ð 
&ð&ð &ð &ð &ð!ð !ð !ð !ð!ð !ð !ð !ð"ð "ð "ð "ð
1ð 
1ð 
1ð 
1ð#ð #ð #ð #ð#ð #ð #ð #ð&ð &ð &ð &ð&ð &ð &ð &ð#ð #ð #ð #ð6ð 6ð 6ð 6ð 6ð0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð0ð 0ð 0ð 0ð(ð (ð (ð (ð
1ð 1ð 1ð 1ð

ð 
ð 
ð 
ð 'ð 'ð 'ð 'ð
(ð 
(ð 
(ð 
(ðð ð ð ð ðð ð ñ „Xðð ð ð ð ð"ð "ð "ð "ð "ð "ru   rŽ   )
rY   rZ   r[   rZ   r\   rZ   r]   r^   r_   r`   )râ   rZ   r_   rã   ).r’   Ú
__future__r   r
  rå   r  Úcollections.abcr   r   r   r   Útypingr   Úprompt_toolkit.cursor_shapesr	   Úprompt_toolkit.data_structuresr
   Úprompt_toolkit.outputr   Úprompt_toolkit.stylesr   r   Úprompt_toolkit.utilsr   r¬   r   r   Ú__all__rŒ   r‹   ri   rw  rt   r„   rZ   r`   r‚   rw   Údictr”   rÛ   rÚ   rÝ   r«   rê   r   rX   ru   rs   ú<module>r…     sT  ððð ð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ Ð Ð Ð Ð Ð à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø /Ð /Ð /Ð /Ð /Ð /Ø (Ð (Ð (Ð (Ð (Ð (Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1à #Ð #Ð #Ð #Ð #Ð #Ø &Ð &Ð &Ð &Ð &Ð &ð ð€ð
Ø�2ðð �ðð ˆrð	ð
 �ðð �"ðð �ðð �2ðð �ðð �ðð �rðð �Rðð �rðð ˜ðð  �bð!ð" ˜ð#ð$ �bð%ð& �ð'€ð,Ø�2ðð �ðð ˆrð	ð
 �ðð �"ðð �ðð �2ðð �ðð �ðð �sðð �Sðð �sðð ˜ðð  �cð!ð" ˜ð#ð$ �cð%ð& �ð'€ð.Øð ðð Ð#ðð Ð"ðð Ð)ðð Ð#ðð Ð!ðð Ð#ðð Ð$ðð Ð"ðð Ð%ðð  Ð"ð!ð$ Ð'ð%ð& Ð)ð'ð( Ð*ð)ð* Ð(ð+ð, Ð+ð-ð. Ð(ð/Ð ð6 €sˆ>ÑÔ˜c˜cÐ"2Ñ3Ô3Ò3Ð3Ð3Ð3Ø
€sˆ>ÑÔ˜c˜cÐ"2Ñ3Ô3Ò3Ð3Ð3Ð3Ø
€sÐÑÔ # #Ð&6Ñ"7Ô"7Ò7Ð7Ð7Ð7ðð ð ð ð ðD ˜#˜s˜(”OÐ ð&ð &ð &ð &ð &ñ &ô &ð &ðR?ð ?ð ?ð ?ð ?�T˜%  S¨# Ô.°Ð3Ô4ñ ?ô ?ð ?ðD � Ð'Ñ'Ô'€Ø� Ð&Ñ&Ô&€ØˆnÑÔ€ðy ð y ð y ð y ð y �t˜E 3˜JÔ'ñ y ô y ð y ðx$ð $ð $ð $ðp"ð p"ð p"ð p"ð p"�6ñ p"ô p"ð p"ð p"ð p"ru   