=Ogy dZddlZ ddlmZn #e$rdZYnwxYwdgZejdejej zej zZ dZ epe ZdS)zJSON token scanner N) make_scannerrz)(-?(?:0|[1-9]\d*))(\.\d+)?([eE][-+]?\d+)?c  |j |j|j tj|j |j |j |j|j |j |j  f dfd}|S)Ncb ||}n#t$rt|dwxYw|dkr||dzS|dkr||dzf S|dkr ||dzfS|dkr|||dzdkrd|dzfS|dkr|||dzd krd |dzfS|d kr|||d zd krd|d zfS ||}|S|\}}}|s|r||pdz|pdz}n |}||fS|dkr!|||dzdkrd|dzfS|dkr!|||dzdkrd|dzfS|dkr!|||dzdkrd|dzfSt|)N"{[nnullttrueTffalseFNNaNIInfinity- z -Infinity) IndexError StopIterationgroupsend)stringidxnextcharmintegerfracexpres _scan_once match_numbermemo object_hookobject_pairs_hook parse_arrayparse_constant parse_float parse_int parse_object parse_stringstricts 3/opt/alt/python311/lib64/python3.11/json/scanner.pyr'z#py_make_scanner.._scan_onces| /c{HH / / /$$$ . / s??<a88 8 __<q 16K):DBB B __;a0*== = __C!G !4!>!>q= __C!G !4!>!>q= __C!G !4!?!?#'> ! L % % =!" GT3 )s )!k'TZR"8CI2"FGGi((<  __C!G !4!=!=!>%((#'1 1 __C!G !4 !B!B!>*--sQw6 6 __C!G !4 !C!C!>+..a7 7$$ $s 'cx ||S#wxYw)N)clear)rr r'r)s r3 scan_oncez"py_make_scanner..scan_onceAs8 :fc** JJLLLLDJJLLLLs #9) r0r,r1 NUMBER_REmatchr2r.r/r-r*r+r))contextr6r'r(r)r*r+r,r-r.r/r0r1r2s @@@@@@@@@@@@r3py_make_scannerr:s'L%K'L?L ^F%K!I+N%K1 rGs 4444444NNN   BJ0Z",* - - 888t0 s