MINI MINI MANI MO
3
  \T             $   @   sJ  d Z ddddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$g$ZeZd%Zd&Zd'Zd(d)lZd(d)lZ	d(d)l
Z
yd(d*lmZ
 e
dd+ZW n ek
r   d,d- ZY nX dZdZdZdZdZdZdZdZd.Ze
jdkrd2Zd2ZdZnd3Zd3ZdZeed1  ZG d4d deZG d5d deZ G d6d	 d	eZ!G d7d de!Z"G d8d
 d
ee#Z$G d9d de!Z%G d:d de!e#Z&G d;d deZ'G d<d de!Z(G d=d deZ)G d>d
 d
eZ*G d?d de'e)Z+G d@d de'e)e*Z,G dAd dee-Z.e e$e'e+e)e,e!e*e.g	Z/e"e!e%e!e&e!e(e!iZ0eeeeeeeefZ1yd(d)l2Z2W n. ek
rh   G dBdC dCe3Z4e4 Z2[4Y nX y
e2j5 W n> e6k
r   e7e2j8 dDre2j8 `9dEd Z:dFd Z;Y n6X e2j5 Z5e7e5dDre5`9e5fdGdZ;e5fdHdZ:[2[5ddIdZ<G dJd de3Z=ddLdMZ>e	j?j@e= G dNdO dOe3ZAG dPd de3ZBG dQdR dRe3ZCddSdTZDeEjFZGdUdV ZHdWdX ZIdYdZ ZJd[d\ ZKdd^d_ZLd`da ZMdbdc ZNG ddde dee3ZOeO jPZQddfdgZRdhdi ZSdjdk ZTdldmdndodpdqdrdsdtdu	fdvdwZUddxdyZVddzd{ZWeBd|ee$e+e!gg d}dd1d(d~ZXeBdee$e+e!e e,gg dZYeBdeg g dZZd(d)l[Z[e[j\de[j]e[j^B j_Z`e[j\dj_Zae[j\dj_Zbe[j\de[j]e[jcB Zd[[yd(d)leZfW n ek
r   Y nX dddZgdd Zhdd ZidddZjdd Zkdd Zle=dZme=dZne=dZoe=d(Zpe=d1Zqe=dZremenfZse
jtjuZve
jtjwZxe
jtjyZze{dsevd/ evZ|[
d)S )a	  
This is an implementation of decimal floating point arithmetic based on
the General Decimal Arithmetic Specification:
    http://speleotrove.com/decimal/decarith.html
and IEEE standard 854-1987:
    http://en.wikipedia.org/wiki/IEEE_854-1987
Decimal floating point has finite precision with arbitrarily large bounds.
The purpose of this module is to support arithmetic using familiar
"schoolhouse" rules and to avoid some of the tricky representation
issues associated with binary floating point.  The package is especially
useful for financial applications or for contexts where users have
expectations that are at odds with binary floating point (for instance,
in binary floating point, 1.00 % 0.1 gives 0.09999999999999995 instead
of 0.0; Decimal('1.00') % Decimal('0.1') returns the expected
Decimal('0.00')).
Here are some examples of using the decimal module:
>>> from decimal import *
>>> setcontext(ExtendedContext)
>>> Decimal(0)
Decimal('0')
>>> Decimal('1')
Decimal('1')
>>> Decimal('-.0123')
Decimal('-0.0123')
>>> Decimal(123456)
Decimal('123456')
>>> Decimal('123.45e12345678')
Decimal('1.2345E+12345680')
>>> Decimal('1.33') + Decimal('1.27')
Decimal('2.60')
>>> Decimal('12.34') + Decimal('3.87') - Decimal('18.41')
Decimal('-2.20')
>>> dig = Decimal(1)
>>> print(dig / Decimal(3))
0.333333333
>>> getcontext().prec = 18
>>> print(dig / Decimal(3))
0.333333333333333333
>>> print(dig.sqrt())
1
>>> print(Decimal(3).sqrt())
1.73205080756887729
>>> print(Decimal(3) ** 123)
4.85192780976896427E+58
>>> inf = Decimal(1) / Decimal(0)
>>> print(inf)
Infinity
>>> neginf = Decimal(-1) / Decimal(0)
>>> print(neginf)
-Infinity
>>> print(neginf + inf)
NaN
>>> print(neginf * inf)
-Infinity
>>> print(dig / 0)
Infinity
>>> getcontext().traps[DivisionByZero] = 1
>>> print(dig / 0)
Traceback (most recent call last):
  ...
  ...
  ...
decimal.DivisionByZero: x / 0
>>> c = Context()
>>> c.traps[InvalidOperation] = 0
>>> print(c.flags[InvalidOperation])
0
>>> c.divide(Decimal(0), Decimal(0))
Decimal('NaN')
>>> c.traps[InvalidOperation] = 1
>>> print(c.flags[InvalidOperation])
1
>>> c.flags[InvalidOperation] = 0
>>> print(c.flags[InvalidOperation])
0
>>> print(c.divide(Decimal(0), Decimal(0)))
Traceback (most recent call last):
  ...
  ...
  ...
decimal.InvalidOperation: 0 / 0
>>> print(c.flags[InvalidOperation])
1
>>> c.flags[InvalidOperation] = 0
>>> c.traps[InvalidOperation] = 0
>>> print(c.divide(Decimal(0), Decimal(0)))
NaN
>>> print(c.flags[InvalidOperation])
1
>>>
DecimalContextDecimalTupleDefaultContextBasicContextExtendedContextDecimalExceptionClampedInvalidOperationDivisionByZeroInexactRounded	SubnormalOverflow	UnderflowFloatOperationDivisionImpossibleInvalidContextConversionSyntaxDivisionUndefined
ROUND_DOWN
ROUND_HALF_UPROUND_HALF_EVEN
ROUND_CEILINGROUND_FLOORROUND_UPROUND_HALF_DOWN
ROUND_05UP
setcontext
getcontextlocalcontextMAX_PRECMAX_EMAXMIN_EMIN	MIN_ETINYHAVE_THREADSdecimalz1.70z2.4.2    N)
namedtuplezsign digits exponentc              G   s   | S )N )argsr(   r(   "/usr/lib64/python3.6/_pydecimal.py<lambda>