
    9i\                   Z   S SK Jr  S SKJr  S SKJs  Jr  S SK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)MarkedYAMLErrorN)Version)check_anchorname_char_debugnprintnprintf)ScannerRoundTripScannerScannerErroru   
   u    
 	   	c                     [        U 0 UD6$ N)r	   )argskws     S/var/www/html/land-doc-ocr/venv/lib/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getattrr1   reset_scanner
first_time)r'   r2   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)doner9   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysyaml_versiontag_directivesr:   s    r   r4   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hasattrr2   reader_readerr:   s    r   rP   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                  $ rK   )rO   r2   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_tokensr8   r@   
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   )rZ   r[   r8   r@   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      )rZ   r[   r8   r@   rB   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)r?   r8   r@   stale_possible_simple_keysnext_possible_simple_keyrB   r:   s    r   rZ   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 %-.[{]},?:*&!|>'"z!while scanning for the next tokenzfound character z that cannot start any token)%scan_to_next_tokenrs   rm   unwind_indentrP   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'   rr   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   )rF   r!   )r'   min_token_numberlevelkeys       r   rn    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 ':')	listrF   r$   rP   r#   r"   r   r&   r   )r'   r   r   s      r   rm   "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;   rC   rP   r%   rE   remove_possible_simple_keyrB   r8   r@   r   r#   r$   r   rF   )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;   rF   r"   r   r&   rP   r   )r'   r   s     r   r   "Scanner.remove_possible_simple_key{  sr    ??d777++DOO<C||"1HH1KK((*	  ))$//: 8r   c                P   [        U R                  5      (       a  g U R                  U:  a{  U R                  R	                  5       nU R
                  R                  5       U l        U R                  R                  [        R                  " X"5      5        U R                  U:  a  Mz  g g r   )
boolr;   rC   rP   r   rD   ri   r@   appendBlockEndToken)r'   r%   r&   s      r   r   Scanner.unwind_indent  su        kkF";;'')D,,**,DKKKv33D?@ kkF"r   c                |    U R                   U:  a,  U R                  R                  U R                   5        Xl         gg)NTF)rC   rD   r   )r'   r%   s     r   
add_indentScanner.add_indent  s/    ;;LL, Kr   c                    U R                   R                  5       nU R                  R                  [        R                  " XU R                   R
                  S95        g )N)encoding)rP   r   r@   r   StreamStartTokenr   r'   r&   s     r   rA   Scanner.fetch_stream_start  s?     {{##%6224H\H\]^r   c                   U R                  S5        U R                  5         SU l        0 U l        U R                  R                  5       nU R                  R                  [        R                  " X5      5        SU l	        g )Nr>   FT)
r   r   rE   rF   rP   r   r@   r   StreamEndTokenr?   r   s     r   r   Scanner.fetch_stream_end  sb    2'') %$&!{{##%600<=	r   c                    U R                  S5        U R                  5         SU l        U R                  R	                  U R                  5       5        g )Nr>   F)r   r   rE   r@   r   scan_directiver:   s    r   r   Scanner.fetch_directive  sC    2 	'') % 	4..01r   c                B    U R                  [        R                  5        g r   )fetch_document_indicatorr@   DocumentStartTokenr:   s    r   r   Scanner.fetch_document_start  s    %%f&?&?@r   c                B    U R                  [        R                  5        g r   )r   r@   DocumentEndTokenr:   s    r   r   Scanner.fetch_document_end  s    %%f&=&=>r   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 )Nr>   F   )r   r   rE   rP   r   forwardr@   r   )r'   
TokenClass
start_markend_marks       r   r    Scanner.fetch_document_indicator  su    2 	'') % [[))+
A;;''):j;<r   c                @    U R                  [        R                  SS9  g )Nrz   to_push)fetch_flow_collection_startr@   FlowSequenceStartTokenr:   s    r   r   !Scanner.fetch_flow_sequence_start  s    (()F)FPS(Tr   c                @    U R                  [        R                  SS9  g )Nr{   r   )r   r@   FlowMappingStartTokenr:   s    r   r    Scanner.fetch_flow_mapping_start  s    (()E)Es(Sr   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   r9   r   rE   rP   r   r   r@   )r'   r   r   r   r   s        r   r   #Scanner.fetch_flow_collection_start  su    %%'  ) $[[))+
;;''):j;<r   c                B    U R                  [        R                  5        g r   )fetch_flow_collection_endr@   FlowSequenceEndTokenr:   s    r   r   Scanner.fetch_flow_sequence_end  s    &&v'B'BCr   c                B    U R                  [        R                  5        g r   )r   r@   FlowMappingEndTokenr:   s    r   r   Scanner.fetch_flow_mapping_end  s    &&v'A'ABr   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   r9   ri   
IndexErrorrE   rP   r   r   r@   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                  [
        R                  " X5      5        g r   )rE   r   rP   r   r   r@   r   FlowEntryToken)r'   r   r   s      r   r   Scanner.fetch_flow_entry  sg     $'')[[))+
;;'')600FGr   c                   U R                   (       d  U R                  (       d&  [        S S SU R                  R	                  5       5      eU R                  U R                  R                  5      (       aI  U R                  R	                  5       nU R                  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                  [        R                  " X#5      5        g )Nz%sequence entries are not allowed hereT)r;   rE   r   rP   r   r   r%   r@   r   BlockSequenceStartTokenr   r   BlockEntryTokenr'   r&   r   r   s       r   r   Scanner.fetch_block_entry  s    ((";KK((*	  t{{1122{{++-""6#A#A$#MN  $'') [[))+
;;'')611*GHr   c                   U R                   (       d  U R                  (       d&  [        S S SU R                  R	                  5       5      eU R                  U R                  R                  5      (       aI  U R                  R	                  5       nU R                  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                  [        R                  " X#5      5        g )Nz!mapping keys are not allowed here)r;   rE   r   rP   r   r   r%   r@   r   BlockMappingStartTokenr   r   KeyTokenr   s       r   r   Scanner.fetch_key8  s     (("$ CT[[EYEYE[ 
 t{{1122{{++-""6#@#@#LM %)OO 3 	'') [[))+
;;'')6??:@Ar   c                Z   U R                   U R                  ;   Ga!  U R                  U R                      nU R                  U R                   	 U R                  R                  UR                  U R
                  -
  [        R                  " UR                  UR                  5      5        U R                   (       d|  U R                  UR                  5      (       a\  U R                  R                  UR                  U R
                  -
  [        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                   (       ds  U R                  U R                  R                  5      (       aI  U R                  R                  5       nU R                  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                  [        R$                  " X45      5        g )NFz#mapping values are not allowed here)r;   rF   r@   insertr!   rB   r   r&   r   r%   r   rE   r   rP   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4foochhPSPXPX6Y ????3::..KK&&((4+<+<<55chhI %*D! ?? ,,&=,,.	  ????4;;#5#566;;//1DKK&&v'D'DT'PQ )-$7D! ++- [[))+
;;'')6,,ZBCr   c                    U R                  5         SU l        U R                  R                  U R	                  [        R
                  5      5        g r   )r   rE   r@   r   scan_anchor
AliasTokenr:   s    r   r   Scanner.fetch_alias  s9    %%' %4++F,=,=>?r   c                    U R                  5         SU l        U R                  R                  U R	                  [        R
                  5      5        g r   )r   rE   r@   r   r  AnchorTokenr:   s    r   r   Scanner.fetch_anchor  s9    %%' %4++F,>,>?@r   c                    U R                  5         SU l        U R                  R                  U R	                  5       5        g r   )r   rE   r@   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   )rE   r   r@   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   rE   r@   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   rE   r@   r   
scan_plainr:   s    r   r   Scanner.fetch_plain  s1    %%' !&4??,-r   c                :    U R                   R                  S:X  a  gg )Nr   T)rP   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rP   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  r.  r   c                F    U R                   R                  S5      [        ;   $ )Nrh   )rP   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      [        ;   $ )NTrh   )r   r;   rP   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                  (       aP  [        U R                  S   [        R                  5      (       a$  U R                  R                  S5      [        ;  a  ggU R                  R                  S5      [        ;   $ )Nrh   rh   Tr>   rz   rh   F)
rV   r   r;   r9   rP   r   r,  r@   r\   r   r:   s    r   r   Scanner.check_value  s    **f4DOO$$ % DOO$$$$R(C/{{''*2DD$ E 	 [[ZBARAR%S%S{{''*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;   $ )Nr7  u      	
  -?:,[]{}#&*!|>'"%@`rh   rx   z?:Tr   )rP   r   rV   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)rP   r   r   r#   _THE_ENDr;   scan_line_breakrE   )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                \   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        [        R                  " XEX65      $ )NYAMLTAG)rP   r   r   r   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuerB  scan_directive_ignored_liner@   DirectiveToken)r'   r;  rD  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$$T*GGr   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-_:.rh   while scanning a directive4expected alphabetic or numeric character, but found      
  )rP   r   r   r   r+  r   )r'   r   lengthr;  r   rR  s         r   rL  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                  $ )Nr@  ry   r[  z#expected a digit or '.', but found r]  r>   )rP   r   r   scan_yaml_directive_numberr   r   rG   r   r2   	doc_infosdoc_version)r'   r   r;  rD  majorminors         r   rM  !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$ )NrU  rV  r[  zexpected a digit, but found r   rh   )rP   r   r   r   r   r+   r+  )r'   r   r;  rD  r   r^  rR  s          r   ra  "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$ )Nr@  )rP   r   r   scan_tag_directive_handlescan_tag_directive_prefixrH   r   )r'   r   r;  rD  handler+  ret_vals          r   rN   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	directiver@  r[  expected ' ', but found )scan_tag_handlerP   r   r   r   r'   r   rR  r   s       r   rj  !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$ )Nrp  r]  r[  rq  )scan_tag_urirP   r   r   r   rs  s       r   rk  !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 )Nr@  rA  r[  .expected a comment or a line break, but found rP   r   r   rB  r   r   rC  )r'   r   r;  rD  r   s        r   rO  #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   rh   while scanning an r\  u     	
  ?:,[]{}%@`)rP   r   r   r   r   r   r+  )
r'   r   r;  r   	indicatorrQ  r^  r   rR  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
[        R                  " XU
5      $ )Nrh   r   z!!<   tagr   zwhile parsing a tagzexpected '>' but found Fr]  Tzwhile scanning a tagrq  )
rP   r   r   r   rv  r   r,  rr  r@   TagToken)r'   r;  r   r   short_handlerl  suffixr^  
use_handlerR  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$$&	   ;;'')u(;;r   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        [*        R,                  " SR/                  U5      SXmU5      nU R                  b/  [        U R                  SS5      nUc  U	b  UR1                  U	/5        [3        U5      S:  GaE  U R                  bh  [        U R                  SS 5      nUbN  UR4                  [3        U5      -
  nU H0  nUS   S:X  d   eU R6                  R9                  USU5        US-  nM2     U R;                  5       nU(       a@  UR!                  SUS   R                  -  US   -   5        U R;                  5       nU(       a  M@  U R                  bl  [        U R                  SS5      nUcR  U R                   R                  5       n[*        R<                  " SR/                  U5      UU5      nUR?                  U5        U$ )Nr   TFrh   z|>r7  0top_level_block_style_scalar_no_indent_error_1_1 rv   r   r   
r@  r   r   comment_handlingr>   ) rP   r   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_linerC   rV   r3   r2   scan_block_scalar_indentationmaxscan_block_scalar_breaksr%   extendrB  r   r+  rC  r   r   r@   ScalarTokenjoinadd_pre_commentsr8   r$   commentsadd_blank_liner   CommentTokenadd_post_comment)r'   r  rtr;  foldedchunksr   chomping	incrementblock_scalar_comment
min_indentbreaks
max_indentr   rC   
line_breakleading_non_spacer^  trailingtokencomment_handlerr$   xrr   comment_end_marks                            r   r  Scanner.scan_block_scalarK  sJ   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# ""2776?E:QVW;;"%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"* (,{{';';'=$$11"''(2C2:2BDG **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 )rP   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  r@  rA  r  ry  rz  )r'   r   r;  rD  r+  rr   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$ )Nr>   r       
  r@  z9more indented follow up line than first in a block scalar)rP   r   r   r   r%   r   rC  r   )r'   r;  rD  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$ )Nr@  
   
  )rP   r   r   r   r%   r   rC  )r'   rC   r  r;  rD  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                f   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[        R                  " SR                  U5      SXWU5      $ )Nr   TFr  )
rP   r   r   r   r  scan_flow_scalar_non_spacesscan_flow_scalar_spacesr@   r  r  )r'   r  doubler;  r  r   quoter   s           r   r!  Scanner.scan_flow_scalar;  s     C<FFkk[[))+
d66vJKeunMM$66vJKMM$::6NO eun 	;;'')!!"''&/5*PUVVr   rU  rv   rY  r  bt	nr  vfrer@  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    
'"\ 	  rh   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 )rP   r   r   r   r+  ESCAPE_REPLACEMENTSESCAPE_CODESranger   r   r+   chrrC  r  scan_flow_scalar_breaks)
r'   r  r   r  r;  rD  r^  r   kcodes
             r   r  #Scanner.scan_flow_scalar_non_spacesj  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   rh   rv   while scanning a quoted scalarzfound unexpected end of streamr  r  r@  )
rP   r   r+  r   r   r   rC  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)  r0  r  z#found unexpected document separatorr   r  )	rP   r   r   r+  r,  r   r   r   rC  )r'   r  r   r  r;  rD  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  [        R                   " SR#                  U5      SXE5      n
U R$                  b  ['        U R$                  SS5      nUcL  U(       aC  US   S:X  a:  [        R(                  " 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.                  R1                  SSU5        US-  nM/     U
$ )Nrh   Tr   rA  Fr   r   r7  z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.r  r  r  )rP   r   r   r   rC   r,  rV   r;   r   rE   r  r   r+  scan_plain_spacesr%   r@   r  r  r2   r3   r  r  r$   r  r  )r'   r;  rD  r  r   r   rC   spacesr^  r   r  r  rr   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 ""2776?D*O ;;"%dkk3EuMO&fQi4/$11"''&/D2H*_G**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   r@  rh   r  Tr   r)  r0  r  r  )	rP   r   r   r+  rC  rE   r,  r   r  )r'   rC   r   r;  rD  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 rh   r@  rU  rV  rW  rX  rY  rZ  z-_zexpected '!' but found )rP   r   r   r   r   r+  )r'   rQ  r   r;  r   r^  rR  s          r   rr  Scanner.scan_tag_handleR  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   rU  rV  rW  rX  rY  rZ  z-;/?:@&=+$,_.!~*'()[]%r7  rA  rw   rh   zwhile parsing an zexpected URI, but found r  )
rP   r   rV   r   r+  r   scan_uri_escapesr   r   r  )r'   rQ  r   r;  r  r^  r   s          r   rv  Scanner.scan_tag_urir  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)Nrw   r  r  r  @expected URI escape sequence of 2 hexdecimal numbers, but found r  utf-8rP   r   r   r   r  r   r   r+   r+  bytesdecodeUnicodeDecodeErrorstr)
r'   rQ  r   r;  rD  
code_bytesr&   r  rR  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  rP   r   r+  r   )r'   r   s     r   rC  Scanner.scan_line_break  s     [[{{!!!$.##A&  ##%>!KK!Ir   )rM   rE   r?   r5   r9   rC   rD   r2   rF   rH   r@   rB   rG   r   )r2   r*   r,   r-   )r,   r+   r,   r-   r,   r*   r^   r*   r,   r   r,   r   rr   r*   r,   r-   )r%   r*   r,   r-   )r%   r+   r,   r   )r   r*   r,   r-   )r   r*   r   Textr,   r-   )r  r*   r,   r-   r   r*   r,   r*   )r   r*   r,   r-   )r   r*   r,   r*   Fr  r*   r  zOptional[bool]r,   r*   )rC   r+   r,   r*   )r  r*   r,   r*   )r  r*   r   r*   r,   r*   )rC   r*   r   r*   r,   r*   rQ  r*   r   r*   r,   r*   )Tr   r   r   r   r(   propertyr;   r4   rP   rV   r`   rd   rj   rZ   rs   r[   rn   rm   r   r   r   r   rA   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   rL  rM  ra  rN  rj  rk  rO  r  r
  r  r  r  r  r  r!  r  r  r  r  r  r$  r  rr  rv  r  rC  r   r   r   r   r
   r
   G   s    " & &58n ( ( . .
"&
"k
^ 5&=.;"A0_	2A?=UT=DC=$	HI<B6:Dx@A,++:**9.999$ 
H%NH*6!6&&,7\6<p{z0#d2,2 W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rY   )rZ   r[   _gather_commentsr8   r@   r\   r]   s      r   r`   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 rc   )rZ   r[   r  r8   r@   r:   s    r   rd   RoundTripScanner.peek_token  s\    ##%%""$ ##%%t{{a;;q>!r   c                R   / nU R                   (       d  U$ [        U R                   S   [         R                  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   [         R                  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   rh   r  N)r@   r\   r  ri   rB   r   rZ   r[   r8   r  r?   )r'   r  rr   s      r   r  !RoundTripScanner._gather_comments  s-    {{Odkk!nf&9&9::kkooa(G"OOG$##%%""$;;$++a.&*=*=>>!!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a5  [        U R                  S   [        R                  [        R                  [        R                  [        R                  45      (       Ga  [        U R                  S   [        R                  5      (       Ga  U R                  S   R                  R                  U R                  S   R                  R                  :X  Gad  U =R                  S-  sl        U R                  R                  S5      nU R                  5         [        U R                  5      S:  a  [        U R                  S   [        R                  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   [        R                  5      (       a  M  U R                  S   R%                  U5        GO[        U R                  5      S:  Gan  [        U R                  S   [        R                  5      (       GaA  [        U R                  S   [        R                  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   [        R                  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   [        R                  5      (       a  M  U =R                  S-  sl        U R                  R                  S5      $ g )Nr   rh   r@  r  )rZ   r[   r  r8   r@   r\   r  r   r   r   r  r   r$   r   rB   ri   rR  r%   r  )r'   cc1s      r   rj   RoundTripScanner.get_token  s   ##%%""$ ##%%t{{a DKK 1$KKN''):):F<W<W//1 
 t{{1~v/B/BCCKKN++00DKKN4M4M4R4RR!!Q&!KKOOA&&&($++&*z$++a.&J]J]/^/^%%*%+Bggr}}/C/C)CDrxxOAG**,	 $++&*z$++a.&J]J]/^/^
 A//2DKK 1$t{{1~v/A/ABBt{{1~v/B/BCCKKN++00DKKN4M4M4R4RR!!Q&!KKOOA&ALL--A0G0G0L0LLMQ\\0002gg 
 A//2&&($++&*z$++a.&J]J]/^/^%%*%+Bggr}}/C/C)CDrxxOAG**,	 $++&*z$++a.&J]J]/^/^
 ";;??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                  [         R                  " X#U5      5        g )Nr>   r@  )r@   r   r  )r'   rr   rR  r   r   s        r   rs   RoundTripScanner.fetch_comment)  sX    &-#8b	S( #2JE b	S( 	6..u(KLr   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   r?  Fr   r@  rA  rv   r  Tr  )
empty_linerh   )rP   r   r   r#   r;   r   rB  rC  r8   rE   rsplit)	r'   r;  rD  rE  rG  r   r   rr   r   s	            r   r   #RoundTripScanner.scan_to_next_token3  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   rC   RoundTripScanner.scan_line_break{  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  rw   r  r  r  r  r  r  Nr  )r'   rQ  r   r;  rD  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!)rE   Nr  r  r  r  )r$  r   r,   r  )Tr  r  )r   r   r   r   r`   rd   r  rj   rs   r   rC  r  r  r   r   r   r   r   r     s3    %04lM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  )rR  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 )Nr@  r   r   )rR  r$   r%   r0  r   inspectgetframeinfostackr1  linenor2  r3  r4  )r'   rR  r$   r%   r6  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 rg   )	r0  r   r6  r7  r8  r1  r3  r9  r4  )r'   r  r6  r:  s       r   set_usedCommentBase.set_used  sL    	Q;''(:1(=>DDIDJ r   c                    SU l         g )Nr   )r0  r:   s    r   set_assignedCommentBase.set_assigned  s	    	r   c                    U R                    $ r   rR  r:   s    r   __str__CommentBase.__str__  s    **r   c                    U R                   < $ r   rC  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   r@  2r   z<2z "40s)	rR  rQ  r0  r$   r%   r1  r2  r3  r4  )r'   xvrQ  s      r   r:  CommentBase.info  s{    ZZ#yyfTYYKq1Qt{{2.>bC}}oQtzzl!DII;a

|E	
r   )r%   r2  r1  r$   r3  r4  r0  rR  NrR  r*   r$   r*   r%   r*   r,   r-   )r  )r  r*   r,   r-   r
  r,   r   )r   r   r   r   	__slots__r(   r=  r@  rD  rG  r:  r   r   r   r   r/  r/    s%    YI%!
r   r/  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'   rR  r$   r%   	__class__s       r   r(   EOLComment.__init__      f-r   r   rN  r   r   r   r   rQ  r(   r   __classcell__rX  s   @r   rR  rR        D. .r   rR  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   rU  rW  s       r   r(   FullLineComment.__init__  rZ  r   r   rN  r[  r]  s   @r   r`  r`    r^  r   r`  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   rU  rW  s       r   r(   BlankLineComment.__init__  rZ  r   r   rN  r[  r]  s   @r   re  re    r^  r   re  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  rh   r>   )countrR  r  rm  r   r'   rr   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$ rp  )rq  r  re  rm  r   rr  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$ rp  )rq  r`  r  rm  r   rr  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)rJ  r@  N)r:  ).0r9  r  s      r   	<genexpr>*ScannedComments.__str__.<locals>.<genexpr>&  s'     [EZ	fQZq
3EZs   %'r  r  r  itemsr:   s    r   rD  ScannedComments.__str__#  s7    !kk[T]]EXEXEZ[\]	
r   c                    [        U R                  R                  5       5      S   u  pUS SUR                  5        S3$ )Nr>   rJ  r@  r  )r   r  r  r:  )r'   r9  r  s      r   lastScannedComments.last*  s;    ,,./3	1QVVXJb))r   c                2    [        U R                  5      S:  $ rc   )r8   rm  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   rh   using)r8   rm  r   r6  ri   r7  r8  r   r  rR  r1  r9  r=  )r'   user6  firstr:  s        r   unprocessedScannedComments.unprocessed6  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   rh   
assign_preFTzassign_pre < )r   r$   r   r6  r7  r8  r   rm  r1  r9  ri   r  r=  add_comment_prer'   r  
token_liner6  r:  gobbledr  s          r   r  ScannedComments.assign_preB  s    %%**
Q;''(:1(=>DL*kk4==$++Vkkdkk!nz9GKKOOA&E{/MM% ))+!!%( kkdkk!nz9 r   c                n    U R                   S   n[        U R                  U   [        5      (       d  g SnX*    R
                  R                  U:  d  [        X*    UR                  5      (       aD  US-  nX*    R
                  R                  U:  a  M$  [        X*    UR                  5      (       a  MD  [        S:w  a  [        SU5        [        U5      U:  a@  [        X*    UR                  5      (       a"  [        XS-   *    UR                  5      (       a  g  [        X*    UR                  5      (       a  [        XS-   *    UR                  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*    UR                  5      (       a  [        XS-   *    UR                  UR$                  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N2f = f! [         a    ["        ef = f! [         a    [        S:w  a  [        S5         Nf = f)	Nr   rh   idx1z>>>>>aIndexError1IndexError2ztt-znot implemented EOL)rm  r   r\   r  rR  r   r$   r   r   r   r8   r  r   ri   r=  KEYCMNTadd_comment_eolrq   r   	VALUECMNTtypesysexit)r'   r@   comment_liner|  eol_idxr  r  s          r   
assign_eolScannedComments.assign_eolS  s   	;;q>L $--5zBBTl%%**\9Z4L&++>
 >
 1HC Tl%%**\9Z4L&++>
 >
 Q;FC K#6$<););<<6!G*-v/A/ABB	&,(:(:;;
qz"FOOA A."kkooa0GMM'*335{#@4L00'B 
	&,(:(:;;
qz"V%6%68N8N$OA A."kkooa0GMM'*3354L00)D 
 AE1 Q;)4t+=>o  		6 " .--.  	{&	 " .--.  	{&	s\   J4 ?K A,K 	AL AK> 4
K KKK K;:K;>LL L43L4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   rh   assign_postFTzassign_post < )r   r$   r   r6  r7  r8  r   rm  r1  r9  ri   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)r@  z  rJ  r  N)r0  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   rl  N)r'   r*   r,   r-   )rr   r*   r%   r*   r$   r*   r,   r*   )r|  r*   r,   r*   r  rO  r  r  )r  r*   r,   r*   )r  r*   r,   r*   )r@   r*   r,   r*   )r   r   r   r   r(   rt  r  ry  r}  rD  r  r  r  r  r  r  r  r   r   r   r   rj  rj    sD    "
*$
0":x"
r   rj  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   )rV  r(   r2   r  )r'   argr   rX  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   [        R
                  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 rg   )rZ   r[   r8   r@   r\   r   r  r  r  rB   ri   r:   s    r   rj   RoundTripScannerSC.get_token  s    ##%%""$ ##%%t{{a$++a.&*>*>??))$++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  r>   z-x--)r  rj  r2   parsed_commentsr?   r8   r@   rm   rn   rB   r   r$   r   r   r  r  r  )r'   r  s     r   rZ   #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   r?  Fr@  rA  rv   r  r  T)rP   r   r   r#   r   rB  r%   r  ry  r$   rt   scan_empty_or_full_line_commentsr;   rE   r   rC  r%  )	r'   r;  rD  r   rE  r   comment_start_markrr   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   rA  )
rP   r   r%   r   r+  r   r  ry  r$   r  )r'   blmarkblanksrr   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  r@  rA  r  r  ry  )rP   r   r   r   rB  r   r  rt  r%   r$   rC  )r'   r   r;  rD  r+  rr   r&   r   s           r   r  1RoundTripScannerSC.scan_block_scalar_ignored_line;	  s   kkkk!!eslceOFE esl 5C<G;;'')D%x'35  %x' tOGUX/@G$$&	  MM))'4;;		Jr   )rE   r  )r  r*   r   r*   r,   r-   r  r  r
  r  )r   r   r   r   r(   rj   rZ   r   r  r  r   r\  r]  s   @r   r  r    s(    
&6=~%$N r   r  )r   r*   r   r*   r,   r*   )'
__future__r   ruamel.yaml.errorr   ruamel.yaml.tokensyamlr@   ruamel.yaml.docinfor   ruamel.yaml.compatr   r   r   r	   typingr*   DictOptionalListUnionr  Tuple__all__rB  r,  r:  r   r   r   r
   r   r  r  r/  rR  r`  re  rj  r  r   r   r   <module>r     s    "< . # # ' M M : $0 
 
Q;$	? 	 z zz3ow oh 	

)
 )
X. ..k ..{ .d
 d
Np pr   