diff options
| -rw-r--r-- | muse/ChangeLog | 2 | ||||
| -rw-r--r-- | muse/all.h | 2 | ||||
| -rw-r--r-- | muse/awl/drawbar.cpp | 2 | ||||
| -rw-r--r-- | muse/synti/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | muse/synti/libsynti/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | muse/synti/libsynti/mess2.cpp | 129 | ||||
| -rw-r--r-- | muse/synti/libsynti/mess2.h | 57 | ||||
| -rw-r--r-- | muse/synti/organ/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | muse/synti/organ/organ.cpp | 1897 | ||||
| -rw-r--r-- | muse/synti/organ/organ.h | 164 | ||||
| -rw-r--r-- | muse/synti/organ/organgui.cpp | 171 | ||||
| -rw-r--r-- | muse/synti/organ/organgui.h | 12 | ||||
| -rw-r--r-- | muse/synti/organ/organgui.ui | 912 | ||||
| -rw-r--r-- | muse/synti/s1/s1.cpp | 6 | 
14 files changed, 2038 insertions, 1343 deletions
diff --git a/muse/ChangeLog b/muse/ChangeLog index 903d45cf..5cb159ed 100644 --- a/muse/ChangeLog +++ b/muse/ChangeLog @@ -1,3 +1,5 @@ +17.6. (ws) +      - organ synthesizer plugin update  9.6. (ws)        - added new Drawbar() widget to awl lib        - install libawlplugin.so into qt designer plugin library @@ -50,6 +50,8 @@  #include <QtCore/QTranslator>  #include <QtCore/qatomic.h>  #include <QtCore/QTemporaryFile> +#include <QtCore/QQueue> +#include <QtCore/QSettings>  #include <QtDesigner/QDesignerCustomWidgetInterface>  #include <QtDesigner/QDesignerFormEditorInterface> diff --git a/muse/awl/drawbar.cpp b/muse/awl/drawbar.cpp index 5db3ea60..bc58e4c3 100644 --- a/muse/awl/drawbar.cpp +++ b/muse/awl/drawbar.cpp @@ -37,7 +37,7 @@ Drawbar::Drawbar(QWidget* parent)        setOrientation(Qt::Vertical);        setInvertedAppearance(true);        setRange(0.0, 8.0); -      setLineStep(1.0); +      setLineStep(0.3);        }  Drawbar::~Drawbar() diff --git a/muse/synti/CMakeLists.txt b/muse/synti/CMakeLists.txt index 30a27361..7e5274ac 100644 --- a/muse/synti/CMakeLists.txt +++ b/muse/synti/CMakeLists.txt @@ -19,9 +19,9 @@  #=============================================================================  include_directories( -   .  +   .     ${CMAKE_CURRENT_BINARY} -   ${PROJECT_SOURCE_DIR}  +   ${PROJECT_SOURCE_DIR}     ${PROJECT_SOURCE_DIR}/muse     ${PROJECT_SOURCE_DIR}/muse/widgets     ${PROJECT_SOURCE_DIR}/synti @@ -32,7 +32,7 @@ set (SubDirs libsynti s1 organ deicsonze simpledrums vam mus)  if (ENABLE_ZYNADDSUBFX)        set (SubDirs ${SubDirs} zynaddsubfx)  endif (ENABLE_ZYNADDSUBFX) -       +  if (ENABLE_FLUID)        set (SubDirs ${SubDirs} fluid fluidsynth )  endif (ENABLE_FLUID) diff --git a/muse/synti/libsynti/CMakeLists.txt b/muse/synti/libsynti/CMakeLists.txt index 70dc7dc3..e3aeb72d 100644 --- a/muse/synti/libsynti/CMakeLists.txt +++ b/muse/synti/libsynti/CMakeLists.txt @@ -18,7 +18,14 @@  #  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  #============================================================================= -add_library(synti mess.cpp gui.cpp mono.cpp poly.cpp midievent.cpp) +add_library(synti +      mess.cpp +      mess2.cpp +      gui.cpp +      mono.cpp +      poly.cpp +      midievent.cpp +      )  #  # -fPIC is necessary for 64 bit systems diff --git a/muse/synti/libsynti/mess2.cpp b/muse/synti/libsynti/mess2.cpp new file mode 100644 index 00000000..5e5599e1 --- /dev/null +++ b/muse/synti/libsynti/mess2.cpp @@ -0,0 +1,129 @@ +//========================================================= +//  MusE +//  Linux Music Editor +//    $Id:$ +//  (C) Copyright 2007 Werner Schweer (ws@seh.de) +//========================================================= + +#include "mess2.h" + +QList<SynthCtrl*> Mess2::ctrl; + +//--------------------------------------------------------- +//   Mess2 +//--------------------------------------------------------- + +Mess2::Mess2(int channels) +   : Mess(channels) +      { +      initData = 0; +      } + +//--------------------------------------------------------- +//   Mess2 +//--------------------------------------------------------- + +Mess2::~Mess2() +      { +      if (initData) +            delete[] initData; +      } + +//--------------------------------------------------------- +//   addController +//--------------------------------------------------------- + +void Mess2::addController(const char* name, int id, int min, int max, int init) +      { +      SynthCtrl* c = new SynthCtrl(name, id, min, max, init); +      ctrl.append(c); +      } + +//--------------------------------------------------------- +//   controllerIdx +//--------------------------------------------------------- + +int Mess2::controllerIdx(const char* name) +      { +      for (int i = 0; i < ctrl.size(); ++i) { +            if (strcmp(ctrl[i]->name, name) == 0) +                  return i; +            } +      return -1; +      } + +//--------------------------------------------------------- +//   controllerIdx +//--------------------------------------------------------- + +int Mess2::controllerIdx(int ctrlId) +      { +      for (int i = 0; i < ctrl.size(); ++i) { +            if (ctrl[i]->ctrl == ctrlId) +                  return i; +            } +      return -1; +      } + +//--------------------------------------------------------- +//   controllerId +//--------------------------------------------------------- + +int Mess2::controllerId(int idx) +      { +      if (idx < 0 || idx >= ctrl.size()) { +            printf("controllId::illegal controller index %d\n", idx); +            return -1; +            } +      return ctrl[idx]->ctrl; +      } + +//--------------------------------------------------------- +//   controllerName +//--------------------------------------------------------- + +const char* Mess2::controllerName(int idx) +      { +      if (idx < 0 || idx >= ctrl.size()) { +            printf("controllerName::illegal controller index %d\n", idx); +            return "?"; +            } +      return ctrl[idx]->name; +      } + +//--------------------------------------------------------- +//   getInitData +//--------------------------------------------------------- + +void Mess2::getInitData(int* bytes, const unsigned char** data) +      { +      if (initData) +            delete[] initData; +      int n    = ctrl.size() * sizeof(int); +      initData = new unsigned char[n]; +      int* p = (int*)initData; +      foreach(SynthCtrl* c, ctrl) { +            *p++ = c->val; +            } +      *data  = initData; +      *bytes = n; +      } + +//--------------------------------------------------------- +//   getControllerInfo +//--------------------------------------------------------- + +int Mess2::getControllerInfo(int idx, const char** name, int* id, int* min, int* max) +      { +      if (idx < 0 || idx >= ctrl.size()) +            return 0; +      *name = ctrl[idx]->name; +      *id   = ctrl[idx]->ctrl; +      *min  = ctrl[idx]->min; +      *max  = ctrl[idx]->max; +      ++idx; +      return (idx > ctrl.size()) ? 0 : idx; +            return 0; +      } + + diff --git a/muse/synti/libsynti/mess2.h b/muse/synti/libsynti/mess2.h new file mode 100644 index 00000000..207eb6c3 --- /dev/null +++ b/muse/synti/libsynti/mess2.h @@ -0,0 +1,57 @@ +//========================================================= +//  MusE +//  Linux Music Editor +//    $Id:$ +//  (C) Copyright 2007 Werner Schweer (ws@seh.de) +//========================================================= + +#ifndef __MESS2_H__ +#define __MESS2_H__ + +#include "mess.h" + +//--------------------------------------------------------- +//   SynthCtlr +//--------------------------------------------------------- + +struct SynthCtrl { +      const char* name; +      int ctrl; +      int min; +      int max; +      int init; +      int val; +      SynthCtrl(const char* n, int i, int a, int b, int c) +         : name(n), ctrl(i), min(a), max(b), init(c) +            {} +      }; + +//--------------------------------------------------------- +//  Mess2 +//    MusE experimental software synth +//    extended interface +//--------------------------------------------------------- + +class Mess2 : public Mess { +      unsigned char* initData; + +      void getInitData(int*, const unsigned char**); +      int getControllerInfo(int, const char**, int*, int*, int*); + +   protected: +      static QList<SynthCtrl*> ctrl; + +      static void addController(const char* name, +         int ctrl, int min = 0, int max = 16384, int init = 0); +      static int controllerIdx(const char* name); +      static int controllerId(int idx); +      static int controllerIdx(int id); +      static const char* controllerName(int idx); + +   public: +      Mess2(int channels); +      virtual ~Mess2(); +      }; + +#endif + diff --git a/muse/synti/organ/CMakeLists.txt b/muse/synti/organ/CMakeLists.txt index 2c23daea..2dd6aa3f 100644 --- a/muse/synti/organ/CMakeLists.txt +++ b/muse/synti/organ/CMakeLists.txt @@ -21,26 +21,26 @@  QT4_WRAP_CPP ( organ_mocs organgui.h )  QT4_WRAP_UI (  organ_uis organgui.ui ) -add_library ( organ SHARED  -      organ.cpp  +add_library ( organ SHARED +      organ.cpp        organgui.cpp        organgui.h        ${organ_mocs}        ${organ_uis}        ) -# - tell cmake to name target organ.so instead of  +# - tell cmake to name target organ.so instead of  #   liborgan.so  # - use precompiled header files  # -set_target_properties ( organ  +set_target_properties ( organ     PROPERTIES PREFIX "" -   COMPILE_FLAGS "-include ${PROJECT_BINARY_DIR}/all-pic.h" +   COMPILE_FLAGS "-O6 -include ${PROJECT_BINARY_DIR}/all-pic.h"     )  target_link_libraries(organ -      widgets         synti +      awl        ${QT_LIBRARIES}        ) diff --git a/muse/synti/organ/organ.cpp b/muse/synti/organ/organ.cpp index 4b84fbfb..f8f6057c 100644 --- a/muse/synti/organ/organ.cpp +++ b/muse/synti/organ/organ.cpp @@ -16,38 +16,1346 @@  #include "organ.h"  #include "organgui.h" -SynthCtrl Organ::synthCtrl[] = { -      { "harm0",     HARM0,          0 }, -      { "harm1",     HARM1,          0 }, -      { "harm2",     HARM2,          0 }, -      { "harm3",     HARM3,          0 }, -      { "harm4",     HARM4,          0 }, -      { "harm5",     HARM5,          0 }, -      { "attackLo",  ATTACK_LO,     20 }, -      { "decayLo",   DECAY_LO,      20 }, -      { "sustainLo", SUSTAIN_LO,     0 }, -      { "releaseLo", RELEASE_LO,    20 }, -      { "attackHi",  ATTACK_HI,     10 }, -      { "decayHi",   DECAY_HI,      10 }, -      { "sustainHi", SUSTAIN_HI,     0 }, -      { "releaseHi", RELEASE_HI,    10 }, -      { "brass",     BRASS,          1 }, -      { "flute",     FLUTE,          1 }, -      { "reed",      REED,           1 }, -      { "velocity",  VELO,           0 }, -      // next controller not send as init data -      { "volume",    CTRL_VOLUME,  100 }, -      }; - -static int NUM_CONTROLLER = sizeof(Organ::synthCtrl)/sizeof(*(Organ::synthCtrl)); -static int NUM_INIT_CONTROLLER = NUM_CONTROLLER - 1; - -float* Organ::sine_table; -float* Organ::g_triangle_table; -float* Organ::g_pulse_table; +int Organ::resolution; +int Organ::resolution256; +float* Organ::attackEnv; +float* Organ::releaseEnv; +int Organ::envSize; +float* Organ::waveTable;  int Organ::useCount = 0;  double Organ::cb2amp_tab[MAX_ATTENUATION]; -unsigned Organ::freq256[128]; +unsigned Organ::freq256[128][NO_BUSES]; +Elem Organ::routing[NO_KEYS][NO_ELEMENTS] = { +#if 1 +      { Elem(0,0,0.003210), Elem(0,1,0.000105), Elem(0,2,0.004516), Elem(0,3,0.000095), Elem(0,4,0.000080), Elem(0,5,0.000088), Elem(0,6,0.000116), Elem(0,7,0.000213), +            Elem(0,8,0.020011), Elem(7,0,0.000067), Elem(7,1,0.006683), Elem(7,2,0.000067), Elem(7,3,0.000033), Elem(7,4,0.000022), Elem(7,5,0.000017), Elem(12,0,0.315277), +            Elem(12,1,0.007553), Elem(12,2,0.443782), Elem(12,3,0.005466), Elem(12,4,0.002994), Elem(12,5,0.002100), Elem(12,6,0.001627), Elem(12,7,0.001332), Elem(12,8,0.001128), +            Elem(19,0,0.006617), Elem(19,1,0.661660), Elem(19,2,0.006617), Elem(19,3,0.003308), Elem(19,4,0.002206), Elem(19,5,0.001654), Elem(19,6,0.001323), Elem(19,7,0.001103), +            Elem(19,8,0.000945), Elem(24,0,0.002250), Elem(24,1,0.003364), Elem(24,2,0.006691), Elem(24,3,0.661772), Elem(24,4,0.006840), Elem(24,5,0.025696), Elem(24,6,0.002429), +            Elem(24,7,0.001766), Elem(24,8,0.001398), Elem(28,0,0.000025), Elem(28,1,0.000030), Elem(28,2,0.000037), Elem(28,3,0.000050), Elem(28,4,0.000075), Elem(28,5,0.000150), +            Elem(28,6,0.014962), Elem(28,7,0.000150), Elem(28,8,0.000075), Elem(31,0,0.005541), Elem(31,1,0.007388), Elem(31,2,0.011082), Elem(31,3,0.022163), Elem(31,4,2.216334), +            Elem(31,5,0.022163), Elem(31,6,0.011082), Elem(31,7,0.007388), Elem(31,8,0.005541), Elem(36,0,0.004469), Elem(36,1,0.005591), Elem(36,2,0.007475), Elem(36,3,0.017790), +            Elem(36,4,0.022264), Elem(36,5,2.216417), Elem(36,6,0.022286), Elem(36,7,0.021098), Elem(36,8,0.007501), Elem(40,0,0.002469), Elem(40,1,0.002963), Elem(40,2,0.003703), +            Elem(40,3,0.004938), Elem(40,4,0.007406), Elem(40,5,0.014813), Elem(40,6,1.481273), Elem(40,7,0.014813), Elem(40,8,0.007406), Elem(43,0,0.001459), Elem(43,1,0.001706), +            Elem(43,2,0.002055), Elem(43,3,0.002587), Elem(43,4,0.003524), Elem(43,5,0.027337), Elem(43,6,0.010124), Elem(43,7,0.990112), Elem(43,8,0.009975), Elem(47,0,0.000025), +            Elem(47,1,0.000030), Elem(47,2,0.000037), Elem(47,3,0.000050), Elem(47,4,0.000075), Elem(47,5,0.000150), Elem(47,6,0.014962), Elem(47,7,0.000150), Elem(47,8,0.000075), +            Elem(48,0,0.001237), Elem(48,1,0.001414), Elem(48,2,0.001650), Elem(48,3,0.001980), Elem(48,4,0.002475), Elem(48,5,0.003300), Elem(48,6,0.004950), Elem(48,7,0.009900), +            Elem(48,8,0.990000), Elem(55,1,0.000017), Elem(55,2,0.000020), Elem(55,3,0.000025), Elem(55,4,0.000033), Elem(55,5,0.000050), Elem(55,6,0.000100), Elem(55,7,0.010000), +            Elem(55,8,0.000100), Elem(60,0,0.006369), Elem(60,1,0.000153), Elem(60,2,0.008965), Elem(60,3,0.000110), Elem(60,4,0.000060), Elem(60,5,0.000042), Elem(60,6,0.000033), +            Elem(60,7,0.000027), Elem(60,8,0.000023), Elem(67,0,0.000134), Elem(67,1,0.013367), Elem(67,2,0.000134), Elem(67,3,0.000067), Elem(67,4,0.000045), Elem(67,5,0.000033), +            Elem(67,6,0.000027), Elem(67,7,0.000022), Elem(67,8,0.000019), Elem(72,0,0.000045), Elem(72,1,0.000067), Elem(72,2,0.000134), Elem(72,3,0.013367), Elem(72,4,0.000134), +            Elem(72,5,0.000067), Elem(72,6,0.000045), Elem(72,7,0.000033), Elem(72,8,0.000027), Elem(79,0,0.000112), Elem(79,1,0.000149), Elem(79,2,0.000224), Elem(79,3,0.000448), +            Elem(79,4,0.044774), Elem(79,5,0.000448), Elem(79,6,0.000224), Elem(79,7,0.000149), Elem(79,8,0.000112), Elem(86,0,0.000070), Elem(86,1,0.000091), Elem(86,2,0.000132), +            Elem(86,3,0.000249), Elem(86,4,0.022421), Elem(86,5,0.000274), Elem(86,6,0.000212), Elem(86,7,0.010075), Elem(86,8,0.000156), }, +      { Elem(1,0,0.003210), Elem(1,1,0.000105), Elem(1,2,0.004516), Elem(1,3,0.000095), Elem(1,4,0.000080), Elem(1,5,0.000088), Elem(1,6,0.000116), Elem(1,7,0.000213), +            Elem(1,8,0.020011), Elem(8,0,0.000067), Elem(8,1,0.006683), Elem(8,2,0.000067), Elem(8,3,0.000033), Elem(8,4,0.000022), Elem(8,5,0.000017), Elem(13,0,0.315277), +            Elem(13,1,0.007553), Elem(13,2,0.443782), Elem(13,3,0.005466), Elem(13,4,0.002994), Elem(13,5,0.002100), Elem(13,6,0.001627), Elem(13,7,0.001332), Elem(13,8,0.001128), +            Elem(20,0,0.006617), Elem(20,1,0.661660), Elem(20,2,0.006617), Elem(20,3,0.003308), Elem(20,4,0.002206), Elem(20,5,0.001654), Elem(20,6,0.001323), Elem(20,7,0.001103), +            Elem(20,8,0.000945), Elem(25,0,0.002206), Elem(25,1,0.003308), Elem(25,2,0.006617), Elem(25,3,0.661660), Elem(25,4,0.006617), Elem(25,5,0.003308), Elem(25,6,0.002206), +            Elem(25,7,0.001654), Elem(25,8,0.001323), Elem(29,0,0.000025), Elem(29,1,0.000030), Elem(29,2,0.000037), Elem(29,3,0.000050), Elem(29,4,0.000075), Elem(29,5,0.000150), +            Elem(29,6,0.014962), Elem(29,7,0.000150), Elem(29,8,0.000075), Elem(32,0,0.005541), Elem(32,1,0.007388), Elem(32,2,0.011082), Elem(32,3,0.022163), Elem(32,4,2.216334), +            Elem(32,5,0.022163), Elem(32,6,0.011082), Elem(32,7,0.007388), Elem(32,8,0.005541), Elem(33,0,0.000037), Elem(33,1,0.000050), Elem(33,2,0.000087), Elem(33,3,0.006708), +            Elem(33,4,0.000100), Elem(33,5,0.000083), Elem(33,6,0.000122), Elem(33,7,0.010017), Elem(33,8,0.000113), Elem(37,0,0.004433), Elem(37,1,0.005541), Elem(37,2,0.007388), +            Elem(37,3,0.011082), Elem(37,4,0.022163), Elem(37,5,2.216334), Elem(37,6,0.022163), Elem(37,7,0.011082), Elem(37,8,0.007388), Elem(41,0,0.002469), Elem(41,1,0.002963), +            Elem(41,2,0.003703), Elem(41,3,0.004938), Elem(41,4,0.007406), Elem(41,5,0.014813), Elem(41,6,1.481273), Elem(41,7,0.014813), Elem(41,8,0.007406), Elem(44,0,0.001414), +            Elem(44,1,0.001650), Elem(44,2,0.001980), Elem(44,3,0.002475), Elem(44,4,0.003300), Elem(44,5,0.004950), Elem(44,6,0.009900), Elem(44,7,0.990000), Elem(44,8,0.009900), +            Elem(49,0,0.001237), Elem(49,1,0.001414), Elem(49,2,0.001650), Elem(49,3,0.001980), Elem(49,4,0.002475), Elem(49,5,0.003300), Elem(49,6,0.004950), Elem(49,7,0.009900), +            Elem(49,8,0.990000), Elem(56,1,0.000017), Elem(56,2,0.000020), Elem(56,3,0.000025), Elem(56,4,0.000033), Elem(56,5,0.000050), Elem(56,6,0.000100), Elem(56,7,0.010000), +            Elem(56,8,0.000100), Elem(61,0,0.006369), Elem(61,1,0.000153), Elem(61,2,0.008965), Elem(61,3,0.000110), Elem(61,4,0.000060), Elem(61,5,0.000042), Elem(61,6,0.000033), +            Elem(61,7,0.000027), Elem(61,8,0.000023), Elem(68,0,0.000134), Elem(68,1,0.013367), Elem(68,2,0.000134), Elem(68,3,0.000067), Elem(68,4,0.000045), Elem(68,5,0.000033), +            Elem(68,6,0.000027), Elem(68,7,0.000022), Elem(68,8,0.000019), Elem(73,0,0.000045), Elem(73,1,0.000067), Elem(73,2,0.000134), Elem(73,3,0.013367), Elem(73,4,0.000134), +            Elem(73,5,0.000067), Elem(73,6,0.000045), Elem(73,7,0.000033), Elem(73,8,0.000027), Elem(80,0,0.000112), Elem(80,1,0.000149), Elem(80,2,0.000224), Elem(80,3,0.000448), +            Elem(80,4,0.044774), Elem(80,5,0.000448), Elem(80,6,0.000224), Elem(80,7,0.000149), Elem(80,8,0.000112), Elem(84,0,0.000050), Elem(84,1,0.000060), Elem(84,2,0.000075), +            Elem(84,3,0.000100), Elem(84,4,0.000150), Elem(84,5,0.000299), Elem(84,6,0.029925), Elem(84,7,0.000299), Elem(84,8,0.000150), Elem(85,2,0.000017), Elem(85,3,0.000020), +            Elem(85,4,0.000025), Elem(85,5,0.000033), Elem(85,6,0.000050), Elem(85,7,0.000100), Elem(85,8,0.010000), Elem(87,0,0.000070), Elem(87,1,0.000091), Elem(87,2,0.000132), +            Elem(87,3,0.000249), Elem(87,4,0.022421), Elem(87,5,0.000274), Elem(87,6,0.000212), Elem(87,7,0.010075), Elem(87,8,0.000156), }, +      { Elem(2,0,0.003210), Elem(2,1,0.000105), Elem(2,2,0.004516), Elem(2,3,0.000095), Elem(2,4,0.000080), Elem(2,5,0.000088), Elem(2,6,0.000116), Elem(2,7,0.000213), +            Elem(2,8,0.020011), Elem(9,0,0.000067), Elem(9,1,0.006683), Elem(9,2,0.000067), Elem(9,3,0.000033), Elem(9,4,0.000022), Elem(9,5,0.000017), Elem(14,0,0.315277), +            Elem(14,1,0.007553), Elem(14,2,0.443782), Elem(14,3,0.005466), Elem(14,4,0.002994), Elem(14,5,0.002100), Elem(14,6,0.001627), Elem(14,7,0.001332), Elem(14,8,0.001128), +            Elem(21,0,0.006617), Elem(21,1,0.661660), Elem(21,2,0.006617), Elem(21,3,0.003308), Elem(21,4,0.002206), Elem(21,5,0.001654), Elem(21,6,0.001323), Elem(21,7,0.001103), +            Elem(21,8,0.000945), Elem(25,0,0.000056), Elem(25,1,0.000075), Elem(25,2,0.000112), Elem(25,3,0.000224), Elem(25,4,0.022387), Elem(25,5,0.000224), Elem(25,6,0.000112), +            Elem(25,7,0.000075), Elem(25,8,0.000056), Elem(26,0,0.002250), Elem(26,1,0.003364), Elem(26,2,0.006691), Elem(26,3,0.661772), Elem(26,4,0.006840), Elem(26,5,0.025696), +            Elem(26,6,0.002429), Elem(26,7,0.001766), Elem(26,8,0.001398), Elem(30,0,0.000025), Elem(30,1,0.000030), Elem(30,2,0.000037), Elem(30,3,0.000050), Elem(30,4,0.000075), +            Elem(30,5,0.000150), Elem(30,6,0.014962), Elem(30,7,0.000150), Elem(30,8,0.000075), Elem(33,0,0.005541), Elem(33,1,0.007388), Elem(33,2,0.011082), Elem(33,3,0.022163), +            Elem(33,4,2.216334), Elem(33,5,0.022163), Elem(33,6,0.011082), Elem(33,7,0.007388), Elem(33,8,0.005541), Elem(38,0,0.004469), Elem(38,1,0.005591), Elem(38,2,0.007475), +            Elem(38,3,0.017790), Elem(38,4,0.022264), Elem(38,5,2.216417), Elem(38,6,0.022286), Elem(38,7,0.021098), Elem(38,8,0.007501), Elem(42,0,0.002469), Elem(42,1,0.002963), +            Elem(42,2,0.003703), Elem(42,3,0.004938), Elem(42,4,0.007406), Elem(42,5,0.014813), Elem(42,6,1.481273), Elem(42,7,0.014813), Elem(42,8,0.007406), Elem(44,0,0.000056), +            Elem(44,1,0.000075), Elem(44,2,0.000112), Elem(44,3,0.000224), Elem(44,4,0.022387), Elem(44,5,0.000224), Elem(44,6,0.000112), Elem(44,7,0.000075), Elem(44,8,0.000056), +            Elem(45,0,0.001459), Elem(45,1,0.001706), Elem(45,2,0.002055), Elem(45,3,0.002587), Elem(45,4,0.003524), Elem(45,5,0.027337), Elem(45,6,0.010124), Elem(45,7,0.990112), +            Elem(45,8,0.009975), Elem(50,0,0.001237), Elem(50,1,0.001414), Elem(50,2,0.001650), Elem(50,3,0.001980), Elem(50,4,0.002475), Elem(50,5,0.003300), Elem(50,6,0.004950), +            Elem(50,7,0.009900), Elem(50,8,0.990000), Elem(57,1,0.000017), Elem(57,2,0.000020), Elem(57,3,0.000025), Elem(57,4,0.000033), Elem(57,5,0.000050), Elem(57,6,0.000100), +            Elem(57,7,0.010000), Elem(57,8,0.000100), Elem(62,0,0.006369), Elem(62,1,0.000153), Elem(62,2,0.008965), Elem(62,3,0.000110), Elem(62,4,0.000060), Elem(62,5,0.000042), +            Elem(62,6,0.000033), Elem(62,7,0.000027), Elem(62,8,0.000023), Elem(69,0,0.000134), Elem(69,1,0.013367), Elem(69,2,0.000134), Elem(69,3,0.000067), Elem(69,4,0.000045), +            Elem(69,5,0.000033), Elem(69,6,0.000027), Elem(69,7,0.000022), Elem(69,8,0.000019), Elem(74,0,0.000045), Elem(74,1,0.000067), Elem(74,2,0.000134), Elem(74,3,0.013367), +            Elem(74,4,0.000134), Elem(74,5,0.000067), Elem(74,6,0.000045), Elem(74,7,0.000033), Elem(74,8,0.000027), Elem(81,0,0.000056), Elem(81,1,0.000075), Elem(81,2,0.000112), +            Elem(81,3,0.000224), Elem(81,4,0.022387), Elem(81,5,0.000224), Elem(81,6,0.000112), Elem(81,7,0.000075), Elem(81,8,0.000056), Elem(85,0,0.000050), Elem(85,1,0.000060), +            Elem(85,2,0.000075), Elem(85,3,0.000100), Elem(85,4,0.000150), Elem(85,5,0.000299), Elem(85,6,0.029925), Elem(85,7,0.000299), Elem(85,8,0.000150), Elem(86,2,0.000017), +            Elem(86,3,0.000020), Elem(86,4,0.000025), Elem(86,5,0.000033), Elem(86,6,0.000050), Elem(86,7,0.000100), Elem(86,8,0.010000), Elem(88,1,0.000017), Elem(88,2,0.000020), +            Elem(88,3,0.000025), Elem(88,4,0.000033), Elem(88,5,0.000050), Elem(88,6,0.000100), Elem(88,7,0.010000), Elem(88,8,0.000100), }, +      { Elem(3,0,0.003210), Elem(3,1,0.000105), Elem(3,2,0.004516), Elem(3,3,0.000095), Elem(3,4,0.000080), Elem(3,5,0.000088), Elem(3,6,0.000116), Elem(3,7,0.000213), +            Elem(3,8,0.020011), Elem(10,0,0.000067), Elem(10,1,0.006683), Elem(10,2,0.000067), Elem(10,3,0.000033), Elem(10,4,0.000022), Elem(10,5,0.000017), Elem(15,0,0.315277), +            Elem(15,1,0.007553), Elem(15,2,0.443782), Elem(15,3,0.005466), Elem(15,4,0.002994), Elem(15,5,0.002100), Elem(15,6,0.001627), Elem(15,7,0.001332), Elem(15,8,0.001128), +            Elem(22,0,0.006617), Elem(22,1,0.661660), Elem(22,2,0.006617), Elem(22,3,0.003308), Elem(22,4,0.002206), Elem(22,5,0.001654), Elem(22,6,0.001323), Elem(22,7,0.001103), +            Elem(22,8,0.000945), Elem(27,0,0.002250), Elem(27,1,0.003364), Elem(27,2,0.006691), Elem(27,3,0.661772), Elem(27,4,0.006840), Elem(27,5,0.025696), Elem(27,6,0.002429), +            Elem(27,7,0.001766), Elem(27,8,0.001398), Elem(34,0,0.005541), Elem(34,1,0.007388), Elem(34,2,0.011082), Elem(34,3,0.022163), Elem(34,4,2.216334), Elem(34,5,0.022163), +            Elem(34,6,0.011082), Elem(34,7,0.007388), Elem(34,8,0.005541), Elem(36,0,0.000025), Elem(36,1,0.000030), Elem(36,2,0.000037), Elem(36,3,0.000050), Elem(36,4,0.000075), +            Elem(36,5,0.000150), Elem(36,6,0.014962), Elem(36,7,0.000150), Elem(36,8,0.000075), Elem(39,0,0.004469), Elem(39,1,0.005591), Elem(39,2,0.007475), Elem(39,3,0.017790), +            Elem(39,4,0.022264), Elem(39,5,2.216417), Elem(39,6,0.022286), Elem(39,7,0.021098), Elem(39,8,0.007501), Elem(43,0,0.002469), Elem(43,1,0.002963), Elem(43,2,0.003703), +            Elem(43,3,0.004938), Elem(43,4,0.007406), Elem(43,5,0.014813), Elem(43,6,1.481273), Elem(43,7,0.014813), Elem(43,8,0.007406), Elem(46,0,0.001459), Elem(46,1,0.001706), +            Elem(46,2,0.002055), Elem(46,3,0.002587), Elem(46,4,0.003524), Elem(46,5,0.027337), Elem(46,6,0.010124), Elem(46,7,0.990112), Elem(46,8,0.009975), Elem(51,0,0.001237), +            Elem(51,1,0.001414), Elem(51,2,0.001650), Elem(51,3,0.001980), Elem(51,4,0.002475), Elem(51,5,0.003300), Elem(51,6,0.004950), Elem(51,7,0.009900), Elem(51,8,0.990000), +            Elem(55,0,0.000025), Elem(55,1,0.000030), Elem(55,2,0.000037), Elem(55,3,0.000050), Elem(55,4,0.000075), Elem(55,5,0.000150), Elem(55,6,0.014962), Elem(55,7,0.000150), +            Elem(55,8,0.000075), Elem(58,1,0.000017), Elem(58,2,0.000020), Elem(58,3,0.000025), Elem(58,4,0.000033), Elem(58,5,0.000050), Elem(58,6,0.000100), Elem(58,7,0.010000), +            Elem(58,8,0.000100), Elem(63,0,0.006369), Elem(63,1,0.000153), Elem(63,2,0.008965), Elem(63,3,0.000110), Elem(63,4,0.000060), Elem(63,5,0.000042), Elem(63,6,0.000033), +            Elem(63,7,0.000027), Elem(63,8,0.000023), Elem(70,0,0.000134), Elem(70,1,0.013367), Elem(70,2,0.000134), Elem(70,3,0.000067), Elem(70,4,0.000045), Elem(70,5,0.000033), +            Elem(70,6,0.000027), Elem(70,7,0.000022), Elem(70,8,0.000019), Elem(75,0,0.000045), Elem(75,1,0.000067), Elem(75,2,0.000134), Elem(75,3,0.013367), Elem(75,4,0.000134), +            Elem(75,5,0.000067), Elem(75,6,0.000045), Elem(75,7,0.000033), Elem(75,8,0.000027), Elem(82,0,0.000112), Elem(82,1,0.000149), Elem(82,2,0.000224), Elem(82,3,0.000448), +            Elem(82,4,0.044774), Elem(82,5,0.000448), Elem(82,6,0.000224), Elem(82,7,0.000149), Elem(82,8,0.000112), Elem(86,0,0.000025), Elem(86,1,0.000030), Elem(86,2,0.000037), +            Elem(86,3,0.000050), Elem(86,4,0.000075), Elem(86,5,0.000150), Elem(86,6,0.014962), Elem(86,7,0.000150), Elem(86,8,0.000075), Elem(87,2,0.000017), Elem(87,3,0.000020), +            Elem(87,4,0.000025), Elem(87,5,0.000033), Elem(87,6,0.000050), Elem(87,7,0.000100), Elem(87,8,0.010000), Elem(89,0,0.000070), Elem(89,1,0.000091), Elem(89,2,0.000132), +            Elem(89,3,0.000249), Elem(89,4,0.022421), Elem(89,5,0.000274), Elem(89,6,0.000212), Elem(89,7,0.010075), Elem(89,8,0.000156), }, +      { Elem(4,0,0.003210), Elem(4,1,0.000105), Elem(4,2,0.004516), Elem(4,3,0.000095), Elem(4,4,0.000080), Elem(4,5,0.000088), Elem(4,6,0.000116), Elem(4,7,0.000213), +            Elem(4,8,0.020011), Elem(11,0,0.000067), Elem(11,1,0.006683), Elem(11,2,0.000067), Elem(11,3,0.000033), Elem(11,4,0.000022), Elem(11,5,0.000017), Elem(16,0,0.315277), +            Elem(16,1,0.007553), Elem(16,2,0.443782), Elem(16,3,0.005466), Elem(16,4,0.002994), Elem(16,5,0.002100), Elem(16,6,0.001627), Elem(16,7,0.001332), Elem(16,8,0.001128), +            Elem(23,0,0.006617), Elem(23,1,0.661660), Elem(23,2,0.006617), Elem(23,3,0.003308), Elem(23,4,0.002206), Elem(23,5,0.001654), Elem(23,6,0.001323), Elem(23,7,0.001103), +            Elem(23,8,0.000945), Elem(28,0,0.002250), Elem(28,1,0.003364), Elem(28,2,0.006691), Elem(28,3,0.661772), Elem(28,4,0.006840), Elem(28,5,0.025696), Elem(28,6,0.002429), +            Elem(28,7,0.001766), Elem(28,8,0.001398), Elem(33,0,0.000025), Elem(33,1,0.000030), Elem(33,2,0.000037), Elem(33,3,0.000050), Elem(33,4,0.000075), Elem(33,5,0.000150), +            Elem(33,6,0.014962), Elem(33,7,0.000150), Elem(33,8,0.000075), Elem(35,0,0.005541), Elem(35,1,0.007388), Elem(35,2,0.011082), Elem(35,3,0.022163), Elem(35,4,2.216334), +            Elem(35,5,0.022163), Elem(35,6,0.011082), Elem(35,7,0.007388), Elem(35,8,0.005541), Elem(40,0,0.004469), Elem(40,1,0.005591), Elem(40,2,0.007475), Elem(40,3,0.017790), +            Elem(40,4,0.022264), Elem(40,5,2.216417), Elem(40,6,0.022286), Elem(40,7,0.021098), Elem(40,8,0.007501), Elem(44,0,0.002469), Elem(44,1,0.002963), Elem(44,2,0.003703), +            Elem(44,3,0.004938), Elem(44,4,0.007406), Elem(44,5,0.014813), Elem(44,6,1.481273), Elem(44,7,0.014813), Elem(44,8,0.007406), Elem(47,0,0.001459), Elem(47,1,0.001706), +            Elem(47,2,0.002055), Elem(47,3,0.002587), Elem(47,4,0.003524), Elem(47,5,0.027337), Elem(47,6,0.010124), Elem(47,7,0.990112), Elem(47,8,0.009975), Elem(52,0,0.001237), +            Elem(52,1,0.001414), Elem(52,2,0.001650), Elem(52,3,0.001980), Elem(52,4,0.002475), Elem(52,5,0.003300), Elem(52,6,0.004950), Elem(52,7,0.009900), Elem(52,8,0.990000), +            Elem(56,0,0.000025), Elem(56,1,0.000030), Elem(56,2,0.000037), Elem(56,3,0.000050), Elem(56,4,0.000075), Elem(56,5,0.000150), Elem(56,6,0.014962), Elem(56,7,0.000150), +            Elem(56,8,0.000075), Elem(59,1,0.000017), Elem(59,2,0.000020), Elem(59,3,0.000025), Elem(59,4,0.000033), Elem(59,5,0.000050), Elem(59,6,0.000100), Elem(59,7,0.010000), +            Elem(59,8,0.000100), Elem(64,0,0.006369), Elem(64,1,0.000153), Elem(64,2,0.008965), Elem(64,3,0.000110), Elem(64,4,0.000060), Elem(64,5,0.000042), Elem(64,6,0.000033), +            Elem(64,7,0.000027), Elem(64,8,0.000023), Elem(71,0,0.000134), Elem(71,1,0.013367), Elem(71,2,0.000134), Elem(71,3,0.000067), Elem(71,4,0.000045), Elem(71,5,0.000033), +            Elem(71,6,0.000027), Elem(71,7,0.000022), Elem(71,8,0.000019), Elem(76,0,0.000045), Elem(76,1,0.000067), Elem(76,2,0.000134), Elem(76,3,0.013367), Elem(76,4,0.000134), +            Elem(76,5,0.000067), Elem(76,6,0.000045), Elem(76,7,0.000033), Elem(76,8,0.000027), Elem(83,0,0.000112), Elem(83,1,0.000149), Elem(83,2,0.000224), Elem(83,3,0.000448), +            Elem(83,4,0.044774), Elem(83,5,0.000448), Elem(83,6,0.000224), Elem(83,7,0.000149), Elem(83,8,0.000112), Elem(87,0,0.000025), Elem(87,1,0.000030), Elem(87,2,0.000037), +            Elem(87,3,0.000050), Elem(87,4,0.000075), Elem(87,5,0.000150), Elem(87,6,0.014962), Elem(87,7,0.000150), Elem(87,8,0.000075), Elem(88,2,0.000017), Elem(88,3,0.000020), +            Elem(88,4,0.000025), Elem(88,5,0.000033), Elem(88,6,0.000050), Elem(88,7,0.000100), Elem(88,8,0.010000), Elem(90,0,0.000070), Elem(90,1,0.000091), Elem(90,2,0.000132), +            Elem(90,3,0.000249), Elem(90,4,0.022421), Elem(90,5,0.000274), Elem(90,6,0.000212), Elem(90,7,0.010075), Elem(90,8,0.000156), }, +      { Elem(0,0,0.000029), Elem(0,1,0.000033), Elem(0,2,0.000040), Elem(0,3,0.000050), Elem(0,4,0.000067), Elem(0,5,0.000100), Elem(0,6,0.000200), Elem(0,7,0.020000), +            Elem(0,8,0.000200), Elem(5,0,0.003210), Elem(5,1,0.000105), Elem(5,2,0.004516), Elem(5,3,0.000095), Elem(5,4,0.000080), Elem(5,5,0.000088), Elem(5,6,0.000116), +            Elem(5,7,0.000213), Elem(5,8,0.020011), Elem(17,0,0.315277), Elem(17,1,0.007553), Elem(17,2,0.443782), Elem(17,3,0.005466), Elem(17,4,0.002994), Elem(17,5,0.002100), +            Elem(17,6,0.001627), Elem(17,7,0.001332), Elem(17,8,0.001128), Elem(24,0,0.006673), Elem(24,1,0.661735), Elem(24,2,0.006729), Elem(24,3,0.003532), Elem(24,4,0.024593), +            Elem(24,5,0.001878), Elem(24,6,0.001435), Elem(24,7,0.001177), Elem(24,8,0.001001), Elem(29,0,0.002250), Elem(29,1,0.003364), Elem(29,2,0.006691), Elem(29,3,0.661772), +            Elem(29,4,0.006840), Elem(29,5,0.025696), Elem(29,6,0.002429), Elem(29,7,0.001766), Elem(29,8,0.001398), Elem(36,0,0.005608), Elem(36,1,0.014071), Elem(36,2,0.011149), +            Elem(36,3,0.022197), Elem(36,4,2.216356), Elem(36,5,0.022180), Elem(36,6,0.011095), Elem(36,7,0.007399), Elem(36,8,0.005550), Elem(38,0,0.000025), Elem(38,1,0.000030), +            Elem(38,2,0.000037), Elem(38,3,0.000050), Elem(38,4,0.000075), Elem(38,5,0.000150), Elem(38,6,0.014962), Elem(38,7,0.000150), Elem(38,8,0.000075), Elem(41,0,0.004455), +            Elem(41,1,0.005574), Elem(41,2,0.007455), Elem(41,3,0.017765), Elem(41,4,0.022230), Elem(41,5,2.216367), Elem(41,6,0.022186), Elem(41,7,0.011098), Elem(41,8,0.007401), +            Elem(43,0,0.000056), Elem(43,1,0.000075), Elem(43,2,0.000112), Elem(43,3,0.000224), Elem(43,4,0.022387), Elem(43,5,0.000224), Elem(43,6,0.000112), Elem(43,7,0.000075), +            Elem(43,8,0.000056), Elem(45,0,0.002469), Elem(45,1,0.002963), Elem(45,2,0.003703), Elem(45,3,0.004938), Elem(45,4,0.007406), Elem(45,5,0.014813), Elem(45,6,1.481273), +            Elem(45,7,0.014813), Elem(45,8,0.007406), Elem(48,0,0.001414), Elem(48,1,0.001650), Elem(48,2,0.001980), Elem(48,3,0.002475), Elem(48,4,0.003300), Elem(48,5,0.004950), +            Elem(48,6,0.009900), Elem(48,7,0.990000), Elem(48,8,0.009900), Elem(53,0,0.001237), Elem(53,1,0.001414), Elem(53,2,0.001650), Elem(53,3,0.001980), Elem(53,4,0.002475), +            Elem(53,5,0.003300), Elem(53,6,0.004950), Elem(53,7,0.009900), Elem(53,8,0.990000), Elem(57,0,0.000025), Elem(57,1,0.000030), Elem(57,2,0.000037), Elem(57,3,0.000050), +            Elem(57,4,0.000075), Elem(57,5,0.000150), Elem(57,6,0.014962), Elem(57,7,0.000150), Elem(57,8,0.000075), Elem(65,0,0.006369), Elem(65,1,0.000153), Elem(65,2,0.008965), +            Elem(65,3,0.000110), Elem(65,4,0.000060), Elem(65,5,0.000042), Elem(65,6,0.000033), Elem(65,7,0.000027), Elem(65,8,0.000023), Elem(72,0,0.000134), Elem(72,1,0.013367), +            Elem(72,2,0.000134), Elem(72,3,0.000067), Elem(72,4,0.000045), Elem(72,5,0.000033), Elem(72,6,0.000027), Elem(72,7,0.000022), Elem(72,8,0.000019), Elem(75,0,0.000022), +            Elem(75,1,0.000033), Elem(75,2,0.000067), Elem(75,3,0.006683), Elem(75,4,0.000067), Elem(75,5,0.000033), Elem(75,6,0.000022), Elem(75,7,0.000017), Elem(77,0,0.000022), +            Elem(77,1,0.000033), Elem(77,2,0.000067), Elem(77,3,0.006683), Elem(77,4,0.000067), Elem(77,5,0.000033), Elem(77,6,0.000022), Elem(77,7,0.000017), Elem(84,0,0.000090), +            Elem(84,1,0.000112), Elem(84,2,0.000149), Elem(84,3,0.000224), Elem(84,4,0.000448), Elem(84,5,0.044774), Elem(84,6,0.000448), Elem(84,7,0.000224), Elem(84,8,0.000149), +            Elem(88,0,0.000025), Elem(88,1,0.000030), Elem(88,2,0.000037), Elem(88,3,0.000050), Elem(88,4,0.000075), Elem(88,5,0.000150), Elem(88,6,0.014962), Elem(88,7,0.000150), +            Elem(88,8,0.000075), Elem(89,2,0.000017), Elem(89,3,0.000020), Elem(89,4,0.000025), Elem(89,5,0.000033), Elem(89,6,0.000050), Elem(89,7,0.000100), Elem(89,8,0.010000), +            }, +      { Elem(1,0,0.000029), Elem(1,1,0.000033), Elem(1,2,0.000040), Elem(1,3,0.000050), Elem(1,4,0.000067), Elem(1,5,0.000100), Elem(1,6,0.000200), Elem(1,7,0.020000), +            Elem(1,8,0.000200), Elem(6,0,0.003210), Elem(6,1,0.000105), Elem(6,2,0.004516), Elem(6,3,0.000095), Elem(6,4,0.000080), Elem(6,5,0.000088), Elem(6,6,0.000116), +            Elem(6,7,0.000213), Elem(6,8,0.020011), Elem(18,0,0.315277), Elem(18,1,0.007553), Elem(18,2,0.443782), Elem(18,3,0.005466), Elem(18,4,0.002994), Elem(18,5,0.002100), +            Elem(18,6,0.001627), Elem(18,7,0.001332), Elem(18,8,0.001128), Elem(25,0,0.006617), Elem(25,1,0.661660), Elem(25,2,0.006617), Elem(25,3,0.003308), Elem(25,4,0.002206), +            Elem(25,5,0.001654), Elem(25,6,0.001323), Elem(25,7,0.001103), Elem(25,8,0.000945), Elem(30,0,0.002250), Elem(30,1,0.003364), Elem(30,2,0.006691), Elem(30,3,0.661772), +            Elem(30,4,0.006840), Elem(30,5,0.025696), Elem(30,6,0.002429), Elem(30,7,0.001766), Elem(30,8,0.001398), Elem(33,0,0.000067), Elem(33,1,0.006683), Elem(33,2,0.000067), +            Elem(33,3,0.000033), Elem(33,4,0.000022), Elem(33,5,0.000017), Elem(37,0,0.005541), Elem(37,1,0.007388), Elem(37,2,0.011082), Elem(37,3,0.022163), Elem(37,4,2.216334), +            Elem(37,5,0.022163), Elem(37,6,0.011082), Elem(37,7,0.007388), Elem(37,8,0.005541), Elem(39,0,0.000025), Elem(39,1,0.000030), Elem(39,2,0.000037), Elem(39,3,0.000050), +            Elem(39,4,0.000075), Elem(39,5,0.000150), Elem(39,6,0.014962), Elem(39,7,0.000150), Elem(39,8,0.000075), Elem(42,0,0.004455), Elem(42,1,0.005574), Elem(42,2,0.007455), +            Elem(42,3,0.017765), Elem(42,4,0.022230), Elem(42,5,2.216367), Elem(42,6,0.022186), Elem(42,7,0.011098), Elem(42,8,0.007401), Elem(46,0,0.002469), Elem(46,1,0.002963), +            Elem(46,2,0.003703), Elem(46,3,0.004938), Elem(46,4,0.007406), Elem(46,5,0.014813), Elem(46,6,1.481273), Elem(46,7,0.014813), Elem(46,8,0.007406), Elem(49,0,0.001414), +            Elem(49,1,0.001650), Elem(49,2,0.001980), Elem(49,3,0.002475), Elem(49,4,0.003300), Elem(49,5,0.004950), Elem(49,6,0.009900), Elem(49,7,0.990000), Elem(49,8,0.009900), +            Elem(54,0,0.001237), Elem(54,1,0.001414), Elem(54,2,0.001650), Elem(54,3,0.001980), Elem(54,4,0.002475), Elem(54,5,0.003300), Elem(54,6,0.004950), Elem(54,7,0.009900), +            Elem(54,8,0.990000), Elem(58,0,0.000025), Elem(58,1,0.000030), Elem(58,2,0.000037), Elem(58,3,0.000050), Elem(58,4,0.000075), Elem(58,5,0.000150), Elem(58,6,0.014962), +            Elem(58,7,0.000150), Elem(58,8,0.000075), Elem(66,0,0.006369), Elem(66,1,0.000153), Elem(66,2,0.008965), Elem(66,3,0.000110), Elem(66,4,0.000060), Elem(66,5,0.000042), +            Elem(66,6,0.000033), Elem(66,7,0.000027), Elem(66,8,0.000023), Elem(73,0,0.000134), Elem(73,1,0.013367), Elem(73,2,0.000134), Elem(73,3,0.000067), Elem(73,4,0.000045), +            Elem(73,5,0.000033), Elem(73,6,0.000027), Elem(73,7,0.000022), Elem(73,8,0.000019), Elem(78,0,0.000045), Elem(78,1,0.000067), Elem(78,2,0.000134), Elem(78,3,0.013367), +            Elem(78,4,0.000134), Elem(78,5,0.000067), Elem(78,6,0.000045), Elem(78,7,0.000033), Elem(78,8,0.000027), Elem(85,0,0.000104), Elem(85,1,0.000129), Elem(85,2,0.000169), +            Elem(85,3,0.000249), Elem(85,4,0.000481), Elem(85,5,0.044824), Elem(85,6,0.000548), Elem(85,7,0.010224), Elem(85,8,0.000249), Elem(89,0,0.000025), Elem(89,1,0.000030), +            Elem(89,2,0.000037), Elem(89,3,0.000050), Elem(89,4,0.000075), Elem(89,5,0.000150), Elem(89,6,0.014962), Elem(89,7,0.000150), Elem(89,8,0.000075), Elem(90,2,0.000017), +            Elem(90,3,0.000020), Elem(90,4,0.000025), Elem(90,5,0.000033), Elem(90,6,0.000050), Elem(90,7,0.000100), Elem(90,8,0.010000), }, +      { Elem(2,0,0.000029), Elem(2,1,0.000033), Elem(2,2,0.000040), Elem(2,3,0.000050), Elem(2,4,0.000067), Elem(2,5,0.000100), Elem(2,6,0.000200), Elem(2,7,0.020000), +            Elem(2,8,0.000200), Elem(7,0,0.003210), Elem(7,1,0.000105), Elem(7,2,0.004516), Elem(7,3,0.000095), Elem(7,4,0.000080), Elem(7,5,0.000088), Elem(7,6,0.000116), +            Elem(7,7,0.000213), Elem(7,8,0.020011), Elem(19,0,0.315277), Elem(19,1,0.007553), Elem(19,2,0.443782), Elem(19,3,0.005466), Elem(19,4,0.002994), Elem(19,5,0.002100), +            Elem(19,6,0.001627), Elem(19,7,0.001332), Elem(19,8,0.001128), Elem(26,0,0.006673), Elem(26,1,0.661735), Elem(26,2,0.006729), Elem(26,3,0.003532), Elem(26,4,0.024593), +            Elem(26,5,0.001878), Elem(26,6,0.001435), Elem(26,7,0.001177), Elem(26,8,0.001001), Elem(31,0,0.002206), Elem(31,1,0.003308), Elem(31,2,0.006617), Elem(31,3,0.661660), +            Elem(31,4,0.006617), Elem(31,5,0.003308), Elem(31,6,0.002206), Elem(31,7,0.001654), Elem(31,8,0.001323), Elem(36,0,0.000045), Elem(36,1,0.000056), Elem(36,2,0.000075), +            Elem(36,3,0.000112), Elem(36,4,0.000224), Elem(36,5,0.022387), Elem(36,6,0.000224), Elem(36,7,0.000112), Elem(36,8,0.000075), Elem(38,0,0.005608), Elem(38,1,0.014071), +            Elem(38,2,0.011149), Elem(38,3,0.022197), Elem(38,4,2.216356), Elem(38,5,0.022180), Elem(38,6,0.011095), Elem(38,7,0.007399), Elem(38,8,0.005550), Elem(40,0,0.000025), +            Elem(40,1,0.000030), Elem(40,2,0.000037), Elem(40,3,0.000050), Elem(40,4,0.000075), Elem(40,5,0.000150), Elem(40,6,0.014962), Elem(40,7,0.000150), Elem(40,8,0.000075), +            Elem(43,0,0.004445), Elem(43,1,0.005555), Elem(43,2,0.007404), Elem(43,3,0.011102), Elem(43,4,0.022188), Elem(43,5,2.216367), Elem(43,6,0.022213), Elem(43,7,0.011182), +            Elem(43,8,0.017388), Elem(45,0,0.000056), Elem(45,1,0.000075), Elem(45,2,0.000112), Elem(45,3,0.000224), Elem(45,4,0.022387), Elem(45,5,0.000224), Elem(45,6,0.000112), +            Elem(45,7,0.000075), Elem(45,8,0.000056), Elem(47,0,0.002469), Elem(47,1,0.002963), Elem(47,2,0.003703), Elem(47,3,0.004938), Elem(47,4,0.007406), Elem(47,5,0.014813), +            Elem(47,6,1.481273), Elem(47,7,0.014813), Elem(47,8,0.007406), Elem(50,0,0.001414), Elem(50,1,0.001650), Elem(50,2,0.001980), Elem(50,3,0.002475), Elem(50,4,0.003300), +            Elem(50,5,0.004950), Elem(50,6,0.009900), Elem(50,7,0.990000), Elem(50,8,0.009900), Elem(55,0,0.001282), Elem(55,1,0.001470), Elem(55,2,0.001725), Elem(55,3,0.002092), +            Elem(55,4,0.002699), Elem(55,5,0.025687), Elem(55,6,0.005174), Elem(55,7,0.010012), Elem(55,8,0.990075), Elem(59,0,0.000025), Elem(59,1,0.000030), Elem(59,2,0.000037), +            Elem(59,3,0.000050), Elem(59,4,0.000075), Elem(59,5,0.000150), Elem(59,6,0.014962), Elem(59,7,0.000150), Elem(59,8,0.000075), Elem(67,0,0.006369), Elem(67,1,0.000153), +            Elem(67,2,0.008965), Elem(67,3,0.000110), Elem(67,4,0.000060), Elem(67,5,0.000042), Elem(67,6,0.000033), Elem(67,7,0.000027), Elem(67,8,0.000023), Elem(74,0,0.000134), +            Elem(74,1,0.013367), Elem(74,2,0.000134), Elem(74,3,0.000067), Elem(74,4,0.000045), Elem(74,5,0.000033), Elem(74,6,0.000027), Elem(74,7,0.000022), Elem(74,8,0.000019), +            Elem(79,0,0.000045), Elem(79,1,0.000067), Elem(79,2,0.000134), Elem(79,3,0.013367), Elem(79,4,0.000134), Elem(79,5,0.000067), Elem(79,6,0.000045), Elem(79,7,0.000033), +            Elem(79,8,0.000027), Elem(86,0,0.000081), Elem(86,1,0.000106), Elem(86,2,0.000161), Elem(86,3,0.006820), Elem(86,4,0.000324), Elem(86,5,0.022471), Elem(86,6,0.000346), +            Elem(86,7,0.010129), Elem(86,8,0.000188), Elem(90,0,0.000025), Elem(90,1,0.000030), Elem(90,2,0.000037), Elem(90,3,0.000050), Elem(90,4,0.000075), Elem(90,5,0.000150), +            Elem(90,6,0.014962), Elem(90,7,0.000150), Elem(90,8,0.000075), }, +      { Elem(0,0,0.000050), Elem(0,1,0.000060), Elem(0,2,0.000075), Elem(0,3,0.000100), Elem(0,4,0.000150), Elem(0,5,0.000299), Elem(0,6,0.029925), Elem(0,7,0.000299), +            Elem(0,8,0.000150), Elem(3,0,0.000029), Elem(3,1,0.000033), Elem(3,2,0.000040), Elem(3,3,0.000050), Elem(3,4,0.000067), Elem(3,5,0.000100), Elem(3,6,0.000200), +            Elem(3,7,0.020000), Elem(3,8,0.000200), Elem(8,0,0.003210), Elem(8,1,0.000105), Elem(8,2,0.004516), Elem(8,3,0.000095), Elem(8,4,0.000080), Elem(8,5,0.000088), +            Elem(8,6,0.000116), Elem(8,7,0.000213), Elem(8,8,0.020011), Elem(20,0,0.315277), Elem(20,1,0.007553), Elem(20,2,0.443782), Elem(20,3,0.005466), Elem(20,4,0.002994), +            Elem(20,5,0.002100), Elem(20,6,0.001627), Elem(20,7,0.001332), Elem(20,8,0.001128), Elem(27,0,0.006673), Elem(27,1,0.661735), Elem(27,2,0.006729), Elem(27,3,0.003532), +            Elem(27,4,0.024593), Elem(27,5,0.001878), Elem(27,6,0.001435), Elem(27,7,0.001177), Elem(27,8,0.001001), Elem(32,0,0.002206), Elem(32,1,0.003308), Elem(32,2,0.006617), +            Elem(32,3,0.661660), Elem(32,4,0.006617), Elem(32,5,0.003308), Elem(32,6,0.002206), Elem(32,7,0.001654), Elem(32,8,0.001323), Elem(33,0,0.000045), Elem(33,1,0.000056), +            Elem(33,2,0.000075), Elem(33,3,0.000112), Elem(33,4,0.000224), Elem(33,5,0.022387), Elem(33,6,0.000224), Elem(33,7,0.000112), Elem(33,8,0.000075), Elem(39,0,0.005608), +            Elem(39,1,0.014071), Elem(39,2,0.011149), Elem(39,3,0.022197), Elem(39,4,2.216356), Elem(39,5,0.022180), Elem(39,6,0.011095), Elem(39,7,0.007399), Elem(39,8,0.005550), +            Elem(44,0,0.004445), Elem(44,1,0.005555), Elem(44,2,0.007404), Elem(44,3,0.011102), Elem(44,4,0.022188), Elem(44,5,2.216367), Elem(44,6,0.022213), Elem(44,7,0.011182), +            Elem(44,8,0.017388), Elem(46,0,0.000056), Elem(46,1,0.000075), Elem(46,2,0.000112), Elem(46,3,0.000224), Elem(46,4,0.022387), Elem(46,5,0.000224), Elem(46,6,0.000112), +            Elem(46,7,0.000075), Elem(46,8,0.000056), Elem(48,0,0.002469), Elem(48,1,0.002963), Elem(48,2,0.003703), Elem(48,3,0.004938), Elem(48,4,0.007406), Elem(48,5,0.014813), +            Elem(48,6,1.481273), Elem(48,7,0.014813), Elem(48,8,0.007406), Elem(51,0,0.001414), Elem(51,1,0.001650), Elem(51,2,0.001980), Elem(51,3,0.002475), Elem(51,4,0.003300), +            Elem(51,5,0.004950), Elem(51,6,0.009900), Elem(51,7,0.990000), Elem(51,8,0.009900), Elem(56,0,0.001282), Elem(56,1,0.001470), Elem(56,2,0.001725), Elem(56,3,0.002092), +            Elem(56,4,0.002699), Elem(56,5,0.025687), Elem(56,6,0.005174), Elem(56,7,0.010012), Elem(56,8,0.990075), Elem(68,0,0.006369), Elem(68,1,0.000153), Elem(68,2,0.008965), +            Elem(68,3,0.000110), Elem(68,4,0.000060), Elem(68,5,0.000042), Elem(68,6,0.000033), Elem(68,7,0.000027), Elem(68,8,0.000023), Elem(75,0,0.000134), Elem(75,1,0.013367), +            Elem(75,2,0.000134), Elem(75,3,0.000067), Elem(75,4,0.000045), Elem(75,5,0.000033), Elem(75,6,0.000027), Elem(75,7,0.000022), Elem(75,8,0.000019), Elem(80,0,0.000045), +            Elem(80,1,0.000067), Elem(80,2,0.000134), Elem(80,3,0.013367), Elem(80,4,0.000134), Elem(80,5,0.000067), Elem(80,6,0.000045), Elem(80,7,0.000033), Elem(80,8,0.000027), +            Elem(87,0,0.000081), Elem(87,1,0.000106), Elem(87,2,0.000161), Elem(87,3,0.006820), Elem(87,4,0.000324), Elem(87,5,0.022471), Elem(87,6,0.000346), Elem(87,7,0.010129), +            Elem(87,8,0.000188), }, +      { Elem(1,0,0.000050), Elem(1,1,0.000060), Elem(1,2,0.000075), Elem(1,3,0.000100), Elem(1,4,0.000150), Elem(1,5,0.000299), Elem(1,6,0.029925), Elem(1,7,0.000299), +            Elem(1,8,0.000150), Elem(4,0,0.000029), Elem(4,1,0.000033), Elem(4,2,0.000040), Elem(4,3,0.000050), Elem(4,4,0.000067), Elem(4,5,0.000100), Elem(4,6,0.000200), +            Elem(4,7,0.020000), Elem(4,8,0.000200), Elem(9,0,0.003210), Elem(9,1,0.000105), Elem(9,2,0.004516), Elem(9,3,0.000095), Elem(9,4,0.000080), Elem(9,5,0.000088), +            Elem(9,6,0.000116), Elem(9,7,0.000213), Elem(9,8,0.020011), Elem(21,0,0.315277), Elem(21,1,0.007553), Elem(21,2,0.443782), Elem(21,3,0.005466), Elem(21,4,0.002994), +            Elem(21,5,0.002100), Elem(21,6,0.001627), Elem(21,7,0.001332), Elem(21,8,0.001128), Elem(25,0,0.000022), Elem(25,1,0.000033), Elem(25,2,0.000067), Elem(25,3,0.006683), +            Elem(25,4,0.000067), Elem(25,5,0.000033), Elem(25,6,0.000022), Elem(25,7,0.000017), Elem(28,0,0.006673), Elem(28,1,0.661735), Elem(28,2,0.006729), Elem(28,3,0.003532), +            Elem(28,4,0.024593), Elem(28,5,0.001878), Elem(28,6,0.001435), Elem(28,7,0.001177), Elem(28,8,0.001001), Elem(33,0,0.002206), Elem(33,1,0.003308), Elem(33,2,0.006617), +            Elem(33,3,0.661660), Elem(33,4,0.006617), Elem(33,5,0.003308), Elem(33,6,0.002206), Elem(33,7,0.001654), Elem(33,8,0.001323), Elem(38,0,0.000045), Elem(38,1,0.000056), +            Elem(38,2,0.000075), Elem(38,3,0.000112), Elem(38,4,0.000224), Elem(38,5,0.022387), Elem(38,6,0.000224), Elem(38,7,0.000112), Elem(38,8,0.000075), Elem(40,0,0.005608), +            Elem(40,1,0.014071), Elem(40,2,0.011149), Elem(40,3,0.022197), Elem(40,4,2.216356), Elem(40,5,0.022180), Elem(40,6,0.011095), Elem(40,7,0.007399), Elem(40,8,0.005550), +            Elem(44,0,0.000022), Elem(44,1,0.000033), Elem(44,2,0.000067), Elem(44,3,0.006683), Elem(44,4,0.000067), Elem(44,5,0.000033), Elem(44,6,0.000022), Elem(44,7,0.000017), +            Elem(45,0,0.004445), Elem(45,1,0.005555), Elem(45,2,0.007404), Elem(45,3,0.011102), Elem(45,4,0.022188), Elem(45,5,2.216367), Elem(45,6,0.022213), Elem(45,7,0.011182), +            Elem(45,8,0.017388), Elem(47,0,0.000056), Elem(47,1,0.000075), Elem(47,2,0.000112), Elem(47,3,0.000224), Elem(47,4,0.022387), Elem(47,5,0.000224), Elem(47,6,0.000112), +            Elem(47,7,0.000075), Elem(47,8,0.000056), Elem(49,0,0.002469), Elem(49,1,0.002963), Elem(49,2,0.003703), Elem(49,3,0.004938), Elem(49,4,0.007406), Elem(49,5,0.014813), +            Elem(49,6,1.481273), Elem(49,7,0.014813), Elem(49,8,0.007406), Elem(52,0,0.001414), Elem(52,1,0.001650), Elem(52,2,0.001980), Elem(52,3,0.002475), Elem(52,4,0.003300), +            Elem(52,5,0.004950), Elem(52,6,0.009900), Elem(52,7,0.990000), Elem(52,8,0.009900), Elem(57,0,0.001282), Elem(57,1,0.001470), Elem(57,2,0.001725), Elem(57,3,0.002092), +            Elem(57,4,0.002699), Elem(57,5,0.025687), Elem(57,6,0.005174), Elem(57,7,0.010012), Elem(57,8,0.990075), Elem(69,0,0.006369), Elem(69,1,0.000153), Elem(69,2,0.008965), +            Elem(69,3,0.000110), Elem(69,4,0.000060), Elem(69,5,0.000042), Elem(69,6,0.000033), Elem(69,7,0.000027), Elem(69,8,0.000023), Elem(76,0,0.000134), Elem(76,1,0.013367), +            Elem(76,2,0.000134), Elem(76,3,0.000067), Elem(76,4,0.000045), Elem(76,5,0.000033), Elem(76,6,0.000027), Elem(76,7,0.000022), Elem(76,8,0.000019), Elem(81,0,0.000022), +            Elem(81,1,0.000033), Elem(81,2,0.000067), Elem(81,3,0.006683), Elem(81,4,0.000067), Elem(81,5,0.000033), Elem(81,6,0.000022), Elem(81,7,0.000017), Elem(85,0,0.000025), +            Elem(85,1,0.000030), Elem(85,2,0.000037), Elem(85,3,0.000050), Elem(85,4,0.000075), Elem(85,5,0.000150), Elem(85,6,0.014962), Elem(85,7,0.000150), Elem(85,8,0.000075), +            Elem(88,0,0.000059), Elem(88,1,0.000073), Elem(88,2,0.000095), Elem(88,3,0.000137), Elem(88,4,0.000257), Elem(88,5,0.022437), Elem(88,6,0.000324), Elem(88,7,0.010112), +            Elem(88,8,0.000175), }, +      { Elem(2,0,0.000050), Elem(2,1,0.000060), Elem(2,2,0.000075), Elem(2,3,0.000100), Elem(2,4,0.000150), Elem(2,5,0.000299), Elem(2,6,0.029925), Elem(2,7,0.000299), +            Elem(2,8,0.000150), Elem(5,0,0.000029), Elem(5,1,0.000033), Elem(5,2,0.000040), Elem(5,3,0.000050), Elem(5,4,0.000067), Elem(5,5,0.000100), Elem(5,6,0.000200), +            Elem(5,7,0.020000), Elem(5,8,0.000200), Elem(10,0,0.003210), Elem(10,1,0.000105), Elem(10,2,0.004516), Elem(10,3,0.000095), Elem(10,4,0.000080), Elem(10,5,0.000088), +            Elem(10,6,0.000116), Elem(10,7,0.000213), Elem(10,8,0.020011), Elem(22,0,0.315277), Elem(22,1,0.007553), Elem(22,2,0.443782), Elem(22,3,0.005466), Elem(22,4,0.002994), +            Elem(22,5,0.002100), Elem(22,6,0.001627), Elem(22,7,0.001332), Elem(22,8,0.001128), Elem(29,0,0.006673), Elem(29,1,0.661735), Elem(29,2,0.006729), Elem(29,3,0.003532), +            Elem(29,4,0.024593), Elem(29,5,0.001878), Elem(29,6,0.001435), Elem(29,7,0.001177), Elem(29,8,0.001001), Elem(34,0,0.002206), Elem(34,1,0.003308), Elem(34,2,0.006617), +            Elem(34,3,0.661660), Elem(34,4,0.006617), Elem(34,5,0.003308), Elem(34,6,0.002206), Elem(34,7,0.001654), Elem(34,8,0.001323), Elem(39,0,0.000045), Elem(39,1,0.000056), +            Elem(39,2,0.000075), Elem(39,3,0.000112), Elem(39,4,0.000224), Elem(39,5,0.022387), Elem(39,6,0.000224), Elem(39,7,0.000112), Elem(39,8,0.000075), Elem(41,0,0.005608), +            Elem(41,1,0.014071), Elem(41,2,0.011149), Elem(41,3,0.022197), Elem(41,4,2.216356), Elem(41,5,0.022180), Elem(41,6,0.011095), Elem(41,7,0.007399), Elem(41,8,0.005550), +            Elem(46,0,0.004445), Elem(46,1,0.005555), Elem(46,2,0.007404), Elem(46,3,0.011102), Elem(46,4,0.022188), Elem(46,5,2.216367), Elem(46,6,0.022213), Elem(46,7,0.011182), +            Elem(46,8,0.017388), Elem(50,0,0.002469), Elem(50,1,0.002963), Elem(50,2,0.003703), Elem(50,3,0.004938), Elem(50,4,0.007406), Elem(50,5,0.014813), Elem(50,6,1.481273), +            Elem(50,7,0.014813), Elem(50,8,0.007406), Elem(53,0,0.001414), Elem(53,1,0.001650), Elem(53,2,0.001980), Elem(53,3,0.002475), Elem(53,4,0.003300), Elem(53,5,0.004950), +            Elem(53,6,0.009900), Elem(53,7,0.990000), Elem(53,8,0.009900), Elem(58,0,0.001282), Elem(58,1,0.001470), Elem(58,2,0.001725), Elem(58,3,0.002092), Elem(58,4,0.002699), +            Elem(58,5,0.025687), Elem(58,6,0.005174), Elem(58,7,0.010012), Elem(58,8,0.990075), Elem(70,0,0.006369), Elem(70,1,0.000153), Elem(70,2,0.008965), Elem(70,3,0.000110), +            Elem(70,4,0.000060), Elem(70,5,0.000042), Elem(70,6,0.000033), Elem(70,7,0.000027), Elem(70,8,0.000023), Elem(75,0,0.000067), Elem(75,1,0.006683), Elem(75,2,0.000067), +            Elem(75,3,0.000033), Elem(75,4,0.000022), Elem(75,5,0.000017), Elem(77,0,0.000067), Elem(77,1,0.006683), Elem(77,2,0.000067), Elem(77,3,0.000033), Elem(77,4,0.000022), +            Elem(77,5,0.000017), Elem(82,0,0.000045), Elem(82,1,0.000067), Elem(82,2,0.000134), Elem(82,3,0.013367), Elem(82,4,0.000134), Elem(82,5,0.000067), Elem(82,6,0.000045), +            Elem(82,7,0.000033), Elem(82,8,0.000027), Elem(84,0,0.000112), Elem(84,1,0.000149), Elem(84,2,0.000224), Elem(84,3,0.000448), Elem(84,4,0.044774), Elem(84,5,0.000448), +            Elem(84,6,0.000224), Elem(84,7,0.000149), Elem(84,8,0.000112), Elem(86,0,0.000025), Elem(86,1,0.000030), Elem(86,2,0.000037), Elem(86,3,0.000050), Elem(86,4,0.000075), +            Elem(86,5,0.000150), Elem(86,6,0.014962), Elem(86,7,0.000150), Elem(86,8,0.000075), Elem(89,0,0.000081), Elem(89,1,0.000106), Elem(89,2,0.000161), Elem(89,3,0.006820), +            Elem(89,4,0.000324), Elem(89,5,0.022471), Elem(89,6,0.000346), Elem(89,7,0.010129), Elem(89,8,0.000188), }, +      { Elem(3,0,0.000050), Elem(3,1,0.000060), Elem(3,2,0.000075), Elem(3,3,0.000100), Elem(3,4,0.000150), Elem(3,5,0.000299), Elem(3,6,0.029925), Elem(3,7,0.000299), +            Elem(3,8,0.000150), Elem(6,0,0.000029), Elem(6,1,0.000033), Elem(6,2,0.000040), Elem(6,3,0.000050), Elem(6,4,0.000067), Elem(6,5,0.000100), Elem(6,6,0.000200), +            Elem(6,7,0.020000), Elem(6,8,0.000200), Elem(11,0,0.003210), Elem(11,1,0.000105), Elem(11,2,0.004516), Elem(11,3,0.000095), Elem(11,4,0.000080), Elem(11,5,0.000088), +            Elem(11,6,0.000116), Elem(11,7,0.000213), Elem(11,8,0.020011), Elem(23,0,0.315277), Elem(23,1,0.007553), Elem(23,2,0.443782), Elem(23,3,0.005466), Elem(23,4,0.002994), +            Elem(23,5,0.002100), Elem(23,6,0.001627), Elem(23,7,0.001332), Elem(23,8,0.001128), Elem(30,0,0.006673), Elem(30,1,0.661735), Elem(30,2,0.006729), Elem(30,3,0.003532), +            Elem(30,4,0.024593), Elem(30,5,0.001878), Elem(30,6,0.001435), Elem(30,7,0.001177), Elem(30,8,0.001001), Elem(35,0,0.002206), Elem(35,1,0.003308), Elem(35,2,0.006617), +            Elem(35,3,0.661660), Elem(35,4,0.006617), Elem(35,5,0.003308), Elem(35,6,0.002206), Elem(35,7,0.001654), Elem(35,8,0.001323), Elem(40,0,0.000045), Elem(40,1,0.000056), +            Elem(40,2,0.000075), Elem(40,3,0.000112), Elem(40,4,0.000224), Elem(40,5,0.022387), Elem(40,6,0.000224), Elem(40,7,0.000112), Elem(40,8,0.000075), Elem(42,0,0.005608), +            Elem(42,1,0.014071), Elem(42,2,0.011149), Elem(42,3,0.022197), Elem(42,4,2.216356), Elem(42,5,0.022180), Elem(42,6,0.011095), Elem(42,7,0.007399), Elem(42,8,0.005550), +            Elem(47,0,0.004445), Elem(47,1,0.005555), Elem(47,2,0.007404), Elem(47,3,0.011102), Elem(47,4,0.022188), Elem(47,5,2.216367), Elem(47,6,0.022213), Elem(47,7,0.011182), +            Elem(47,8,0.017388), Elem(51,0,0.002469), Elem(51,1,0.002963), Elem(51,2,0.003703), Elem(51,3,0.004938), Elem(51,4,0.007406), Elem(51,5,0.014813), Elem(51,6,1.481273), +            Elem(51,7,0.014813), Elem(51,8,0.007406), Elem(54,0,0.001414), Elem(54,1,0.001650), Elem(54,2,0.001980), Elem(54,3,0.002475), Elem(54,4,0.003300), Elem(54,5,0.004950), +            Elem(54,6,0.009900), Elem(54,7,0.990000), Elem(54,8,0.009900), Elem(59,0,0.001282), Elem(59,1,0.001470), Elem(59,2,0.001725), Elem(59,3,0.002092), Elem(59,4,0.002699), +            Elem(59,5,0.025687), Elem(59,6,0.005174), Elem(59,7,0.010012), Elem(59,8,0.990075), Elem(71,0,0.006369), Elem(71,1,0.000153), Elem(71,2,0.008965), Elem(71,3,0.000110), +            Elem(71,4,0.000060), Elem(71,5,0.000042), Elem(71,6,0.000033), Elem(71,7,0.000027), Elem(71,8,0.000023), Elem(78,0,0.000134), Elem(78,1,0.013367), Elem(78,2,0.000134), +            Elem(78,3,0.000067), Elem(78,4,0.000045), Elem(78,5,0.000033), Elem(78,6,0.000027), Elem(78,7,0.000022), Elem(78,8,0.000019), Elem(83,0,0.000045), Elem(83,1,0.000067), +            Elem(83,2,0.000134), Elem(83,3,0.013367), Elem(83,4,0.000134), Elem(83,5,0.000067), Elem(83,6,0.000045), Elem(83,7,0.000033), Elem(83,8,0.000027), Elem(85,0,0.000112), +            Elem(85,1,0.000149), Elem(85,2,0.000224), Elem(85,3,0.000448), Elem(85,4,0.044774), Elem(85,5,0.000448), Elem(85,6,0.000224), Elem(85,7,0.000149), Elem(85,8,0.000112), +            Elem(87,0,0.000025), Elem(87,1,0.000030), Elem(87,2,0.000037), Elem(87,3,0.000050), Elem(87,4,0.000075), Elem(87,5,0.000150), Elem(87,6,0.014962), Elem(87,7,0.000150), +            Elem(87,8,0.000075), Elem(90,0,0.000081), Elem(90,1,0.000106), Elem(90,2,0.000161), Elem(90,3,0.006820), Elem(90,4,0.000324), Elem(90,5,0.022471), Elem(90,6,0.000346), +            Elem(90,7,0.010129), Elem(90,8,0.000188), }, +      { Elem(0,0,0.004527), Elem(0,1,0.000119), Elem(0,2,0.000122), Elem(0,3,0.000165), Elem(0,4,0.000310), Elem(0,5,0.029934), Elem(0,6,0.000307), Elem(0,7,0.000156), +            Elem(0,8,0.000105), Elem(4,0,0.000050), Elem(4,1,0.000060), Elem(4,2,0.000075), Elem(4,3,0.000100), Elem(4,4,0.000150), Elem(4,5,0.000299), Elem(4,6,0.029925), +            Elem(4,7,0.000299), Elem(4,8,0.000150), Elem(7,0,0.000029), Elem(7,1,0.000033), Elem(7,2,0.000040), Elem(7,3,0.000050), Elem(7,4,0.000067), Elem(7,5,0.000100), +            Elem(7,6,0.000200), Elem(7,7,0.020000), Elem(7,8,0.000200), Elem(12,0,0.442242), Elem(12,1,0.004451), Elem(12,2,0.002244), Elem(12,3,0.001514), Elem(12,4,0.001156), +            Elem(12,5,0.000951), Elem(12,6,0.000837), Elem(12,7,0.000832), Elem(12,8,0.020553), Elem(24,0,0.002233), Elem(24,1,0.004456), Elem(24,2,0.442284), Elem(24,3,0.011106), +            Elem(24,4,0.002278), Elem(24,5,0.001507), Elem(24,6,0.001128), Elem(24,7,0.000901), Elem(24,8,0.000750), Elem(31,0,0.006617), Elem(31,1,0.661660), Elem(31,2,0.006617), +            Elem(31,3,0.003308), Elem(31,4,0.002206), Elem(31,5,0.001654), Elem(31,6,0.001323), Elem(31,7,0.001103), Elem(31,8,0.000945), Elem(36,0,0.002284), Elem(36,1,0.003428), +            Elem(36,2,0.011195), Elem(36,3,0.661929), Elem(36,4,0.029026), Elem(36,5,0.003547), Elem(36,6,0.002329), Elem(36,7,0.001738), Elem(36,8,0.001387), Elem(43,0,0.005577), +            Elem(43,1,0.007438), Elem(43,2,0.011169), Elem(43,3,0.028872), Elem(43,4,2.216434), Elem(43,5,0.022247), Elem(43,6,0.011204), Elem(43,7,0.017404), Elem(43,8,0.005654), +            Elem(48,0,0.002963), Elem(48,1,0.003703), Elem(48,2,0.004938), Elem(48,3,0.007406), Elem(48,4,0.014813), Elem(48,5,1.481273), Elem(48,6,0.014813), Elem(48,7,0.007406), +            Elem(48,8,0.004938), Elem(52,0,0.002469), Elem(52,1,0.002963), Elem(52,2,0.003703), Elem(52,3,0.004938), Elem(52,4,0.007406), Elem(52,5,0.014813), Elem(52,6,1.481273), +            Elem(52,7,0.014813), Elem(52,8,0.007406), Elem(55,0,0.001470), Elem(55,1,0.001725), Elem(55,2,0.002092), Elem(55,3,0.002699), Elem(55,4,0.025687), Elem(55,5,0.005174), +            Elem(55,6,0.010012), Elem(55,7,0.990075), Elem(55,8,0.009956), Elem(60,0,0.010171), Elem(60,1,0.001504), Elem(60,2,0.001695), Elem(60,3,0.002010), Elem(60,4,0.002497), +            Elem(60,5,0.003318), Elem(60,6,0.004965), Elem(60,7,0.009913), Elem(60,8,0.990011), Elem(72,0,0.000057), Elem(72,1,0.000104), Elem(72,2,0.008950), Elem(72,3,0.000109), +            Elem(72,4,0.000070), Elem(72,5,0.000063), Elem(72,6,0.000072), Elem(72,7,0.000118), Elem(72,8,0.010015), Elem(79,0,0.000134), Elem(79,1,0.013367), Elem(79,2,0.000134), +            Elem(79,3,0.000067), Elem(79,4,0.000045), Elem(79,5,0.000033), Elem(79,6,0.000027), Elem(79,7,0.000022), Elem(79,8,0.000019), Elem(86,0,0.000123), Elem(86,1,0.006758), +            Elem(86,2,0.000179), Elem(86,3,0.000257), Elem(86,4,0.022409), Elem(86,5,0.000241), Elem(86,6,0.000125), Elem(86,7,0.000086), Elem(86,8,0.000066), Elem(88,0,0.000025), +            Elem(88,1,0.000030), Elem(88,2,0.000037), Elem(88,3,0.000050), Elem(88,4,0.000075), Elem(88,5,0.000150), Elem(88,6,0.014962), Elem(88,7,0.000150), Elem(88,8,0.000075), +            }, +      { Elem(1,0,0.004527), Elem(1,1,0.000119), Elem(1,2,0.000122), Elem(1,3,0.000165), Elem(1,4,0.000310), Elem(1,5,0.029934), Elem(1,6,0.000307), Elem(1,7,0.000156), +            Elem(1,8,0.000105), Elem(5,0,0.000050), Elem(5,1,0.000060), Elem(5,2,0.000075), Elem(5,3,0.000100), Elem(5,4,0.000150), Elem(5,5,0.000299), Elem(5,6,0.029925), +            Elem(5,7,0.000299), Elem(5,8,0.000150), Elem(8,0,0.000029), Elem(8,1,0.000033), Elem(8,2,0.000040), Elem(8,3,0.000050), Elem(8,4,0.000067), Elem(8,5,0.000100), +            Elem(8,6,0.000200), Elem(8,7,0.020000), Elem(8,8,0.000200), Elem(13,0,0.442242), Elem(13,1,0.004451), Elem(13,2,0.002244), Elem(13,3,0.001514), Elem(13,4,0.001156), +            Elem(13,5,0.000951), Elem(13,6,0.000837), Elem(13,7,0.000832), Elem(13,8,0.020553), Elem(25,0,0.002211), Elem(25,1,0.004422), Elem(25,2,0.442217), Elem(25,3,0.004422), +            Elem(25,4,0.002211), Elem(25,5,0.001474), Elem(25,6,0.001106), Elem(25,7,0.000884), Elem(25,8,0.000737), Elem(32,0,0.006617), Elem(32,1,0.661660), Elem(32,2,0.006617), +            Elem(32,3,0.003308), Elem(32,4,0.002206), Elem(32,5,0.001654), Elem(32,6,0.001323), Elem(32,7,0.001103), Elem(32,8,0.000945), Elem(33,0,0.000078), Elem(33,1,0.000119), +            Elem(33,2,0.004579), Elem(33,3,0.000269), Elem(33,4,0.022410), Elem(33,5,0.000239), Elem(33,6,0.000123), Elem(33,7,0.000084), Elem(33,8,0.000063), Elem(37,0,0.002206), +            Elem(37,1,0.003308), Elem(37,2,0.006617), Elem(37,3,0.661660), Elem(37,4,0.006617), Elem(37,5,0.003308), Elem(37,6,0.002206), Elem(37,7,0.001654), Elem(37,8,0.001323), +            Elem(44,0,0.005555), Elem(44,1,0.007404), Elem(44,2,0.011102), Elem(44,3,0.022188), Elem(44,4,2.216367), Elem(44,5,0.022213), Elem(44,6,0.011182), Elem(44,7,0.017388), +            Elem(44,8,0.005641), Elem(49,0,0.002963), Elem(49,1,0.003703), Elem(49,2,0.004938), Elem(49,3,0.007406), Elem(49,4,0.014813), Elem(49,5,1.481273), Elem(49,6,0.014813), +            Elem(49,7,0.007406), Elem(49,8,0.004938), Elem(53,0,0.002469), Elem(53,1,0.002963), Elem(53,2,0.003703), Elem(53,3,0.004938), Elem(53,4,0.007406), Elem(53,5,0.014813), +            Elem(53,6,1.481273), Elem(53,7,0.014813), Elem(53,8,0.007406), Elem(56,0,0.001470), Elem(56,1,0.001725), Elem(56,2,0.002092), Elem(56,3,0.002699), Elem(56,4,0.025687), +            Elem(56,5,0.005174), Elem(56,6,0.010012), Elem(56,7,0.990075), Elem(56,8,0.009956), Elem(61,0,0.010171), Elem(61,1,0.001504), Elem(61,2,0.001695), Elem(61,3,0.002010), +            Elem(61,4,0.002497), Elem(61,5,0.003318), Elem(61,6,0.004965), Elem(61,7,0.009913), Elem(61,8,0.990011), Elem(73,0,0.000057), Elem(73,1,0.000104), Elem(73,2,0.008950), +            Elem(73,3,0.000109), Elem(73,4,0.000070), Elem(73,5,0.000063), Elem(73,6,0.000072), Elem(73,7,0.000118), Elem(73,8,0.010015), Elem(80,0,0.000134), Elem(80,1,0.013367), +            Elem(80,2,0.000134), Elem(80,3,0.000067), Elem(80,4,0.000045), Elem(80,5,0.000033), Elem(80,6,0.000027), Elem(80,7,0.000022), Elem(80,8,0.000019), Elem(85,0,0.000030), +            Elem(85,1,0.000037), Elem(85,2,0.000050), Elem(85,3,0.000075), Elem(85,4,0.000150), Elem(85,5,0.014962), Elem(85,6,0.000150), Elem(85,7,0.000075), Elem(85,8,0.000050), +            Elem(87,0,0.000123), Elem(87,1,0.006758), Elem(87,2,0.000179), Elem(87,3,0.000257), Elem(87,4,0.022409), Elem(87,5,0.000241), Elem(87,6,0.000125), Elem(87,7,0.000086), +            Elem(87,8,0.000066), Elem(89,0,0.000025), Elem(89,1,0.000030), Elem(89,2,0.000037), Elem(89,3,0.000050), Elem(89,4,0.000075), Elem(89,5,0.000150), Elem(89,6,0.014962), +            Elem(89,7,0.000150), Elem(89,8,0.000075), }, +      { Elem(2,0,0.004527), Elem(2,1,0.000119), Elem(2,2,0.000122), Elem(2,3,0.000165), Elem(2,4,0.000310), Elem(2,5,0.029934), Elem(2,6,0.000307), Elem(2,7,0.000156), +            Elem(2,8,0.000105), Elem(6,0,0.000033), Elem(6,1,0.000040), Elem(6,2,0.000050), Elem(6,3,0.000067), Elem(6,4,0.000100), Elem(6,5,0.000200), Elem(6,6,0.020000), +            Elem(6,7,0.000200), Elem(6,8,0.000100), Elem(9,0,0.000029), Elem(9,1,0.000033), Elem(9,2,0.000040), Elem(9,3,0.000050), Elem(9,4,0.000067), Elem(9,5,0.000100), +            Elem(9,6,0.000200), Elem(9,7,0.020000), Elem(9,8,0.000200), Elem(14,0,0.442242), Elem(14,1,0.004451), Elem(14,2,0.002244), Elem(14,3,0.001514), Elem(14,4,0.001156), +            Elem(14,5,0.000951), Elem(14,6,0.000837), Elem(14,7,0.000832), Elem(14,8,0.020553), Elem(25,0,0.000067), Elem(25,1,0.006683), Elem(25,2,0.000067), Elem(25,3,0.000033), +            Elem(25,4,0.000022), Elem(25,5,0.000017), Elem(26,0,0.002233), Elem(26,1,0.004456), Elem(26,2,0.442284), Elem(26,3,0.011106), Elem(26,4,0.002278), Elem(26,5,0.001507), +            Elem(26,6,0.001128), Elem(26,7,0.000901), Elem(26,8,0.000750), Elem(33,0,0.006617), Elem(33,1,0.661660), Elem(33,2,0.006617), Elem(33,3,0.003308), Elem(33,4,0.002206), +            Elem(33,5,0.001654), Elem(33,6,0.001323), Elem(33,7,0.001103), Elem(33,8,0.000945), Elem(38,0,0.002265), Elem(38,1,0.003403), Elem(38,2,0.011158), Elem(38,3,0.661855), +            Elem(38,4,0.021601), Elem(38,5,0.003473), Elem(38,6,0.002292), Elem(38,7,0.001713), Elem(38,8,0.001368), Elem(44,0,0.000067), Elem(44,1,0.006683), Elem(44,2,0.000067), +            Elem(44,3,0.000033), Elem(44,4,0.000022), Elem(44,5,0.000017), Elem(45,0,0.003740), Elem(45,1,0.004988), Elem(45,2,0.007493), Elem(45,3,0.021521), Elem(45,4,1.481374), +            Elem(45,5,0.014896), Elem(45,6,0.007529), Elem(45,7,0.014954), Elem(45,8,0.003817), Elem(50,0,0.002963), Elem(50,1,0.003703), Elem(50,2,0.004938), Elem(50,3,0.007406), +            Elem(50,4,0.014813), Elem(50,5,1.481273), Elem(50,6,0.014813), Elem(50,7,0.007406), Elem(50,8,0.004938), Elem(54,0,0.001650), Elem(54,1,0.001980), Elem(54,2,0.002475), +            Elem(54,3,0.003300), Elem(54,4,0.004950), Elem(54,5,0.009900), Elem(54,6,0.990000), Elem(54,7,0.009900), Elem(54,8,0.004950), Elem(57,0,0.001452), Elem(57,1,0.001700), +            Elem(57,2,0.002055), Elem(57,3,0.002625), Elem(57,4,0.018262), Elem(57,5,0.005100), Elem(57,6,0.009975), Elem(57,7,0.990050), Elem(57,8,0.009937), Elem(62,0,0.010171), +            Elem(62,1,0.001504), Elem(62,2,0.001695), Elem(62,3,0.002010), Elem(62,4,0.002497), Elem(62,5,0.003318), Elem(62,6,0.004965), Elem(62,7,0.009913), Elem(62,8,0.990011), +            Elem(74,0,0.000057), Elem(74,1,0.000104), Elem(74,2,0.008950), Elem(74,3,0.000109), Elem(74,4,0.000070), Elem(74,5,0.000063), Elem(74,6,0.000072), Elem(74,7,0.000118), +            Elem(74,8,0.010015), Elem(81,0,0.000067), Elem(81,1,0.006683), Elem(81,2,0.000067), Elem(81,3,0.000033), Elem(81,4,0.000022), Elem(81,5,0.000017), Elem(86,0,0.000030), +            Elem(86,1,0.000037), Elem(86,2,0.000050), Elem(86,3,0.000075), Elem(86,4,0.000150), Elem(86,5,0.014962), Elem(86,6,0.000150), Elem(86,7,0.000075), Elem(86,8,0.000050), +            Elem(88,0,0.000037), Elem(88,1,0.000050), Elem(88,2,0.000075), Elem(88,3,0.000150), Elem(88,4,0.014962), Elem(88,5,0.000150), Elem(88,6,0.000075), Elem(88,7,0.000050), +            Elem(88,8,0.000037), Elem(90,0,0.000017), Elem(90,1,0.000020), Elem(90,2,0.000025), Elem(90,3,0.000033), Elem(90,4,0.000050), Elem(90,5,0.000100), Elem(90,6,0.010000), +            Elem(90,7,0.000100), Elem(90,8,0.000050), }, +      { Elem(3,0,0.004507), Elem(3,1,0.000095), Elem(3,2,0.000089), Elem(3,3,0.000115), Elem(3,4,0.000211), Elem(3,5,0.020009), Elem(3,6,0.000207), Elem(3,7,0.000106), +            Elem(3,8,0.000072), Elem(7,0,0.000033), Elem(7,1,0.000040), Elem(7,2,0.000050), Elem(7,3,0.000067), Elem(7,4,0.000100), Elem(7,5,0.000200), Elem(7,6,0.020000), +            Elem(7,7,0.000200), Elem(7,8,0.000100), Elem(10,0,0.000029), Elem(10,1,0.000033), Elem(10,2,0.000040), Elem(10,3,0.000050), Elem(10,4,0.000067), Elem(10,5,0.000100), +            Elem(10,6,0.000200), Elem(10,7,0.020000), Elem(10,8,0.000200), Elem(15,0,0.442242), Elem(15,1,0.004451), Elem(15,2,0.002244), Elem(15,3,0.001514), Elem(15,4,0.001156), +            Elem(15,5,0.000951), Elem(15,6,0.000837), Elem(15,7,0.000832), Elem(15,8,0.020553), Elem(27,0,0.002233), Elem(27,1,0.004456), Elem(27,2,0.442284), Elem(27,3,0.011106), +            Elem(27,4,0.002278), Elem(27,5,0.001507), Elem(27,6,0.001128), Elem(27,7,0.000901), Elem(27,8,0.000750), Elem(34,0,0.009900), Elem(34,1,0.990000), Elem(34,2,0.009900), +            Elem(34,3,0.004950), Elem(34,4,0.003300), Elem(34,5,0.002475), Elem(34,6,0.001980), Elem(34,7,0.001650), Elem(34,8,0.001414), Elem(39,0,0.002265), Elem(39,1,0.003403), +            Elem(39,2,0.011158), Elem(39,3,0.661855), Elem(39,4,0.021601), Elem(39,5,0.003473), Elem(39,6,0.002292), Elem(39,7,0.001713), Elem(39,8,0.001368), Elem(43,0,0.000017), +            Elem(43,1,0.000020), Elem(43,2,0.000025), Elem(43,3,0.000033), Elem(43,4,0.000050), Elem(43,5,0.000100), Elem(43,6,0.010000), Elem(43,7,0.000100), Elem(43,8,0.000050), +            Elem(46,0,0.003740), Elem(46,1,0.004988), Elem(46,2,0.007493), Elem(46,3,0.021521), Elem(46,4,1.481374), Elem(46,5,0.014896), Elem(46,6,0.007529), Elem(46,7,0.014954), +            Elem(46,8,0.003817), Elem(51,0,0.001980), Elem(51,1,0.002475), Elem(51,2,0.003300), Elem(51,3,0.004950), Elem(51,4,0.009900), Elem(51,5,0.990000), Elem(51,6,0.009900), +            Elem(51,7,0.004950), Elem(51,8,0.003300), Elem(55,0,0.001650), Elem(55,1,0.001980), Elem(55,2,0.002475), Elem(55,3,0.003300), Elem(55,4,0.004950), Elem(55,5,0.009900), +            Elem(55,6,0.990000), Elem(55,7,0.009900), Elem(55,8,0.004950), Elem(58,0,0.001452), Elem(58,1,0.001700), Elem(58,2,0.002055), Elem(58,3,0.002625), Elem(58,4,0.018262), +            Elem(58,5,0.005100), Elem(58,6,0.009975), Elem(58,7,0.990050), Elem(58,8,0.009937), Elem(63,0,0.010171), Elem(63,1,0.001504), Elem(63,2,0.001695), Elem(63,3,0.002010), +            Elem(63,4,0.002497), Elem(63,5,0.003318), Elem(63,6,0.004965), Elem(63,7,0.009913), Elem(63,8,0.990011), Elem(75,0,0.000057), Elem(75,1,0.000104), Elem(75,2,0.008950), +            Elem(75,3,0.000109), Elem(75,4,0.000070), Elem(75,5,0.000063), Elem(75,6,0.000072), Elem(75,7,0.000118), Elem(75,8,0.010015), Elem(82,0,0.000200), Elem(82,1,0.020000), +            Elem(82,2,0.000200), Elem(82,3,0.000100), Elem(82,4,0.000067), Elem(82,5,0.000050), Elem(82,6,0.000040), Elem(82,7,0.000033), Elem(82,8,0.000029), Elem(87,0,0.000020), +            Elem(87,1,0.000025), Elem(87,2,0.000033), Elem(87,3,0.000050), Elem(87,4,0.000100), Elem(87,5,0.010000), Elem(87,6,0.000100), Elem(87,7,0.000050), Elem(87,8,0.000033), +            Elem(89,0,0.000137), Elem(89,1,0.010050), Elem(89,2,0.000175), Elem(89,3,0.000200), Elem(89,4,0.014996), Elem(89,5,0.000175), Elem(89,6,0.000095), Elem(89,7,0.000067), +            Elem(89,8,0.000052), }, +      { Elem(4,0,0.004507), Elem(4,1,0.000095), Elem(4,2,0.000089), Elem(4,3,0.000115), Elem(4,4,0.000211), Elem(4,5,0.020009), Elem(4,6,0.000207), Elem(4,7,0.000106), +            Elem(4,8,0.000072), Elem(8,0,0.000033), Elem(8,1,0.000040), Elem(8,2,0.000050), Elem(8,3,0.000067), Elem(8,4,0.000100), Elem(8,5,0.000200), Elem(8,6,0.020000), +            Elem(8,7,0.000200), Elem(8,8,0.000100), Elem(11,0,0.000029), Elem(11,1,0.000033), Elem(11,2,0.000040), Elem(11,3,0.000050), Elem(11,4,0.000067), Elem(11,5,0.000100), +            Elem(11,6,0.000200), Elem(11,7,0.020000), Elem(11,8,0.000200), Elem(16,0,0.442242), Elem(16,1,0.004451), Elem(16,2,0.002244), Elem(16,3,0.001514), Elem(16,4,0.001156), +            Elem(16,5,0.000951), Elem(16,6,0.000837), Elem(16,7,0.000832), Elem(16,8,0.020553), Elem(28,0,0.002233), Elem(28,1,0.004456), Elem(28,2,0.442284), Elem(28,3,0.011106), +            Elem(28,4,0.002278), Elem(28,5,0.001507), Elem(28,6,0.001128), Elem(28,7,0.000901), Elem(28,8,0.000750), Elem(35,0,0.009900), Elem(35,1,0.990000), Elem(35,2,0.009900), +            Elem(35,3,0.004950), Elem(35,4,0.003300), Elem(35,5,0.002475), Elem(35,6,0.001980), Elem(35,7,0.001650), Elem(35,8,0.001414), Elem(40,0,0.002265), Elem(40,1,0.003403), +            Elem(40,2,0.011158), Elem(40,3,0.661855), Elem(40,4,0.021601), Elem(40,5,0.003473), Elem(40,6,0.002292), Elem(40,7,0.001713), Elem(40,8,0.001368), Elem(44,0,0.000017), +            Elem(44,1,0.000020), Elem(44,2,0.000025), Elem(44,3,0.000033), Elem(44,4,0.000050), Elem(44,5,0.000100), Elem(44,6,0.010000), Elem(44,7,0.000100), Elem(44,8,0.000050), +            Elem(47,0,0.003740), Elem(47,1,0.004988), Elem(47,2,0.007493), Elem(47,3,0.021521), Elem(47,4,1.481374), Elem(47,5,0.014896), Elem(47,6,0.007529), Elem(47,7,0.014954), +            Elem(47,8,0.003817), Elem(52,0,0.001980), Elem(52,1,0.002475), Elem(52,2,0.003300), Elem(52,3,0.004950), Elem(52,4,0.009900), Elem(52,5,0.990000), Elem(52,6,0.009900), +            Elem(52,7,0.004950), Elem(52,8,0.003300), Elem(56,0,0.001650), Elem(56,1,0.001980), Elem(56,2,0.002475), Elem(56,3,0.003300), Elem(56,4,0.004950), Elem(56,5,0.009900), +            Elem(56,6,0.990000), Elem(56,7,0.009900), Elem(56,8,0.004950), Elem(59,0,0.001452), Elem(59,1,0.001700), Elem(59,2,0.002055), Elem(59,3,0.002625), Elem(59,4,0.018262), +            Elem(59,5,0.005100), Elem(59,6,0.009975), Elem(59,7,0.990050), Elem(59,8,0.009937), Elem(64,0,0.010171), Elem(64,1,0.001504), Elem(64,2,0.001695), Elem(64,3,0.002010), +            Elem(64,4,0.002497), Elem(64,5,0.003318), Elem(64,6,0.004965), Elem(64,7,0.009913), Elem(64,8,0.990011), Elem(76,0,0.000057), Elem(76,1,0.000104), Elem(76,2,0.008950), +            Elem(76,3,0.000109), Elem(76,4,0.000070), Elem(76,5,0.000063), Elem(76,6,0.000072), Elem(76,7,0.000118), Elem(76,8,0.010015), Elem(83,0,0.000200), Elem(83,1,0.020000), +            Elem(83,2,0.000200), Elem(83,3,0.000100), Elem(83,4,0.000067), Elem(83,5,0.000050), Elem(83,6,0.000040), Elem(83,7,0.000033), Elem(83,8,0.000029), Elem(88,0,0.000020), +            Elem(88,1,0.000025), Elem(88,2,0.000033), Elem(88,3,0.000050), Elem(88,4,0.000100), Elem(88,5,0.010000), Elem(88,6,0.000100), Elem(88,7,0.000050), Elem(88,8,0.000033), +            Elem(90,0,0.000137), Elem(90,1,0.010050), Elem(90,2,0.000175), Elem(90,3,0.000200), Elem(90,4,0.014996), Elem(90,5,0.000175), Elem(90,6,0.000095), Elem(90,7,0.000067), +            Elem(90,8,0.000052), }, +      { Elem(0,0,0.000075), Elem(0,1,0.000100), Elem(0,2,0.000150), Elem(0,3,0.000299), Elem(0,4,0.029925), Elem(0,5,0.000299), Elem(0,6,0.000150), Elem(0,7,0.000100), +            Elem(0,8,0.000075), Elem(5,0,0.006723), Elem(5,1,0.000117), Elem(5,2,0.000100), Elem(5,3,0.000122), Elem(5,4,0.000217), Elem(5,5,0.020013), Elem(5,6,0.000211), +            Elem(5,7,0.000110), Elem(5,8,0.000075), Elem(9,0,0.000033), Elem(9,1,0.000040), Elem(9,2,0.000050), Elem(9,3,0.000067), Elem(9,4,0.000100), Elem(9,5,0.000200), +            Elem(9,6,0.020000), Elem(9,7,0.000200), Elem(9,8,0.000100), Elem(12,0,0.000029), Elem(12,1,0.000033), Elem(12,2,0.000040), Elem(12,3,0.000050), Elem(12,4,0.000067), +            Elem(12,5,0.000100), Elem(12,6,0.000200), Elem(12,7,0.020000), Elem(12,8,0.000200), Elem(17,0,0.661686), Elem(17,1,0.006645), Elem(17,2,0.003342), Elem(17,3,0.002246), +            Elem(17,4,0.001704), Elem(17,5,0.001390), Elem(17,6,0.001203), Elem(17,7,0.001145), Elem(17,8,0.020827), Elem(24,0,0.000100), Elem(24,1,0.010000), Elem(24,2,0.000100), +            Elem(24,3,0.000050), Elem(24,4,0.000033), Elem(24,5,0.000025), Elem(24,6,0.000020), Elem(24,7,0.000017), Elem(29,0,0.003342), Elem(29,1,0.006667), Elem(29,2,0.661761), +            Elem(29,3,0.016617), Elem(29,4,0.003408), Elem(29,5,0.002256), Elem(29,6,0.001687), Elem(29,7,0.001348), Elem(29,8,0.001123), Elem(36,0,0.009900), Elem(36,1,0.990000), +            Elem(36,2,0.009900), Elem(36,3,0.004950), Elem(36,4,0.003300), Elem(36,5,0.002475), Elem(36,6,0.001980), Elem(36,7,0.001650), Elem(36,8,0.001414), Elem(41,0,0.003333), +            Elem(41,1,0.005017), Elem(41,2,0.016583), Elem(41,3,0.990067), Elem(41,4,0.009933), Elem(41,5,0.004972), Elem(41,6,0.003317), Elem(41,7,0.002488), Elem(41,8,0.001991), +            Elem(43,0,0.000100), Elem(43,1,0.010000), Elem(43,2,0.000100), Elem(43,3,0.000050), Elem(43,4,0.000033), Elem(43,5,0.000025), Elem(43,6,0.000020), Elem(43,7,0.000017), +            Elem(45,0,0.000017), Elem(45,1,0.000020), Elem(45,2,0.000025), Elem(45,3,0.000033), Elem(45,4,0.000050), Elem(45,5,0.000100), Elem(45,6,0.010000), Elem(45,7,0.000100), +            Elem(45,8,0.000050), Elem(48,0,0.003703), Elem(48,1,0.004938), Elem(48,2,0.007406), Elem(48,3,0.014813), Elem(48,4,1.481273), Elem(48,5,0.014813), Elem(48,6,0.007406), +            Elem(48,7,0.004938), Elem(48,8,0.003703), Elem(53,0,0.001980), Elem(53,1,0.002475), Elem(53,2,0.003300), Elem(53,3,0.004950), Elem(53,4,0.009900), Elem(53,5,0.990000), +            Elem(53,6,0.009900), Elem(53,7,0.004950), Elem(53,8,0.003300), Elem(57,0,0.001650), Elem(57,1,0.001980), Elem(57,2,0.002475), Elem(57,3,0.003300), Elem(57,4,0.004950), +            Elem(57,5,0.009900), Elem(57,6,0.990000), Elem(57,7,0.009900), Elem(57,8,0.004950), Elem(60,0,0.001414), Elem(60,1,0.001650), Elem(60,2,0.001980), Elem(60,3,0.002475), +            Elem(60,4,0.003300), Elem(60,5,0.004950), Elem(60,6,0.009900), Elem(60,7,0.990000), Elem(60,8,0.009900), Elem(65,0,0.014604), Elem(65,1,0.001548), Elem(65,2,0.001717), +            Elem(65,3,0.002025), Elem(65,4,0.002508), Elem(65,5,0.003327), Elem(65,6,0.004972), Elem(65,7,0.009919), Elem(65,8,0.990017), Elem(72,1,0.000017), Elem(72,2,0.000020), +            Elem(72,3,0.000025), Elem(72,4,0.000033), Elem(72,5,0.000050), Elem(72,6,0.000100), Elem(72,7,0.010000), Elem(72,8,0.000100), Elem(75,0,0.000046), Elem(75,1,0.000081), +            Elem(75,2,0.006700), Elem(75,3,0.000087), Elem(75,4,0.000058), Elem(75,5,0.000056), Elem(75,6,0.000067), Elem(75,7,0.000113), Elem(75,8,0.010011), Elem(77,0,0.000033), +            Elem(77,1,0.000067), Elem(77,2,0.006683), Elem(77,3,0.000067), Elem(77,4,0.000033), Elem(77,5,0.000022), Elem(77,6,0.000017), Elem(84,0,0.000067), Elem(84,1,0.000100), +            Elem(84,2,0.000200), Elem(84,3,0.020000), Elem(84,4,0.000200), Elem(84,5,0.000100), Elem(84,6,0.000067), Elem(84,7,0.000050), Elem(84,8,0.000040), Elem(89,0,0.000020), +            Elem(89,1,0.000025), Elem(89,2,0.000033), Elem(89,3,0.000050), Elem(89,4,0.000100), Elem(89,5,0.010000), Elem(89,6,0.000100), Elem(89,7,0.000050), Elem(89,8,0.000033), +            }, +      { Elem(1,0,0.000075), Elem(1,1,0.000100), Elem(1,2,0.000150), Elem(1,3,0.000299), Elem(1,4,0.029925), Elem(1,5,0.000299), Elem(1,6,0.000150), Elem(1,7,0.000100), +            Elem(1,8,0.000075), Elem(6,0,0.006723), Elem(6,1,0.000117), Elem(6,2,0.000100), Elem(6,3,0.000122), Elem(6,4,0.000217), Elem(6,5,0.020013), Elem(6,6,0.000211), +            Elem(6,7,0.000110), Elem(6,8,0.000075), Elem(10,0,0.000033), Elem(10,1,0.000040), Elem(10,2,0.000050), Elem(10,3,0.000067), Elem(10,4,0.000100), Elem(10,5,0.000200), +            Elem(10,6,0.020000), Elem(10,7,0.000200), Elem(10,8,0.000100), Elem(13,0,0.000029), Elem(13,1,0.000033), Elem(13,2,0.000040), Elem(13,3,0.000050), Elem(13,4,0.000067), +            Elem(13,5,0.000100), Elem(13,6,0.000200), Elem(13,7,0.020000), Elem(13,8,0.000200), Elem(18,0,0.661686), Elem(18,1,0.006645), Elem(18,2,0.003342), Elem(18,3,0.002246), +            Elem(18,4,0.001704), Elem(18,5,0.001390), Elem(18,6,0.001203), Elem(18,7,0.001145), Elem(18,8,0.020827), Elem(30,0,0.003342), Elem(30,1,0.006667), Elem(30,2,0.661761), +            Elem(30,3,0.016617), Elem(30,4,0.003408), Elem(30,5,0.002256), Elem(30,6,0.001687), Elem(30,7,0.001348), Elem(30,8,0.001123), Elem(37,0,0.009900), Elem(37,1,0.990000), +            Elem(37,2,0.009900), Elem(37,3,0.004950), Elem(37,4,0.003300), Elem(37,5,0.002475), Elem(37,6,0.001980), Elem(37,7,0.001650), Elem(37,8,0.001414), Elem(42,0,0.003333), +            Elem(42,1,0.005017), Elem(42,2,0.016583), Elem(42,3,0.990067), Elem(42,4,0.009933), Elem(42,5,0.004972), Elem(42,6,0.003317), Elem(42,7,0.002488), Elem(42,8,0.001991), +            Elem(46,0,0.000017), Elem(46,1,0.000020), Elem(46,2,0.000025), Elem(46,3,0.000033), Elem(46,4,0.000050), Elem(46,5,0.000100), Elem(46,6,0.010000), Elem(46,7,0.000100), +            Elem(46,8,0.000050), Elem(49,0,0.003703), Elem(49,1,0.004938), Elem(49,2,0.007406), Elem(49,3,0.014813), Elem(49,4,1.481273), Elem(49,5,0.014813), Elem(49,6,0.007406), +            Elem(49,7,0.004938), Elem(49,8,0.003703), Elem(54,0,0.001980), Elem(54,1,0.002475), Elem(54,2,0.003300), Elem(54,3,0.004950), Elem(54,4,0.009900), Elem(54,5,0.990000), +            Elem(54,6,0.009900), Elem(54,7,0.004950), Elem(54,8,0.003300), Elem(58,0,0.001650), Elem(58,1,0.001980), Elem(58,2,0.002475), Elem(58,3,0.003300), Elem(58,4,0.004950), +            Elem(58,5,0.009900), Elem(58,6,0.990000), Elem(58,7,0.009900), Elem(58,8,0.004950), Elem(61,0,0.001414), Elem(61,1,0.001650), Elem(61,2,0.001980), Elem(61,3,0.002475), +            Elem(61,4,0.003300), Elem(61,5,0.004950), Elem(61,6,0.009900), Elem(61,7,0.990000), Elem(61,8,0.009900), Elem(66,0,0.014604), Elem(66,1,0.001548), Elem(66,2,0.001717), +            Elem(66,3,0.002025), Elem(66,4,0.002508), Elem(66,5,0.003327), Elem(66,6,0.004972), Elem(66,7,0.009919), Elem(66,8,0.990017), Elem(73,1,0.000017), Elem(73,2,0.000020), +            Elem(73,3,0.000025), Elem(73,4,0.000033), Elem(73,5,0.000050), Elem(73,6,0.000100), Elem(73,7,0.010000), Elem(73,8,0.000100), Elem(78,0,0.000079), Elem(78,1,0.000148), +            Elem(78,2,0.013384), Elem(78,3,0.000154), Elem(78,4,0.000092), Elem(78,5,0.000078), Elem(78,6,0.000083), Elem(78,7,0.000127), Elem(78,8,0.010022), Elem(85,0,0.000104), +            Elem(85,1,0.000150), Elem(85,2,0.000275), Elem(85,3,0.020150), Elem(85,4,0.015162), Elem(85,5,0.000250), Elem(85,6,0.000141), Elem(85,7,0.000100), Elem(85,8,0.000077), +            Elem(90,0,0.000020), Elem(90,1,0.000025), Elem(90,2,0.000033), Elem(90,3,0.000050), Elem(90,4,0.000100), Elem(90,5,0.010000), Elem(90,6,0.000100), Elem(90,7,0.000050), +            Elem(90,8,0.000033), }, +      { Elem(2,0,0.000075), Elem(2,1,0.000100), Elem(2,2,0.000150), Elem(2,3,0.000299), Elem(2,4,0.029925), Elem(2,5,0.000299), Elem(2,6,0.000150), Elem(2,7,0.000100), +            Elem(2,8,0.000075), Elem(7,0,0.006723), Elem(7,1,0.000117), Elem(7,2,0.000100), Elem(7,3,0.000122), Elem(7,4,0.000217), Elem(7,5,0.020013), Elem(7,6,0.000211), +            Elem(7,7,0.000110), Elem(7,8,0.000075), Elem(11,0,0.000033), Elem(11,1,0.000040), Elem(11,2,0.000050), Elem(11,3,0.000067), Elem(11,4,0.000100), Elem(11,5,0.000200), +            Elem(11,6,0.020000), Elem(11,7,0.000200), Elem(11,8,0.000100), Elem(14,0,0.000029), Elem(14,1,0.000033), Elem(14,2,0.000040), Elem(14,3,0.000050), Elem(14,4,0.000067), +            Elem(14,5,0.000100), Elem(14,6,0.000200), Elem(14,7,0.020000), Elem(14,8,0.000200), Elem(19,0,0.661686), Elem(19,1,0.006645), Elem(19,2,0.003342), Elem(19,3,0.002246), +            Elem(19,4,0.001704), Elem(19,5,0.001390), Elem(19,6,0.001203), Elem(19,7,0.001145), Elem(19,8,0.020827), Elem(26,0,0.000100), Elem(26,1,0.010000), Elem(26,2,0.000100), +            Elem(26,3,0.000050), Elem(26,4,0.000033), Elem(26,5,0.000025), Elem(26,6,0.000020), Elem(26,7,0.000017), Elem(31,0,0.003308), Elem(31,1,0.006617), Elem(31,2,0.661660), +            Elem(31,3,0.006617), Elem(31,4,0.003308), Elem(31,5,0.002206), Elem(31,6,0.001654), Elem(31,7,0.001323), Elem(31,8,0.001103), Elem(36,0,0.000033), Elem(36,1,0.000050), +            Elem(36,2,0.000100), Elem(36,3,0.010000), Elem(36,4,0.000100), Elem(36,5,0.000050), Elem(36,6,0.000033), Elem(36,7,0.000025), Elem(36,8,0.000020), Elem(38,0,0.009900), +            Elem(38,1,0.990000), Elem(38,2,0.009900), Elem(38,3,0.004950), Elem(38,4,0.003300), Elem(38,5,0.002475), Elem(38,6,0.001980), Elem(38,7,0.001650), Elem(38,8,0.001414), +            Elem(43,0,0.003320), Elem(43,1,0.004975), Elem(43,2,0.009933), Elem(43,3,0.990050), Elem(43,4,0.010000), Elem(43,5,0.014950), Elem(43,6,0.003400), Elem(43,7,0.002525), +            Elem(43,8,0.002013), Elem(45,0,0.000100), Elem(45,1,0.010000), Elem(45,2,0.000100), Elem(45,3,0.000050), Elem(45,4,0.000033), Elem(45,5,0.000025), Elem(45,6,0.000020), +            Elem(45,7,0.000017), Elem(47,0,0.000017), Elem(47,1,0.000020), Elem(47,2,0.000025), Elem(47,3,0.000033), Elem(47,4,0.000050), Elem(47,5,0.000100), Elem(47,6,0.010000), +            Elem(47,7,0.000100), Elem(47,8,0.000050), Elem(50,0,0.003703), Elem(50,1,0.004938), Elem(50,2,0.007406), Elem(50,3,0.014813), Elem(50,4,1.481273), Elem(50,5,0.014813), +            Elem(50,6,0.007406), Elem(50,7,0.004938), Elem(50,8,0.003703), Elem(55,0,0.002013), Elem(55,1,0.002525), Elem(55,2,0.003400), Elem(55,3,0.014950), Elem(55,4,0.010000), +            Elem(55,5,0.990050), Elem(55,6,0.009933), Elem(55,7,0.004975), Elem(55,8,0.003320), Elem(59,0,0.001650), Elem(59,1,0.001980), Elem(59,2,0.002475), Elem(59,3,0.003300), +            Elem(59,4,0.004950), Elem(59,5,0.009900), Elem(59,6,0.990000), Elem(59,7,0.009900), Elem(59,8,0.004950), Elem(62,0,0.001414), Elem(62,1,0.001650), Elem(62,2,0.001980), +            Elem(62,3,0.002475), Elem(62,4,0.003300), Elem(62,5,0.004950), Elem(62,6,0.009900), Elem(62,7,0.990000), Elem(62,8,0.009900), Elem(67,0,0.014604), Elem(67,1,0.001548), +            Elem(67,2,0.001717), Elem(67,3,0.002025), Elem(67,4,0.002508), Elem(67,5,0.003327), Elem(67,6,0.004972), Elem(67,7,0.009919), Elem(67,8,0.990017), Elem(74,1,0.000017), +            Elem(74,2,0.000020), Elem(74,3,0.000025), Elem(74,4,0.000033), Elem(74,5,0.000050), Elem(74,6,0.000100), Elem(74,7,0.010000), Elem(74,8,0.000100), Elem(79,0,0.000079), +            Elem(79,1,0.000148), Elem(79,2,0.013384), Elem(79,3,0.000154), Elem(79,4,0.000092), Elem(79,5,0.000078), Elem(79,6,0.000083), Elem(79,7,0.000127), Elem(79,8,0.010022), +            Elem(86,0,0.000104), Elem(86,1,0.000167), Elem(86,2,0.006858), Elem(86,3,0.010216), Elem(86,4,0.015096), Elem(86,5,0.000222), Elem(86,6,0.000125), Elem(86,7,0.000088), +            Elem(86,8,0.000069), }, +      { Elem(3,0,0.000050), Elem(3,1,0.000067), Elem(3,2,0.000100), Elem(3,3,0.000200), Elem(3,4,0.020000), Elem(3,5,0.000200), Elem(3,6,0.000100), Elem(3,7,0.000067), +            Elem(3,8,0.000050), Elem(8,0,0.006723), Elem(8,1,0.000117), Elem(8,2,0.000100), Elem(8,3,0.000122), Elem(8,4,0.000217), Elem(8,5,0.020013), Elem(8,6,0.000211), +            Elem(8,7,0.000110), Elem(8,8,0.000075), Elem(12,0,0.000033), Elem(12,1,0.000040), Elem(12,2,0.000050), Elem(12,3,0.000067), Elem(12,4,0.000100), Elem(12,5,0.000200), +            Elem(12,6,0.020000), Elem(12,7,0.000200), Elem(12,8,0.000100), Elem(15,0,0.000029), Elem(15,1,0.000033), Elem(15,2,0.000040), Elem(15,3,0.000050), Elem(15,4,0.000067), +            Elem(15,5,0.000100), Elem(15,6,0.000200), Elem(15,7,0.020000), Elem(15,8,0.000200), Elem(20,0,0.661686), Elem(20,1,0.006645), Elem(20,2,0.003342), Elem(20,3,0.002246), +            Elem(20,4,0.001704), Elem(20,5,0.001390), Elem(20,6,0.001203), Elem(20,7,0.001145), Elem(20,8,0.020827), Elem(27,0,0.000100), Elem(27,1,0.010000), Elem(27,2,0.000100), +            Elem(27,3,0.000050), Elem(27,4,0.000033), Elem(27,5,0.000025), Elem(27,6,0.000020), Elem(27,7,0.000017), Elem(32,0,0.003308), Elem(32,1,0.006617), Elem(32,2,0.661660), +            Elem(32,3,0.006617), Elem(32,4,0.003308), Elem(32,5,0.002206), Elem(32,6,0.001654), Elem(32,7,0.001323), Elem(32,8,0.001103), Elem(33,0,0.000033), Elem(33,1,0.000050), +            Elem(33,2,0.000100), Elem(33,3,0.010000), Elem(33,4,0.000100), Elem(33,5,0.000050), Elem(33,6,0.000033), Elem(33,7,0.000025), Elem(33,8,0.000020), Elem(39,0,0.009900), +            Elem(39,1,0.990000), Elem(39,2,0.009900), Elem(39,3,0.004950), Elem(39,4,0.003300), Elem(39,5,0.002475), Elem(39,6,0.001980), Elem(39,7,0.001650), Elem(39,8,0.001414), +            Elem(44,0,0.003320), Elem(44,1,0.004975), Elem(44,2,0.009933), Elem(44,3,0.990050), Elem(44,4,0.010000), Elem(44,5,0.014950), Elem(44,6,0.003400), Elem(44,7,0.002525), +            Elem(44,8,0.002013), Elem(46,0,0.000100), Elem(46,1,0.010000), Elem(46,2,0.000100), Elem(46,3,0.000050), Elem(46,4,0.000033), Elem(46,5,0.000025), Elem(46,6,0.000020), +            Elem(46,7,0.000017), Elem(51,0,0.002475), Elem(51,1,0.003300), Elem(51,2,0.004950), Elem(51,3,0.009900), Elem(51,4,0.990000), Elem(51,5,0.009900), Elem(51,6,0.004950), +            Elem(51,7,0.003300), Elem(51,8,0.002475), Elem(56,0,0.002013), Elem(56,1,0.002525), Elem(56,2,0.003400), Elem(56,3,0.014950), Elem(56,4,0.010000), Elem(56,5,0.990050), +            Elem(56,6,0.009933), Elem(56,7,0.004975), Elem(56,8,0.003320), Elem(60,0,0.001650), Elem(60,1,0.001980), Elem(60,2,0.002475), Elem(60,3,0.003300), Elem(60,4,0.004950), +            Elem(60,5,0.009900), Elem(60,6,0.990000), Elem(60,7,0.009900), Elem(60,8,0.004950), Elem(63,0,0.001414), Elem(63,1,0.001650), Elem(63,2,0.001980), Elem(63,3,0.002475), +            Elem(63,4,0.003300), Elem(63,5,0.004950), Elem(63,6,0.009900), Elem(63,7,0.990000), Elem(63,8,0.009900), Elem(68,0,0.014604), Elem(68,1,0.001548), Elem(68,2,0.001717), +            Elem(68,3,0.002025), Elem(68,4,0.002508), Elem(68,5,0.003327), Elem(68,6,0.004972), Elem(68,7,0.009919), Elem(68,8,0.990017), Elem(72,0,0.000017), Elem(72,1,0.000020), +            Elem(72,2,0.000025), Elem(72,3,0.000033), Elem(72,4,0.000050), Elem(72,5,0.000100), Elem(72,6,0.010000), Elem(72,7,0.000100), Elem(72,8,0.000050), Elem(75,1,0.000017), +            Elem(75,2,0.000020), Elem(75,3,0.000025), Elem(75,4,0.000033), Elem(75,5,0.000050), Elem(75,6,0.000100), Elem(75,7,0.010000), Elem(75,8,0.000100), Elem(80,0,0.000079), +            Elem(80,1,0.000148), Elem(80,2,0.013384), Elem(80,3,0.000154), Elem(80,4,0.000092), Elem(80,5,0.000078), Elem(80,6,0.000083), Elem(80,7,0.000127), Elem(80,8,0.010022), +            Elem(87,0,0.000092), Elem(87,1,0.000150), Elem(87,2,0.006833), Elem(87,3,0.010167), Elem(87,4,0.010133), Elem(87,5,0.000172), Elem(87,6,0.000100), Elem(87,7,0.000072), +            Elem(87,8,0.000056), }, +      { Elem(4,0,0.000050), Elem(4,1,0.000067), Elem(4,2,0.000100), Elem(4,3,0.000200), Elem(4,4,0.020000), Elem(4,5,0.000200), Elem(4,6,0.000100), Elem(4,7,0.000067), +            Elem(4,8,0.000050), Elem(9,0,0.006723), Elem(9,1,0.000117), Elem(9,2,0.000100), Elem(9,3,0.000122), Elem(9,4,0.000217), Elem(9,5,0.020013), Elem(9,6,0.000211), +            Elem(9,7,0.000110), Elem(9,8,0.000075), Elem(13,0,0.000033), Elem(13,1,0.000040), Elem(13,2,0.000050), Elem(13,3,0.000067), Elem(13,4,0.000100), Elem(13,5,0.000200), +            Elem(13,6,0.020000), Elem(13,7,0.000200), Elem(13,8,0.000100), Elem(16,0,0.000029), Elem(16,1,0.000033), Elem(16,2,0.000040), Elem(16,3,0.000050), Elem(16,4,0.000067), +            Elem(16,5,0.000100), Elem(16,6,0.000200), Elem(16,7,0.020000), Elem(16,8,0.000200), Elem(21,0,0.661686), Elem(21,1,0.006645), Elem(21,2,0.003342), Elem(21,3,0.002246), +            Elem(21,4,0.001704), Elem(21,5,0.001390), Elem(21,6,0.001203), Elem(21,7,0.001145), Elem(21,8,0.020827), Elem(25,0,0.000033), Elem(25,1,0.000067), Elem(25,2,0.006683), +            Elem(25,3,0.000067), Elem(25,4,0.000033), Elem(25,5,0.000022), Elem(25,6,0.000017), Elem(28,0,0.000100), Elem(28,1,0.010000), Elem(28,2,0.000100), Elem(28,3,0.000050), +            Elem(28,4,0.000033), Elem(28,5,0.000025), Elem(28,6,0.000020), Elem(28,7,0.000017), Elem(33,0,0.003308), Elem(33,1,0.006617), Elem(33,2,0.661660), Elem(33,3,0.006617), +            Elem(33,4,0.003308), Elem(33,5,0.002206), Elem(33,6,0.001654), Elem(33,7,0.001323), Elem(33,8,0.001103), Elem(38,0,0.000033), Elem(38,1,0.000050), Elem(38,2,0.000100), +            Elem(38,3,0.010000), Elem(38,4,0.000100), Elem(38,5,0.000050), Elem(38,6,0.000033), Elem(38,7,0.000025), Elem(38,8,0.000020), Elem(40,0,0.009900), Elem(40,1,0.990000), +            Elem(40,2,0.009900), Elem(40,3,0.004950), Elem(40,4,0.003300), Elem(40,5,0.002475), Elem(40,6,0.001980), Elem(40,7,0.001650), Elem(40,8,0.001414), Elem(44,0,0.000033), +            Elem(44,1,0.000067), Elem(44,2,0.006683), Elem(44,3,0.000067), Elem(44,4,0.000033), Elem(44,5,0.000022), Elem(44,6,0.000017), Elem(45,0,0.003320), Elem(45,1,0.004975), +            Elem(45,2,0.009933), Elem(45,3,0.990050), Elem(45,4,0.010000), Elem(45,5,0.014950), Elem(45,6,0.003400), Elem(45,7,0.002525), Elem(45,8,0.002013), Elem(47,0,0.000100), +            Elem(47,1,0.010000), Elem(47,2,0.000100), Elem(47,3,0.000050), Elem(47,4,0.000033), Elem(47,5,0.000025), Elem(47,6,0.000020), Elem(47,7,0.000017), Elem(52,0,0.002475), +            Elem(52,1,0.003300), Elem(52,2,0.004950), Elem(52,3,0.009900), Elem(52,4,0.990000), Elem(52,5,0.009900), Elem(52,6,0.004950), Elem(52,7,0.003300), Elem(52,8,0.002475), +            Elem(57,0,0.002013), Elem(57,1,0.002525), Elem(57,2,0.003400), Elem(57,3,0.014950), Elem(57,4,0.010000), Elem(57,5,0.990050), Elem(57,6,0.009933), Elem(57,7,0.004975), +            Elem(57,8,0.003320), Elem(61,0,0.001650), Elem(61,1,0.001980), Elem(61,2,0.002475), Elem(61,3,0.003300), Elem(61,4,0.004950), Elem(61,5,0.009900), Elem(61,6,0.990000), +            Elem(61,7,0.009900), Elem(61,8,0.004950), Elem(64,0,0.001414), Elem(64,1,0.001650), Elem(64,2,0.001980), Elem(64,3,0.002475), Elem(64,4,0.003300), Elem(64,5,0.004950), +            Elem(64,6,0.009900), Elem(64,7,0.990000), Elem(64,8,0.009900), Elem(69,0,0.014604), Elem(69,1,0.001548), Elem(69,2,0.001717), Elem(69,3,0.002025), Elem(69,4,0.002508), +            Elem(69,5,0.003327), Elem(69,6,0.004972), Elem(69,7,0.009919), Elem(69,8,0.990017), Elem(73,0,0.000017), Elem(73,1,0.000020), Elem(73,2,0.000025), Elem(73,3,0.000033), +            Elem(73,4,0.000050), Elem(73,5,0.000100), Elem(73,6,0.010000), Elem(73,7,0.000100), Elem(73,8,0.000050), Elem(76,1,0.000017), Elem(76,2,0.000020), Elem(76,3,0.000025), +            Elem(76,4,0.000033), Elem(76,5,0.000050), Elem(76,6,0.000100), Elem(76,7,0.010000), Elem(76,8,0.000100), Elem(81,0,0.000046), Elem(81,1,0.000081), Elem(81,2,0.006700), +            Elem(81,3,0.000087), Elem(81,4,0.000058), Elem(81,5,0.000056), Elem(81,6,0.000067), Elem(81,7,0.000113), Elem(81,8,0.010011), Elem(88,0,0.000058), Elem(88,1,0.000083), +            Elem(88,2,0.000150), Elem(88,3,0.010100), Elem(88,4,0.010100), Elem(88,5,0.000150), Elem(88,6,0.000083), Elem(88,7,0.000058), Elem(88,8,0.000045), }, +      { Elem(5,0,0.000050), Elem(5,1,0.000067), Elem(5,2,0.000100), Elem(5,3,0.000200), Elem(5,4,0.020000), Elem(5,5,0.000200), Elem(5,6,0.000100), Elem(5,7,0.000067), +            Elem(5,8,0.000050), Elem(10,0,0.006723), Elem(10,1,0.000117), Elem(10,2,0.000100), Elem(10,3,0.000122), Elem(10,4,0.000217), Elem(10,5,0.020013), Elem(10,6,0.000211), +            Elem(10,7,0.000110), Elem(10,8,0.000075), Elem(14,0,0.000033), Elem(14,1,0.000040), Elem(14,2,0.000050), Elem(14,3,0.000067), Elem(14,4,0.000100), Elem(14,5,0.000200), +            Elem(14,6,0.020000), Elem(14,7,0.000200), Elem(14,8,0.000100), Elem(17,0,0.000029), Elem(17,1,0.000033), Elem(17,2,0.000040), Elem(17,3,0.000050), Elem(17,4,0.000067), +            Elem(17,5,0.000100), Elem(17,6,0.000200), Elem(17,7,0.020000), Elem(17,8,0.000200), Elem(22,0,0.661686), Elem(22,1,0.006645), Elem(22,2,0.003342), Elem(22,3,0.002246), +            Elem(22,4,0.001704), Elem(22,5,0.001390), Elem(22,6,0.001203), Elem(22,7,0.001145), Elem(22,8,0.020827), Elem(29,0,0.000100), Elem(29,1,0.010000), Elem(29,2,0.000100), +            Elem(29,3,0.000050), Elem(29,4,0.000033), Elem(29,5,0.000025), Elem(29,6,0.000020), Elem(29,7,0.000017), Elem(34,0,0.004950), Elem(34,1,0.009900), Elem(34,2,0.990000), +            Elem(34,3,0.009900), Elem(34,4,0.004950), Elem(34,5,0.003300), Elem(34,6,0.002475), Elem(34,7,0.001980), Elem(34,8,0.001650), Elem(39,0,0.000033), Elem(39,1,0.000050), +            Elem(39,2,0.000100), Elem(39,3,0.010000), Elem(39,4,0.000100), Elem(39,5,0.000050), Elem(39,6,0.000033), Elem(39,7,0.000025), Elem(39,8,0.000020), Elem(41,0,0.009900), +            Elem(41,1,0.990000), Elem(41,2,0.009900), Elem(41,3,0.004950), Elem(41,4,0.003300), Elem(41,5,0.002475), Elem(41,6,0.001980), Elem(41,7,0.001650), Elem(41,8,0.001414), +            Elem(46,0,0.003320), Elem(46,1,0.004975), Elem(46,2,0.009933), Elem(46,3,0.990050), Elem(46,4,0.010000), Elem(46,5,0.014950), Elem(46,6,0.003400), Elem(46,7,0.002525), +            Elem(46,8,0.002013), Elem(53,0,0.002475), Elem(53,1,0.003300), Elem(53,2,0.004950), Elem(53,3,0.009900), Elem(53,4,0.990000), Elem(53,5,0.009900), Elem(53,6,0.004950), +            Elem(53,7,0.003300), Elem(53,8,0.002475), Elem(58,0,0.002013), Elem(58,1,0.002525), Elem(58,2,0.003400), Elem(58,3,0.014950), Elem(58,4,0.010000), Elem(58,5,0.990050), +            Elem(58,6,0.009933), Elem(58,7,0.004975), Elem(58,8,0.003320), Elem(62,0,0.001650), Elem(62,1,0.001980), Elem(62,2,0.002475), Elem(62,3,0.003300), Elem(62,4,0.004950), +            Elem(62,5,0.009900), Elem(62,6,0.990000), Elem(62,7,0.009900), Elem(62,8,0.004950), Elem(65,0,0.001414), Elem(65,1,0.001650), Elem(65,2,0.001980), Elem(65,3,0.002475), +            Elem(65,4,0.003300), Elem(65,5,0.004950), Elem(65,6,0.009900), Elem(65,7,0.990000), Elem(65,8,0.009900), Elem(70,0,0.014604), Elem(70,1,0.001548), Elem(70,2,0.001717), +            Elem(70,3,0.002025), Elem(70,4,0.002508), Elem(70,5,0.003327), Elem(70,6,0.004972), Elem(70,7,0.009919), Elem(70,8,0.990017), Elem(74,0,0.000017), Elem(74,1,0.000020), +            Elem(74,2,0.000025), Elem(74,3,0.000033), Elem(74,4,0.000050), Elem(74,5,0.000100), Elem(74,6,0.010000), Elem(74,7,0.000100), Elem(74,8,0.000050), Elem(75,1,0.000017), +            Elem(75,2,0.000020), Elem(75,3,0.000025), Elem(75,4,0.000033), Elem(75,5,0.000050), Elem(75,6,0.000100), Elem(75,7,0.010000), Elem(75,8,0.000100), Elem(82,0,0.000112), +            Elem(82,1,0.000214), Elem(82,2,0.020017), Elem(82,3,0.000220), Elem(82,4,0.000125), Elem(82,5,0.000100), Elem(82,6,0.000100), Elem(82,7,0.000140), Elem(82,8,0.010033), +            Elem(84,0,0.000200), Elem(84,1,0.020000), Elem(84,2,0.000200), Elem(84,3,0.000100), Elem(84,4,0.000067), Elem(84,5,0.000050), Elem(84,6,0.000040), Elem(84,7,0.000033), +            Elem(84,8,0.000029), Elem(89,0,0.000108), Elem(89,1,0.000183), Elem(89,2,0.010150), Elem(89,3,0.010200), Elem(89,4,0.010150), Elem(89,5,0.000183), Elem(89,6,0.000108), +            Elem(89,7,0.000078), Elem(89,8,0.000062), }, +      { Elem(6,0,0.000050), Elem(6,1,0.000067), Elem(6,2,0.000100), Elem(6,3,0.000200), Elem(6,4,0.020000), Elem(6,5,0.000200), Elem(6,6,0.000100), Elem(6,7,0.000067), +            Elem(6,8,0.000050), Elem(11,0,0.006723), Elem(11,1,0.000117), Elem(11,2,0.000100), Elem(11,3,0.000122), Elem(11,4,0.000217), Elem(11,5,0.020013), Elem(11,6,0.000211), +            Elem(11,7,0.000110), Elem(11,8,0.000075), Elem(15,0,0.000033), Elem(15,1,0.000040), Elem(15,2,0.000050), Elem(15,3,0.000067), Elem(15,4,0.000100), Elem(15,5,0.000200), +            Elem(15,6,0.020000), Elem(15,7,0.000200), Elem(15,8,0.000100), Elem(18,0,0.000029), Elem(18,1,0.000033), Elem(18,2,0.000040), Elem(18,3,0.000050), Elem(18,4,0.000067), +            Elem(18,5,0.000100), Elem(18,6,0.000200), Elem(18,7,0.020000), Elem(18,8,0.000200), Elem(23,0,0.661686), Elem(23,1,0.006645), Elem(23,2,0.003342), Elem(23,3,0.002246), +            Elem(23,4,0.001704), Elem(23,5,0.001390), Elem(23,6,0.001203), Elem(23,7,0.001145), Elem(23,8,0.020827), Elem(30,0,0.000100), Elem(30,1,0.010000), Elem(30,2,0.000100), +            Elem(30,3,0.000050), Elem(30,4,0.000033), Elem(30,5,0.000025), Elem(30,6,0.000020), Elem(30,7,0.000017), Elem(35,0,0.004950), Elem(35,1,0.009900), Elem(35,2,0.990000), +            Elem(35,3,0.009900), Elem(35,4,0.004950), Elem(35,5,0.003300), Elem(35,6,0.002475), Elem(35,7,0.001980), Elem(35,8,0.001650), Elem(40,0,0.000033), Elem(40,1,0.000050), +            Elem(40,2,0.000100), Elem(40,3,0.010000), Elem(40,4,0.000100), Elem(40,5,0.000050), Elem(40,6,0.000033), Elem(40,7,0.000025), Elem(40,8,0.000020), Elem(42,0,0.009900), +            Elem(42,1,0.990000), Elem(42,2,0.009900), Elem(42,3,0.004950), Elem(42,4,0.003300), Elem(42,5,0.002475), Elem(42,6,0.001980), Elem(42,7,0.001650), Elem(42,8,0.001414), +            Elem(47,0,0.003320), Elem(47,1,0.004975), Elem(47,2,0.009933), Elem(47,3,0.990050), Elem(47,4,0.010000), Elem(47,5,0.014950), Elem(47,6,0.003400), Elem(47,7,0.002525), +            Elem(47,8,0.002013), Elem(54,0,0.002475), Elem(54,1,0.003300), Elem(54,2,0.004950), Elem(54,3,0.009900), Elem(54,4,0.990000), Elem(54,5,0.009900), Elem(54,6,0.004950), +            Elem(54,7,0.003300), Elem(54,8,0.002475), Elem(59,0,0.002013), Elem(59,1,0.002525), Elem(59,2,0.003400), Elem(59,3,0.014950), Elem(59,4,0.010000), Elem(59,5,0.990050), +            Elem(59,6,0.009933), Elem(59,7,0.004975), Elem(59,8,0.003320), Elem(63,0,0.001650), Elem(63,1,0.001980), Elem(63,2,0.002475), Elem(63,3,0.003300), Elem(63,4,0.004950), +            Elem(63,5,0.009900), Elem(63,6,0.990000), Elem(63,7,0.009900), Elem(63,8,0.004950), Elem(66,0,0.001414), Elem(66,1,0.001650), Elem(66,2,0.001980), Elem(66,3,0.002475), +            Elem(66,4,0.003300), Elem(66,5,0.004950), Elem(66,6,0.009900), Elem(66,7,0.990000), Elem(66,8,0.009900), Elem(71,0,0.014604), Elem(71,1,0.001548), Elem(71,2,0.001717), +            Elem(71,3,0.002025), Elem(71,4,0.002508), Elem(71,5,0.003327), Elem(71,6,0.004972), Elem(71,7,0.009919), Elem(71,8,0.990017), Elem(75,0,0.000017), Elem(75,1,0.000020), +            Elem(75,2,0.000025), Elem(75,3,0.000033), Elem(75,4,0.000050), Elem(75,5,0.000100), Elem(75,6,0.010000), Elem(75,7,0.000100), Elem(75,8,0.000050), Elem(78,1,0.000017), +            Elem(78,2,0.000020), Elem(78,3,0.000025), Elem(78,4,0.000033), Elem(78,5,0.000050), Elem(78,6,0.000100), Elem(78,7,0.010000), Elem(78,8,0.000100), Elem(83,0,0.000112), +            Elem(83,1,0.000214), Elem(83,2,0.020017), Elem(83,3,0.000220), Elem(83,4,0.000125), Elem(83,5,0.000100), Elem(83,6,0.000100), Elem(83,7,0.000140), Elem(83,8,0.010033), +            Elem(85,0,0.000200), Elem(85,1,0.020000), Elem(85,2,0.000200), Elem(85,3,0.000100), Elem(85,4,0.000067), Elem(85,5,0.000050), Elem(85,6,0.000040), Elem(85,7,0.000033), +            Elem(85,8,0.000029), Elem(90,0,0.000108), Elem(90,1,0.000183), Elem(90,2,0.010150), Elem(90,3,0.010200), Elem(90,4,0.010150), Elem(90,5,0.000183), Elem(90,6,0.000108), +            Elem(90,7,0.000078), Elem(90,8,0.000062), }, +      { Elem(0,0,0.000067), Elem(0,1,0.000100), Elem(0,2,0.000200), Elem(0,3,0.020000), Elem(0,4,0.000200), Elem(0,5,0.000100), Elem(0,6,0.000067), Elem(0,7,0.000050), +            Elem(0,8,0.000040), Elem(7,0,0.000050), Elem(7,1,0.000067), Elem(7,2,0.000100), Elem(7,3,0.000200), Elem(7,4,0.020000), Elem(7,5,0.000200), Elem(7,6,0.000100), +            Elem(7,7,0.000067), Elem(7,8,0.000050), Elem(12,0,0.000040), Elem(12,1,0.000050), Elem(12,2,0.000067), Elem(12,3,0.000100), Elem(12,4,0.000200), Elem(12,5,0.020000), +            Elem(12,6,0.000200), Elem(12,7,0.000100), Elem(12,8,0.000067), Elem(16,0,0.000033), Elem(16,1,0.000040), Elem(16,2,0.000050), Elem(16,3,0.000067), Elem(16,4,0.000100), +            Elem(16,5,0.000200), Elem(16,6,0.020000), Elem(16,7,0.000200), Elem(16,8,0.000100), Elem(19,0,0.000029), Elem(19,1,0.000033), Elem(19,2,0.000040), Elem(19,3,0.000050), +            Elem(19,4,0.000067), Elem(19,5,0.000100), Elem(19,6,0.000200), Elem(19,7,0.020000), Elem(19,8,0.000200), Elem(24,0,0.990075), Elem(24,1,0.010029), Elem(24,2,0.014983), +            Elem(24,3,0.003440), Elem(24,4,0.002575), Elem(24,5,0.002080), Elem(24,6,0.001775), Elem(24,7,0.001634), Elem(24,8,0.021254), Elem(36,0,0.015050), Elem(36,1,0.020000), +            Elem(36,2,0.990150), Elem(36,3,0.009983), Elem(36,4,0.005008), Elem(36,5,0.003345), Elem(36,6,0.002512), Elem(36,7,0.002011), Elem(36,8,0.001677), Elem(43,0,0.009975), +            Elem(43,1,0.990133), Elem(43,2,0.019950), Elem(43,3,0.005150), Elem(43,4,0.013350), Elem(43,5,0.002608), Elem(43,6,0.002055), Elem(43,7,0.001703), Elem(43,8,0.001456), +            Elem(48,0,0.003300), Elem(48,1,0.004950), Elem(48,2,0.009900), Elem(48,3,0.990000), Elem(48,4,0.009900), Elem(48,5,0.004950), Elem(48,6,0.003300), Elem(48,7,0.002475), +            Elem(48,8,0.001980), Elem(55,0,0.002575), Elem(55,1,0.013300), Elem(55,2,0.005050), Elem(55,3,0.009950), Elem(55,4,0.990033), Elem(55,5,0.009925), Elem(55,6,0.004970), +            Elem(55,7,0.003317), Elem(55,8,0.002489), Elem(60,0,0.001993), Elem(60,1,0.002489), Elem(60,2,0.003317), Elem(60,3,0.004970), Elem(60,4,0.009925), Elem(60,5,0.990033), +            Elem(60,6,0.009950), Elem(60,7,0.005050), Elem(60,8,0.013300), Elem(64,0,0.001650), Elem(64,1,0.001980), Elem(64,2,0.002475), Elem(64,3,0.003300), Elem(64,4,0.004950), +            Elem(64,5,0.009900), Elem(64,6,0.990000), Elem(64,7,0.009900), Elem(64,8,0.004950), Elem(67,0,0.001414), Elem(67,1,0.001650), Elem(67,2,0.001980), Elem(67,3,0.002475), +            Elem(67,4,0.003300), Elem(67,5,0.004950), Elem(67,6,0.009900), Elem(67,7,0.990000), Elem(67,8,0.009900), Elem(72,0,0.021257), Elem(72,1,0.001639), Elem(72,2,0.001783), +            Elem(72,3,0.002097), Elem(72,4,0.002625), Elem(72,5,0.013340), Elem(72,6,0.005083), Elem(72,7,0.009979), Elem(72,8,0.990058), Elem(76,0,0.000017), Elem(76,1,0.000020), +            Elem(76,2,0.000025), Elem(76,3,0.000033), Elem(76,4,0.000050), Elem(76,5,0.000100), Elem(76,6,0.010000), Elem(76,7,0.000100), Elem(76,8,0.000050), Elem(79,1,0.000017), +            Elem(79,2,0.000020), Elem(79,3,0.000025), Elem(79,4,0.000033), Elem(79,5,0.000050), Elem(79,6,0.000100), Elem(79,7,0.010000), Elem(79,8,0.000100), Elem(86,0,0.000100), +            Elem(86,1,0.010000), Elem(86,2,0.000100), Elem(86,3,0.000050), Elem(86,4,0.000033), Elem(86,5,0.000025), Elem(86,6,0.000020), Elem(86,7,0.000017), }, +      { Elem(1,0,0.000067), Elem(1,1,0.000100), Elem(1,2,0.000200), Elem(1,3,0.020000), Elem(1,4,0.000200), Elem(1,5,0.000100), Elem(1,6,0.000067), Elem(1,7,0.000050), +            Elem(1,8,0.000040), Elem(8,0,0.000050), Elem(8,1,0.000067), Elem(8,2,0.000100), Elem(8,3,0.000200), Elem(8,4,0.020000), Elem(8,5,0.000200), Elem(8,6,0.000100), +            Elem(8,7,0.000067), Elem(8,8,0.000050), Elem(13,0,0.000040), Elem(13,1,0.000050), Elem(13,2,0.000067), Elem(13,3,0.000100), Elem(13,4,0.000200), Elem(13,5,0.020000), +            Elem(13,6,0.000200), Elem(13,7,0.000100), Elem(13,8,0.000067), Elem(17,0,0.000033), Elem(17,1,0.000040), Elem(17,2,0.000050), Elem(17,3,0.000067), Elem(17,4,0.000100), +            Elem(17,5,0.000200), Elem(17,6,0.020000), Elem(17,7,0.000200), Elem(17,8,0.000100), Elem(20,0,0.000029), Elem(20,1,0.000033), Elem(20,2,0.000040), Elem(20,3,0.000050), +            Elem(20,4,0.000067), Elem(20,5,0.000100), Elem(20,6,0.000200), Elem(20,7,0.020000), Elem(20,8,0.000200), Elem(25,0,0.990025), Elem(25,1,0.009929), Elem(25,2,0.004983), +            Elem(25,3,0.003340), Elem(25,4,0.002525), Elem(25,5,0.002047), Elem(25,6,0.001750), Elem(25,7,0.001614), Elem(25,8,0.021238), Elem(33,0,0.010100), Elem(33,1,0.010100), +            Elem(33,2,0.000150), Elem(33,3,0.000083), Elem(33,4,0.000058), Elem(33,5,0.000045), Elem(33,6,0.000037), Elem(33,7,0.000031), Elem(33,8,0.000027), Elem(37,0,0.004950), +            Elem(37,1,0.009900), Elem(37,2,0.990000), Elem(37,3,0.009900), Elem(37,4,0.004950), Elem(37,5,0.003300), Elem(37,6,0.002475), Elem(37,7,0.001980), Elem(37,8,0.001650), +            Elem(44,0,0.009925), Elem(44,1,0.990033), Elem(44,2,0.009950), Elem(44,3,0.005050), Elem(44,4,0.013300), Elem(44,5,0.002575), Elem(44,6,0.002030), Elem(44,7,0.001683), +            Elem(44,8,0.001439), Elem(49,0,0.003300), Elem(49,1,0.004950), Elem(49,2,0.009900), Elem(49,3,0.990000), Elem(49,4,0.009900), Elem(49,5,0.004950), Elem(49,6,0.003300), +            Elem(49,7,0.002475), Elem(49,8,0.001980), Elem(56,0,0.002575), Elem(56,1,0.013300), Elem(56,2,0.005050), Elem(56,3,0.009950), Elem(56,4,0.990033), Elem(56,5,0.009925), +            Elem(56,6,0.004970), Elem(56,7,0.003317), Elem(56,8,0.002489), Elem(61,0,0.001993), Elem(61,1,0.002489), Elem(61,2,0.003317), Elem(61,3,0.004970), Elem(61,4,0.009925), +            Elem(61,5,0.990033), Elem(61,6,0.009950), Elem(61,7,0.005050), Elem(61,8,0.013300), Elem(65,0,0.001650), Elem(65,1,0.001980), Elem(65,2,0.002475), Elem(65,3,0.003300), +            Elem(65,4,0.004950), Elem(65,5,0.009900), Elem(65,6,0.990000), Elem(65,7,0.009900), Elem(65,8,0.004950), Elem(68,0,0.001414), Elem(68,1,0.001650), Elem(68,2,0.001980), +            Elem(68,3,0.002475), Elem(68,4,0.003300), Elem(68,5,0.004950), Elem(68,6,0.009900), Elem(68,7,0.990000), Elem(68,8,0.009900), Elem(73,0,0.021257), Elem(73,1,0.001639), +            Elem(73,2,0.001783), Elem(73,3,0.002097), Elem(73,4,0.002625), Elem(73,5,0.013340), Elem(73,6,0.005083), Elem(73,7,0.009979), Elem(73,8,0.990058), Elem(75,0,0.000017), +            Elem(75,1,0.000020), Elem(75,2,0.000025), Elem(75,3,0.000033), Elem(75,4,0.000050), Elem(75,5,0.000100), Elem(75,6,0.010000), Elem(75,7,0.000100), Elem(75,8,0.000050), +            Elem(80,1,0.000017), Elem(80,2,0.000020), Elem(80,3,0.000025), Elem(80,4,0.000033), Elem(80,5,0.000050), Elem(80,6,0.000100), Elem(80,7,0.010000), Elem(80,8,0.000100), +            Elem(85,0,0.000033), Elem(85,1,0.000050), Elem(85,2,0.000100), Elem(85,3,0.010000), Elem(85,4,0.000100), Elem(85,5,0.000050), Elem(85,6,0.000033), Elem(85,7,0.000025), +            Elem(85,8,0.000020), Elem(87,0,0.000100), Elem(87,1,0.010000), Elem(87,2,0.000100), Elem(87,3,0.000050), Elem(87,4,0.000033), Elem(87,5,0.000025), Elem(87,6,0.000020), +            Elem(87,7,0.000017), }, +      { Elem(2,0,0.000067), Elem(2,1,0.000100), Elem(2,2,0.000200), Elem(2,3,0.020000), Elem(2,4,0.000200), Elem(2,5,0.000100), Elem(2,6,0.000067), Elem(2,7,0.000050), +            Elem(2,8,0.000040), Elem(9,0,0.000050), Elem(9,1,0.000067), Elem(9,2,0.000100), Elem(9,3,0.000200), Elem(9,4,0.020000), Elem(9,5,0.000200), Elem(9,6,0.000100), +            Elem(9,7,0.000067), Elem(9,8,0.000050), Elem(14,0,0.000040), Elem(14,1,0.000050), Elem(14,2,0.000067), Elem(14,3,0.000100), Elem(14,4,0.000200), Elem(14,5,0.020000), +            Elem(14,6,0.000200), Elem(14,7,0.000100), Elem(14,8,0.000067), Elem(18,0,0.000033), Elem(18,1,0.000040), Elem(18,2,0.000050), Elem(18,3,0.000067), Elem(18,4,0.000100), +            Elem(18,5,0.000200), Elem(18,6,0.020000), Elem(18,7,0.000200), Elem(18,8,0.000100), Elem(21,0,0.000029), Elem(21,1,0.000033), Elem(21,2,0.000040), Elem(21,3,0.000050), +            Elem(21,4,0.000067), Elem(21,5,0.000100), Elem(21,6,0.000200), Elem(21,7,0.020000), Elem(21,8,0.000200), Elem(26,0,0.990075), Elem(26,1,0.010029), Elem(26,2,0.014983), +            Elem(26,3,0.003440), Elem(26,4,0.002575), Elem(26,5,0.002080), Elem(26,6,0.001775), Elem(26,7,0.001634), Elem(26,8,0.021254), Elem(38,0,0.015050), Elem(38,1,0.020000), +            Elem(38,2,0.990150), Elem(38,3,0.009983), Elem(38,4,0.005008), Elem(38,5,0.003345), Elem(38,6,0.002512), Elem(38,7,0.002011), Elem(38,8,0.001677), Elem(45,0,0.009975), +            Elem(45,1,0.990133), Elem(45,2,0.019950), Elem(45,3,0.005150), Elem(45,4,0.013350), Elem(45,5,0.002608), Elem(45,6,0.002055), Elem(45,7,0.001703), Elem(45,8,0.001456), +            Elem(50,0,0.003300), Elem(50,1,0.004950), Elem(50,2,0.009900), Elem(50,3,0.990000), Elem(50,4,0.009900), Elem(50,5,0.004950), Elem(50,6,0.003300), Elem(50,7,0.002475), +            Elem(50,8,0.001980), Elem(57,0,0.002575), Elem(57,1,0.013300), Elem(57,2,0.005050), Elem(57,3,0.009950), Elem(57,4,0.990033), Elem(57,5,0.009925), Elem(57,6,0.004970), +            Elem(57,7,0.003317), Elem(57,8,0.002489), Elem(62,0,0.001993), Elem(62,1,0.002489), Elem(62,2,0.003317), Elem(62,3,0.004970), Elem(62,4,0.009925), Elem(62,5,0.990033), +            Elem(62,6,0.009950), Elem(62,7,0.005050), Elem(62,8,0.013300), Elem(66,0,0.001650), Elem(66,1,0.001980), Elem(66,2,0.002475), Elem(66,3,0.003300), Elem(66,4,0.004950), +            Elem(66,5,0.009900), Elem(66,6,0.990000), Elem(66,7,0.009900), Elem(66,8,0.004950), Elem(69,0,0.001414), Elem(69,1,0.001650), Elem(69,2,0.001980), Elem(69,3,0.002475), +            Elem(69,4,0.003300), Elem(69,5,0.004950), Elem(69,6,0.009900), Elem(69,7,0.990000), Elem(69,8,0.009900), Elem(74,0,0.021257), Elem(74,1,0.001639), Elem(74,2,0.001783), +            Elem(74,3,0.002097), Elem(74,4,0.002625), Elem(74,5,0.013340), Elem(74,6,0.005083), Elem(74,7,0.009979), Elem(74,8,0.990058), Elem(78,0,0.000017), Elem(78,1,0.000020), +            Elem(78,2,0.000025), Elem(78,3,0.000033), Elem(78,4,0.000050), Elem(78,5,0.000100), Elem(78,6,0.010000), Elem(78,7,0.000100), Elem(78,8,0.000050), Elem(81,1,0.000017), +            Elem(81,2,0.000020), Elem(81,3,0.000025), Elem(81,4,0.000033), Elem(81,5,0.000050), Elem(81,6,0.000100), Elem(81,7,0.010000), Elem(81,8,0.000100), Elem(86,0,0.000033), +            Elem(86,1,0.000050), Elem(86,2,0.000100), Elem(86,3,0.010000), Elem(86,4,0.000100), Elem(86,5,0.000050), Elem(86,6,0.000033), Elem(86,7,0.000025), Elem(86,8,0.000020), +            Elem(88,0,0.000100), Elem(88,1,0.010000), Elem(88,2,0.000100), Elem(88,3,0.000050), Elem(88,4,0.000033), Elem(88,5,0.000025), Elem(88,6,0.000020), Elem(88,7,0.000017), +            }, +      { Elem(3,0,0.000067), Elem(3,1,0.000100), Elem(3,2,0.000200), Elem(3,3,0.020000), Elem(3,4,0.000200), Elem(3,5,0.000100), Elem(3,6,0.000067), Elem(3,7,0.000050), +            Elem(3,8,0.000040), Elem(10,0,0.000050), Elem(10,1,0.000067), Elem(10,2,0.000100), Elem(10,3,0.000200), Elem(10,4,0.020000), Elem(10,5,0.000200), Elem(10,6,0.000100), +            Elem(10,7,0.000067), Elem(10,8,0.000050), Elem(15,0,0.000040), Elem(15,1,0.000050), Elem(15,2,0.000067), Elem(15,3,0.000100), Elem(15,4,0.000200), Elem(15,5,0.020000), +            Elem(15,6,0.000200), Elem(15,7,0.000100), Elem(15,8,0.000067), Elem(19,0,0.000033), Elem(19,1,0.000040), Elem(19,2,0.000050), Elem(19,3,0.000067), Elem(19,4,0.000100), +            Elem(19,5,0.000200), Elem(19,6,0.020000), Elem(19,7,0.000200), Elem(19,8,0.000100), Elem(22,0,0.000029), Elem(22,1,0.000033), Elem(22,2,0.000040), Elem(22,3,0.000050), +            Elem(22,4,0.000067), Elem(22,5,0.000100), Elem(22,6,0.000200), Elem(22,7,0.020000), Elem(22,8,0.000200), Elem(27,0,0.990063), Elem(27,1,0.010014), Elem(27,2,0.014967), +            Elem(27,3,0.003420), Elem(27,4,0.002550), Elem(27,5,0.002047), Elem(27,6,0.001725), Elem(27,7,0.001534), Elem(27,8,0.011254), Elem(29,2,0.000017), Elem(29,3,0.000020), +            Elem(29,4,0.000025), Elem(29,5,0.000033), Elem(29,6,0.000050), Elem(29,7,0.000100), Elem(29,8,0.010000), Elem(39,0,0.015050), Elem(39,1,0.020000), Elem(39,2,0.990150), +            Elem(39,3,0.009983), Elem(39,4,0.005008), Elem(39,5,0.003345), Elem(39,6,0.002512), Elem(39,7,0.002011), Elem(39,8,0.001677), Elem(46,0,0.009975), Elem(46,1,0.990133), +            Elem(46,2,0.019950), Elem(46,3,0.005150), Elem(46,4,0.013350), Elem(46,5,0.002608), Elem(46,6,0.002055), Elem(46,7,0.001703), Elem(46,8,0.001456), Elem(51,0,0.003300), +            Elem(51,1,0.004950), Elem(51,2,0.009900), Elem(51,3,0.990000), Elem(51,4,0.009900), Elem(51,5,0.004950), Elem(51,6,0.003300), Elem(51,7,0.002475), Elem(51,8,0.001980), +            Elem(58,0,0.002575), Elem(58,1,0.013300), Elem(58,2,0.005050), Elem(58,3,0.009950), Elem(58,4,0.990033), Elem(58,5,0.009925), Elem(58,6,0.004970), Elem(58,7,0.003317), +            Elem(58,8,0.002489), Elem(63,0,0.001980), Elem(63,1,0.002475), Elem(63,2,0.003300), Elem(63,3,0.004950), Elem(63,4,0.009900), Elem(63,5,0.990000), Elem(63,6,0.009900), +            Elem(63,7,0.004950), Elem(63,8,0.003300), Elem(65,2,0.000017), Elem(65,3,0.000020), Elem(65,4,0.000025), Elem(65,5,0.000033), Elem(65,6,0.000050), Elem(65,7,0.000100), +            Elem(65,8,0.010000), Elem(67,0,0.001650), Elem(67,1,0.001980), Elem(67,2,0.002475), Elem(67,3,0.003300), Elem(67,4,0.004950), Elem(67,5,0.009900), Elem(67,6,0.990000), +            Elem(67,7,0.009900), Elem(67,8,0.004950), Elem(70,0,0.001414), Elem(70,1,0.001650), Elem(70,2,0.001980), Elem(70,3,0.002475), Elem(70,4,0.003300), Elem(70,5,0.004950), +            Elem(70,6,0.009900), Elem(70,7,0.990000), Elem(70,8,0.009900), Elem(75,0,0.021257), Elem(75,1,0.001639), Elem(75,2,0.001783), Elem(75,3,0.002097), Elem(75,4,0.002625), +            Elem(75,5,0.013340), Elem(75,6,0.005083), Elem(75,7,0.009979), Elem(75,8,0.990058), Elem(79,0,0.000017), Elem(79,1,0.000020), Elem(79,2,0.000025), Elem(79,3,0.000033), +            Elem(79,4,0.000050), Elem(79,5,0.000100), Elem(79,6,0.010000), Elem(79,7,0.000100), Elem(79,8,0.000050), Elem(82,1,0.000017), Elem(82,2,0.000020), Elem(82,3,0.000025), +            Elem(82,4,0.000033), Elem(82,5,0.000050), Elem(82,6,0.000100), Elem(82,7,0.010000), Elem(82,8,0.000100), Elem(87,0,0.000033), Elem(87,1,0.000050), Elem(87,2,0.000100), +            Elem(87,3,0.010000), Elem(87,4,0.000100), Elem(87,5,0.000050), Elem(87,6,0.000033), Elem(87,7,0.000025), Elem(87,8,0.000020), Elem(89,0,0.000100), Elem(89,1,0.010000), +            Elem(89,2,0.000100), Elem(89,3,0.000050), Elem(89,4,0.000033), Elem(89,5,0.000025), Elem(89,6,0.000020), Elem(89,7,0.000017), }, +      { Elem(4,0,0.000067), Elem(4,1,0.000100), Elem(4,2,0.000200), Elem(4,3,0.020000), Elem(4,4,0.000200), Elem(4,5,0.000100), Elem(4,6,0.000067), Elem(4,7,0.000050), +            Elem(4,8,0.000040), Elem(11,0,0.000050), Elem(11,1,0.000067), Elem(11,2,0.000100), Elem(11,3,0.000200), Elem(11,4,0.020000), Elem(11,5,0.000200), Elem(11,6,0.000100), +            Elem(11,7,0.000067), Elem(11,8,0.000050), Elem(16,0,0.000040), Elem(16,1,0.000050), Elem(16,2,0.000067), Elem(16,3,0.000100), Elem(16,4,0.000200), Elem(16,5,0.020000), +            Elem(16,6,0.000200), Elem(16,7,0.000100), Elem(16,8,0.000067), Elem(20,0,0.000033), Elem(20,1,0.000040), Elem(20,2,0.000050), Elem(20,3,0.000067), Elem(20,4,0.000100), +            Elem(20,5,0.000200), Elem(20,6,0.020000), Elem(20,7,0.000200), Elem(20,8,0.000100), Elem(23,0,0.000029), Elem(23,1,0.000033), Elem(23,2,0.000040), Elem(23,3,0.000050), +            Elem(23,4,0.000067), Elem(23,5,0.000100), Elem(23,6,0.000200), Elem(23,7,0.020000), Elem(23,8,0.000200), Elem(28,0,0.990075), Elem(28,1,0.010029), Elem(28,2,0.014983), +            Elem(28,3,0.003440), Elem(28,4,0.002575), Elem(28,5,0.002080), Elem(28,6,0.001775), Elem(28,7,0.001634), Elem(28,8,0.021254), Elem(40,0,0.015050), Elem(40,1,0.020000), +            Elem(40,2,0.990150), Elem(40,3,0.009983), Elem(40,4,0.005008), Elem(40,5,0.003345), Elem(40,6,0.002512), Elem(40,7,0.002011), Elem(40,8,0.001677), Elem(47,0,0.009975), +            Elem(47,1,0.990133), Elem(47,2,0.019950), Elem(47,3,0.005150), Elem(47,4,0.013350), Elem(47,5,0.002608), Elem(47,6,0.002055), Elem(47,7,0.001703), Elem(47,8,0.001456), +            Elem(52,0,0.003300), Elem(52,1,0.004950), Elem(52,2,0.009900), Elem(52,3,0.990000), Elem(52,4,0.009900), Elem(52,5,0.004950), Elem(52,6,0.003300), Elem(52,7,0.002475), +            Elem(52,8,0.001980), Elem(59,0,0.002575), Elem(59,1,0.013300), Elem(59,2,0.005050), Elem(59,3,0.009950), Elem(59,4,0.990033), Elem(59,5,0.009925), Elem(59,6,0.004970), +            Elem(59,7,0.003317), Elem(59,8,0.002489), Elem(64,0,0.001993), Elem(64,1,0.002489), Elem(64,2,0.003317), Elem(64,3,0.004970), Elem(64,4,0.009925), Elem(64,5,0.990033), +            Elem(64,6,0.009950), Elem(64,7,0.005050), Elem(64,8,0.013300), Elem(68,0,0.001650), Elem(68,1,0.001980), Elem(68,2,0.002475), Elem(68,3,0.003300), Elem(68,4,0.004950), +            Elem(68,5,0.009900), Elem(68,6,0.990000), Elem(68,7,0.009900), Elem(68,8,0.004950), Elem(71,0,0.001414), Elem(71,1,0.001650), Elem(71,2,0.001980), Elem(71,3,0.002475), +            Elem(71,4,0.003300), Elem(71,5,0.004950), Elem(71,6,0.009900), Elem(71,7,0.990000), Elem(71,8,0.009900), Elem(76,0,0.021257), Elem(76,1,0.001639), Elem(76,2,0.001783), +            Elem(76,3,0.002097), Elem(76,4,0.002625), Elem(76,5,0.013340), Elem(76,6,0.005083), Elem(76,7,0.009979), Elem(76,8,0.990058), Elem(80,0,0.000017), Elem(80,1,0.000020), +            Elem(80,2,0.000025), Elem(80,3,0.000033), Elem(80,4,0.000050), Elem(80,5,0.000100), Elem(80,6,0.010000), Elem(80,7,0.000100), Elem(80,8,0.000050), Elem(83,1,0.000017), +            Elem(83,2,0.000020), Elem(83,3,0.000025), Elem(83,4,0.000033), Elem(83,5,0.000050), Elem(83,6,0.000100), Elem(83,7,0.010000), Elem(83,8,0.000100), Elem(88,0,0.000033), +            Elem(88,1,0.000050), Elem(88,2,0.000100), Elem(88,3,0.010000), Elem(88,4,0.000100), Elem(88,5,0.000050), Elem(88,6,0.000033), Elem(88,7,0.000025), Elem(88,8,0.000020), +            Elem(90,0,0.000100), Elem(90,1,0.010000), Elem(90,2,0.000100), Elem(90,3,0.000050), Elem(90,4,0.000033), Elem(90,5,0.000025), Elem(90,6,0.000020), Elem(90,7,0.000017), +            }, +      { Elem(0,0,0.000200), Elem(0,1,0.020000), Elem(0,2,0.000200), Elem(0,3,0.000100), Elem(0,4,0.000067), Elem(0,5,0.000050), Elem(0,6,0.000040), Elem(0,7,0.000033), +            Elem(0,8,0.000029), Elem(5,0,0.000067), Elem(5,1,0.000100), Elem(5,2,0.000200), Elem(5,3,0.020000), Elem(5,4,0.000200), Elem(5,5,0.000100), Elem(5,6,0.000067), +            Elem(5,7,0.000050), Elem(5,8,0.000040), Elem(12,0,0.000050), Elem(12,1,0.000067), Elem(12,2,0.000100), Elem(12,3,0.000200), Elem(12,4,0.020000), Elem(12,5,0.000200), +            Elem(12,6,0.000100), Elem(12,7,0.000067), Elem(12,8,0.000050), Elem(17,0,0.000040), Elem(17,1,0.000050), Elem(17,2,0.000067), Elem(17,3,0.000100), Elem(17,4,0.000200), +            Elem(17,5,0.020000), Elem(17,6,0.000200), Elem(17,7,0.000100), Elem(17,8,0.000067), Elem(21,0,0.000033), Elem(21,1,0.000040), Elem(21,2,0.000050), Elem(21,3,0.000067), +            Elem(21,4,0.000100), Elem(21,5,0.000200), Elem(21,6,0.020000), Elem(21,7,0.000200), Elem(21,8,0.000100), Elem(24,0,0.000029), Elem(24,1,0.000033), Elem(24,2,0.000040), +            Elem(24,3,0.000050), Elem(24,4,0.000067), Elem(24,5,0.000100), Elem(24,6,0.000200), Elem(24,7,0.020000), Elem(24,8,0.000200), Elem(29,0,0.990063), Elem(29,1,0.010014), +            Elem(29,2,0.014967), Elem(29,3,0.003420), Elem(29,4,0.002550), Elem(29,5,0.002047), Elem(29,6,0.001725), Elem(29,7,0.001534), Elem(29,8,0.011254), Elem(41,0,0.014950), +            Elem(41,1,0.010000), Elem(41,2,0.990050), Elem(41,3,0.009933), Elem(41,4,0.004975), Elem(41,5,0.003320), Elem(41,6,0.002492), Elem(41,7,0.001994), Elem(41,8,0.001663), +            Elem(48,0,0.009900), Elem(48,1,0.990000), Elem(48,2,0.009900), Elem(48,3,0.004950), Elem(48,4,0.003300), Elem(48,5,0.002475), Elem(48,6,0.001980), Elem(48,7,0.001650), +            Elem(48,8,0.001414), Elem(53,0,0.003300), Elem(53,1,0.004950), Elem(53,2,0.009900), Elem(53,3,0.990000), Elem(53,4,0.009900), Elem(53,5,0.004950), Elem(53,6,0.003300), +            Elem(53,7,0.002475), Elem(53,8,0.001980), Elem(60,0,0.002489), Elem(60,1,0.003317), Elem(60,2,0.004970), Elem(60,3,0.009925), Elem(60,4,0.990033), Elem(60,5,0.009950), +            Elem(60,6,0.005050), Elem(60,7,0.013300), Elem(60,8,0.002575), Elem(65,0,0.001980), Elem(65,1,0.002475), Elem(65,2,0.003300), Elem(65,3,0.004950), Elem(65,4,0.009900), +            Elem(65,5,0.990000), Elem(65,6,0.009900), Elem(65,7,0.004950), Elem(65,8,0.003300), Elem(69,0,0.001650), Elem(69,1,0.001980), Elem(69,2,0.002475), Elem(69,3,0.003300), +            Elem(69,4,0.004950), Elem(69,5,0.009900), Elem(69,6,0.990000), Elem(69,7,0.009900), Elem(69,8,0.004950), Elem(72,0,0.001439), Elem(72,1,0.001683), Elem(72,2,0.002030), +            Elem(72,3,0.002575), Elem(72,4,0.013300), Elem(72,5,0.005050), Elem(72,6,0.009950), Elem(72,7,0.990033), Elem(72,8,0.009925), Elem(75,0,0.010020), Elem(75,1,0.000125), +            Elem(75,2,0.000083), Elem(75,3,0.000083), Elem(75,4,0.000125), Elem(75,5,0.010020), Elem(75,6,0.000117), Elem(75,7,0.000064), Elem(75,8,0.000046), Elem(77,0,0.011237), +            Elem(77,1,0.001514), Elem(77,2,0.001700), Elem(77,3,0.002013), Elem(77,4,0.002500), Elem(77,5,0.003320), Elem(77,6,0.004967), Elem(77,7,0.009914), Elem(77,8,0.990013), +            Elem(81,0,0.000017), Elem(81,1,0.000020), Elem(81,2,0.000025), Elem(81,3,0.000033), Elem(81,4,0.000050), Elem(81,5,0.000100), Elem(81,6,0.010000), Elem(81,7,0.000100), +            Elem(81,8,0.000050), Elem(84,0,0.000100), Elem(84,1,0.000200), Elem(84,2,0.020000), Elem(84,3,0.000200), Elem(84,4,0.000100), Elem(84,5,0.000067), Elem(84,6,0.000050), +            Elem(84,7,0.000040), Elem(84,8,0.000033), Elem(89,0,0.000033), Elem(89,1,0.000050), Elem(89,2,0.000100), Elem(89,3,0.010000), Elem(89,4,0.000100), Elem(89,5,0.000050), +            Elem(89,6,0.000033), Elem(89,7,0.000025), Elem(89,8,0.000020), }, +      { Elem(1,0,0.000200), Elem(1,1,0.020000), Elem(1,2,0.000200), Elem(1,3,0.000100), Elem(1,4,0.000067), Elem(1,5,0.000050), Elem(1,6,0.000040), Elem(1,7,0.000033), +            Elem(1,8,0.000029), Elem(6,0,0.000067), Elem(6,1,0.000100), Elem(6,2,0.000200), Elem(6,3,0.020000), Elem(6,4,0.000200), Elem(6,5,0.000100), Elem(6,6,0.000067), +            Elem(6,7,0.000050), Elem(6,8,0.000040), Elem(13,0,0.000050), Elem(13,1,0.000067), Elem(13,2,0.000100), Elem(13,3,0.000200), Elem(13,4,0.020000), Elem(13,5,0.000200), +            Elem(13,6,0.000100), Elem(13,7,0.000067), Elem(13,8,0.000050), Elem(18,0,0.000040), Elem(18,1,0.000050), Elem(18,2,0.000067), Elem(18,3,0.000100), Elem(18,4,0.000200), +            Elem(18,5,0.020000), Elem(18,6,0.000200), Elem(18,7,0.000100), Elem(18,8,0.000067), Elem(22,0,0.000033), Elem(22,1,0.000040), Elem(22,2,0.000050), Elem(22,3,0.000067), +            Elem(22,4,0.000100), Elem(22,5,0.000200), Elem(22,6,0.020000), Elem(22,7,0.000200), Elem(22,8,0.000100), Elem(25,0,0.000029), Elem(25,1,0.000033), Elem(25,2,0.000040), +            Elem(25,3,0.000050), Elem(25,4,0.000067), Elem(25,5,0.000100), Elem(25,6,0.000200), Elem(25,7,0.020000), Elem(25,8,0.000200), Elem(30,0,0.990075), Elem(30,1,0.010029), +            Elem(30,2,0.014983), Elem(30,3,0.003440), Elem(30,4,0.002575), Elem(30,5,0.002080), Elem(30,6,0.001775), Elem(30,7,0.001634), Elem(30,8,0.021254), Elem(42,0,0.014950), +            Elem(42,1,0.010000), Elem(42,2,0.990050), Elem(42,3,0.009933), Elem(42,4,0.004975), Elem(42,5,0.003320), Elem(42,6,0.002492), Elem(42,7,0.001994), Elem(42,8,0.001663), +            Elem(49,0,0.009900), Elem(49,1,0.990000), Elem(49,2,0.009900), Elem(49,3,0.004950), Elem(49,4,0.003300), Elem(49,5,0.002475), Elem(49,6,0.001980), Elem(49,7,0.001650), +            Elem(49,8,0.001414), Elem(54,0,0.003300), Elem(54,1,0.004950), Elem(54,2,0.009900), Elem(54,3,0.990000), Elem(54,4,0.009900), Elem(54,5,0.004950), Elem(54,6,0.003300), +            Elem(54,7,0.002475), Elem(54,8,0.001980), Elem(61,0,0.002489), Elem(61,1,0.003317), Elem(61,2,0.004970), Elem(61,3,0.009925), Elem(61,4,0.990033), Elem(61,5,0.009950), +            Elem(61,6,0.005050), Elem(61,7,0.013300), Elem(61,8,0.002575), Elem(66,0,0.001993), Elem(66,1,0.002489), Elem(66,2,0.003317), Elem(66,3,0.004970), Elem(66,4,0.009925), +            Elem(66,5,0.990033), Elem(66,6,0.009950), Elem(66,7,0.005050), Elem(66,8,0.013300), Elem(70,0,0.001650), Elem(70,1,0.001980), Elem(70,2,0.002475), Elem(70,3,0.003300), +            Elem(70,4,0.004950), Elem(70,5,0.009900), Elem(70,6,0.990000), Elem(70,7,0.009900), Elem(70,8,0.004950), Elem(73,0,0.001439), Elem(73,1,0.001683), Elem(73,2,0.002030), +            Elem(73,3,0.002575), Elem(73,4,0.013300), Elem(73,5,0.005050), Elem(73,6,0.009950), Elem(73,7,0.990033), Elem(73,8,0.009925), Elem(78,0,0.021257), Elem(78,1,0.001639), +            Elem(78,2,0.001783), Elem(78,3,0.002097), Elem(78,4,0.002625), Elem(78,5,0.013340), Elem(78,6,0.005083), Elem(78,7,0.009979), Elem(78,8,0.990058), Elem(82,0,0.000017), +            Elem(82,1,0.000020), Elem(82,2,0.000025), Elem(82,3,0.000033), Elem(82,4,0.000050), Elem(82,5,0.000100), Elem(82,6,0.010000), Elem(82,7,0.000100), Elem(82,8,0.000050), +            Elem(85,0,0.000200), Elem(85,1,0.010200), Elem(85,2,0.020100), Elem(85,3,0.000250), Elem(85,4,0.000133), Elem(85,5,0.000092), Elem(85,6,0.000070), Elem(85,7,0.000057), +            Elem(85,8,0.000048), Elem(90,0,0.000033), Elem(90,1,0.000050), Elem(90,2,0.000100), Elem(90,3,0.010000), Elem(90,4,0.000100), Elem(90,5,0.000050), Elem(90,6,0.000033), +            Elem(90,7,0.000025), Elem(90,8,0.000020), }, +      { Elem(2,0,0.000200), Elem(2,1,0.020000), Elem(2,2,0.000200), Elem(2,3,0.000100), Elem(2,4,0.000067), Elem(2,5,0.000050), Elem(2,6,0.000040), Elem(2,7,0.000033), +            Elem(2,8,0.000029), Elem(7,0,0.000067), Elem(7,1,0.000100), Elem(7,2,0.000200), Elem(7,3,0.020000), Elem(7,4,0.000200), Elem(7,5,0.000100), Elem(7,6,0.000067), +            Elem(7,7,0.000050), Elem(7,8,0.000040), Elem(14,0,0.000050), Elem(14,1,0.000067), Elem(14,2,0.000100), Elem(14,3,0.000200), Elem(14,4,0.020000), Elem(14,5,0.000200), +            Elem(14,6,0.000100), Elem(14,7,0.000067), Elem(14,8,0.000050), Elem(19,0,0.000040), Elem(19,1,0.000050), Elem(19,2,0.000067), Elem(19,3,0.000100), Elem(19,4,0.000200), +            Elem(19,5,0.020000), Elem(19,6,0.000200), Elem(19,7,0.000100), Elem(19,8,0.000067), Elem(23,0,0.000033), Elem(23,1,0.000040), Elem(23,2,0.000050), Elem(23,3,0.000067), +            Elem(23,4,0.000100), Elem(23,5,0.000200), Elem(23,6,0.020000), Elem(23,7,0.000200), Elem(23,8,0.000100), Elem(26,0,0.000029), Elem(26,1,0.000033), Elem(26,2,0.000040), +            Elem(26,3,0.000050), Elem(26,4,0.000067), Elem(26,5,0.000100), Elem(26,6,0.000200), Elem(26,7,0.020000), Elem(26,8,0.000200), Elem(31,0,0.990025), Elem(31,1,0.009929), +            Elem(31,2,0.004983), Elem(31,3,0.003340), Elem(31,4,0.002525), Elem(31,5,0.002047), Elem(31,6,0.001750), Elem(31,7,0.001614), Elem(31,8,0.021238), Elem(36,0,0.000050), +            Elem(36,1,0.000100), Elem(36,2,0.010000), Elem(36,3,0.000100), Elem(36,4,0.000050), Elem(36,5,0.000033), Elem(36,6,0.000025), Elem(36,7,0.000020), Elem(36,8,0.000017), +            Elem(43,0,0.004983), Elem(43,1,0.009950), Elem(43,2,0.990100), Elem(43,3,0.019900), Elem(43,4,0.005050), Elem(43,5,0.003350), Elem(43,6,0.002508), Elem(43,7,0.002005), +            Elem(43,8,0.001670), Elem(50,0,0.009900), Elem(50,1,0.990000), Elem(50,2,0.009900), Elem(50,3,0.004950), Elem(50,4,0.003300), Elem(50,5,0.002475), Elem(50,6,0.001980), +            Elem(50,7,0.001650), Elem(50,8,0.001414), Elem(55,0,0.003350), Elem(55,1,0.005050), Elem(55,2,0.019900), Elem(55,3,0.990100), Elem(55,4,0.009950), Elem(55,5,0.004983), +            Elem(55,6,0.003325), Elem(55,7,0.002495), Elem(55,8,0.001997), Elem(62,0,0.002489), Elem(62,1,0.003317), Elem(62,2,0.004970), Elem(62,3,0.009925), Elem(62,4,0.990033), +            Elem(62,5,0.009950), Elem(62,6,0.005050), Elem(62,7,0.013300), Elem(62,8,0.002575), Elem(67,0,0.001993), Elem(67,1,0.002489), Elem(67,2,0.003317), Elem(67,3,0.004970), +            Elem(67,4,0.009925), Elem(67,5,0.990033), Elem(67,6,0.009950), Elem(67,7,0.005050), Elem(67,8,0.013300), Elem(71,0,0.001650), Elem(71,1,0.001980), Elem(71,2,0.002475), +            Elem(71,3,0.003300), Elem(71,4,0.004950), Elem(71,5,0.009900), Elem(71,6,0.990000), Elem(71,7,0.009900), Elem(71,8,0.004950), Elem(74,0,0.001439), Elem(74,1,0.001683), +            Elem(74,2,0.002030), Elem(74,3,0.002575), Elem(74,4,0.013300), Elem(74,5,0.005050), Elem(74,6,0.009950), Elem(74,7,0.990033), Elem(74,8,0.009925), Elem(79,0,0.021257), +            Elem(79,1,0.001639), Elem(79,2,0.001783), Elem(79,3,0.002097), Elem(79,4,0.002625), Elem(79,5,0.013340), Elem(79,6,0.005083), Elem(79,7,0.009979), Elem(79,8,0.990058), +            Elem(83,0,0.000017), Elem(83,1,0.000020), Elem(83,2,0.000025), Elem(83,3,0.000033), Elem(83,4,0.000050), Elem(83,5,0.000100), Elem(83,6,0.010000), Elem(83,7,0.000100), +            Elem(83,8,0.000050), Elem(86,0,0.010150), Elem(86,1,0.010200), Elem(86,2,0.010150), Elem(86,3,0.000183), Elem(86,4,0.000108), Elem(86,5,0.000078), Elem(86,6,0.000062), +            Elem(86,7,0.000051), Elem(86,8,0.000043), }, +      { Elem(3,0,0.000200), Elem(3,1,0.020000), Elem(3,2,0.000200), Elem(3,3,0.000100), Elem(3,4,0.000067), Elem(3,5,0.000050), Elem(3,6,0.000040), Elem(3,7,0.000033), +            Elem(3,8,0.000029), Elem(8,0,0.000067), Elem(8,1,0.000100), Elem(8,2,0.000200), Elem(8,3,0.020000), Elem(8,4,0.000200), Elem(8,5,0.000100), Elem(8,6,0.000067), +            Elem(8,7,0.000050), Elem(8,8,0.000040), Elem(15,0,0.000050), Elem(15,1,0.000067), Elem(15,2,0.000100), Elem(15,3,0.000200), Elem(15,4,0.020000), Elem(15,5,0.000200), +            Elem(15,6,0.000100), Elem(15,7,0.000067), Elem(15,8,0.000050), Elem(20,0,0.000040), Elem(20,1,0.000050), Elem(20,2,0.000067), Elem(20,3,0.000100), Elem(20,4,0.000200), +            Elem(20,5,0.020000), Elem(20,6,0.000200), Elem(20,7,0.000100), Elem(20,8,0.000067), Elem(24,0,0.000033), Elem(24,1,0.000040), Elem(24,2,0.000050), Elem(24,3,0.000067), +            Elem(24,4,0.000100), Elem(24,5,0.000200), Elem(24,6,0.020000), Elem(24,7,0.000200), Elem(24,8,0.000100), Elem(27,1,0.000017), Elem(27,2,0.000020), Elem(27,3,0.000025), +            Elem(27,4,0.000033), Elem(27,5,0.000050), Elem(27,6,0.000100), Elem(27,7,0.010000), Elem(27,8,0.000100), Elem(29,1,0.000017), Elem(29,2,0.000020), Elem(29,3,0.000025), +            Elem(29,4,0.000033), Elem(29,5,0.000050), Elem(29,6,0.000100), Elem(29,7,0.010000), Elem(29,8,0.000100), Elem(32,0,0.990025), Elem(32,1,0.009929), Elem(32,2,0.004983), +            Elem(32,3,0.003340), Elem(32,4,0.002525), Elem(32,5,0.002047), Elem(32,6,0.001750), Elem(32,7,0.001614), Elem(32,8,0.021238), Elem(33,0,0.000050), Elem(33,1,0.000100), +            Elem(33,2,0.010000), Elem(33,3,0.000100), Elem(33,4,0.000050), Elem(33,5,0.000033), Elem(33,6,0.000025), Elem(33,7,0.000020), Elem(33,8,0.000017), Elem(44,0,0.004983), +            Elem(44,1,0.009950), Elem(44,2,0.990100), Elem(44,3,0.019900), Elem(44,4,0.005050), Elem(44,5,0.003350), Elem(44,6,0.002508), Elem(44,7,0.002005), Elem(44,8,0.001670), +            Elem(51,0,0.009900), Elem(51,1,0.990000), Elem(51,2,0.009900), Elem(51,3,0.004950), Elem(51,4,0.003300), Elem(51,5,0.002475), Elem(51,6,0.001980), Elem(51,7,0.001650), +            Elem(51,8,0.001414), Elem(56,0,0.003350), Elem(56,1,0.005050), Elem(56,2,0.019900), Elem(56,3,0.990100), Elem(56,4,0.009950), Elem(56,5,0.004983), Elem(56,6,0.003325), +            Elem(56,7,0.002495), Elem(56,8,0.001997), Elem(60,0,0.000017), Elem(60,1,0.000020), Elem(60,2,0.000025), Elem(60,3,0.000033), Elem(60,4,0.000050), Elem(60,5,0.000100), +            Elem(60,6,0.010000), Elem(60,7,0.000100), Elem(60,8,0.000050), Elem(63,0,0.002475), Elem(63,1,0.003300), Elem(63,2,0.004950), Elem(63,3,0.009900), Elem(63,4,0.990000), +            Elem(63,5,0.009900), Elem(63,6,0.004950), Elem(63,7,0.003300), Elem(63,8,0.002475), Elem(65,1,0.000017), Elem(65,2,0.000020), Elem(65,3,0.000025), Elem(65,4,0.000033), +            Elem(65,5,0.000050), Elem(65,6,0.000100), Elem(65,7,0.010000), Elem(65,8,0.000100), Elem(68,0,0.001993), Elem(68,1,0.002489), Elem(68,2,0.003317), Elem(68,3,0.004970), +            Elem(68,4,0.009925), Elem(68,5,0.990033), Elem(68,6,0.009950), Elem(68,7,0.005050), Elem(68,8,0.013300), Elem(72,0,0.001650), Elem(72,1,0.001980), Elem(72,2,0.002475), +            Elem(72,3,0.003300), Elem(72,4,0.004950), Elem(72,5,0.009900), Elem(72,6,0.990000), Elem(72,7,0.009900), Elem(72,8,0.004950), Elem(75,0,0.001439), Elem(75,1,0.001683), +            Elem(75,2,0.002030), Elem(75,3,0.002575), Elem(75,4,0.013300), Elem(75,5,0.005050), Elem(75,6,0.009950), Elem(75,7,0.990033), Elem(75,8,0.009925), Elem(80,0,0.021257), +            Elem(80,1,0.001639), Elem(80,2,0.001783), Elem(80,3,0.002097), Elem(80,4,0.002625), Elem(80,5,0.013340), Elem(80,6,0.005083), Elem(80,7,0.009979), Elem(80,8,0.990058), +            Elem(87,0,0.010150), Elem(87,1,0.010200), Elem(87,2,0.010150), Elem(87,3,0.000183), Elem(87,4,0.000108), Elem(87,5,0.000078), Elem(87,6,0.000062), Elem(87,7,0.000051), +            Elem(87,8,0.000043), }, +      { Elem(4,0,0.000200), Elem(4,1,0.020000), Elem(4,2,0.000200), Elem(4,3,0.000100), Elem(4,4,0.000067), Elem(4,5,0.000050), Elem(4,6,0.000040), Elem(4,7,0.000033), +            Elem(4,8,0.000029), Elem(9,0,0.000067), Elem(9,1,0.000100), Elem(9,2,0.000200), Elem(9,3,0.020000), Elem(9,4,0.000200), Elem(9,5,0.000100), Elem(9,6,0.000067), +            Elem(9,7,0.000050), Elem(9,8,0.000040), Elem(16,0,0.000050), Elem(16,1,0.000067), Elem(16,2,0.000100), Elem(16,3,0.000200), Elem(16,4,0.020000), Elem(16,5,0.000200), +            Elem(16,6,0.000100), Elem(16,7,0.000067), Elem(16,8,0.000050), Elem(21,0,0.000040), Elem(21,1,0.000050), Elem(21,2,0.000067), Elem(21,3,0.000100), Elem(21,4,0.000200), +            Elem(21,5,0.020000), Elem(21,6,0.000200), Elem(21,7,0.000100), Elem(21,8,0.000067), Elem(25,0,0.010033), Elem(25,1,0.000140), Elem(25,2,0.000100), Elem(25,3,0.000100), +            Elem(25,4,0.000125), Elem(25,5,0.000220), Elem(25,6,0.020017), Elem(25,7,0.000214), Elem(25,8,0.000112), Elem(28,0,0.000029), Elem(28,1,0.000033), Elem(28,2,0.000040), +            Elem(28,3,0.000050), Elem(28,4,0.000067), Elem(28,5,0.000100), Elem(28,6,0.000200), Elem(28,7,0.020000), Elem(28,8,0.000200), Elem(33,0,0.990025), Elem(33,1,0.009929), +            Elem(33,2,0.004983), Elem(33,3,0.003340), Elem(33,4,0.002525), Elem(33,5,0.002047), Elem(33,6,0.001750), Elem(33,7,0.001614), Elem(33,8,0.021238), Elem(38,0,0.000050), +            Elem(38,1,0.000100), Elem(38,2,0.010000), Elem(38,3,0.000100), Elem(38,4,0.000050), Elem(38,5,0.000033), Elem(38,6,0.000025), Elem(38,7,0.000020), Elem(38,8,0.000017), +            Elem(44,0,0.010000), Elem(44,1,0.000100), Elem(44,2,0.000050), Elem(44,3,0.000033), Elem(44,4,0.000025), Elem(44,5,0.000020), Elem(44,6,0.000017), Elem(45,0,0.004983), +            Elem(45,1,0.009950), Elem(45,2,0.990100), Elem(45,3,0.019900), Elem(45,4,0.005050), Elem(45,5,0.003350), Elem(45,6,0.002508), Elem(45,7,0.002005), Elem(45,8,0.001670), +            Elem(52,0,0.009900), Elem(52,1,0.990000), Elem(52,2,0.009900), Elem(52,3,0.004950), Elem(52,4,0.003300), Elem(52,5,0.002475), Elem(52,6,0.001980), Elem(52,7,0.001650), +            Elem(52,8,0.001414), Elem(57,0,0.003350), Elem(57,1,0.005050), Elem(57,2,0.019900), Elem(57,3,0.990100), Elem(57,4,0.009950), Elem(57,5,0.004983), Elem(57,6,0.003325), +            Elem(57,7,0.002495), Elem(57,8,0.001997), Elem(61,0,0.000017), Elem(61,1,0.000020), Elem(61,2,0.000025), Elem(61,3,0.000033), Elem(61,4,0.000050), Elem(61,5,0.000100), +            Elem(61,6,0.010000), Elem(61,7,0.000100), Elem(61,8,0.000050), Elem(64,0,0.002489), Elem(64,1,0.003317), Elem(64,2,0.004970), Elem(64,3,0.009925), Elem(64,4,0.990033), +            Elem(64,5,0.009950), Elem(64,6,0.005050), Elem(64,7,0.013300), Elem(64,8,0.002575), Elem(69,0,0.001993), Elem(69,1,0.002489), Elem(69,2,0.003317), Elem(69,3,0.004970), +            Elem(69,4,0.009925), Elem(69,5,0.990033), Elem(69,6,0.009950), Elem(69,7,0.005050), Elem(69,8,0.013300), Elem(73,0,0.001650), Elem(73,1,0.001980), Elem(73,2,0.002475), +            Elem(73,3,0.003300), Elem(73,4,0.004950), Elem(73,5,0.009900), Elem(73,6,0.990000), Elem(73,7,0.009900), Elem(73,8,0.004950), Elem(76,0,0.001439), Elem(76,1,0.001683), +            Elem(76,2,0.002030), Elem(76,3,0.002575), Elem(76,4,0.013300), Elem(76,5,0.005050), Elem(76,6,0.009950), Elem(76,7,0.990033), Elem(76,8,0.009925), Elem(81,0,0.011257), +            Elem(81,1,0.001539), Elem(81,2,0.001733), Elem(81,3,0.002063), Elem(81,4,0.002600), Elem(81,5,0.013320), Elem(81,6,0.005067), Elem(81,7,0.009964), Elem(81,8,0.990046), +            Elem(88,0,0.000150), Elem(88,1,0.010100), Elem(88,2,0.010100), Elem(88,3,0.000150), Elem(88,4,0.000083), Elem(88,5,0.000058), Elem(88,6,0.000045), Elem(88,7,0.000037), +            Elem(88,8,0.000031), }, +      { Elem(5,0,0.000200), Elem(5,1,0.020000), Elem(5,2,0.000200), Elem(5,3,0.000100), Elem(5,4,0.000067), Elem(5,5,0.000050), Elem(5,6,0.000040), Elem(5,7,0.000033), +            Elem(5,8,0.000029), Elem(10,0,0.000067), Elem(10,1,0.000100), Elem(10,2,0.000200), Elem(10,3,0.020000), Elem(10,4,0.000200), Elem(10,5,0.000100), Elem(10,6,0.000067), +            Elem(10,7,0.000050), Elem(10,8,0.000040), Elem(17,0,0.000050), Elem(17,1,0.000067), Elem(17,2,0.000100), Elem(17,3,0.000200), Elem(17,4,0.020000), Elem(17,5,0.000200), +            Elem(17,6,0.000100), Elem(17,7,0.000067), Elem(17,8,0.000050), Elem(22,0,0.000040), Elem(22,1,0.000050), Elem(22,2,0.000067), Elem(22,3,0.000100), Elem(22,4,0.000200), +            Elem(22,5,0.020000), Elem(22,6,0.000200), Elem(22,7,0.000100), Elem(22,8,0.000067), Elem(26,0,0.000033), Elem(26,1,0.000040), Elem(26,2,0.000050), Elem(26,3,0.000067), +            Elem(26,4,0.000100), Elem(26,5,0.000200), Elem(26,6,0.020000), Elem(26,7,0.000200), Elem(26,8,0.000100), Elem(29,1,0.000017), Elem(29,2,0.000020), Elem(29,3,0.000025), +            Elem(29,4,0.000033), Elem(29,5,0.000050), Elem(29,6,0.000100), Elem(29,7,0.010000), Elem(29,8,0.000100), Elem(34,0,0.990025), Elem(34,1,0.009929), Elem(34,2,0.004983), +            Elem(34,3,0.003340), Elem(34,4,0.002525), Elem(34,5,0.002047), Elem(34,6,0.001750), Elem(34,7,0.001614), Elem(34,8,0.021238), Elem(39,0,0.000050), Elem(39,1,0.000100), +            Elem(39,2,0.010000), Elem(39,3,0.000100), Elem(39,4,0.000050), Elem(39,5,0.000033), Elem(39,6,0.000025), Elem(39,7,0.000020), Elem(39,8,0.000017), Elem(46,0,0.004983), +            Elem(46,1,0.009950), Elem(46,2,0.990100), Elem(46,3,0.019900), Elem(46,4,0.005050), Elem(46,5,0.003350), Elem(46,6,0.002508), Elem(46,7,0.002005), Elem(46,8,0.001670), +            Elem(53,0,0.009900), Elem(53,1,0.990000), Elem(53,2,0.009900), Elem(53,3,0.004950), Elem(53,4,0.003300), Elem(53,5,0.002475), Elem(53,6,0.001980), Elem(53,7,0.001650), +            Elem(53,8,0.001414), Elem(58,0,0.003350), Elem(58,1,0.005050), Elem(58,2,0.019900), Elem(58,3,0.990100), Elem(58,4,0.009950), Elem(58,5,0.004983), Elem(58,6,0.003325), +            Elem(58,7,0.002495), Elem(58,8,0.001997), Elem(62,0,0.000017), Elem(62,1,0.000020), Elem(62,2,0.000025), Elem(62,3,0.000033), Elem(62,4,0.000050), Elem(62,5,0.000100), +            Elem(62,6,0.010000), Elem(62,7,0.000100), Elem(62,8,0.000050), Elem(65,0,0.002475), Elem(65,1,0.003300), Elem(65,2,0.004950), Elem(65,3,0.009900), Elem(65,4,0.990000), +            Elem(65,5,0.009900), Elem(65,6,0.004950), Elem(65,7,0.003300), Elem(65,8,0.002475), Elem(70,0,0.001993), Elem(70,1,0.002489), Elem(70,2,0.003317), Elem(70,3,0.004970), +            Elem(70,4,0.009925), Elem(70,5,0.990033), Elem(70,6,0.009950), Elem(70,7,0.005050), Elem(70,8,0.013300), Elem(74,0,0.001650), Elem(74,1,0.001980), Elem(74,2,0.002475), +            Elem(74,3,0.003300), Elem(74,4,0.004950), Elem(74,5,0.009900), Elem(74,6,0.990000), Elem(74,7,0.009900), Elem(74,8,0.004950), Elem(75,0,0.000025), Elem(75,1,0.000033), +            Elem(75,2,0.000050), Elem(75,3,0.000100), Elem(75,4,0.010000), Elem(75,5,0.000100), Elem(75,6,0.000050), Elem(75,7,0.000033), Elem(75,8,0.000025), Elem(77,0,0.001414), +            Elem(77,1,0.001650), Elem(77,2,0.001980), Elem(77,3,0.002475), Elem(77,4,0.003300), Elem(77,5,0.004950), Elem(77,6,0.009900), Elem(77,7,0.990000), Elem(77,8,0.009900), +            Elem(82,0,0.021257), Elem(82,1,0.001639), Elem(82,2,0.001783), Elem(82,3,0.002097), Elem(82,4,0.002625), Elem(82,5,0.013340), Elem(82,6,0.005083), Elem(82,7,0.009979), +            Elem(82,8,0.990058), Elem(89,0,0.010150), Elem(89,1,0.010200), Elem(89,2,0.010150), Elem(89,3,0.000183), Elem(89,4,0.000108), Elem(89,5,0.000078), Elem(89,6,0.000062), +            Elem(89,7,0.000051), Elem(89,8,0.000043), }, +      { Elem(6,0,0.000200), Elem(6,1,0.020000), Elem(6,2,0.000200), Elem(6,3,0.000100), Elem(6,4,0.000067), Elem(6,5,0.000050), Elem(6,6,0.000040), Elem(6,7,0.000033), +            Elem(6,8,0.000029), Elem(11,0,0.000067), Elem(11,1,0.000100), Elem(11,2,0.000200), Elem(11,3,0.020000), Elem(11,4,0.000200), Elem(11,5,0.000100), Elem(11,6,0.000067), +            Elem(11,7,0.000050), Elem(11,8,0.000040), Elem(18,0,0.000050), Elem(18,1,0.000067), Elem(18,2,0.000100), Elem(18,3,0.000200), Elem(18,4,0.020000), Elem(18,5,0.000200), +            Elem(18,6,0.000100), Elem(18,7,0.000067), Elem(18,8,0.000050), Elem(23,0,0.000040), Elem(23,1,0.000050), Elem(23,2,0.000067), Elem(23,3,0.000100), Elem(23,4,0.000200), +            Elem(23,5,0.020000), Elem(23,6,0.000200), Elem(23,7,0.000100), Elem(23,8,0.000067), Elem(27,0,0.000017), Elem(27,1,0.000020), Elem(27,2,0.000025), Elem(27,3,0.000033), +            Elem(27,4,0.000050), Elem(27,5,0.000100), Elem(27,6,0.010000), Elem(27,7,0.000100), Elem(27,8,0.000050), Elem(29,0,0.000017), Elem(29,1,0.000020), Elem(29,2,0.000025), +            Elem(29,3,0.000033), Elem(29,4,0.000050), Elem(29,5,0.000100), Elem(29,6,0.010000), Elem(29,7,0.000100), Elem(29,8,0.000050), Elem(30,0,0.000029), Elem(30,1,0.000033), +            Elem(30,2,0.000040), Elem(30,3,0.000050), Elem(30,4,0.000067), Elem(30,5,0.000100), Elem(30,6,0.000200), Elem(30,7,0.020000), Elem(30,8,0.000200), Elem(35,0,0.990025), +            Elem(35,1,0.009929), Elem(35,2,0.004983), Elem(35,3,0.003340), Elem(35,4,0.002525), Elem(35,5,0.002047), Elem(35,6,0.001750), Elem(35,7,0.001614), Elem(35,8,0.021238), +            Elem(40,0,0.000050), Elem(40,1,0.000100), Elem(40,2,0.010000), Elem(40,3,0.000100), Elem(40,4,0.000050), Elem(40,5,0.000033), Elem(40,6,0.000025), Elem(40,7,0.000020), +            Elem(40,8,0.000017), Elem(47,0,0.004983), Elem(47,1,0.009950), Elem(47,2,0.990100), Elem(47,3,0.019900), Elem(47,4,0.005050), Elem(47,5,0.003350), Elem(47,6,0.002508), +            Elem(47,7,0.002005), Elem(47,8,0.001670), Elem(54,0,0.009900), Elem(54,1,0.990000), Elem(54,2,0.009900), Elem(54,3,0.004950), Elem(54,4,0.003300), Elem(54,5,0.002475), +            Elem(54,6,0.001980), Elem(54,7,0.001650), Elem(54,8,0.001414), Elem(59,0,0.003350), Elem(59,1,0.005050), Elem(59,2,0.019900), Elem(59,3,0.990100), Elem(59,4,0.009950), +            Elem(59,5,0.004983), Elem(59,6,0.003325), Elem(59,7,0.002495), Elem(59,8,0.001997), Elem(65,0,0.000017), Elem(65,1,0.000020), Elem(65,2,0.000025), Elem(65,3,0.000033), +            Elem(65,4,0.000050), Elem(65,5,0.000100), Elem(65,6,0.010000), Elem(65,7,0.000100), Elem(65,8,0.000050), Elem(66,0,0.002489), Elem(66,1,0.003317), Elem(66,2,0.004970), +            Elem(66,3,0.009925), Elem(66,4,0.990033), Elem(66,5,0.009950), Elem(66,6,0.005050), Elem(66,7,0.013300), Elem(66,8,0.002575), Elem(71,0,0.001993), Elem(71,1,0.002489), +            Elem(71,2,0.003317), Elem(71,3,0.004970), Elem(71,4,0.009925), Elem(71,5,0.990033), Elem(71,6,0.009950), Elem(71,7,0.005050), Elem(71,8,0.013300), Elem(75,0,0.001650), +            Elem(75,1,0.001980), Elem(75,2,0.002475), Elem(75,3,0.003300), Elem(75,4,0.004950), Elem(75,5,0.009900), Elem(75,6,0.990000), Elem(75,7,0.009900), Elem(75,8,0.004950), +            Elem(78,0,0.001439), Elem(78,1,0.001683), Elem(78,2,0.002030), Elem(78,3,0.002575), Elem(78,4,0.013300), Elem(78,5,0.005050), Elem(78,6,0.009950), Elem(78,7,0.990033), +            Elem(78,8,0.009925), Elem(83,0,0.021257), Elem(83,1,0.001639), Elem(83,2,0.001783), Elem(83,3,0.002097), Elem(83,4,0.002625), Elem(83,5,0.013340), Elem(83,6,0.005083), +            Elem(83,7,0.009979), Elem(83,8,0.990058), Elem(90,0,0.010150), Elem(90,1,0.010200), Elem(90,2,0.010150), Elem(90,3,0.000183), Elem(90,4,0.000108), Elem(90,5,0.000078), +            Elem(90,6,0.000062), Elem(90,7,0.000051), Elem(90,8,0.000043), }, +      { Elem(0,0,0.000100), Elem(0,1,0.000200), Elem(0,2,0.020000), Elem(0,3,0.000200), Elem(0,4,0.000100), Elem(0,5,0.000067), Elem(0,6,0.000050), Elem(0,7,0.000040), +            Elem(0,8,0.000033), Elem(7,0,0.000200), Elem(7,1,0.020000), Elem(7,2,0.000200), Elem(7,3,0.000100), Elem(7,4,0.000067), Elem(7,5,0.000050), Elem(7,6,0.000040), +            Elem(7,7,0.000033), Elem(7,8,0.000029), Elem(12,0,0.000067), Elem(12,1,0.000100), Elem(12,2,0.000200), Elem(12,3,0.020000), Elem(12,4,0.000200), Elem(12,5,0.000100), +            Elem(12,6,0.000067), Elem(12,7,0.000050), Elem(12,8,0.000040), Elem(19,0,0.000050), Elem(19,1,0.000067), Elem(19,2,0.000100), Elem(19,3,0.000200), Elem(19,4,0.020000), +            Elem(19,5,0.000200), Elem(19,6,0.000100), Elem(19,7,0.000067), Elem(19,8,0.000050), Elem(24,0,0.015002), Elem(24,1,0.000200), Elem(24,2,0.000141), Elem(24,3,0.000150), +            Elem(24,4,0.000237), Elem(24,5,0.020030), Elem(24,6,0.000225), Elem(24,7,0.000121), Elem(24,8,0.000085), Elem(28,0,0.000033), Elem(28,1,0.000040), Elem(28,2,0.000050), +            Elem(28,3,0.000067), Elem(28,4,0.000100), Elem(28,5,0.000200), Elem(28,6,0.020000), Elem(28,7,0.000200), Elem(28,8,0.000100), Elem(31,0,0.000029), Elem(31,1,0.000033), +            Elem(31,2,0.000040), Elem(31,3,0.000050), Elem(31,4,0.000067), Elem(31,5,0.000100), Elem(31,6,0.000200), Elem(31,7,0.020000), Elem(31,8,0.000200), Elem(36,0,1.481273), +            Elem(36,1,0.014813), Elem(36,2,0.007406), Elem(36,3,0.004938), Elem(36,4,0.003703), Elem(36,5,0.002963), Elem(36,6,0.002469), Elem(36,7,0.002116), Elem(36,8,0.001852), +            Elem(41,0,0.000025), Elem(41,1,0.000029), Elem(41,2,0.000033), Elem(41,3,0.000040), Elem(41,4,0.000050), Elem(41,5,0.000067), Elem(41,6,0.000100), Elem(41,7,0.000200), +            Elem(41,8,0.020000), Elem(43,0,0.015062), Elem(43,1,0.010150), Elem(43,2,0.000175), Elem(43,3,0.000100), Elem(43,4,0.000071), Elem(43,5,0.000055), Elem(43,6,0.000045), +            Elem(43,7,0.000038), Elem(43,8,0.000033), Elem(48,0,0.004950), Elem(48,1,0.009900), Elem(48,2,0.990000), Elem(48,3,0.009900), Elem(48,4,0.004950), Elem(48,5,0.003300), +            Elem(48,6,0.002475), Elem(48,7,0.001980), Elem(48,8,0.001650), Elem(55,0,0.009900), Elem(55,1,0.990000), Elem(55,2,0.009900), Elem(55,3,0.004950), Elem(55,4,0.003300), +            Elem(55,5,0.002475), Elem(55,6,0.001980), Elem(55,7,0.001650), Elem(55,8,0.001414), Elem(60,0,0.003320), Elem(60,1,0.004975), Elem(60,2,0.009933), Elem(60,3,0.990050), +            Elem(60,4,0.010000), Elem(60,5,0.014950), Elem(60,6,0.003400), Elem(60,7,0.002525), Elem(60,8,0.002013), Elem(64,0,0.000017), Elem(64,1,0.000020), Elem(64,2,0.000025), +            Elem(64,3,0.000033), Elem(64,4,0.000050), Elem(64,5,0.000100), Elem(64,6,0.010000), Elem(64,7,0.000100), Elem(64,8,0.000050), Elem(67,0,0.002489), Elem(67,1,0.003317), +            Elem(67,2,0.004970), Elem(67,3,0.009925), Elem(67,4,0.990033), Elem(67,5,0.009950), Elem(67,6,0.005050), Elem(67,7,0.013300), Elem(67,8,0.002575), Elem(72,0,0.002013), +            Elem(72,1,0.002525), Elem(72,2,0.003400), Elem(72,3,0.014950), Elem(72,4,0.010000), Elem(72,5,0.990050), Elem(72,6,0.009933), Elem(72,7,0.004975), Elem(72,8,0.003320), +            Elem(76,0,0.001650), Elem(76,1,0.001980), Elem(76,2,0.002475), Elem(76,3,0.003300), Elem(76,4,0.004950), Elem(76,5,0.009900), Elem(76,6,0.990000), Elem(76,7,0.009900), +            Elem(76,8,0.004950), Elem(79,0,0.001439), Elem(79,1,0.001683), Elem(79,2,0.002030), Elem(79,3,0.002575), Elem(79,4,0.013300), Elem(79,5,0.005050), Elem(79,6,0.009950), +            Elem(79,7,0.990033), Elem(79,8,0.009925), Elem(84,0,0.001237), Elem(84,1,0.001414), Elem(84,2,0.001650), Elem(84,3,0.001980), Elem(84,4,0.002475), Elem(84,5,0.003300), +            Elem(84,6,0.004950), Elem(84,7,0.009900), Elem(84,8,0.990000), }, +      { Elem(1,0,0.000150), Elem(1,1,0.000299), Elem(1,2,0.029925), Elem(1,3,0.000299), Elem(1,4,0.000150), Elem(1,5,0.000100), Elem(1,6,0.000075), Elem(1,7,0.000060), +            Elem(1,8,0.000050), Elem(8,0,0.000200), Elem(8,1,0.020000), Elem(8,2,0.000200), Elem(8,3,0.000100), Elem(8,4,0.000067), Elem(8,5,0.000050), Elem(8,6,0.000040), +            Elem(8,7,0.000033), Elem(8,8,0.000029), Elem(13,0,0.000067), Elem(13,1,0.000100), Elem(13,2,0.000200), Elem(13,3,0.020000), Elem(13,4,0.000200), Elem(13,5,0.000100), +            Elem(13,6,0.000067), Elem(13,7,0.000050), Elem(13,8,0.000040), Elem(20,0,0.000050), Elem(20,1,0.000067), Elem(20,2,0.000100), Elem(20,3,0.000200), Elem(20,4,0.020000), +            Elem(20,5,0.000200), Elem(20,6,0.000100), Elem(20,7,0.000067), Elem(20,8,0.000050), Elem(25,0,0.000040), Elem(25,1,0.000050), Elem(25,2,0.000067), Elem(25,3,0.000100), +            Elem(25,4,0.000200), Elem(25,5,0.020000), Elem(25,6,0.000200), Elem(25,7,0.000100), Elem(25,8,0.000067), Elem(29,0,0.000017), Elem(29,1,0.000020), Elem(29,2,0.000025), +            Elem(29,3,0.000033), Elem(29,4,0.000050), Elem(29,5,0.000100), Elem(29,6,0.010000), Elem(29,7,0.000100), Elem(29,8,0.000050), Elem(32,0,0.000029), Elem(32,1,0.000033), +            Elem(32,2,0.000040), Elem(32,3,0.000050), Elem(32,4,0.000067), Elem(32,5,0.000100), Elem(32,6,0.000200), Elem(32,7,0.020000), Elem(32,8,0.000200), Elem(37,0,1.481273), +            Elem(37,1,0.014813), Elem(37,2,0.007406), Elem(37,3,0.004938), Elem(37,4,0.003703), Elem(37,5,0.002963), Elem(37,6,0.002469), Elem(37,7,0.002116), Elem(37,8,0.001852), +            Elem(42,0,0.000025), Elem(42,1,0.000029), Elem(42,2,0.000033), Elem(42,3,0.000040), Elem(42,4,0.000050), Elem(42,5,0.000067), Elem(42,6,0.000100), Elem(42,7,0.000200), +            Elem(42,8,0.020000), Elem(44,0,0.000100), Elem(44,1,0.010000), Elem(44,2,0.000100), Elem(44,3,0.000050), Elem(44,4,0.000033), Elem(44,5,0.000025), Elem(44,6,0.000020), +            Elem(44,7,0.000017), Elem(49,0,0.007419), Elem(49,1,0.014827), Elem(49,2,1.481290), Elem(49,3,0.014833), Elem(49,4,0.007431), Elem(49,5,0.004971), Elem(49,6,0.003753), +            Elem(49,7,0.003063), Elem(49,8,0.012469), Elem(56,0,0.009900), Elem(56,1,0.990000), Elem(56,2,0.009900), Elem(56,3,0.004950), Elem(56,4,0.003300), Elem(56,5,0.002475), +            Elem(56,6,0.001980), Elem(56,7,0.001650), Elem(56,8,0.001414), Elem(61,0,0.003320), Elem(61,1,0.004975), Elem(61,2,0.009933), Elem(61,3,0.990050), Elem(61,4,0.010000), +            Elem(61,5,0.014950), Elem(61,6,0.003400), Elem(61,7,0.002525), Elem(61,8,0.002013), Elem(68,0,0.002489), Elem(68,1,0.003317), Elem(68,2,0.004970), Elem(68,3,0.009925), +            Elem(68,4,0.990033), Elem(68,5,0.009950), Elem(68,6,0.005050), Elem(68,7,0.013300), Elem(68,8,0.002575), Elem(73,0,0.002013), Elem(73,1,0.002525), Elem(73,2,0.003400), +            Elem(73,3,0.014950), Elem(73,4,0.010000), Elem(73,5,0.990050), Elem(73,6,0.009933), Elem(73,7,0.004975), Elem(73,8,0.003320), Elem(77,0,0.001650), Elem(77,1,0.001980), +            Elem(77,2,0.002475), Elem(77,3,0.003300), Elem(77,4,0.004950), Elem(77,5,0.009900), Elem(77,6,0.990000), Elem(77,7,0.009900), Elem(77,8,0.004950), Elem(80,0,0.001439), +            Elem(80,1,0.001683), Elem(80,2,0.002030), Elem(80,3,0.002575), Elem(80,4,0.013300), Elem(80,5,0.005050), Elem(80,6,0.009950), Elem(80,7,0.990033), Elem(80,8,0.009925), +            Elem(85,0,0.001312), Elem(85,1,0.001564), Elem(85,2,0.016612), Elem(85,3,0.002130), Elem(85,4,0.002550), Elem(85,5,0.003350), Elem(85,6,0.004987), Elem(85,7,0.009930), +            Elem(85,8,0.990025), }, +      { Elem(2,0,0.000150), Elem(2,1,0.000299), Elem(2,2,0.029925), Elem(2,3,0.000299), Elem(2,4,0.000150), Elem(2,5,0.000100), Elem(2,6,0.000075), Elem(2,7,0.000060), +            Elem(2,8,0.000050), Elem(9,0,0.000299), Elem(9,1,0.029925), Elem(9,2,0.000299), Elem(9,3,0.000150), Elem(9,4,0.000100), Elem(9,5,0.000075), Elem(9,6,0.000060), +            Elem(9,7,0.000050), Elem(9,8,0.000043), Elem(14,0,0.000067), Elem(14,1,0.000100), Elem(14,2,0.000200), Elem(14,3,0.020000), Elem(14,4,0.000200), Elem(14,5,0.000100), +            Elem(14,6,0.000067), Elem(14,7,0.000050), Elem(14,8,0.000040), Elem(21,0,0.000050), Elem(21,1,0.000067), Elem(21,2,0.000100), Elem(21,3,0.000200), Elem(21,4,0.020000), +            Elem(21,5,0.000200), Elem(21,6,0.000100), Elem(21,7,0.000067), Elem(21,8,0.000050), Elem(26,0,0.015002), Elem(26,1,0.000200), Elem(26,2,0.000141), Elem(26,3,0.000150), +            Elem(26,4,0.000237), Elem(26,5,0.020030), Elem(26,6,0.000225), Elem(26,7,0.000121), Elem(26,8,0.000085), Elem(30,0,0.000033), Elem(30,1,0.000040), Elem(30,2,0.000050), +            Elem(30,3,0.000067), Elem(30,4,0.000100), Elem(30,5,0.000200), Elem(30,6,0.020000), Elem(30,7,0.000200), Elem(30,8,0.000100), Elem(31,2,0.000017), Elem(31,3,0.000020), +            Elem(31,4,0.000025), Elem(31,5,0.000033), Elem(31,6,0.000050), Elem(31,7,0.000100), Elem(31,8,0.010000), Elem(33,0,0.000029), Elem(33,1,0.000033), Elem(33,2,0.000040), +            Elem(33,3,0.000050), Elem(33,4,0.000067), Elem(33,5,0.000100), Elem(33,6,0.000200), Elem(33,7,0.020000), Elem(33,8,0.000200), Elem(38,0,1.481273), Elem(38,1,0.014813), +            Elem(38,2,0.007406), Elem(38,3,0.004938), Elem(38,4,0.003703), Elem(38,5,0.002963), Elem(38,6,0.002469), Elem(38,7,0.002116), Elem(38,8,0.001852), Elem(43,2,0.000017), +            Elem(43,3,0.000020), Elem(43,4,0.000025), Elem(43,5,0.000033), Elem(43,6,0.000050), Elem(43,7,0.000100), Elem(43,8,0.010000), Elem(45,0,0.015112), Elem(45,1,0.015112), +            Elem(45,2,0.000224), Elem(45,3,0.000125), Elem(45,4,0.000087), Elem(45,5,0.000067), Elem(45,6,0.000055), Elem(45,7,0.000046), Elem(45,8,0.000040), Elem(50,0,0.007419), +            Elem(50,1,0.014827), Elem(50,2,1.481290), Elem(50,3,0.014833), Elem(50,4,0.007431), Elem(50,5,0.004971), Elem(50,6,0.003753), Elem(50,7,0.003063), Elem(50,8,0.012469), +            Elem(57,0,0.014813), Elem(57,1,1.481273), Elem(57,2,0.014813), Elem(57,3,0.007406), Elem(57,4,0.004938), Elem(57,5,0.003703), Elem(57,6,0.002963), Elem(57,7,0.002469), +            Elem(57,8,0.002116), Elem(62,0,0.003320), Elem(62,1,0.004975), Elem(62,2,0.009933), Elem(62,3,0.990050), Elem(62,4,0.010000), Elem(62,5,0.014950), Elem(62,6,0.003400), +            Elem(62,7,0.002525), Elem(62,8,0.002013), Elem(66,0,0.000017), Elem(66,1,0.000020), Elem(66,2,0.000025), Elem(66,3,0.000033), Elem(66,4,0.000050), Elem(66,5,0.000100), +            Elem(66,6,0.010000), Elem(66,7,0.000100), Elem(66,8,0.000050), Elem(69,0,0.002489), Elem(69,1,0.003317), Elem(69,2,0.004970), Elem(69,3,0.009925), Elem(69,4,0.990033), +            Elem(69,5,0.009950), Elem(69,6,0.005050), Elem(69,7,0.013300), Elem(69,8,0.002575), Elem(74,0,0.002013), Elem(74,1,0.002525), Elem(74,2,0.003400), Elem(74,3,0.014950), +            Elem(74,4,0.010000), Elem(74,5,0.990050), Elem(74,6,0.009933), Elem(74,7,0.004975), Elem(74,8,0.003320), Elem(78,0,0.001650), Elem(78,1,0.001980), Elem(78,2,0.002475), +            Elem(78,3,0.003300), Elem(78,4,0.004950), Elem(78,5,0.009900), Elem(78,6,0.990000), Elem(78,7,0.009900), Elem(78,8,0.004950), Elem(81,0,0.001439), Elem(81,1,0.001683), +            Elem(81,2,0.002030), Elem(81,3,0.002575), Elem(81,4,0.013300), Elem(81,5,0.005050), Elem(81,6,0.009950), Elem(81,7,0.990033), Elem(81,8,0.009925), Elem(86,0,0.001312), +            Elem(86,1,0.001564), Elem(86,2,0.016612), Elem(86,3,0.002130), Elem(86,4,0.002550), Elem(86,5,0.003350), Elem(86,6,0.004987), Elem(86,7,0.009930), Elem(86,8,0.990025), +            }, +      { Elem(3,0,0.000150), Elem(3,1,0.000299), Elem(3,2,0.029925), Elem(3,3,0.000299), Elem(3,4,0.000150), Elem(3,5,0.000100), Elem(3,6,0.000075), Elem(3,7,0.000060), +            Elem(3,8,0.000050), Elem(10,0,0.000299), Elem(10,1,0.029925), Elem(10,2,0.000299), Elem(10,3,0.000150), Elem(10,4,0.000100), Elem(10,5,0.000075), Elem(10,6,0.000060), +            Elem(10,7,0.000050), Elem(10,8,0.000043), Elem(15,0,0.000045), Elem(15,1,0.000067), Elem(15,2,0.000134), Elem(15,3,0.013367), Elem(15,4,0.000134), Elem(15,5,0.000067), +            Elem(15,6,0.000045), Elem(15,7,0.000033), Elem(15,8,0.000027), Elem(22,0,0.000050), Elem(22,1,0.000067), Elem(22,2,0.000100), Elem(22,3,0.000200), Elem(22,4,0.020000), +            Elem(22,5,0.000200), Elem(22,6,0.000100), Elem(22,7,0.000067), Elem(22,8,0.000050), Elem(27,0,0.014982), Elem(27,1,0.000175), Elem(27,2,0.000108), Elem(27,3,0.000100), +            Elem(27,4,0.000137), Elem(27,5,0.010030), Elem(27,6,0.000125), Elem(27,7,0.000071), Elem(27,8,0.000052), Elem(29,0,0.000020), Elem(29,1,0.000025), Elem(29,2,0.000033), +            Elem(29,3,0.000050), Elem(29,4,0.000100), Elem(29,5,0.010000), Elem(29,6,0.000100), Elem(29,7,0.000050), Elem(29,8,0.000033), Elem(31,0,0.000033), Elem(31,1,0.000040), +            Elem(31,2,0.000050), Elem(31,3,0.000067), Elem(31,4,0.000100), Elem(31,5,0.000200), Elem(31,6,0.020000), Elem(31,7,0.000200), Elem(31,8,0.000100), Elem(32,2,0.000017), +            Elem(32,3,0.000020), Elem(32,4,0.000025), Elem(32,5,0.000033), Elem(32,6,0.000050), Elem(32,7,0.000100), Elem(32,8,0.010000), Elem(34,0,0.000029), Elem(34,1,0.000033), +            Elem(34,2,0.000040), Elem(34,3,0.000050), Elem(34,4,0.000067), Elem(34,5,0.000100), Elem(34,6,0.000200), Elem(34,7,0.020000), Elem(34,8,0.000200), Elem(39,0,1.481273), +            Elem(39,1,0.014813), Elem(39,2,0.007406), Elem(39,3,0.004938), Elem(39,4,0.003703), Elem(39,5,0.002963), Elem(39,6,0.002469), Elem(39,7,0.002116), Elem(39,8,0.001852), +            Elem(44,2,0.000017), Elem(44,3,0.000020), Elem(44,4,0.000025), Elem(44,5,0.000033), Elem(44,6,0.000050), Elem(44,7,0.000100), Elem(44,8,0.010000), Elem(46,0,0.015112), +            Elem(46,1,0.015112), Elem(46,2,0.000224), Elem(46,3,0.000125), Elem(46,4,0.000087), Elem(46,5,0.000067), Elem(46,6,0.000055), Elem(46,7,0.000046), Elem(46,8,0.000040), +            Elem(51,0,0.007419), Elem(51,1,0.014827), Elem(51,2,1.481290), Elem(51,3,0.014833), Elem(51,4,0.007431), Elem(51,5,0.004971), Elem(51,6,0.003753), Elem(51,7,0.003063), +            Elem(51,8,0.012469), Elem(58,0,0.014813), Elem(58,1,1.481273), Elem(58,2,0.014813), Elem(58,3,0.007406), Elem(58,4,0.004938), Elem(58,5,0.003703), Elem(58,6,0.002963), +            Elem(58,7,0.002469), Elem(58,8,0.002116), Elem(63,0,0.002206), Elem(63,1,0.003308), Elem(63,2,0.006617), Elem(63,3,0.661660), Elem(63,4,0.006617), Elem(63,5,0.003308), +            Elem(63,6,0.002206), Elem(63,7,0.001654), Elem(63,8,0.001323), Elem(65,0,0.000020), Elem(65,1,0.000025), Elem(65,2,0.000033), Elem(65,3,0.000050), Elem(65,4,0.000100), +            Elem(65,5,0.010000), Elem(65,6,0.000100), Elem(65,7,0.000050), Elem(65,8,0.000033), Elem(67,0,0.000017), Elem(67,1,0.000020), Elem(67,2,0.000025), Elem(67,3,0.000033), +            Elem(67,4,0.000050), Elem(67,5,0.000100), Elem(67,6,0.010000), Elem(67,7,0.000100), Elem(67,8,0.000050), Elem(70,0,0.002489), Elem(70,1,0.003317), Elem(70,2,0.004970), +            Elem(70,3,0.009925), Elem(70,4,0.990033), Elem(70,5,0.009950), Elem(70,6,0.005050), Elem(70,7,0.013300), Elem(70,8,0.002575), Elem(75,0,0.002002), Elem(75,1,0.002508), +            Elem(75,2,0.003367), Elem(75,3,0.011633), Elem(75,4,0.009967), Elem(75,5,0.990033), Elem(75,6,0.009922), Elem(75,7,0.004967), Elem(75,8,0.003313), Elem(79,0,0.001650), +            Elem(79,1,0.001980), Elem(79,2,0.002475), Elem(79,3,0.003300), Elem(79,4,0.004950), Elem(79,5,0.009900), Elem(79,6,0.990000), Elem(79,7,0.009900), Elem(79,8,0.004950), +            Elem(82,0,0.001439), Elem(82,1,0.001683), Elem(82,2,0.002030), Elem(82,3,0.002575), Elem(82,4,0.013300), Elem(82,5,0.005050), Elem(82,6,0.009950), Elem(82,7,0.990033), +            Elem(82,8,0.009925), Elem(87,0,0.001312), Elem(87,1,0.001564), Elem(87,2,0.016612), Elem(87,3,0.002130), Elem(87,4,0.002550), Elem(87,5,0.003350), Elem(87,6,0.004987), +            Elem(87,7,0.009930), Elem(87,8,0.990025), }, +      { Elem(4,0,0.000150), Elem(4,1,0.000299), Elem(4,2,0.029925), Elem(4,3,0.000299), Elem(4,4,0.000150), Elem(4,5,0.000100), Elem(4,6,0.000075), Elem(4,7,0.000060), +            Elem(4,8,0.000050), Elem(11,0,0.000299), Elem(11,1,0.029925), Elem(11,2,0.000299), Elem(11,3,0.000150), Elem(11,4,0.000100), Elem(11,5,0.000075), Elem(11,6,0.000060), +            Elem(11,7,0.000050), Elem(11,8,0.000043), Elem(16,0,0.000045), Elem(16,1,0.000067), Elem(16,2,0.000134), Elem(16,3,0.013367), Elem(16,4,0.000134), Elem(16,5,0.000067), +            Elem(16,6,0.000045), Elem(16,7,0.000033), Elem(16,8,0.000027), Elem(23,0,0.000033), Elem(23,1,0.000045), Elem(23,2,0.000067), Elem(23,3,0.000134), Elem(23,4,0.013367), +            Elem(23,5,0.000134), Elem(23,6,0.000067), Elem(23,7,0.000045), Elem(23,8,0.000033), Elem(28,0,0.015002), Elem(28,1,0.000200), Elem(28,2,0.000141), Elem(28,3,0.000150), +            Elem(28,4,0.000237), Elem(28,5,0.020030), Elem(28,6,0.000225), Elem(28,7,0.000121), Elem(28,8,0.000085), Elem(32,0,0.000033), Elem(32,1,0.000040), Elem(32,2,0.000050), +            Elem(32,3,0.000067), Elem(32,4,0.000100), Elem(32,5,0.000200), Elem(32,6,0.020000), Elem(32,7,0.000200), Elem(32,8,0.000100), Elem(33,2,0.000017), Elem(33,3,0.000020), +            Elem(33,4,0.000025), Elem(33,5,0.000033), Elem(33,6,0.000050), Elem(33,7,0.000100), Elem(33,8,0.010000), Elem(35,0,0.000029), Elem(35,1,0.000033), Elem(35,2,0.000040), +            Elem(35,3,0.000050), Elem(35,4,0.000067), Elem(35,5,0.000100), Elem(35,6,0.000200), Elem(35,7,0.020000), Elem(35,8,0.000200), Elem(40,0,1.481273), Elem(40,1,0.014813), +            Elem(40,2,0.007406), Elem(40,3,0.004938), Elem(40,4,0.003703), Elem(40,5,0.002963), Elem(40,6,0.002469), Elem(40,7,0.002116), Elem(40,8,0.001852), Elem(45,2,0.000017), +            Elem(45,3,0.000020), Elem(45,4,0.000025), Elem(45,5,0.000033), Elem(45,6,0.000050), Elem(45,7,0.000100), Elem(45,8,0.010000), Elem(47,0,0.015112), Elem(47,1,0.015112), +            Elem(47,2,0.000224), Elem(47,3,0.000125), Elem(47,4,0.000087), Elem(47,5,0.000067), Elem(47,6,0.000055), Elem(47,7,0.000046), Elem(47,8,0.000040), Elem(52,0,0.007419), +            Elem(52,1,0.014827), Elem(52,2,1.481290), Elem(52,3,0.014833), Elem(52,4,0.007431), Elem(52,5,0.004971), Elem(52,6,0.003753), Elem(52,7,0.003063), Elem(52,8,0.012469), +            Elem(59,0,0.014813), Elem(59,1,1.481273), Elem(59,2,0.014813), Elem(59,3,0.007406), Elem(59,4,0.004938), Elem(59,5,0.003703), Elem(59,6,0.002963), Elem(59,7,0.002469), +            Elem(59,8,0.002116), Elem(64,0,0.002226), Elem(64,1,0.003333), Elem(64,2,0.006650), Elem(64,3,0.661711), Elem(64,4,0.006717), Elem(64,5,0.013308), Elem(64,6,0.002306), +            Elem(64,7,0.001704), Elem(64,8,0.001357), Elem(68,0,0.000017), Elem(68,1,0.000020), Elem(68,2,0.000025), Elem(68,3,0.000033), Elem(68,4,0.000050), Elem(68,5,0.000100), +            Elem(68,6,0.010000), Elem(68,7,0.000100), Elem(68,8,0.000050), Elem(71,0,0.001668), Elem(71,1,0.002222), Elem(71,2,0.003328), Elem(71,3,0.006642), Elem(71,4,0.661694), +            Elem(71,5,0.006667), Elem(71,6,0.003408), Elem(71,7,0.012206), Elem(71,8,0.001754), Elem(76,0,0.002002), Elem(76,1,0.002508), Elem(76,2,0.003367), Elem(76,3,0.011633), +            Elem(76,4,0.009967), Elem(76,5,0.990033), Elem(76,6,0.009922), Elem(76,7,0.004967), Elem(76,8,0.003313), Elem(80,0,0.001650), Elem(80,1,0.001980), Elem(80,2,0.002475), +            Elem(80,3,0.003300), Elem(80,4,0.004950), Elem(80,5,0.009900), Elem(80,6,0.990000), Elem(80,7,0.009900), Elem(80,8,0.004950), Elem(83,0,0.001431), Elem(83,1,0.001672), +            Elem(83,2,0.002013), Elem(83,3,0.002542), Elem(83,4,0.009983), Elem(83,5,0.005017), Elem(83,6,0.009933), Elem(83,7,0.990022), Elem(83,8,0.009917), Elem(88,0,0.001312), +            Elem(88,1,0.001564), Elem(88,2,0.016612), Elem(88,3,0.002130), Elem(88,4,0.002550), Elem(88,5,0.003350), Elem(88,6,0.004987), Elem(88,7,0.009930), Elem(88,8,0.990025), +            }, +      { Elem(5,0,0.000150), Elem(5,1,0.000299), Elem(5,2,0.029925), Elem(5,3,0.000299), Elem(5,4,0.000150), Elem(5,5,0.000100), Elem(5,6,0.000075), Elem(5,7,0.000060), +            Elem(5,8,0.000050), Elem(12,0,0.000299), Elem(12,1,0.029925), Elem(12,2,0.000299), Elem(12,3,0.000150), Elem(12,4,0.000100), Elem(12,5,0.000075), Elem(12,6,0.000060), +            Elem(12,7,0.000050), Elem(12,8,0.000043), Elem(17,0,0.000045), Elem(17,1,0.000067), Elem(17,2,0.000134), Elem(17,3,0.013367), Elem(17,4,0.000134), Elem(17,5,0.000067), +            Elem(17,6,0.000045), Elem(17,7,0.000033), Elem(17,8,0.000027), Elem(24,0,0.000033), Elem(24,1,0.000045), Elem(24,2,0.000067), Elem(24,3,0.000134), Elem(24,4,0.013367), +            Elem(24,5,0.000134), Elem(24,6,0.000067), Elem(24,7,0.000045), Elem(24,8,0.000033), Elem(29,0,0.014976), Elem(29,1,0.000166), Elem(29,2,0.000097), Elem(29,3,0.000083), +            Elem(29,4,0.000104), Elem(29,5,0.006713), Elem(29,6,0.000092), Elem(29,7,0.000055), Elem(29,8,0.000041), Elem(33,0,0.000033), Elem(33,1,0.000040), Elem(33,2,0.000050), +            Elem(33,3,0.000067), Elem(33,4,0.000100), Elem(33,5,0.000200), Elem(33,6,0.020000), Elem(33,7,0.000200), Elem(33,8,0.000100), Elem(34,2,0.000017), Elem(34,3,0.000020), +            Elem(34,4,0.000025), Elem(34,5,0.000033), Elem(34,6,0.000050), Elem(34,7,0.000100), Elem(34,8,0.010000), Elem(41,0,1.481302), Elem(41,1,0.014846), Elem(41,2,0.007446), +            Elem(41,3,0.004988), Elem(41,4,0.003770), Elem(41,5,0.003063), Elem(41,6,0.002669), Elem(41,7,0.022116), Elem(41,8,0.002052), Elem(46,2,0.000017), Elem(46,3,0.000020), +            Elem(46,4,0.000025), Elem(46,5,0.000033), Elem(46,6,0.000050), Elem(46,7,0.000100), Elem(46,8,0.010000), Elem(53,0,0.007419), Elem(53,1,0.014827), Elem(53,2,1.481290), +            Elem(53,3,0.014833), Elem(53,4,0.007431), Elem(53,5,0.004971), Elem(53,6,0.003753), Elem(53,7,0.003063), Elem(53,8,0.012469), Elem(60,0,0.014829), Elem(60,1,1.481296), +            Elem(60,2,0.014846), Elem(60,3,0.007473), Elem(60,4,0.011621), Elem(60,5,0.003770), Elem(60,6,0.002996), Elem(60,7,0.002491), Elem(60,8,0.002133), Elem(65,0,0.002206), +            Elem(65,1,0.003308), Elem(65,2,0.006617), Elem(65,3,0.661660), Elem(65,4,0.006617), Elem(65,5,0.003308), Elem(65,6,0.002206), Elem(65,7,0.001654), Elem(65,8,0.001323), +            Elem(69,0,0.000017), Elem(69,1,0.000020), Elem(69,2,0.000025), Elem(69,3,0.000033), Elem(69,4,0.000050), Elem(69,5,0.000100), Elem(69,6,0.010000), Elem(69,7,0.000100), +            Elem(69,8,0.000050), Elem(72,0,0.001804), Elem(72,1,0.017168), Elem(72,2,0.003458), Elem(72,3,0.006691), Elem(72,4,0.661710), Elem(72,5,0.006654), Elem(72,6,0.003338), +            Elem(72,7,0.002230), Elem(72,8,0.001676), Elem(75,0,0.000022), Elem(75,1,0.000033), Elem(75,2,0.000067), Elem(75,3,0.006683), Elem(75,4,0.000067), Elem(75,5,0.000033), +            Elem(75,6,0.000022), Elem(75,7,0.000017), Elem(77,0,0.001323), Elem(77,1,0.001654), Elem(77,2,0.002206), Elem(77,3,0.003308), Elem(77,4,0.006617), Elem(77,5,0.661660), +            Elem(77,6,0.006617), Elem(77,7,0.003308), Elem(77,8,0.002206), Elem(81,0,0.001650), Elem(81,1,0.001980), Elem(81,2,0.002475), Elem(81,3,0.003300), Elem(81,4,0.004950), +            Elem(81,5,0.009900), Elem(81,6,0.990000), Elem(81,7,0.009900), Elem(81,8,0.004950), Elem(84,0,0.031339), Elem(84,1,0.001949), Elem(84,2,0.002130), Elem(84,3,0.002575), +            Elem(84,4,0.003375), Elem(84,5,0.005010), Elem(84,6,0.009950), Elem(84,7,0.990043), Elem(84,8,0.009937), Elem(89,0,0.001312), Elem(89,1,0.001564), Elem(89,2,0.016612), +            Elem(89,3,0.002130), Elem(89,4,0.002550), Elem(89,5,0.003350), Elem(89,6,0.004987), Elem(89,7,0.009930), Elem(89,8,0.990025), }, +      { Elem(6,0,0.000150), Elem(6,1,0.000299), Elem(6,2,0.029925), Elem(6,3,0.000299), Elem(6,4,0.000150), Elem(6,5,0.000100), Elem(6,6,0.000075), Elem(6,7,0.000060), +            Elem(6,8,0.000050), Elem(13,0,0.000299), Elem(13,1,0.029925), Elem(13,2,0.000299), Elem(13,3,0.000150), Elem(13,4,0.000100), Elem(13,5,0.000075), Elem(13,6,0.000060), +            Elem(13,7,0.000050), Elem(13,8,0.000043), Elem(18,0,0.000045), Elem(18,1,0.000067), Elem(18,2,0.000134), Elem(18,3,0.013367), Elem(18,4,0.000134), Elem(18,5,0.000067), +            Elem(18,6,0.000045), Elem(18,7,0.000033), Elem(18,8,0.000027), Elem(25,0,0.000033), Elem(25,1,0.000045), Elem(25,2,0.000067), Elem(25,3,0.000134), Elem(25,4,0.013367), +            Elem(25,5,0.000134), Elem(25,6,0.000067), Elem(25,7,0.000045), Elem(25,8,0.000033), Elem(30,0,0.014989), Elem(30,1,0.000183), Elem(30,2,0.000119), Elem(30,3,0.000117), +            Elem(30,4,0.000171), Elem(30,5,0.013397), Elem(30,6,0.000159), Elem(30,7,0.000088), Elem(30,8,0.000063), Elem(34,0,0.000022), Elem(34,1,0.000027), Elem(34,2,0.000033), +            Elem(34,3,0.000045), Elem(34,4,0.000067), Elem(34,5,0.000134), Elem(34,6,0.013367), Elem(34,7,0.000134), Elem(34,8,0.000067), Elem(35,2,0.000017), Elem(35,3,0.000020), +            Elem(35,4,0.000025), Elem(35,5,0.000033), Elem(35,6,0.000050), Elem(35,7,0.000100), Elem(35,8,0.010000), Elem(42,0,1.481302), Elem(42,1,0.014846), Elem(42,2,0.007446), +            Elem(42,3,0.004988), Elem(42,4,0.003770), Elem(42,5,0.003063), Elem(42,6,0.002669), Elem(42,7,0.022116), Elem(42,8,0.002052), Elem(47,2,0.000017), Elem(47,3,0.000020), +            Elem(47,4,0.000025), Elem(47,5,0.000033), Elem(47,6,0.000050), Elem(47,7,0.000100), Elem(47,8,0.010000), Elem(49,1,0.000017), Elem(49,2,0.000020), Elem(49,3,0.000025), +            Elem(49,4,0.000033), Elem(49,5,0.000050), Elem(49,6,0.000100), Elem(49,7,0.010000), Elem(49,8,0.000100), Elem(54,0,0.007419), Elem(54,1,0.014827), Elem(54,2,1.481290), +            Elem(54,3,0.014833), Elem(54,4,0.007431), Elem(54,5,0.004971), Elem(54,6,0.003753), Elem(54,7,0.003063), Elem(54,8,0.012469), Elem(61,0,0.014829), Elem(61,1,1.481296), +            Elem(61,2,0.014846), Elem(61,3,0.007473), Elem(61,4,0.011621), Elem(61,5,0.003770), Elem(61,6,0.002996), Elem(61,7,0.002491), Elem(61,8,0.002133), Elem(66,0,0.002219), +            Elem(66,1,0.003325), Elem(66,2,0.006639), Elem(66,3,0.661694), Elem(66,4,0.006683), Elem(66,5,0.009992), Elem(66,6,0.002272), Elem(66,7,0.001688), Elem(66,8,0.001346), +            Elem(70,2,0.000017), Elem(70,3,0.000022), Elem(70,4,0.000033), Elem(70,5,0.000067), Elem(70,6,0.006683), Elem(70,7,0.000067), Elem(70,8,0.000033), Elem(73,0,0.001804), +            Elem(73,1,0.017168), Elem(73,2,0.003458), Elem(73,3,0.006691), Elem(73,4,0.661710), Elem(73,5,0.006654), Elem(73,6,0.003338), Elem(73,7,0.002230), Elem(73,8,0.001676), +            Elem(78,0,0.001346), Elem(78,1,0.001688), Elem(78,2,0.002272), Elem(78,3,0.009992), Elem(78,4,0.006683), Elem(78,5,0.661694), Elem(78,6,0.006639), Elem(78,7,0.003325), +            Elem(78,8,0.002219), Elem(82,0,0.001103), Elem(82,1,0.001323), Elem(82,2,0.001654), Elem(82,3,0.002206), Elem(82,4,0.003308), Elem(82,5,0.006617), Elem(82,6,0.661660), +            Elem(82,7,0.006617), Elem(82,8,0.003308), Elem(85,0,0.031339), Elem(85,1,0.001949), Elem(85,2,0.002130), Elem(85,3,0.002575), Elem(85,4,0.003375), Elem(85,5,0.005010), +            Elem(85,6,0.009950), Elem(85,7,0.990043), Elem(85,8,0.009937), Elem(90,0,0.001312), Elem(90,1,0.001564), Elem(90,2,0.016612), Elem(90,3,0.002130), Elem(90,4,0.002550), +            Elem(90,5,0.003350), Elem(90,6,0.004987), Elem(90,7,0.009930), Elem(90,8,0.990025), }, +      { Elem(7,0,0.000150), Elem(7,1,0.000299), Elem(7,2,0.029925), Elem(7,3,0.000299), Elem(7,4,0.000150), Elem(7,5,0.000100), Elem(7,6,0.000075), Elem(7,7,0.000060), +            Elem(7,8,0.000050), Elem(14,0,0.000299), Elem(14,1,0.029925), Elem(14,2,0.000299), Elem(14,3,0.000150), Elem(14,4,0.000100), Elem(14,5,0.000075), Elem(14,6,0.000060), +            Elem(14,7,0.000050), Elem(14,8,0.000043), Elem(19,0,0.000045), Elem(19,1,0.000067), Elem(19,2,0.000134), Elem(19,3,0.013367), Elem(19,4,0.000134), Elem(19,5,0.000067), +            Elem(19,6,0.000045), Elem(19,7,0.000033), Elem(19,8,0.000027), Elem(26,0,0.000033), Elem(26,1,0.000045), Elem(26,2,0.000067), Elem(26,3,0.000134), Elem(26,4,0.013367), +            Elem(26,5,0.000134), Elem(26,6,0.000067), Elem(26,7,0.000045), Elem(26,8,0.000033), Elem(31,0,0.000047), Elem(31,1,0.000057), Elem(31,2,0.000073), Elem(31,3,0.000101), +            Elem(31,4,0.000178), Elem(31,5,0.013430), Elem(31,6,0.000245), Elem(31,7,0.006840), Elem(31,8,0.009045), Elem(35,0,0.000022), Elem(35,1,0.000027), Elem(35,2,0.000033), +            Elem(35,3,0.000045), Elem(35,4,0.000067), Elem(35,5,0.000134), Elem(35,6,0.013367), Elem(35,7,0.000134), Elem(35,8,0.000067), Elem(36,0,0.014962), Elem(36,1,0.000150), +            Elem(36,2,0.000075), Elem(36,3,0.000050), Elem(36,4,0.000037), Elem(36,5,0.000030), Elem(36,6,0.000025), Elem(36,7,0.000021), Elem(36,8,0.000019), Elem(43,0,1.481358), +            Elem(43,1,0.014973), Elem(43,2,0.022382), Elem(43,3,0.005104), Elem(43,4,0.003800), Elem(43,5,0.003046), Elem(43,6,0.002573), Elem(43,7,0.008829), Elem(43,8,0.001943), +            Elem(50,3,0.000017), Elem(50,4,0.000022), Elem(50,5,0.000033), Elem(50,6,0.000067), Elem(50,7,0.006683), Elem(50,8,0.000067), Elem(55,0,0.022369), Elem(55,1,0.014962), +            Elem(55,2,1.481348), Elem(55,3,0.014863), Elem(55,4,0.007444), Elem(55,5,0.004968), Elem(55,6,0.003728), Elem(55,7,0.002984), Elem(55,8,0.002487), Elem(62,0,0.014829), +            Elem(62,1,1.481296), Elem(62,2,0.014846), Elem(62,3,0.007473), Elem(62,4,0.011621), Elem(62,5,0.003770), Elem(62,6,0.002996), Elem(62,7,0.002491), Elem(62,8,0.002133), +            Elem(67,0,0.002224), Elem(67,1,0.003331), Elem(67,2,0.006646), Elem(67,3,0.661703), Elem(67,4,0.006695), Elem(67,5,0.010007), Elem(67,6,0.002295), Elem(67,7,0.001732), +            Elem(67,8,0.005812), Elem(71,2,0.000017), Elem(71,3,0.000022), Elem(71,4,0.000033), Elem(71,5,0.000067), Elem(71,6,0.006683), Elem(71,7,0.000067), Elem(71,8,0.000033), +            Elem(74,0,0.001804), Elem(74,1,0.017168), Elem(74,2,0.003458), Elem(74,3,0.006691), Elem(74,4,0.661710), Elem(74,5,0.006654), Elem(74,6,0.003338), Elem(74,7,0.002230), +            Elem(74,8,0.001676), Elem(79,0,0.001898), Elem(79,1,0.002319), Elem(79,2,0.003009), Elem(79,3,0.010876), Elem(79,4,0.007789), Elem(79,5,0.663168), Elem(79,6,0.008850), +            Elem(79,7,0.007747), Elem(79,8,0.444436), Elem(83,0,0.001103), Elem(83,1,0.001323), Elem(83,2,0.001654), Elem(83,3,0.002206), Elem(83,4,0.003308), Elem(83,5,0.006617), +            Elem(83,6,0.661660), Elem(83,7,0.006617), Elem(83,8,0.003308), Elem(86,0,0.015908), Elem(86,1,0.001252), Elem(86,2,0.001398), Elem(86,3,0.001704), Elem(86,4,0.002243), +            Elem(86,5,0.003338), Elem(86,6,0.006642), Elem(86,7,0.661682), Elem(86,8,0.006635), }, +      { Elem(8,0,0.000150), Elem(8,1,0.000299), Elem(8,2,0.029925), Elem(8,3,0.000299), Elem(8,4,0.000150), Elem(8,5,0.000100), Elem(8,6,0.000075), Elem(8,7,0.000060), +            Elem(8,8,0.000050), Elem(15,0,0.000299), Elem(15,1,0.029925), Elem(15,2,0.000299), Elem(15,3,0.000150), Elem(15,4,0.000100), Elem(15,5,0.000075), Elem(15,6,0.000060), +            Elem(15,7,0.000050), Elem(15,8,0.000043), Elem(20,0,0.000045), Elem(20,1,0.000067), Elem(20,2,0.000134), Elem(20,3,0.013367), Elem(20,4,0.000134), Elem(20,5,0.000067), +            Elem(20,6,0.000045), Elem(20,7,0.000033), Elem(20,8,0.000027), Elem(27,0,0.000017), Elem(27,1,0.000022), Elem(27,2,0.000033), Elem(27,3,0.000067), Elem(27,4,0.006683), +            Elem(27,5,0.000067), Elem(27,6,0.000033), Elem(27,7,0.000022), Elem(27,8,0.000017), Elem(29,0,0.000017), Elem(29,1,0.000022), Elem(29,2,0.000033), Elem(29,3,0.000067), +            Elem(29,4,0.006683), Elem(29,5,0.000067), Elem(29,6,0.000033), Elem(29,7,0.000022), Elem(29,8,0.000017), Elem(32,0,0.000047), Elem(32,1,0.000057), Elem(32,2,0.000073), +            Elem(32,3,0.000101), Elem(32,4,0.000178), Elem(32,5,0.013430), Elem(32,6,0.000245), Elem(32,7,0.006840), Elem(32,8,0.009045), Elem(33,0,0.014962), Elem(33,1,0.000150), +            Elem(33,2,0.000075), Elem(33,3,0.000050), Elem(33,4,0.000037), Elem(33,5,0.000030), Elem(33,6,0.000025), Elem(33,7,0.000021), Elem(33,8,0.000019), Elem(41,0,0.000022), +            Elem(41,1,0.000027), Elem(41,2,0.000033), Elem(41,3,0.000045), Elem(41,4,0.000067), Elem(41,5,0.000134), Elem(41,6,0.013367), Elem(41,7,0.000134), Elem(41,8,0.000067), +            Elem(44,0,1.481358), Elem(44,1,0.014973), Elem(44,2,0.022382), Elem(44,3,0.005104), Elem(44,4,0.003800), Elem(44,5,0.003046), Elem(44,6,0.002573), Elem(44,7,0.008829), +            Elem(44,8,0.001943), Elem(51,3,0.000017), Elem(51,4,0.000022), Elem(51,5,0.000033), Elem(51,6,0.000067), Elem(51,7,0.006683), Elem(51,8,0.000067), Elem(56,0,0.022369), +            Elem(56,1,0.014962), Elem(56,2,1.481348), Elem(56,3,0.014863), Elem(56,4,0.007444), Elem(56,5,0.004968), Elem(56,6,0.003728), Elem(56,7,0.002984), Elem(56,8,0.002487), +            Elem(63,0,0.014813), Elem(63,1,1.481273), Elem(63,2,0.014813), Elem(63,3,0.007406), Elem(63,4,0.004938), Elem(63,5,0.003703), Elem(63,6,0.002963), Elem(63,7,0.002469), +            Elem(63,8,0.002116), Elem(65,0,0.000017), Elem(65,1,0.000022), Elem(65,2,0.000033), Elem(65,3,0.000067), Elem(65,4,0.006683), Elem(65,5,0.000067), Elem(65,6,0.000033), +            Elem(65,7,0.000022), Elem(65,8,0.000017), Elem(68,0,0.002224), Elem(68,1,0.003331), Elem(68,2,0.006646), Elem(68,3,0.661703), Elem(68,4,0.006695), Elem(68,5,0.010007), +            Elem(68,6,0.002295), Elem(68,7,0.001732), Elem(68,8,0.005812), Elem(75,0,0.001804), Elem(75,1,0.017168), Elem(75,2,0.003458), Elem(75,3,0.006691), Elem(75,4,0.661710), +            Elem(75,5,0.006654), Elem(75,6,0.003338), Elem(75,7,0.002230), Elem(75,8,0.001676), Elem(80,0,0.001898), Elem(80,1,0.002319), Elem(80,2,0.003009), Elem(80,3,0.010876), +            Elem(80,4,0.007789), Elem(80,5,0.663168), Elem(80,6,0.008850), Elem(80,7,0.007747), Elem(80,8,0.444436), Elem(84,0,0.001103), Elem(84,1,0.001323), Elem(84,2,0.001654), +            Elem(84,3,0.002206), Elem(84,4,0.003308), Elem(84,5,0.006617), Elem(84,6,0.661660), Elem(84,7,0.006617), Elem(84,8,0.003308), Elem(87,0,0.015908), Elem(87,1,0.001252), +            Elem(87,2,0.001398), Elem(87,3,0.001704), Elem(87,4,0.002243), Elem(87,5,0.003338), Elem(87,6,0.006642), Elem(87,7,0.661682), Elem(87,8,0.006635), }, +      { Elem(9,0,0.000150), Elem(9,1,0.000299), Elem(9,2,0.029925), Elem(9,3,0.000299), Elem(9,4,0.000150), Elem(9,5,0.000100), Elem(9,6,0.000075), Elem(9,7,0.000060), +            Elem(9,8,0.000050), Elem(16,0,0.000299), Elem(16,1,0.029925), Elem(16,2,0.000299), Elem(16,3,0.000150), Elem(16,4,0.000100), Elem(16,5,0.000075), Elem(16,6,0.000060), +            Elem(16,7,0.000050), Elem(16,8,0.000043), Elem(21,0,0.000045), Elem(21,1,0.000067), Elem(21,2,0.000134), Elem(21,3,0.013367), Elem(21,4,0.000134), Elem(21,5,0.000067), +            Elem(21,6,0.000045), Elem(21,7,0.000033), Elem(21,8,0.000027), Elem(28,0,0.000033), Elem(28,1,0.000045), Elem(28,2,0.000067), Elem(28,3,0.000134), Elem(28,4,0.013367), +            Elem(28,5,0.000134), Elem(28,6,0.000067), Elem(28,7,0.000045), Elem(28,8,0.000033), Elem(33,0,0.000047), Elem(33,1,0.000057), Elem(33,2,0.000073), Elem(33,3,0.000101), +            Elem(33,4,0.000178), Elem(33,5,0.013430), Elem(33,6,0.000245), Elem(33,7,0.006840), Elem(33,8,0.009045), Elem(38,0,0.014962), Elem(38,1,0.000150), Elem(38,2,0.000075), +            Elem(38,3,0.000050), Elem(38,4,0.000037), Elem(38,5,0.000030), Elem(38,6,0.000025), Elem(38,7,0.000021), Elem(38,8,0.000019), Elem(42,0,0.000022), Elem(42,1,0.000027), +            Elem(42,2,0.000033), Elem(42,3,0.000045), Elem(42,4,0.000067), Elem(42,5,0.000134), Elem(42,6,0.013367), Elem(42,7,0.000134), Elem(42,8,0.000067), Elem(45,0,1.481358), +            Elem(45,1,0.014973), Elem(45,2,0.022382), Elem(45,3,0.005104), Elem(45,4,0.003800), Elem(45,5,0.003046), Elem(45,6,0.002573), Elem(45,7,0.008829), Elem(45,8,0.001943), +            Elem(49,2,0.000017), Elem(49,3,0.000022), Elem(49,4,0.000033), Elem(49,5,0.000067), Elem(49,6,0.006683), Elem(49,7,0.000067), Elem(49,8,0.000033), Elem(52,3,0.000017), +            Elem(52,4,0.000022), Elem(52,5,0.000033), Elem(52,6,0.000067), Elem(52,7,0.006683), Elem(52,8,0.000067), Elem(57,0,0.022369), Elem(57,1,0.014962), Elem(57,2,1.481348), +            Elem(57,3,0.014863), Elem(57,4,0.007444), Elem(57,5,0.004968), Elem(57,6,0.003728), Elem(57,7,0.002984), Elem(57,8,0.002487), Elem(64,0,0.014829), Elem(64,1,1.481296), +            Elem(64,2,0.014846), Elem(64,3,0.007473), Elem(64,4,0.011621), Elem(64,5,0.003770), Elem(64,6,0.002996), Elem(64,7,0.002491), Elem(64,8,0.002133), Elem(69,0,0.002224), +            Elem(69,1,0.003331), Elem(69,2,0.006646), Elem(69,3,0.661703), Elem(69,4,0.006695), Elem(69,5,0.010007), Elem(69,6,0.002295), Elem(69,7,0.001732), Elem(69,8,0.005812), +            Elem(76,0,0.001804), Elem(76,1,0.017168), Elem(76,2,0.003458), Elem(76,3,0.006691), Elem(76,4,0.661710), Elem(76,5,0.006654), Elem(76,6,0.003338), Elem(76,7,0.002230), +            Elem(76,8,0.001676), Elem(81,0,0.001898), Elem(81,1,0.002319), Elem(81,2,0.003009), Elem(81,3,0.010876), Elem(81,4,0.007789), Elem(81,5,0.663168), Elem(81,6,0.008850), +            Elem(81,7,0.007747), Elem(81,8,0.444436), Elem(85,0,0.001103), Elem(85,1,0.001323), Elem(85,2,0.001654), Elem(85,3,0.002206), Elem(85,4,0.003308), Elem(85,5,0.006617), +            Elem(85,6,0.661660), Elem(85,7,0.006617), Elem(85,8,0.003308), Elem(88,0,0.015908), Elem(88,1,0.001252), Elem(88,2,0.001398), Elem(88,3,0.001704), Elem(88,4,0.002243), +            Elem(88,5,0.003338), Elem(88,6,0.006642), Elem(88,7,0.661682), Elem(88,8,0.006635), }, +      { Elem(10,0,0.000150), Elem(10,1,0.000299), Elem(10,2,0.029925), Elem(10,3,0.000299), Elem(10,4,0.000150), Elem(10,5,0.000100), Elem(10,6,0.000075), Elem(10,7,0.000060), +            Elem(10,8,0.000050), Elem(17,0,0.000299), Elem(17,1,0.029925), Elem(17,2,0.000299), Elem(17,3,0.000150), Elem(17,4,0.000100), Elem(17,5,0.000075), Elem(17,6,0.000060), +            Elem(17,7,0.000050), Elem(17,8,0.000043), Elem(22,0,0.000045), Elem(22,1,0.000067), Elem(22,2,0.000134), Elem(22,3,0.013367), Elem(22,4,0.000134), Elem(22,5,0.000067), +            Elem(22,6,0.000045), Elem(22,7,0.000033), Elem(22,8,0.000027), Elem(29,0,0.000017), Elem(29,1,0.000022), Elem(29,2,0.000033), Elem(29,3,0.000067), Elem(29,4,0.006683), +            Elem(29,5,0.000067), Elem(29,6,0.000033), Elem(29,7,0.000022), Elem(29,8,0.000017), Elem(31,2,0.000017), Elem(31,3,0.000022), Elem(31,4,0.000033), Elem(31,5,0.000067), +            Elem(31,6,0.006683), Elem(31,7,0.000067), Elem(31,8,0.000033), Elem(34,0,0.000047), Elem(34,1,0.000057), Elem(34,2,0.000073), Elem(34,3,0.000101), Elem(34,4,0.000178), +            Elem(34,5,0.013430), Elem(34,6,0.000245), Elem(34,7,0.006840), Elem(34,8,0.009045), Elem(39,0,0.014962), Elem(39,1,0.000150), Elem(39,2,0.000075), Elem(39,3,0.000050), +            Elem(39,4,0.000037), Elem(39,5,0.000030), Elem(39,6,0.000025), Elem(39,7,0.000021), Elem(39,8,0.000019), Elem(43,2,0.000017), Elem(43,3,0.000022), Elem(43,4,0.000033), +            Elem(43,5,0.000067), Elem(43,6,0.006683), Elem(43,7,0.000067), Elem(43,8,0.000033), Elem(46,0,1.481358), Elem(46,1,0.014973), Elem(46,2,0.022382), Elem(46,3,0.005104), +            Elem(46,4,0.003800), Elem(46,5,0.003046), Elem(46,6,0.002573), Elem(46,7,0.008829), Elem(46,8,0.001943), Elem(50,2,0.000017), Elem(50,3,0.000022), Elem(50,4,0.000033), +            Elem(50,5,0.000067), Elem(50,6,0.006683), Elem(50,7,0.000067), Elem(50,8,0.000033), Elem(53,3,0.000017), Elem(53,4,0.000022), Elem(53,5,0.000033), Elem(53,6,0.000067), +            Elem(53,7,0.006683), Elem(53,8,0.000067), Elem(58,0,0.022369), Elem(58,1,0.014962), Elem(58,2,1.481348), Elem(58,3,0.014863), Elem(58,4,0.007444), Elem(58,5,0.004968), +            Elem(58,6,0.003728), Elem(58,7,0.002984), Elem(58,8,0.002487), Elem(65,0,0.014813), Elem(65,1,1.481273), Elem(65,2,0.014813), Elem(65,3,0.007406), Elem(65,4,0.004938), +            Elem(65,5,0.003703), Elem(65,6,0.002963), Elem(65,7,0.002469), Elem(65,8,0.002116), Elem(70,0,0.002224), Elem(70,1,0.003331), Elem(70,2,0.006646), Elem(70,3,0.661703), +            Elem(70,4,0.006695), Elem(70,5,0.010007), Elem(70,6,0.002295), Elem(70,7,0.001732), Elem(70,8,0.005812), Elem(75,0,0.000150), Elem(75,1,0.014962), Elem(75,2,0.000150), +            Elem(75,3,0.000075), Elem(75,4,0.000050), Elem(75,5,0.000037), Elem(75,6,0.000030), Elem(75,7,0.000025), Elem(75,8,0.000021), Elem(77,0,0.001654), Elem(77,1,0.002206), +            Elem(77,2,0.003308), Elem(77,3,0.006617), Elem(77,4,0.661660), Elem(77,5,0.006617), Elem(77,6,0.003308), Elem(77,7,0.002206), Elem(77,8,0.001654), Elem(82,0,0.001898), +            Elem(82,1,0.002319), Elem(82,2,0.003009), Elem(82,3,0.010876), Elem(82,4,0.007789), Elem(82,5,0.663168), Elem(82,6,0.008850), Elem(82,7,0.007747), Elem(82,8,0.444436), +            Elem(86,0,0.001103), Elem(86,1,0.001323), Elem(86,2,0.001654), Elem(86,3,0.002206), Elem(86,4,0.003308), Elem(86,5,0.006617), Elem(86,6,0.661660), Elem(86,7,0.006617), +            Elem(86,8,0.003308), Elem(89,0,0.015908), Elem(89,1,0.001252), Elem(89,2,0.001398), Elem(89,3,0.001704), Elem(89,4,0.002243), Elem(89,5,0.003338), Elem(89,6,0.006642), +            Elem(89,7,0.661682), Elem(89,8,0.006635), }, +      { Elem(11,0,0.000150), Elem(11,1,0.000299), Elem(11,2,0.029925), Elem(11,3,0.000299), Elem(11,4,0.000150), Elem(11,5,0.000100), Elem(11,6,0.000075), Elem(11,7,0.000060), +            Elem(11,8,0.000050), Elem(18,0,0.000299), Elem(18,1,0.029925), Elem(18,2,0.000299), Elem(18,3,0.000150), Elem(18,4,0.000100), Elem(18,5,0.000075), Elem(18,6,0.000060), +            Elem(18,7,0.000050), Elem(18,8,0.000043), Elem(23,0,0.000045), Elem(23,1,0.000067), Elem(23,2,0.000134), Elem(23,3,0.013367), Elem(23,4,0.000134), Elem(23,5,0.000067), +            Elem(23,6,0.000045), Elem(23,7,0.000033), Elem(23,8,0.000027), Elem(30,0,0.000033), Elem(30,1,0.000045), Elem(30,2,0.000067), Elem(30,3,0.000134), Elem(30,4,0.013367), +            Elem(30,5,0.000134), Elem(30,6,0.000067), Elem(30,7,0.000045), Elem(30,8,0.000033), Elem(32,2,0.000017), Elem(32,3,0.000022), Elem(32,4,0.000033), Elem(32,5,0.000067), +            Elem(32,6,0.006683), Elem(32,7,0.000067), Elem(32,8,0.000033), Elem(35,0,0.000047), Elem(35,1,0.000057), Elem(35,2,0.000073), Elem(35,3,0.000101), Elem(35,4,0.000178), +            Elem(35,5,0.013430), Elem(35,6,0.000245), Elem(35,7,0.006840), Elem(35,8,0.009045), Elem(40,0,0.014962), Elem(40,1,0.000150), Elem(40,2,0.000075), Elem(40,3,0.000050), +            Elem(40,4,0.000037), Elem(40,5,0.000030), Elem(40,6,0.000025), Elem(40,7,0.000021), Elem(40,8,0.000019), Elem(44,2,0.000017), Elem(44,3,0.000022), Elem(44,4,0.000033), +            Elem(44,5,0.000067), Elem(44,6,0.006683), Elem(44,7,0.000067), Elem(44,8,0.000033), Elem(47,0,1.481358), Elem(47,1,0.014973), Elem(47,2,0.022382), Elem(47,3,0.005104), +            Elem(47,4,0.003800), Elem(47,5,0.003046), Elem(47,6,0.002573), Elem(47,7,0.008829), Elem(47,8,0.001943), Elem(51,2,0.000017), Elem(51,3,0.000022), Elem(51,4,0.000033), +            Elem(51,5,0.000067), Elem(51,6,0.006683), Elem(51,7,0.000067), Elem(51,8,0.000033), Elem(54,3,0.000017), Elem(54,4,0.000022), Elem(54,5,0.000033), Elem(54,6,0.000067), +            Elem(54,7,0.006683), Elem(54,8,0.000067), Elem(59,0,0.022369), Elem(59,1,0.014962), Elem(59,2,1.481348), Elem(59,3,0.014863), Elem(59,4,0.007444), Elem(59,5,0.004968), +            Elem(59,6,0.003728), Elem(59,7,0.002984), Elem(59,8,0.002487), Elem(66,0,0.014829), Elem(66,1,1.481296), Elem(66,2,0.014846), Elem(66,3,0.007473), Elem(66,4,0.011621), +            Elem(66,5,0.003770), Elem(66,6,0.002996), Elem(66,7,0.002491), Elem(66,8,0.002133), Elem(71,0,0.002224), Elem(71,1,0.003331), Elem(71,2,0.006646), Elem(71,3,0.661703), +            Elem(71,4,0.006695), Elem(71,5,0.010007), Elem(71,6,0.002295), Elem(71,7,0.001732), Elem(71,8,0.005812), Elem(78,0,0.001804), Elem(78,1,0.017168), Elem(78,2,0.003458), +            Elem(78,3,0.006691), Elem(78,4,0.661710), Elem(78,5,0.006654), Elem(78,6,0.003338), Elem(78,7,0.002230), Elem(78,8,0.001676), Elem(83,0,0.001898), Elem(83,1,0.002319), +            Elem(83,2,0.003009), Elem(83,3,0.010876), Elem(83,4,0.007789), Elem(83,5,0.663168), Elem(83,6,0.008850), Elem(83,7,0.007747), Elem(83,8,0.444436), Elem(87,0,0.001103), +            Elem(87,1,0.001323), Elem(87,2,0.001654), Elem(87,3,0.002206), Elem(87,4,0.003308), Elem(87,5,0.006617), Elem(87,6,0.661660), Elem(87,7,0.006617), Elem(87,8,0.003308), +            Elem(90,0,0.015908), Elem(90,1,0.001252), Elem(90,2,0.001398), Elem(90,3,0.001704), Elem(90,4,0.002243), Elem(90,5,0.003338), Elem(90,6,0.006642), Elem(90,7,0.661682), +            Elem(90,8,0.006635), }, +      { Elem(0,0,0.044774), Elem(0,1,0.000448), Elem(0,2,0.000224), Elem(0,3,0.000149), Elem(0,4,0.000112), Elem(0,5,0.000090), Elem(0,6,0.000075), Elem(0,7,0.000064), +            Elem(0,8,0.000056), Elem(12,0,0.000150), Elem(12,1,0.000299), Elem(12,2,0.029925), Elem(12,3,0.000299), Elem(12,4,0.000150), Elem(12,5,0.000100), Elem(12,6,0.000075), +            Elem(12,7,0.000060), Elem(12,8,0.000050), Elem(19,0,0.000299), Elem(19,1,0.029925), Elem(19,2,0.000299), Elem(19,3,0.000150), Elem(19,4,0.000100), Elem(19,5,0.000075), +            Elem(19,6,0.000060), Elem(19,7,0.000050), Elem(19,8,0.000043), Elem(24,0,0.000045), Elem(24,1,0.000067), Elem(24,2,0.000134), Elem(24,3,0.013367), Elem(24,4,0.000134), +            Elem(24,5,0.000067), Elem(24,6,0.000045), Elem(24,7,0.000033), Elem(24,8,0.000027), Elem(31,0,0.000046), Elem(31,1,0.000059), Elem(31,2,0.000085), Elem(31,3,0.000156), +            Elem(31,4,0.013397), Elem(31,5,0.000178), Elem(31,6,0.000156), Elem(31,7,0.008978), Elem(31,8,0.000123), Elem(33,2,0.000017), Elem(33,3,0.000022), Elem(33,4,0.000033), +            Elem(33,5,0.000067), Elem(33,6,0.006683), Elem(33,7,0.000067), Elem(33,8,0.000033), Elem(41,0,0.000038), Elem(41,1,0.000046), Elem(41,2,0.000059), Elem(41,3,0.000085), +            Elem(41,4,0.000156), Elem(41,5,0.013397), Elem(41,6,0.000178), Elem(41,7,0.000156), Elem(41,8,0.008978), Elem(45,2,0.000017), Elem(45,3,0.000022), Elem(45,4,0.000033), +            Elem(45,5,0.000067), Elem(45,6,0.006683), Elem(45,7,0.000067), Elem(45,8,0.000033), Elem(48,0,2.216334), Elem(48,1,0.022163), Elem(48,2,0.011082), Elem(48,3,0.007388), +            Elem(48,4,0.005541), Elem(48,5,0.004433), Elem(48,6,0.003694), Elem(48,7,0.003166), Elem(48,8,0.002770), Elem(52,2,0.000017), Elem(52,3,0.000022), Elem(52,4,0.000033), +            Elem(52,5,0.000067), Elem(52,6,0.006683), Elem(52,7,0.000067), Elem(52,8,0.000033), Elem(60,0,0.007429), Elem(60,1,0.014846), Elem(60,2,1.481340), Elem(60,3,0.021496), +            Elem(60,4,0.007473), Elem(60,5,0.004971), Elem(60,6,0.003725), Elem(60,7,0.002979), Elem(60,8,0.002482), Elem(67,0,0.014836), Elem(67,1,1.481303), Elem(67,2,0.014855), +            Elem(67,3,0.007484), Elem(67,4,0.011636), Elem(67,5,0.003792), Elem(67,6,0.003041), Elem(67,7,0.006958), Elem(67,8,0.002177), Elem(72,0,0.002280), Elem(72,1,0.003458), +            Elem(72,2,0.021579), Elem(72,3,0.661810), Elem(72,4,0.006691), Elem(72,5,0.003358), Elem(72,6,0.002243), Elem(72,7,0.001684), Elem(72,8,0.001348), Elem(79,0,0.002436), +            Elem(79,1,0.017905), Elem(79,2,0.004342), Elem(79,3,0.007797), Elem(79,4,0.663184), Elem(79,5,0.008865), Elem(79,6,0.007760), Elem(79,7,0.444447), Elem(79,8,0.006098), +            Elem(84,0,0.001876), Elem(84,1,0.002286), Elem(84,2,0.002943), Elem(84,3,0.004193), Elem(84,4,0.007722), Elem(84,5,0.663135), Elem(84,6,0.008828), Elem(84,7,0.007730), +            Elem(84,8,0.444422), Elem(88,0,0.001103), Elem(88,1,0.001323), Elem(88,2,0.001654), Elem(88,3,0.002206), Elem(88,4,0.003308), Elem(88,5,0.006617), Elem(88,6,0.661660), +            Elem(88,7,0.006617), Elem(88,8,0.003308), }, +      { Elem(1,0,0.044774), Elem(1,1,0.000448), Elem(1,2,0.000224), Elem(1,3,0.000149), Elem(1,4,0.000112), Elem(1,5,0.000090), Elem(1,6,0.000075), Elem(1,7,0.000064), +            Elem(1,8,0.000056), Elem(13,0,0.000224), Elem(13,1,0.000448), Elem(13,2,0.044774), Elem(13,3,0.000448), Elem(13,4,0.000224), Elem(13,5,0.000149), Elem(13,6,0.000112), +            Elem(13,7,0.000090), Elem(13,8,0.000075), Elem(20,0,0.000299), Elem(20,1,0.029925), Elem(20,2,0.000299), Elem(20,3,0.000150), Elem(20,4,0.000100), Elem(20,5,0.000075), +            Elem(20,6,0.000060), Elem(20,7,0.000050), Elem(20,8,0.000043), Elem(25,0,0.000045), Elem(25,1,0.000067), Elem(25,2,0.000134), Elem(25,3,0.013367), Elem(25,4,0.000134), +            Elem(25,5,0.000067), Elem(25,6,0.000045), Elem(25,7,0.000033), Elem(25,8,0.000027), Elem(32,0,0.000046), Elem(32,1,0.000059), Elem(32,2,0.000085), Elem(32,3,0.000156), +            Elem(32,4,0.013397), Elem(32,5,0.000178), Elem(32,6,0.000156), Elem(32,7,0.008978), Elem(32,8,0.000123), Elem(34,2,0.000017), Elem(34,3,0.000022), Elem(34,4,0.000033), +            Elem(34,5,0.000067), Elem(34,6,0.006683), Elem(34,7,0.000067), Elem(34,8,0.000033), Elem(42,0,0.000038), Elem(42,1,0.000046), Elem(42,2,0.000059), Elem(42,3,0.000085), +            Elem(42,4,0.000156), Elem(42,5,0.013397), Elem(42,6,0.000178), Elem(42,7,0.000156), Elem(42,8,0.008978), Elem(46,2,0.000017), Elem(46,3,0.000022), Elem(46,4,0.000033), +            Elem(46,5,0.000067), Elem(46,6,0.006683), Elem(46,7,0.000067), Elem(46,8,0.000033), Elem(49,0,2.216353), Elem(49,1,0.022186), Elem(49,2,0.011111), Elem(49,3,0.007430), +            Elem(49,4,0.005619), Elem(49,5,0.011131), Elem(49,6,0.003783), Elem(49,7,0.003244), Elem(49,8,0.007260), Elem(53,2,0.000017), Elem(53,3,0.000022), Elem(53,4,0.000033), +            Elem(53,5,0.000067), Elem(53,6,0.006683), Elem(53,7,0.000067), Elem(53,8,0.000033), Elem(61,0,0.011104), Elem(61,1,0.022197), Elem(61,2,2.216401), Elem(61,3,0.028847), +            Elem(61,4,0.011149), Elem(61,5,0.007421), Elem(61,6,0.005563), Elem(61,7,0.004449), Elem(61,8,0.003707), Elem(68,0,0.014836), Elem(68,1,1.481303), Elem(68,2,0.014855), +            Elem(68,3,0.007484), Elem(68,4,0.011636), Elem(68,5,0.003792), Elem(68,6,0.003041), Elem(68,7,0.006958), Elem(68,8,0.002177), Elem(73,0,0.002317), Elem(73,1,0.003532), +            Elem(73,2,0.029004), Elem(73,3,0.661884), Elem(73,4,0.006729), Elem(73,5,0.003383), Elem(73,6,0.002262), Elem(73,7,0.001699), Elem(73,8,0.001361), Elem(80,0,0.002436), +            Elem(80,1,0.017905), Elem(80,2,0.004342), Elem(80,3,0.007797), Elem(80,4,0.663184), Elem(80,5,0.008865), Elem(80,6,0.007760), Elem(80,7,0.444447), Elem(80,8,0.006098), +            Elem(85,0,0.024263), Elem(85,1,0.002510), Elem(85,2,0.003054), Elem(85,3,0.004267), Elem(85,4,0.007778), Elem(85,5,0.663179), Elem(85,6,0.008865), Elem(85,7,0.007762), +            Elem(85,8,0.444450), Elem(89,0,0.001103), Elem(89,1,0.001323), Elem(89,2,0.001654), Elem(89,3,0.002206), Elem(89,4,0.003308), Elem(89,5,0.006617), Elem(89,6,0.661660), +            Elem(89,7,0.006617), Elem(89,8,0.003308), }, +      { Elem(2,0,0.044774), Elem(2,1,0.000448), Elem(2,2,0.000224), Elem(2,3,0.000149), Elem(2,4,0.000112), Elem(2,5,0.000090), Elem(2,6,0.000075), Elem(2,7,0.000064), +            Elem(2,8,0.000056), Elem(14,0,0.000224), Elem(14,1,0.000448), Elem(14,2,0.044774), Elem(14,3,0.000448), Elem(14,4,0.000224), Elem(14,5,0.000149), Elem(14,6,0.000112), +            Elem(14,7,0.000090), Elem(14,8,0.000075), Elem(21,0,0.000448), Elem(21,1,0.044774), Elem(21,2,0.000448), Elem(21,3,0.000224), Elem(21,4,0.000149), Elem(21,5,0.000112), +            Elem(21,6,0.000090), Elem(21,7,0.000075), Elem(21,8,0.000064), Elem(26,0,0.000045), Elem(26,1,0.000067), Elem(26,2,0.000134), Elem(26,3,0.013367), Elem(26,4,0.000134), +            Elem(26,5,0.000067), Elem(26,6,0.000045), Elem(26,7,0.000033), Elem(26,8,0.000027), Elem(31,0,0.000019), Elem(31,1,0.000023), Elem(31,2,0.000030), Elem(31,3,0.000042), +            Elem(31,4,0.000078), Elem(31,5,0.006698), Elem(31,6,0.000089), Elem(31,7,0.000078), Elem(31,8,0.004489), Elem(33,0,0.000035), Elem(33,1,0.000045), Elem(33,2,0.000063), +            Elem(33,3,0.000112), Elem(33,4,0.008963), Elem(33,5,0.000134), Elem(33,6,0.000134), Elem(33,7,0.008963), Elem(33,8,0.000112), Elem(35,4,0.000022), Elem(35,5,0.000045), +            Elem(35,6,0.004467), Elem(35,7,0.000045), Elem(35,8,0.000022), Elem(43,0,0.000019), Elem(43,1,0.000023), Elem(43,2,0.000030), Elem(43,3,0.000042), Elem(43,4,0.000078), +            Elem(43,5,0.006698), Elem(43,6,0.000089), Elem(43,7,0.000078), Elem(43,8,0.004489), Elem(47,4,0.000022), Elem(47,5,0.000045), Elem(47,6,0.004467), Elem(47,7,0.000045), +            Elem(47,8,0.000022), Elem(50,0,2.216353), Elem(50,1,0.022186), Elem(50,2,0.011111), Elem(50,3,0.007430), Elem(50,4,0.005619), Elem(50,5,0.011131), Elem(50,6,0.003783), +            Elem(50,7,0.003244), Elem(50,8,0.007260), Elem(54,4,0.000022), Elem(54,5,0.000045), Elem(54,6,0.004467), Elem(54,7,0.000045), Elem(54,8,0.000022), Elem(62,0,0.011104), +            Elem(62,1,0.022197), Elem(62,2,2.216401), Elem(62,3,0.028847), Elem(62,4,0.011149), Elem(62,5,0.007421), Elem(62,6,0.005563), Elem(62,7,0.004449), Elem(62,8,0.003707), +            Elem(69,0,0.022181), Elem(69,1,2.216356), Elem(69,2,0.022195), Elem(69,3,0.011138), Elem(69,4,0.011870), Elem(69,5,0.005608), Elem(69,6,0.004500), Elem(69,7,0.008176), +            Elem(69,8,0.003222), Elem(74,0,0.002317), Elem(74,1,0.003532), Elem(74,2,0.029004), Elem(74,3,0.661884), Elem(74,4,0.006729), Elem(74,5,0.003383), Elem(74,6,0.002262), +            Elem(74,7,0.001699), Elem(74,8,0.001361), Elem(81,0,0.001961), Elem(81,1,0.024598), Elem(81,2,0.003319), Elem(81,3,0.005640), Elem(81,4,0.443765), Elem(81,5,0.006689), +            Elem(81,6,0.006678), Elem(81,7,0.443728), Elem(81,8,0.005560), Elem(86,0,0.024263), Elem(86,1,0.002510), Elem(86,2,0.003054), Elem(86,3,0.004267), Elem(86,4,0.007778), +            Elem(86,5,0.663179), Elem(86,6,0.008865), Elem(86,7,0.007762), Elem(86,8,0.444450), Elem(90,0,0.000737), Elem(90,1,0.000884), Elem(90,2,0.001106), Elem(90,3,0.001474), +            Elem(90,4,0.002211), Elem(90,5,0.004422), Elem(90,6,0.442217), Elem(90,7,0.004422), Elem(90,8,0.002211), }, +      { Elem(3,0,0.044774), Elem(3,1,0.000448), Elem(3,2,0.000224), Elem(3,3,0.000149), Elem(3,4,0.000112), Elem(3,5,0.000090), Elem(3,6,0.000075), Elem(3,7,0.000064), +            Elem(3,8,0.000056), Elem(15,0,0.000224), Elem(15,1,0.000448), Elem(15,2,0.044774), Elem(15,3,0.000448), Elem(15,4,0.000224), Elem(15,5,0.000149), Elem(15,6,0.000112), +            Elem(15,7,0.000090), Elem(15,8,0.000075), Elem(22,0,0.000448), Elem(22,1,0.044774), Elem(22,2,0.000448), Elem(22,3,0.000224), Elem(22,4,0.000149), Elem(22,5,0.000112), +            Elem(22,6,0.000090), Elem(22,7,0.000075), Elem(22,8,0.000064), Elem(27,0,0.000022), Elem(27,1,0.000033), Elem(27,2,0.000067), Elem(27,3,0.006683), Elem(27,4,0.000067), +            Elem(27,5,0.000033), Elem(27,6,0.000022), Elem(27,7,0.000017), Elem(29,0,0.000022), Elem(29,1,0.000033), Elem(29,2,0.000067), Elem(29,3,0.006683), Elem(29,4,0.000067), +            Elem(29,5,0.000033), Elem(29,6,0.000022), Elem(29,7,0.000017), Elem(31,1,0.000018), Elem(31,2,0.000022), Elem(31,3,0.000030), Elem(31,4,0.000045), Elem(31,5,0.000089), +            Elem(31,6,0.008934), Elem(31,7,0.000089), Elem(31,8,0.000045), Elem(32,0,0.000019), Elem(32,1,0.000023), Elem(32,2,0.000030), Elem(32,3,0.000042), Elem(32,4,0.000078), +            Elem(32,5,0.006698), Elem(32,6,0.000089), Elem(32,7,0.000078), Elem(32,8,0.004489), Elem(34,0,0.000035), Elem(34,1,0.000045), Elem(34,2,0.000063), Elem(34,3,0.000112), +            Elem(34,4,0.008963), Elem(34,5,0.000134), Elem(34,6,0.000134), Elem(34,7,0.008963), Elem(34,8,0.000112), Elem(44,0,0.000019), Elem(44,1,0.000023), Elem(44,2,0.000030), +            Elem(44,3,0.000042), Elem(44,4,0.000078), Elem(44,5,0.006698), Elem(44,6,0.000089), Elem(44,7,0.000078), Elem(44,8,0.004489), Elem(51,0,2.216353), Elem(51,1,0.022186), +            Elem(51,2,0.011111), Elem(51,3,0.007430), Elem(51,4,0.005619), Elem(51,5,0.011131), Elem(51,6,0.003783), Elem(51,7,0.003244), Elem(51,8,0.007260), Elem(63,0,0.011082), +            Elem(63,1,0.022163), Elem(63,2,2.216334), Elem(63,3,0.022163), Elem(63,4,0.011082), Elem(63,5,0.007388), Elem(63,6,0.005541), Elem(63,7,0.004433), Elem(63,8,0.003694), +            Elem(65,0,0.000022), Elem(65,1,0.000033), Elem(65,2,0.000067), Elem(65,3,0.006683), Elem(65,4,0.000067), Elem(65,5,0.000033), Elem(65,6,0.000022), Elem(65,7,0.000017), +            Elem(67,4,0.000022), Elem(67,5,0.000045), Elem(67,6,0.004467), Elem(67,7,0.000045), Elem(67,8,0.000022), Elem(70,0,0.022181), Elem(70,1,2.216356), Elem(70,2,0.022195), +            Elem(70,3,0.011138), Elem(70,4,0.011870), Elem(70,5,0.005608), Elem(70,6,0.004500), Elem(70,7,0.008176), Elem(70,8,0.003222), Elem(75,0,0.002317), Elem(75,1,0.003532), +            Elem(75,2,0.029004), Elem(75,3,0.661884), Elem(75,4,0.006729), Elem(75,5,0.003383), Elem(75,6,0.002262), Elem(75,7,0.001699), Elem(75,8,0.001361), Elem(79,0,0.000737), +            Elem(79,1,0.000884), Elem(79,2,0.001106), Elem(79,3,0.001474), Elem(79,4,0.002211), Elem(79,5,0.004422), Elem(79,6,0.442217), Elem(79,7,0.004422), Elem(79,8,0.002211), +            Elem(82,0,0.001961), Elem(82,1,0.024598), Elem(82,2,0.003319), Elem(82,3,0.005640), Elem(82,4,0.443765), Elem(82,5,0.006689), Elem(82,6,0.006678), Elem(82,7,0.443728), +            Elem(82,8,0.005560), Elem(87,0,0.024263), Elem(87,1,0.002510), Elem(87,2,0.003054), Elem(87,3,0.004267), Elem(87,4,0.007778), Elem(87,5,0.663179), Elem(87,6,0.008865), +            Elem(87,7,0.007762), Elem(87,8,0.444450), }, +      { Elem(4,0,0.044774), Elem(4,1,0.000448), Elem(4,2,0.000224), Elem(4,3,0.000149), Elem(4,4,0.000112), Elem(4,5,0.000090), Elem(4,6,0.000075), Elem(4,7,0.000064), +            Elem(4,8,0.000056), Elem(16,0,0.000224), Elem(16,1,0.000448), Elem(16,2,0.044774), Elem(16,3,0.000448), Elem(16,4,0.000224), Elem(16,5,0.000149), Elem(16,6,0.000112), +            Elem(16,7,0.000090), Elem(16,8,0.000075), Elem(23,0,0.000448), Elem(23,1,0.044774), Elem(23,2,0.000448), Elem(23,3,0.000224), Elem(23,4,0.000149), Elem(23,5,0.000112), +            Elem(23,6,0.000090), Elem(23,7,0.000075), Elem(23,8,0.000064), Elem(28,0,0.000045), Elem(28,1,0.000067), Elem(28,2,0.000134), Elem(28,3,0.013367), Elem(28,4,0.000134), +            Elem(28,5,0.000067), Elem(28,6,0.000045), Elem(28,7,0.000033), Elem(28,8,0.000027), Elem(32,1,0.000018), Elem(32,2,0.000022), Elem(32,3,0.000030), Elem(32,4,0.000045), +            Elem(32,5,0.000089), Elem(32,6,0.008934), Elem(32,7,0.000089), Elem(32,8,0.000045), Elem(33,0,0.000019), Elem(33,1,0.000023), Elem(33,2,0.000030), Elem(33,3,0.000042), +            Elem(33,4,0.000078), Elem(33,5,0.006698), Elem(33,6,0.000089), Elem(33,7,0.000078), Elem(33,8,0.004489), Elem(35,0,0.000035), Elem(35,1,0.000045), Elem(35,2,0.000063), +            Elem(35,3,0.000112), Elem(35,4,0.008963), Elem(35,5,0.000134), Elem(35,6,0.000134), Elem(35,7,0.008963), Elem(35,8,0.000112), Elem(45,0,0.000019), Elem(45,1,0.000023), +            Elem(45,2,0.000030), Elem(45,3,0.000042), Elem(45,4,0.000078), Elem(45,5,0.006698), Elem(45,6,0.000089), Elem(45,7,0.000078), Elem(45,8,0.004489), Elem(52,0,2.216353), +            Elem(52,1,0.022186), Elem(52,2,0.011111), Elem(52,3,0.007430), Elem(52,4,0.005619), Elem(52,5,0.011131), Elem(52,6,0.003783), Elem(52,7,0.003244), Elem(52,8,0.007260), +            Elem(64,0,0.011104), Elem(64,1,0.022197), Elem(64,2,2.216401), Elem(64,3,0.028847), Elem(64,4,0.011149), Elem(64,5,0.007421), Elem(64,6,0.005563), Elem(64,7,0.004449), +            Elem(64,8,0.003707), Elem(68,4,0.000022), Elem(68,5,0.000045), Elem(68,6,0.004467), Elem(68,7,0.000045), Elem(68,8,0.000022), Elem(71,0,0.022181), Elem(71,1,2.216356), +            Elem(71,2,0.022195), Elem(71,3,0.011138), Elem(71,4,0.011870), Elem(71,5,0.005608), Elem(71,6,0.004500), Elem(71,7,0.008176), Elem(71,8,0.003222), Elem(76,0,0.002317), +            Elem(76,1,0.003532), Elem(76,2,0.029004), Elem(76,3,0.661884), Elem(76,4,0.006729), Elem(76,5,0.003383), Elem(76,6,0.002262), Elem(76,7,0.001699), Elem(76,8,0.001361), +            Elem(80,0,0.000737), Elem(80,1,0.000884), Elem(80,2,0.001106), Elem(80,3,0.001474), Elem(80,4,0.002211), Elem(80,5,0.004422), Elem(80,6,0.442217), Elem(80,7,0.004422), +            Elem(80,8,0.002211), Elem(83,0,0.001961), Elem(83,1,0.024598), Elem(83,2,0.003319), Elem(83,3,0.005640), Elem(83,4,0.443765), Elem(83,5,0.006689), Elem(83,6,0.006678), +            Elem(83,7,0.443728), Elem(83,8,0.005560), Elem(88,0,0.024263), Elem(88,1,0.002510), Elem(88,2,0.003054), Elem(88,3,0.004267), Elem(88,4,0.007778), Elem(88,5,0.663179), +            Elem(88,6,0.008865), Elem(88,7,0.007762), Elem(88,8,0.444450), }, +      { Elem(5,0,0.044774), Elem(5,1,0.000448), Elem(5,2,0.000224), Elem(5,3,0.000149), Elem(5,4,0.000112), Elem(5,5,0.000090), Elem(5,6,0.000075), Elem(5,7,0.000064), +            Elem(5,8,0.000056), Elem(17,0,0.000224), Elem(17,1,0.000448), Elem(17,2,0.044774), Elem(17,3,0.000448), Elem(17,4,0.000224), Elem(17,5,0.000149), Elem(17,6,0.000112), +            Elem(17,7,0.000090), Elem(17,8,0.000075), Elem(24,0,0.000448), Elem(24,1,0.044774), Elem(24,2,0.000448), Elem(24,3,0.000224), Elem(24,4,0.000149), Elem(24,5,0.000112), +            Elem(24,6,0.000090), Elem(24,7,0.000075), Elem(24,8,0.000064), Elem(29,0,0.000022), Elem(29,1,0.000033), Elem(29,2,0.000067), Elem(29,3,0.006683), Elem(29,4,0.000067), +            Elem(29,5,0.000033), Elem(29,6,0.000022), Elem(29,7,0.000017), Elem(33,1,0.000018), Elem(33,2,0.000022), Elem(33,3,0.000030), Elem(33,4,0.000045), Elem(33,5,0.000089), +            Elem(33,6,0.008934), Elem(33,7,0.000089), Elem(33,8,0.000045), Elem(34,0,0.000019), Elem(34,1,0.000023), Elem(34,2,0.000030), Elem(34,3,0.000042), Elem(34,4,0.000078), +            Elem(34,5,0.006698), Elem(34,6,0.000089), Elem(34,7,0.000078), Elem(34,8,0.004489), Elem(41,0,0.000035), Elem(41,1,0.000045), Elem(41,2,0.000063), Elem(41,3,0.000112), +            Elem(41,4,0.008963), Elem(41,5,0.000134), Elem(41,6,0.000134), Elem(41,7,0.008963), Elem(41,8,0.000112), Elem(46,0,0.000019), Elem(46,1,0.000023), Elem(46,2,0.000030), +            Elem(46,3,0.000042), Elem(46,4,0.000078), Elem(46,5,0.006698), Elem(46,6,0.000089), Elem(46,7,0.000078), Elem(46,8,0.004489), Elem(53,0,2.216353), Elem(53,1,0.022186), +            Elem(53,2,0.011111), Elem(53,3,0.007430), Elem(53,4,0.005619), Elem(53,5,0.011131), Elem(53,6,0.003783), Elem(53,7,0.003244), Elem(53,8,0.007260), Elem(60,0,0.000224), +            Elem(60,1,0.022387), Elem(60,2,0.000224), Elem(60,3,0.000112), Elem(60,4,0.000075), Elem(60,5,0.000056), Elem(60,6,0.000045), Elem(60,7,0.000037), Elem(60,8,0.000032), +            Elem(65,0,0.011082), Elem(65,1,0.022163), Elem(65,2,2.216334), Elem(65,3,0.022163), Elem(65,4,0.011082), Elem(65,5,0.007388), Elem(65,6,0.005541), Elem(65,7,0.004433), +            Elem(65,8,0.003694), Elem(69,4,0.000022), Elem(69,5,0.000045), Elem(69,6,0.004467), Elem(69,7,0.000045), Elem(69,8,0.000022), Elem(72,0,0.022163), Elem(72,1,2.216334), +            Elem(72,2,0.022163), Elem(72,3,0.011082), Elem(72,4,0.007388), Elem(72,5,0.005541), Elem(72,6,0.004433), Elem(72,7,0.003694), Elem(72,8,0.003166), Elem(75,0,0.000112), +            Elem(75,1,0.000224), Elem(75,2,0.022387), Elem(75,3,0.000224), Elem(75,4,0.000112), Elem(75,5,0.000075), Elem(75,6,0.000056), Elem(75,7,0.000045), Elem(75,8,0.000037), +            Elem(77,0,0.002206), Elem(77,1,0.003308), Elem(77,2,0.006617), Elem(77,3,0.661660), Elem(77,4,0.006617), Elem(77,5,0.003308), Elem(77,6,0.002206), Elem(77,7,0.001654), +            Elem(77,8,0.001323), Elem(81,0,0.000737), Elem(81,1,0.000884), Elem(81,2,0.001106), Elem(81,3,0.001474), Elem(81,4,0.002211), Elem(81,5,0.004422), Elem(81,6,0.442217), +            Elem(81,7,0.004422), Elem(81,8,0.002211), Elem(84,0,0.001737), Elem(84,1,0.002211), Elem(84,2,0.003096), Elem(84,3,0.005528), Elem(84,4,0.443691), Elem(84,5,0.006633), +            Elem(84,6,0.006633), Elem(84,7,0.443691), Elem(84,8,0.005528), Elem(89,0,0.024263), Elem(89,1,0.002510), Elem(89,2,0.003054), Elem(89,3,0.004267), Elem(89,4,0.007778), +            Elem(89,5,0.663179), Elem(89,6,0.008865), Elem(89,7,0.007762), Elem(89,8,0.444450), }, +      { Elem(6,0,0.044774), Elem(6,1,0.000448), Elem(6,2,0.000224), Elem(6,3,0.000149), Elem(6,4,0.000112), Elem(6,5,0.000090), Elem(6,6,0.000075), Elem(6,7,0.000064), +            Elem(6,8,0.000056), Elem(18,0,0.000224), Elem(18,1,0.000448), Elem(18,2,0.044774), Elem(18,3,0.000448), Elem(18,4,0.000224), Elem(18,5,0.000149), Elem(18,6,0.000112), +            Elem(18,7,0.000090), Elem(18,8,0.000075), Elem(25,0,0.000448), Elem(25,1,0.044774), Elem(25,2,0.000448), Elem(25,3,0.000224), Elem(25,4,0.000149), Elem(25,5,0.000112), +            Elem(25,6,0.000090), Elem(25,7,0.000075), Elem(25,8,0.000064), Elem(30,0,0.000045), Elem(30,1,0.000067), Elem(30,2,0.000134), Elem(30,3,0.013367), Elem(30,4,0.000134), +            Elem(30,5,0.000067), Elem(30,6,0.000045), Elem(30,7,0.000033), Elem(30,8,0.000027), Elem(34,1,0.000018), Elem(34,2,0.000022), Elem(34,3,0.000030), Elem(34,4,0.000045), +            Elem(34,5,0.000089), Elem(34,6,0.008934), Elem(34,7,0.000089), Elem(34,8,0.000045), Elem(35,1,0.000018), Elem(35,2,0.000022), Elem(35,3,0.000031), Elem(35,4,0.000056), +            Elem(35,5,0.004482), Elem(35,6,0.000067), Elem(35,7,0.000067), Elem(35,8,0.004482), Elem(42,0,0.000035), Elem(42,1,0.000045), Elem(42,2,0.000063), Elem(42,3,0.000112), +            Elem(42,4,0.008963), Elem(42,5,0.000134), Elem(42,6,0.000134), Elem(42,7,0.008963), Elem(42,8,0.000112), Elem(47,1,0.000018), Elem(47,2,0.000022), Elem(47,3,0.000031), +            Elem(47,4,0.000056), Elem(47,5,0.004482), Elem(47,6,0.000067), Elem(47,7,0.000067), Elem(47,8,0.004482), Elem(49,0,0.000018), Elem(49,1,0.000022), Elem(49,2,0.000031), +            Elem(49,3,0.000056), Elem(49,4,0.004482), Elem(49,5,0.000067), Elem(49,6,0.000067), Elem(49,7,0.004482), Elem(49,8,0.000056), Elem(54,0,2.216348), Elem(54,1,0.022181), +            Elem(54,2,0.011104), Elem(54,3,0.007419), Elem(54,4,0.005597), Elem(54,5,0.008914), Elem(54,6,0.003761), Elem(54,7,0.003233), Elem(54,8,0.007252), Elem(61,0,0.000224), +            Elem(61,1,0.022387), Elem(61,2,0.000224), Elem(61,3,0.000112), Elem(61,4,0.000075), Elem(61,5,0.000056), Elem(61,6,0.000045), Elem(61,7,0.000037), Elem(61,8,0.000032), +            Elem(66,0,0.011104), Elem(66,1,0.022197), Elem(66,2,2.216401), Elem(66,3,0.028847), Elem(66,4,0.011149), Elem(66,5,0.007421), Elem(66,6,0.005563), Elem(66,7,0.004449), +            Elem(66,8,0.003707), Elem(70,4,0.000022), Elem(70,5,0.000045), Elem(70,6,0.004467), Elem(70,7,0.000045), Elem(70,8,0.000022), Elem(73,0,0.022163), Elem(73,1,2.216334), +            Elem(73,2,0.022163), Elem(73,3,0.011082), Elem(73,4,0.007388), Elem(73,5,0.005541), Elem(73,6,0.004433), Elem(73,7,0.003694), Elem(73,8,0.003166), Elem(78,0,0.002317), +            Elem(78,1,0.003532), Elem(78,2,0.029004), Elem(78,3,0.661884), Elem(78,4,0.006729), Elem(78,5,0.003383), Elem(78,6,0.002262), Elem(78,7,0.001699), Elem(78,8,0.001361), +            Elem(82,0,0.000737), Elem(82,1,0.000884), Elem(82,2,0.001106), Elem(82,3,0.001474), Elem(82,4,0.002211), Elem(82,5,0.004422), Elem(82,6,0.442217), Elem(82,7,0.004422), +            Elem(82,8,0.002211), Elem(85,0,0.001737), Elem(85,1,0.002211), Elem(85,2,0.003096), Elem(85,3,0.005528), Elem(85,4,0.443691), Elem(85,5,0.006633), Elem(85,6,0.006633), +            Elem(85,7,0.443691), Elem(85,8,0.005528), Elem(90,0,0.023824), Elem(90,1,0.001961), Elem(90,2,0.002323), Elem(90,3,0.003170), Elem(90,4,0.005584), Elem(90,5,0.443736), +            Elem(90,6,0.006671), Elem(90,7,0.006665), Elem(90,8,0.443719), }, +      { Elem(7,0,0.044774), Elem(7,1,0.000448), Elem(7,2,0.000224), Elem(7,3,0.000149), Elem(7,4,0.000112), Elem(7,5,0.000090), Elem(7,6,0.000075), Elem(7,7,0.000064), +            Elem(7,8,0.000056), Elem(19,0,0.000224), Elem(19,1,0.000448), Elem(19,2,0.044774), Elem(19,3,0.000448), Elem(19,4,0.000224), Elem(19,5,0.000149), Elem(19,6,0.000112), +            Elem(19,7,0.000090), Elem(19,8,0.000075), Elem(26,0,0.000448), Elem(26,1,0.044774), Elem(26,2,0.000448), Elem(26,3,0.000224), Elem(26,4,0.000149), Elem(26,5,0.000112), +            Elem(26,6,0.000090), Elem(26,7,0.000075), Elem(26,8,0.000064), Elem(31,0,0.000091), Elem(31,1,0.000124), Elem(31,2,0.000210), Elem(31,3,0.013485), Elem(31,4,0.004727), +            Elem(31,5,0.009097), Elem(31,6,0.000246), Elem(31,7,0.004649), Elem(31,8,0.009046), Elem(35,1,0.000018), Elem(35,2,0.000022), Elem(35,3,0.000030), Elem(35,4,0.000045), +            Elem(35,5,0.000089), Elem(35,6,0.008934), Elem(35,7,0.000089), Elem(35,8,0.000045), Elem(43,0,0.022405), Elem(43,1,0.000246), Elem(43,2,0.000143), Elem(43,3,0.000130), +            Elem(43,4,0.004538), Elem(43,5,0.000112), Elem(43,6,0.000104), Elem(43,7,0.004514), Elem(43,8,0.000084), Elem(50,0,0.000018), Elem(50,1,0.000022), Elem(50,2,0.000031), +            Elem(50,3,0.000056), Elem(50,4,0.004482), Elem(50,5,0.000067), Elem(50,6,0.000067), Elem(50,7,0.004482), Elem(50,8,0.000056), Elem(55,0,2.216334), Elem(55,1,0.022163), +            Elem(55,2,0.011082), Elem(55,3,0.007388), Elem(55,4,0.005541), Elem(55,5,0.004433), Elem(55,6,0.003694), Elem(55,7,0.003166), Elem(55,8,0.002770), Elem(62,0,0.000224), +            Elem(62,1,0.022387), Elem(62,2,0.000224), Elem(62,3,0.000112), Elem(62,4,0.000075), Elem(62,5,0.000056), Elem(62,6,0.000045), Elem(62,7,0.000037), Elem(62,8,0.000032), +            Elem(67,0,0.011118), Elem(67,1,0.022214), Elem(67,2,2.216423), Elem(67,3,0.028878), Elem(67,4,0.011204), Elem(67,5,0.011903), Elem(67,6,0.005630), Elem(67,7,0.004516), +            Elem(67,8,0.008189), Elem(71,4,0.000022), Elem(71,5,0.000045), Elem(71,6,0.004467), Elem(71,7,0.000045), Elem(71,8,0.000022), Elem(74,0,0.022163), Elem(74,1,2.216334), +            Elem(74,2,0.022163), Elem(74,3,0.011082), Elem(74,4,0.007388), Elem(74,5,0.005541), Elem(74,6,0.004433), Elem(74,7,0.003694), Elem(74,8,0.003166), Elem(79,0,0.003755), +            Elem(79,1,0.005269), Elem(79,2,0.031215), Elem(79,3,0.664980), Elem(79,4,0.012256), Elem(79,5,0.447074), Elem(79,6,0.008895), Elem(79,7,0.008332), Elem(79,8,0.445051), +            Elem(83,0,0.000737), Elem(83,1,0.000884), Elem(83,2,0.001106), Elem(83,3,0.001474), Elem(83,4,0.002211), Elem(83,5,0.004422), Elem(83,6,0.442217), Elem(83,7,0.004422), +            Elem(83,8,0.002211), Elem(86,0,0.001737), Elem(86,1,0.002211), Elem(86,2,0.003096), Elem(86,3,0.005528), Elem(86,4,0.443691), Elem(86,5,0.006633), Elem(86,6,0.006633), +            Elem(86,7,0.443691), Elem(86,8,0.005528), }, +      { Elem(8,0,0.044774), Elem(8,1,0.000448), Elem(8,2,0.000224), Elem(8,3,0.000149), Elem(8,4,0.000112), Elem(8,5,0.000090), Elem(8,6,0.000075), Elem(8,7,0.000064), +            Elem(8,8,0.000056), Elem(20,0,0.000224), Elem(20,1,0.000448), Elem(20,2,0.044774), Elem(20,3,0.000448), Elem(20,4,0.000224), Elem(20,5,0.000149), Elem(20,6,0.000112), +            Elem(20,7,0.000090), Elem(20,8,0.000075), Elem(27,0,0.000224), Elem(27,1,0.022387), Elem(27,2,0.000224), Elem(27,3,0.000112), Elem(27,4,0.000075), Elem(27,5,0.000056), +            Elem(27,6,0.000045), Elem(27,7,0.000037), Elem(27,8,0.000032), Elem(29,0,0.000224), Elem(29,1,0.022387), Elem(29,2,0.000224), Elem(29,3,0.000112), Elem(29,4,0.000075), +            Elem(29,5,0.000056), Elem(29,6,0.000045), Elem(29,7,0.000037), Elem(29,8,0.000032), Elem(32,0,0.000091), Elem(32,1,0.000124), Elem(32,2,0.000210), Elem(32,3,0.013485), +            Elem(32,4,0.004727), Elem(32,5,0.009097), Elem(32,6,0.000246), Elem(32,7,0.004649), Elem(32,8,0.009046), Elem(41,1,0.000018), Elem(41,2,0.000022), Elem(41,3,0.000030), +            Elem(41,4,0.000045), Elem(41,5,0.000089), Elem(41,6,0.008934), Elem(41,7,0.000089), Elem(41,8,0.000045), Elem(44,0,0.022405), Elem(44,1,0.000246), Elem(44,2,0.000143), +            Elem(44,3,0.000130), Elem(44,4,0.004538), Elem(44,5,0.000112), Elem(44,6,0.000104), Elem(44,7,0.004514), Elem(44,8,0.000084), Elem(51,0,0.000018), Elem(51,1,0.000022), +            Elem(51,2,0.000031), Elem(51,3,0.000056), Elem(51,4,0.004482), Elem(51,5,0.000067), Elem(51,6,0.000067), Elem(51,7,0.004482), Elem(51,8,0.000056), Elem(56,0,2.216334), +            Elem(56,1,0.022163), Elem(56,2,0.011082), Elem(56,3,0.007388), Elem(56,4,0.005541), Elem(56,5,0.004433), Elem(56,6,0.003694), Elem(56,7,0.003166), Elem(56,8,0.002770), +            Elem(65,0,0.000224), Elem(65,1,0.022387), Elem(65,2,0.000224), Elem(65,3,0.000112), Elem(65,4,0.000075), Elem(65,5,0.000056), Elem(65,6,0.000045), Elem(65,7,0.000037), +            Elem(65,8,0.000032), Elem(68,0,0.011118), Elem(68,1,0.022214), Elem(68,2,2.216423), Elem(68,3,0.028878), Elem(68,4,0.011204), Elem(68,5,0.011903), Elem(68,6,0.005630), +            Elem(68,7,0.004516), Elem(68,8,0.008189), Elem(75,0,0.022163), Elem(75,1,2.216334), Elem(75,2,0.022163), Elem(75,3,0.011082), Elem(75,4,0.007388), Elem(75,5,0.005541), +            Elem(75,6,0.004433), Elem(75,7,0.003694), Elem(75,8,0.003166), Elem(80,0,0.003755), Elem(80,1,0.005269), Elem(80,2,0.031215), Elem(80,3,0.664980), Elem(80,4,0.012256), +            Elem(80,5,0.447074), Elem(80,6,0.008895), Elem(80,7,0.008332), Elem(80,8,0.445051), Elem(84,0,0.000737), Elem(84,1,0.000884), Elem(84,2,0.001106), Elem(84,3,0.001474), +            Elem(84,4,0.002211), Elem(84,5,0.004422), Elem(84,6,0.442217), Elem(84,7,0.004422), Elem(84,8,0.002211), Elem(87,0,0.001737), Elem(87,1,0.002211), Elem(87,2,0.003096), +            Elem(87,3,0.005528), Elem(87,4,0.443691), Elem(87,5,0.006633), Elem(87,6,0.006633), Elem(87,7,0.443691), Elem(87,8,0.005528), }, +      { Elem(9,0,0.044774), Elem(9,1,0.000448), Elem(9,2,0.000224), Elem(9,3,0.000149), Elem(9,4,0.000112), Elem(9,5,0.000090), Elem(9,6,0.000075), Elem(9,7,0.000064), +            Elem(9,8,0.000056), Elem(21,0,0.000224), Elem(21,1,0.000448), Elem(21,2,0.044774), Elem(21,3,0.000448), Elem(21,4,0.000224), Elem(21,5,0.000149), Elem(21,6,0.000112), +            Elem(21,7,0.000090), Elem(21,8,0.000075), Elem(28,0,0.000448), Elem(28,1,0.044774), Elem(28,2,0.000448), Elem(28,3,0.000224), Elem(28,4,0.000149), Elem(28,5,0.000112), +            Elem(28,6,0.000090), Elem(28,7,0.000075), Elem(28,8,0.000064), Elem(33,0,0.000091), Elem(33,1,0.000124), Elem(33,2,0.000210), Elem(33,3,0.013485), Elem(33,4,0.004727), +            Elem(33,5,0.009097), Elem(33,6,0.000246), Elem(33,7,0.004649), Elem(33,8,0.009046), Elem(42,1,0.000018), Elem(42,2,0.000022), Elem(42,3,0.000030), Elem(42,4,0.000045), +            Elem(42,5,0.000089), Elem(42,6,0.008934), Elem(42,7,0.000089), Elem(42,8,0.000045), Elem(45,0,0.022405), Elem(45,1,0.000246), Elem(45,2,0.000143), Elem(45,3,0.000130), +            Elem(45,4,0.004538), Elem(45,5,0.000112), Elem(45,6,0.000104), Elem(45,7,0.004514), Elem(45,8,0.000084), Elem(49,4,0.000022), Elem(49,5,0.000045), Elem(49,6,0.004467), +            Elem(49,7,0.000045), Elem(49,8,0.000022), Elem(52,0,0.000018), Elem(52,1,0.000022), Elem(52,2,0.000031), Elem(52,3,0.000056), Elem(52,4,0.004482), Elem(52,5,0.000067), +            Elem(52,6,0.000067), Elem(52,7,0.004482), Elem(52,8,0.000056), Elem(57,0,2.216334), Elem(57,1,0.022163), Elem(57,2,0.011082), Elem(57,3,0.007388), Elem(57,4,0.005541), +            Elem(57,5,0.004433), Elem(57,6,0.003694), Elem(57,7,0.003166), Elem(57,8,0.002770), Elem(64,0,0.000224), Elem(64,1,0.022387), Elem(64,2,0.000224), Elem(64,3,0.000112), +            Elem(64,4,0.000075), Elem(64,5,0.000056), Elem(64,6,0.000045), Elem(64,7,0.000037), Elem(64,8,0.000032), Elem(69,0,0.011118), Elem(69,1,0.022214), Elem(69,2,2.216423), +            Elem(69,3,0.028878), Elem(69,4,0.011204), Elem(69,5,0.011903), Elem(69,6,0.005630), Elem(69,7,0.004516), Elem(69,8,0.008189), Elem(76,0,0.022163), Elem(76,1,2.216334), +            Elem(76,2,0.022163), Elem(76,3,0.011082), Elem(76,4,0.007388), Elem(76,5,0.005541), Elem(76,6,0.004433), Elem(76,7,0.003694), Elem(76,8,0.003166), Elem(81,0,0.003755), +            Elem(81,1,0.005269), Elem(81,2,0.031215), Elem(81,3,0.664980), Elem(81,4,0.012256), Elem(81,5,0.447074), Elem(81,6,0.008895), Elem(81,7,0.008332), Elem(81,8,0.445051), +            Elem(85,0,0.000737), Elem(85,1,0.000884), Elem(85,2,0.001106), Elem(85,3,0.001474), Elem(85,4,0.002211), Elem(85,5,0.004422), Elem(85,6,0.442217), Elem(85,7,0.004422), +            Elem(85,8,0.002211), Elem(88,0,0.001737), Elem(88,1,0.002211), Elem(88,2,0.003096), Elem(88,3,0.005528), Elem(88,4,0.443691), Elem(88,5,0.006633), Elem(88,6,0.006633), +            Elem(88,7,0.443691), Elem(88,8,0.005528), }, +      { Elem(10,0,0.044774), Elem(10,1,0.000448), Elem(10,2,0.000224), Elem(10,3,0.000149), Elem(10,4,0.000112), Elem(10,5,0.000090), Elem(10,6,0.000075), Elem(10,7,0.000064), +            Elem(10,8,0.000056), Elem(22,0,0.000224), Elem(22,1,0.000448), Elem(22,2,0.044774), Elem(22,3,0.000448), Elem(22,4,0.000224), Elem(22,5,0.000149), Elem(22,6,0.000112), +            Elem(22,7,0.000090), Elem(22,8,0.000075), Elem(29,0,0.000224), Elem(29,1,0.022387), Elem(29,2,0.000224), Elem(29,3,0.000112), Elem(29,4,0.000075), Elem(29,5,0.000056), +            Elem(29,6,0.000045), Elem(29,7,0.000037), Elem(29,8,0.000032), Elem(31,4,0.000022), Elem(31,5,0.000045), Elem(31,6,0.004467), Elem(31,7,0.000045), Elem(31,8,0.000022), +            Elem(34,0,0.000091), Elem(34,1,0.000124), Elem(34,2,0.000210), Elem(34,3,0.013485), Elem(34,4,0.004727), Elem(34,5,0.009097), Elem(34,6,0.000246), Elem(34,7,0.004649), +            Elem(34,8,0.009046), Elem(43,4,0.000022), Elem(43,5,0.000045), Elem(43,6,0.004467), Elem(43,7,0.000045), Elem(43,8,0.000022), Elem(46,0,0.022405), Elem(46,1,0.000246), +            Elem(46,2,0.000143), Elem(46,3,0.000130), Elem(46,4,0.004538), Elem(46,5,0.000112), Elem(46,6,0.000104), Elem(46,7,0.004514), Elem(46,8,0.000084), Elem(50,4,0.000022), +            Elem(50,5,0.000045), Elem(50,6,0.004467), Elem(50,7,0.000045), Elem(50,8,0.000022), Elem(53,0,0.000018), Elem(53,1,0.000022), Elem(53,2,0.000031), Elem(53,3,0.000056), +            Elem(53,4,0.004482), Elem(53,5,0.000067), Elem(53,6,0.000067), Elem(53,7,0.004482), Elem(53,8,0.000056), Elem(58,0,2.216334), Elem(58,1,0.022163), Elem(58,2,0.011082), +            Elem(58,3,0.007388), Elem(58,4,0.005541), Elem(58,5,0.004433), Elem(58,6,0.003694), Elem(58,7,0.003166), Elem(58,8,0.002770), Elem(70,0,0.011118), Elem(70,1,0.022214), +            Elem(70,2,2.216423), Elem(70,3,0.028878), Elem(70,4,0.011204), Elem(70,5,0.011903), Elem(70,6,0.005630), Elem(70,7,0.004516), Elem(70,8,0.008189), Elem(77,0,0.022163), +            Elem(77,1,2.216334), Elem(77,2,0.022163), Elem(77,3,0.011082), Elem(77,4,0.007388), Elem(77,5,0.005541), Elem(77,6,0.004433), Elem(77,7,0.003694), Elem(77,8,0.003166), +            Elem(82,0,0.003755), Elem(82,1,0.005269), Elem(82,2,0.031215), Elem(82,3,0.664980), Elem(82,4,0.012256), Elem(82,5,0.447074), Elem(82,6,0.008895), Elem(82,7,0.008332), +            Elem(82,8,0.445051), Elem(86,0,0.000737), Elem(86,1,0.000884), Elem(86,2,0.001106), Elem(86,3,0.001474), Elem(86,4,0.002211), Elem(86,5,0.004422), Elem(86,6,0.442217), +            Elem(86,7,0.004422), Elem(86,8,0.002211), Elem(89,0,0.001737), Elem(89,1,0.002211), Elem(89,2,0.003096), Elem(89,3,0.005528), Elem(89,4,0.443691), Elem(89,5,0.006633), +            Elem(89,6,0.006633), Elem(89,7,0.443691), Elem(89,8,0.005528), }, +      { Elem(11,0,0.044774), Elem(11,1,0.000448), Elem(11,2,0.000224), Elem(11,3,0.000149), Elem(11,4,0.000112), Elem(11,5,0.000090), Elem(11,6,0.000075), Elem(11,7,0.000064), +            Elem(11,8,0.000056), Elem(23,0,0.000224), Elem(23,1,0.000448), Elem(23,2,0.044774), Elem(23,3,0.000448), Elem(23,4,0.000224), Elem(23,5,0.000149), Elem(23,6,0.000112), +            Elem(23,7,0.000090), Elem(23,8,0.000075), Elem(30,0,0.000448), Elem(30,1,0.044774), Elem(30,2,0.000448), Elem(30,3,0.000224), Elem(30,4,0.000149), Elem(30,5,0.000112), +            Elem(30,6,0.000090), Elem(30,7,0.000075), Elem(30,8,0.000064), Elem(32,4,0.000022), Elem(32,5,0.000045), Elem(32,6,0.004467), Elem(32,7,0.000045), Elem(32,8,0.000022), +            Elem(35,0,0.000091), Elem(35,1,0.000124), Elem(35,2,0.000210), Elem(35,3,0.013485), Elem(35,4,0.004727), Elem(35,5,0.009097), Elem(35,6,0.000246), Elem(35,7,0.004649), +            Elem(35,8,0.009046), Elem(44,4,0.000022), Elem(44,5,0.000045), Elem(44,6,0.004467), Elem(44,7,0.000045), Elem(44,8,0.000022), Elem(47,0,0.022405), Elem(47,1,0.000246), +            Elem(47,2,0.000143), Elem(47,3,0.000130), Elem(47,4,0.004538), Elem(47,5,0.000112), Elem(47,6,0.000104), Elem(47,7,0.004514), Elem(47,8,0.000084), Elem(51,4,0.000022), +            Elem(51,5,0.000045), Elem(51,6,0.004467), Elem(51,7,0.000045), Elem(51,8,0.000022), Elem(54,0,0.000018), Elem(54,1,0.000022), Elem(54,2,0.000031), Elem(54,3,0.000056), +            Elem(54,4,0.004482), Elem(54,5,0.000067), Elem(54,6,0.000067), Elem(54,7,0.004482), Elem(54,8,0.000056), Elem(59,0,2.216334), Elem(59,1,0.022163), Elem(59,2,0.011082), +            Elem(59,3,0.007388), Elem(59,4,0.005541), Elem(59,5,0.004433), Elem(59,6,0.003694), Elem(59,7,0.003166), Elem(59,8,0.002770), Elem(66,0,0.000224), Elem(66,1,0.022387), +            Elem(66,2,0.000224), Elem(66,3,0.000112), Elem(66,4,0.000075), Elem(66,5,0.000056), Elem(66,6,0.000045), Elem(66,7,0.000037), Elem(66,8,0.000032), Elem(71,0,0.011118), +            Elem(71,1,0.022214), Elem(71,2,2.216423), Elem(71,3,0.028878), Elem(71,4,0.011204), Elem(71,5,0.011903), Elem(71,6,0.005630), Elem(71,7,0.004516), Elem(71,8,0.008189), +            Elem(78,0,0.022163), Elem(78,1,2.216334), Elem(78,2,0.022163), Elem(78,3,0.011082), Elem(78,4,0.007388), Elem(78,5,0.005541), Elem(78,6,0.004433), Elem(78,7,0.003694), +            Elem(78,8,0.003166), Elem(83,0,0.003755), Elem(83,1,0.005269), Elem(83,2,0.031215), Elem(83,3,0.664980), Elem(83,4,0.012256), Elem(83,5,0.447074), Elem(83,6,0.008895), +            Elem(83,7,0.008332), Elem(83,8,0.445051), Elem(87,0,0.000737), Elem(87,1,0.000884), Elem(87,2,0.001106), Elem(87,3,0.001474), Elem(87,4,0.002211), Elem(87,5,0.004422), +            Elem(87,6,0.442217), Elem(87,7,0.004422), Elem(87,8,0.002211), Elem(90,0,0.001737), Elem(90,1,0.002211), Elem(90,2,0.003096), Elem(90,3,0.005528), Elem(90,4,0.443691), +            Elem(90,5,0.006633), Elem(90,6,0.006633), Elem(90,7,0.443691), Elem(90,8,0.005528), }, +      { Elem(12,0,0.044774), Elem(12,1,0.000448), Elem(12,2,0.000224), Elem(12,3,0.000149), Elem(12,4,0.000112), Elem(12,5,0.000090), Elem(12,6,0.000075), Elem(12,7,0.000064), +            Elem(12,8,0.000056), Elem(24,0,0.000224), Elem(24,1,0.000448), Elem(24,2,0.044774), Elem(24,3,0.000448), Elem(24,4,0.000224), Elem(24,5,0.000149), Elem(24,6,0.000112), +            Elem(24,7,0.000090), Elem(24,8,0.000075), Elem(31,0,0.000483), Elem(31,1,0.044819), Elem(31,2,0.000510), Elem(31,3,0.000336), Elem(31,4,0.009113), Elem(31,5,0.000246), +            Elem(31,6,0.000224), Elem(31,7,0.009038), Elem(31,8,0.000176), Elem(33,4,0.000022), Elem(33,5,0.000045), Elem(33,6,0.004467), Elem(33,7,0.000045), Elem(33,8,0.000022), +            Elem(41,0,0.000074), Elem(41,1,0.000102), Elem(41,2,0.000178), Elem(41,3,0.013429), Elem(41,4,0.000245), Elem(41,5,0.009030), Elem(41,6,0.000179), Elem(41,7,0.000167), +            Elem(41,8,0.008990), Elem(45,4,0.000022), Elem(45,5,0.000045), Elem(45,6,0.004467), Elem(45,7,0.000045), Elem(45,8,0.000022), Elem(52,4,0.000022), Elem(52,5,0.000045), +            Elem(52,6,0.004467), Elem(52,7,0.000045), Elem(52,8,0.000022), Elem(60,0,2.216446), Elem(60,1,0.022387), Elem(60,2,0.033469), Elem(60,3,0.007612), Elem(60,4,0.005653), +            Elem(60,5,0.004507), Elem(60,6,0.003750), Elem(60,7,0.003211), Elem(60,8,0.002808), Elem(67,0,0.000241), Elem(67,1,0.022410), Elem(67,2,0.000255), Elem(67,3,0.000168), +            Elem(67,4,0.004556), Elem(67,5,0.000123), Elem(67,6,0.000112), Elem(67,7,0.004519), Elem(67,8,0.000088), Elem(72,0,0.033469), Elem(72,1,0.022387), Elem(72,2,2.216446), +            Elem(72,3,0.022238), Elem(72,4,0.011138), Elem(72,5,0.007433), Elem(72,6,0.005578), Elem(72,7,0.004465), Elem(72,8,0.003722), Elem(79,0,0.023901), Elem(79,1,2.218545), +            Elem(79,2,0.025259), Elem(79,3,0.016609), Elem(79,4,0.451079), Elem(79,5,0.012174), Elem(79,6,0.011066), Elem(79,7,0.447385), Elem(79,8,0.008694), Elem(84,0,0.003643), +            Elem(84,1,0.005046), Elem(84,2,0.008828), Elem(84,3,0.664756), Elem(84,4,0.012144), Elem(84,5,0.446999), Elem(84,6,0.008839), Elem(84,7,0.008287), Elem(84,8,0.445014), +            Elem(88,0,0.000737), Elem(88,1,0.000884), Elem(88,2,0.001106), Elem(88,3,0.001474), Elem(88,4,0.002211), Elem(88,5,0.004422), Elem(88,6,0.442217), Elem(88,7,0.004422), +            Elem(88,8,0.002211), }, +#else +      { Elem(12,0,0.315277), Elem(19,1,0.661660), Elem(12,2,0.443782), Elem(24,3,0.661772), Elem(31,4,2.216334), Elem(36,5,2.216417), Elem(40,6,1.481273), Elem(43,7,0.990112), Elem(48,8,0.990000) }, +      { Elem(13,0,0.315277), Elem(20,1,0.661660), Elem(13,2,0.443782), Elem(25,3,0.661660), Elem(32,4,2.216334), Elem(37,5,2.216334), Elem(41,6,1.481273), Elem(44,7,0.990000), Elem(49,8,0.990000) }, +      { Elem(14,0,0.315277), Elem(21,1,0.661660), Elem(14,2,0.443782), Elem(26,3,0.661772), Elem(33,4,2.216334), Elem(38,5,2.216417), Elem(42,6,1.481273), Elem(45,7,0.990112), Elem(50,8,0.990000) }, +      { Elem(15,0,0.315277), Elem(22,1,0.661660), Elem(15,2,0.443782), Elem(27,3,0.661772), Elem(34,4,2.216334), Elem(39,5,2.216417), Elem(43,6,1.481273), Elem(46,7,0.990112), Elem(51,8,0.990000) }, +      { Elem(16,0,0.315277), Elem(23,1,0.661660), Elem(16,2,0.443782), Elem(28,3,0.661772), Elem(35,4,2.216334), Elem(40,5,2.216417), Elem(44,6,1.481273), Elem(47,7,0.990112), Elem(52,8,0.990000) }, +      { Elem(17,0,0.315277), Elem(24,1,0.661735), Elem(17,2,0.443782), Elem(29,3,0.661772), Elem(36,4,2.216356), Elem(41,5,2.216367), Elem(45,6,1.481273), Elem(48,7,0.990000), Elem(53,8,0.990000) }, +      { Elem(18,0,0.315277), Elem(25,1,0.661660), Elem(18,2,0.443782), Elem(30,3,0.661772), Elem(37,4,2.216334), Elem(42,5,2.216367), Elem(46,6,1.481273), Elem(49,7,0.990000), Elem(54,8,0.990000) }, +      { Elem(19,0,0.315277), Elem(26,1,0.661735), Elem(19,2,0.443782), Elem(31,3,0.661660), Elem(38,4,2.216356), Elem(43,5,2.216367), Elem(47,6,1.481273), Elem(50,7,0.990000), Elem(55,8,0.990075) }, +      { Elem(20,0,0.315277), Elem(27,1,0.661735), Elem(20,2,0.443782), Elem(32,3,0.661660), Elem(39,4,2.216356), Elem(44,5,2.216367), Elem(48,6,1.481273), Elem(51,7,0.990000), Elem(56,8,0.990075) }, +      { Elem(21,0,0.315277), Elem(28,1,0.661735), Elem(21,2,0.443782), Elem(33,3,0.661660), Elem(40,4,2.216356), Elem(45,5,2.216367), Elem(49,6,1.481273), Elem(52,7,0.990000), Elem(57,8,0.990075) }, +      { Elem(22,0,0.315277), Elem(29,1,0.661735), Elem(22,2,0.443782), Elem(34,3,0.661660), Elem(41,4,2.216356), Elem(46,5,2.216367), Elem(50,6,1.481273), Elem(53,7,0.990000), Elem(58,8,0.990075) }, +      { Elem(23,0,0.315277), Elem(30,1,0.661735), Elem(23,2,0.443782), Elem(35,3,0.661660), Elem(42,4,2.216356), Elem(47,5,2.216367), Elem(51,6,1.481273), Elem(54,7,0.990000), Elem(59,8,0.990075) }, +      { Elem(12,0,0.442242), Elem(31,1,0.661660), Elem(24,2,0.442284), Elem(36,3,0.661929), Elem(43,4,2.216434), Elem(48,5,1.481273), Elem(52,6,1.481273), Elem(55,7,0.990075), Elem(60,8,0.990011) }, +      { Elem(13,0,0.442242), Elem(32,1,0.661660), Elem(25,2,0.442217), Elem(37,3,0.661660), Elem(44,4,2.216367), Elem(49,5,1.481273), Elem(53,6,1.481273), Elem(56,7,0.990075), Elem(61,8,0.990011) }, +      { Elem(14,0,0.442242), Elem(33,1,0.661660), Elem(26,2,0.442284), Elem(38,3,0.661855), Elem(45,4,1.481374), Elem(50,5,1.481273), Elem(54,6,0.990000), Elem(57,7,0.990050), Elem(62,8,0.990011) }, +      { Elem(15,0,0.442242), Elem(34,1,0.990000), Elem(27,2,0.442284), Elem(39,3,0.661855), Elem(46,4,1.481374), Elem(51,5,0.990000), Elem(55,6,0.990000), Elem(58,7,0.990050), Elem(63,8,0.990011) }, +      { Elem(16,0,0.442242), Elem(35,1,0.990000), Elem(28,2,0.442284), Elem(40,3,0.661855), Elem(47,4,1.481374), Elem(52,5,0.990000), Elem(56,6,0.990000), Elem(59,7,0.990050), Elem(64,8,0.990011) }, +      { Elem(17,0,0.661686), Elem(36,1,0.990000), Elem(29,2,0.661761), Elem(41,3,0.990067), Elem(48,4,1.481273), Elem(53,5,0.990000), Elem(57,6,0.990000), Elem(60,7,0.990000), Elem(65,8,0.990017) }, +      { Elem(18,0,0.661686), Elem(37,1,0.990000), Elem(30,2,0.661761), Elem(42,3,0.990067), Elem(49,4,1.481273), Elem(54,5,0.990000), Elem(58,6,0.990000), Elem(61,7,0.990000), Elem(66,8,0.990017) }, +      { Elem(19,0,0.661686), Elem(38,1,0.990000), Elem(31,2,0.661660), Elem(43,3,0.990050), Elem(50,4,1.481273), Elem(55,5,0.990050), Elem(59,6,0.990000), Elem(62,7,0.990000), Elem(67,8,0.990017) }, +      { Elem(20,0,0.661686), Elem(39,1,0.990000), Elem(32,2,0.661660), Elem(44,3,0.990050), Elem(51,4,0.990000), Elem(56,5,0.990050), Elem(60,6,0.990000), Elem(63,7,0.990000), Elem(68,8,0.990017) }, +      { Elem(21,0,0.661686), Elem(40,1,0.990000), Elem(33,2,0.661660), Elem(45,3,0.990050), Elem(52,4,0.990000), Elem(57,5,0.990050), Elem(61,6,0.990000), Elem(64,7,0.990000), Elem(69,8,0.990017) }, +      { Elem(22,0,0.661686), Elem(41,1,0.990000), Elem(34,2,0.990000), Elem(46,3,0.990050), Elem(53,4,0.990000), Elem(58,5,0.990050), Elem(62,6,0.990000), Elem(65,7,0.990000), Elem(70,8,0.990017) }, +      { Elem(23,0,0.661686), Elem(42,1,0.990000), Elem(35,2,0.990000), Elem(47,3,0.990050), Elem(54,4,0.990000), Elem(59,5,0.990050), Elem(63,6,0.990000), Elem(66,7,0.990000), Elem(71,8,0.990017) }, +      { Elem(24,0,0.990075), Elem(43,1,0.990133), Elem(36,2,0.990150), Elem(48,3,0.990000), Elem(55,4,0.990033), Elem(60,5,0.990033), Elem(64,6,0.990000), Elem(67,7,0.990000), Elem(72,8,0.990058) }, +      { Elem(25,0,0.990025), Elem(44,1,0.990033), Elem(37,2,0.990000), Elem(49,3,0.990000), Elem(56,4,0.990033), Elem(61,5,0.990033), Elem(65,6,0.990000), Elem(68,7,0.990000), Elem(73,8,0.990058) }, +      { Elem(26,0,0.990075), Elem(45,1,0.990133), Elem(38,2,0.990150), Elem(50,3,0.990000), Elem(57,4,0.990033), Elem(62,5,0.990033), Elem(66,6,0.990000), Elem(69,7,0.990000), Elem(74,8,0.990058) }, +      { Elem(27,0,0.990063), Elem(46,1,0.990133), Elem(39,2,0.990150), Elem(51,3,0.990000), Elem(58,4,0.990033), Elem(63,5,0.990000), Elem(67,6,0.990000), Elem(70,7,0.990000), Elem(75,8,0.990058) }, +      { Elem(28,0,0.990075), Elem(47,1,0.990133), Elem(40,2,0.990150), Elem(52,3,0.990000), Elem(59,4,0.990033), Elem(64,5,0.990033), Elem(68,6,0.990000), Elem(71,7,0.990000), Elem(76,8,0.990058) }, +      { Elem(29,0,0.990063), Elem(48,1,0.990000), Elem(41,2,0.990050), Elem(53,3,0.990000), Elem(60,4,0.990033), Elem(65,5,0.990000), Elem(69,6,0.990000), Elem(72,7,0.990033), Elem(77,8,0.990013) }, +      { Elem(30,0,0.990075), Elem(49,1,0.990000), Elem(42,2,0.990050), Elem(54,3,0.990000), Elem(61,4,0.990033), Elem(66,5,0.990033), Elem(70,6,0.990000), Elem(73,7,0.990033), Elem(78,8,0.990058) }, +      { Elem(31,0,0.990025), Elem(50,1,0.990000), Elem(43,2,0.990100), Elem(55,3,0.990100), Elem(62,4,0.990033), Elem(67,5,0.990033), Elem(71,6,0.990000), Elem(74,7,0.990033), Elem(79,8,0.990058) }, +      { Elem(32,0,0.990025), Elem(51,1,0.990000), Elem(44,2,0.990100), Elem(56,3,0.990100), Elem(63,4,0.990000), Elem(68,5,0.990033), Elem(72,6,0.990000), Elem(75,7,0.990033), Elem(80,8,0.990058) }, +      { Elem(33,0,0.990025), Elem(52,1,0.990000), Elem(45,2,0.990100), Elem(57,3,0.990100), Elem(64,4,0.990033), Elem(69,5,0.990033), Elem(73,6,0.990000), Elem(76,7,0.990033), Elem(81,8,0.990046) }, +      { Elem(34,0,0.990025), Elem(53,1,0.990000), Elem(46,2,0.990100), Elem(58,3,0.990100), Elem(65,4,0.990000), Elem(70,5,0.990033), Elem(74,6,0.990000), Elem(77,7,0.990000), Elem(82,8,0.990058) }, +      { Elem(35,0,0.990025), Elem(54,1,0.990000), Elem(47,2,0.990100), Elem(59,3,0.990100), Elem(66,4,0.990033), Elem(71,5,0.990033), Elem(75,6,0.990000), Elem(78,7,0.990033), Elem(83,8,0.990058) }, +      { Elem(36,0,1.481273), Elem(55,1,0.990000), Elem(48,2,0.990000), Elem(60,3,0.990050), Elem(67,4,0.990033), Elem(72,5,0.990050), Elem(76,6,0.990000), Elem(79,7,0.990033), Elem(84,8,0.990000) }, +      { Elem(37,0,1.481273), Elem(56,1,0.990000), Elem(49,2,1.481290), Elem(61,3,0.990050), Elem(68,4,0.990033), Elem(73,5,0.990050), Elem(77,6,0.990000), Elem(80,7,0.990033), Elem(85,8,0.990025) }, +      { Elem(38,0,1.481273), Elem(57,1,1.481273), Elem(50,2,1.481290), Elem(62,3,0.990050), Elem(69,4,0.990033), Elem(74,5,0.990050), Elem(78,6,0.990000), Elem(81,7,0.990033), Elem(86,8,0.990025) }, +      { Elem(39,0,1.481273), Elem(58,1,1.481273), Elem(51,2,1.481290), Elem(63,3,0.661660), Elem(70,4,0.990033), Elem(75,5,0.990033), Elem(79,6,0.990000), Elem(82,7,0.990033), Elem(87,8,0.990025) }, +      { Elem(40,0,1.481273), Elem(59,1,1.481273), Elem(52,2,1.481290), Elem(64,3,0.661711), Elem(71,4,0.661694), Elem(76,5,0.990033), Elem(80,6,0.990000), Elem(83,7,0.990022), Elem(88,8,0.990025) }, +      { Elem(41,0,1.481302), Elem(60,1,1.481296), Elem(53,2,1.481290), Elem(65,3,0.661660), Elem(72,4,0.661710), Elem(77,5,0.661660), Elem(81,6,0.990000), Elem(84,7,0.990043), Elem(89,8,0.990025) }, +      { Elem(42,0,1.481302), Elem(61,1,1.481296), Elem(54,2,1.481290), Elem(66,3,0.661694), Elem(73,4,0.661710), Elem(78,5,0.661694), Elem(82,6,0.661660), Elem(85,7,0.990043), Elem(90,8,0.990025) }, +      { Elem(43,0,1.481358), Elem(62,1,1.481296), Elem(55,2,1.481348), Elem(67,3,0.661703), Elem(74,4,0.661710), Elem(79,5,0.663168), Elem(83,6,0.661660), Elem(86,7,0.661682), Elem(79,8,0.444436) }, +      { Elem(44,0,1.481358), Elem(63,1,1.481273), Elem(56,2,1.481348), Elem(68,3,0.661703), Elem(75,4,0.661710), Elem(80,5,0.663168), Elem(84,6,0.661660), Elem(87,7,0.661682), Elem(80,8,0.444436) }, +      { Elem(45,0,1.481358), Elem(64,1,1.481296), Elem(57,2,1.481348), Elem(69,3,0.661703), Elem(76,4,0.661710), Elem(81,5,0.663168), Elem(85,6,0.661660), Elem(88,7,0.661682), Elem(81,8,0.444436) }, +      { Elem(46,0,1.481358), Elem(65,1,1.481273), Elem(58,2,1.481348), Elem(70,3,0.661703), Elem(77,4,0.661660), Elem(82,5,0.663168), Elem(86,6,0.661660), Elem(89,7,0.661682), Elem(82,8,0.444436) }, +      { Elem(47,0,1.481358), Elem(66,1,1.481296), Elem(59,2,1.481348), Elem(71,3,0.661703), Elem(78,4,0.661710), Elem(83,5,0.663168), Elem(87,6,0.661660), Elem(90,7,0.661682), Elem(83,8,0.444436) }, +      { Elem(48,0,2.216334), Elem(67,1,1.481303), Elem(60,2,1.481340), Elem(72,3,0.661810), Elem(79,4,0.663184), Elem(84,5,0.663135), Elem(88,6,0.661660), Elem(79,7,0.444447), Elem(84,8,0.444422) }, +      { Elem(49,0,2.216353), Elem(68,1,1.481303), Elem(61,2,2.216401), Elem(73,3,0.661884), Elem(80,4,0.663184), Elem(85,5,0.663179), Elem(89,6,0.661660), Elem(80,7,0.444447), Elem(85,8,0.444450) }, +      { Elem(50,0,2.216353), Elem(69,1,2.216356), Elem(62,2,2.216401), Elem(74,3,0.661884), Elem(81,4,0.443765), Elem(86,5,0.663179), Elem(90,6,0.442217), Elem(81,7,0.443728), Elem(86,8,0.444450) }, +      { Elem(51,0,2.216353), Elem(70,1,2.216356), Elem(63,2,2.216334), Elem(75,3,0.661884), Elem(82,4,0.443765), Elem(87,5,0.663179), Elem(79,6,0.442217), Elem(82,7,0.443728), Elem(87,8,0.444450) }, +      { Elem(52,0,2.216353), Elem(71,1,2.216356), Elem(64,2,2.216401), Elem(76,3,0.661884), Elem(83,4,0.443765), Elem(88,5,0.663179), Elem(80,6,0.442217), Elem(83,7,0.443728), Elem(88,8,0.444450) }, +      { Elem(53,0,2.216353), Elem(72,1,2.216334), Elem(65,2,2.216334), Elem(77,3,0.661660), Elem(84,4,0.443691), Elem(89,5,0.663179), Elem(81,6,0.442217), Elem(84,7,0.443691), Elem(89,8,0.444450) }, +      { Elem(54,0,2.216348), Elem(73,1,2.216334), Elem(66,2,2.216401), Elem(78,3,0.661884), Elem(85,4,0.443691), Elem(90,5,0.443736), Elem(82,6,0.442217), Elem(85,7,0.443691), Elem(90,8,0.443719) }, +      { Elem(55,0,2.216334), Elem(74,1,2.216334), Elem(67,2,2.216423), Elem(79,3,0.664980), Elem(86,4,0.443691), Elem(79,5,0.447074), Elem(83,6,0.442217), Elem(86,7,0.443691), Elem(79,8,0.445051) }, +      { Elem(56,0,2.216334), Elem(75,1,2.216334), Elem(68,2,2.216423), Elem(80,3,0.664980), Elem(87,4,0.443691), Elem(80,5,0.447074), Elem(84,6,0.442217), Elem(87,7,0.443691), Elem(80,8,0.445051) }, +      { Elem(57,0,2.216334), Elem(76,1,2.216334), Elem(69,2,2.216423), Elem(81,3,0.664980), Elem(88,4,0.443691), Elem(81,5,0.447074), Elem(85,6,0.442217), Elem(88,7,0.443691), Elem(81,8,0.445051) }, +      { Elem(58,0,2.216334), Elem(77,1,2.216334), Elem(70,2,2.216423), Elem(82,3,0.664980), Elem(89,4,0.443691), Elem(82,5,0.447074), Elem(86,6,0.442217), Elem(89,7,0.443691), Elem(82,8,0.445051) }, +      { Elem(59,0,2.216334), Elem(78,1,2.216334), Elem(71,2,2.216423), Elem(83,3,0.664980), Elem(90,4,0.443691), Elem(83,5,0.447074), Elem(87,6,0.442217), Elem(90,7,0.443691), Elem(83,8,0.445051) }, +      { Elem(60,0,2.216446), Elem(79,1,2.218545), Elem(72,2,2.216446), Elem(84,3,0.664756), Elem(79,4,0.451079), Elem(84,5,0.446999), Elem(88,6,0.442217), Elem(79,7,0.447385), Elem(84,8,0.445014) }, +#endif +      };  //---------------------------------------------------------  //   cb2amp @@ -63,14 +1371,16 @@ double Organ::cb2amp(int cb)        return cb2amp_tab[cb];        } +static const int SHIFT = 10; +static const int RESO  = 1024; +  //---------------------------------------------------------  //   Organ  //---------------------------------------------------------  Organ::Organ(int sr) -   : Mess(1) +   : Mess2(1)        { -      idata = new int[NUM_CONTROLLER];        setSampleRate(sr);        gui = 0; @@ -78,43 +1388,39 @@ Organ::Organ(int sr)        if (useCount > 1)              return; +      resolution    = sr / 1000; +      resolution256 = resolution << SHIFT; +        // centibels to amplitude conversion        for (int i = 0; i < MAX_ATTENUATION; i++)              cb2amp_tab[i] = pow(10.0, double(i) / -200.0); -      for (int i = 0; i < 128; ++i) { -            double freq = 8.176 * exp(double(i)*log(2.0)/12.0); -            freq256[i]  = (int) (freq * ((double) RESOLUTION) / sr * 256.0); +      // Initialize sine table. +      waveTable = new float[resolution]; +      for (int i = 0; i < resolution; i++) +            waveTable[i] = sin (i * 2.0 * M_PI / double(resolution)); + +      // Initialize envelope tables + +      envSize    = sr * 4 / 1000;     // 4 msec +      attackEnv  = new float[envSize]; +      releaseEnv = new float[envSize]; + +      for (int i = 0; i < envSize; ++i) { +            attackEnv[i]  = float(i) / float(envSize); +            releaseEnv[i] = float(i) / float(envSize);              } -      int size  = RESOLUTION; -      int half  = size / 2; -      int slope = size / 10; -      int i; -      // Initialize sine table. -      sine_table = new float[size]; -      for (i = 0; i < size; i++) -            sine_table[i] = sin ((i * 2.0 * M_PI) / size) / 6.0; - -      // Initialize triangle table. -      g_triangle_table = new float[size]; -      for (i = 0; i < half; i++) -            g_triangle_table[i] = (4.0 / size * i - 1.0) / 6.0; -      for (; i < size; i++) -            g_triangle_table[i] = (4.0 / size * (size - i) - 1.0) / 6.0; - -      // Initialize pulse table. -      g_pulse_table = new float[size]; -      for (i = 0; i < slope; i++) -            g_pulse_table[i] = (((double) -i) / slope) / 6.0; -      for (; i < half - slope; i++) -            g_pulse_table[i] = -1.0 / 6.0; -      for (; i < half + slope; i++) -            g_pulse_table[i] = (((double) i - half) / slope) / 6.0; -      for (; i < size - slope; i++) -            g_pulse_table[i] = 1.0 / 6.0; -      for (; i < size; i++) -            g_pulse_table[i] = (((double) size - i) / slope) / 6.0; +      addController("drawbar16",  DRAWBAR0,   0, 8, 8); +      addController("drawbar513", DRAWBAR1,   0, 8, 8); +      addController("drawbar8",   DRAWBAR2,   0, 8, 8); +      addController("drawbar4",   DRAWBAR3,   0, 8, 0); +      addController("drawbar223", DRAWBAR4,   0, 8, 0); +      addController("drawbar2",   DRAWBAR5,   0, 8, 0); +      addController("drawbar135", DRAWBAR6,   0, 8, 0); +      addController("drawbar113", DRAWBAR7,   0, 8, 0); +      addController("drawbar1",   DRAWBAR8,   0, 8, 0); +      addController("volume",     CTRL_VOLUME, 0, 127, 100);        }  //--------------------------------------------------------- @@ -125,28 +1431,15 @@ Organ::~Organ()        {        if (gui)              delete gui; -      delete[] idata;        --useCount;        if (useCount == 0) { -            delete[] g_pulse_table; -            delete[] g_triangle_table; -            delete[] sine_table; +            delete[] waveTable; +            delete[] attackEnv; +            delete[] releaseEnv;              }        }  //--------------------------------------------------------- -//   table_pos -//--------------------------------------------------------- - -static inline float table_pos (float* table, unsigned long freq_256, unsigned *accum) -      { -      *accum += freq_256; -      while (*accum >= RESOLUTION * 256) -            *accum -= RESOLUTION * 256; -      return table[*accum >> 8]; -      } - -//---------------------------------------------------------  //   init  //--------------------------------------------------------- @@ -156,10 +1449,35 @@ bool Organ::init(const char* name)        gui->hide();        gui->setWindowTitle(QString(name)); -      for (int i = 0; i < NUM_CONTROLLER; ++i) -            setController(0, synthCtrl[i].num, synthCtrl[i].val); +      int idx = 0; +      foreach(SynthCtrl* c, ctrl) { +            setController(c->ctrl, c->init); +            gui->setParamIdx(idx, c->init); +            ++idx; +            } + +      // see: http://www.dairiki.org/HammondWiki/GearRatio +      static const int gearA[12] = { 85, 71,67,35,69,12,37,49,48,11,67,54 }; +      static const int gearB[12] = { 104,82,73,36,67,11,32,40,37, 8,46,35 }; +      static const int teeth[]   = { 2, 4, 8, 16, 32, 64, 128, 192 }; -      for (int i = 0; i < VOICES; ++i) +      srand(22); +      for (int i = 0; i < NO_WHEELS; ++i) { +            int note     = i % 12; +            int octave   = i / 12; +            if (octave == 7) +                  note += 5; +            // in 60Hz organs, the motor turns at 1200 RPM (20 revolutions /sec) +            double freq        = 20.0 * teeth[octave] * gearA[note] / gearB[note]; +            wheels[i].freq256  = lrint(freq * double(resolution256) / double(sampleRate())); +            wheels[i].accu     = rand() % resolution256; +            wheels[i].refCount = 0; +            wheels[i].active   = false; +            for (int k = 0; k < NO_BUSES; ++k) +                  wheels[i].envCount[k] = 0; +            } + +      for (int i = 0; i < NO_VOICES; ++i)              voices[i].isOn = false;        return false;        } @@ -186,151 +1504,35 @@ void Organ::process(float** ports, int offset, int sampleCount)              }        float* buffer = *ports + offset; -      for (int i = 0; i < VOICES; ++i) { -            Voice* v = &voices[i]; -            if (!v->isOn) -                  continue; -            double vol = velo ? v->velocity : 1.0; -            vol *= volume; - -            unsigned freq_256 = freq256[v->pitch]; -            unsigned* harm0_accum = &(v->harm0_accum); -            unsigned* harm1_accum = &(v->harm1_accum); -            unsigned* harm2_accum = &(v->harm2_accum); -            unsigned* harm3_accum = &(v->harm3_accum); -            unsigned* harm4_accum = &(v->harm4_accum); -            unsigned* harm5_accum = &(v->harm5_accum); - -            unsigned long freq_256_harm2, freq_256_harm3; -            unsigned long freq_256_harm4, freq_256_harm5; - -            float* reed_table  = reed  ? g_pulse_table    : sine_table; -            float* flute_table = flute ? g_triangle_table : sine_table; - -            unsigned freq_256_harm0 = freq_256 / 2; -            unsigned freq_256_harm1 = freq_256; - -            if (brass) { -                  freq_256_harm2 = freq_256       * 2; -                  freq_256_harm3 = freq_256_harm2 * 2; -                  freq_256_harm4 = freq_256_harm3 * 2; -                  freq_256_harm5 = freq_256_harm4 * 2; -                  for (int i = 0; i < sampleCount; i++) { -                        int a1, a2; -                        switch(v->state1) { -                              case ATTACK: -                                    if (v->envL1.step(&a1)) -                                          break; -                                    v->state1 = DECAY; -                              case DECAY: -                                    if (v->envL2.step(&a1)) -                                          break; -                                    v->state1 = SUSTAIN; -                              case SUSTAIN: -                                    a1 = sustain0; -                                    break; -                              case RELEASE: -                                    if (v->envL3.step(&a1)) -                                          break; -                                    v->state1 = OFF; -                                    a1 = MAX_ATTENUATION; -                                    break; -                              } -                        switch(v->state2) { -                              case ATTACK: -                                    if (v->envH1.step(&a2)) -                                          break; -                                    v->state2 = DECAY; -                              case DECAY: -                                    if (v->envH2.step(&a2)) -                                          break; -                                    v->state2 = SUSTAIN; -                              case SUSTAIN: -                                    a2 = sustain1; -                                    break; -                              case RELEASE: -                                    if (v->envH3.step(&a2)) -                                          break; -                                    v->state2 = OFF; -                                    a1 = MAX_ATTENUATION; -                                    break; -                              } -                        if (v->state1 == OFF && v->state2 == OFF) { -                              v->isOn = false; -                              break; -                              } -                        buffer[i] += -                            (table_pos (sine_table, freq_256_harm0, harm0_accum) * harm0 -                           + table_pos (sine_table, freq_256_harm1, harm1_accum) * harm1 -                           + table_pos (reed_table, freq_256_harm2, harm2_accum) * harm2) -                              * cb2amp(a1) * vol -                           + (table_pos (sine_table,  freq_256_harm3, harm3_accum) * harm3 -                           +  table_pos (flute_table, freq_256_harm4, harm4_accum) * harm4 -                           +  table_pos (flute_table, freq_256_harm5, harm5_accum) * harm5) -                             * cb2amp(a2) * vol; -                        } -                  } -            else { -                  freq_256_harm2 = freq_256 * 3 / 2; -                  freq_256_harm3 = freq_256 * 2; -                  freq_256_harm4 = freq_256 * 3; -                  freq_256_harm5 = freq_256_harm3 * 2; -                  for (int i = 0; i < sampleCount; i++) { -                        int a1, a2; -                        switch(v->state1) { -                              case ATTACK: -                                    if (v->envL1.step(&a1)) -                                          break; -                                    v->state1 = DECAY; -                              case DECAY: -                                    if (v->envL2.step(&a1)) -                                          break; -                                    v->state1 = SUSTAIN; -                              case SUSTAIN: -                                    a1 = sustain0; -                                    break; -                              case RELEASE: -                                    if (v->envL3.step(&a1)) -                                          break; -                                    v->state1 = OFF; -                                    a1 = MAX_ATTENUATION; -                                    break; +      memset(buffer, 0, sizeof(float) * sampleCount); +      foreach(Wheel* w, activeWheels) { +            for (int i = 0; i < sampleCount; ++i) { + +                  w->accu   = (w->accu + w->freq256) % resolution256; +                  float val = waveTable[w->accu >> SHIFT]; + +                  for (int k = 0; k < NO_BUSES; ++k) { +                        int* envCnt = &(w->envCount[k]); +                        if (*envCnt > 0) { +                              (*envCnt)--; +                              float gain = w->gain[k] - w->deltaGain[k] * w->env[k][*envCnt]; +                              buffer[i] += val * gain * drawBarGain[k]; +                              if ((*envCnt == 0) && (w->refCount == 0)) { +                                    int idx = activeWheels.indexOf(w); +                                    if (idx != -1) { +                                          activeWheels.removeAt(idx); +                                          w->active = false; +                                          } +                                    }                                } -                        switch(v->state2) { -                              case ATTACK: -                                    if (v->envH1.step(&a2)) -                                          break; -                                    v->state2 = DECAY; -                              case DECAY: -                                    if (v->envH2.step(&a2)) -                                          break; -                                    v->state2 = SUSTAIN; -                              case SUSTAIN: -                                    a2 = sustain1; -                                    break; -                              case RELEASE: -                                    if (v->envH3.step(&a2)) -                                          break; -                                    v->state2 = OFF; -                                    a1 = MAX_ATTENUATION; -                                    break; +                        else { +                              buffer[i] += val * w->gain[k] * drawBarGain[k];                                } -                        if (v->state1 == OFF && v->state2 == OFF) { -                              v->isOn = false; -                              break; -                              } -                        buffer[i] += -                           (table_pos (sine_table, freq_256_harm0, harm0_accum) * harm0 -                           + table_pos (sine_table, freq_256_harm1, harm1_accum) * harm1 -                           + table_pos (sine_table, freq_256_harm2, harm2_accum) * harm2) -                              * cb2amp(a1) * vol -                           + (table_pos (reed_table, freq_256_harm3, harm3_accum) * harm3 -                           + table_pos (sine_table, freq_256_harm4,  harm4_accum) * harm4 -                           + table_pos (flute_table, freq_256_harm5, harm5_accum) * harm5) -                             * cb2amp(a2) * vol;                          }                    }              } +      for (int i = 0; i < sampleCount; ++i) +            buffer[i] *= volume;        }  //--------------------------------------------------------- @@ -339,34 +1541,44 @@ void Organ::process(float** ports, int offset, int sampleCount)  bool Organ::playNote(int channel, int pitch, int velo)        { +      if (pitch < 36 || pitch > 97) +            return false;        if (velo == 0) {              noteoff(channel, pitch);              return false;              } -      for (int i = 0; i < VOICES; ++i) { +      int tone = pitch - 36; +      for (int i = 0; i < NO_VOICES; ++i) {              if (voices[i].isOn)                    continue; -            voices[i].isOn     = true; -            voices[i].pitch    = pitch; -            voices[i].channel  = channel; -            // velo is never 0 -            voices[i].velocity = cb2amp(int(200 * log10((127.0 * 127)/(velo*velo)))); -            voices[i].state1 = ATTACK; -            voices[i].state2 = ATTACK; -            voices[i].envL1.set(attack0,  MAX_ATTENUATION, 0); -            voices[i].envL2.set(decay0,   MAX_ATTENUATION, sustain0); -            voices[i].envL3.set(release0, sustain0, MAX_ATTENUATION); - -            voices[i].envH1.set(attack1,  MAX_ATTENUATION, 0); -            voices[i].envH2.set(decay1,   MAX_ATTENUATION, sustain1); -            voices[i].envH3.set(release1, sustain1, MAX_ATTENUATION); - -            voices[i].harm0_accum = 0; -            voices[i].harm1_accum = 0; -            voices[i].harm2_accum = 0; -            voices[i].harm3_accum = 0; -            voices[i].harm4_accum = 0; -            voices[i].harm5_accum = 0; +            voices[i].isOn  = true; +            voices[i].pitch = pitch; +            for (int k = 0; k < NO_ELEMENTS; ++k) { +                  const Elem* e = &routing[tone][k]; +                  if (e->bus == -1) +                        break; +                  Wheel* w    = &wheels[e->wheel]; +                  int bus     = e->bus; +                  float level = e->level; +                  if (!w->active) { +                        for (int k = 0; k < NO_BUSES; ++k) { +                              w->gain[k] = 0.0; +                              w->envCount[k] = 0; +                              } +                        activeWheels.append(w); +                        w->active = true; +                        w->envCount[bus] = 0; +                        } +                  float deltaGain = level; +                  if (w->envCount[bus]) { +                        deltaGain += w->deltaGain[bus] * w->env[bus][w->envCount[bus]]; +                        } +                  w->envCount[bus]  = envSize; +                  w->env[bus]       = attackEnv; +                  w->deltaGain[bus] = deltaGain; +                  w->gain[bus]      += level; +                  w->refCount++; +                  }              return false;              }        printf("organ: voices overflow!\n"); @@ -379,145 +1591,79 @@ bool Organ::playNote(int channel, int pitch, int velo)  void Organ::noteoff(int channel, int pitch)        { -      bool found = false; -      for (int i = 0; i < VOICES; ++i) { -            if (voices[i].isOn && (voices[i].pitch == pitch) -               && (voices[i].channel == channel)) { -                  found = true; -                  voices[i].state1 = RELEASE; -                  voices[i].state2 = RELEASE; -                  } -            } -      if (!found) { -            printf("Organ: noteoff %d:%d not found\n", channel, pitch); -            for (int i = 0; i < VOICES; ++i) { -                  if (voices[i].isOn) -                        printf("  %d\n", voices[i].pitch); +      int tone = pitch - 36; +      for (int i = 0; i < NO_VOICES; ++i) { +            if (voices[i].isOn && (voices[i].pitch == pitch)) { +                  voices[i].isOn = false; +                  for (int k = 0; k < NO_ELEMENTS; ++k) { +                        const Elem* e = &routing[tone][k]; +                        if (e->bus == -1) +                              break; +                        Wheel* w    = &wheels[e->wheel]; +                        int bus     = e->bus; +                        float level = e->level; + +                        float deltaGain = -level; +                        if (w->envCount[bus]) { +                              deltaGain += w->deltaGain[bus] * w->env[bus][w->envCount[bus]]; +                              } +                        w->envCount[bus]  = envSize; +                        w->env[bus]       = releaseEnv; +                        w->deltaGain[bus] = deltaGain; +                        w->gain[bus]     -= level; +                        if (w->refCount) +                              w->refCount--; +                        } +                  return;                    }              } +      printf("Organ: noteoff %d:%d not found\n", channel, pitch);        }  //---------------------------------------------------------  //   setController  //--------------------------------------------------------- -void Organ::setController(int ctrl, int data) +void Organ::setController(int ctrlId, int data)        { -      int sr = sampleRate(); -      switch (ctrl) { -            case HARM0: -                  harm0 = cb2amp(-data); -                  break; -            case HARM1: -                  harm1 = cb2amp(-data); -                  break; -            case HARM2: -                  harm2 = cb2amp(-data); -                  break; -            case HARM3: -                  harm3 = cb2amp(-data); -                  break; -            case HARM4: -                  harm4 = cb2amp(-data); -                  break; -            case HARM5: -                  harm5 = cb2amp(-data); -                  break; -            case ATTACK_LO:   // maxval -> 500msec -                  attack0 = (data * sr) / 1000; -                  break; -            case DECAY_LO:    // maxval -> 5000msec -                  decay0 = (data * sr) / 1000; -                  break; -            case SUSTAIN_LO: -                  sustain0 = -data; -                  break; -            case RELEASE_LO: -                  release0 = (data * sr) / 1000; -                  break; -            case ATTACK_HI: -                  attack1 = (data * sr) / 1000; -                  break; -            case DECAY_HI: -                  decay1 =  (data * sr) / 1000; -                  break; -            case SUSTAIN_HI: -                  sustain1 = -data; -                  break; -            case RELEASE_HI: -                  release1 = (data * sr) / 1000; -                  break; -            case BRASS: -                  brass = data; -                  break; -            case FLUTE: -                  flute = data; -                  break; -            case REED: -                  reed  = data; -                  break; -            case VELO: -                  velo = data; +      int ctrlIdx = controllerIdx(ctrlId); +      if (ctrlIdx != -1) +            ctrl[ctrlIdx]->val = data; + +      switch (ctrlId) { +            case DRAWBAR0 ... DRAWBAR8: +                  { +                  int db = ctrlId - DRAWBAR0; +                  drawBarGain[db] = float(data) / 8.0; +                  }                    break;              case CTRL_VOLUME:                    data &= 0x7f;                    volume = data == 0 ? 0.0 : cb2amp(int(200 * log10((127.0 * 127)/(data*data)))); +                  volume *= .04;                    break;              case CTRL_ALL_SOUNDS_OFF: -                  for (int i = 0; i < VOICES; ++i) +                  for (int i = 0; i < NO_VOICES; ++i)                          voices[i].isOn = false;                    break;              case CTRL_RESET_ALL_CTRL: -                  for (int i = 0; i < NUM_CONTROLLER; ++i) -                        setController(0, synthCtrl[i].num, synthCtrl[i].val); +//                  for (int i = 0; i < NUM_CONTROLLER; ++i) +//                        setController(0, synthCtrl[i].num, synthCtrl[i].val);                    break;              default: -//                  fprintf(stderr, "Organ:set unknown Ctrl 0x%x to 0x%x\n", ctrl, data); +                  fprintf(stderr, "Organ:set unknown Ctrl 0x%x to 0x%x\n", ctrlId, data);                    return;              } -      for (int i = 0; i < NUM_CONTROLLER; ++i) { -            if (synthCtrl[i].num == ctrl) { -                  synthCtrl[i].val = data; -                  break; -                  } -            }        }  //---------------------------------------------------------  //   setController  //--------------------------------------------------------- -bool Organ::setController(int channel, int ctrl, int data) +bool Organ::setController(int channel, int ctrlId, int data)        { -      setController(ctrl, data); - -      switch (ctrl) { -            case HARM0: -            case HARM1: -            case HARM2: -            case HARM3: -            case HARM4: -            case HARM5: -            case ATTACK_LO: -            case DECAY_LO: -            case SUSTAIN_LO: -            case RELEASE_LO: -            case ATTACK_HI: -            case DECAY_HI: -            case SUSTAIN_HI: -            case RELEASE_HI: -            case BRASS: -            case FLUTE: -            case REED: -            case VELO: -                  { -                  MidiEvent ev(0, channel, ME_CONTROLLER, ctrl, data); -                  gui->writeEvent(ev); -                  } -                  break; -            default: -                  break; -            } +      MidiEvent ev(0, channel, ME_CONTROLLER, ctrlId, data); +      gui->writeEvent(ev);        return false;        } @@ -527,52 +1673,25 @@ bool Organ::setController(int channel, int ctrl, int data)  bool Organ::sysex(int n, const unsigned char* data)        { -      if (unsigned(n) != (NUM_INIT_CONTROLLER * sizeof(int))) { -            printf("Organ: unknown sysex\n"); +      int nn = ctrl.size() * sizeof(int); +      if (nn != n) { +            printf("unknown sysex %d %02x %02x\n", n, data[0], data[1]);              return false;              } -      int* s = (int*) data; -      for (int i = 0; i < NUM_INIT_CONTROLLER; ++i) { -            int val = *s++; -            setController(0, synthCtrl[i].num, val); +      const int* s = (const int*) data; +      for (int i = 0; i < ctrl.size(); ++i) { +            setController(0, ctrl[i]->ctrl, *s); +            setController(ctrl[i]->ctrl, *s); +            s++;              }        return false;        }  //--------------------------------------------------------- -//   getInitData -//--------------------------------------------------------- - -void Organ::getInitData(int* n, const unsigned char**p) -      { -      int* d = idata; -      for (int i = 0; i < NUM_INIT_CONTROLLER; ++i) -            *d++ = synthCtrl[i].val; -      *n = NUM_INIT_CONTROLLER * sizeof(int); // sizeof(idata); -      *p = (unsigned char*)idata; -      } - -//---------------------------------------------------------  //   MESS  //---------------------------------------------------------  //--------------------------------------------------------- -//   getControllerInfo -//--------------------------------------------------------- - -int Organ::getControllerInfo(int id, const char** name, int* controller, -   int* min, int* max) -      { -      if (id >= NUM_CONTROLLER) -            return 0; -      *controller = synthCtrl[id].num; -      *name       = synthCtrl[id].name; -      *min        = 0; -      *max        = 128*128-1; -      return ++id; -      } - -//---------------------------------------------------------  //   guiVisible  //--------------------------------------------------------- diff --git a/muse/synti/organ/organ.h b/muse/synti/organ/organ.h index ec458f10..92f63114 100644 --- a/muse/synti/organ/organ.h +++ b/muse/synti/organ/organ.h @@ -14,91 +14,41 @@  #define __ORGAN_H__  #include "muse/midictrl.h" -#include "libsynti/mess.h" - -#define RESOLUTION   (16384*2) -#define VOICES          128    // max polyphony +#include "libsynti/mess2.h" +static const int NO_VOICES = 128;    // max polyphony +static const int NO_KEYS = 97 - 36;  class OrganGui;  static const int MAX_ATTENUATION = 960; - -enum EnvelopeState { -      ATTACK, -      DECAY, -      SUSTAIN, -      RELEASE, -      OFF +static const int NO_BUSES        = 9; +static const int NO_WHEELS       = 91; +static const int NO_ELEMENTS     = 194; + +enum { +      DRAWBAR0 = CTRL_RPN14_OFFSET, DRAWBAR1, DRAWBAR2, +         DRAWBAR3, DRAWBAR4, DRAWBAR5, DRAWBAR6, DRAWBAR7, DRAWBAR8, +      ATTACK_LO, DECAY_LO, SUSTAIN_LO, RELEASE_LO, +      ATTACK_HI, DECAY_HI, SUSTAIN_HI, RELEASE_HI, +      BRASS, FLUTE, REED, VELO        };  //--------------------------------------------------------- -//   Envelope +//   Wheel  //--------------------------------------------------------- -struct Envelope { -      int ticks;        // len of segment -      int error, delta, schritt; -      int y, yinc; - -      void set(int t, int y1, int y2) { -            ticks   = t; -            y       = y1; -            int dy  = y2 - y1; -            int dx  = t; -            error   = -dx; -            schritt = 2*dx; -            if (dy < 0) { -                  yinc = -1; -                  delta = -2 * dy; -                  } -            else { -                  yinc = 1; -                  delta   = 2 * dy; -                  } -            } - -      // return false on envelope end -      bool step(int* a) { -            *a = y; -            if (ticks == 0) -                  return false; -            error += delta; -            while (error > 0) { -                  y += yinc; -                  error -= schritt; -                  } -            --ticks; -            return true; -            } -      }; - -static const int HARM0      =  0 + CTRL_RPN14_OFFSET; -static const int HARM1      =  1 + CTRL_RPN14_OFFSET; -static const int HARM2      =  2 + CTRL_RPN14_OFFSET; -static const int HARM3      =  3 + CTRL_RPN14_OFFSET; -static const int HARM4      =  4 + CTRL_RPN14_OFFSET; -static const int HARM5      =  5 + CTRL_RPN14_OFFSET; -static const int ATTACK_LO  =  6 + CTRL_RPN14_OFFSET; -static const int DECAY_LO   =  7 + CTRL_RPN14_OFFSET; -static const int SUSTAIN_LO =  8 + CTRL_RPN14_OFFSET; -static const int RELEASE_LO =  9 + CTRL_RPN14_OFFSET; -static const int ATTACK_HI  = 10 + CTRL_RPN14_OFFSET; -static const int DECAY_HI   = 11 + CTRL_RPN14_OFFSET; -static const int SUSTAIN_HI = 12 + CTRL_RPN14_OFFSET; -static const int RELEASE_HI = 13 + CTRL_RPN14_OFFSET; -static const int BRASS      = 14 + CTRL_RPN14_OFFSET; -static const int FLUTE      = 15 + CTRL_RPN14_OFFSET; -static const int REED       = 16 + CTRL_RPN14_OFFSET; -static const int VELO       = 17 + CTRL_RPN14_OFFSET; +struct Wheel { +      unsigned freq256; +      unsigned accu; -//--------------------------------------------------------- -//   SynthCtrl -//--------------------------------------------------------- +      int refCount; +      bool active; +      float gain[NO_BUSES]; -struct SynthCtrl { -      const char* name; -      int num; -      int val; +      // envelopes: +      float* env[NO_BUSES]; +      int envCount[NO_BUSES]; +      float deltaGain[NO_BUSES];        };  //--------------------------------------------------------- @@ -108,64 +58,41 @@ struct SynthCtrl {  struct Voice {        bool isOn;        int pitch; -      int channel; - -      double velocity; - -      int state1, state2; -      Envelope envL1, envL2, envL3; -      Envelope envH1, envH2, envH3; - -      unsigned harm0_accum; -      unsigned harm1_accum; -      unsigned harm2_accum; -      unsigned harm3_accum; -      unsigned harm4_accum; -      unsigned harm5_accum;        }; -//--------------------------------------------------------- -//   Preset -//--------------------------------------------------------- +struct Elem { +      short wheel; +      short bus; +      float level; -struct Preset { -      char* name; -      bool brass, flute, reed; -      int attack0, attack1; -      int release0, release1; -      int decay0, decay1; -      double harm0, harm1, harm2, harm3, harm4, harm5; -      bool velo; +      Elem() { bus = -1; } +      Elem(short w, short b, float l) : wheel(w), bus(b), level(l) {}        };  //---------------------------------------------------------  //   Organ  //--------------------------------------------------------- -class Organ : public Mess { +class Organ : public Mess2 {        static int useCount; +      static float* waveTable;        static double cb2amp_tab[MAX_ATTENUATION]; -      static unsigned freq256[128]; +      static unsigned freq256[128][NO_BUSES];        static double cb2amp(int cb); +      static Elem routing[NO_KEYS][NO_ELEMENTS]; +      static float* attackEnv; +      static float* releaseEnv; +      static int envSize; +      static int resolution; +      static int resolution256; -      int* idata;  // buffer for init data - -      bool brass, flute, reed; -      int attack0, attack1; -      int release0, release1; -      int decay0, decay1;        // ticks -      int sustain0, sustain1;    // centibel -      bool velo;        double volume; -      double harm0, harm1, harm2, harm3, harm4, harm5; - -      Voice voices[VOICES]; - -      static float* sine_table; -      static float* g_triangle_table; -      static float* g_pulse_table; +      float drawBarGain[NO_BUSES]; +      Wheel wheels[NO_WHEELS]; +      Voice voices[NO_VOICES]; +      QList<Wheel*> activeWheels;        void noteoff(int channel, int pitch);        void setController(int ctrl, int val); @@ -175,9 +102,6 @@ class Organ : public Mess {        virtual bool setController(int channel, int ctrl, int val);  	virtual bool sysex(int, const unsigned char*); -      virtual int getControllerInfo(int, const char**, int*, int*, int*); -      virtual void getInitData(int*, const unsigned char**); -        virtual bool guiVisible() const;        virtual void showGui(bool);        virtual bool hasGui() const { return true; } @@ -187,7 +111,7 @@ class Organ : public Mess {        OrganGui* gui;     public: -      static SynthCtrl synthCtrl[]; +      friend class OrganGui;        Organ(int sampleRate);        ~Organ();        bool init(const char* name); diff --git a/muse/synti/organ/organgui.cpp b/muse/synti/organ/organgui.cpp index 0264a073..c00d23fb 100644 --- a/muse/synti/organ/organgui.cpp +++ b/muse/synti/organ/organgui.cpp @@ -6,19 +6,19 @@  //    This is a simple GUI implemented with QT for  //    organ software synthesizer.  // -//  (C) Copyright 2001-2004 Werner Schweer (ws@seh.de) +//  (C) Copyright 2001-2007 Werner Schweer (ws@seh.de)  //=========================================================  #include "organgui.h"  #include "muse/midi.h"  #include "muse/midictrl.h" +#include "awl/knob.h"  //---------------------------------------------------------  //   OrganGui  //---------------------------------------------------------  OrganGui::OrganGui() -//   : QWidget(0, "organgui", Qt::WType_TopLevel),     : QWidget(0),       MessGui()        { @@ -26,78 +26,139 @@ OrganGui::OrganGui()        QSocketNotifier* s = new QSocketNotifier(readFd, QSocketNotifier::Read);        connect(s, SIGNAL(activated(int)), SLOT(readMessage(int))); -      dctrl[0]  = SynthGuiCtrl(p1,  lcd1,  SynthGuiCtrl::SLIDER); -      dctrl[1]  = SynthGuiCtrl(p2,  lcd2,  SynthGuiCtrl::SLIDER); -      dctrl[2]  = SynthGuiCtrl(p3,  lcd3,  SynthGuiCtrl::SLIDER); -      dctrl[3]  = SynthGuiCtrl(p4,  lcd4,  SynthGuiCtrl::SLIDER); -      dctrl[4]  = SynthGuiCtrl(p5,  lcd5,  SynthGuiCtrl::SLIDER); -      dctrl[5]  = SynthGuiCtrl(p6,  lcd6,  SynthGuiCtrl::SLIDER); -      dctrl[6]  = SynthGuiCtrl(p7,  lcd7,  SynthGuiCtrl::SLIDER); -      dctrl[7]  = SynthGuiCtrl(p8,  lcd8,  SynthGuiCtrl::SLIDER); -      dctrl[8]  = SynthGuiCtrl(p9,  lcd9,  SynthGuiCtrl::SLIDER); -      dctrl[9]  = SynthGuiCtrl(p10, lcd10, SynthGuiCtrl::SLIDER); -      dctrl[10] = SynthGuiCtrl(p11, lcd11, SynthGuiCtrl::SLIDER); -      dctrl[11] = SynthGuiCtrl(p12, lcd12, SynthGuiCtrl::SLIDER); -      dctrl[12] = SynthGuiCtrl(p13, lcd13, SynthGuiCtrl::SLIDER); -      dctrl[13] = SynthGuiCtrl(p14, lcd14, SynthGuiCtrl::SLIDER); -      dctrl[14] = SynthGuiCtrl(sw1,    0,  SynthGuiCtrl::SWITCH); -      dctrl[15] = SynthGuiCtrl(sw3,    0,  SynthGuiCtrl::SWITCH); -      dctrl[16] = SynthGuiCtrl(sw2,    0,  SynthGuiCtrl::SWITCH); -      dctrl[17] = SynthGuiCtrl(sw4,    0,  SynthGuiCtrl::SWITCH); -        map = new QSignalMapper(this); -      for (int i = 0; i < NUM_GUI_CONTROLLER; ++i) { -            map->setMapping(dctrl[i].editor, i); -            if (dctrl[i].type == SynthGuiCtrl::SLIDER) -                  connect((QSlider*)(dctrl[i].editor), SIGNAL(valueChanged(int)), map, SLOT(map())); -            else if (dctrl[i].type == SynthGuiCtrl::SWITCH) -                  connect((QCheckBox*)(dctrl[i].editor), SIGNAL(toggled(bool)), map, SLOT(map())); +      QList<QWidget*> wl = findChildren<QWidget*>(); +      foreach(QWidget* w, wl) { +            int idx = Mess2::controllerIdx(w->objectName().toAscii().data()); +            if (idx == -1) +                  continue; +            w->setProperty("ctrlIdx", idx); +            map->setMapping(w, w); +            const char* cname = w->metaObject()->className(); +            if (strcmp(cname, "QSlider") == 0) { +                  QSlider* slider = (QSlider*)w; +                  w->setProperty("ctrlType", 0); +                  connect(slider, SIGNAL(valueChanged(int)), map, SLOT(map())); +                  } +            else if (strcmp(cname, "QCheckBox") == 0) { +                  w->setProperty("ctrlType", 1); +                  connect(w, SIGNAL(toggled(bool)), map, SLOT(map())); +                  } +            else if (strcmp(cname, "QGroupBox") == 0) { +                  w->setProperty("ctrlType", 2); +                  connect(w, SIGNAL(toggled(bool)), map, SLOT(map())); +                  } +            else if (strcmp(cname, "Awl::Knob") == 0) { +                  w->setProperty("ctrlType", 3); +                  connect(w, SIGNAL(valueChanged(double,int)), map, SLOT(map())); +                  } +            else if (strcmp(cname, "QPushButton") == 0) { +                  w->setProperty("ctrlType", 4); +                  connect(w, SIGNAL(toggled(bool)), map, SLOT(map())); +                  } +            else if (strcmp(cname, "Awl::Drawbar") == 0) { +                  Awl::Drawbar* drawbar = (Awl::Drawbar*)w; +                  w->setProperty("ctrlType", 5); +                  connect(drawbar, SIGNAL(valueChanged(double,int)), map, SLOT(map())); +                  } +            else +                  printf("Gui Element <%s> not supported\n", cname);              } -      connect(map, SIGNAL(mapped(int)), this, SLOT(ctrlChanged(int))); +      ignoreControllerChange = false; +      connect(map, SIGNAL(mapped(QWidget*)), this, SLOT(ctrlChanged(QWidget*)));        }  //---------------------------------------------------------  //   ctrlChanged  //--------------------------------------------------------- -void OrganGui::ctrlChanged(int idx) +void OrganGui::ctrlChanged(QWidget* w)        { -      SynthGuiCtrl* ctrl = &dctrl[idx]; -      int val = 0; -      if (ctrl->type == SynthGuiCtrl::SLIDER) { -            QSlider* slider = (QSlider*)(ctrl->editor); -            val = slider->value(); -            } -      else if (ctrl->type == SynthGuiCtrl::SWITCH) { -            val = ((QCheckBox*)(ctrl->editor))->isChecked(); +      if (ignoreControllerChange) +            return; +      int ctrlIdx  = w->property("ctrlIdx").toInt(); +      int ctrlType = w->property("ctrlType").toInt(); +      int value    = 0; + +      switch(ctrlType) { +            case 0:     // QSlider +                  value = ((QSlider*)w)->value(); +                  break; +            case 1: +                  value = ((QCheckBox*)w)->isChecked(); +                  break; +            case 2: +                  value = ((QGroupBox*)w)->isChecked(); +                  break; +            case 3: +                  value = lrint(((Awl::Knob*)w)->value()); +                  break; +            case 4: +                  value = ((QPushButton*)w)->isChecked(); +                  break; +            case 5: +                  value = lrint(((Awl::Drawbar*)w)->value()); +                  break; +            default: +                  printf("OrganGui::ctrlChanged: illegal ctrlType %d\n", ctrlType); +                  break;              } -      sendController(0, idx + CTRL_RPN14_OFFSET, val); +      int id = Mess2::controllerId(ctrlIdx); +      sendController(0, id, value);      // to synth        }  //---------------------------------------------------------  //   setParam -//    set param in gui  //--------------------------------------------------------- -void OrganGui::setParam(int param, int val) +void OrganGui::setParam(int ctrlId, int val)        { -      param &= 0xfff; -      if (param >= int(sizeof(dctrl)/sizeof(*dctrl))) { -            fprintf(stderr, "OrganGui: set unknown Ctrl 0x%x to 0x%x\n", param, val); +      int ctrlIdx = Mess2::controllerIdx(ctrlId); +      if (ctrlIdx == -1)              return; +      setParamIdx(ctrlIdx, val); +      } + +//--------------------------------------------------------- +//   setParamIdx +//    set controller value in gui +//--------------------------------------------------------- + +void OrganGui::setParamIdx(int ctrlIdx, int val) +      { +      const char* name = Organ::controllerName(ctrlIdx); +      if (name == 0) +            return; +      ignoreControllerChange = true; +      QList<QWidget*> wl = findChildren<QWidget*>(name); + +      foreach(QWidget* w, wl) { +            int ctrlType = w->property("ctrlType").toInt(); +            switch(ctrlType) { +                  case 0: +                        ((QSlider*)w)->setValue(val); +                        break; +                  case 1: +                        ((QCheckBox*)w)->setChecked(val); +                        break; +                  case 2: +                        ((QGroupBox*)w)->setChecked(val); +                        break; +                  case 3: +                        ((Awl::Knob*)w)->setValue(double(val)); +                        break; +                  case 4: +                        ((QPushButton*)w)->setChecked(val); +                        break; +                  case 5: +                        ((Awl::Drawbar*)w)->setValue(double(val)); +                        break; +                  default: +                        printf("OrganGui::setParamIdx: illegal ctrlType %d\n", ctrlType); +                        break; +                  }              } -      SynthGuiCtrl* ctrl = &dctrl[param]; -      ctrl->editor->blockSignals(true); -      if (ctrl->type == SynthGuiCtrl::SLIDER) { -            QSlider* slider = (QSlider*)(ctrl->editor); -            slider->setValue(val); -            if (ctrl->label) -                  ((QSpinBox*)(ctrl->label))->setValue(val); -            } -      else if (ctrl->type == SynthGuiCtrl::SWITCH) { -            ((QCheckBox*)(ctrl->editor))->setChecked(val); -            } -      ctrl->editor->blockSignals(false); +      ignoreControllerChange = false;        }  //--------------------------------------------------------- diff --git a/muse/synti/organ/organgui.h b/muse/synti/organ/organgui.h index f8e1b5b7..c691b1a1 100644 --- a/muse/synti/organ/organgui.h +++ b/muse/synti/organ/organgui.h @@ -25,16 +25,22 @@ class QSignalMapper;  class OrganGui : public QWidget, public Ui::OrganGuiBase, public MessGui {        Q_OBJECT +      bool ignoreControllerChange; +        QSignalMapper* map; -      SynthGuiCtrl dctrl[NUM_GUI_CONTROLLER]; -      void setParam(int, int);        virtual void processEvent(const MidiEvent&); +   protected: +      void setParam(int, int); +      void setParamIdx(int ctrlIdx, int val); +     private slots: -      void ctrlChanged(int idx); +      void ctrlChanged(QWidget*);        void readMessage(int);     public: +      friend class Organ; +      friend class Mess2;        OrganGui();        }; diff --git a/muse/synti/organ/organgui.ui b/muse/synti/organ/organgui.ui index bfd9ee85..74e52f07 100644 --- a/muse/synti/organ/organgui.ui +++ b/muse/synti/organ/organgui.ui @@ -5,14 +5,12 @@     <rect>      <x>0</x>      <y>0</y> -    <width>563</width> -    <height>392</height> +    <width>270</width> +    <height>275</height>     </rect>    </property>    <property name="sizePolicy" > -   <sizepolicy> -    <hsizetype>7</hsizetype> -    <vsizetype>5</vsizetype> +   <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >      <horstretch>0</horstretch>      <verstretch>0</verstretch>     </sizepolicy> @@ -20,122 +18,74 @@    <property name="windowTitle" >     <string>MusE: Organ</string>    </property> +  <property name="styleSheet" > +   <string>QWidget {  +background-color: rgb(93,106,121); +color: rgb(240, 240, 240);  +}  +QLabel#name { +font-size: 64px; +font-weight: bold; +} +Awl--Drawbar { +font-size: 10px; +} +Awl--Knob { +font-size: 10px; +} + +QGroupBox::indicator:checked { +background-color: yellow; +} +QGroupBox::indicator:unchecked { +background-color: gray; +} +QCheckBox::indicator:checked:disabled { +background-color: darkGray; +} +QCheckBox::indicator:unchecked:disabled { +background-color: gray; +} +QCheckBox::indicator:checked:enabled { +background-color: yellow; +} +QCheckBox::indicator:unchecked:enabled { +background-color: gray; +} +</string> +  </property>    <layout class="QGridLayout" > -   <property name="margin" > +   <property name="leftMargin" > +    <number>9</number> +   </property> +   <property name="topMargin" > +    <number>9</number> +   </property> +   <property name="rightMargin" >      <number>9</number>     </property> -   <property name="spacing" > +   <property name="bottomMargin" > +    <number>9</number> +   </property> +   <property name="horizontalSpacing" > +    <number>6</number> +   </property> +   <property name="verticalSpacing" >      <number>6</number>     </property> -   <item row="0" column="1" > -    <widget class="QGroupBox" name="GroupBox3" > -     <property name="sizePolicy" > -      <sizepolicy> -       <hsizetype>7</hsizetype> -       <vsizetype>7</vsizetype> -       <horstretch>0</horstretch> -       <verstretch>0</verstretch> -      </sizepolicy> -     </property> -     <property name="title" > -      <string>Oscillator</string> -     </property> -     <layout class="QVBoxLayout" > -      <property name="margin" > -       <number>11</number> -      </property> -      <property name="spacing" > -       <number>2</number> -      </property> -      <item> -       <widget class="QCheckBox" name="sw1" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>5</hsizetype> -          <vsizetype>1</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="text" > -         <string>Brass</string> -        </property> -       </widget> -      </item> -      <item> -       <widget class="QCheckBox" name="sw2" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>5</hsizetype> -          <vsizetype>1</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="text" > -         <string>Reed</string> -        </property> -       </widget> -      </item> -      <item> -       <widget class="QCheckBox" name="sw3" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>5</hsizetype> -          <vsizetype>1</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="text" > -         <string>Flute</string> -        </property> -       </widget> -      </item> -      <item> -       <spacer> -        <property name="orientation" > -         <enum>Qt::Vertical</enum> -        </property> -        <property name="sizeType" > -         <enum>QSizePolicy::Expanding</enum> -        </property> -        <property name="sizeHint" > -         <size> -          <width>20</width> -          <height>20</height> -         </size> -        </property> -       </spacer> -      </item> -      <item> -       <widget class="QCheckBox" name="sw4" > -        <property name="text" > -         <string>Velocity</string> -        </property> -       </widget> -      </item> -     </layout> -    </widget> -   </item>     <item row="0" column="0" > -    <widget class="QLabel" name="TextLabel1_2" > +    <widget class="QLabel" name="name" >       <property name="sizePolicy" > -      <sizepolicy> -       <hsizetype>7</hsizetype> -       <vsizetype>5</vsizetype> +      <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >         <horstretch>0</horstretch>         <verstretch>0</verstretch>        </sizepolicy>       </property>       <property name="font" >        <font> -       <pointsize>48</pointsize> -       <weight>50</weight> -       <italic>false</italic> -       <bold>false</bold> -       <underline>false</underline> -       <strikeout>false</strikeout> +       <pointsize>-1</pointsize> +       <weight>75</weight> +       <bold>true</bold>        </font>       </property>       <property name="text" > @@ -149,9 +99,7 @@     <item rowspan="2" row="1" column="0" colspan="2" >      <widget class="QGroupBox" name="GroupBox1" >       <property name="sizePolicy" > -      <sizepolicy> -       <hsizetype>7</hsizetype> -       <vsizetype>7</vsizetype> +      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >         <horstretch>0</horstretch>         <verstretch>0</verstretch>        </sizepolicy> @@ -159,671 +107,123 @@       <property name="title" >        <string>Drawbars</string>       </property> -     <layout class="QGridLayout" > -      <property name="margin" > -       <number>6</number> -      </property> -      <property name="spacing" > -       <number>2</number> -      </property> -      <item row="0" column="0" > -       <widget class="QLabel" name="TextLabel1" > -        <property name="text" > -         <string>16'</string> -        </property> -       </widget> -      </item> -      <item row="3" column="0" > -       <widget class="QLabel" name="TextLabel4" > -        <property name="text" > -         <string>4'</string> -        </property> -       </widget> -      </item> -      <item row="4" column="0" > -       <widget class="QLabel" name="TextLabel5" > -        <property name="text" > -         <string>2 2/3'</string> -        </property> -       </widget> -      </item> -      <item row="5" column="0" > -       <widget class="QLabel" name="TextLabel6" > -        <property name="text" > -         <string>2'</string> -        </property> -       </widget> -      </item> -      <item row="2" column="0" > -       <widget class="QLabel" name="TextLabel2" > -        <property name="text" > -         <string>5 1/3'</string> -        </property> -       </widget> -      </item> -      <item row="1" column="0" > -       <widget class="QLabel" name="TextLabel3" > -        <property name="text" > -         <string>8'</string> -        </property> -       </widget> -      </item> -      <item row="1" column="2" > -       <widget class="QSlider" name="p2" > -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="2" column="2" > -       <widget class="QSlider" name="p3" > -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="3" column="2" > -       <widget class="QSlider" name="p4" > -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="4" column="2" > -       <widget class="QSlider" name="p5" > -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="5" column="2" > -       <widget class="QSlider" name="p6" > -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="0" column="2" > -       <widget class="QSlider" name="p1" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>7</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="0" column="1" > -       <widget class="QSpinBox" name="lcd1" > -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="minimum" > -         <number>-960</number> -        </property> -       </widget> -      </item> -      <item row="1" column="1" > -       <widget class="QSpinBox" name="lcd2" > -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="singleStep" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="2" column="1" > -       <widget class="QSpinBox" name="lcd3" > -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="singleStep" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="3" column="1" > -       <widget class="QSpinBox" name="lcd4" > -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="singleStep" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="4" column="1" > -       <widget class="QSpinBox" name="lcd5" > -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="singleStep" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="5" column="1" > -       <widget class="QSpinBox" name="lcd6" > -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="singleStep" > -         <number>10</number> -        </property> -       </widget> -      </item> -     </layout> -    </widget> -   </item> -   <item row="0" column="2" > -    <widget class="QGroupBox" name="GroupBox2" > -     <property name="sizePolicy" > -      <sizepolicy> -       <hsizetype>7</hsizetype> -       <vsizetype>7</vsizetype> -       <horstretch>0</horstretch> -       <verstretch>0</verstretch> -      </sizepolicy> -     </property> -     <property name="title" > -      <string>Envelope Lo</string> -     </property> -     <property name="alignment" > -      <set>Qt::AlignLeading</set> -     </property> -     <layout class="QGridLayout" > -      <property name="margin" > -       <number>11</number> -      </property> -      <property name="spacing" > -       <number>2</number> -      </property> -      <item row="0" column="0" > -       <widget class="QLabel" name="TextLabel7" > -        <property name="text" > -         <string>Attack</string> -        </property> -       </widget> -      </item> -      <item row="1" column="0" > -       <widget class="QLabel" name="TextLabel8" > -        <property name="text" > -         <string>Decay</string> -        </property> -       </widget> -      </item> -      <item row="2" column="0" > -       <widget class="QLabel" name="TextLabel9" > -        <property name="text" > -         <string>Sustain</string> -        </property> -       </widget> -      </item> -      <item row="3" column="0" > -       <widget class="QLabel" name="TextLabel10" > -        <property name="text" > -         <string>Release</string> -        </property> -       </widget> -      </item> -      <item row="0" column="2" > -       <widget class="QSlider" name="p7" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>7</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="minimumSize" > -         <size> -          <width>80</width> -          <height>0</height> -         </size> -        </property> -        <property name="maximum" > -         <number>500</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>50</number> -        </property> -       </widget> -      </item> -      <item row="1" column="2" > -       <widget class="QSlider" name="p8" > -        <property name="maximum" > -         <number>5000</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>500</number> -        </property> -       </widget> -      </item> -      <item row="2" column="2" > -       <widget class="QSlider" name="p9" > -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>10</number> -        </property> -       </widget> -      </item> -      <item row="3" column="2" > -       <widget class="QSlider" name="p10" > -        <property name="maximum" > -         <number>500</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>50</number> -        </property> -       </widget> -      </item> -      <item row="0" column="1" > -       <widget class="QSpinBox" name="lcd7" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>1</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="suffix" > -         <string>ms</string> -        </property> -        <property name="maximum" > -         <number>500</number> -        </property> -       </widget> -      </item> -      <item row="1" column="1" > -       <widget class="QSpinBox" name="lcd8" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>1</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="suffix" > -         <string>ms</string> -        </property> -        <property name="maximum" > -         <number>5000</number> -        </property> -       </widget> -      </item> -      <item row="2" column="1" > -       <widget class="QSpinBox" name="lcd9" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>1</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="suffix" > -         <string>cB</string> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="minimum" > -         <number>-960</number> -        </property> +     <layout class="QHBoxLayout" > +      <item> +       <widget class="Awl::Drawbar" name="drawbar16" >          <property name="value" > -         <number>0</number> -        </property> -       </widget> -      </item> -      <item row="3" column="1" > -       <widget class="QSpinBox" name="lcd10" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>1</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="suffix" > -         <string>ms</string> -        </property> -        <property name="maximum" > -         <number>500</number> -        </property> -       </widget> -      </item> -     </layout> -    </widget> -   </item> -   <item row="2" column="2" > -    <widget class="QGroupBox" name="GroupBox4" > -     <property name="sizePolicy" > -      <sizepolicy> -       <hsizetype>7</hsizetype> -       <vsizetype>7</vsizetype> -       <horstretch>0</horstretch> -       <verstretch>0</verstretch> -      </sizepolicy> -     </property> -     <property name="title" > -      <string>Envelope Hi</string> -     </property> -     <layout class="QGridLayout" > -      <property name="margin" > -       <number>8</number> -      </property> -      <property name="spacing" > -       <number>6</number> -      </property> -      <item row="3" column="2" > -       <widget class="QSlider" name="p14" > -        <property name="maximum" > -         <number>500</number> -        </property> -        <property name="pageStep" > -         <number>1</number> +         <double>4.319999999999999</double>          </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>50</number> -        </property> -       </widget> -      </item> -      <item row="2" column="0" > -       <widget class="QLabel" name="TextLabel13" > -        <property name="text" > -         <string>Sustain</string> +        <property name="sliderColor" > +         <color> +          <red>60</red> +          <green>60</green> +          <blue>60</blue> +         </color>          </property>         </widget>        </item> -      <item row="3" column="0" > -       <widget class="QLabel" name="TextLabel14" > -        <property name="text" > -         <string>Release</string> -        </property> -       </widget> -      </item> -      <item row="3" column="1" > -       <widget class="QSpinBox" name="lcd14" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>5</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="suffix" > -         <string>ms</string> +      <item> +       <widget class="Awl::Drawbar" name="drawbar513" > +        <property name="value" > +         <double>5.039999999999999</double>          </property> -        <property name="maximum" > -         <number>500</number> +        <property name="sliderColor" > +         <color> +          <red>60</red> +          <green>60</green> +          <blue>60</blue> +         </color>          </property>         </widget>        </item> -      <item row="2" column="1" > -       <widget class="QSpinBox" name="lcd13" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>5</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="suffix" > -         <string>cB</string> -        </property> -        <property name="maximum" > -         <number>0</number> +      <item> +       <widget class="Awl::Drawbar" name="drawbar8" > +        <property name="value" > +         <double>8.000000000000000</double>          </property> -        <property name="minimum" > -         <number>-960</number> +        <property name="sliderColor" > +         <color> +          <red>240</red> +          <green>240</green> +          <blue>240</blue> +         </color>          </property>         </widget>        </item> -      <item row="1" column="1" > -       <widget class="QSpinBox" name="lcd12" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>5</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="suffix" > -         <string>ms</string> +      <item> +       <widget class="Awl::Drawbar" name="drawbar4" > +        <property name="value" > +         <double>8.000000000000000</double>          </property> -        <property name="maximum" > -         <number>5000</number> +        <property name="sliderColor" > +         <color> +          <red>240</red> +          <green>240</green> +          <blue>240</blue> +         </color>          </property>         </widget>        </item> -      <item row="0" column="2" > -       <widget class="QSlider" name="p11" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>7</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="maximum" > -         <number>500</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> -        </property> -        <property name="tickInterval" > -         <number>50</number> +      <item> +       <widget class="Awl::Drawbar" name="drawbar223" > +        <property name="value" > +         <double>8.000000000000000</double>          </property>         </widget>        </item> -      <item row="0" column="1" > -       <widget class="QSpinBox" name="lcd11" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>5</hsizetype> -          <vsizetype>0</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="suffix" > -         <string>ms</string> +      <item> +       <widget class="Awl::Drawbar" name="drawbar2" > +        <property name="value" > +         <double>0.000000000000000</double>          </property> -        <property name="maximum" > -         <number>500</number> +        <property name="sliderColor" > +         <color> +          <red>240</red> +          <green>240</green> +          <blue>240</blue> +         </color>          </property>         </widget>        </item> -      <item row="1" column="2" > -       <widget class="QSlider" name="p12" > -        <property name="maximum" > -         <number>5000</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> +      <item> +       <widget class="Awl::Drawbar" name="drawbar135" > +        <property name="value" > +         <double>0.000000000000000</double>          </property> -        <property name="tickInterval" > -         <number>500</number> +        <property name="sliderColor" > +         <color> +          <red>128</red> +          <green>102</green> +          <blue>86</blue> +         </color>          </property>         </widget>        </item> -      <item row="2" column="2" > -       <widget class="QSlider" name="p13" > -        <property name="minimum" > -         <number>-960</number> -        </property> -        <property name="maximum" > -         <number>0</number> -        </property> -        <property name="pageStep" > -         <number>1</number> -        </property> -        <property name="orientation" > -         <enum>Qt::Horizontal</enum> +      <item> +       <widget class="Awl::Drawbar" name="drawbar113" > +        <property name="value" > +         <double>2.160000000000000</double>          </property> -        <property name="tickInterval" > -         <number>10</number> +        <property name="sliderColor" > +         <color> +          <red>128</red> +          <green>102</green> +          <blue>86</blue> +         </color>          </property>         </widget>        </item> -      <item row="0" column="0" > -       <widget class="QLabel" name="TextLabel11" > -        <property name="sizePolicy" > -         <sizepolicy> -          <hsizetype>5</hsizetype> -          <vsizetype>4</vsizetype> -          <horstretch>0</horstretch> -          <verstretch>0</verstretch> -         </sizepolicy> -        </property> -        <property name="text" > -         <string>Attack</string> +      <item> +       <widget class="Awl::Drawbar" name="drawbar1" > +        <property name="value" > +         <double>0.000000000000000</double>          </property> -       </widget> -      </item> -      <item row="1" column="0" > -       <widget class="QLabel" name="TextLabel12" > -        <property name="text" > -         <string>Decay</string> +        <property name="sliderColor" > +         <color> +          <red>240</red> +          <green>240</green> +          <blue>240</blue> +         </color>          </property>         </widget>        </item> @@ -833,25 +233,13 @@    </layout>   </widget>   <layoutdefault spacing="6" margin="11" /> - <tabstops> -  <tabstop>p1</tabstop> -  <tabstop>p3</tabstop> -  <tabstop>p2</tabstop> -  <tabstop>p4</tabstop> -  <tabstop>p5</tabstop> -  <tabstop>p6</tabstop> -  <tabstop>p7</tabstop> -  <tabstop>p8</tabstop> -  <tabstop>p9</tabstop> -  <tabstop>p10</tabstop> -  <tabstop>p11</tabstop> -  <tabstop>p12</tabstop> -  <tabstop>p13</tabstop> -  <tabstop>p14</tabstop> -  <tabstop>sw1</tabstop> -  <tabstop>sw2</tabstop> -  <tabstop>sw3</tabstop> - </tabstops> + <customwidgets> +  <customwidget> +   <class>Awl::Drawbar</class> +   <extends>Awl::Slider</extends> +   <header>awl/drawbar.h</header> +  </customwidget> + </customwidgets>   <resources/>   <connections/>  </ui> diff --git a/muse/synti/s1/s1.cpp b/muse/synti/s1/s1.cpp index 2dca23ee..596a5797 100644 --- a/muse/synti/s1/s1.cpp +++ b/muse/synti/s1/s1.cpp @@ -93,9 +93,9 @@ void S1::note(int /*channel*/, int pitch, int velo)              //              // note on              // -            accu     = 0; -            gate     = 1; -            freq     = 8.176 * exp(float(pitch)*log(2.0)/12.0); +            accu = 0; +            gate = 1; +            freq = 8.176 * exp(float(pitch)*log(2.0)/12.0);              }        }  | 
