
    jj\                      d dl mZ d dlmZ d dlmc mZ d dlmZ d dl	m
Z
mZmZmZ 	 g dZd	Zd
ZdZed k    rd%dZ G d de          Z G d d          Z G d d          Z G d de          Zd Zd Z  G d d          Z! G d de!          Z" G d de!          Z# G d d e!          Z$ G d! d"          Z% G d# d$e          Z&dS )&    )annotations)MarkedYAMLErrorN)Version)check_anchorname_char_debugnprintnprintfF)AnyDictOptionalListUnionTextTuple)ScannerRoundTripScannerScannerErroru   
   u    
 	   	argsr
   kwreturnc                     t          | i |S N)r	   )r   r   s     c/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/ruamel/yaml/scanner.pyxprintfr   1   s    ####    c                      e Zd ZdS )r   N)__name__
__module____qualname__ r   r   r   r   5   s        Dr   r   c                      e Zd ZddZdS )	SimpleKeytoken_numberr
   requiredindexintlinecolumnmarkr   Nonec                Z    || _         || _        || _        || _        || _        || _        d S r   )r$   r%   r&   r(   r)   r*   )selfr$   r%   r&   r(   r)   r*   s          r   __init__zSimpleKey.__init__<   s3     ) 
				r   N)r$   r
   r%   r
   r&   r'   r(   r'   r)   r'   r*   r
   r   r+   )r   r   r    r.   r!   r   r   r#   r#   9   s(             r   r#   c                      e Zd ZdddZedd            Zdd	Zedd
            Zedd            ZddZ	ddZ
ddZddZddZddZddZddZddZddZddZddZddZddZddZddZdd Zdd"Zdd#Zdd$Zdd'Zdd(Zdd)Zdd*Z dd+Z!dd,Z"dd-Z#dd.Z$dd/Z%dd0Z&dd1Z'dd2Z(dd3Z)dd5Z*dd6Z+dd7Z,dd8Z-dd9Z.dd:Z/dd;Z0dd<Z1dd=Z2dd>Z3dd?Z4dd@Z5ddAZ6ddBZ7ddDZ8ddEZ9ddFZ:ddGZ;ddHZ<ddIZ=ddJZ>ddKZ?ddLZ@dddPZAddQZBddRZCddSZDddUZEddVZFi dWdXdYdZd[d\d]d^d^d^d_d`dadbdcdddedfdgdhdididjdjdkdkdldldmdndodpdqdrdsdtiZGdudvdwdxZHddzZIdd{ZJdd|ZKdd}ZLdd~ZMddZNddZOddZPddZQdS )r   Nloaderr
   r   r+   c                    || _         | j         "t          | j         dd          | | j         _        |                                  d| _        dS )zInitialize the scanner.N_scannerF)r0   getattrr2   reset_scanner
first_time)r-   r0   s     r   r.   zScanner.__init__H   sM     ;"wt{J'M'M'U#'DK r   r'   c                *    t          | j                  S r   )lenflow_contextr-   s    r   
flow_levelzScanner.flow_levelY   s    4$%%%r   c                    d| _         g | _        g | _        |                                  d| _        d| _        g | _        d| _        i | _        d | _	        g | _
        d S )NFr   T)doner8   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysyaml_versiontag_directivesr9   s    r   r4   zScanner.reset_scanner]   sv    	 )+ "$ 	!!!   #%, !% 57!!%57r   c                    	 | j         S # t          $ rB t          | j        d          r| j        j        | _         n| j        j        | _         | j         cY S w xY wNtyp)_scanner_readerAttributeErrorhasattrr0   reader_readerr9   s    r   rM   zScanner.reader   sk    	('' 	( 	( 	(t{E** ;'+{'9$$'+{':$''''	(s   	 A	AAc                f    t          | j        d          r| j        j        j        S | j        j        S rH   )rL   r0   resolverprocessing_versionr9   s    r   scanner_processing_versionz"Scanner.scanner_processing_version   s/    4;&& 	;;'::{--r   choicesboolc                    |                                  r(|                                  |                                  (t          | j                  dk    r'|sdS |D ] }t	          | j        d         |          r dS !dS Nr   TF)need_more_tokensfetch_more_tokensr7   r>   
isinstancer-   rS   choices      r   check_tokenzScanner.check_token   s    ##%% 	%""$$$ ##%% 	%t{a t!    dk!nf55  44 ur   c                    |                                  r(|                                  |                                  (t          | j                  dk    r| j        d         S d S Nr   )rW   rX   r7   r>   r9   s    r   
peek_tokenzScanner.peek_token   sg    ##%% 	%""$$$ ##%% 	%t{a;q>!  r   c                   |                                  r(|                                  |                                  (t          | j                  dk    r*| xj        dz  c_        | j                            d          S d S Nr      )rW   rX   r7   r>   r@   popr9   s    r   	get_tokenzScanner.get_token   s    ##%% 	%""$$$ ##%% 	%t{a";??1%%%  r   c                    | j         rdS t          | j                  dk    rdS |                                  |                                 | j        k    rdS dS )NFr   T)r=   r7   r>   stale_possible_simple_keysnext_possible_simple_keyr@   r9   s    r   rW   zScanner.need_more_tokens   sc    9 	5t{q  4 	'')))((**d.???4ur   commentc                    t           r   )NotImplementedError)r-   rh   s     r   fetch_commentzScanner.fetch_comment   s    !!r   c                   |                                  }||                     |          S |                                  |                     | j        j                   | j                                        }|dk    r|                                 S |dk    r(|                                 r| 	                                S |dk    r(| 
                                r|                                 S |dk    r(|                                 r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |d	k    r|                                 S |dk    r(|                                 r|                                 S |d
k    r(|                                 r|                                 S |dk    r(|                                 r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r|                                 S |dk    r| j        s|                                 S |dk    r| j        s|                                 S |dk    r|                                 S |dk    r|                                  S | !                                r| "                                S tG          dd d|d| j        $                                          )N %-.[{]},?:*&!|>'"z!while scanning for the next tokenzfound character z that cannot start any token)%scan_to_next_tokenrk   rf   unwind_indentrM   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-   rh   chs      r   rX   zScanner.fetch_more_tokens   s]   ))++%%g...''))) 	4;-... [ ::((*** 99--//9''))) 9922449,,... 9900229**,,, 9911333 9900222 99//111 99..000 99((*** 99//119))+++ 99))9>>### 99))++9##%%% 99##%%% 99$$&&& 99>>### 99T_9%%''' 99T_9$$&&& 99$$&&& 99$$&&&  	&##%%% /ArAAAK  ""	
 
 	
r   c                `    d }| j         D ]#}| j         |         }||j        |k     r|j        }$|S r   )rD   r$   )r-   min_token_numberlevelkeys       r   rg   z Scanner.next_possible_simple_keyB  sM      . 	4 	4E+E2C'3+;>N+N+N#&#3 r   c                "   t          | j                  D ]y}| j        |         }|j        | j        j        k    s| j        j        |j        z
  dk    r=|j        r.t          d|j        d| j                                                  | j        |= zd S )Ni   while scanning a simple keycould not find expected ':')	listrD   r(   rM   r&   r%   r   r*   r   )r-   r   r   s      r   rf   z"Scanner.stale_possible_simple_keysQ  s     $344 
	5 
	5E+E2Cx4;+++t{/@39/Lt/S/S< &55,,..	   -e4
	5 
	5r   c           	     b   | j          o| j        | j        j        k    }| j        r|                                  | j        t          | j                  z   }t          ||| j        j
        | j        j        | j        j        | j                                                  }|| j        | j         <   d S d S r   )r:   rA   rM   r)   rC   remove_possible_simple_keyr@   r7   r>   r#   r&   r(   r   rD   )r-   r%   r$   r   s       r   save_possible_simple_keyz Scanner.save_possible_simple_keyd  s     &L4;$+:L+L   	=++---,s4;/?/??L! "$$&& C :=D%do666	= 	=r   c                    | j         | j        v rV| j        | j                  }|j        r.t          d|j        d| j                                                  | j        | j         = d S d S )Nr   r   )r:   rD   r%   r   r*   rM   r   )r-   r   s     r   r   z"Scanner.remove_possible_simple_key{  sv    ?d777+DO<C| "1H1K((**	   )$/::: 87r   r)   c                *   t          | j                  rd S | j        |k    rq| j                                        }| j                                        | _        | j                            t          j	        ||                     | j        |k    od S d S r   )
rT   r:   rA   rM   r   rB   rc   r>   appendBlockEndToken)r-   r)   r*   s      r   r   zScanner.unwind_indent  s        	F kF"";''))D,**,,DKKv3D$??@@@ kF""""""r   c                l    | j         |k     r(| j                            | j                    || _         dS dS )NTF)rA   rB   r   )r-   r)   s     r   
add_indentzScanner.add_indent  s8    ;L,,, DK4ur   c                    | j                                         }| j                            t          j        ||| j         j                             d S )N)encoding)rM   r   r>   r   StreamStartTokenr   r-   r*   s     r   r?   zScanner.fetch_stream_start  sJ     {##%%624H\]]]^^^^^r   c                   |                      d           |                                  d| _        i | _        | j                                        }| j                            t          j        ||                     d| _	        d S )Nr<   FT)
r   r   rC   rD   rM   r   r>   r   StreamEndTokenr=   r   s     r   r   zScanner.fetch_stream_end  sy    2''))) %$&!{##%%60t<<===			r   c                    |                      d           |                                  d| _        | j                            |                                            d S )Nr<   F)r   r   rC   r>   r   scan_directiver9   s    r   r   zScanner.fetch_directive  s\    2 	''))) % 	4..0011111r   c                D    |                      t          j                   d S r   )fetch_document_indicatorr>   DocumentStartTokenr9   s    r   r   zScanner.fetch_document_start  s    %%f&?@@@@@r   c                D    |                      t          j                   d S r   )r   r>   DocumentEndTokenr9   s    r   r   zScanner.fetch_document_end  s    %%f&=>>>>>r   
TokenClassc                F   |                      d           |                                  d| _        | j                                        }| j                            d           | j                                        }| j                             |||                     d S )Nr<   F   )r   r   rC   rM   r   forwardr>   r   )r-   r   
start_markend_marks       r   r   z Scanner.fetch_document_indicator  s    2 	''))) % [))++
A;''))::j(;;<<<<<r   c                H    |                      t          j        d           d S )Nrq   to_push)fetch_flow_collection_startr>   FlowSequenceStartTokenr9   s    r   r   z!Scanner.fetch_flow_sequence_start  s%    (()FPS(TTTTTr   c                H    |                      t          j        d           d S )Nrr   r   )r   r>   FlowMappingStartTokenr9   s    r   r   z Scanner.fetch_flow_mapping_start  s$    (()Es(SSSSSr   r   r   c                N   |                                   | j                            |           d| _        | j                                        }| j                                         | j                                        }| j                             |||                     d S NT)r   r8   r   rC   rM   r   r   r>   )r-   r   r   r   r   s        r   r   z#Scanner.fetch_flow_collection_start  s    %%'''  ))) $[))++
;''))::j(;;<<<<<r   c                D    |                      t          j                   d S r   )fetch_flow_collection_endr>   FlowSequenceEndTokenr9   s    r   r   zScanner.fetch_flow_sequence_end  s    &&v'BCCCCCr   c                D    |                      t          j                   d S r   )r   r>   FlowMappingEndTokenr9   s    r   r   zScanner.fetch_flow_mapping_end  s    &&v'ABBBBBr   c                p   |                                   	 | j                                        }n# t          $ r Y nw xY wd| _        | j                                        }| j                                         | j                                        }| j        	                     |||                     d S NF)
r   r8   rc   
IndexErrorrC   rM   r   r   r>   r   )r-   r   poppedr   r   s        r   r   z!Scanner.fetch_flow_collection_end  s    '')))	&**,,FF 	 	 	 D	
 !&[))++
;''))::j(;;<<<<<s   0 
==c                ,   d| _         |                                  | j                                        }| j                                         | j                                        }| j                            t          j        ||                     d S r   )rC   r   rM   r   r   r>   r   FlowEntryToken)r-   r   r   s      r   r   zScanner.fetch_flow_entry  s     $'')))[))++
;''))60XFFGGGGGr   c                h   | j         s| j        s)t          d d d| j                                                  |                     | j        j                  rF| j                                        }| j                            t          j	        ||                     n	 d| _        | 
                                 | j                                        }| j                                         | j                                        }| j                            t          j        ||                     d S )Nz%sequence entries are not allowed hereT)r:   rC   r   rM   r   r   r)   r>   r   BlockSequenceStartTokenr   r   BlockEntryTokenr-   r*   r   r   s       r   r   zScanner.fetch_block_entry  s    	( ";K((**	   t{122 O{++--""6#A$#M#MNNN  $''))) [))++
;''))61*hGGHHHHHr   c                p   | j         s| j        s)t          d d d| j                                                  |                     | j        j                  rF| j                                        }| j                            t          j	        ||                     | j          | _        | 
                                 | j                                        }| j                                         | j                                        }| j                            t          j        ||                     d S )Nz!mapping keys are not allowed here)r:   rC   r   rM   r   r   r)   r>   r   BlockMappingStartTokenr   r   KeyTokenr   s       r   r   zScanner.fetch_key8  s    	N ( "$ CT[EYEYE[E[  
 t{122 N{++--""6#@t#L#LMMM %)O 3 	''))) [))++
;''))6?:x@@AAAAAr   c                >   | j         | j        v r| j        | j                  }| j        | j         = | j                            |j        | j        z
  t          j        |j        |j                             | j         s_|                     |j	                  rE| j                            |j        | j        z
  t          j
        |j        |j                             d| _        n| j         s0| j        s)t          d d d| j                                                  | j         se|                     | j        j	                  rF| j                                        }| j                            t          j
        ||                     | j          | _        |                                  | j                                        }| j                                         | j                                        }| j                            t          j        ||                     d S )NFz#mapping values are not allowed here)r:   rD   r>   insertr$   r@   r   r*   r   r)   r   rC   r   rM   r   r   r   r   
ValueToken)r-   r   r*   r   r   s        r   r   zScanner.fetch_valueS  s   ?d777+DO<C)$/:K 4#44fochPSPX6Y6Y   ? ??3:.. K&&(4+<<5chII   %*D!! ? 
 , &=,,..	   ? R??4;#566 R;//11DK&&v'DT4'P'PQQQ )-$7D! ++--- [))++
;''))6,ZBBCCCCCr   c                    |                                   d| _        | j                            |                     t          j                             d S r   )r   rC   r>   r   scan_anchor
AliasTokenr9   s    r   r   zScanner.fetch_alias  sI    %%''' %4++F,=>>?????r   c                    |                                   d| _        | j                            |                     t          j                             d S r   )r   rC   r>   r   r   AnchorTokenr9   s    r   r   zScanner.fetch_anchor  sI    %%''' %4++F,>??@@@@@r   c                    |                                   d| _        | j                            |                                            d S r   )r   rC   r>   r   scan_tagr9   s    r   r   zScanner.fetch_tag  s@    %%''' %4==??+++++r   c                2    |                      d           d S )Nr{   stylefetch_block_scalarr9   s    r   r   zScanner.fetch_literal      c*****r   c                2    |                      d           d S )Nr|   r   r   r9   s    r   r   zScanner.fetch_folded  r   r   r   c                    d| _         |                                  | j                            |                     |                     d S r   )rC   r   r>   r   scan_block_scalarr-   r   s     r   r   zScanner.fetch_block_scalar  sF     $'')))411%8899999r   c                2    |                      d           d S )Nr}   r   fetch_flow_scalarr9   s    r   r   zScanner.fetch_single      S)))))r   c                2    |                      d           d S )Nr~   r   r   r9   s    r   r   zScanner.fetch_double  r   r   c                    |                                   d| _        | j                            |                     |                     d S r   )r   rC   r>   r   scan_flow_scalarr   s     r   r   zScanner.fetch_flow_scalar  sF    %%''' %4007788888r   c                    |                                   d| _        | j                            |                                            d S r   )r   rC   r>   r   
scan_plainr9   s    r   r   zScanner.fetch_plain  sD    %%''' !&4??,,-----r   c                *    | j         j        dk    rdS d S )Nr   T)rM   r)   r9   s    r   r   zScanner.check_directive  s     ;""4tr   c                    | j         j        dk    rA| j                             d          dk    r#| j                             d          t          v rdS d S )Nr   r   ---TrM   r)   prefixr   _THE_END_SPACE_TABr9   s    r   r   zScanner.check_document_start  R    ;""{!!!$$--$+2B2B12E2EI[2[2[ttr   c                    | j         j        dk    rA| j                             d          dk    r#| j                             d          t          v rdS d S )Nr   r   ...Tr   r9   s    r   r   zScanner.check_document_end  r  r   c                D    | j                             d          t          v S )Nrb   )rM   r   r   r9   s    r   r   zScanner.check_block_entry  s    {""&888r   c                p    t          | j                  rdS | j                            d          t          v S )NTrb   )rT   r:   rM   r   r   r9   s    r   r   zScanner.check_key  s5       	4{""&888r   c                   | j         dk    rt          | j                  rdS nt          | j                  r| j        d         dk    r$| j                            d          t          vrdS nO| j        rHt          | j        d         t          j	                  r#| j                            d          t          vrdS dS | j                            d          t          v S )Nrb   rb   Tr<   rq   rb   F)
rR   rT   r:   r8   rM   r   r   r>   rY   r   r9   s    r   r   zScanner.check_value  s    *f44DO$$ t DO$$ $R(C//{''**2DDD$u E[ %ZBAR%S%S %{''**2DDD$ut{""&888r   c                j   | j         j        } |            }| j        dk    r(|dvp# |d          t          vo|dk    p| j         o|dv S |dvrdS  |d          }|dk    r|t          vrdS |dk    rt          | j                  r|t          vrdS  |d          t          vo|dk    p| j         o|dv S )Nr  u      	
  -?:,[]{}#&*!|>'"%@`rb   ro   z?:Trw   )rM   r   rR   r   r:   rT   
_SPACE_TAB)r-   srpr   ch1s       r   r   zScanner.check_plain  s     kSUU*f44LL A00 H3YFt#6#E2:
 DDD4c!ff99$666499do..93j3H3H4s1vv// 
#I=do-<"*	
r   c                   | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             d}t          }| j        dk    rdnd}|sy |            |v r |              |            |v  |            dk    r" |            |vr |              |            |v|                                 r| j        sd| _        nd}|yd S )Nr      ﻿Fr    #T)rM   r   r   r&   _THE_ENDr:   scan_line_breakrC   )r-   r
  srffound_the_endwhite_spaces         r   r   zScanner.scan_to_next_token%  s   & kk!;!!cceex&7&7CEEE#22ee 
	#%%;&& #%%;&&suu||cee8++CEEE cee8++##%%  1,0D)  
	 tr   c                \   | j         j        }| j         j        }| j                                         } |             |                     |          }d }|dk    r/|                     |          }| j                                         }nz|dk    r/|                     |          }| j                                         }nE| j                                         } |            t          vr |              |            t          v|                     |           t          j
        ||||          S )NYAMLTAG)rM   r   r   r   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuer  scan_directive_ignored_liner>   DirectiveToken)r-   r
  r  r   namevaluer   s          r   r   zScanner.scan_directiveL  s   kk![))++
''
336>>22:>>E{++--HHU]]11*==E{++--HH{++--H#%%x'' #%%x''((444$T5*hGGGr   r   c                T   d}| j         j        } ||          }d|cxk    rdk    s$n d|cxk    rdk    sn d|cxk    rdk    sn |dv rA|d	z  } ||          }d|cxk    rdk    n d|cxk    rdk    ,n d|cxk    rdk    ;n |dv A|s,t          d
|d|| j                                                   | j                             |          }| j                             |            |            }|dvr,t          d
|d|| j                                                   |S )Nr   09AZazz-_:.rb   while scanning a directive4expected alphabetic or numeric character, but found      
  )rM   r   r   r   r   r   )r-   r   lengthr
  r   r  s         r   r  zScanner.scan_directive_namea  s   kS[[R3#"2"2"2"2s"2"2"2"2cR6F6F6F6F36F6F6F6F"PV,,aKFVB R3#"2"2"2"2s"2"2"2"2cR6F6F6F6F36F6F6F6F"PV,,  	,MrMM$$&&	   ""6**F###SUU...,MrMM$$&&	   r   c                T   | j         j        }| j         j        } |            dk    r |              |            dk    |                     |          } |            dk    r4t	          d|d |            | j                                                    |             |                     |          } |            dvr4t	          d|d |            | j                                                   ||f| _        t          ||          | j        j	        d         _
        | j        S )Nr  rp   r'  z#expected a digit or '.', but found r)  r<   )rM   r   r   scan_yaml_directive_numberr   r   rE   r   r0   	doc_infosdoc_version)r-   r   r
  r  majorminors         r   r  z!Scanner.scan_yaml_directive_value|  s<   kk!ceesllCEEE ceesll//
;;355C<<,?ccee??$$&&	   	//
;;355111,?ccee??$$&&	   #EN07u0E0Eb!-  r   c                   | j         j        }| j         j        } |            }d|cxk    rdk    s.n t          d|d|| j                                                   d}d ||          cxk    rdk    r n n|dz  }d ||          cxk    rdk    n t          | j                             |                    } ||           |S )Nr!  r"  r'  zexpected a digit, but found r   rb   )rM   r   r   r   r   r'   r   )r-   r   r
  r  r   r*  r  s          r   r,  z"Scanner.scan_yaml_directive_number  s   kk!SUUr    S    ,5r55$$&&	   SS[[''''C'''''aKF SS[[''''C''''DK&&v..//Fr   c                ^   | j         j        }| j         j        } |            dk    r |              |            dk    |                     |          } |            dk    r |              |            dk    |                     |          }||f}| j                            |           |S )Nr  )rM   r   r   scan_tag_directive_handlescan_tag_directive_prefixrF   r   )r-   r   r
  r  handler   ret_vals          r   r  z Scanner.scan_tag_directive_value  s    kk!ceesllCEEE ceesll//
;;ceesllCEEE ceesll//
;;6"""7+++r   c                    |                      d|          }| j                                        }|dk    r,t          d|d|| j                                                  |S )N	directiver  r'  expected ' ', but found )scan_tag_handlerM   r   r   r   r-   r   r  r   s       r   r3  z!Scanner.scan_tag_directive_handle  sn    $$[*==[99,1211$$&&	   r   c                    |                      d|          }| j                                        }|dvr,t          d|d|| j                                                  |S )Nr8  r)  r'  r9  )scan_tag_urirM   r   r   r   r;  s       r   r4  z!Scanner.scan_tag_directive_prefix  sq    !!+z::[...,1211$$&&	   r   c                   | j         j        }| j         j        } |            dk    r |              |            dk     |            dk    r, |            t          vr |              |            t          v |            }|t          vr,t	          d|d|| j                                                   |                                  d S )Nr  r  r'  .expected a comment or a line break, but found rM   r   r   r  r   r   r  )r-   r   r
  r  r   s        r   r  z#Scanner.scan_directive_ignored_line  s    kk!ceesllCEEE ceesll355C<<#%%x'' #%%x''SUUX,GGG$$&&	   	r   c                   | j         j        }| j                                         } |            }|dk    rd}nd}| j                                          d} ||          }t	          |          r|dz  } ||          }t	          |          |s/t          d||d|| j                                                   | j                             |          }| j                             |           |dvr/t          d||d|| j                                                   | j                                         }	 ||||	          S )	Nrx   aliasanchorr   rb   while scanning an r(  u     	
  ?:,[]{}%@`)rM   r   r   r   r   r   r   )
r-   r   r
  r   	indicatorr  r*  r   r  r   s
             r   r   zScanner.scan_anchor  s    k[))++
CEE	DDDS[[ $B'' 	aKFVB $B'' 	  	-T--MrMM$$&&	   ""6**F### :::-T--MrMM$$&&	   ;''))z%X666r   c                   | j         j        }| j                                         } |d          }d}|dk    r2d}| j                                          | j         j        } |d          }|dk    rd }| j                             d           |                     d|          } |            dk    r4t          d|d	 |            | j                                                   | j                                          n|t          v rd }|}| j                                          nqd}d
}|dvr|dk    rd}n|dz  } ||          }|dv|}|r|                     d|          }n|}| j                                          |                     d|          } |            }|dvr,t          d|d|| j                                                   ||f}	| j                                         }
t          j	        |	||
          S )Nrb   rz   z!!<   tagr|   zwhile parsing a tagzexpected '>' but found Fr)  Tzwhile scanning a tagr9  )
rM   r   r   r   r=  r   r   r:  r>   TagToken)r-   r
  r   r   short_handler5  suffixr*  
use_handler  r   s              r   r   zScanner.scan_tag  sO   k[))++
SVV99LK!!!+"CQB99FK"""&&uj99Fsuu||")7ccee77K((**	   K!!!!%%%F!FK!!!!FJ55599!%J!S[[ 555 "F &--eZ@@%##%%%&&uj99FSUU...&1211$$&&	    ;''))uj(;;;r   FrtOptional[bool]c                l	   | j         j        }|dk    rd}nd}g }| j                                         }| j                                          |                     |          \  }}|                     |          }	| j        dz   }
|V|
dk     r'|dvs!| j        dk    rt          | j	        dd          rd}
| 
                                \  }}}t          |
|          }n(|
dk     rd}
|
|z   dz
  }|                     |          \  }}d}| j         j        |k    r |            d	k    r|                    |            |            d
v}d} ||          t          vr|dz  } ||          t          v|                    | j                             |                     | j                             |           |                                 }|                     |          \  }}|dv r/|
dk    r)|                                 s|                                 rn| j         j        |k    rq |            d	k    rc|r|r|dk    r|                    d           |r,|dk    r&|r$ |            d
vr|s|                    d           n|                    |           nn| j         j        |k    r |            d	k    g }|dv r|                    |           |du r|                    |           n|dv r|                    |           t+          j        d                    |          d|||          }| j	        0t          | j	        dd          }||	|                    |	g           t3          |          dk    r8| j	        ct          | j	        dd           }|K|j        t3          |          z
  }|D ]1}|d         dk    sJ | j                            |d|           |dz  }2|                                 }|rB|                    d|d         j        z  |d         z              |                                 }|B| j	        ot          | j	        dd          }|W| j                                         }t+          j        d                    |          ||          }|                    |           |S )Nr|   TFrb   z|>r  0top_level_block_style_scalar_no_indent_error_1_1 rm   r   r   
r  r   r   comment_handlingr<   ) rM   r   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_linerA   rR   r3   r0   scan_block_scalar_indentationmaxscan_block_scalar_breaksr)   extendr  r   r   r  r   r   r>   ScalarTokenjoinadd_pre_commentsr7   r(   commentsadd_blank_liner   CommentTokenadd_post_comment)r-   r   rN  r
  foldedchunksr   chomping	incrementblock_scalar_comment
min_indentbreaks
max_indentr   rA   
line_breakleading_non_spacer*  trailingtokencomment_handlerr(   xrh   comment_end_marks                            r   r   zScanner.scan_block_scalarK  sA   kC<<FFF[))++
 	"??
KK)#BB:NN [1_
A~~T!!3v==K!SUZ  >
 
+/+M+M+O+O(FJZ00FFA~~
)+a/F#<<VDDFH
 k F**ssuu}}MM&!!! #U 2F#f++X--! #f++X--MM$+,,V44555K'''--//J#<<VDDFH}}q ,,.. $2I2I2K2K {!V++  (& (Z4%7%7MM$''' .jD005F03355X]K]K]! +c***MM*---- S k F**ssuu}}Z !|##MM*%%%tMM&!!!!&&OOF### "2776??E:xQVWW;"%dk3EuMMO&'3**,@+ABBBx==1{&")$+7I4"P"P".#=3x==8D% " " u}}}}44Q4@@@	--//G 4gaj&7 7'!* DEEE1133  4 {&")$+7I5"Q"Q"* (,{';';'='=$$1"''(2C2C2:2BD DG **7333r   c                   | j         j        }d }d } |            }|dv r|dk    rd}nd}| j                                           |            }|dv rWt          |          }|dk    r)t	          d|d| j                                                   | j                                          n|dv rt          |          }|dk    r)t	          d|d| j                                                   | j                                           |            }|dv r$|dk    rd}nd}| j                                           |            }|d	vr,t	          d|d
|| j                                                   ||fS )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 )rM   r   r   r'   r   r   )r-   r   r
  re  rf  r   s         r   rV  z$Scanner.scan_block_scalar_indicators  s   k	SUU::Syy K!!!B\!!GG	>>&7"Y,,..	   ##%%%<BIA~~"3UK((**	   K!!!BTzz99#HH$H##%%%SUU.../P"PP$$&&	   ""r   c                   | j         j        }| j         j        }d}d } |            dk    r%| |            z  } |              |            dk    % |            dk    r;|} |            t          vr(| |            z  } |              |            t          v( |            }|t          vr,t	          d|d|| j                                                   |                                  |S )NrR  r  r  ru  r?  r@  )r-   r   r
  r  r   rh   r   s          r   rW  z&Scanner.scan_block_scalar_ignored_line  s   kk!ceesllcceeOFCEEE ceesll 355C<<G#%%x''3355  #%%x'' SUUX/GGG$$&&	   	r   c                "   | j         j        }| j         j        }g }d}d}| j                                         } |            dv r |            dk    rS|dk     r| j         j        }|                    |                                            | j                                         }n& |             | j         j        |k    r| j         j        } |            dv |dk    r/||k    r)| j                                         }t          d|          |||fS )Nr<   r       
  r  z9more indented follow up line than first in a block scalar)rM   r   r   r   r)   r   r  r   )r-   r
  r  rd  first_indentrj  r   r   s           r   rX  z%Scanner.scan_block_scalar_indentation  s*   kk!
;''))cee...suu||!###';#5Ld2244555;//11;%
22!%!3J cee... !
\ 9 9--//JKZ   z8++r   rA   c                8   g }| j         j        }| j         j        }| j                                         }| j         j        |k     r6 |            dk    r( |             | j         j        |k     r |            dk    ( |            dv r|                    |                                            | j                                         }| j         j        |k     r6 |            dk    r( |             | j         j        |k     r |            dk    ( |            dv ||fS )Nr  
   
  )rM   r   r   r   r)   r   r  )r-   rA   rd  r
  r  r   s         r   rZ  z Scanner.scan_block_scalar_breaks,  s$   kk!;''))k 6))cceesllCEEE k 6))cceesllcee---MM$..00111{++--H+$v--##%%3,, +$v--##%%3,, cee---
 xr   c                   |dk    rd}nd}| j         j        }g }| j                                         } |            }| j                                          |                    |                     ||                      |            |k    r`|                    |                     ||                     |                    |                     ||                      |            |k    `| j                                          | j                                         }t          j        d	                    |          d|||          S )Nr~   TFrR  )
rM   r   r   r   r[  scan_flow_scalar_non_spacesscan_flow_scalar_spacesr>   r\  r]  )r-   r   doubler
  rd  r   quoter   s           r   r   zScanner.scan_flow_scalar;  s-    C<<FFFk[))++
d66vzJJKKKceeunnMM$66vzJJKKKMM$::6:NNOOO ceeunn 	;''))!"''&//5*hPUVVVr   r!  rm   r%  rT  bt	nrS  vfrer  r~   /\N   _    Lu    Pu    rH        )rp  uUr  c                    g }| j         j        }| j         j        }	 d} ||          dvr|dz  } ||          dv|dk    r8|                    | j                             |                      ||            |            }|s7|dk    r1 |d          dk    r"|                    d            |d           n|r|dk    s|s%|dv r!|                    |            |             n|r|dk    r |              |            }|| j        v r,|                    | j        |                     |             n>|| j        v r| j        |         } |             t          |          D ]H} ||          d	vr9t          d
|d|dd ||          | j         	                                          It          | j                             |          d          }	|                    t          |	                      ||           np|dv r>|                                  |                    |                     ||                     n.t          d
|d|| j         	                                          |S d)NTr   u    
'"\ 	  rb   r}   rH  z"\r  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarzexpected escape sequence of dz hexdecimal numbers, but found    u
   
  zfound unknown escape character )rM   r   r   r   r   ESCAPE_REPLACEMENTSESCAPE_CODESranger   r   r'   chrr  r[  scan_flow_scalar_breaks)
r-   r  r   rd  r
  r  r*  r   kcodes
             r   r}  z#Scanner.scan_flow_scalar_non_spacesj  s   kk!.	F#f++%EEE! #f++%EEE{{dk0088999FB &bCiiCCFFcMMc"""A #R3YYY2;;b!!!  B$JJSUU111MM$":2">???CEEEE4,,,!.r2FCEEE"6]]  3q66)AAA". G *!Lv J !L !LADQ!L !L $ 4 4 6 6# #  B t{11&992>>DMM#d)),,,CKKKK111((***MM$">">vz"R"RSSSS&?"@"@@,,..	   ].	r   c                V   | j         j        }g }d} ||          dv r|dz  } ||          dv | j                             |          }| j                             |            |            }|dk    r)t	          d|d| j                                                   |dv rs|                                 }|                     ||          }	|dk    r|                    |           n|	s|                    d	           |	                    |	           n|                    |           |S )
Nr   r   rb   rm   while scanning a quoted scalarzfound unexpected end of streamr{  rS  r  )
rM   r   r   r   r   r   r  r  r   r[  )
r-   r  r   r
  rd  r*  whitespacesr   rk  ri  s
             r   r~  zScanner.scan_flow_scalar_spaces  sL   kc&kkU""aKF c&kkU""k((00F###SUU::00$$&&	   )))--//J11&*EEFT!!j)))) #c"""MM&!!!!MM+&&&r   c                   g }| j         j        }| j         j        }	 | j                             d          }|dk    s|dk    r; |d          t          v r)t          d|d| j                                                    |            dv r |              |            dv  |            dv r(|                    |                                            n|S )	NTr   r   r  r  z#found unexpected document separatorr   r{  )	rM   r   r   r   r   r   r   r   r  )r-   r  r   rd  r
  r  r   s          r   r  zScanner.scan_flow_scalar_breaks  s    kk!	 [''**F%6U??ABT8T8T"49K((**	   #%%5.. #%%5..suu...d22445555!	r   c                P   | j         j        }| j         j        }g }| j                                         }|}| j        dz   }g }	 d} |            dk    rn~	  ||          }		 |	dk    r ||dz             t
          vrnI|	dk    r| j        d	k    rn7|	t
          v s-| j        s|	dk    r ||dz             t
          v s| j        r|	d
v rn|dz  }w| j        rK|	dk    rE ||dz             dvr5 ||           t          d|d| j                                         d          |dk    rnd| _	        |
                    |           |                    | j                             |                      ||           | j                                         }|                     ||          }|r% |            dk    s| j        s| j         j        |k     rnt          j        d                    |          d||          }
| j        t'          | j        dd          }|P|rM|d         dk    rAt          j        d                    |          dz   ||          }|
                    |           n:|dur6|j        dz   }|D ])}	|	dk    r!| j                            dd|           |dz  }*|
S )Nrb   Tr   r  Frw   ru   rv   r  z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.rR  rU  rS  )rM   r   r   r   rA   r   rR   r:   r   rC   r[  r   r   scan_plain_spacesr)   r>   r\  r]  r0   r3   ra  rb  r(   r_  r`  )r-   r
  r  rd  r   r   rA   spacesr*  r   rn  ro  rh   r(   s                 r   r   zScanner.scan_plain  s&    kk![))++
q
 4	Fsuu||S[[3YY33vz??:L#L#L3YY4#Bf#L#L,,, O - #IIC
OO/AAA B,.)OO!%* #IIC
OO+KKKF"3*K((**#   {{$)D!MM&!!!MM$+,,V44555CKKK{++--H++FJ??F355C<<  ,0K,>,G,Gi4	l "2776??D*hOO ;"%dk3EuMMO& 4fQi4//$1"''&//D2H*V^__G**7333 --!*  " "BTzz44T1dCCC	r   c                   | j         j        }| j         j        }g }d} ||          dv r|dz  } ||          dv | j                             |          }| j                             |            |            }|dv r2|                                 }	d| _        | j                             d          }
|
dk    s|
dk    r |d          t          v rd S g } |            d	v r |            dk    r |             na|                    |                                            | j                             d          }
|
dk    s|
dk    r |d          t          v rd S  |            d	v |	d
k    r|                    |	           n|s|                    d           |                    |           n|r|                    |           |S )Nr   r  rb   r{  Tr   r   r  rx  rS  )	rM   r   r   r   r  rC   r   r   r[  )r-   rA   r   r
  r  rd  r*  r  r   rk  r   ri  s               r   r  zScanner.scan_plain_spaces-  s    kk!c&kkS  aKF c&kkS  k((00F###SUU'''--//J$(D![''**F%6U??ABT8T8TF#%%222355C<<CEEEEMM$"6"6"8"8999![//22F%6U??AJ\@\@\ #%%222 T!!j)))) #c"""MM&!!!! 	'MM+&&&r   r  c                   | j         j        } |            }|dk    r/t          d||d|| j                                                   d} ||          }|dk    rd|cxk    rdk    s$n d|cxk    rd	k    sn d
|cxk    rdk    sn |dv rA|dz  } ||          }d|cxk    rdk    n d|cxk    rd	k    ,n d
|cxk    rdk    ;n |dv A|dk    rI| j                             |           t          d||d|| j                                                   |dz  }| j                             |          }| j                             |           |S )Nrz   rD  zexpected '!', but found rb   r  r!  r"  r#  r$  r%  r&  z-_zexpected '!' but found )rM   r   r   r   r   r   )r-   r  r   r
  r   r*  r  s          r   r:  zScanner.scan_tag_handleR  s    kSUU99-T--1211$$&&	   S[[99""""s""""cR&6&6&6&63&6&6&6&6#:J:J:J:Js:J:J:J:JbTXjj!S[[ """"s""""cR&6&6&6&63&6&6&6&6#:J:J:J:Js:J:J:J:JbTXjj Syy##F+++"1114b44K((**	   aKF""6**F###r   c                |   | j         j        }g }d} ||          }d|cxk    rdk    s5n d|cxk    rdk    s&n d|cxk    rdk    sn |dv s| j        d	k    r|d
k    r|dk    rs|                    | j                             |                     | j                             |           d}|                    |                     ||                     n|dz  } ||          }d|cxk    rdk    n d|cxk    rdk    n d|cxk    rdk    n |dv | j        d	k    r|d
k    |dk    rI|                    | j                             |                     | j                             |           d}|s/t          d||d|| j                                                   d	                    |          S )Nr   r!  r"  r#  r$  r%  r&  z-;/?:@&=+$,_.!~*'()[]%r  r  rn   rb   zwhile parsing an zexpected URI, but found rR  )
rM   r   rR   r   r   r   scan_uri_escapesr   r   r]  )r-   r  r   r
  rd  r*  r   s          r   r=  zScanner.scan_tag_urir  sD    kS[[2bCbC---0699rSyySyydk0088999##F+++d33D*EEFFFF!VB 2bCbC---0699rSyy Q;;MM$+,,V44555K'''F 	,D,,1211$$&&	   wwvr   c           	        | j         j        }| j         j        }g }| j                                         } |            dk    r |             t	          d          D ]G} ||          dvr8t          d||d ||          | j                                                   H|                    t          | j                             d          d                      |d            |            dk    	 t          |          
                    d          }n4# t          $ r'}	t          d||t          |	          |          d }	~	ww xY w|S )Nrn   rH  r  rD  @expected URI escape sequence of 2 hexdecimal numbers, but found r  utf-8rM   r   r   r   r  r   r   r'   r   bytesdecodeUnicodeDecodeErrorstr)
r-   r  r   r
  r  
code_bytesr*   r  r  excs
             r   r  zScanner.scan_uri_escapes  s~   kk! "
{##%%ceesllCEEE1XX  3q66!999&5T55"0%(SVV0 0,,..   : c$+"4"4Q"7"7<<===CFFF ceesll	Z*%%,,W55EE! 	Z 	Z 	Z<D<<j#c((TXYYY	Zs   8"D 
E%"EEc                &   | j                                         }|dv rT| j                             d          dk    r| j                             d           n| j                                          dS |dv r| j                                          |S dS )N   
rH  
rS       rR  rM   r   r   r   )r-   r   s     r   r  zScanner.scan_line_break  s     [{!!!$$..##A&&&&##%%%4>!!K!!!Irr   r   )r0   r
   r   r+   )r   r'   r   r+   r   r
   rS   r
   r   rT   r   rT   rh   r
   r   r+   )r)   r
   r   r+   )r)   r'   r   rT   )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
   Fr   r
   rN  rO  r   r
   )rA   r'   r   r
   )r   r
   r   r
   )r  r
   r   r
   r   r
   )rA   r
   r   r
   r   r
   r  r
   r   r
   r   r
   )Rr   r   r    r.   propertyr:   r4   rM   rR   r\   r_   rd   rW   rk   rX   rg   rf   r   r   r   r   r?   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r,  r  r3  r4  r  r   r   r   rV  rW  rX  rZ  r   r  r  r}  r~  r  r   r  r:  r=  r  r  r!   r   r   r   r   G   s{                " & & & X&58 58 58 58n ( ( ( X( . . . X.
 
 
 
" " " "& & & &
 
 
 
" " " "k
 k
 k
 k
^       5 5 5 5&= = = =.; ; ; ;"A A A A0   _ _ _ _   	2 	2 	2 	2A A A A? ? ? ?= = = =U U U UT T T T= = = =D D D DC C C C= = = =$	H 	H 	H 	HI I I I<B B B B6:D :D :D :Dx@ @ @ @A A A A, , , ,+ + + ++ + + +: : : :* * * ** * * *9 9 9 9. . . .         9 9 9 99 9 9 99 9 9 9$ 
  
  
  
H% % % %NH H H H*   6! ! ! !6   &            &,7 ,7 ,7 ,7\6< 6< 6< 6<p{ { { { {z0# 0# 0# 0#d   2, , , ,2       W W W W0TV 	V 	V	
 	f 	V 	V 	V 	V 	V 	V 	S 	S 	d 	V  	V!" 	X#$ 	X% * ++L3 3 3 3j   :   .X X X Xt# # # #J   @! ! ! !F   2     r   r   c                  Z    e Zd ZddZddZddZddZddZddZdddZ	dd dZ
d!dZdS )"r   rS   r
   r   rT   c                $   |                                  r(|                                  |                                  (|                                  t          | j                  dk    r'|sdS |D ] }t          | j        d         |          r dS !dS rV   )rW   rX   _gather_commentsr7   r>   rY   rZ   s      r   r\   zRoundTripScanner.check_token  s    ##%% 	%""$$$ ##%% 	%t{a t!    dk!nf55  44 ur   c                    |                                  r(|                                  |                                  (|                                  t          | j                  dk    r| j        d         S d S r^   )rW   rX   r  r7   r>   r9   s    r   r_   zRoundTripScanner.peek_token  sv    ##%% 	%""$$$ ##%% 	%t{a;q>!tr   c                
   g }| j         s|S t          | j         d         t           j                  r?| j                             d          }| xj        dz  c_        |                    |           |                                 r|                                  | j         s|S t          | j         d         t           j                  r?| xj        dz  c_        | j                             d          }|                    |           |                                 t          |          dk    r | j         d         	                    |           | j
        s.t          | j                   dk     r|                                  dS dS dS )zCcombine multiple comment lines and assign to next non-comment-tokenr   rb   rH  N)r>   rY   ra  rc   r@   r   rW   rX   r7   r^  r=   )r-   r_  rh   s      r   r  z!RoundTripScanner._gather_comments  s|    { 	Odk!nf&9:: 	%kooa((G"OOG$$$##%% 	)""$$$;  $+a.&*=>> )!!Q&!!+//!,,((( ##%% 	) x==AKN++H555y 	%S--11""$$$$$	% 	%11r   c                <	   |                                  r(|                                  |                                  (|                                  t          | j                  dk    r2t          | j                  dk    rt          | j        d         t          j        t          j        t          j        t          j	        f          rt          | j        d         t          j
                  rm| j        d         j        j        | j        d         j        j        k    r<| xj        dz  c_        | j                            d          }|                                  t          | j                  dk    rt          | j        d         t          j
                  r| xj        dz  c_        | j                            d          }|j        d|j        j        z  z   |j        z   |_        |                                  t          | j                  dk    r%t          | j        d         t          j
                  | j        d                             |           nt          | j                  dk    rt          | j        d         t          j                  rt          | j        d         t          j
                  r| j        d         j        j        | j        d         j        j        k    r~| xj        dz  c_        | j                            d          }d|j        j        | j        d         j        j        z
  z  d|j        j        z  z   |j        z   |_        | j        d                             |           |                                  t          | j                  dk    rt          | j        d         t          j
                  r| xj        dz  c_        | j                            d          }|j        d|j        j        z  z   |j        z   |_        |                                  t          | j                  dk    r%t          | j        d         t          j
                  | xj        dz  c_        | j                            d          S d S )Nr   rb   r  rS  )rW   rX   r  r7   r>   rY   r\  r   r   r   ra  r   r(   r   r@   rc   r  r)   rb  )r-   cc1s      r   rd   zRoundTripScanner.get_token  s   ##%% 	%""$$$ ##%% 	%t{a DK  1$$KN'):F<W/1  % t{1~v/BCC % KN+0DKN4M4RRR!!Q&!!KOOA&&&&((($+&&**z$+a.&J]/^/^*%%*%%++Bgr}/C)CDrxOAG**,,,	 $+&&**z$+a.&J]/^/^*
 A//2222DK  1$$t{1~v/ABB %t{1~v/BCC % KN+0DKN4M4RRR!!Q&!!KOOA&&AL-A0G0LLMQ\002g 
 A//222&&((($+&&**z$+a.&J]/^/^*%%*%%++Bgr}/C)CDrxOAG**,,,	 $+&&**z$+a.&J]/^/^*
 ";??1%%%tr   rh   r+   c                    |\  }}}|r$|d         dk    r|d d         }|r|d         dk    | j                             t          j        |||                     d S )Nr<   r  )r>   r   ra  )r-   rh   r  r   r   s        r   rk   zRoundTripScanner.fetch_comment)  sx    &-#z8 	b	S(( #2#JE  	b	S(( 	6.uj(KKLLLLLr   c                |   | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             d}| j        dk    rdnd}|s |            |v r |              |            |v  |            }|dk    r| j                                         }|} |             |t          vr. |            }|dk    r|dz  }n||z  } |             |t          v.|                                 }t          |          dk    r,||z  }|                                 }t          |          dk    ,| j                                         }| j        sd	| _	        |||fS |                                 d
k    r| j                                         }| j        sd	| _	         |            }|dk    r| j                                         }d
}|r|                     d	          }||z  }| |            dk    r|
                    dd          d         dz   }| j                                         }|||fS nd	}|d S )Nr   r  Fr   r  r  rm   rS  TrR  )
empty_linerb   )rM   r   r   r&   r:   r   r  r  r7   rC   rsplit)	r-   r
  r  r  r  r   r   rh   r   s	            r   r   z#RoundTripScanner.scan_to_next_token3  s   & kk!;!!cceex&7&7CEEE#22ee ,	#%%;&& #%%;&&BSyy![1133
((BTzz  4rMGCEEE (( ))++"ggkkrMG--//B "ggkk  ;//11 1,0D)
H44##%%++![1133
 1,0D)SUU::!%!5!5!7!7J G &!11T1BB2  & suu||")..q"9"9!"<t"C#{3355H"J88  Y  ,	Z tr   Fr  r   c                h   | j                                         }|dv rT| j                             d          dk    r| j                             d           n| j                                          dS |dv r| j                                          |S |r|dv r| j                                          |S dS )Nr  rH  r  rS  r  z	 rR  r  )r-   r  r   s      r   r  z RoundTripScanner.scan_line_break{  s     ;##%%{!!!$$..##A&&&&##%%%4>!!K!!!I 	B%KKK!!!Irr   Tr   rN  rO  c                <    t                               | ||          S )N)rN  )r   r   )r-   r   rN  s      r   r   z"RoundTripScanner.scan_block_scalar  s    ((u(<<<r   r  r   c           	        | j         j        }| j         j        }g }d}| j                                         } |            dk    r|dz  } |             t	          d          D ]G} ||          dvr8t          d||d ||          | j                                                   H|                    t          | j                             d          d                     || j                             d          z  } |d            |            dk    	 t          |          
                    d          }	n4# t          $ r'}
t          d||t          |
          |          d	}
~
ww xY w|S )
z>
        The roundtripscanner doesn't do URI escaping
        rR  rn   rH  r  rD  r  r  r  Nr  )r-   r  r   r
  r  r  chunkr*   r  r  r  s              r   r  z!RoundTripScanner.scan_uri_escapes  s   
 kk! "
{##%%ceesllSLECEEE1XX  3q66!999&5T55"0%(SVV0 0,,..   : c$+"4"4Q"7"7<<===T[''***ECFFF ceesll	Zj!!((11AA! 	Z 	Z 	Z<D<<j#c((TXYYY	Zs   "D? ?
E0	"E++E0Nr  r  r  r  )r  rT   r   r   )Tr  r  )r   r   r    r\   r_   r  rd   rk   r   r  r   r  r!   r   r   r   r     s              % % % %04 4 4 4lM M M MF F F FP    0= = = = =     r   r   c                  D    e Zd ZdZddZdddZddZddZddZddZ	dS )CommentBase)r  r(   r)   usedfunctionflineufunuliner  r
   r(   r)   r   r+   c                   || _         || _        || _        d| _        t          dk    r_dd l}|                    |                                d         d                   }|j        | _        |j	        | _
        d | _        d | _        d S d S )Nr  r   r   )r  r(   r)   r  r   inspectgetframeinfostackr  linenor  r  r  )r-   r  r(   r)   r  infos         r   r.   zCommentBase.__init__  s    
		Q;;NNN''(:1(=>>D MDMDJDIDJJJ ;r   rs  r  c                    || _         t          dk    rQdd l}|                    |                                d         d                   }|j        | _        |j        | _        d S d S ra   )	r  r   r  r  r  r  r  r  r  )r-   r  r  r  s       r   set_usedzCommentBase.set_used  s]    	Q;;NNN''(:1(=>>DDIDJJJ ;r   c                    d| _         d S )Nr{   )r  r9   s    r   set_assignedzCommentBase.set_assigned  s    			r   r  c                    | j          S r   r  r9   s    r   __str__zCommentBase.__str__  s    *r   c                    | j         S r   r  r9   s    r   __repr__zCommentBase.__repr__  s    *  r   c                    | j         dz   }| j        }| | j         d| j        dd| j        dd|dd| j         d| j         d| j         d| j         S )Nr~   r  2rw   z<2z "40s)	r  r  r  r(   r)   r  r  r  r  )r-   xvr  s      r   r  zCommentBase.info  s    Z#y ETY E EJ E Et{J E EJ E E}E E#zE E,0IE E8<
E E	
r   Nr  r
   r(   r
   r)   r
   r   r+   )rs  )r  r
   r   r+   r  r   r  )
r   r   r    	__slots__r.   r  r  r  r  r  r!   r   r   r  r    s        YI   % % % % %      ! ! ! !
 
 
 
 
 
r   r  c                  $     e Zd ZdZd	 fdZ xZS )

EOLCommentEOLCr  r
   r(   r)   r   r+   c                N    t                                          |||           d S r   superr.   r-   r  r(   r)   	__class__s       r   r.   zEOLComment.__init__  %    f-----r   r  r   r   r    r  r.   __classcell__r  s   @r   r  r    B        D. . . . . . . . . .r   r  c                  $     e Zd ZdZd	 fdZ xZS )
FullLineCommentFULLr  r
   r(   r)   r   r+   c                N    t                                          |||           d S r   r  r  s       r   r.   zFullLineComment.__init__  r  r   r  r  r  s   @r   r  r    r  r   r  c                  $     e Zd ZdZd	 fdZ xZS )
BlankLineCommentBLNKr  r
   r(   r)   r   r+   c                N    t                                          |||           d S r   r  r  s       r   r.   zBlankLineComment.__init__  r  r   r  r  r  s   @r   r  r    r  r   r  c                  x    e Zd ZddZdd	Zdd
ZddZddZd dZd!dZ	d"dZ
d#d$dZd%dZd&dZd%dZd dZdS )'ScannedCommentsr-   r
   r   r+   c                "    i | _         g | _        d S r   )r_  unusedr9   s    r   r.   zScannedComments.__init__   s    r   rh   r)   r(   c                    |                     d          dk    r|d         dk    sJ nd|vsJ t          |d d         ||          x| j        |<   }| j                            |           |S NrS  rb   r<   )countr  r_  r  r   r-   rh   r)   r(   retvals        r   add_eol_commentzScannedComments.add_eol_comment  s    ==!##2;$&&&&&w&&&&'1'#2#,f'M'MMdf4   r   c                    |                     d          dk    r|d         dk    sJ || j        vsJ t          |d d         ||          x| j        |<   }| j                            |           |S r  )r  r_  r  r  r   r  s        r   r`  zScannedComments.add_blank_line  s    }}T""a''GBK4,?,?,??4=(((('7dF'S'SSdf4   r   c                    |                     d          dk    r|d         dk    sJ t          |d d         ||          x| j        |<   }| j                            |           |S r  )r  r  r_  r  r   r  s        r   add_full_line_commentz%ScannedComments.add_full_line_comment  so    }}T""a''GBK4,?,?,?? (7wss|T6'R'RRdf4   r   idxc                    | j         |         S r   )r_  )r-   r  s     r   __getitem__zScannedComments.__getitem__   s    }S!!r   c                z    dd                     d | j                                        D                       z   dz   S )NzParsedComments:
  z
  c              3  P   K   | ]!\  }}|d d|                                  V  "dS )r  r  N)r  ).0r  rp  s      r   	<genexpr>z*ScannedComments.__str__.<locals>.<genexpr>&  s?      [[	f33333[[[[[[r   rS  r]  r_  itemsr9   s    r   r  zScannedComments.__str__#  sD    !kk[[T]EXEXEZEZ[[[\\]	
r   r  c                    t          | j                                                  d         \  }}|dd|                                 dS )Nr<   r  r  rS  )r   r_  r   r  )r-   r  rp  s      r   lastzScannedComments.last*  sH    ,,..//3	)))QVVXX))))r   rT   c                2    t          | j                  dk    S r^   )r7   r  r9   s    r   any_unprocessedzScannedComments.any_unprocessed.  s    4;!##r   Fusec              #    K   t          | j                  dk    rt          dk    rdd l}|r| j                            d          n| j        d         }|                    |                                d         d                   }t          d|| j        |         j	        |j
        |j                   || j        |         fV  |r| j        |                                          t          | j                  dk    d S d S )Nr   rb   using)r7   r  r   r  rc   r  r  r   r_  r  r  r  r  )r-   r%  r  firstr  s        r   unprocessedzScannedComments.unprocessed6  s      $+""{{.1E***t{1~++GMMOOA,>q,ABBe(<(BDMSWS^___u----- 0e$--/// $+""""""r   rn  c                    |j         j        }t          dk    rYdd l}|                    |                                d         d                   }t          d|| j        |j        |j	                   d}| j        r| j        d         |k     rd}| j        
                    d          }t          dk    rt          d|           | j        |                                          |                    |           | j        r| j        d         |k     |S )Nr   rb   
assign_preFTzassign_pre < )r   r(   r   r  r  r  r   r  r  r  rc   r_  r  add_comment_prer-   rn  
token_liner  r  gobbledr(  s          r   r+  zScannedComments.assign_preB  s    %*
Q;;NNN''(:1(=>>DL*dk4=$+VVVk 	)dk!nz99GKOOA&&E{{///M% ))+++!!%((( k 	)dk!nz99 r   r>   c                   	 | j         d         }n# t          $ r Y d S w xY wt          | j        |         t                    sd S d}||          j        j        |k    st          ||          |j                  r8|dz  }||          j        j        |k    t          ||          |j                  8t          dk    rt          d|           t          |          |k    r=t          ||          |j                  r!t          ||dz             |j                  rd S 	 t          ||          |j                  rt          ||dz             |j                  r	 | j                             d          }| j        |                                          t          dk    rt          d||t                     ||                              |t                     n# t          $ r t"          w xY wd S n*# t          $ r t          dk    rt          d           Y nw xY w	 t          ||          |j                  rt          ||dz             |j        |j        f          rt	 | j                             d          }| j        |                                          ||                              |t&                     n# t          $ r t"          w xY wd S n*# t          $ r t          dk    rt          d           Y nw xY w|D ]}t          d|           t          dk    r$t          dt)          ||                               dd l}|                    d           d S )	Nr   rb   idx1z>>>>>aIndexError1IndexError2ztt-znot implemented EOL)r  r   rY   r_  r  r   r(   r   r   r   r7   r\  r   rc   r  KEYCMNTadd_comment_eolrj   r   	VALUECMNTtypesysexit)r-   r>   comment_liner  eol_idxr  r8  s          r   
assign_eolzScannedComments.assign_eolS  s   	;q>LL 	 	 	FF	$-5zBB 	FcTl%*\99ZC4L&+>
 >
9 1HC cTl%*\99ZC4L&+>
 >
9 Q;;FC   KK#63$<);<< 6C!G*-v/ABB  F	&#,(:;; 
qz"FOA A ."kooa00GM'*33555{{#w@@@C4L00'BBBB! . . .--. 	 	 	{{&&&D		&#,(:;; 	
qz"V%68N$OA A 	."kooa00GM'*33555C4L00)DDDD! . . .--. 	 	 	{{&&&D	  	 	AE1Q;;)4t+=+=>>>


sc    
;G. A=G G. G((G. .$HHAK AJ8 7K 8K

K $K76K7c                    |j         j        }t          dk    rYdd l}|                    |                                d         d                   }t          d|| j        |j        |j	                   d}| j        r| j        d         |k     rd}| j        
                    d          }t          dk    rt          d|           | j        |                                          |                    |           | j        r| j        d         |k     |S )Nr   rb   assign_postFTzassign_post < )r   r(   r   r  r  r  r   r  r  r  rc   r_  r  add_comment_postr-  s          r   r>  zScannedComments.assign_post  s   %*
Q;;NNN''(:1(=>>DM:t{DM4;WWWk 	*dk!nz99GKOOA&&E{{(%000M% ))+++""5))) k 	*dk!nz99 r   c                n    d                     d | j                                        D                       S )NrR  c              3  j   K   | ].\  }}|j         d k    d|dd |                                 dV  /dS )r  z  r  rS  N)r  r  )r  indrp  s      r   r  z2ScannedComments.str_unprocessed.<locals>.<genexpr>  sL      \\63afX[mm&#&&&!&&((&&&mmmm\\r   r  r9   s    r   str_unprocessedzScannedComments.str_unprocessed  s7    ww\\T]5H5H5J5J\\\
 
 	
r   N)r-   r
   r   r+   )rh   r
   r)   r
   r(   r
   r   r
   )r  r
   r   r
   r  r  r  r  )r%  r
   r   r
   )rn  r
   r   r
   )r>   r
   r   r
   )r   r   r    r.   r  r`  r  r  r  r"  r$  r)  r+  r<  r>  rC  r!   r   r   r  r    s                   " " " "
 
 
 
* * * *$ $ $ $
0 
0 
0 
0 
0   ": : : :x   "
 
 
 
 
 
r   r  c                  H     e Zd Zd fdZddZdd	Zdd
ZddZddZ xZ	S )RoundTripScannerSCargr
   r   r   r+   c                Z     t                      j        |i | | j        J d | _        d S r   )r  r.   r0   r_  )r-   rF  r   r  s      r   r.   zRoundTripScannerSC.__init__  s:    #$$$${&&& r   c                   |                                  r(|                                  |                                  (t          | j                  dk    rt	          | j        d         t          j                  r&| j                            | j        d                    n%| j                            | j        d                    | xj	        dz  c_	        | j        
                    d          S d S ra   )rW   rX   r7   r>   rY   r   r_  r>  r+  r@   rc   r9   s    r   rd   zRoundTripScannerSC.get_token  s    ##%% 	%""$$$ ##%% 	%t{a$+a.&*>?? 9))$+a.9999((Q888";??1%%%  r   rT   c                   | j         t                      x| j        _        | _         | j        rdS t          | j                  dk    rdS |                                  |                                 | j	        k    rdS t          | j                  dk     rdS | j        d         j
        j        | j        d         j
        j        k    rdS 	 t          dk    rat          dt          | j                             | j        D ]}t          |           t          | j                                                    | j                             | j        d                    | j                             | j                   dS )NFr   TrH  r<   z-x--)r_  r  r0   parsed_commentsr=   r7   r>   rf   rg   r@   r   r(   r   r   rC  r+  r<  )r-   r  s     r   rW   z#RoundTripScannerSC.need_more_tokens  sZ   = :I:K:KKDK'$-9 	5t{q  4 	'')))((**d.???4t{a4;q>$)T[_-G-LLL4	9{{DK 0 0111  AAJJJJ5577888  Q000  ---ur   c                v   | j         j        }| j         j        }| j         j        dk    r |            dk    r
 |             | j                                         }d}|sZ |            dk    r |              |            dk     |            }|dk    r| j                                         }|} |             |t
          vr. |            }|dk    r|dz  }n||z  } |             |t
          v.|j        dk    r'| j                            ||j        |j	                   n(| j        
                    ||j        |j	                   d}|                                  | j        sd	| _        d S t          |                                           r$| j        sd	| _        |                                  d S d	}|Zd S )
Nr   r  Fr  r  rm   rS  rR  T)rM   r   r   r&   r   r  r)   r_  r  r(   r   scan_empty_or_full_line_commentsr:   rC   rT   r  r  )	r-   r
  r  r   r  r   comment_start_markrh   r  s	            r   r   z%RoundTripScannerSC.scan_to_next_token  s
   kk!;!!cceex&7&7CEEE[))++
 4	#%%3,, #%%3,,BSyy%)[%9%9%;%;"((BTzz  4rMGCEEE (( $))M77!3!:<N<S    M11!3!:<N<S   !G55777 1,0D)D((**++  1,0D)55777t i  4	j tr   c                ,   | j                                         }|j        dk    sJ d}d }d }| j                                         }	 |dv r| j                             d          dk    r| j                             d           n| j                                          |.|dz  }| j                            ||j        |j                   d }n+|dz  }| j        	                    ||j        |j                   d}| j                                         }| j                                         }|.|dv r||z  }n)|d	k    r| j                                         }d	}nd S ||z  }| j                                          | j                                         }O)
Nr   rR  Tr{  rH  r  rS  r   r  )
rM   r   r)   r   r   r   r_  r  r(   r`  )r-   blmarkblanksrh   r*   r   s         r   rL  z3RoundTripScannerSC.scan_empty_or_full_line_comments	  s   %%''}!!!![	$+++;%%a((F22K''****K'')))&tOGM77diXXX"GGdNFM00TTT--//[%%'';;bLFF3YY;//11D!GG E2K!!!!!##B=	$r   r   c                h   | j         j        }| j         j        }d}d } |            dk    r%| |            z  } |              |            dk    % |            dk    rYd}| j                                         } |            t          vr(| |            z  } |              |            t          v(|dz  } |            }|t          vr,t          d|d|| j                                                   |&| j                            ||j        |j	                   | 
                                 d S )NrR  r  r  rS  ru  r?  )rM   r   r   r   r  r   r_  r  r)   r(   r  )r-   r   r
  r  r   rh   r*   r   s           r   rW  z1RoundTripScannerSC.scan_block_scalar_ignored_line;	  sT   kk!ceesllcceeOFCEEE ceesll 355C<<G;''))D#%%x''3355  #%%x'' tOGSUUX/GGG$$&&	   M))'4;	JJJtr   )rF  r
   r   r
   r   r+   r  r  r  r  )
r   r   r    r.   rd   rW   r   rL  rW  r   r  s   @r   rE  rE    s             
& 
& 
& 
&   6= = = =~%$ %$ %$ %$N       r   rE  )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
   r   r   r   r   r   r   __all__r  r   r	  r   r   r#   r   r   r6  r4  r  r  r  r  r  rE  r!   r   r   <module>rZ     s   " " " " " "< . - - - - - # # # # # # # # # ' ' ' ' ' ' M M M M M M M M M M M ME :
9
9 $0 
 
Q;;$ $ $ $	 	 	 	 	? 	 	 	       z z z z z z z zz3o o o o ow o o oh 	

)
 )
 )
 )
 )
 )
 )
 )
X. . . . . . . .. . . . .k . . .. . . . .{ . . .d
 d
 d
 d
 d
 d
 d
 d
Np p p p p p p p p pr   