
    =hZ                   Z   S SK Jr  S SKJrJr  S SK7  S SKJrJr  S SK	J
r
JrJrJr   / SQrSrSrS	r\S :w  a  S S
 jr " S S\5      r " S S5      r " S S5      r " S S\5      rS rS 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&g)!    )annotations)MarkedYAMLErrorCommentMark)*)VersionTag)check_anchorname_char_debugnprintnprintf)ScannerRoundTripScannerScannerErroru   
   u    
 	   	c                     [        U 0 UD6$ N)r   )argskws     3lib/python3.13/site-packages/ruamel/yaml/scanner.pyxprintfr   1   s    ###    c                      \ rS rSrSrg)r   5    N)__name__
__module____qualname____firstlineno____static_attributes__r   r   r   r   r   5   s    r   r   c                  :    \ rS rSr              SS jrSrg)	SimpleKey9   c                L    Xl         X l        X0l        X@l        XPl        X`l        g r   )token_numberrequiredindexlinecolumnmark)selfr$   r%   r&   r'   r(   r)   s          r   __init__SimpleKey.__init__<   s#     ) 
		r   )r(   r&   r'   r)   r%   r$   N)r$   Anyr%   r-   r&   intr'   r.   r(   r.   r)   r-   returnNone)r   r   r   r   r+   r   r   r   r   r!   r!   9   s?    +.7:BEORZ]	r   r!   c                     \ rS rSrSrSsS jjr\StS j5       rSuS jr\SvS j5       r\SvS j5       r	SwS jr
SvS	 jrSvS
 jrSxS jrSyS jrSvS jrSvS jrSuS jrSuS jrSuS jrSzS jrS{S jrSuS jrSuS jrSuS jrSuS jrSuS jrS|S jrSuS jrSuS jrS}S jrSuS jrSuS jr S|S jr!SuS  jr"SuS! jr#SuS" jr$SuS# jr%SuS$ jr&SuS% jr'SuS& jr(SuS' jr)SuS( jr*S~S) jr+SuS* jr,SuS+ jr-S~S, jr.SuS- jr/SvS. jr0SvS/ jr1SvS0 jr2SvS1 jr3SvS2 jr4SvS3 jr5SvS4 jr6SvS5 jr7SvS6 jr8SS7 jr9SS8 jr:SS9 jr;SS: jr<SS; jr=SS< jr>SS= jr?SS> jr@SvS? jrASSS@ jjrBSSA jrCSSB jrDSvSC jrESSD jrFSSE jrG0 SFSG_SHSI_SJSK_SLSM_SMSM_SNSO_SPSQ_SRSS_STSU_SVSW_SXSX_SYSY_SZSZ_S[S[_S\S]_S^S__S`Sa_SbSc0ErHSdSeSfSg.rISSh jrJSSi jrKSSj jrLSvSk jrMSSl jrNSSm jrOSSn jrPSSo jrQSvSp jrRSqrSg)r   G   Nc                    Xl         U R                   b(  [        U R                   SS5      c  X R                   l        U R                  5         SU l        g)zInitialize the scanner.N_scannerF)loadergetattrr4   reset_scanner
first_time)r*   r5   s     r   r+   Scanner.__init__H   sB     ;;"wt{{J'M'U#'KK r   c                ,    [        U R                  5      $ r   )lenflow_contextr*   s    r   
flow_levelScanner.flow_levelY   s    4$$%%r   c                    SU l         / U l        / U l        U R                  5         SU l        SU l        / U l        SU l        0 U l        S U l	        / U l
        g )NFr   T)doner<   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysyaml_versiontag_directivesr=   s    r   r7   Scanner.reset_scanner]   sj    	 )+ "$ 	!   #%, !% 57!!%57r   c                     U R                   $ ! [         aa    [        U R                  S5      (       a  U R                  R                  U l         OU R                  R
                  U l         U R                   s $ f = fNtyp)_scanner_readerAttributeErrorhasattrr5   reader_readerr=   s    r   rS   Scanner.reader   sc    	(''' 	(t{{E**'+{{'9'9$'+{{':':$'''	(s    A(A98A9c                    [        U R                  S5      (       a   U R                  R                  R                  $ U R                  R                  $ rN   )rR   r5   resolverprocessing_versionr=   s    r   scanner_processing_version"Scanner.scanner_processing_version   s9    4;;&&;;'':::{{---r   c                   U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  [        U R                  5      S:  a1  U(       d  gU H#  n[	        U R                  S   U5      (       d  M#    g   gNr   TF)need_more_tokensfetch_more_tokensr;   rC   
isinstancer*   choiceschoices      r   check_tokenScanner.check_token   sl    ##%%""$ ##%%t{{a!dkk!nf55 " r   c                    U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  [        U R                  5      S:  a  U R                  S   $ g Nr   )r]   r^   r;   rC   r=   s    r   
peek_tokenScanner.peek_token   sR    ##%%""$ ##%%t{{a;;q>!  r   c                   U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  [        U R                  5      S:  a0  U =R                  S-  sl        U R                  R                  S5      $ g Nr      )r]   r^   r;   rC   rE   popr=   s    r   	get_tokenScanner.get_token   sh    ##%%""$ ##%%t{{a";;??1%%  r   c                    U R                   (       a  g[        U R                  5      S:X  a  gU R                  5         U R	                  5       U R
                  :X  a  gg)NFr   T)rB   r;   rC   stale_possible_simple_keysnext_possible_simple_keyrE   r=   s    r   r]   Scanner.need_more_tokens   sK    99t{{q  	'')((*d.?.??r   c                    [         er   )NotImplementedError)r*   comments     r   fetch_commentScanner.fetch_comment   s    !!r   c                   U R                  5       nUb  U R                  U5      $ U R                  5         U R                  U R                  R
                  5        U R                  R                  5       nUS:X  a  U R                  5       $ US:X  a%  U R                  5       (       a  U R                  5       $ US:X  a%  U R                  5       (       a  U R                  5       $ US:X  a%  U R                  5       (       a  U R                  5       $ US:X  a  U R                  5       $ US:X  a  U R                  5       $ US:X  a  U R!                  5       $ US:X  a  U R#                  5       $ US	:X  a  U R%                  5       $ US:X  a%  U R'                  5       (       a  U R)                  5       $ US
:X  a%  U R+                  5       (       a  U R-                  5       $ US:X  a%  U R/                  5       (       a  U R1                  5       $ US:X  a  U R3                  5       $ US:X  a  U R5                  5       $ US:X  a  U R7                  5       $ US:X  a!  U R8                  (       d  U R;                  5       $ US:X  a!  U R8                  (       d  U R=                  5       $ US:X  a  U R?                  5       $ US:X  a  U RA                  5       $ U RC                  5       (       a  U RE                  5       $ [G        SS SU< S3U R                  RI                  5       5      e)N %-.[{]},?:r   &!|>'"z!while scanning for the next tokenzfound character z that cannot start any token)%scan_to_next_tokenrv   rp   unwind_indentrS   r(   peekfetch_stream_endcheck_directivefetch_directivecheck_document_startfetch_document_startcheck_document_endfetch_document_endfetch_flow_sequence_startfetch_flow_mapping_startfetch_flow_sequence_endfetch_flow_mapping_endfetch_flow_entrycheck_block_entryfetch_block_entry	check_key	fetch_keycheck_valuefetch_valuefetch_aliasfetch_anchor	fetch_tagr>   fetch_literalfetch_foldedfetch_singlefetch_doublecheck_plainfetch_plainr   get_mark)r*   ru   chs      r   r^   Scanner.fetch_more_tokens   s   ))+%%g..'') 	4;;--. [[ :((** 9--//'')) 92244,,.. 90022**,, 91133 90022 9//11 9..00 9((** 9//11))++ 9))>>## 9))++##%% 9##%% 9$$&& 9>>## 9T__%%'' 9T__$$&& 9$$&& 9$$&& ##%% /rf$@AKK  "	
 	
r   c                    S nU R                    H3  nU R                   U   nUb  UR                  U:  d  M'  UR                  nM5     U$ r   )rI   r$   )r*   min_token_numberlevelkeys       r   rq    Scanner.next_possible_simple_keyB  sR      ..E++E2C'3+;+;>N+N#&#3#3  /  r   c                   [        U R                  5       H  nU R                  U   nUR                  U R                  R                  :w  d)  U R                  R                  UR                  -
  S:  d  M_  UR
                  (       a0  [        SUR                  SU R                  R                  5       5      eU R                  U	 M     g )Ni   while scanning a simple keycould not find expected ':')	listrI   r'   rS   r&   r%   r   r)   r   )r*   r   r   s      r   rp   "Scanner.stale_possible_simple_keysQ  s     $334E++E2Cxx4;;+++t{{/@/@399/Lt/S<<&55,,.	  --e4 5r   c           	        U R                   (       + =(       a#    U R                  U R                  R                  :H  nU R                  (       a  U R                  5         U R                  [        U R                  5      -   n[        UUU R                  R                  U R                  R                  U R                  R                  U R                  R                  5       5      nX0R                  U R                   '   g g r   )r>   rF   rS   r(   rH   remove_possible_simple_keyrE   r;   rC   r!   r&   r'   r   rI   )r*   r%   r$   r   s       r   save_possible_simple_key Scanner.save_possible_simple_keyd  s     &L4;;$++:L:L+L   ++-,,s4;;/??L!!  ""$$&C :=%%doo6 !r   c                   U R                   U R                  ;   ar  U R                  U R                      nUR                  (       a0  [        SUR                  SU R
                  R                  5       5      eU R                  U R                   	 g g )Nr   r   )r>   rI   r%   r   r)   rS   r   )r*   r   s     r   r   "Scanner.remove_possible_simple_key{  sr    ??d777++DOO<C||"1HH1KK((*	  ))$//: 8r   c                :   [        U R                  5      (       a  g U R                  U:  ap  U R                  R	                  5       nU R
                  R                  5       U l        U R                  R                  [        X"5      5        U R                  U:  a  Mo  g g r   )
boolr>   rF   rS   r   rG   rl   rC   appendBlockEndToken)r*   r(   r)   s      r   r   Scanner.unwind_indent  so        kkF";;'')D,,**,DKKK}T89 kkF"r   c                |    U R                   U:  a,  U R                  R                  U R                   5        Xl         gg)NTF)rF   rG   r   )r*   r(   s     r   
add_indentScanner.add_indent  s/    ;;LL, Kr   c                    U R                   R                  5       nU R                  R                  [	        XU R                   R
                  S95        g )N)encoding)rS   r   rC   r   StreamStartTokenr   r*   r)   s     r   rD   Scanner.fetch_stream_start  s:     {{##%+DAUAUVWr   c                    U R                  S5        U R                  5         SU l        0 U l        U R                  R                  5       nU R                  R                  [        X5      5        SU l	        g )NrA   FT)
r   r   rH   rI   rS   r   rC   r   StreamEndTokenrB   r   s     r   r   Scanner.fetch_stream_end  s\    2'') %$&!{{##%>$56	r   c                    U R                  S5        U R                  5         SU l        U R                  R	                  U R                  5       5        g )NrA   F)r   r   rH   rC   r   scan_directiver=   s    r   r   Scanner.fetch_directive  sC    2 	'') % 	4..01r   c                .    U R                  [        5        g r   )fetch_document_indicatorDocumentStartTokenr=   s    r   r   Scanner.fetch_document_start  s    %%&89r   c                .    U R                  [        5        g r   )r   DocumentEndTokenr=   s    r   r   Scanner.fetch_document_end  s    %%&67r   c                4   U R                  S5        U R                  5         SU l        U R                  R	                  5       nU R                  R                  S5        U R                  R	                  5       nU R                  R                  U" X#5      5        g )NrA   F   )r   r   rH   rS   r   forwardrC   r   )r*   
TokenClass
start_markend_marks       r   r    Scanner.fetch_document_indicator  su    2 	'') % [[))+
A;;''):j;<r   c                ,    U R                  [        SS9  g )Nr}   to_push)fetch_flow_collection_startFlowSequenceStartTokenr=   s    r   r   !Scanner.fetch_flow_sequence_start  s    (()?(Mr   c                ,    U R                  [        SS9  g )Nr~   r   )r   FlowMappingStartTokenr=   s    r   r    Scanner.fetch_flow_mapping_start  s    (()>(Lr   c                F   U R                  5         U R                  R                  U5        SU l        U R                  R                  5       nU R                  R                  5         U R                  R                  5       nU R                  R                  U" X45      5        g NT)r   r<   r   rH   rS   r   r   rC   )r*   r   r   r   r   s        r   r   #Scanner.fetch_flow_collection_start  su    %%'  ) $[[))+
;;''):j;<r   c                .    U R                  [        5        g r   )fetch_flow_collection_endFlowSequenceEndTokenr=   s    r   r   Scanner.fetch_flow_sequence_end  s    &&';<r   c                .    U R                  [        5        g r   )r   FlowMappingEndTokenr=   s    r   r   Scanner.fetch_flow_mapping_end  s    &&':;r   c                f   U R                  5          U R                  R                  5       nSU l        U R
                  R                  5       nU R
                  R                  5         U R
                  R                  5       nU R                  R                  U" X45      5        g ! [         a     Nf = fNF)
r   r<   rl   
IndexErrorrH   rS   r   r   rC   r   )r*   r   poppedr   r   s        r   r   !Scanner.fetch_flow_collection_end  s    '')	&&**,F !&[[))+
;;''):j;<  	 	s   B# #
B0/B0c                   SU l         U R                  5         U R                  R                  5       nU R                  R	                  5         U R                  R                  5       nU R
                  R                  [        X5      5        g r   )rH   r   rS   r   r   rC   r   FlowEntryToken)r*   r   r   s      r   r   Scanner.fetch_flow_entry  sa     $'')[[))+
;;'')>*?@r   c                z   U R                   (       d  U R                  (       d&  [        S S SU R                  R	                  5       5      eU R                  U R                  R                  5      (       a>  U R                  R	                  5       nU R                  R                  [        X5      5        O SU l        U R                  5         U R                  R	                  5       nU R                  R                  5         U R                  R	                  5       nU R                  R                  [        X#5      5        g )Nz%sequence entries are not allowed hereT)r>   rH   r   rS   r   r   r(   rC   r   BlockSequenceStartTokenr   r   BlockEntryTokenr*   r)   r   r   s       r   r   Scanner.fetch_block_entry  s    ((";KK((*	  t{{1122{{++-""#:4#FG  $'') [[))+
;;'')?:@Ar   c                   U R                   (       d  U R                  (       d&  [        S S SU R                  R	                  5       5      eU R                  U R                  R                  5      (       a>  U R                  R	                  5       nU R                  R                  [        X5      5        U R                   (       + U l        U R                  5         U R                  R	                  5       nU R                  R                  5         U R                  R	                  5       nU R                  R                  [        X#5      5        g )Nz!mapping keys are not allowed here)r>   rH   r   rS   r   r   r(   rC   r   BlockMappingStartTokenr   r   KeyTokenr   s       r   r   Scanner.fetch_key8  s     (("$ CT[[EYEYE[ 
 t{{1122{{++-""#9$#EF %)OO 3 	'') [[))+
;;'')8J9:r   c                   U R                   U R                  ;   Ga  U R                  U R                      nU R                  U R                   	 U R                  R                  UR                  U R
                  -
  [        UR                  UR                  5      5        U R                   (       dq  U R                  UR                  5      (       aQ  U R                  R                  UR                  U R
                  -
  [        UR                  UR                  5      5        SU l        OU R                   (       d7  U R                  (       d&  [        S S SU R                  R                  5       5      eU R                   (       dh  U R                  U R                  R                  5      (       a>  U R                  R                  5       nU R                  R                  [        X"5      5        U R                   (       + U l        U R!                  5         U R                  R                  5       nU R                  R#                  5         U R                  R                  5       nU R                  R                  [%        X45      5        g )NFz#mapping values are not allowed here)r>   rI   rC   insertr$   rE   r   r)   r   r(   r   rH   r   rS   r   r   r   r   
ValueToken)r*   r   r)   r   r   s        r   r   Scanner.fetch_valueS  s   ??d777++DOO<C))$//:KK  4#4#44hsxx6R ????3::..KK&&((4+<+<<.sxxB %*D! ?? ,,&=,,.	  ????4;;#5#566;;//1DKK&&'=d'IJ )-$7D! ++- [[))+
;;''):j;<r   c                    U R                  5         SU l        U R                  R                  U R	                  [
        5      5        g r   )r   rH   rC   r   scan_anchor
AliasTokenr=   s    r   r   Scanner.fetch_alias  s3    %%' %4++J78r   c                    U R                  5         SU l        U R                  R                  U R	                  [
        5      5        g r   )r   rH   rC   r   r  AnchorTokenr=   s    r   r   Scanner.fetch_anchor  s3    %%' %4++K89r   c                    U R                  5         SU l        U R                  R                  U R	                  5       5        g r   )r   rH   rC   r   scan_tagr=   s    r   r   Scanner.fetch_tag  s.    %%' %4==?+r   c                "    U R                  SS9  g )Nr   stylefetch_block_scalarr=   s    r   r   Scanner.fetch_literal      c*r   c                "    U R                  SS9  g )Nr   r  r  r=   s    r   r   Scanner.fetch_folded  r  r   c                    SU l         U R                  5         U R                  R                  U R	                  U5      5        g r   )rH   r   rC   r   scan_block_scalarr*   r  s     r   r  Scanner.fetch_block_scalar  s3     $'')411%89r   c                "    U R                  SS9  g )Nr   r  fetch_flow_scalarr=   s    r   r   Scanner.fetch_single      S)r   c                "    U R                  SS9  g )Nr   r  r  r=   s    r   r   Scanner.fetch_double  r  r   c                    U R                  5         SU l        U R                  R                  U R	                  U5      5        g r   )r   rH   rC   r   scan_flow_scalarr  s     r   r  Scanner.fetch_flow_scalar  s3    %%' %40078r   c                    U R                  5         SU l        U R                  R                  U R	                  5       5        g r   )r   rH   rC   r   
scan_plainr=   s    r   r   Scanner.fetch_plain  s1    %%' !&4??,-r   c                :    U R                   R                  S:X  a  gg )Nr   T)rS   r(   r=   s    r   r   Scanner.check_directive  s     ;;"r   c                    U R                   R                  S:X  aC  U R                   R                  S5      S:X  a$  U R                   R                  S5      [        ;   a  gg )Nr   r   ---TrS   r(   prefixr   _THE_END_SPACE_TABr=   s    r   r   Scanner.check_document_start  H    ;;"{{!!!$-$++2B2B12EI[2[r   c                    U R                   R                  S:X  aC  U R                   R                  S5      S:X  a$  U R                   R                  S5      [        ;   a  gg )Nr   r   ...Tr,  r=   s    r   r   Scanner.check_document_end  r0  r   c                F    U R                   R                  S5      [        ;   $ )Nrk   )rS   r   r.  r=   s    r   r   Scanner.check_block_entry  s    {{"&888r   c                |    [        U R                  5      (       a  gU R                  R                  S5      [        ;   $ )NTrk   )r   r>   rS   r   r.  r=   s    r   r   Scanner.check_key  s/      {{"&888r   c                   U R                   S:X  a  [        U R                  5      (       a  gO[        U R                  5      (       a  U R                  S   S:X  a&  U R                  R                  S5      [        ;  a  g gU R                  (       aF  [        U R                  S   [        5      (       a$  U R                  R                  S5      [        ;  a  ggU R                  R                  S5      [        ;   $ )Nrk   rk   TrA   r}   rk   F)
rY   r   r>   r<   rS   r   r.  rC   r_   r  r=   s    r   r   Scanner.check_value  s    **f4DOO$$ % DOO$$$$R(C/{{''*2DD$ E 	 [[ZB%L%L{{''*2DD${{"&888r   c                   U R                   R                  nU" 5       nU R                  S:X  aK  US;  =(       d?    U" S5      [        ;  =(       a)    US:H  =(       d    U R                  (       + =(       a    US;   $ US;  a  gU" S5      nUS:X  a  U[        ;  a  gUS:X  a%  [        U R                  5      (       a  U[        ;  a  gU" S5      [        ;  =(       a)    US:H  =(       d    U R                  (       + =(       a    US;   $ )Nr9  u      	
  -?:,[]{}#&*!|>'"%@`rk   r{   z?:Tr   )rS   r   rY   r.  r>   r   
_SPACE_TAB)r*   srpr   ch1s       r   r   Scanner.check_plain  s     kkU**f4LL A00 H3YFt#6#E2:
 DD!f9$669doo..3j3H1v// 
#I=doo-<"*	
r   c                   U R                   R                  nU R                   R                  nU R                   R                  S:X  a  U" 5       S:X  a  U" 5         Sn[        nU R
                  S:  a  SOSnU(       d  U" 5       U;   a  U" 5         U" 5       U;   a  M  U" 5       S:X  a  U" 5       U;  a  U" 5         U" 5       U;  a  M  U R                  5       (       a  U R
                  (       d  SU l        OSnU(       d  M  g )Nr      ﻿Fr    #T)rS   r   r   r&   _THE_ENDr>   scan_line_breakrH   )r*   r=  srffound_the_endwhite_spaces         r   r   Scanner.scan_to_next_token%  s    & kkkk!!;;!cex&7E#2e%;& %;&u|e8+E e8+##%%,0D) % r   c                F   U R                   R                  nU R                   R                  nU R                   R                  5       nU" 5         U R	                  U5      nS nUS:X  a,  U R                  U5      nU R                   R                  5       nOsUS:X  a,  U R                  U5      nU R                   R                  5       nOAU R                   R                  5       nU" 5       [        ;  a  U" 5         U" 5       [        ;  a  M  U R                  U5        [        XEX65      $ )NYAMLTAG)
rS   r   r   r   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuerD  scan_directive_ignored_lineDirectiveToken)r*   r=  rF  r   namevaluer   s          r   r   Scanner.scan_directiveL  s    kkkk!![[))+
''
36>22:>E{{++-HU]11*=E{{++-H{{++-H%x' %x'((4d:@@r   c                x   SnU R                   R                  nU" U5      nSUs=::  a  S::  d&  O  SUs=::  a  S::  d  O  SUs=::  a  S::  d  O  US;   aH  US	-  nU" U5      nSUs=::  a  S::  a  M  O  SUs=::  a  S::  a  M-  O  SUs=::  a  S::  a  M>  O  US;   a  MH  U(       d*  [        S
USU< 3U R                   R                  5       5      eU R                   R	                  U5      nU R                   R                  U5        U" 5       nUS;  a*  [        S
USU< 3U R                   R                  5       5      eU$ )Nr   09AZazz-_:.rk   while scanning a directive4expected alphabetic or numeric character, but found      
  )rS   r   r   r   r-  r   )r*   r   lengthr=  r   rT  s         r   rN  Scanner.scan_directive_namea  s)   kk[R3#"2s"2cR6F36F"PV,aKFVB R3#"2s"2cR6F36F"PV, ,FrfM$$&	  ""6*F#U..,FrfM$$&	  r   c                H   U R                   R                  nU R                   R                  nU" 5       S:X  a  U" 5         U" 5       S:X  a  M  U R                  U5      nU" 5       S:w  a/  [	        SUSU" 5       < 3U R                   R                  5       5      eU" 5         U R                  U5      nU" 5       S;  a/  [	        SUSU" 5       < 3U R                   R                  5       5      eXE4U l        [        XE5      U R                  R                  S   l
        U R                  $ )NrB  r|   r]  z#expected a digit or '.', but found r_  rA   )rS   r   r   scan_yaml_directive_numberr   r   rJ   r   r5   	doc_infosdoc_version)r*   r   r=  rF  majorminors         r   rO  !Scanner.scan_yaml_directive_value|  s   kkkk!!eslE esl//
;5C<,5ceY?$$&	  	//
;511,5ceY?$$&	  #N070Eb!-   r   c                   U R                   R                  nU R                   R                  nU" 5       nSUs=::  a  S::  d,  O  [        SUSU< 3U R                   R	                  5       5      eSnSU" U5      s=::  a  S::  a  O  OUS-  nSU" U5      s=::  a  S::  a  M  O  [        U R                   R                  U5      5      nU" U5        U$ )NrW  rX  r]  zexpected a digit, but found r   rk   )rS   r   r   r   r   r.   r-  )r*   r   r=  rF  r   r`  rT  s          r   rc  "Scanner.scan_yaml_directive_number  s    kkkk!!Ur S ,.rf5$$&	  S['C'aKF S['C'DKK&&v./Fr   c                Z   U R                   R                  nU R                   R                  nU" 5       S:X  a  U" 5         U" 5       S:X  a  M  U R                  U5      nU" 5       S:X  a  U" 5         U" 5       S:X  a  M  U R	                  U5      nXE4nU R
                  R                  U5        U$ )NrB  )rS   r   r   scan_tag_directive_handlescan_tag_directive_prefixrK   r   )r*   r   r=  rF  handler-  ret_vals          r   rP   Scanner.scan_tag_directive_value  s    kkkk!!eslE esl//
;eslE esl//
;"""7+r   c                    U R                  SU5      nU R                  R                  5       nUS:w  a*  [        SUSU< 3U R                  R	                  5       5      eU$ )N	directiverB  r]  expected ' ', but found )scan_tag_handlerS   r   r   r   r*   r   rT  r   s       r   rl  !Scanner.scan_tag_directive_handle  sa    $$[*=[[9,*2&1$$&	  r   c                    U R                  SU5      nU R                  R                  5       nUS;  a*  [        SUSU< 3U R                  R	                  5       5      eU$ )Nrr  r_  r]  rs  )scan_tag_urirS   r   r   r   ru  s       r   rm  !Scanner.scan_tag_directive_prefix  sc    !!+z:[[..,*2&1$$&	  r   c                   U R                   R                  nU R                   R                  nU" 5       S:X  a  U" 5         U" 5       S:X  a  M  U" 5       S:X  a'  U" 5       [        ;  a  U" 5         U" 5       [        ;  a  M  U" 5       nU[        ;  a*  [	        SUSU< 3U R                   R                  5       5      eU R                  5         g )NrB  rC  r]  .expected a comment or a line break, but found rS   r   r   rD  r   r   rE  )r*   r   r=  rF  r   s        r   rQ  #Scanner.scan_directive_ignored_line  s    kkkk!!eslE esl5C<%x' %x'UX,@G$$&	  	r   c                   U R                   R                  nU R                   R                  5       nU" 5       nUS:X  a  SnOSnU R                   R                  5         SnU" U5      n[	        U5      (       a  US-  nU" U5      n[	        U5      (       a  M  U(       d.  [        SU< 3USU< 3U R                   R                  5       5      eU R                   R                  U5      nU R                   R                  U5        US;  a.  [        SU< 3USU< 3U R                   R                  5       5      eU R                   R                  5       n	U" XU	5      $ )	Nr   aliasanchorr   rk   while scanning an r^  u     	
  ?:,[]{}%@`)rS   r   r   r   r	   r   r-  )
r*   r   r=  r   	indicatorrS  r`  r   rT  r   s
             r   r  Scanner.scan_anchor  sI    kk[[))+
E	DD[ $B''aKFVB $B'' $TH-FrfM$$&	  ""6*F# ::$TH-FrfM$$&	  ;;'')%X66r   c                    U R                   R                  nU R                   R                  5       nU" S5      nSnUS:X  a:  SnU R                   R                  5         U R                   R                  nU" S5      nUS:X  a  S nU R                   R                  S5        U R	                  SU5      nU" 5       S:w  a/  [        SUS	U" 5       < 3U R                   R                  5       5      eU R                   R                  5         OU[        ;   a  S nUnU R                   R                  5         OrSnS
nUS;  a  US:X  a  SnOUS-  nU" U5      nUS;  a  M  UnU(       a  U R                  SU5      nOUnU R                   R                  5         U R	                  SU5      nU" 5       nUS;  a*  [        SUSU< 3U R                   R                  5       5      eXV4n	U R                   R                  5       n
[        XU
5      $ )Nrk   r   z!!<   tagr   zwhile parsing a tagzexpected '>' but found Fr_  Tzwhile scanning a tagrs  )	rS   r   r   r   rx  r   r.  rt  TagToken)r*   r=  r   r   short_handlern  suffixr`  
use_handlerT  r   s              r   r  Scanner.scan_tag  s   kk[[))+
V9LKK!++""CQB9FKK"&&uj9Fu|")-ceY7KK((*	  KK!%%F!FKK!FJ559!%J![ 55 "F--eZ@%##%&&uj9FU..&*2&1$$&	   ;;'')844r   c                |	   U R                   R                  nUS:X  a  SnOSn/ nU R                   R                  5       nU R                   R                  5         U R	                  U5      u  pxU R                  U5      n	U R                  S-   n
UcY  U
S:  a4  US;  d,  U R                  S:X  a  [        U R                  SS5      (       a  Sn
U R                  5       u  pn[        X5      nO"U
S:  a  Sn
X-   S-
  nU R                  U5      u  pSnU R                   R                  U:X  Ga  U" 5       S	:w  Ga  UR                  U5        U" 5       S
;  nSnU" U5      [        ;  a  US-  nU" U5      [        ;  a  M  UR!                  U R                   R#                  U5      5        U R                   R                  U5        U R%                  5       nU R                  U5      u  pUS;   a1  U
S:X  a+  U R'                  5       (       d  U R)                  5       (       a  OU R                   R                  U:X  az  U" 5       S	:w  ao  U(       a  U(       a  US:X  a  UR!                  S5        U(       a1  US:X  a+  U(       a$  U" 5       S
;  a  U(       d  UR!                  S5        OUR!                  U5        OO(U R                   R                  U:X  a  U" 5       S	:w  a  GM  / nUS;   a  UR!                  U5        USL a  UR                  U5        OUS;   a  UR                  U5        [+        SR-                  U5      SXmU5      nU R                  b/  [        U R                  SS5      nUc  U	b  UR/                  U	/5        [1        U5      S:  Ga:  U R                  bh  [        U R                  SS 5      nUbN  UR2                  [1        U5      -
  nU H0  nUS   S:X  d   eU R4                  R7                  USU5        US-  nM2     U R9                  5       nU(       a@  UR!                  SUS   R                  -  US   -   5        U R9                  5       nU(       a  M@  U R                  ba  [        U R                  SS5      nUcG  U R                   R                  5       n[;        SR-                  U5      UU5      nUR=                  U5        U$ )Nr   TFrk   z|>r9  0top_level_block_style_scalar_no_indent_error_1_1 ry   r   r   
rB  r   r   comment_handlingrA   )rS   r   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_linerF   rY   r6   r5   scan_block_scalar_indentationmaxscan_block_scalar_breaksr(   extendrD  r   r-  rE  r   r   ScalarTokenjoinadd_pre_commentsr;   r'   commentsadd_blank_liner   CommentTokenadd_post_comment)r*   r  rtr=  foldedchunksr   chomping	incrementblock_scalar_comment
min_indentbreaks
max_indentr   rF   
line_breakleading_non_spacer`  trailingtokencomment_handlerr'   xru   comment_end_marks                            r   r  Scanner.scan_block_scalarK  s7   kkC<FF[[))+
 	"??
K#BB:N [[1_
A~T!33v=KK!SUZ  
+/+M+M+O(F0FA~
+a/F#<<VDF
 kk  F*su}MM&! #U 2Ff+X-! f+X-MM$++,,V45KK'--/J#<<VDF}q ,,..$2I2I2K2K{{!!V+ &Z4%7MM$'jD05F35X]K]!c*MM*- S kk  F*su}Z !|#MM*%tMM&!&OOF# BGGFOUJ%P;;"%dkk3EuMO&'3**,@+ABx=1{{&")$++7I4"P".#==3x=8D% u},}44Q4@	 & --/Ggaj&7&7 7'!* DE113 ' {{&")$++7I5"Q"* (,{{';';'=$*2778+<hHXYG**73r   c                   U R                   R                  nS nS nU" 5       nUS;   a  US:X  a  SnOSnU R                   R                  5         U" 5       nUS;   aQ  [        U5      nUS:X  a&  [	        SUSU R                   R                  5       5      eU R                   R                  5         OUS;   a  [        U5      nUS:X  a&  [	        SUSU R                   R                  5       5      eU R                   R                  5         U" 5       nUS;   a%  US:X  a  SnOSnU R                   R                  5         U" 5       nUS	;  a*  [	        SUS
U< 3U R                   R                  5       5      eX44$ )Nz+-+TF
0123456789r   while scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0r_  z7expected chomping or indentation indicators, but found )rS   r   r   r.   r   r   )r*   r   r=  r  r  r   s         r   r  $Scanner.scan_block_scalar_indicators  si   kk	U:Sy KK!B\!G	>&7"Y,,.	  ##%<BIA~"3UKK((*	  KK!BTz9#H$H##%U../I"P$$&	  ""r   c                   U R                   R                  nU R                   R                  nSnS nU" 5       S:X  a  XB" 5       -  nU" 5         U" 5       S:X  a  M  U" 5       S:X  a2  UnU" 5       [        ;  a!  XR" 5       -  nU" 5         U" 5       [        ;  a  M!  U" 5       nU[        ;  a*  [	        SUSU< 3U R                   R                  5       5      eU R                  5         U$ )Nr  rB  rC  r  r{  r|  )r*   r   r=  rF  r-  ru   r   s          r   r  &Scanner.scan_block_scalar_ignored_line  s    kkkk!!eslceOFE esl 5C<G%x'35  %x' UX/@G$$&	  	r   c                d   U R                   R                  nU R                   R                  n/ nSnSnU R                   R                  5       nU" 5       S;   a  U" 5       S:w  aV  US:  a  U R                   R                  nUR                  U R                  5       5        U R                   R                  5       nO7U" 5         U R                   R                  U:  a  U R                   R                  nU" 5       S;   a  M  US:  a+  XT:  a&  U R                   R                  5       n[        SU5      eX5U4$ )NrA   r       
  rB  z9more indented follow up line than first in a block scalar)rS   r   r   r   r(   r   rE  r   )r*   r=  rF  r  first_indentr  r   r   s           r   r  %Scanner.scan_block_scalar_indentation  s   kkkk!!
;;'')e..u|!##';;#5#5Ld2245;;//1;;%%
2!%!3!3J e.. !
 9--/JKZ  8++r   c                   / nU R                   R                  nU R                   R                  nU R                   R                  5       nU R                   R                  U:  a9  U" 5       S:X  a.  U" 5         U R                   R                  U:  a  U" 5       S:X  a  M.  U" 5       S;   a  UR                  U R                  5       5        U R                   R                  5       nU R                   R                  U:  a9  U" 5       S:X  a.  U" 5         U R                   R                  U:  a  U" 5       S:X  a  M.  U" 5       S;   a  M  X%4$ )NrB  
   
  )rS   r   r   r   r(   r   rE  )r*   rF   r  r=  rF  r   s         r   r   Scanner.scan_block_scalar_breaks*  s    kkkk!!;;'')kk  6)ceslE kk  6)cesle--MM$..01{{++-H++$$v-#%3, ++$$v-#%3, e--
 r   c                P   US:X  a  SnOSnU R                   R                  n/ nU R                   R                  5       nU" 5       nU R                   R                  5         UR	                  U R                  X%5      5        U" 5       U:w  aM  UR	                  U R                  X%5      5        UR	                  U R                  X%5      5        U" 5       U:w  a  MM  U R                   R                  5         U R                   R                  5       n[        SR                  U5      SXWU5      $ )Nr   TFr  )	rS   r   r   r   r  scan_flow_scalar_non_spacesscan_flow_scalar_spacesr  r  )r*   r  doubler=  r  r   quoter   s           r   r#  Scanner.scan_flow_scalar9  s     C<FFkk[[))+
d66vJKeunMM$66vJKMM$::6NO eun 	;;'')2776?E:OOr   rW  ry   r[  r  bt	nr  vfrerB  r   /\N   _    Lu    Pu    r        )r  uUc                   / nU R                   R                  nU R                   R                  n SnU" U5      S;  a  US-  nU" U5      S;  a  M  US:w  a2  UR                  U R                   R	                  U5      5        U" U5        U" 5       nU(       d-  US:X  a'  U" S5      S:X  a  UR                  S5        U" S5        GOU(       a  US:X  d  U(       d   US;   a  UR                  U5        U" 5         GOuU(       Gak  US:X  Gad  U" 5         U" 5       nXpR
                  ;   a'  UR                  U R
                  U   5        U" 5         GO"XpR                  ;   a  U R                  U   nU" 5         [        U5       HC  nU" U5      S;  d  M  [        S	US
US SU" U5      < 3U R                   R                  5       5      e   [        U R                   R	                  U5      S5      n	UR                  [        U	5      5        U" U5        OcUS;   a1  U R                  5         UR                  U R                  X5      5        O,[        S	USU< 3U R                   R                  5       5      eU$ GM@  )Nr   u    
'"\ 	  rk   r   r  z"\r  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarzexpected escape sequence of dz hexdecimal numbers, but found    u
   
  zfound unknown escape character )rS   r   r   r   r-  ESCAPE_REPLACEMENTSESCAPE_CODESranger   r   r.   chrrE  r  scan_flow_scalar_breaks)
r*   r  r   r  r=  rF  r`  r   kcodes
             r   r  #Scanner.scan_flow_scalar_non_spacesh  s   kkkk!!Ff+%EE! f+%EE{dkk0089FBbCiCFcMc"AR3Y2;b!B$JU111MM$":":2">?E,,,!..r2FE"6]q6)AA". G *">vaj IAADQ
!L $ 4 4 6#  + t{{11&92>DMM#d),K11((*MM$">">v"RS&?"9"@,,.	  ] r   c                @   U R                   R                  n/ nSnU" U5      S;   a  US-  nU" U5      S;   a  M  U R                   R                  U5      nU R                   R                  U5        U" 5       nUS:X  a&  [	        SUSU R                   R                  5       5      eUS;   ad  U R                  5       nU R                  X5      n	US:w  a  UR                  U5        OU	(       d  UR                  S	5        UR                  U	5        U$ UR                  U5        U$ )
Nr   r   rk   ry   while scanning a quoted scalarzfound unexpected end of streamr  r  rB  )
rS   r   r-  r   r   r   rE  r  r   r  )
r*   r  r   r=  r  r`  whitespacesr   r  r  s
             r   r  Scanner.scan_flow_scalar_spaces  s
   kk&kU"aKF &kU"kk((0F#U:00$$&	  ))--/J11&EFT!j)c"MM&!  MM+&r   c                   / nU R                   R                  nU R                   R                  n U R                   R                  S5      nUS:X  d  US:X  a6  U" S5      [        ;   a&  [        SUSU R                   R                  5       5      eU" 5       S;   a  U" 5         U" 5       S;   a  M  U" 5       S;   a   UR                  U R                  5       5        OU$ M  )Nr   r+  r2  r  z#found unexpected document separatorr   r  )	rS   r   r   r-  r.  r   r   r   rE  )r*   r  r   r  r=  rF  r-  s          r   r  Scanner.scan_flow_scalar_breaks  s    kkkk!! [[''*F%6U?ABT8T"49KK((*	  %5. %5.u..d2245! r   c                   U R                   R                  nU R                   R                  n/ nU R                   R                  5       nUnU R                  S-   n/ n SnU" 5       S:X  a  GO U" U5      n	 U	S:X  a  U" US-   5      [
        ;  a  OcU	S:X  a  U R                  S:w  a  OLU	[
        ;   dA  U R                  (       d  U	S:X  a  U" US-   5      [
        ;   d  U R                  (       a  U	S	;   a  OUS-  nM  U R                  (       aD  U	S:X  a>  U" US-   5      S
;  a/  U" U5        [        SUSU R                   R                  5       S5      eUS:X  a  OSU l	        UR                  U5        UR                  U R                   R                  U5      5        U" U5        U R                   R                  5       nU R                  Xd5      nU(       a6  U" 5       S:X  d+  U R                  (       d  U R                   R                  U:  a  OGM  [        SR!                  U5      SXE5      n
U R"                  b  [%        U R"                  SS5      nUcA  U(       a8  US   S:X  a/  ['        SR!                  U5      S-   XE5      nU
R)                  U5        U
$ USLaB  UR*                  S-   nU H-  n	U	S:X  d  M  U R,                  R/                  SSU5        US-  nM/     U
$ )Nrk   Tr   rC  Fr   r   r9  z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.r  r  r  )rS   r   r   r   rF   r.  rY   r>   r   rH   r  r   r-  scan_plain_spacesr(   r  r  r5   r6   r  r  r'   r  r  )r*   r=  rF  r  r   r   rF   spacesr`  r   r  r  ru   r'   s                 r   r&  Scanner.scan_plain  s    kkkk!![[))+
q
 Fu|[3Y3vz?:L#L3Y4#B#Bf#L,, OO#I
O/AAB)O!% * #I
O+KKF"3*KK((*#  {$)D!MM&!MM$++,,V45K{{++-H++F?F5C<DKK,>,>,Gi l BGGFOT:H ;;"%dkk3EuMO&fQi4/*2776?T+A:XG**73  !-!* BTz44T1dC	 !
 r   c                   U R                   R                  nU R                   R                  n/ nSnU" U5      S;   a  US-  nU" U5      S;   a  M  U R                   R                  U5      nU R                   R                  U5        U" 5       nUS;   Ga  U R	                  5       n	SU l        U R                   R                  S5      n
U
S:X  d  U
S:X  a  U" S5      [        ;   a  g / nU" 5       S	;   aw  U" 5       S:X  a  U" 5         OWUR                  U R	                  5       5        U R                   R                  S5      n
U
S:X  d  U
S:X  a  U" S5      [        ;   a  g U" 5       S	;   a  Mw  U	S
:w  a  UR                  U	5        OU(       d  UR                  S5        UR                  U5        U$ U(       a  UR                  U5        U$ )Nr   rB  rk   r  Tr   r+  r2  r  r  )	rS   r   r   r-  rE  rH   r.  r   r  )r*   rF   r   r=  rF  r  r`  r  r   r  r-  r  s               r   r  Scanner.scan_plain_spaces+  s    kkkk!!&kS aKF &kS kk((0F#U''--/J$(D![[''*F%6U?ABT8TF%225C<EMM$"6"6"89![[//2F%6U?AJ\@\ %22 T!j)c"MM&!  MM+&r   c                   U R                   R                  nU" 5       nUS:w  a.  [        SU< 3USU< 3U R                   R                  5       5      eSnU" U5      nUS:w  a  SUs=::  a  S::  d&  O  SUs=::  a  S	::  d  O  S
Us=::  a  S::  d  O  US;   aH  US-  nU" U5      nSUs=::  a  S::  a  M  O  SUs=::  a  S	::  a  M-  O  S
Us=::  a  S::  a  M>  O  US;   a  MH  US:w  aI  U R                   R	                  U5        [        SU< 3USU< 3U R                   R                  5       5      eUS-  nU R                   R                  U5      nU R                   R	                  U5        U$ )Nr   r  zexpected '!', but found rk   rB  rW  rX  rY  rZ  r[  r\  z-_zexpected '!' but found )rS   r   r   r   r   r-  )r*   rS  r   r=  r   r`  rT  s          r   rt  Scanner.scan_tag_handleP  s]    kkU9$TH-*2&1$$&	  [9"s"cR&63&6#:Js:JbTXj![ "s"cR&63&6#:Js:JbTXj Sy##F+"(1-bV4KK((*	  aKF""6*F#r   c                   U R                   R                  n/ nSnU" U5      nSUs=::  a  S::  d<  O  SUs=::  a  S::  d-  O  SUs=::  a  S::  d  O  US;   d  U R                  S	:  a  US
:X  a  US:X  ah  UR                  U R                   R	                  U5      5        U R                   R                  U5        SnUR                  U R                  X5      5        OUS-  nU" U5      nSUs=::  a  S::  a  M  O  SUs=::  a  S::  a  M  O  SUs=::  a  S::  a  M  O  US;   a  M  U R                  S	:  a  US
:X  a  M  US:w  aG  UR                  U R                   R	                  U5      5        U R                   R                  U5        SnU(       d.  [        SU< 3USU< 3U R                   R                  5       5      eSR                  U5      $ )Nr   rW  rX  rY  rZ  r[  r\  z-;/?:@&=+$,_.!~*'()[]%r9  rC  rz   rk   zwhile parsing an zexpected URI, but found r  )
rS   r   rY   r   r-  r   scan_uri_escapesr   r   r  )r*   rS  r   r=  r  r`  r   s          r   rx  Scanner.scan_tag_urip  s    kk[2bCbC--0069rSySydkk0089##F+d33DEF!VB 2bCbC--0069rSy Q;MM$++,,V45KK'F#D8,*2&1$$&	  wwvr   c           	        U R                   R                  nU R                   R                  n/ nU R                   R                  5       nU" 5       S:X  a  U" 5         [	        S5       HC  nU" U5      S;  d  M  [        SU< 3USU" U5      < 3U R                   R                  5       5      e   UR                  [        U R                   R                  S5      S5      5        U" S5        U" 5       S:X  a  M   [        U5      R                  S5      nU$ ! [         a   n	[        SU< 3U[        U	5      U5      eS n	A	ff = f)Nrz   r  r  r  @expected URI escape sequence of 2 hexdecimal numbers, but found r  utf-8rS   r   r   r   r  r   r   r.   r-  bytesdecodeUnicodeDecodeErrorstr)
r*   rS  r   r=  rF  
code_bytesr)   r  rT  excs
             r   r  Scanner.scan_uri_escapes  s)   kkkk!! "
{{##%eslE1Xq6!99&,TH5"%%(VJ0,,.   c$++"4"4Q"7<=F esl	Z*%,,W5E  " 	Z!3D8<j#c(TXYY	Zs   7D 
D=D88D=c                4   U R                   R                  5       nUS;   aV  U R                   R                  S5      S:X  a  U R                   R                  S5        gU R                   R                  5         gUS;   a  U R                   R                  5         U$ g)N   
r  
r       r  rS   r   r-  r   )r*   r   s     r   rE  Scanner.scan_line_break  s     [[{{!!!$.##A&  ##%>!KK!Ir   )rP   rH   rB   r8   r<   rF   rG   r5   rI   rK   rC   rE   rJ   r   )r5   r-   r/   r0   )r/   r.   r/   r0   r/   r-   ra   r-   r/   r   r/   r   ru   r-   r/   r0   )r(   r-   r/   r0   )r(   r.   r/   r   )r   r-   r/   r0   )r   r-   r   Textr/   r0   )r  r-   r/   r0   r   r-   r/   r-   )r   r-   r/   r0   )r   r-   r/   r-   Fr  r-   r  zOptional[bool]r/   r-   )rF   r.   r/   r-   )r  r-   r/   r-   )r  r-   r   r-   r/   r-   )rF   r-   r   r-   r/   r-   rS  r-   r   r-   r/   r-   )Tr   r   r   r   r+   propertyr>   r7   rS   rY   rc   rg   rm   r]   rv   r^   rq   rp   r   r   r   r   rD   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   rN  rO  rc  rP  rl  rm  rQ  r  r  r  r  r  r  r  r#  r  r  r  r  r  r&  r  rt  rx  r  rE  r   r   r   r   r   r   G   s    " & &58n ( ( . .
"&
"k
^ 5&=.;":0X	2:8=NM==<=$	AB<;6:=x9:,++:**9.999$ 
H%NA*6!6&&,7\65pyv0#d2,2 P0TV 	V 	V	
 	f 	V 	V 	V 	V 	V 	V 	S 	S 	d 	V  	V!" 	X#$ 	X%* +L3j:.Xt#J@!F2r   r   c                  v    \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SSS jjr
SSS	 jjrSS
 jrSrg)r   i  c                0   U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  U R                  5         [        U R                  5      S:  a1  U(       d  gU H#  n[        U R                  S   U5      (       d  M#    g   gr\   )r]   r^   _gather_commentsr;   rC   r_   r`   s      r   rc   RoundTripScanner.check_token  sx    ##%%""$ ##%%t{{a!dkk!nf55 " r   c                    U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  U R                  5         [        U R                  5      S:  a  U R                  S   $ g rf   )r]   r^   r  r;   rC   r=   s    r   rg   RoundTripScanner.peek_token  s\    ##%%""$ ##%%t{{a;;q>!r   c                *   / nU R                   (       d  U$ [        U R                   S   [        5      (       aA  U R                   R                  S5      nU =R                  S-  sl        UR                  U5        U R                  5       (       a  U R                  5         U R                   (       d  U$ [        U R                   S   [        5      (       aA  U =R                  S-  sl        U R                   R                  S5      nUR                  U5        U R                  5       (       a  M  [        U5      S:  a  U R                   S   R                  U5        U R                  (       d+  [        U R                   5      S:  a  U R                  5         ggg)zCcombine multiple comment lines and assign to next non-comment-tokenr   rk   r  N)rC   r_   r  rl   rE   r   r]   r^   r;   r  rB   )r*   r  ru   s      r   r  !RoundTripScanner._gather_comments  s!    {{Odkk!nl33kkooa(G"OOG$##%%""$;;$++a.,77!!Q&!++//!,( ##%% x=AKKN++H5yyS-1""$ 2yr   c                
   U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  U R                  5         [        U R                  5      S:  Ga  [        U R                  5      S:  Ga  [        U R                  S   [        [        [        [        45      (       Ga  [        U R                  S   [        5      (       Ga  U R                  S   R                  R                  U R                  S   R                  R                  :X  GaP  U =R                  S-  sl        U R                  R                  S5      nU R                  5         [        U R                  5      S:  a  [        U R                  S   [        5      (       a  U =R                  S-  sl        U R                  R                  S5      nUR                   SUR                  R"                  -  -   UR                   -   Ul        U R                  5         [        U R                  5      S:  a$  [        U R                  S   [        5      (       a  M  U R                  S   R%                  U5        GO`[        U R                  5      S:  GaF  [        U R                  S   [        5      (       Ga#  [        U R                  S   [        5      (       Ga   U R                  S   R                  R                  U R                  S   R                  R                  :w  Ga  U =R                  S-  sl        U R                  R                  S5      nSUR                  R                  U R                  S   R                  R                  -
  -  SUR                  R"                  -  -   UR                   -   Ul        U R                  S   R%                  U5        U R                  5         [        U R                  5      S:  a  [        U R                  S   [        5      (       a  U =R                  S-  sl        U R                  R                  S5      nUR                   SUR                  R"                  -  -   UR                   -   Ul        U R                  5         [        U R                  5      S:  a$  [        U R                  S   [        5      (       a  M  U =R                  S-  sl        U R                  R                  S5      $ g )Nr   rk   rB  r  )r]   r^   r  r;   rC   r_   r  r  r   r   r  r   r'   r   rE   rl   rT  r(   r  )r*   cc1s      r   rm   RoundTripScanner.get_token  s   ##%%""$ ##%%t{{a DKK 1$KKN *.BDWX  t{{1~|<<KKN++00DKKN4M4M4R4RR!!Q&!KKOOA&&&($++&*z$++a.,/W/W%%*%+Bggr}}/C/C)CDrxxOAG**,	 $++&*z$++a.,/W/W
 A//2DKK 1$t{{1~{;;t{{1~|<<KKN++00DKKN4M4M4R4RR!!Q&!KKOOA&ALL--A0G0G0L0LLMQ\\0002gg 
 A//2&&($++&*z$++a.,/W/W%%*%+Bggr}}/C/C)CDrxxOAG**,	 $++&*z$++a.,/W/W
 ";;??1%%r   c                    Uu  p#nU(       a   US   S:X  a  US S nU(       a  US   S:X  a  M  U R                   R                  [        X#U5      5        g )NrA   rB  )rC   r   r  )r*   ru   rT  r   r   s        r   rv   RoundTripScanner.fetch_comment&  sR    &-#8b	S( #2JE b	S( 	<8DEr   c                   U R                   R                  nU R                   R                  nU R                   R                  S:X  a  U" 5       S:X  a  U" 5         SnU R                  S:  a  SOSnU(       Gd  U" 5       U;   a  U" 5         U" 5       U;   a  M  U" 5       nUS:X  a  U R                   R                  5       nUnU" 5         U[        ;  a*  U" 5       nUS:X  a  US-  nOXu-  nU" 5         U[        ;  a  M*  U R                  5       n[        U5      S:  a%  Xu-  nU R                  5       n[        U5      S:  a  M%  U R                   R                  5       nU R                  (       d  S	U l	        XvU4$ U R                  5       S
:w  a  U R                   R                  5       nU R                  (       d  S	U l	        U" 5       nUS:X  a  U R                   R                  5       nS
nU(       a  U R                  S	S9nXu-  nU(       a  M  U" 5       S:X  a  UR                  SS5      S   S-   nU R                   R                  5       nXvU4$ OS	nU(       d  GM  g )Nr   rA  Fr   rB  rC  ry   r  Tr  )
empty_linerk   )rS   r   r   r&   r>   r   rD  rE  r;   rH   rsplit)	r*   r=  rF  rG  rI  r   r   ru   r   s	            r   r   #RoundTripScanner.scan_to_next_token0  s   & kkkk!!;;!cex&7E#2e%;& %;&BSy![[113
(BTz  4MGE ( ))+"gkMG--/B "gk  ;;//1,0D)H44##%+![[113
,0D)U:!%!5!5!7J G!11T1B " u|")..q"9!"<t"C#{{335H"88  Y %Z r   c                   U R                   R                  5       nUS;   aV  U R                   R                  S5      S:X  a  U R                   R                  S5        gU R                   R                  5         gUS;   a  U R                   R                  5         U$ U(       a"  US;   a  U R                   R                  5         U$ g)Nr  r  r  r  r	  z	 r  r
  )r*   r&  r   s      r   rE   RoundTripScanner.scan_line_breakx  s     ;;##%{{!!!$.##A&  ##%>!KK!IB%KKK!Ir   c                *    [         R                  XUS9$ )N)r  )r   r  )r*   r  r  s      r   r  "RoundTripScanner.scan_block_scalar  s    (((<<r   c           	        U R                   R                  nU R                   R                  n/ nSnU R                   R                  5       nU" 5       S:X  a  US-  nU" 5         [	        S5       HC  nU" U5      S;  d  M  [        SU< 3USU" U5      < 3U R                   R                  5       5      e   UR                  [        U R                   R                  S5      S5      5        X`R                   R                  S5      -  nU" S5        U" 5       S:X  a  M   [        U5      R                  S5      n	U$ ! [         a   n
[        SU< 3U[        U
5      U5      eS	n
A
ff = f)
z.
The roundtripscanner doesn't do URI escaping
r  rz   r  r  r  r  r  r  Nr  )r*   rS  r   r=  rF  r  chunkr)   r  r  r  s              r   r  !RoundTripScanner.scan_uri_escapes  sP   
 kkkk!! "
{{##%eslSLEE1Xq6!99&,TH5"%%(VJ0,,.   c$++"4"4Q"7<=[[''**EF esl	Zj!((1A  " 	Z!3D8<j#c(TXYY	Zs   D7 7
E!EE!)rH   Nr  r  r  r  )r&  r   r/   r  )Tr  r  )r   r   r   r   rc   rg   r  rm   rv   r   rE  r  r  r   r   r   r   r   r     s3    %03jFFP0=r   r   c                  X    \ rS rSrSrSS jrSSS jjrSS jrSS jrSS jr	SS jr
S	rg
)CommentBasei  )rT  r'   r(   usedfunctionflineufunulinec                    Xl         X l        X0l        SU l        [        S:w  aZ  SS KnUR                  UR                  5       S   S   5      nUR                  U l        UR                  U l
        S U l        S U l        g g )NrB  r   r   )rT  r'   r(   r2  r
   inspectgetframeinfostackr3  linenor4  r5  r6  )r*   rT  r'   r(   r8  infos         r   r+   CommentBase.__init__  sk    
		Q;''(:1(=>D MMDMDJDIDJ r   c                    Xl         [        S:w  aL  SS KnUR                  UR	                  5       S   S   5      nUR
                  U l        UR                  U l        g g rj   )	r2  r
   r8  r9  r:  r3  r5  r;  r6  )r*   r  r8  r<  s       r   set_usedCommentBase.set_used  sL    	Q;''(:1(=>DDIDJ r   c                    SU l         g )Nr   )r2  r=   s    r   set_assignedCommentBase.set_assigned  s	    	r   c                    U R                    $ r   rT  r=   s    r   __str__CommentBase.__str__  s    **r   c                    U R                   < $ r   rE  r=   s    r   __repr__CommentBase.__repr__  s    ** r   c                    U R                   S-   nU R                  nU U R                   SU R                  S SU R                  S SUS SU R
                   SU R                   SU R                   SU R                   3$ )Nr   rB  2r   z<2z "40s)	rT  rS  r2  r'   r(   r3  r4  r5  r6  )r*   xvrS  s      r   r<  CommentBase.info  s{    ZZ#yyfTYYKq1Qt{{2.>bC}}oQtzzl!DII;a

|E	
r   )r(   r4  r3  r'   r5  r6  r2  rT  NrT  r-   r'   r-   r(   r-   r/   r0   )r  )r  r-   r/   r0   r  r/   r  )r   r   r   r   	__slots__r+   r?  rB  rF  rI  r<  r   r   r   r   r1  r1    s%    YI%!
r   r1  c                  0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )
EOLCommenti  EOLCc                &   > [         TU ]  XU5        g r   superr+   r*   rT  r'   r(   	__class__s       r   r+   EOLComment.__init__      f-r   r   rP  r   r   r   r   rS  r+   r   __classcell__rZ  s   @r   rT  rT        D. .r   rT  c                  0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )FullLineCommenti  FULLc                &   > [         TU ]  XU5        g r   rW  rY  s       r   r+   FullLineComment.__init__  r\  r   r   rP  r]  r_  s   @r   rb  rb    r`  r   rb  c                  0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )BlankLineCommenti  BLNKc                &   > [         TU ]  XU5        g r   rW  rY  s       r   r+   BlankLineComment.__init__  r\  r   r   rP  r]  r_  s   @r   rg  rg    r`  r   rg  c                      \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSSS
 jjrSS jrSS jrSS jrSS jrSrg)ScannedCommentsi  c                     0 U l         / U l        g r   r  unusedr=   s    r   r+   ScannedComments.__init__  s    r   c                    UR                  S5      S:X  a  US   S:X  d   eOSU;  d   e[        US S X25      =U R                  U'   nU R                  R	                  U5        U$ Nr  rk   rA   )countrT  r  ro  r   r*   ru   r(   r'   retvals        r   add_eol_commentScannedComments.add_eol_comment  sj    ==!#2;$&&&w&&&'1'#2,'MMdf4 r   c                    UR                  S5      S:X  a	  US   S:X  d   eX0R                  ;  d   e[        US S X25      =U R                  U'   nU R                  R	                  U5        U$ rr  )rs  r  rg  ro  r   rt  s        r   r  ScannedComments.add_blank_line  sk    }}T"a'GBK4,???==((('7d'SSdf4 r   c                    UR                  S5      S:X  a	  US   S:X  d   e[        US S X25      =U R                  U'   nU R                  R	                  U5        U$ rr  )rs  rb  r  ro  r   rt  s        r   add_full_line_comment%ScannedComments.add_full_line_comment  s]    }}T"a'GBK4,??? (7ws|T'RRdf4 r   c                     U R                   U   $ r   )r  )r*   idxs     r   __getitem__ScannedComments.__getitem__  s    }}S!!r   c                n    SSR                  S U R                  R                  5        5       5      -   S-   $ )NzParsedComments:
  z
  c              3  R   #    U  H  u  pUS  SUR                  5        3v   M     g7f)rL  rB  N)r<  ).0r;  r  s      r   	<genexpr>*ScannedComments.__str__.<locals>.<genexpr>#  s'     [EZ	fQZq
3EZs   %'r  r  r  itemsr=   s    r   rF  ScannedComments.__str__   s7    !kk[T]]EXEXEZ[\]	
r   c                    [        U R                  R                  5       5      S   u  pUS SUR                  5        S3$ )NrA   rL  rB  r  )r   r  r  r<  )r*   r;  r  s      r   lastScannedComments.last'  s;    ,,./3	1QVVXJb))r   c                2    [        U R                  5      S:  $ rf   )r;   ro  r=   s    r   any_unprocessedScannedComments.any_unprocessed+  s    4;;!##r   c              #    #    [        U R                  5      S:  a  [        S:w  a  SS KnU(       a  U R                  R	                  S5      OU R                  S   nUR                  UR                  5       S   S   5      n[        SX0R                  U   R                  UR                  UR                  5        WU R                  U   4v   U(       a  U R                  U   R                  5         [        U R                  5      S:  a  M  g g 7f)Nr   rk   using)r;   ro  r
   r8  rl   r9  r:  r   r  rT  r3  r;  r?  )r*   user8  firstr<  s        r   unprocessedScannedComments.unprocessed3  s     $++"{.1*t{{1~++GMMOA,>q,ABe(<(B(BDMMSWS^S^_u---e$--/ $++"s   DDDc                J   UR                   R                  n[        S:w  aU  SS KnUR	                  UR                  5       S   S   5      n[        SX R                  UR                  UR                  5        SnU R                  (       a  U R                  S   U:  a  SnU R                  R                  S5      n[        S:w  a  [        SU5        U R                  U   R                  5         UR                  U5        U R                  (       a  U R                  S   U:  a  M  U$ )Nr   rk   
assign_preFTzassign_pre < )r   r'   r
   r8  r9  r:  r   ro  r3  r;  rl   r  r?  add_comment_prer*   r  
token_liner8  r<  gobbledr  s          r   r  ScannedComments.assign_pre?  s    %%**
Q;''(:1(=>DL*kk4==$++Vkkdkk!nz9GKKOOA&E{/MM% ))+!!%( kkdkk!nz9 r   c                    U R                   S   n[        U R                  U   [        5      (       d  g SnX*    R
                  R                  U:  d  [        X*    [        5      (       a>  US-  nX*    R
                  R                  U:  a  M$  [        X*    [        5      (       a  M>  [        S:w  a  [        SU5        [        U5      U:  a4  [        X*    [        5      (       a  [        XS-   *    [        5      (       a  g  [        X*    [        5      (       a  [        XS-   *    [        5      (       an   U R                   R                  S5      nU R                  U   R                  5         [        S:w  a  [        SX4[        5        X*    R!                  U[        5        g  [        X*    [        5      (       at  [        XS-   *    [        [$        45      (       aS   U R                   R                  S5      nU R                  U   R                  5         X*    R!                  U[&        5        g U H  n[        SU5        M     [        S:w  a  [        S[)        X*    5      5        SS KnUR-                  S5        g ! [         a     g f = f! [         a    ["        ef = f! [         a    [        S:w  a  [        S5         GN f = f! [         a    ["        ef = f! [         a    [        S:w  a  [        S5         Nf = f)	Nr   rk   idx1z>>>>>aIndexError1IndexError2ztt-znot implemented EOL)ro  r   r_   r  rT  r   r'   r  r
   r   r;   r  r   rl   r?  KEYCMNTadd_comment_eolrt   r   	VALUECMNTtypesysexit)r*   rC   comment_liner~  eol_idxr  r  s          r   
assign_eolScannedComments.assign_eolP  s   	;;q>L $--5zBBTl%%**\9Z4L*>
 >
 1HC Tl%%**\9Z4L*>
 >
 Q;FC K#6$<556!G*-{;;	&,44qz"H: :."kkooa0GMM'*335{#@4L00'B 
	&,44qz"Z$A: :."kkooa0GMM'*3354L00)D 
 AE1 Q;)4t+=>o  		6 " .--.  	{&	 " .--.  	{&	s[   I> 3J" 7A,J %9K AK >
J
JJJ" "KKKK K>=K>c                J   UR                   R                  n[        S:w  aU  SS KnUR	                  UR                  5       S   S   5      n[        SX R                  UR                  UR                  5        SnU R                  (       a  U R                  S   U:  a  SnU R                  R                  S5      n[        S:w  a  [        SU5        U R                  U   R                  5         UR                  U5        U R                  (       a  U R                  S   U:  a  M  U$ )Nr   rk   assign_postFTzassign_post < )r   r'   r
   r8  r9  r:  r   ro  r3  r;  rl   r  r?  add_comment_postr  s          r   r  ScannedComments.assign_post  s    %%**
Q;''(:1(=>DM:{{DMM4;;Wkkdkk!nz9GKKOOA&E{(%0MM% ))+""5) kkdkk!nz9 r   c                b    SR                  S U R                  R                  5        5       5      $ )Nr  c              3  z   #    U  H1  u  pUR                   S :X  d  M  SUS S UR                  5        S3v   M3     g7f)rB  z  rL  r  N)r2  r<  )r  indr  s      r   r  2ScannedComments.str_unprocessed.<locals>.<genexpr>  s9     \5J63affX[m&r#a!&&(2&5Js   ;;r  r=   s    r   str_unprocessedScannedComments.str_unprocessed  s(    ww\T]]5H5H5J\
 	
r   rn  N)r*   r-   r/   r0   )ru   r-   r(   r-   r'   r-   r/   r-   )r~  r-   r/   r-   r  rQ  r  r  )r  r-   r/   r-   )r  r-   r/   r-   )rC   r-   r/   r-   )r   r   r   r   r+   rv  r  r{  r  rF  r  r  r  r  r  r  r  r   r   r   r   rl  rl    sD    "
*$
0":x"
r   rl  c                  ^   ^  \ rS rSrS	U 4S jjrS
S jrSS jrSS jrSS jrSS jr	Sr
U =r$ )RoundTripScannerSCi  c                R   > [         TU ]  " U0 UD6  U R                  c   eS U l        g r   )rX  r+   r5   r  )r*   argr   rZ  s      r   r+   RoundTripScannerSC.__init__  s.    #$${{&&& r   c                   U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  [        U R                  5      S:  a  [	        U R                  S   [
        5      (       a)  U R                  R                  U R                  S   5        O(U R                  R                  U R                  S   5        U =R                  S-  sl	        U R                  R                  S5      $ g rj   )r]   r^   r;   rC   r_   r   r  r  r  rE   rl   r=   s    r   rm   RoundTripScannerSC.get_token  s    ##%%""$ ##%%t{{a$++a.-88))$++a.9((Q8";;??1%%  r   c                J   U R                   c   [        5       =U R                  l        U l         U R                  (       a  g[        U R                  5      S:X  a  gU R                  5         U R                  5       U R                  :X  a  g[        U R                  5      S:  a  gU R                  S   R                  R                  U R                  S   R                  R                  :X  a  g [        S:w  a`  [        S[        U R                  5      5        U R                   H  n[        U5        M     [        U R                   R                  5       5        U R                   R                  U R                  S   5        U R                   R!                  U R                  5        g)NFr   Tr  rA   z-x--)r  rl  r5   parsed_commentsrB   r;   rC   rp   rq   rE   r   r'   r
   r   r  r  r  )r*   r  s     r   r]   #RoundTripScannerSC.need_more_tokens  s+   == :I:KKDKK'$-99t{{q  	'')((*d.?.??t{{a;;q>$$))T[[_-G-G-L-LL{DKK 01AAJ % 5578  Q0  -r   c                   U R                   R                  nU R                   R                  nU R                   R                  S:X  a  U" 5       S:X  a  U" 5         U R                   R	                  5       nSnU(       Gdr  U" 5       S:X  a  U" 5         U" 5       S:X  a  M  U" 5       nUS:X  a  U R                   R	                  5       nUnU" 5         U[
        ;  a*  U" 5       nUS:X  a  US-  nOXu-  nU" 5         U[
        ;  a  M*  UR                  S:X  a1  U R                  R                  XvR                  UR                  5        O2U R                  R                  XvR                  UR                  5        SnU R                  5         U R                  (       d  S	U l        g [        U R                  5       5      (       a)  U R                  (       d  S	U l        U R                  5         g S	nU(       d  GMr  g )
Nr   rA  FrB  rC  ry   r  r  T)rS   r   r   r&   r   rD  r(   r  r{  r'   rv   scan_empty_or_full_line_commentsr>   rH   r   rE  r'  )	r*   r=  rF  r   rG  r   comment_start_markru   r  s	            r   r   %RoundTripScannerSC.scan_to_next_token  s   kkkk!!;;!cex&7E[[))+
%3, %3,BSy%)[[%9%9%;"(BTz  4MGE ( $$)MM77!:!:<N<S<S MM11!:!:<N<S<S !G557,0D)D((*++,0D)557 i %j r   c                ~   U R                   R                  5       nUR                  S:X  d   eSnS nS nU R                   R                  5       n US;   a  U R                   R	                  S5      S:X  a  U R                   R                  S5        OU R                   R                  5         Ub8  US-  nU R                  R                  X4R                  UR                  5        S nO5US-  nU R                  R                  X!R                  UR                  5        SnU R                   R                  5       nU R                   R                  5       nGM  Uc/  US;   a  X%-  nO(US:X  a  U R                   R                  5       nSnOg X5-  nU R                   R                  5         U R                   R                  5       nGMq  )	Nr   r  r  r  r  r  r   rC  )
rS   r   r(   r   r-  r   r  r{  r'   r  )r*   blmarkblanksru   r)   r   s         r   r  3RoundTripScannerSC.scan_empty_or_full_line_comments	  sq   %%'}}!!![[++;;%%a(F2KK''*KK'')&tOGMM77diiX"GdNFMM00T--/[[%%';LF3Y;;//1D!G KK!!!#B= r   c                j   U R                   R                  nU R                   R                  nSnS nU" 5       S:X  a  XB" 5       -  nU" 5         U" 5       S:X  a  M  U" 5       S:X  aQ  SnU R                   R                  5       nU" 5       [        ;  a!  XR" 5       -  nU" 5         U" 5       [        ;  a  M!  US-  nU" 5       nU[        ;  a*  [        SUSU< 3U R                   R                  5       5      eUb1  U R                  R                  UWR                  UR                  5        U R                  5         g )Nr  rB  rC  r  r  r{  )rS   r   r   r   rD  r   r  rv  r(   r'   rE  )r*   r   r=  rF  r-  ru   r)   r   s           r   r  1RoundTripScannerSC.scan_block_scalar_ignored_line8	  s   kkkk!!eslceOFE esl 5C<G;;'')D%x'35  %x' tOGUX/@G$$&	  MM))'4;;		Jr   )rH   r  )r  r-   r   r-   r/   r0   r  r  r  r  )r   r   r   r   r+   rm   r]   r   r  r  r   r^  r_  s   @r   r  r    s(    
&6=~%$N r   r  N)r   r-   r   r-   r/   r-   )'
__future__r   ruamel.yaml.errorr   r   ruamel.yaml.tokensruamel.yaml.docinfor   r   ruamel.yaml.compatr	   r
   r   r   typingr-   DictOptionalListUnionr  Tuple__all__rD  r.  r<  r   r   r!   r   r   r  r  r1  rT  rb  rg  rl  r  r   r   r   <module>r     s    "< ;   , M M : $0 
 
Q;$	? 	 x xv3nw nf 	

)
 )
X. ..k ..{ .d
 d
Np pr   