+
     Bi~                       . R NRNRNRNRNRNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&Nt ]tR'tR(tR)t^ R*It^ R*It^ R*I	t	 ^ R+I
Ht ]! RR,R'R-7      tRtRtRtRtRtRtRtRtR/tR/t]	P2                  Rw8X  d
   R0tR0tRxtR1tMR2tR2tRytR3t]]^,
          ,
          t ! R4 R]4      t  ! R5 R] 4      t! ! R6 R] 4      t" ! R7 R]"4      t# ! R8 R	] ]$4      t% ! R9 R]"4      t& ! R: R]"]$4      t' ! R; R
] 4      t( ! R< R]"4      t) ! R= R] 4      t* ! R> R] 4      t+ ! R? R](]*4      t, ! R@ R](]*]+4      t- ! RA R] ].4      t/]!]%](],]*]-]"]+]/.	t0]#]"]&]"]']"])]"/t1]]]]]]]]3t2^ R*I3t3]3Ph                  ! RB4      t5]6! . RzO4      t7RC t8RD t9A3R{RE lt:RF t; ! RG R ]<4      t=R|RH lt>]P~                  P                  ]=4        ! RI RJ]<4      tA ! RK R]<4      tB ! RL RM]<4      tCR}RN ltD]EP                  tGRO tHRP tIRQ tJRR tKR~RS ltLRT tMRU tN ! RV RW]<4      tO]O! 4       P                  tQR~RX ltRRY tSRZ tTR[^dR\^FR]^5R^^(R_^R`^Ra^Rb^
Rc^/	3Rd ltURRe ltVR|Rf ltW]B! ^]]%],]".. RgR^^ Rh7      tX]B! ^	]]%],]"]!]-.. Ri7      tY]B! ^	]. . Ri7      tZ^ R*I[t[][P                  ! Rj][P                  ][P                  ,          4      P                  t`][P                  ! Rk4      P                  ta][P                  ! Rl4      P                  tb][P                  ! Rm][P                  ][P                  ,          4      tdA[ ^ R*IetfR{Rn ltgRo thRp tiRRq ltjRr tkRs tl]=! Rt4      tm]=! Ru4      tn]=! Rv4      to]=! ^ 4      tp]=! ^4      tq]=! R4      tr]m]n3ts]	P                  P                  tv]	P                  P                  tx]	P                  P                  tz]{! ^
]v^,
          ]v4      t|A	R*#   ] d    R. t ELvi ; i  ] d     Li ; i)DecimalContextDecimalTupleDefaultContextBasicContextExtendedContextDecimalExceptionClampedInvalidOperationDivisionByZeroInexactRounded	SubnormalOverflow	UnderflowFloatOperationDivisionImpossibleInvalidContextConversionSyntaxDivisionUndefined
ROUND_DOWNROUND_HALF_UPROUND_HALF_EVENROUND_CEILINGROUND_FLOORROUND_UPROUND_HALF_DOWN
ROUND_05UP
setcontext
getcontextlocalcontextIEEEContextMAX_PRECMAX_EMAXMIN_EMIN	MIN_ETINYIEEE_CONTEXT_MAX_BITSHAVE_THREADSHAVE_CONTEXTVARdecimalz1.70z2.4.2N)
namedtuplezsign digits exponent)modulec                      V # N )argss   *!/usr/lib/python3.14/_pydecimal.py<lambda>r1   C   s        Tl   NZoi   i@T   c                   &   a  ] tR t^at o R tRtV tR# )r   c                    R # r-   r.   selfcontextr/   s   &&*r0   handleDecimalException.handlet   s    r2   r.   N__name__
__module____qualname____firstlineno__r9   __static_attributes____classdictcell____classdict__s   @r0   r   r   a   s     & r2   c                       ] tR t^xtRtR# )r	   r.   Nr<   r=   r>   r?   r@   r.   r2   r0   r	   r	   x       r2   c                   &   a  ] tR t^t o R tRtV tR# )r
   c                    V'       dB   \        V^ ,          P                  V^ ,          P                  RR4      pVP                  V4      # \        # )    nT)_dec_from_triple_sign_int_fix_nan_NaN)r7   r8   r/   anss   &&* r0   r9   InvalidOperation.handle   s9    "47==$q',,TJC<<((r2   r.   Nr;   rB   s   @r0   r
   r
      s     . r2   c                   &   a  ] tR t^t o R tRtV tR# )r   c                    \         # r-   rO   r6   s   &&*r0   r9   ConversionSyntax.handle       r2   r.   Nr;   rB   s   @r0   r   r      s      r2   c                   &   a  ] tR t^t o R tRtV tR# )r   c                    \         V,          # r-   )_SignedInfinityr7   r8   signr/   s   &&&*r0   r9   DivisionByZero.handle   s    t$$r2   r.   Nr;   rB   s   @r0   r   r      s     % %r2   c                   &   a  ] tR t^t o R tRtV tR# )r   c                    \         # r-   rT   r6   s   &&*r0   r9   DivisionImpossible.handle   rV   r2   r.   Nr;   rB   s   @r0   r   r            r2   c                   &   a  ] tR t^t o R tRtV tR# )r   c                    \         # r-   rT   r6   s   &&*r0   r9   DivisionUndefined.handle   rV   r2   r.   Nr;   rB   s   @r0   r   r      r`   r2   c                       ] tR t^tRtR# )r   r.   NrE   r.   r2   r0   r   r      rF   r2   c                   &   a  ] tR t^t o R tRtV tR# )r   c                    \         # r-   rT   r6   s   &&*r0   r9   InvalidContext.handle   rV   r2   r.   Nr;   rB   s   @r0   r   r      s      r2   c                       ] tR t^tRtR# )r   r.   NrE   r.   r2   r0   r   r      rF   r2   c                       ] tR t^tRtR# )r   r.   NrE   r.   r2   r0   r   r      rF   r2   c                   &   a  ] tR tRt o R tRtV tR# )r   i  c                   VP                   \        \        \        \        39   d   \
        V,          # V^ 8X  dc   VP                   \        8X  d   \
        V,          # \        VRVP                  ,          VP                  VP                  ,
          ^,           4      # V^8X  dc   VP                   \        8X  d   \
        V,          # \        VRVP                  ,          VP                  VP                  ,
          ^,           4      # R# )rI   9N)roundingr   r   r   r   rY   r   rK   precEmaxr   rZ   s   &&&*r0   r9   Overflow.handle  s     / ; ;"4((19=0&t,,#D#gll*:#LL5a79 919;.&t,,#D#gll*:$\\',,6q8: : r2   r.   Nr;   rB   s   @r0   r   r     s     ,: :r2   c                       ] tR tRtRtR# )r   i(  r.   NrE   r.   r2   r0   r   r   (  rF   r2   c                       ] tR tRtRtR# )r   i7  r.   NrE   r.   r2   r0   r   r   7  rF   r2   decimal_contextc                       \         P                  4       #   \         d%    \        4       p \         P	                  T 4       T u # i ; ir-   )_current_context_vargetLookupErrorr   setr8   s    r0   r   r   a  s?    #'')) )  )s    ,AAc                     V \         \        \        39   d!   V P                  4       p V P	                  4        \
        P                  V 4       R # r-   )r   r   r   copyclear_flagsru   rx   ry   s   &r0   r   r   o  s6    ><AA,,.W%r2   c                     V f   \        4       p \        V 4      pVP                  4        F5  w  r4V\        9  d   \	        RV R24      h\        VP                  W44       K7  	  V# )N'z2' is an invalid keyword argument for this function)r   _ContextManageritems_context_attributes	TypeErrorsetattrnew_context)ctxkwargsctx_managerkeyvalues   &,   r0   r    r    x  sc    H {l!#&Klln
))au$VWXX''4 % r2   c                   V ^ 8:  g   V \         8  g   V ^ ,          '       d   \        R\          24      h\        4       p^	V ^ ,          ,          ^,
          Vn        ^^V ^,          ^,           ,          ,          Vn        ^VP                  ,
          Vn        \        Vn        ^Vn        \        P                  \        R4      Vn        V# )rI   z5argument must be a multiple of 32, with a maximum of F)r&   
ValueErrorr   rn   ro   Eminr   rm   clampdictfromkeys_signalstraps)bitsr   s   " r0   r!   r!     s     qyD00D2II ..C-DF G 	G )CD"H~!CHA$(Q,'(CH388|CH"CLCIh.CIJr2   c                   <  a  ] tR tRt o R{tR|R lt]R 4       t]R 4       tR t	R t
R}R ltR	 tR
 tR tR~R ltR~R ltR~R ltR~R ltR~R ltR~R ltR tR tR tR tRR ltR~R ltR~R ltR~R ltRR ltR~R lt]tR~R lt R~R lt!R~R lt"]"t#R~R lt$R  t%R~R! lt&R~R" lt'R~R# lt(R~R$ lt)R~R% lt*R~R& lt+R~R' lt,R~R( lt-R) t.R* t/]/t0]1R+ 4       t2]1R, 4       t3R- t4R. t5R/ t6R0 t7R1 t8R2 t9R3 t:R4 t;R5 t<R6 t=R7 t>R8 t?]@! ]8]9]:];]<]=]>]?R97      tAR~R: ltBR; tCR< tDR~R= ltER~R> ltFR? tGR}R@ ltHR}RA ltIR~RB ltJR}RC ltKR~RD ltLRE tMRF tNR}RG ltOR}RH ltP]PtQR~RI ltRR~RJ ltSR~RK ltTRL tURM tVRN tWRO tXR~RP ltYR~RQ ltZR~RR lt[RS t\RT t]R~RU lt^R~RV lt_RW t`RX taRY tbRZ tcR~R[ ltdR\ teR] tfR^ tgR~R_ lthR` tiRa tjR~Rb ltkRc tlR~Rd ltmR~Re ltnRf toRg tpR~Rh ltqR~Ri ltrR~Rj ltsR~Rk lttR~Rl ltuR~Rm ltvR~Rn ltwR~Ro ltxR~Rp ltyR~Rq ltzRr t{R~Rs lt|R~Rt lt}R~Ru lt~Rv tRw tRx tR}Ry ltRztV tR# )r   i  Nc                
   \         P                  V 4      p\        V\        4      '       Ed   \	        VP                  4       P                  R R4      4      pVf,   Vf   \        4       pVP                  \        RV,          4      # VP                  R4      R8X  d	   ^Vn        M^ Vn        VP                  R4      pVe   VP                  R4      ;'       g    Rp\        VP                  R4      ;'       g    R4      p\        \        WV,           4      4      Vn        V\        V4      ,
          Vn        R	Vn        V# VP                  R
4      pVeZ   \        \        T;'       g    R4      4      P#                  R4      Vn        VP                  R4      '       d	   RVn        MRVn        MRVn        RVn        RVn        V# \        V\        4      '       d@   V^ 8  d	   ^ Vn        M^Vn        ^ Vn        \        \%        V4      4      Vn        R	Vn        V# \        V\&        4      '       dG   VP                  Vn        VP                  Vn        VP                  Vn        VP                   Vn        V# \        V\(        4      '       dO   VP*                  Vn        \        VP                  4      Vn        \        VP,                  4      Vn        R	Vn        V# \        V\.        \0        34      '       Ed   \        V4      ^8w  d   \3        R4      h\        V^ ,          \        4      '       d   V^ ,          R9   g   \3        R4      hV^ ,          Vn        V^,          R8X  d   RVn        V^,          Vn        RVn        V# . p	V^,           FX  p
\        V
\        4      '       d7   ^ T
u;8:  d   ^	8:  d(   M M$V	'       g   V
^ 8w  d   V	P5                  V
4       KM  KO  \3        R4      h	  V^,          R9   d<   RP7                  \9        \        V	4      4      Vn        V^,          Vn        RVn        V# \        V^,          \        4      '       dG   RP7                  \9        \        T	;'       g    ^ .4      4      Vn        V^,          Vn        R	Vn        V# \3        R4      h\        V\:        4      '       d   Vf   \        4       pVP                  \<        R4       \&        P?                  V4      pVP                  Vn        VP                  Vn        VP                  Vn        VP                   Vn        V# \A        RV,          4      h)_ zInvalid literal for Decimal: %rr[   -intfracexp0FdiagsignalNrJ   FTztInvalid tuple size in creation of Decimal from list or tuple.  The list or tuple should have exactly three elements.z|Invalid sign.  The first value in the tuple should be an integer; either 0 for a positive number or 1 for a negative number.zTThe second value in the tuple must be composed of integers in the range 0 through 9.zUThe third value in the tuple must be an integer, or one of the strings 'F', 'n', 'N'.;strict semantics for mixing floats and Decimals are enabledCannot convert %r to DecimalrI      rJ   r   )!object__new__
isinstancestr_parserstripreplacer   _raise_errorr   grouprL   r   rM   len_exp_is_speciallstripabsr   _WorkRepr[   r   listtupler   appendjoinmapfloatr   
from_floatr   )clsr   r8   r7   mintpartfracpartr   r   digitsdigits   &&&        r0   r   Decimal.__new__  se   . ~~c" eS!!--c267Ay?(lG++,< AE IK K wwv#%

ggenG"776?00b!''%.//C0G$4 56	#h-/	#(  K wwv# #C$4 5 < <S ADIwwx(($'	$'	 !$DI #DI#' K eS!!z

DICJDI$DK eW%%DIDJDI % 1 1DK eX&&DJEIIDIEIIDI$DK ed5\**5zQ  "G H H uQx--%(e2C  "O P P qDJQx3	!!H	#' 6 K1 "1XXE!%--!u//!UaZ"MM%0 &0 ) *8 9 9 & 8z) "C(8 9DI %aDI'+D$ K  a#.. "CA3(? @DI %aDI',D$
 K % &> ? ?
 eU##$,   &&u-EDIDJDI % 1 1DK6>??r2   c                x    \        V\        \        \        34      '       d	   V ! V4      # \	        R V,          4      h)r   )r   r   r   r   r   )r   numbers   &&r0   from_numberDecimal.from_number`  s3     fsGU344v;6?@@r2   c                b   \        V\        4      '       d#   V^ 8  d   ^ M^p^ p\        \        V4      4      pM\        V\        4      '       d   \
        P                  ! V4      '       g   \
        P                  ! V4      '       d   V ! \        V4      4      # \
        P                  ! RV4      R8X  d   ^ pM^p\        V4      P                  4       w  rVVP                  4       ^,
          p\        V^V,          ,          4      pM\        R4      h\        W$V) 4      pV \        J d   V# V ! V4      # )rI   g      ?zargument must be int or float.)r   r   r   r   r   _mathisinfisnanreprcopysignas_integer_ratio
bit_lengthr   rK   r   )r   fr[   kcoeffrJ   dresults   &&      r0   r   Decimal.from_floato  s    , aQ1ADAAKE5!!{{1~~Q47|#~~c1%,q6**,DA"A!Q$KE<==!$r2'>Mv;r2   c                f    V P                   '       d   V P                  pVR 8X  d   ^# VR8X  d   ^# ^ # r   )r   r   )r7   r   s   & r0   _isnanDecimal._isnan  s0     ))Cczr2   c                T    V P                   R 8X  d   V P                  '       d   R# ^# ^ # )r   )r   rL   r7   s   &r0   _isinfinityDecimal._isinfinity  s$     99zzz	r2   c                \   V P                  4       pVf   RpMVP                  4       pV'       g	   V'       du   Vf   \        4       pV^8X  d   VP                  \        RV 4      # V^8X  d   VP                  \        RV4      # V'       d   V P	                  V4      # VP	                  V4      # ^ # )NFsNaN)r   r   r   r
   rN   )r7   otherr8   self_is_nanother_is_nans   &&&  r0   _check_nansDecimal._check_nans  s     kkm= L <<>L,$,a++,<f(,. .q ++,<f(-/ /}}W-->>'**r2   c                   Vf   \        4       pV P                  '       g   VP                  '       d   V P                  4       '       d   VP                  \        RV 4      # VP                  4       '       d   VP                  \        RV4      # V P                  4       '       d   VP                  \        RV 4      # VP                  4       '       d   VP                  \        RV4      # ^ # )Nzcomparison involving sNaNzcomparison involving NaN)r   r   is_snanr   r
   is_qnanr7   r   r8   s   &&&r0   _compare_check_nansDecimal._compare_check_nans  s     ? lGu000||~~++,<,G,02 2 ++,<,G,13 3 ++,<,F,02 2 ++,<,F,13 3 r2   c                H    V P                   ;'       g    V P                  R 8g  # r   r   rM   r   s   &r0   __bool__Decimal.__bool__  s!    
 33499#33r2   c                   V P                   '       g   VP                   '       d3   V P                  4       pVP                  4       pW#8X  d   ^ # W#8  d   R# ^# V '       g   V'       g   ^ # RVP                  ,          ) # V'       g   RV P                  ,          # VP                  V P                  8  d   R# V P                  VP                  8  d   ^# V P                  4       pVP                  4       pWE8X  d   V P                  RV P
                  VP
                  ,
          ,          ,           pVP                  RVP
                  V P
                  ,
          ,          ,           pWg8X  d   ^ # Wg8  d   RV P                  ,          ) # RV P                  ,          # WE8  d   RV P                  ,          # RV P                  ,          ) # )rI   r   r   )r   r   rL   adjustedrM   r   )r7   r   self_inf	other_infself_adjustedother_adjustedself_paddedother_paddeds   &&      r0   _cmpDecimal._cmp   s[    u000'')H))+I$%	 u{{*++## ;;#I::#)*))c499uzz+A&BBK ::UZZ$))-C(DDL*+djj(((TZZ''+##4::%&&r2   c                    \        WR R7      w  rV\        J d   V# V P                  W4      '       d   R# V P                  V4      ^ 8H  # )T)equality_opF)_convert_for_comparisonNotImplementedr   r   r   s   &&&r0   __eq__Decimal.__eq__@  sE    -dtLN"LE++yy1$$r2   c                    \        W4      w  rV\        J d   V# V P                  W4      pV'       d   R # V P                  V4      ^ 8  # Fr   r   r   r   r7   r   r8   rP   s   &&& r0   __lt__Decimal.__lt__H  E    -d:N"L&&u6yy!##r2   c                    \        W4      w  rV\        J d   V# V P                  W4      pV'       d   R # V P                  V4      ^ 8*  # r   r   r  s   &&& r0   __le__Decimal.__le__Q  E    -d:N"L&&u6yy1$$r2   c                    \        W4      w  rV\        J d   V# V P                  W4      pV'       d   R # V P                  V4      ^ 8  # r   r   r  s   &&& r0   __gt__Decimal.__gt__Z  r  r2   c                    \        W4      w  rV\        J d   V# V P                  W4      pV'       d   R # V P                  V4      ^ 8  # r   r   r  s   &&& r0   __ge__Decimal.__ge__c  r  r2   c                    \        VR R7      pV P                  '       g   V'       d.   VP                  '       d   V P                  W4      pV'       d   V# \        V P	                  V4      4      # Traiseit)_convert_otherr   r   r   r   r  s   &&& r0   compareDecimal.comparel  sW     ud3 %*;*;*;""52C
tyy'((r2   c                   V P                   '       dl   V P                  4       '       d   \        R 4      hV P                  4       '       d   \        P                  V 4      # V P                  '       d   \        ) # \        # V P                  ^ 8  d   \        ^
V P                  \        4      pM \        \        V P                  ) \        4      p\        V P                  4      V,          \        ,          pV ^ 8  d   TMV) pVR8X  d   R# T# )z"Cannot hash a signaling NaN value.r   )r   r   r   is_nanr   __hash__rL   _PyHASH_INFr   pow_PyHASH_MODULUS_PyHASH_10INVr   rM   )r7   exp_hashhash_rP   s   &   r0   r  Decimal.__hash__~  s     ||~~ DEEt,,:::'<'&&99>2tyy/:H=499*oFHDII)O;qyeufBYr'C'r2   c           	         \        V P                  \        \        \        V P
                  4      4      V P                  4      # r-   )r   rL   r   r   r   rM   r   r   s   &r0   as_tupleDecimal.as_tuple  s+    
 DJJc#tyy.A(BDIINNr2   c                l   V P                   '       d-   V P                  4       '       d   \        R 4      h\        R4      hV '       g   R# \	        V P
                  4      pV P                  ^ 8  d   V^
V P                  ,          ,          ^r!MV P                  ) pV^ 8  d#   V^,          ^ 8X  d   V^,          pV^,          pK)  V P                  ) p\        W) ,          P                  4       ^,
          V4      pV'       d   W,          pWE,          p^V,          V,          pV P                  '       d   V) pW3# )z#cannot convert NaN to integer ratioz(cannot convert Infinity to integer ratior   )
r   r  r   OverflowErrorr   rM   r   minr   rL   )r7   rJ   r   d5d2shift2s   &     r0   r   Decimal.as_integer_ratio  s     {{}} !FGG#$NOOK 		N99>r499}$aq ))Bq&QUaZaa ))B!b&,,.2B7F2A:::Atr2   c                &    R \        V 4      ,          # )zDecimal('%s'))r   r   s   &r0   __repr__Decimal.__repr__  s     T**r2   c                   R R.V P                   ,          pV P                  '       d`   V P                  R8X  d
   VR,           # V P                  R8X  d   VR,           V P                  ,           # VR,           V P                  ,           # V P                  \	        V P                  4      ,           pV P                  ^ 8:  d   VR8  d   TpMKV'       g   ^pM@V P                  R8X  d   V^,           ^,          ^,
          pMV^,
          ^,          ^,           pV^ 8:  d&   RpRRV) ,          ,           V P                  ,           pMvV\	        V P                  4      8  d8   V P                  RV\	        V P                  4      ,
          ,          ,           pR pM%V P                  R	V pRV P                  VR	 ,           pWE8X  d   R pM7Vf   \        4       pR
R.VP                  ,          RWE,
          ,          ,           pW6,           V,           V,           # )r   r   r   InfinityrJ   NaNr   r   .NeEz%+d)rL   r   r   rM   r   r   capitals)	r7   engr8   r[   
leftdigitsdotplacer   r   r   s	   &&&      r0   __str__Decimal.__str__  s    Cy$yyCj((c!e|dii//f}tyy00 YYTYY/

 99>j2o!HHYY#"Q!+a/H #Q!+a/Hq=GS8)_,tyy8HTYY'iiXc$))n%< ==GHii	*GTYYxy11H!C$,*W--.*:M1NNC~(3..r2   c                (    V P                  R VR7      # )T)r6  r8   )r9  r7   r8   s   &&r0   to_eng_stringDecimal.to_eng_string
  s     ||g|66r2   c                   V P                   '       d   V P                  VR 7      pV'       d   V# Vf   \        4       pV '       g'   VP                  \        8w  d   V P                  4       pMV P                  4       pVP                  V4      # ry   )r   r   r   rm   r   copy_abscopy_negate_fixr7   r8   rP   s   && r0   __neg__Decimal.__neg__  sq    
 ""7"3C
? lG((K7 --/C""$Cxx  r2   c                   V P                   '       d   V P                  VR 7      pV'       d   V# Vf   \        4       pV '       g'   VP                  \        8w  d   V P                  4       pM\        V 4      pVP                  V4      # r@  )r   r   r   rm   r   rA  r   rC  rD  s   && r0   __pos__Decimal.__pos__)  sj    
 ""7"3C
? lG((K7--/C$-Cxx  r2   c                   V'       g   V P                  4       # V P                  '       d   V P                  VR 7      pV'       d   V# V P                  '       d   V P	                  VR 7      pV# V P                  VR 7      pV# r@  )rA  r   r   rL   rE  rH  )r7   roundr8   rP   s   &&& r0   __abs__Decimal.__abs__>  sq     ==?"""7"3C
:::,,w,/C 
 ,,w,/C
r2   c                
   \        V4      pV\        J d   V# Vf   \        4       pV P                  '       g   VP                  '       d   V P	                  W4      pV'       d   V# V P                  4       '       dS   V P                  VP                  8w  d-   VP                  4       '       d   VP                  \        R4      # \        V 4      # VP                  4       '       d   \        V4      # \        V P                  VP                  4      p^ pVP                  \        8X  d   V P                  VP                  8w  d   ^pV '       gS   V'       gK   \        V P                  VP                  4      pV'       d   ^p\        VRV4      pVP                  V4      pV# V '       g\   \!        WAP                  VP"                  ,
          ^,
          4      pVP%                  WBP                  4      pVP                  V4      pV# V'       g\   \!        W@P                  VP"                  ,
          ^,
          4      pV P%                  WBP                  4      pVP                  V4      pV# \'        V 4      p\'        V4      p\)        WxVP"                  4      w  rx\'        4       p	VP*                  VP*                  8w  d   VP,                  VP,                  8X  d!   \        VRV4      pVP                  V4      pV# VP,                  VP,                  8  d   YrVP*                  ^8X  d,   ^V	n        VP*                  VP*                  uVn        Vn        M7^ V	n        M/VP*                  ^8X  d   ^V	n        ^ ^ uVn        Vn        M^ V	n        VP*                  ^ 8X  d$   VP,                  VP,                  ,           V	n        M"VP,                  VP,                  ,
          V	n        VP.                  V	n        \        V	4      pVP                  V4      pV# )Nz
-INF + INFr   )r  r   r   r   r   r   rL   r   r
   r   r&  r   rm   r   rK   rC  maxrn   _rescaler   
_normalizer[   r   r   )
r7   r   r8   rP   r   negativezeror[   op1op2r   s
   &&&       r0   __add__Decimal.__add__T  s   
 u%N"L? lGu000""52C
!!::,1B1B1D1D"//0@,OOt}$  ""u~%$))UZZ({*tzzU[[/HLEtzz5;;/D"4c2C((7#CJc::4Q67C..&6&67C((7#CJc99w||3A56C--%5%56C((7#CJtnuoc588sxxww#''!&|S#>hhw'
ww Sxx1}%(XXsxx"#(XX]FK"#QCHchFK 88q=377*FJ377*FJWW
fohhw
r2   c                    \        V4      pV\        J d   V# V P                  '       g   VP                  '       d   V P                  WR 7      pV'       d   V# V P	                  VP                  4       VR 7      # r@  )r  r   r   r   rU  rB  r  s   &&& r0   __sub__Decimal.__sub__  si    u%N"Lu000""5":C
 ||E--/|AAr2   c                T    \        V4      pV\        J d   V# VP                  WR 7      # r@  )r  r   rX  r   s   &&&r0   __rsub__Decimal.__rsub__  s*    u%N"L}}T}33r2   c                >   \        V4      pV\        J d   V# Vf   \        4       pV P                  VP                  ,          pV P                  '       g   VP                  '       d   V P                  W4      pV'       d   V# V P                  4       '       d,   V'       g   VP                  \        R4      # \        V,          # VP                  4       '       d,   V '       g   VP                  \        R4      # \        V,          # V P                  VP                  ,           pV '       d	   V'       g!   \        VRV4      pVP                  V4      pV# V P                  R8X  d*   \        W1P                  V4      pVP                  V4      pV# VP                  R8X  d*   \        W0P                  V4      pVP                  V4      pV# \        V 4      p\        V4      p\        V\        VP                   VP                   ,          4      V4      pVP                  V4      pV# )Nz(+-)INF * 0z0 * (+-)INFr   1)r  r   r   rL   r   r   r   r   r
   rY   r   rK   rC  rM   r   r   r   )r7   r   r8   
resultsignrP   	resultexprS  rT  s   &&&     r0   __mul__Decimal.__mul__  s   
 u%N"L? lGZZ%++-
u000""52C
!!"//0@-PP&z22  """//0@-PP&z22II

*	 5":sI>C((7#CJ 99":zz9EC((7#CJ::":yy)DC((7#CJtnuoz3sww/@+A9Mhhw
r2   c                   \        V4      pV\        J d   \        # Vf   \        4       pV P                  VP                  ,          pV P                  '       g   VP                  '       d   V P                  W4      pV'       d   V# V P                  4       '       d-   VP                  4       '       d   VP                  \        R4      # V P                  4       '       d   \        V,          # VP                  4       '       d2   VP                  \        R4       \        VRVP                  4       4      # V'       g6   V '       g   VP                  \        R4      # VP                  \        RV4      # V '       g"   V P                  VP                  ,
          p^ pEMO\!        VP"                  4      \!        V P"                  4      ,
          VP$                  ,           ^,           pV P                  VP                  ,
          V,
          p\'        V 4      p\'        V4      p	V^ 8  d2   \)        VP*                  ^
V,          ,          V	P*                  4      w  rjM1\)        VP*                  V	P*                  ^
V) ,          ,          4      w  rjV
'       d   V^,          ^ 8X  d
   V^,          pMEV P                  VP                  ,
          pW[8  d#   V^
,          ^ 8X  d   V^
,          pV^,          pK(  \        V\-        V4      V4      pVP/                  V4      # )Nz(+-)INF/(+-)INFzDivision by infinityr   z0 / 0zx / 0)r  r   r   rL   r   r   r   r   r
   rY   r	   rK   Etinyr   r   r   r   rM   rn   r   divmodr   r   rC  )r7   r   r8   r[   rP   r   r   shiftrS  rT  	remainder	ideal_exps   &&&         r0   __truediv__Decimal.__truediv__  s?   u%N"!!? lGzzEKK'u000""52C
!!e&7&7&9&9++,<>OPP!!&t,,  ""$$W.DE'c7==?CC ++,=wGG''FF))ejj(CE 

Oc$))n4w||CaGE))ejj(50C4.C5/Cz#)#''BI*=sww#G y#)#''377R%Z3G#H 19>QJE !II

2	o%"*/bLE1HCtSZ5xx  r2   c                *   V P                   VP                   ,          pVP                  4       '       d   V P                  pM \        V P                  VP                  4      pV P	                  4       VP	                  4       ,
          pV '       d   VP                  4       '       g   VR8:  d)   \        VR^ 4      V P                  WBP                  4      3# WRP                  8:  Ed   \        V 4      p\        V4      pVP                  VP                  8  d=   V;P                  ^
VP                  VP                  ,
          ,          ,          un        M;V;P                  ^
VP                  VP                  ,
          ,          ,          un        \        VP                  VP                  4      w  rV^
VP                  ,          8  d7   \        V\        V4      ^ 4      \        V P                   \        V	4      V4      3# VP                  \        R4      p
W3# )   r   z%quotient too large in //, % or divmodr  )rL   r   r   r&  r   rK   rP  rm   rn   r   r   r   re  r   r   r   )r7   r   r8   r[   rh  expdiffrS  rT  qrrP   s   &&&        r0   _divideDecimal._divide6  s}    zzEKK'		IDIIuzz2I--/ENN$44u((**gm$T32MM)-=-=>@ @ll"4.C5/Cww#''!2#'' 1222#'' 122#''377+DA2w||##(s1vq9(SVYGI I ""#5#JLxr2   c                T    \        V4      pV\        J d   V# VP                  WR 7      # r@  )r  r   ri  r   s   &&&r0   __rtruediv__Decimal.__rtruediv__W  s-    u%N"L   77r2   c                   \        V4      pV\        J d   V# Vf   \        4       pV P                  W4      pV'       d   W33# V P                  VP                  ,          pV P                  4       '       dS   VP                  4       '       d   VP                  \        R4      pW33# \        V,          VP                  \        R4      3# V'       gO   V '       g   VP                  \        R4      pW33# VP                  \        RV4      VP                  \        R4      3# V P                  W4      w  rVVP                  V4      pWV3# )Nzdivmod(INF, INF)INF % xzdivmod(0, 0)x // 0x % 0)r  r   r   r   rL   r   r   r
   rY   r   r   rp  rC  )r7   r   r8   rP   r[   quotientrg  s   &&&    r0   
__divmod__Decimal.__divmod__^  s-    u%N"L? lGu.:zzEKK'  ""**+;=OPx'-,,-=yIK K **+<nMx,,^XtL,,-=wGI I #ll5:NN7+	""r2   c                T    \        V4      pV\        J d   V# VP                  WR 7      # r@  )r  r   rz  r   s   &&&r0   __rdivmod__Decimal.__rdivmod__  s-    u%N"L66r2   c                   \        V4      pV\        J d   V# Vf   \        4       pV P                  W4      pV'       d   V# V P	                  4       '       d   VP                  \        R4      # V'       g5   V '       d   VP                  \        R4      # VP                  \        R4      # V P                  W4      ^,          pVP                  V4      pV# )Nrv  rx  z0 % 0)
r  r   r   r   r   r   r
   r   rp  rC  )r7   r   r8   rP   rg  s   &&&  r0   __mod__Decimal.__mod__  s     u%N"L? lGu.J''(8)DD++,<gFF++,=wGGLL03	NN7+	r2   c                T    \        V4      pV\        J d   V# VP                  WR 7      # r@  )r  r   r  r   s   &&&r0   __rmod__Decimal.__rmod__  s*    u%N"L}}T}33r2   c                F   Vf   \        4       p\        VRR7      pV P                  W4      pV'       d   V# V P                  4       '       d   VP	                  \
        R4      # V'       g5   V '       d   VP	                  \
        R4      # VP	                  \        R4      # VP                  4       '       d   \        V 4      pVP                  V4      # \        V P                  VP                  4      pV '       g)   \        V P                  RV4      pVP                  V4      # V P                  4       VP                  4       ,
          pWRP                  ^,           8  d   VP	                  \        4      # VR8:  d-   V P!                  WBP"                  4      pVP                  V4      # \%        V 4      p\%        V4      pVP&                  VP&                  8  d=   V;P(                  ^
VP&                  VP&                  ,
          ,          ,          un        M;V;P(                  ^
VP&                  VP&                  ,
          ,          ,          un        \+        VP(                  VP(                  4      w  r^V	,          V^,          ,           VP(                  8  d   WP(                  ,          p	V^,          pV^
VP                  ,          8  d   VP	                  \        4      # V P                  p
V	^ 8  d   ^V
,
          p
V	) p	\        V
\-        V	4      V4      pVP                  V4      # )NTr  zremainder_near(infinity, x)zremainder_near(x, 0)zremainder_near(0, 0)r   r  )r   r  r   r   r   r
   r   r   rC  r&  r   rK   rL   r   rn   r   rP  rm   r   r   r   re  r   )r7   r   r8   rP   ideal_exponentrm  rS  rT  rn  ro  r[   s   &&&        r0   remainder_nearDecimal.remainder_near  su    ? lGud3u.J ''(8(EG G ++,<,BD D ++,=,BD D $-C88G$$ TYY

3"4::sNCC88G$$ --/ENN$44llQ&&''(:;;b=--0@0@AC88G$$ tnuo77cggGGrCGGcgg-..GGGrCGGcgg-..Gcggsww' Q3!A#; LAFAGLL  ''(:;; zzq5T6DAtSV^<xx  r2   c                6   \        V4      pV\        J d   V# Vf   \        4       pV P                  W4      pV'       d   V# V P	                  4       '       dU   VP	                  4       '       d   VP                  \        R4      # \        V P                  VP                  ,          ,          # V'       gQ   V '       d3   VP                  \        RV P                  VP                  ,          4      # VP                  \        R4      # V P                  W4      ^ ,          # )Nz
INF // INFrw  z0 // 0)r  r   r   r   r   r   r
   rY   rL   r   r   rp  r  s   &&& r0   __floordiv__Decimal.__floordiv__  s    u%N"L? lGu.J  ""++,<lKK&tzzEKK'?@@++NH,0JJ,DF F ++,=xHH||E+A..r2   c                T    \        V4      pV\        J d   V# VP                  WR 7      # r@  )r  r   r  r   s   &&&r0   __rfloordiv__Decimal.__rfloordiv__  s-    u%N"L!!$!88r2   c                    V P                  4       '       d9   V P                  4       '       d   \        R 4      hV P                  '       d   RMRpM\	        V 4      p\        V4      # )z%Cannot convert signaling NaN to floatz-nannan)r   r   r   rL   r   r   r7   ss   & r0   	__float__Decimal.__float__  sE    ;;==||~~ !HII***%AD	AQxr2   c                   V P                   '       dC   V P                  4       '       d   \        R 4      hV P                  4       '       d   \	        R4      hRV P
                  ,          pV P                  ^ 8  d5   V\        V P                  4      ,          ^
V P                  ,          ,          # T\        V P                  RV P                   ;'       g    R4      ,          # )zCannot convert NaN to integerz"Cannot convert infinity to integerNr   r   )	r   r   r   r   r%  rL   r   r   rM   r  s   & r0   __int__Decimal.__int__#  s    {{}} !@AA!!###$HII$**99>S^#B		M11S:DII.55#666r2   c                    V # r-   r.   r   s   &r0   realDecimal.real2  s    r2   c                    \        ^ 4      # rI   r   r   s   &r0   imagDecimal.imag6  s    qzr2   c                    V # r-   r.   r   s   &r0   	conjugateDecimal.conjugate:  s    r2   c                *    \        \        V 4      4      # r-   )complexr   r   s   &r0   __complex__Decimal.__complex__=  s    uT{##r2   c                   V P                   pVP                  VP                  ,
          p\        V4      V8  dF   V\        V4      V,
          R  P	                  R4      p\        V P                  W P                  R4      # \        V 4      # )Nr   T)	rM   rn   r   r   r   rK   rL   r   r   )r7   r8   payloadmax_payload_lens   &&  r0   rN   Decimal._fix_nan@  sm    )) ",,6w</)c'l?:;<CCCHG#DJJDIIt}r2   c                   V P                   '       d3   V P                  4       '       d   V P                  V4      # \        V 4      # VP	                  4       pVP                  4       pV '       g   VP                  V.VP                  ,          p\        \        V P                  V4      V4      pWPP                  8w  d-   VP                  \        4       \        V P                  R V4      # \        V 4      # \        V P                   4      V P                  ,           VP"                  ,
          pWc8  dN   VP                  \$        RV P                  4      pVP                  \&        4       VP                  \(        4       V# Wb8  pV'       d   TpV P                  V8  Ed   \        V P                   4      V P                  ,           V,
          p	V	^ 8  d!   \        V P                  RV^,
          4      p ^ p	V P*                  VP,                  ,          p
V
! W	4      pV P                   RV	 ;'       g    R pV^ 8  dD   \/        \1        V4      ^,           4      p\        V4      VP"                  8  d   VRR pV^,          pWc8  d#   VP                  \$        RV P                  4      pM\        V P                  W4      pV'       d   V'       d   VP                  \2        4       V'       d   VP                  \4        4       V'       d   VP                  \&        4       VP                  \(        4       V'       g   VP                  \        4       V# V'       d   VP                  \4        4       VP                  ^8X  dh   V P                  V8  dW   VP                  \        4       V P                   R V P                  V,
          ,          ,           p\        V P                  W4      # \        V 4      # )r   
above Emaxr^  Nr   )r   r   rN   r   rd  Etopro   r   r&  rO  r   r   r	   rK   rL   r   rM   rn   r   r   r   _pick_rounding_functionrm   r   r   r   r   )r7   r8   rd  r  exp_maxnew_expexp_minrP   self_is_subnormalr   rounding_methodchangedr   r   s   &&            r0   rC  Decimal._fixL  s    {{}}}}W-- t}$ ||~||T*7==9G#dii/9G))#$$W-'

CAAt}$ dii.499,w||;>&&xtzzJC  )  )J#OG 99w^dii/'9Fz'

CC"::7;K;KLO%d3GIIgv&--#E{CJqL)u:,!#2JEqLG ~**8\4::N&tzz5B ,$$Y/ $$Y/$$W-  )$$W-J  + ==A$))d"2  )))c499t+;&<<K#DJJBB t}r2   c                B    \        V P                  V4      '       d   ^ # R# )rI   r   )
_all_zerosrM   r7   rn   s   &&r0   _round_downDecimal._round_down  s    dii&&Ir2   c                &    V P                  V4      ) # r-   )r  r  s   &&r0   	_round_upDecimal._round_up  s      &&&r2   c                v    V P                   V,          R 9   d   ^# \        V P                   V4      '       d   ^ # R# )56789r   )rM   r  r  s   &&r0   _round_half_upDecimal._round_half_up  s.    99T?g%		4((Ir2   c                `    \        V P                  V4      '       d   R# V P                  V4      # r   r   _exact_halfrM   r  r  s   &&r0   _round_half_downDecimal._round_half_down  s)    tyy$''I&&t,,r2   c                    \        V P                  V4      '       d)   V^ 8X  g    V P                  V^,
          ,          R9   d   R# V P                  V4      # )rI   02468r   r  r  s   &&r0   _round_half_evenDecimal._round_half_even  sD    tyy$''diiQ/7:I&&t,,r2   c                l    V P                   '       d   V P                  V4      # V P                  V4      ) # r-   rL   r  r  s   &&r0   _round_ceilingDecimal._round_ceiling  s0    :::##D))$$T***r2   c                l    V P                   '       g   V P                  V4      # V P                  V4      ) # r-   r  r  s   &&r0   _round_floorDecimal._round_floor  s0    zzz##D))$$T***r2   c                    V'       d1   V P                   V^,
          ,          R9  d   V P                  V4      # V P                  V4      ) # )r   05)rM   r  r  s   &&r0   _round_05upDecimal._round_05up  s>    DIId1f%T1##D))$$T***r2   )r   r   r   r   r   r   r   r   c                D   VeA   \        V\        4      '       g   \        R4      h\        ^ RV) 4      pV P	                  V4      # V P
                  '       d-   V P                  4       '       d   \        R4      h\        R4      h\        V P                  ^ \        4      4      # )Nz+Second argument to round should be integralr^  cannot round a NaNcannot round an infinity)r   r   r   rK   quantizer   r  r   r%  rP  r   )r7   rJ   r   s   && r0   	__round__Decimal.__round__  s    ^ =a%% MNN"1cA2.C==%% {{}} !566#$>??4==O455r2   c                    V P                   '       d-   V P                  4       '       d   \        R 4      h\        R4      h\	        V P                  ^ \        4      4      # r  r  )r   r  r   r%  r   rP  r   r   s   &r0   	__floor__Decimal.__floor__3  sI     {{}} !566#$>??4==K011r2   c                    V P                   '       d-   V P                  4       '       d   \        R 4      h\        R4      h\	        V P                  ^ \        4      4      # r  )r   r  r   r%  r   rP  r   r   s   &r0   __ceil__Decimal.__ceil__B  sI     {{}} !566#$>??4==M233r2   c           	        \        VR R7      p\        VR R7      pV P                  '       g   VP                  '       Ed9   Vf   \        4       pV P                  R8X  d   VP	                  \
        RV 4      # VP                  R8X  d   VP	                  \
        RV4      # V P                  R8X  d   T pEM>VP                  R8X  d   TpEM)V P                  R8X  dH   V'       g   VP	                  \
        R4      # \        V P                  VP                  ,          ,          pMVP                  R8X  dG   V '       g   VP	                  \
        R4      # \        V P                  VP                  ,          ,          pMy\        V P                  VP                  ,          \        \        V P                  4      \        VP                  4      ,          4      V P                  VP                  ,           4      pXP                  W#4      # )Tr  r   r   rJ   r   zINF * 0 in fmaz0 * INF in fma)r  r   r   r   r   r
   rY   rL   rK   r   r   rM   rU  )r7   r   thirdr8   products   &&&& r0   fmaDecimal.fmaQ  s    ud3ud3 u000$,yyC++,<fdKKzzS ++,<feLLyyCs"c!"//0@0@B B)$**u{{*BCs""//0@0@B B)$**u{{*BC&tzzEKK'?'*3tyy>C

O+K'L'+yy5::'=?G u..r2   c                   \        V4      pV\        J d   V# \        V4      pV\        J d   V# Vf   \        4       pV P                  4       pVP                  4       pVP                  4       pV'       g   V'       g	   V'       d   V^8X  d   VP	                  \
        RV 4      # V^8X  d   VP	                  \
        RV4      # V^8X  d   VP	                  \
        RV4      # V'       d   V P                  V4      # V'       d   VP                  V4      # VP                  V4      # V P                  4       '       d-   VP                  4       '       d   VP                  4       '       g   VP	                  \
        R4      # V^ 8  d   VP	                  \
        R4      # V'       g   VP	                  \
        R4      # VP                  4       VP                  8  d   VP	                  \
        R4      # V'       g   V '       g   VP	                  \
        R4      # VP                  4       '       d   ^ pMV P                  p\        \        V4      4      p\        V P                  4       4      p\        VP                  4       4      p	VP                  V,          \!        ^
VP"                  V4      ,          V,          p\%        V	P"                  4       F  p
\!        V^
V4      pK  	  \!        WP                  V4      p\'        V\)        V4      ^ 4      # )Nr   z@pow() 3rd argument not allowed unless all arguments are integerszApow() 2nd argument cannot be negative when 3rd argument specifiedzpow() 3rd argument cannot be 0zSinsufficient precision: pow() 3rd argument must not have more than precision digitszXat least one of pow() 1st argument and 2nd argument must be nonzero; 0**0 is not defined)r  r   r   r   r   r
   rN   
_isintegerr   rn   _isevenrL   r   r   r   to_integral_valuer  r   rangerK   r   )r7   r   modulor8   r   r   modulo_is_nanr[   baseexponentis   &&&&       r0   _power_moduloDecimal._power_modulo}  s    u%N"L'^#M? lG kkm||~,-a++,<f(,. .q ++,<f(-/ /!++,<f(.0 0}}W--~~g..??7++ !!  ""!!##''(8)LM M 19''(8)OP P ''(8(HJ J
 ??,''(8);< < T''(8)>? ? ==??D::D S[!..01E3356 6!CDHHf$==Gx||$AtR(D %4v.c$i33r2   c                   \        V 4      pVP                  VP                  rTV^
,          ^ 8X  d   V^
,          pV^,          pK"  \        V4      pVP                  VP                  rV^
,          ^ 8X  d   V^
,          pV^,          pK"  V^8X  d   WW,          pV^
,          ^ 8X  d   V^
,          pV^,          pK"  V^ 8  d   R# V^
V,          ,          p	VP                  ^8X  d   V	) p	VP	                  4       '       dH   VP
                  ^ 8X  d7   V P                  \        V4      ,          p
\        W,
          V^,
          4      pM^ p\        ^ RRV,          ,           W,
          4      # VP                  ^8X  Ed   V^
,          pVR9   d   WD) ,          V8w  d   R# \        V4      ^,
          pV^],          ^A,          pV\        \        V4      4      8  d   R# \        W,          V4      p\        WW,          V4      pVe   Vf   R# W8  d   R# ^V,          pMV^8X  d   \        V4      ^,          ^A,          p\        ^V,          V4      w  rOV'       d   R# V^,          ^ 8X  d   V^,          pV^,          pK"  V^
,          ^,          pV\        \        V4      4      8  d   R# \        W,          V4      p\        WW,          V4      pVe   Vf   R# W8  d   R# ^V,          pMR# \        V4      p\        V4      V8  d   R# V) V,
          p\        ^ VV4      # V^ 8  d   V^
V,          ,          ^ppMV^ 8w  d,   \        \        \        Wu,          4      4      4      V) 8:  d   R# \        V4      p\        \        \        V4      V,          4      4      V) 8:  d   R# T^
V) ,          ppV^,          V^,          u;8X  d   ^ 8X  d   M MV^,          pV^,          pK4  V^,          V^,          u;8X  d   ^ 8X  d   M MV^,          pV^,          pK4  V^8  d   XV8:  d   R# \        VV4      w  ppV^ 8w  d   R# ^\        V4      ) V,          ) ,          p \        VVV^,
          ,          4      w  ppVV8:  d   M VV^,
          ,          V,           V,          pKF  VV8X  d   V^ 8X  g   R# TpV^8  d!   VV^d,          \        V4      ,          8  d   R# VV,          pVV,          p\        V4      p\        V4      V8  d   R# VP	                  4       '       dQ   VP
                  ^ 8X  d@   V P                  \        V4      ,          p
\        WZ,
          V\        V4      ,
          4      pM^ p\        ^ VRV,          ,           W[,
          4      # )
   Nr^  r   )rl           )r   r   r   r[   r  rL   r   r&  rK   _nbitsr   r   _decimal_lshift_exactre  r   	_log10_lb)r7   r   pxxcxeyycyer  r  zeros
last_digitr2  emaxrg  strxcr   rJ   xc_bitsremarn  ro  str_xcs   &&&                      r0   _power_exactDecimal._power_exact  s   t TNB2gl2IB!GBUOB2gl2IB!GB 7HBr'Q,r	aAvBF{Hvv{$9!!ekkQ&6!%3u:!5H3QqS9#AsSYGG 66Q;bJY&8r>2JqL6 tRxSY' *!&"5*27B79
8Tq 2JrM2% &q!tR 01fk1HBFA
 tQwSY')!&"5*27B79
8T GE5zA~BB#Aub11 7b"f9aqAqQw3s3ru:/B36RjG3s2ww'(RC/rRCyqAa%1q5%A%aaa%1q5%A%aa q5!|RmGBax r
{A~&&Ab!ac(+16AaC1q(AFqAvB 6a!C%2..U
a Rv;?
 %++"2!YYs5z1N)1S[=9EE6#e)#3RX>>r2   c                L   Ve   V P                  WV4      # \        V4      pV\        J d   V# Vf   \        4       pV P	                  W4      pV'       d   V# V'       g%   V '       g   VP                  \        R4      # \        # ^ pV P                  ^8X  d^   VP                  4       '       d   VP                  4       '       g   ^pMV '       d   VP                  \        R4      # V P                  4       p V '       g,   VP                  ^ 8X  d   \        VR^ 4      # \        V,          # V P                  4       '       d,   VP                  ^ 8X  d   \        V,          # \        VR^ 4      # V \        8X  Ed    VP                  4       '       d   VP                  ^8X  d   ^ pM(WP                  8  d   VP                  pM\!        V4      pV P"                  V,          pV^VP                  ,
          8  d)   ^VP                  ,
          pVP                  \$        4       M=VP                  \&        4       VP                  \$        4       ^VP                  ,
          p\        VRRV) ,          ,           V4      # V P)                  4       pVP                  4       '       d2   VP                  ^ 8H  V^ 8  8X  d   \        VR^ 4      # \        V,          # R pRp	V P+                  4       VP)                  4       ,           p
V^ 8  VP                  ^ 8H  8X  dC   V
\-        \/        VP0                  4      4      8  d   \        VRVP0                  ^,           4      pM>VP3                  4       pV
\-        \/        V) 4      4      8  d   \        VRV^,
          4      pVfQ   V P5                  WP                  ^,           4      pVe+   V^8X  d"   \        ^VP6                  VP"                  4      pRp	Vf   VP                  p\9        V 4      pVP                   VP:                  r\9        V4      pVP                   VP:                  ppVP<                  ^8X  d   V) p^p \?        WVVVV,           4      w  ppV^^
\-        \/        V4      4      V,
          ^,
          ,          ,          ,          '       d   MV^,          pKb  \        V\/        V4      V4      pV	'       Ed   VP                  4       '       Eg   \-        VP6                  4      VP                  8:  dn   VP                  ^,           \-        VP6                  4      ,
          p\        VP                  VP6                  RV,          ,           VP"                  V,
          4      pVPA                  4       pVPC                  4        \D         F  p^ VPF                  V&   K  	  VPI                  V4      pVP                  \&        4       VPJ                  \L        ,          '       d   VP                  \N        4       VPJ                  \P        ,          '       d"   VP                  \P        RVP                  4       \N        \L        \&        \$        \R        3 F/  pVPJ                  V,          '       g   K  VP                  V4       K1  	  V# VPI                  V4      pV# )Nz0 ** 0z+x ** y with x negative and y not an integerr   r^  FTr  )*r  r  r   r   r   r   r
   _OnerL   r  r  rB  rK   rY   r   rn   r   r   r   r   r   _log10_exp_boundr   r   ro   rd  r  rM   r   r   r[   _dpowerr{   r|   r   r   rC  flagsr   r   r   r	   )r7   r   r  r8   rP   result_sign
multiplierr   self_adjexactboundrd  r  r  r  r   r  r  r  extrar   rm  
newcontext	exceptions   &&&&                    r0   __pow__Decimal.__pow__  sM   0 %%eW==u%N"L? lG u.J ++,<hGG ::?!!}}"#K "//0@EG G ##%D {{a'S!<<&{33 {{a&{33'S!<<
 4<!!
 ;;!#!"J\\)!(J!$UJii*,7<<'GLL.C((1$$W-$$W-n#KS#XsCC ==? q hl3'S!<<&{33  %%'%..*::Mu{{a/0 C-..&{CaH MMOECK((&{CqA ;##E<<!+;<C!#*1chhAC ;AAUUAEEAUUAEEBvv{S E$RRQuW=
sAb3s5z?1#4Q#67788
";E
C@C 5))++ 388},!,,*S]:&syy#((3w;2F'*xx'79 !J""$%	./
  + & ((:&C ##G,	**''	2 ))$$X|SYYG&	7GWL	##I..((3 M 
 ((7#C
r2   c                V    \        V4      pV\        J d   V# VP                  WVR 7      # r@  )r  r   r  )r7   r   r  r8   s   &&&&r0   __rpow__Decimal.__rpow__	  s,    u%N"L}}T7};;r2   c                `   Vf   \        4       pV P                  '       d   V P                  VR7      pV'       d   V# V P                  V4      pVP	                  4       '       d   V# V'       g   \        VP                  R^ 4      # VP                  VP                  4       .VP                  ,          p\        VP                  4      pVP                  pVP                  V^,
          ,          R8X  d   Wd8  d   V^,          pV^,          pK9  \        VP                  VP                  R V V4      # )Nry   r   )r   r   r   rC  r   rK   rL   ro   r  r   r   rM   r   )r7   r8   rP   dupr  endr   s   &&     r0   	normalizeDecimal.normalize	  s     ? lG""7"3C
ii ??J#CIIsA66<<0?#((mhhhhs1uo$1HC1HC		388DS>3??r2   c                    \        VR R7      pVf   \        4       pVf   VP                  pV P                  '       g   VP                  '       d   V P	                  W4      pV'       d   V# VP                  4       '       g   V P                  4       '       dN   VP                  4       '       d"   V P                  4       '       d   \        V 4      # VP                  \        R4      # VP                  4       VP                  u;8:  d   VP                  8:  g   M VP                  \        R4      # V '       g3   \        V P                  RVP                  4      pVP                  V4      # V P                  4       pWSP                  8  d   VP                  \        R4      # WQP                  ,
          ^,           VP                   8  d   VP                  \        R4      # V P#                  VP                  V4      pVP                  4       VP                  8  d   VP                  \        R4      # \%        VP&                  4      VP                   8  d   VP                  \        R4      # V'       d5   VP                  4       VP(                  8  d   VP                  \*        4       VP                  V P                  8  d1   W@8w  d   VP                  \,        4       VP                  \.        4       VP                  V4      pV# )Tr  zquantize with one INFz)target exponent out of bounds in quantizer   z9exponent of quantize result too large for current contextz7quantize result has too many digits for current context)r  r   rm   r   r   r   r   r   r
   rd  r   ro   rK   rL   rC  r   rn   rP  r   rM   r   r   r   r   )r7   r   rm   r8   rP   r   s   &&&&  r0   r  Decimal.quantize	  sU   
 S$/? lG''Hs""30C
  D$4$4$6$6??$$)9)9););"4=(++,<(?A A 388;w||;''(8>@ @ "4::sCHH=C88G$$<<'''(8(ce e88#a'',,6''(8(ac c mmCHHh/<<>GLL(''(8(ce esxx=7<<'''(8(ac c 3<<>GLL0  +88dii{$$W-  ) hhw
r2   c                F   \        VR R7      pV P                  '       g   VP                  '       dY   V P                  4       ;'       d    VP                  4       ;'       g)    V P                  4       ;'       d    VP                  4       # V P                  VP                  8H  # r  )r  r   r  is_infiniter   r   s   &&&r0   same_quantumDecimal.same_quantum	  s~     ud3u000KKM44elln ? ?$$&>>5+<+<+>@yyEJJ&&r2   c                   V P                   '       d   \        V 4      # V '       g   \        V P                  R V4      # V P                  V8  dA   \        V P                  V P
                  R V P                  V,
          ,          ,           V4      # \        V P
                  4      V P                  ,           V,
          pV^ 8  d!   \        V P                  RV^,
          4      p ^ pV P                  V,          pV! W4      pV P
                  RV ;'       g    R pV^8X  d   \        \        V4      ^,           4      p\        V P                  Wa4      # )r   r^  N)
r   r   rK   rL   r   rM   r   r  r   r   )r7   r   rm   r   this_functionr  r   s   &&&    r0   rP  Decimal._rescale
  s    4= #DJJS9999#DJJ(,		CS4I(I3P P
 TYY$))+c1A:#DJJSU;DF44X>-		'6"))ca<E
1%E

E77r2   c                r   V^ 8:  d   \        R4      hV P                  '       g	   V '       g   \        V 4      # V P                  V P	                  4       ^,           V,
          V4      pVP	                  4       V P	                  4       8w  d/   VP                  VP	                  4       ^,           V,
          V4      pV# )rI   z'argument should be at least 1 in _round)r   r   r   rP  r   )r7   placesrm   rP   s   &&& r0   _roundDecimal._round0
  s     Q;FGG44= mmDMMOA-f4h?
 <<>T]]_,,,s||~a/6AC
r2   c                   V P                   '       d(   V P                  VR 7      pV'       d   V# \        V 4      # V P                  ^ 8  d   \        V 4      # V '       g   \	        V P
                  R^ 4      # Vf   \        4       pVf   VP                  pV P                  ^ V4      pW08w  d   VP                  \        4       VP                  \        4       V# )ry   r   )r   r   r   r   rK   rL   r   rm   rP  r   r   r   r7   rm   r8   rP   s   &&& r0   to_integral_exactDecimal.to_integral_exactG
  s     ""7"3C
4= 99>4= #DJJQ77? lG''HmmAx(;  )W%
r2   c                   Vf   \        4       pVf   VP                  pV P                  '       d(   V P                  VR7      pV'       d   V# \	        V 4      # V P
                  ^ 8  d   \	        V 4      # V P                  ^ V4      # )Nry   )r   rm   r   r   r   r   rP  r3  s   &&& r0   r  Decimal.to_integral_valued
  sv    ? lG''H""7"3C
4= 99>4= ==H--r2   c                d   Vf   \        4       pV P                  '       dO   V P                  VR7      pV'       d   V# V P                  4       '       d   V P                  ^ 8X  d   \        V 4      # V '       g:   \        V P                  RV P                  ^,          4      pVP                  V4      # V P                  ^8X  d   VP                  \        R4      # VP                  ^,           p\        V 4      pVP                  ^,	          pVP                  ^,          '       d8   VP                  ^
,          p\        V P                   4      ^,	          ^,           pM/VP                  p\        V P                   4      ^,           ^,	          pW7,
          pV^ 8  d   V^dV,          ,          pRp	M\#        V^dV) ,          4      w  rjV
'       * p	WX,          p^
V,          p Wk,          pW8:  d   MW,           ^,	          pK!  T	;'       d    W,          V8H  p	V	'       d3   V^ 8  d   V^
V,          ,          pMV^
V) ,          ,          pWX,          pMV^,          ^ 8X  d
   V^,          p\        ^ \%        V4      V4      pVP'                  4       pVP)                  \*        4      pVP                  V4      pWn        V# )Nry   r   zsqrt(-x), x > 0T)r   r   r   r   rL   r   rK   r   rC  r   r
   rn   r   r   r   r   rM   re  r   _shallow_copy_set_roundingr   rm   )r7   r8   rP   rn   opr2  clrf  r  rg  rJ   rn  rm   s   &&            r0   sqrtDecimal.sqrtw
  s)   ? lG""7"3C
!!djjAot}$"4::sDIINCC88G$$::?''(8:KLL, ||A~ d^FFaK66A::ATYY1$)AADIIq A%A A:eOAE!!S5&[1LA!ME	
 HAvEQJ""!#(zb%iR%ZJA 1uzQq#a&!, '')((9hhw#
r2   c                
   \        VR R7      pVf   \        4       pV P                  '       g   VP                  '       d   V P                  4       pVP                  4       pV'       g	   V'       dP   V^8X  d   V^ 8X  d   V P	                  V4      # V^8X  d   V^ 8X  d   VP	                  V4      # V P                  W4      # V P                  V4      pV^ 8X  d   V P                  V4      pVR8X  d   TpMT pVP	                  V4      # Tr  r   r  r   r   r   rC  r   r   compare_totalr7   r   r8   snonr<  rP   s   &&&    r0   rO  Decimal.max
  s     ud3? lGu000 BBR7rQw99W--7rQw ::g..''77IIe6 ""5)A7CCxx  r2   c                
   \        VR R7      pVf   \        4       pV P                  '       g   VP                  '       d   V P                  4       pVP                  4       pV'       g	   V'       dP   V^8X  d   V^ 8X  d   V P	                  V4      # V^8X  d   V^ 8X  d   VP	                  V4      # V P                  W4      # V P                  V4      pV^ 8X  d   V P                  V4      pVR8X  d   T pMTpVP	                  V4      # rA  rB  rD  s   &&&    r0   r&  Decimal.min  s     ud3? lGu000 BBR7rQw99W--7rQw ::g..''77IIe6""5)A7CCxx  r2   c                    V P                   '       d   R # V P                  ^ 8  d   R# V P                  V P                  R pVR\        V4      ,          8H  # )FTNr   )r   r   rM   r   )r7   rests   & r0   r  Decimal._isinteger&  sF    99>yy$s3t9}$$r2   c                    V '       d   V P                   ^ 8  d   R# V P                  RV P                   ,           ,          R9   # )rI   Tr  r   )r   rM   r   s   &r0   r  Decimal._iseven/  s.    tyy1}yyDII&'11r2   c                     V P                   \        V P                  4      ,           ^,
          #   \         d     ^ # i ; ir   )r   r   rM   r   r   s   &r0   r   Decimal.adjusted5  s5    	99s499~-11 		s   ,/ >>c                    V # r-   r.   r   s   &r0   	canonicalDecimal.canonical=  s	     r2   c                v    \        VR R7      pV P                  W4      pV'       d   V# V P                  WR7      # Tr  ry   )r  r   r  r  s   &&& r0   compare_signalDecimal.compare_signalE  s9     u5&&u6J||E|33r2   c                   \        VR R7      pV P                  '       d   VP                  '       g   \        # V P                  '       g   VP                  '       d   \        # V P                  pV P	                  4       pVP	                  4       pV'       g	   V'       d   WE8X  d}   \        V P                  4      V P                  3p\        VP                  4      VP                  3pWg8  d   V'       d   \        # \        # Wg8  d   V'       d   \        # \        # \        # V'       d6   V^8X  d   \        # V^8X  d   \        # V^8X  d   \        # V^8X  d   \        # M4V^8X  d   \        # V^8X  d   \        # V^8X  d   \        # V^8X  d   \        # W8  d   \        # W8  d   \        # V P                  VP                  8  d   V'       d   \        # \        # V P                  VP                  8  d   V'       d   \        # \        # \        # r  )	r  rL   _NegativeOner  r   r   rM   _Zeror   )r7   r   r8   r[   self_nan	other_nanself_key	other_keys   &&&     r0   rC  Decimal.compare_totalQ  s    ud3 :::ekkkzzzekkkKzz ;;=LLN	y$tyy>4994

OUZZ7	'#++'++#q=''>Kq=''>K " q=K>''q=K>''<<K99uzz!##99uzz!##r2   c                ~    \        VR R7      pV P                  4       pVP                  4       pVP                  V4      # r  )r  rA  rC  )r7   r   r8   r  os   &&&  r0   compare_total_magDecimal.compare_total_mag  s6    
 ud3MMONNq!!r2   c                Z    \        ^ V P                  V P                  V P                  4      # r  )rK   rM   r   r   r   s   &r0   rA  Decimal.copy_abs  s!    499dii9I9IJJr2   c                    V P                   '       d-   \        ^ V P                  V P                  V P                  4      # \        ^V P                  V P                  V P                  4      # r  )rL   rK   rM   r   r   r   s   &r0   rB  Decimal.copy_negate  sI    :::#Atyy$))T=M=MNN#Atyy$))T=M=MNNr2   c                    \        VR R7      p\        VP                  V P                  V P                  V P
                  4      # r  )r  rK   rL   rM   r   r   r   s   &&&r0   	copy_signDecimal.copy_sign  s6    ud3TYY $		4+;+;= 	=r2   c                   Vf   \        4       pV P                  VR7      pV'       d   V# V P                  4       R8X  d   \        # V '       g   \        # V P                  4       ^8X  d   \        V 4      # VP                  pV P                  4       pV P                  ^ 8X  dR   V\        \        VP                  ^,           ^,          4      4      8  d!   \        ^ RVP                  ^,           4      pEMV P                  ^8X  d[   V\        \        VP                  4       ) ^,           ^,          4      4      8  d%   \        ^ RVP                  4       ^,
          4      pEM2V P                  ^ 8X  d3   WC) 8  d,   \        ^ RRV^,
          ,          ,           R,           V) 4      pMV P                  ^8X  d3   WC) ^,
          8  d%   \        ^ RV^,           ,          V) ^,
          4      pM\        V 4      pVP                  VP                   rvVP"                  ^8X  d   V) p^p \%        WgW8,           4      w  rV	^^
\        \        V	4      4      V,
          ^,
          ,          ,          ,          '       d   MV^,          pK^  \        ^ \        V	4      V
4      pVP'                  4       pVP)                  \*        4      pVP-                  V4      pWn        V# )Nry   r^  r   rl   r   )r   r   r   r[  r  r   rn   r   rL   r   r   ro   rK   rd  r   r   r   r[   _dexpr9  r:  r   rC  rm   )r7   r8   rP   r  adjr;  r<  r2  r  r   r   rm   s   &&          r0   r   Decimal.exp  s2    ? lG w/J #L K "4=  LLmmo ::?sSgll1na-?)@%AA"1c7<<>:CZZ1_s30@0BA/E+F'G!G"1c7==?1+<=CZZ1_r"1cC1Io&;aR@CZZ1_r!t"1c1Q3i!A6C $B66266qww!|B
 E"11
Ab3s5z?1#4Q#67788
"1c%j#6C '')((9hhw#
r2   c                    R # )Tr.   r   s   &r0   is_canonicalDecimal.is_canonical  s     r2   c                $    V P                   '       * # r-   )r   r   s   &r0   	is_finiteDecimal.is_finite	  s     ####r2   c                     V P                   R 8H  # )r   r   r   s   &r0   r(  Decimal.is_infinite      yyCr2   c                     V P                   R9   # )rJ   r   rw  r   s   &r0   r  Decimal.is_nan  s    yyJ&&r2   c                    V P                   '       g	   V '       g   R # Vf   \        4       pVP                  V P                  4       8*  # r   )r   r   r   r   r<  s   &&r0   	is_normalDecimal.is_normal  s4    4? lG||t}}..r2   c                     V P                   R 8H  # )rJ   rw  r   s   &r0   r   Decimal.is_qnan!  ry  r2   c                     V P                   ^8H  # rP  )rL   r   s   &r0   	is_signedDecimal.is_signed%  s    zzQr2   c                     V P                   R 8H  # )r   rw  r   s   &r0   r   Decimal.is_snan)  ry  r2   c                    V P                   '       g	   V '       g   R # Vf   \        4       pV P                  4       VP                  8  # r   )r   r   r   r   r<  s   &&r0   is_subnormalDecimal.is_subnormal-  s4    4? lG}}--r2   c                R    V P                   '       * ;'       d    V P                  R 8H  # r   r   r   s   &r0   is_zeroDecimal.is_zero5  s"    ###88		S(88r2   c                p   V P                   \        V P                  4      ,           ^,
          pV^8  d*   \        \        V^,          ^
,          4      4      ^,
          # VR8:  d1   \        \        RV,
          ^,          ^
,          4      4      ^,
          # \	        V 4      pVP
                  VP                  rCV^ 8X  dJ   \        V^
V) ,          ,
          4      p\        V4      p\        V4      \        V4      ,
          WV8  ,
          # V\        \        ^
V) ,          V,
          4      4      ,           ^,
          # )r   r  r   r   r   rM   r   r   r   r   r7   rn  r;  r<  r2  numdens   &      r0   _ln_exp_boundDecimal._ln_exp_bound9  s     ii#dii.(1,!8s3r62:'!++"9sBsFB;?+,q00d^vvrvv1!8aQBh-Ca&Cs8c#h&#)443s2r6A:''!++r2   c           
     @   Vf   \        4       pV P                  VR7      pV'       d   V# V '       g   \        # V P                  4       ^8X  d   \        # V \
        8X  d   \        # V P                  ^8X  d   VP                  \        R4      # \        V 4      pVP                  VP                  rTVP                  pW`P                  4       ,
          ^,           p \        WEV4      pV^^
\!        \#        \%        V4      4      4      V,
          ^,
          ,          ,          ,          '       d   MV^,          pK_  \'        \        V^ 8  4      \#        \%        V4      4      V) 4      pVP)                  4       pVP+                  \,        4      p	VP/                  V4      pWn        V# )Nry   zln of a negative value)r   r   _NegativeInfinityr   	_Infinityr  r[  rL   r   r
   r   r   r   rn   r  _dlogr   r   r   rK   r9  r:  r   rC  rm   
r7   r8   rP   r;  r<  r2  r  r/  r   rm   s
   &&        r0   ln
Decimal.lnR  s`    ? lG w/J $$ " 4<L ::?''(8(@B B d^vvrvv1LL ''))A-!'E"s3s5z?3A5a78899aKFs57|SU_vgF'')((9hhw#
r2   c                l   V P                   \        V P                  4      ,           ^,
          pV^8  d   \        \        V4      4      ^,
          # VR8:  d#   \        \        RV,
          4      4      ^,
          # \	        V 4      pVP
                  VP                  rCV^ 8X  dX   \        V^
V) ,          ,
          4      p\        ^V,          4      p\        V4      \        V4      ,
          WV8  ,
          ^,           # \        ^
V) ,          V,
          4      p\        V4      V,           VR8  ,
          ^,
          # )r   231r  r   r  r  s   &      r0   r  Decimal._log10_exp_bound  s     ii#dii.(1,!8s3x=?""9s2c6{#A%%d^vvrvv1!8aQBh-Cc!e*Cs8c#h&#)4q88"qb&(m3x!|sU{+a//r2   c           
     .   Vf   \        4       pV P                  VR7      pV'       d   V# V '       g   \        # V P                  4       ^8X  d   \        # V P
                  ^8X  d   VP                  \        R4      # V P                  ^ ,          R8X  dq   V P                  R,          R\        V P                  4      ^,
          ,          8X  d8   \        V P                  \        V P                  4      ,           ^,
          4      pM\        V 4      pVP                  VP                  rTVP                  pW`P!                  4       ,
          ^,           p \#        WEV4      pV^^
\        \%        \'        V4      4      4      V,
          ^,
          ,          ,          ,          '       d   MV^,          pK_  \)        \        V^ 8  4      \%        \'        V4      4      V) 4      pVP+                  4       pVP-                  \.        4      p	VP1                  V4      pWn        V# )Nry   zlog10 of a negative valuer^  :r   NNr   )r   r   r  r   r  rL   r   r
   rM   r   r   r   r   r   r   rn   r  _dlog10r   r   rK   r9  r:  r   rC  rm   r  s
   &&        r0   log10Decimal.log10  s    ? lG w/J $$ " ::?''(8(CE E 99Q<3499R=CTYY!9K4L#L$))c$))n4q89C $B66266qA ,,..q0Ff-Ab3s3u:#7#9!#;<<==!"3uQw<SZ6'JC'')((9hhw#
r2   c                    V P                  VR 7      pV'       d   V# Vf   \        4       pV P                  4       '       d   \        # V '       g   VP	                  \
        R^4      # \        V P                  4       4      pVP                  V4      # )ry   zlogb(0))	r   r   r   r  r   r   r   r   rC  rD  s   && r0   logbDecimal.logb  s}     w/J? lG  ''	1EE
 dmmo&xx  r2   c                    V P                   ^ 8w  g   V P                  ^ 8w  d   R# V P                   F  pVR9  g   K   R# 	  R# )rI   F01T)rL   r   rM   )r7   digs   & r0   
_islogicalDecimal._islogical  s9     ::?dii1n99C$  r2   c                4   VP                   \        V4      ,
          pV^ 8  d   RV,          V,           pMV^ 8  d   W!P                   ) R pVP                   \        V4      ,
          pV^ 8  d   RV,          V,           pW#3# V^ 8  d   W1P                   ) R pW#3# rI   r   N)rn   r   )r7   r8   opaopbdifs   &&&& r0   _fill_logicalDecimal._fill_logical  s    llSX%7c'C-C1W||mn%CllSX%7c'C-C x 1W||mn%Cxr2   c                   Vf   \        4       p\        VRR7      pV P                  4       '       d   VP                  4       '       g   VP                  \        4      # V P                  W P                  VP                  4      w  r4RP                  \        W44       UUu. uF)  w  rV\        \        V4      \        V4      ,          4      NK+  	  upp4      p\        ^ VP                  R4      ;'       g    R^ 4      # u uppi NTr  r   r   r   r  r  r   r
   r  rM   r   zipr   r   rK   r   r7   r   r8   r  r  r
  br   s   &&&     r0   logical_andDecimal.logical_and      ? lGud3  (8(8(:(:''(899 ''EJJG
 CE#c!fSVm,EF6==#5#<#<a@@ F   /C;
c                z    Vf   \        4       pV P                  \        ^ RVP                  ,          ^ 4      V4      # )Nr^  )r   logical_xorrK   rn   r<  s   &&r0   logical_invertDecimal.logical_invert  s9    ? lG 03w||3CA F ') 	)r2   c                   Vf   \        4       p\        VRR7      pV P                  4       '       d   VP                  4       '       g   VP                  \        4      # V P                  W P                  VP                  4      w  r4RP                  \        W44       UUu. uF)  w  rV\        \        V4      \        V4      ,          4      NK+  	  upp4      p\        ^ VP                  R4      ;'       g    R^ 4      # u uppi r  r  r  s   &&&     r0   
logical_orDecimal.logical_or&  r  r  c                   Vf   \        4       p\        VRR7      pV P                  4       '       d   VP                  4       '       g   VP                  \        4      # V P                  W P                  VP                  4      w  r4RP                  \        W44       UUu. uF)  w  rV\        \        V4      \        V4      ,          4      NK+  	  upp4      p\        ^ VP                  R4      ;'       g    R^ 4      # u uppi r  r  r  s   &&&     r0   r  Decimal.logical_xor7  r  r  c                B   \        VR R7      pVf   \        4       pV P                  '       g   VP                  '       d   V P                  4       pVP                  4       pV'       g	   V'       dP   V^8X  d   V^ 8X  d   V P	                  V4      # V^8X  d   V^ 8X  d   VP	                  V4      # V P                  W4      # V P                  4       P                  VP                  4       4      pV^ 8X  d   V P                  V4      pVR8X  d   TpMT pVP	                  V4      # rA  	r  r   r   r   rC  r   rA  r   rC  rD  s   &&&    r0   max_magDecimal.max_magH  s    ud3? lGu000 BBR7rQw99W--7rQw ::g..''77MMO  !126""5)A7CCxx  r2   c                B   \        VR R7      pVf   \        4       pV P                  '       g   VP                  '       d   V P                  4       pVP                  4       pV'       g	   V'       dP   V^8X  d   V^ 8X  d   V P	                  V4      # V^8X  d   V^ 8X  d   VP	                  V4      # V P                  W4      # V P                  4       P                  VP                  4       4      pV^ 8X  d   V P                  V4      pVR8X  d   T pMTpVP	                  V4      # rA  r  rD  s   &&&    r0   min_magDecimal.min_magf  s    ud3? lGu000 BBR7rQw99W--7rQw ::g..''77MMO  !126""5)A7CCxx  r2   c                   Vf   \        4       pV P                  VR7      pV'       d   V# V P                  4       R8X  d   \        # V P                  4       ^8X  d-   \	        ^ RVP
                  ,          VP                  4       4      # VP                  4       pVP                  \        4       VP                  4        V P                  V4      pW08w  d   V# V P                  \	        ^ RVP                  4       ^,
          4      V4      # Nry   rl   r^  r   )r   r   r   r  rK   rn   r  r{   r:  r   _ignore_all_flagsrC  rX  rd  r7   r8   rP   new_selfs   &&  r0   
next_minusDecimal.next_minus  s    ? lGw/J#$$"#As7<<'7HH,,.k*!!#99W%O||,QW]]_Q5FG#% 	%r2   c                   Vf   \        4       pV P                  VR7      pV'       d   V# V P                  4       ^8X  d   \        # V P                  4       R8X  d-   \	        ^RVP
                  ,          VP                  4       4      # VP                  4       pVP                  \        4       VP                  4        V P                  V4      pW08w  d   V# V P                  \	        ^ RVP                  4       ^,
          4      V4      # r  )r   r   r   r  rK   rn   r  r{   r:  r   r  rC  rU  rd  r  s   &&  r0   	next_plusDecimal.next_plus  s    ? lGw/J"##As7<<'7HH,,.m,!!#99W%O||,QW]]_Q5FG#% 	%r2   c                   \        VR R7      pVf   \        4       pV P                  W4      pV'       d   V# V P                  V4      pV^ 8X  d   V P	                  V4      # VR8X  d   V P                  V4      pMV P                  V4      pVP                  4       '       dN   VP                  \        RVP                  4       VP                  \        4       VP                  \        4       V# VP                  4       VP                  8  dr   VP                  \        4       VP                  \         4       VP                  \        4       VP                  \        4       V'       g   VP                  \"        4       V# )Tr  z Infinite result from next_towardr   )r  r   r   r   rj  r  r  r   r   r   rL   r   r   r   r   r   r   r	   )r7   r   r8   rP   
comparisons   &&&  r0   next_towardDecimal.next_toward  s.    ud3? lGu.JYYu%
?>>%((..)C//'*C ??  !C!$,   )  ) 
 \\^gll*  +  +  )  ) $$W-
r2   c                   V P                  4       '       d   R # V P                  4       '       d   R# V P                  4       pV^8X  d   R# VR8X  d   R# V P                  4       '       d   V P                  '       d   R# R# Vf   \        4       pV P                  VR7      '       d   V P                  '       d   R# R# V P                  '       d   R	# R
# )r   r0  z	+Infinityz	-Infinityz-Zeroz+Zerory   z
-Subnormalz
+Subnormalz-Normalz+Normalr   )r   r   r   r  rL   r   r  )r7   r8   infs   && r0   number_classDecimal.number_class  s     <<>><<>> !8"9<<>>zzz? lGW--zzz##:::r2   c                    \        ^
4      # r  r  r   s   &r0   radixDecimal.radix
  s    r{r2   c                   Vf   \        4       p\        VRR7      pV P                  W4      pV'       d   V# VP                  ^ 8w  d   VP	                  \
        4      # VP                  ) \        V4      u;8:  d   VP                  8:  g   M VP	                  \
        4      # V P                  4       '       d   \        V 4      # \        V4      pV P                  pVP                  \        V4      ,
          pV^ 8  d   RV,          V,           pMV^ 8  d   WV) R  pWTR  VR V ,           p\        V P                  VP                  R4      ;'       g    RV P                  4      # NTr  r   r   r  r   r   r   r
   rn   r   r   r   rM   r   rK   rL   r   )r7   r   r8   rP   torotrotdigtopadrotateds   &&&     r0   rotateDecimal.rotate  s'   ? lGud3u.J::?''(899U;w||;''(8994=  E
s6{*19Y'FQYFG_F .6&5>1

 's 3 : :sDIIG 	Gr2   c                   Vf   \        4       p\        VRR7      pV P                  W4      pV'       d   V# VP                  ^ 8w  d   VP	                  \
        4      # RVP                  VP                  ,           ,          p^VP                  VP                  ,           ,          pV\        V4      u;8:  d   V8:  g   M VP	                  \
        4      # V P                  4       '       d   \        V 4      # \        V P                  V P                  V P                  \        V4      ,           4      pVP                  V4      pV# )NTr  r  )r   r  r   r   r   r
   ro   rn   r   r   r   rK   rL   rM   rC  )r7   r   r8   rP   liminflimsupr   s   &&&    r0   scalebDecimal.scaleb/  s    ? lGud3u.J::?''(899w||gll23w||gll23#e*..''(8994= TZZDIIE
4JKFF7Or2   c                   Vf   \        4       p\        VRR7      pV P                  W4      pV'       d   V# VP                  ^ 8w  d   VP	                  \
        4      # VP                  ) \        V4      u;8:  d   VP                  8:  g   M VP	                  \
        4      # V P                  4       '       d   \        V 4      # \        V4      pV P                  pVP                  \        V4      ,
          pV^ 8  d   RV,          V,           pMV^ 8  d   WV) R  pV^ 8  d   VR V pMVRV,          ,           pWrP                  ) R  p\        V P                  VP                  R4      ;'       g    RV P                  4      # r  r  )r7   r   r8   rP   r  r  r  shifteds   &&&     r0   rf  Decimal.shiftH  sC   ? lGud3u.J::?''(899U;w||;''(8994=  E
s6{*19Y'FQYFG_F 19VenGs5y(G||mn-G

$+NN3$7$>$>3		K 	Kr2   c                2    V P                   \        V 4      33# r-   )	__class__r   r   s   &r0   
__reduce__Decimal.__reduce__o  s    T--r2   c                `    \        V 4      \        J d   V # V P                  \        V 4      4      # r-   typer   r  r   r   s   &r0   __copy__Decimal.__copy__r  &    : K~~c$i((r2   c                `    \        V 4      \        J d   V # V P                  \        V 4      4      # r-   r  )r7   memos   &&r0   __deepcopy__Decimal.__deepcopy__w  r  r2   c                V   Vf   \        4       p\        WR7      pV P                  '       dS   \        V P                  V4      p\        V P                  4       4      pVR,          R8X  d
   VR,          p\        WVV4      # VR,          f   RR.VP                  ,          VR&   VR,          R8X  d3   \        V P                  V P                  V P                  ^,           4      p VP                  pVR,          pVe   VR,          R9   d   V P                  V^,           V4      p M[VR,          R9   d   V P                  V) V4      p M9VR,          R	9   d,   \        V P                  4      V8  d   V P                  W4      p V '       g2   V P                  ^ 8  d!   VR,          R9   d   V P                  ^ V4      p V '       g%   VR
,          '       d   V P                  '       d   ^ p	MV P                  p	V P                  \        V P                  4      ,           p
VR,          R9   d   V '       g   Ve   ^V,
          pM?^pM<VR,          R9   d   T
pM+VR,          R	9   d   V P                  ^ 8:  d   V
R8  d   T
pM^pX^ 8  d   RpRV) ,          V P                  ,           pMyV\        V P                  4      8  d8   V P                  RV\        V P                  4      ,
          ,          ,           pRpM(V P                  R V ;'       g    RpV P                  VR  pW,
          p\!        WWV4      # )N)_localeconvr  %gG	precisioneEzfF%gGno_neg_0r   r   r4  )r   _parse_format_specifierr   _format_signrL   r   rA  _format_alignr5  rK   rM   r   rm   r0  rP  r   _format_number)r7   	specifierr8   r   specr[   bodyrm   r  adjusted_signr7  r8  r   r   r   s   &&&&           r0   
__format__Decimal.__format__~  s    ? lG&yJ 

D1Dt}}'DF|s" T22 <:g&6&67DL <3#DJJ		499Q;GD ##%	 F|t#{{9Q;9f&}}iZ:f%#dii.9*D{{97 		A$v,%*?==H-DZ((TZZZM JJM YYTYY/
<4I1y=&\U"!H&\T!yyA~*r/% a<GXI2HDII&ii#xDII'>"??GHii	*11cGyy+H! mhTJJr2   )r   rM   r   rL   )r   rM   rL   r   )r   N)NNr-   )FN)TN)r<   r=   r>   r?   	__slots__r   classmethodr   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r"  r   r,  r9  r=  rE  rH  rL  rU  __radd__rX  r[  ra  __rmul__ri  rp  rs  rz  r}  r  r  r  r  r  r  r  	__trunc__propertyr  r  r  r  rN   rC  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r#  r  r)  rP  r0  r4  r  to_integralr>  rO  r&  r  r  r   rS  rW  rC  rc  rA  rB  rj  r   rq  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  r  r  rf  r  r  r  r  r@   rA   rB   s   @r0   r   r     s     7IT@l A A * *X@B4-'@%$%$%)$(4O0d+
2/h7!,!*,Tl HB46n H9!vB8"#H764I!V/897 I   $
ZL'--+++ # &**&" 	<6|24*/XS4jv?pVp<@2;z' 8D.:." $KaF(!T !D%2
4FR	"KO=IV$ '/  .9,20d0<1f!<A")A"A"!<!<%.%.,\(TGB2$KN.)
)TK TKr2   c                 h    \         P                  \        4      pWn        Wn        W$n        W4n        V# r-   )r   r   r   rL   rM   r   r   )r[   coefficientr  specialr7   s   &&&& r0   rK   rK     s,     >>'"DJIIKr2   c                   2   a  ] tR tRt o R tR tR tRtV tR# )r   i  c                0    VP                  4       V n        R # r-   )r{   r   )r7   r   s   &&r0   __init___ContextManager.__init__  s    &++-r2   c                b    \        4       V n        \        V P                  4       V P                  # r-   )r   saved_contextr   r   r   s   &r0   	__enter___ContextManager.__enter__  s&    '\4##$r2   c                0    \        V P                  4       R # r-   )r   r!  )r7   tvtbs   &&&&r0   __exit___ContextManager.__exit__  s    4%%&r2   )r   r!  N)	r<   r=   r>   r?   r  r"  r(  r@   rA   rB   s   @r0   r   r     s     . ' 'r2   r   c                   "  a  ] tR tRt o RUR ltR tR tR tR tR t	R	 t
R
 tR tR tR t]tRVR ltR tR tR tRtR tR tR tRWR ltR tR tR tR tR tR tR tR t R t!R t"R  t#R! t$R" t%R# t&R$ t'R% t(R& t)R' t*R( t+R) t,R* t-R+ t.R, t/R- t0R. t1R/ t2R0 t3R1 t4R2 t5R3 t6R4 t7R5 t8R6 t9R7 t:R8 t;R9 t<R: t=R; t>R< t?R= t@R> tAR? tBR@ tCRA tDRB tERC tFRD tGRVRE ltHRF tIRG tJRH tKRI tLRJ tMRK tNRL tORM tPRN tQRO tRRP tSRQ tTRR tURS tV]VtWRTtXV tYR# )Xr   i  Nc
                  aa  \         p
Ve   TMX
P                  V n        Ve   TMX
P                  V n        Ve   TMX
P                  V n        Ve   TMX
P
                  V n        Ve   TMX
P                  V n        Ve   TMX
P                  V n        V	f	   . V n        MWn        Sf!   X
P                  P                  4       V n	        MC\        S\        4      '       g'   \        V3R l\        S,            4       4      V n	        MSV n	        Sf"   \        P                  \        ^ 4      V n        R # \        S\        4      '       g(   \        V3R l\        S,            4       4      V n        R # SV n        R #   \         d     EL|i ; i)Nc              3   B   <"   T F  q\        VS9   4      3x  K  	  R # 5ir-   r   ).0r  r   s   & r0   	<genexpr>#Context.__init__.<locals>.<genexpr>'       M<Lq#a5j/2<L   c              3   B   <"   T F  q\        VS9   4      3x  K  	  R # 5ir-   r-  )r.  r  r  s   & r0   r/  r0  .  r1  r2  )r   	NameErrorrn   rm   r   ro   r5  r   _ignored_flagsr   r{   r   r   r   r   r  )r7   rn   rm   r   ro   r5  r   r  r   r5  dcs   &&&&&&&ff& r0   r  Context.__init__  s&   
	B !,D"''	$,$8bkk ,D"''	 ,D"''	$,$8bkk#/URXX
!"$D"0=DJE4((MHu<LMMDJDJ=x3DJE4((MHu<LMMDJDJ7  		s   E8 8FFc                F   \        V\        4      '       g   \        R V,          4      hVR8X  d   W$8  d   \        RWWB3,          4      hMBVR8X  d   W#8  d   \        RWWB3,          4      hM W#8  g   W$8  d   \        RWWB3,          4      h\        P                  WV4      # )z%s must be an integer-infz%s must be in [%s, %d]. got: %sr  z%s must be in [%d, %s]. got: %sz%s must be in [%d, %d]. got %s)r   r   r   r   r   __setattr__)r7   namer   vminvmaxs   &&&&&r0   _set_integer_checkContext._set_integer_check2  s    %%%3d:;;6>| !BdRVE^!^__ U]| !BdRVE^!^__  |u| !ATQUD]!]^^!!$e44r2   c                   \        V\        4      '       g   \        R V,          4      hV F   pV\        9   d   K  \	        RV,          4      h	  \         F  pW29   d   K  \	        RV,          4      h	  \
        P                  WV4      # )z%s must be a signal dictz%s is not a valid signal dict)r   r   r   r   KeyErrorr   r:  )r7   r;  r   r   s   &&& r0   _set_signal_dictContext._set_signal_dict@  sy    !T""6:;;C(?>BCC  C8>BCC  !!$a00r2   c                   VR 8X  d   V P                  W^R4      # VR8X  d   V P                  WR^ 4      # VR8X  d   V P                  W^ R4      # VR8X  d   V P                  W^ ^4      # VR8X  d   V P                  W^ ^4      # VR8X  d4   V\        9   g   \        RV,          4      h\        P	                  WV4      # VR	8X  g   VR
8X  d   V P                  W4      # VR8X  d   \        P	                  WV4      # \        RV,          4      h)rn   r  r   r9  ro   r5  r   rm   z%s: invalid rounding moder  r   r5  z.'decimal.Context' object has no attribute '%s')r>  _rounding_modesr   r   r:  rB  AttributeError)r7   r;  r   s   &&&r0   r:  Context.__setattr__K  s   6>**45AAV^**4BBV^**45AAZ**41==W_**41==ZO+   ;e CDD%%d%88W_((55%%%%d%88 @4GI Ir2   c                &    \        R V,          4      h)z%s cannot be deleted)rF  )r7   r;  s   &&r0   __delattr__Context.__delattr__d  s    3d:;;r2   c           	        V P                   P                  4        UUu. uF  w  rV'       g   K  VNK  	  pppV P                  P                  4        UUu. uF  w  rV'       g   K  VNK  	  pppV P                  V P                  V P
                  V P                  V P                  V P                  V P                  W433# u uppi u uppi r-   )
r  r   r   r  rn   rm   r   ro   r5  r   )r7   sigr&  r  r   s   &    r0   r  Context.__reduce__h  s    #'::#3#3#5;#5#5;#'::#3#3#5;#5#5;DMM499dii

E:; 	; <;s   C C C&Cc                L   . pVP                  R \        V 4      ,          4       V P                  P                  4        UUu. uF  w  r#V'       g   K  VP                  NK  	  pppVP                  RRP                  V4      ,           R,           4       V P                  P                  4        UUu. uF  w  rSV'       g   K  VP                  NK  	  pppVP                  RRP                  V4      ,           R,           4       RP                  V4      R,           # u uppi u uppi )zrContext(prec=%(prec)d, rounding=%(rounding)s, Emin=%(Emin)d, Emax=%(Emax)d, capitals=%(capitals)d, clamp=%(clamp)dzflags=[, ]ztraps=[))r   varsr  r   r<   r   r   )r7   r  r   r&  namesr%  s   &     r0   r,  Context.__repr__o  s    	 # : 	 )-

(8(8(:@(:a(:@	TYYu--34(,

(8(8(:@(:a(:@	TYYu--34yy|c!!	 A@s   DD0D D c                J    V P                    F  p^ V P                   V&   K  	  R# rI   N)r  r7   flags   & r0   r|   Context.clear_flags|      JJD DJJt r2   c                J    V P                    F  p^ V P                   V&   K  	  R# rV  )r   rW  s   & r0   clear_trapsContext.clear_traps  rZ  r2   c                    \        V P                  V P                  V P                  V P                  V P
                  V P                  V P                  V P                  V P                  4	      pV# r-   )
r   rn   rm   r   ro   r5  r   r  r   r5  r7   ncs   & r0   r9  Context._shallow_copy  sM    TYYtyy$))]]DJJ

DJJ((* 	r2   c                   \        V P                  V P                  V P                  V P                  V P
                  V P                  V P                  P                  4       V P                  P                  4       V P                  4	      pV# r-   )r   rn   rm   r   ro   r5  r   r  r{   r   r5  r_  s   & r0   r{   Context.copy  s\    TYYtyy$))]]DJJZZ__&

(9((* 	r2   c                   \         P                  W4      pW@P                  9   d   V! 4       P                  ! V .VO5!  # ^V P                  V&   V P
                  V,          '       g   V! 4       P                  ! V .VO5!  # V! V4      hrP  )_condition_maprv   r5  r9   r  r   )r7   	conditionexplanationr/   errors   &&&* r0   r   Context._raise_error  sx     ""98'''7>>$...

5zz%  ;%%d2T22 K  r2   c                (    V P                   ! \         # r-   )_ignore_flagsr   r   s   &r0   r  Context._ignore_all_flags  s    !!8,,r2   c                Z    V P                   \        V4      ,           V n         \        V4      # r-   )r5  r   )r7   r  s   &*r0   rk  Context._ignore_flags  s%      $22T%[@E{r2   c                    V'       d-   \        V^ ,          \        \        34      '       d
   V^ ,          pV F  pV P                  P	                  V4       K   	  R# rV  )r   r   r   r5  remove)r7   r  rX  s   &* r0   _regard_flagsContext._regard_flags  s@    Za5,77!HED&&t, r2   c                \    \        V P                  V P                  ,
          ^,           4      # rP  )r   r   rn   r   s   &r0   rd  Context.Etiny      499tyy(1,--r2   c                \    \        V P                  V P                  ,
          ^,           4      # rP  )r   ro   rn   r   s   &r0   r  Context.Etop  ru  r2   c                *    V P                   pWn         V# r-   )rm   )r7   r  rm   s   && r0   r:  Context._set_rounding  s     ==r2   c                   \        V\        4      '       d2   WP                  4       8w  g   R V9   d   V P                  \        R4      # \        WR7      pVP                  4       '       dL   \        VP                  4      V P                  V P                  ,
          8  d   V P                  \        R4      # VP                  V 4      # )r   zAtrailing or leading whitespace and underscores are not permitted.ry   zdiagnostic info too long in NaN)r   r   r   r   r   r   r   r   rM   rn   r   rC  )r7   r  r   s   && r0   create_decimalContext.create_decimal  s     c3SIIK%73#:$$%5&FG G C&88::#aff+		DJJ(>>$$%5%FH Hvvd|r2   c                N    \         P                  V4      pVP                  V 4      # r-   )r   r   rC  )r7   r   r   s   && r0   create_decimal_from_float!Context.create_decimal_from_float  s"     q!vvd|r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  rL  r7   r
  s   &&r0   r   Context.abs  s!    $ 1d+yyy&&r2   c                |    \        VR R7      pVP                  W R7      pV\        J d   \        RV,          4      hV# Tr  ry   Unable to convert %s to Decimal)r  rU  r   r   r7   r
  r  ro  s   &&& r0   addContext.add  s>     1d+IIaI&=ABBHr2   c                6    \        VP                  V 4      4      # r-   )r   rC  r  s   &&r0   _applyContext._apply)  s    166$<  r2   c                d    \        V\        4      '       g   \        R 4      hVP                  4       # )z,canonical requires a Decimal as an argument.)r   r   r   rS  r  s   &&r0   rS  Context.canonical,  s)     !W%%JKK{{}r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r7   r
  r  s   &&&r0   r  Context.compare9  s"    B 1d+yyy))r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  rW  r  s   &&&r0   rW  Context.compare_signal]  s%    @ 1d+00r2   c                >    \        VR R7      pVP                  V4      # r  )r  rC  r  s   &&&r0   rC  Context.compare_total  s    4 1d+q!!r2   c                >    \        VR R7      pVP                  V4      # r  )r  rc  r  s   &&&r0   rc  Context.compare_total_mag  s!    
 1d+""1%%r2   c                <    \        VR R7      pVP                  4       # r  )r  rA  r  s   &&r0   rA  Context.copy_abs  s     1d+zz|r2   c                2    \        VR R7      p\        V4      # r  )r  r   r  s   &&r0   copy_decimalContext.copy_decimal  s     1d+qzr2   c                <    \        VR R7      pVP                  4       # r  )r  rB  r  s   &&r0   rB  Context.copy_negate  s     1d+}}r2   c                >    \        VR R7      pVP                  V4      # r  )r  rj  r  s   &&&r0   rj  Context.copy_sign  s    * 1d+{{1~r2   c                |    \        VR R7      pVP                  W R7      pV\        J d   \        RV,          4      hV# r  )r  ri  r   r   r  s   &&& r0   divideContext.divide  s>    < 1d+MM!M*=ABBHr2   c                |    \        VR R7      pVP                  W R7      pV\        J d   \        RV,          4      hV# r  )r  r  r   r   r  s   &&& r0   
divide_intContext.divide_int	  s>      1d+NN1N+=ABBHr2   c                |    \        VR R7      pVP                  W R7      pV\        J d   \        RV,          4      hV# r  )r  rz  r   r   r  s   &&& r0   re  Context.divmod   s>     1d+LLL)=ABBHr2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r   r  s   &&r0   r   Context.exp5  s!    * !T*uuTu""r2   c                B    \        VR R7      pVP                  W#V R7      # rV  )r  r  )r7   r
  r  r<  s   &&&&r0   r  Context.fmaM  s#    ( 1d+uuQ4u((r2   c                d    \        V\        4      '       g   \        R 4      hVP                  4       # )z/is_canonical requires a Decimal as an argument.)r   r   r   rq  r  s   &&r0   rq  Context.is_canonicald  s*     !W%%MNN~~r2   c                <    \        VR R7      pVP                  4       # r  )r  rt  r  s   &&r0   rt  Context.is_finiteq  s    & 1d+{{}r2   c                <    \        VR R7      pVP                  4       # r  )r  r(  r  s   &&r0   r(  Context.is_infinite  s     1d+}}r2   c                <    \        VR R7      pVP                  4       # r  )r  r  r  s   &&r0   r  Context.is_nan  s     1d+xxzr2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r}  r  s   &&r0   r}  Context.is_normal  s!    ( 1d+{{4{((r2   c                <    \        VR R7      pVP                  4       # r  )r  r   r  s   &&r0   r   Context.is_qnan  s     1d+yy{r2   c                <    \        VR R7      pVP                  4       # r  )r  r  r  s   &&r0   r  Context.is_signed  s     1d+{{}r2   c                <    \        VR R7      pVP                  4       # r  )r  r   r  s   &&r0   r   Context.is_snan  s     1d+yy{r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  Context.is_subnormal  s!    & 1d+~~d~++r2   c                <    \        VR R7      pVP                  4       # r  )r  r  r  s   &&r0   r  Context.is_zero  s     1d+yy{r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  
Context.ln  s!    & 1d+ttDt!!r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  Context.log10*  s!    2 1d+wwtw$$r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  Context.logbF  s!    . 1d+vvdv##r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.logical_and`  !    0 1d+}}Q}--r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  Context.logical_invert{  s$      1d+--r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.logical_or  s!    0 1d+||A|,,r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.logical_xor  r  r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  rO  r  s   &&&r0   rO  Context.max  !    0 1d+uuQu%%r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.max_mag  !     1d+yyy))r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r&  r  s   &&&r0   r&  Context.min  r  r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.min_mag  r  r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  rE  r  s   &&r0   minusContext.minus  !     1d+yyy&&r2   c                |    \        VR R7      pVP                  W R7      pV\        J d   \        RV,          4      hV# r  )r  ra  r   r   r  s   &&& r0   multiplyContext.multiply-  s>    2 1d+IIaI&=ABBHr2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  Context.next_minusM  s!    " 1d+||D|))r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  Context.next_plusa  s!    " 1d+{{4{((r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.next_towardu  s"    @ 1d+}}Q}--r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r#  r  s   &&r0   r#  Context.normalize  s!    * 1d+{{4{((r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  Context.number_class  s"    ^ 1d+~~d~++r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  rH  r  s   &&r0   plusContext.plus  r  r2   c                ~    \        VR R7      pVP                  W#V R7      pV\        J d   \        RV,          4      hV# r  )r  r  r   r   )r7   r
  r  r  ro  s   &&&& r0   powerContext.power  sA    R 1d+IIaI.=ABBHr2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.quantizeC  s"    n 1d+zz!z**r2   c                    \        ^
4      # r  r  r   s   &r0   r  Context.radix}  s     r{r2   c                |    \        VR R7      pVP                  W R7      pV\        J d   \        RV,          4      hV# r  )r  r  r   r   r  s   &&& r0   rg  Context.remainder  s>    > 1d+IIaI&=ABBHr2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.remainder_near  s$    > 1d+00r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.rotate  s!    4 1d+xxx((r2   c                >    \        VR R7      pVP                  V4      # r  )r  r)  r  s   &&&r0   r)  Context.same_quantum  s    * 1d+~~a  r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  r  r  s   &&&r0   r  Context.scaleb  s!      1d+xxx((r2   c                @    \        VR R7      pVP                  W R7      # rV  )r  rf  r  s   &&&r0   rf  Context.shift  s!    6 1d+wwqw''r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r>  r  s   &&r0   r>  Context.sqrt3  s!    : 1d+vvdv##r2   c                |    \        VR R7      pVP                  W R7      pV\        J d   \        RV,          4      hV# r  )r  rX  r   r   r  s   &&& r0   subtractContext.subtractS  s>      1d+IIaI&=ABBHr2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r=  r  s   &&r0   r=  Context.to_eng_stringj  s!    2 1d+t,,r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r9  r  s   &&r0   to_sci_stringContext.to_sci_string  s!    
 1d+yyy&&r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r4  r  s   &&r0   r4  Context.to_integral_exact  s$    6 1d+""4"00r2   c                @    \        VR R7      pVP                  V R7      # rV  )r  r  r  s   &&r0   r  Context.to_integral_value  s$    4 1d+""4"00r2   )	ro   r   r5  r5  r   r  rn   rm   r   )	NNNNNNNNNr-   r   )Zr<   r=   r>   r?   r  r>  rB  r:  rI  r  r,  r|   r\  r9  r{   r  r   r  rk  rq  r  rd  r  r:  r{  r~  r   r  r  rS  r  rW  rC  rc  rA  r  rB  rj  r  r  re  r   r  rq  rt  r(  r  r}  r   r  r   r  r  r  r  r  r  r  r  r  rO  r  r&  r  r  r  r  r  r  r#  r  r  r  r  r  rg  r  r  r)  r  rf  r>  r  r=  r  r4  r  r  r@   rA   rB   s   @r0   r   r     s    &"H5	1I2<;"!
!
 H!,-- H..&"$'**!"*H!1F":&0#J.*#0). , )." ,,"",%8$4.6.&-6.6&6*"&6*"'"@*()(!.F)00,d'"N`8+t$L 1D):!0)&(<$@.-8'1<1< $Kr2   c                   4   a  ] tR tRt o RtRR ltR tRtV tR# )r   i  Nc                8   Vf   R V n         ^ V n        R V n        R # \        V\        4      '       d?   VP
                  V n         \        VP                  4      V n        VP                  V n        R # V^ ,          V n         V^,          V n        V^,          V n        R # r-   )r[   r   r   r   r   rL   rM   r   )r7   r   s   &&r0   r  _WorkRep.__init__  sq    =DIDHDHw''DI5::DHzzDH aDIQxDHQxDHr2   c                \    R V P                   : RV P                  : RV P                  : R2# )(rO  rQ  r[   r   r   r   s   &r0   r,  _WorkRep.__repr__  s    !%DHHdhh??r2   )r   r   r[   r  r-   )	r<   r=   r>   r?   r  r  r,  r@   rA   rB   s   @r0   r   r     s     $I
 @ @r2   r   c                 
   V P                   VP                   8  d   TpT pMT pTp\        \        VP                  4      4      p\        \        VP                  4      4      pVP                   \	        RWR,
          ^,
          4      ,           pWdP                   ,           ^,
          V8  d   ^Vn        Wtn         V;P                  ^
VP                   VP                   ,
          ,          ,          un        VP                   Vn         W3# r  )r   r   r   r   r&  )rS  rT  rn   tmpr   tmp_len	other_lenr   s   &&&     r0   rQ  rQ    s    
 ww #cgg,GC		N#I
''CGNQ./
/C99q 3&		GGrcgg		)**GiiCG8Or2   c                     V ^ 8X  d   ^ # V^ 8  d   V ^
V,          ,          # \        \        V 4      4      p\        V4      \        VP                  R4      4      ,
          pW1) 8  d   R# V ^
V) ,          ,          # r  )r   r   r   rstrip)rJ   r2  str_nval_ns   &&  r0   r  r    si     	Av	
a2q5y CFE
Sc!233rzt2qBF{2r2   c                 |    V ^ 8:  g   V^ 8:  d   \        R4      h^ pW8w  d   YV ) V,          ,
          ^,	          rK   V# )rI   z3Both arguments to _sqrt_nearest should be positive.)r   )rJ   r
  r  s   && r0   _sqrt_nearestr    s?     	AvaNOOA
&QBE'1*1Hr2   c                 ~    ^V,          W,	          r2V^W^,
          ,          ,          V^,          ,           V8  ,           # rP  r.   )r  rf  r  rn  s   &&  r0   _rshift_nearestr   *  s4    
 :qzq1!91%)**r2   c                 ^    \        W4      w  r#V^V,          V^,          ,           V8  ,           # rl  )re  )r
  r  rn  ro  s   &&  r0   _div_nearestr#  2  s*    
 !<DA!qsa  r2   c                 h   W,
          p^ pWB8:  d   \        V4      W$,
          ,          V8  g$   WB8  di   \        V4      WB,
          ,	          V8  dL   \        W,          ^,          V\        W\        W44      ,           ,          V4      ,           4      pV^,          pK  \	        R\        \        V4      4      ,          ^V,          ,          4      ) p\        W44      p\        W4      p\        V^,
          ^ R4       F%  p\        W4      \        Wg,          V4      ,
          pK'  	  \        Ws,          V4      # )rI   r   )r   r#  r  r   r   r   r   r  )	r  MLr  RTyshiftwr   s	   &&&      r0   _ilogr,  :  s    < 	
A	A6c!fmq(5SVqs]a'!#!]10E.E+FJJL	Q 
SSV_qs#	$$AQ"FQA1Q32fh!::  Qr2   c                    V^,          p\        \        V 4      4      pW,           W,           ^8  ,
          pV^ 8  dv   ^
V,          pW,           V,
          pV^ 8  d   V ^
V,          ,          p M\        V ^
V) ,          4      p \        W4      p\	        V4      p\        Wu,          V4      pWE,          p	M^ p\        V^
V) ,          4      p	\        W,           ^d4      # r"  )r   r   r#  r,  _log10_digits)
r<  r2  r  r=  r   r&  r   log_dlog_10log_tenpowers
   &&&       r0   r  r  j  s     FA 	CFA	qsaxA1uECE6QJAQQB'Aaq!UWf-s#ArA2v.*C00r2   c                    V^,          p\        \        V 4      4      pW,           W,           ^8  ,
          pV^ 8  dP   W,           V,
          pV^ 8  d   V ^
V,          ,          p M\        V ^
V) ,          4      p \        V ^
V,          4      pM^ pV'       d_   \        \        \	        V4      4      4      ^,
          pW',           ^ 8  d+   \        V\        W',           4      ,          ^
V,          4      pM^ pM^ p\        W,           ^d4      # r"  )r   r   r#  r,  r   r.  )	r<  r2  r  r=  r   r   r/  r  	f_log_tens	   &&&      r0   r  r    s     FA
 	CFA	qsaxA 	1uCE6QJAQQB'A aQ  	CAK "9> %Q}QW'=%=r5yIII	 	)3//r2   c                   ,   a  ] tR tRt o R tR tRtV tR# )_Log10Memoizei  c                    R V n         R# )/23025850929940456840179914546843642076011014886Nr   r   s   &r0   r  _Log10Memoize.__init__  s	    Gr2   c                   V^ 8  d   \        R4      hV\        V P                  4      8  dv   ^p ^
W,           ^,           ,          p\        \	        \        ^
V,          V4      ^d4      4      pWB) R RV,          8w  d   MV^,          pKZ  VP                  R4      RR V n        \        V P                  RV^,            4      # )rI   zp should be nonnegativeNr   r   )r   r   r   r   r#  r,  r  r   )r7   r  r  r&  r   s   &&   r0   	getdigits_Log10Memoize.getdigits  s     q5677DKK   EO\%1a.#>?&'?c%i/
 !--,Sb1DK4;;t!$%%r2   r8  N)r<   r=   r>   r?   r  r;  r@   rA   rB   s   @r0   r5  r5    s     H& &r2   r5  c                    \        W,          V,          4      p\        R\        \        V4      4      ,          ^V,          ,          4      ) p\	        W4      pW,          p\        V^,
          ^ R4       F"  p\	        WV,           ,          Wg,          4      pK$  	  \        V^,
          RR4       F+  pW^,           ,          p\	        WUV,           ,          V4      pK-  	  W,           # )r  r%  r   )r  r   r   r   r#  r  )	r  r&  r'  r(  r)  r  Mshiftr  r   s	   &&&      r0   _iexpr?    s    * 	qyA 
SSV_qs#	$$AQATF1Q32QJ4  1Q3BqSfHv.   3Jr2   c           	         V^,          p\        ^ V\        \        V 4      4      ,           ^,
          4      pW#,           pW,           pV^ 8  d   V ^
V,          ,          pMV ^
V) ,          ,          p\        V\	        V4      4      w  rx\        V^
V,          4      p\        \        V^
V,          4      R4      Wr,
          ^,           3# )rl  i  )rO  r   r   re  r.  r#  r?  )	r<  r2  r  r  rn  rf  cshiftquotr	  s	   &&&      r0   rm  rm    s     FA 1s3q6{?Q&'E		A CEz2u9BJv}Q/0ID sBI
&C c2q5)40$(Q,>>r2   c                 0   \        \        \        V4      4      4      V,           p\        WWE,           ^,           4      pW5,
          pV^ 8  d   Wb,          ^
V,          ,          pM\	        Wb,          ^
V) ,          4      pV^ 8X  d_   \        \        V 4      4      V,           ^8  V^ 8  8X  d#   ^
V^,
          ,          ^,           ^V,
          rW3# ^
V,          ^,
          V) r W3# \        W^,           ) V^,           4      w  r\	        V	^
4      p	V
^,          p
W3# rP  )r   r   r   r  r#  rm  )r  r   r  r  r  r  lxcrf  pcr   r   s   &&&&&      r0   r  r  &  s      	CBLBA A
C DEzVBI#&"uf*-	Qw R\B!#a0ac1ac3 : Qq1"3 :	 21vqs+
UB'q:r2   r^  2345678rl   c                     V ^ 8:  d   \        R4      h\        V 4      p^d\        V4      ,          W^ ,          ,          ,
          # )rI   z0The argument to _log10_lb should be nonnegative.)r   r   r   )r<  
correctionstr_cs   && r0   r  r  P  s:     	AvKLLFEs5z>JQx000r2   c                    \        V \        4      '       d   V # \        V \        4      '       d   \        V 4      # V'       d,   \        V \        4      '       d   \        P	                  V 4      # V'       d   \        R V ,          4      h\        # )r  )r   r   r   r   r   r   r   )r   r  allow_floats   &&&r0   r  r  [  sg     %!!%u~z%//!!%((9EABBr2   c                    \        V\        4      '       d   W3# \        V\        P                  4      '       dx   V P                  '       gO   \        V P                  \        \        V P                  4      VP                  ,          4      V P                  4      p V \        VP                  4      3# V'       d>   \        V\        P                  4      '       d   VP                  ^ 8X  d   VP                  p\        V\         4      '       dT   \#        4       pV'       d   ^VP$                  \&        &   MVP)                  \&        R4       V \        P+                  V4      3# \,        \,        3# )rI   r   )r   r   _numbersRationalr   rK   rL   r   r   rM   denominatorr   	numeratorComplexr  r  r   r   r  r   r   r   r   )r7   r   r   r8   s   &&& r0   r   r   n  s    %!!{ %**++#DJJ$'DII9J9J(J$K$(II/D WU__---
 z%)9)9::uzzQ

%,,-GMM.)  MOW''...>))r2   i?B )rn   rm   r   r  ro   r   r5  r   )rn   rm   r   r  a          # A numeric string consists of:
#    \s*
    (?P<sign>[-+])?              # an optional sign, followed by either...
    (
        (?=\d|\.\d)              # ...a number (with at least one digit)
        (?P<int>\d*)             # having a (possibly empty) integer part
        (\.(?P<frac>\d*))?       # followed by an optional fractional part
        (E(?P<exp>[-+]?\d+))?    # followed by an optional exponent, or...
    |
        Inf(inity)?              # ...an infinity, or...
    |
        (?P<signal>s)?           # ...an (optionally signaling)
        NaN                      # NaN
        (?P<diag>\d*)            # with (possibly empty) diagnostic info.
    )
#    \s*
    \z
z0*$z50*$a*  \A
(?:
   (?P<fill>.)?
   (?P<align>[<>=^])
)?
(?P<sign>[-+ ])?
(?P<no_neg_0>z)?
(?P<alt>\#)?
(?P<zeropad>0)?
(?P<minimumwidth>\d+)?
(?P<thousands_sep>[,_])?
(?:\.
    (?=[\d,_])  # lookahead for digit or separator
    (?P<precision>\d+)?
    (?P<frac_separators>[,_])?
)?
(?P<type>[eEfFgGn%])?
\z
c                    \         P                  V 4      pVf   \        RV ,           4      hVP                  4       pVR,          pVR,          pVR,          R JVR&   VR,          '       d-   Ve   \        RV ,           4      hVe   \        RV ,           4      hT;'       g    RVR&   T;'       g    RVR&   VR	,          f   R
VR	&   \	        VR,          ;'       g    R4      VR&   VR,          e   \	        VR,          4      VR&   VR,          ^ 8X  d   VR,          e   VR,          R9   d   ^VR&   VR,          R8X  da   RVR&   Vf   \
        P                  ! 4       pVR,          e   \        RV ,           4      hVR,          VR&   VR,          VR&   VR,          VR&   MVR,          f   RVR&   ^^ .VR&   RVR&   VR,          f   RVR&   V# )NzInvalid format specifier: fillalignzeropadz7Fill character conflicts with '0' in format specifier: z2Alignment conflicts with '0' in format specifier:  >r[   r   minimumwidthr   r  r  gGnrJ   r  thousands_sepzJExplicit thousands separator conflicts with 'n' type in format specifier: groupingdecimal_pointr   r1  frac_separators)_parse_format_specifier_regexmatchr   	groupdictr   _locale
localeconv)format_specr   r   format_dictrY  rZ  s   &&    r0   r  r     s$   & 	&++K8Ay5CDD ++-K vD E))4D@K	9 68CD E E 24?@ A A++#K !<<CK 6"!F #&k.&A&H&HS"IK;+#&{;'?#@K  ;1$v&+f*=*F'(K$ 6c!!F!,,.K'3 >@KL M M'2?'CO$"-j"9J'2?'CO$'/+-K(#$a&J'*O$$%-)+%&r2   c                    VR ,          pVR,          pWC\        V 4      ,
          \        V4      ,
          ,          pVR,          pVR8X  d   W,           V,           pV# VR8X  d   WP,           V,           pV# VR8X  d   W,           V,           pV# VR8X  d1   \        V4      ^,          pVRV V ,           V,           WXR ,           pV# \        R4      h)	r^  rY  rZ  <r]  =^NzUnrecognised alignment field)r   r   )	r[   r  r  r^  rY  paddingrZ  r   halfs	   &&&      r0   r
  r
  S  s     'L<D3t9,s4y89GME|w& M 
#$& M 
#$& M 
#7|Q$$&-> M 788r2   c                     ^ RI HpHp V '       g   . # V R,          ^ 8X  d*   \        V 4      ^8  d   V! V RR V! V R,          4      4      # V R,          \        P
                  8X  d   V RR # \        R4      h)rI   )chainrepeatNz unrecognised format for groupingr   r  )	itertoolsrr  rs  r   rg  CHAR_MAXr   )ra  rr  rs  s   &  r0   _group_lengthsrv  n  sl     (		"	s8}1Xcr]F8B<$899	"))	)};<<r2   c                 <   VR ,          pVR,          p. p\        V4       F  pV^ 8:  d   \        R4      h\        \        \	        V 4      V^4      V4      pVP                  RV\	        V 4      ,
          ,          W) R ,           4       V RV)  p W&,          pV '       g
   V^ 8:  d    M^V\	        V4      ,          pK  	  \        \	        V 4      V^4      pVP                  RV\	        V 4      ,
          ,          W) R ,           4       VP                  \        V4      4      # )r`  ra  zgroup length should be positiver   N)rv  r   r&  rO  r   r   r   reversed)r   r  	min_widthsepra  groupsr=  s   &&&    r0   _insert_thousands_sepr|    s    " 
CJHFH%6>??CKA.2c1s6{?+fRSk9:!	)q.SX	 & FY*c1s6{?+fRSk9:88HV$%%r2   c                 H    V '       d   R # VR,          R9   d
   VR,          # R# )r   r[   z +r   r.   )is_negativer  s   &&r0   r	  r	    s#     	f	F|r2   c           	      d  a \        W4      pVR ,          pS'       d8   V'       d0   VP                  V3R l\        ^ \        S4      ^4       4       4      oS'       g   VR,          '       d   VR,          S,           oV^ 8w  g   VR,          R9   d1   RRRRRRR	R/VR,          ,          pSR
P	                  Ws4      ,          oVR,          R8X  d
   SR,          oVR,          '       d+   VR,          \        S4      ,
          \        V4      ,
          pM^ p\        WV4      p\        WQS,           V4      # )rc  c              3   :   <"   T F  pSW^,            x  K  	  R# 5i)   Nr.   )r.  posr   s   & r0   r/  !_format_number.<locals>.<genexpr>  s"      !H,FS "*#Ag!6,Fs   altrb  r  r  r3  r2  r  r  z{0}{1:+}r  r[  r^  )r	  r   r  r   formatr|  r
  )	r~  r   r   r   r  r[   frac_sepecharry  s	   &&f&&    r0   r  r    s	   $ *D%&HH== !H,1!S]A,F!H H 4;;(83
ax4<4'c3S#sC8fFJ%%e11F|sCI(3x=83t9D		#G9=Gx/66r2   Infz-Infr0  l    lNZoi)rn   r   ro   r5  r   rm   r  r   r-   r   r  )r  )FFirP  r   )}__all__r<   	__xname____version____libmpdec_version__mathr   numbersrS  syscollectionsr*   _namedtupler   ImportErrorr   r   r   r   r   r   r   r   r'   r(   maxsizer"   r#   r$   r&   r%   ArithmeticErrorr   r	   r
   r   ZeroDivisionErrorr   r   r   r   r   r   r   r   r   r   r   r   re  rE  contextvars
ContextVarru   	frozensetr   r   r   r    r!   r   r   rK   Numberregisterr   r   r   rQ  r   r   r  r  r  r   r#  r,  r  r  r5  r;  r.  r?  rm  r  r  r  r   r   r   r   recompileVERBOSE
IGNORECASEre  r   r  r  DOTALLrd  localerg  r  r
  rv  r|  r	  r  r  r  rO   r[  r  rZ  rY   	hash_infomodulusr  r  r  r  _PyHASH_NANr  r  r.   r2   r0   <module>r     sm  $!!!
 ! ! %! '8! ! "! $6! 8H! ! ! &! (2! 4?! !  !!  +!!  -?!!  AT!!& '!& "'!& $5'!& 7F'!( )!( )!(  1)!( 3?)!. /!. /!. !//!. 1>/!4 5!4 5!4 (5!4 *55!4 7N5!: ;!@ A!F 	    
&5~/EiXL
 
##
 ;;'!H!H"HHHH
#	 .
 
' :' %%'8 % 	) 		(*; 	
 
% 
 
	  	#:w #:L) %y   ^Wh'ND ##3$%5#$4 !13 }o}/:G "--.?@ O & +\6Q4Kf Q4Kfh& 	   !
'f 'O$f O$b6@v @4< 
3*+!. ` 1D*0X!&F !&F ))#J"?H(V 	S#r3CS"Rb#r3+ 1&"*T /x)9: x)97IN * 

** " ZZ"--#!" "'# & ZZ$$
jj && !#

 ,$ ZZ		%! ( 
	Qf6=.#&J(7\ EN	FO u~
qzr{ /0 --''mmmm B!+_=gE  &%L&v}  		s$   &O  <O1  
O.-O.1O;:O;