
    }c                        d Z ddlZddlZddlmZmZmZmZmZm	Z	 ddl
mZ  ej        de            ej        d          Z ej        d          Z ej        d          Z ej        d	          Z ej        d
          ZddddddddZ ej        d          ZdedefdZdedefdZ ed                                          Zd"dededefdZdededdfdZdedefd Zdedefd!ZdS )#z}This module implements a simple JavaScript serializer.

Uses the basestring encode function from simplejson by Bob Ippolito.
    N)IOAnyDictListMatchUnion)RemovedInSphinx70WarningzD"sphinx.util.jsdump" has been deprecated. Please use "json" instead.z"(\\\\|\\"|[^"])*"z\d+z[a-zA-Z_]\w*z[a-zA-Z_][a-zA-Z0-9_]*$z([\\"]|[^\ -~])z\\z\"z\bz\fz\nz\rz\t)\"
	z\\u.{4}|\\.sreturnc                     dt           dt          fd}dt          t                              ||                     z   dz   S )Nmatchr   c                     |                      d          }	 t          |         S # t          $ r? t          |          }|dk     rd|fz  cY S |dz  }d|dz	  dz  z  }d|dz  z  }d||fz  cY S w xY w)	Nr   i   z\u%04xi   
   i  i   z\u%04x\u%04x)groupESCAPE_DICTKeyErrorord)r   r   ns1s2s        2lib/python3.11/site-packages/sphinx/util/jsdump.pyreplacezencode_string.<locals>.replace$   s    KKNN	3q>! 		3 		3 		3AA7{ 3 A4'''' WR501q5y)'2r(2222		3s   $ %A-A-,A-r   )r   strESCAPE_ASCIIsub)r   r   s     r   encode_stringr#   #   sN    3u 3 3 3 3 3 \%%gq11222S88    c                 :    t                               d |           S )Nc                 P    t          d|                                 z   dz             S )Nr   )evalr   )ms    r   <lambda>zdecode_string.<locals>.<lambda>6   s    cAGGIIo&;!<!< r$   )ESCAPEDr"   )r   s    r   decode_stringr+   5   s    ;;<<a@@@r$   a  abstract   else   instanceof   switch
boolean   enum   int   synchronized
break   export   interface   this
byte   extends   long   throw
case   false   native   throws
catch   final   new   transient
char   finally   null   true
class   float   package   try
const   for   private   typeof
continue   function   protected   var
debugger   goto   public   void
default   if   return   volatile
delete   implements   short   while
do   import   static   with
double   in   superFobjkeyc                 `   |rXt          | t                    st          |           } t                              |           r| t          vr| S t          |           S | dS | du s| du r| rdndS t          | t          t          f          rt          |           S t          | t                    rAdd	                    t          d |                                 D                                 z  S t          | t                    r/d	d	                    t          d
 | D                                 z  S t          | t          t          f          r"d	d	                    d | D                       z  S t          | t                    rt          |           S t          t!          |                     )NnullTFtruefalsez{%s},c              3   `   K   | ])\  }}t          |d           dt          |          V  *dS )T:Ndumps).0r-   values      r   	<genexpr>zdumps.<locals>.<genexpr>Z   s\       () () c5 #t%LLL)
 () () () () () ()r$   z[%s]c              3   4   K   | ]}t          |          V  d S Nr5   r7   xs     r   r9   zdumps.<locals>.<genexpr>_   s(      '>'>Qa'>'>'>'>'>'>r$   c              3   4   K   | ]}t          |          V  d S r;   r5   r<   s     r   r9   zdumps.<locals>.<genexpr>a   s(       7 7aq 7 7 7 7 7 7r$   )
isinstancer    _nameonly_rer   reswordsr#   intfloatdictjoinsorteditemssettuplelist	TypeErrortype)r,   r-   s     r   r6   r6   K   s   
 &#s## 	c((Cc"" 	&s(': 	&J %%%
 "v	 "u ")vv')	C#u	&	& "3xx	C		 
" () ()  IIKK() () () ") ") * * * 	* 
C		 "'>'>#'>'>'>!>!>????	C%	'	' " 7 73 7 7 77777	C		 "S!!!
DII

r$   fc                 J    |                     t          |                      d S r;   )writer6   )r,   rM   s     r   dumprP   g   s     GGE#JJr$   r=   c                 v   t                      }d}t          |           }g }|}d}g }||k     r| |         }|dk    r5i }|                    |           d}|                    |           |dz  }n|dk    r5g }|                    |           d}|                    |           |dz  }nr|dv r|r|d         |urt          d	          d}|                                }	|                                 |rY|d         }t          |t                    r&|d         |u rt          d
|	          |	||d         <   n|                    |	           nn|dz  }n|dk    r/|rt          d          t          |t                    rd}|dz  }n|dk    r>t          |t                    st          d          |dz  }|st          d          d}nLd}
t                              | |          }|r*t          |
                                dd                   }
nt                              | |          }|r"t          |
                                          }
npt                              | |          }|rA|
                                }
|
dk    rd}
n6|
dk    rd}
n-|
dk    rd}
n$|st          d          nt          d|z            |                                }t          |t                    r|r|
|d<   n#|
||d         <   d}n|                    |
           ||k     ||u rt          d          |S )z8Loader that can read the JS subset the indexer produces.r   F{T   [z}]zunfinished dictzinvalid key objectr2   zmultiple keysr4   zcolon in listzmultiple valuesNr0   r1   r/   zbareword as valuezread error at pos %dznothing loaded from string)objectlenappend
ValueErrorpopr?   rD   _str_rer   r+   r   _int_rerB   _name_reend)r=   nothingir   stackr,   r-   keyscoldobjyr(   s               r   loadsrf   k   s   hhG	AAA%'EC
CD
a% MaD8 K	CLLCKK   FAA#X E	CLLCKK   FAA$Y ?	 87* 8$%6777YY[[FHHJJJ 	Bic4(( 'Bx7* G()=vFFF$*CRMMJJv&&&&FAA#X ,	 2 111#t$$ FAA#X &	c4(( 2 111FA 4 !2333CCAa##A E!!''))AbD/22MM!Q'' EAGGIIAA q!,,A EGGII; B $AA'\ B %AA&[ B $AA!$ B",-@"A"AAB ))?!)CDDDA#t$$    DHH$%CRMCC

1[ a% M\ g~ 75666Jr$   c                 D    t          |                                           S r;   )rf   read)rM   s    r   loadri      s    ??r$   )F) __doc__rewarningstypingr   r   r   r   r   r   sphinx.deprecationr	   warncompiler[   r\   r]   r@   r!   r   r*   r    r#   r+   rH   splitrA   boolr6   rP   rf   ri    r$   r   <module>rt      s*   
 
			  4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 7 7 7 7 7 7 T&( ( ( "**
+
+
"*V

2:o&&rz455 rz,--
	




  "*^
$
$9S 9S 9 9 9 9$AS AS A A A A 3  uww   $ s  #    8c b T    YS YS Y Y Y YxB 3      r$   