Repository: stan-dev/cmdstanpy
Pull request #86 (2019-07-23 22:59:33)

Feature/67 generate quantities
#### Submission Checklist

- [x] Run unit tests
- [x] Declare copyright holder and open-source license: see below

#### Summary
Related Issue #67 
Implemented call to `generate_quantities` method

#### Copyright and Licensing

Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company):

- Salesforce


By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)




Patch:
diff --git a/cmdstanpy/cmdstan_args.py b/cmdstanpy/cmdstan_args.py
index 4ee91a5..7d9be05 100644
--- a/cmdstanpy/cmdstan_args.py
+++ b/cmdstanpy/cmdstan_args.py
@@ -46,7 +46,7 @@ class SamplerArgs(object):
         """
         if not isinstance(chains, Integral) or chains < 1:
             raise ValueError(
-                "sampler expects number of chains to be greater than 0"
+                'sampler expects number of chains to be greater than 0'
             )
 
         if self.warmup_iters is not None:
@@ -214,14 +214,14 @@ class FixedParamArgs(object):
         cmd = cmd + ' method=fixed_param'
         return cmd
 
-    def validate(self, chains):
+    def validate(self, chains: int) -> None:
         pass
 
 
 class OptimizeArgs(object):
     """Container for arguments for the optimizer."""
 
-    OPTIMIZE_ALGOS = {"BFGS", "LBFGS", "Newton"}
+    OPTIMIZE_ALGOS = {'BFGS', 'LBFGS', 'Newton'}
 
     def __init__(
         self, algorithm: str = None, init_alpha: Real = None, iter: int = None
@@ -240,28 +240,28 @@ class OptimizeArgs(object):
             and self.algorithm not in self.OPTIMIZE_ALGOS
         ):
             raise ValueError(
-                "Please specify optimizer algorithms as one of [{}]".format(
-                    ", ".join(self.OPTIMIZE_ALGOS)
+                'Please specify optimizer algorithms as one of [{}]'.format(
+                    ', '.join(self.OPTIMIZE_ALGOS)
                 )
             )
 
         if self.init_alpha is not None:
-            if self.algorithm == "Newton":
+            if self.algorithm == 'Newton':
                 raise ValueError(
-                    "init_alpha must not be set when algorithm is Newton"
+                    'init_alpha must not be set when algorithm is Newton'
                 )
             if isinstance(self.init_alpha, Real):
                 if self.init_alpha < 0:
-                    raise ValueError("init_alpha must be greater than 0")
+                    raise ValueError('init_alpha must be greater than 0')
             else:
-                raise ValueError("init_alpha must be type of float")
+                raise ValueError('init_alpha must be type of float')
 
         if self.iter is not None:
             if isinstance(self.iter, Integral):
                 if self.iter < 0:
-                    raise ValueError("iter must be greater than 0")
+                    raise ValueError('iter must be greater than 0')
             else:
-                raise ValueError("iter must be type of int")
+                raise ValueError('iter must be type of int')
 
     def compose(self, idx: int, cmd: str) -> str:
         """compose command string for CmdStan for non-default arg values.
@@ -277,6 +277,34 @@ class OptimizeArgs(object):
         return cmd
 
 
+class GenerateQuantitiesArgs(object):
+    """Arguments needed for generate_quantities method."""
+
+    def __init__(self, csv_files: List[str]) -> None:
+        """Initialize object."""
+        self.sample_csv_files = csv_files
+
+    def validate(self, chains: int) -> None:
+        """
+        Check arguments correctness and consistency.
+
+        * check that sample csv files exist
+        """
+        for i, csv in enumerate(self.sample_csv_files):
+            if not os.path.exists(csv):
+                raise ValueError(
+                    'Invalid path for sample csv file: {}'.format(csv)
+                )
+
+    def compose(self, idx: int, cmd: str) -> str:
+        """
+        Compose CmdStan command for method-specific non-default arguments.
+        """
+        cmd = cmd + ' method=generate_quantities'
+        cmd = '{} fitted_params={}'.format(cmd, self.sample_csv_files[idx - 1])
+        return cmd
+
+
 class CmdStanArgs(object):
     """
     Container for CmdStan command line arguments.
@@ -289,7 +317,9 @@ class CmdStanArgs(object):
         model_name: str,
         model_exe: str,
         chain_ids: Union[List[int], None],
-        method_args: Union[SamplerArgs, FixedParamArgs, OptimizeArgs],
+        method_args: Union[
+            SamplerArgs, FixedParamArgs, OptimizeArgs, GenerateQuantitiesArgs
+        ],
         data: Union[str, dict] = None,
         seed: Union[int, List[int]] = None,
         inits: Union[float, str, List[str]] = None,
@@ -365,7 +395,7 @@ class CmdStanArgs(object):
             else:
                 if self.chain_ids is None:
                     raise ValueError(
-                        "seed must not be a list when no chains used"
+                        'seed must not be a list when no chains used'
                     )
 
                 if len(self.seed) != len(self.chain_ids):
@@ -404,7 +434,7 @@ class CmdStanArgs(object):
             elif isinstance(self.inits, list):
                 if self.chain_ids is None:
                     raise ValueError(
-                        "inits must not be a list when no chains are used"
+                        'inits must not be a list when no chains are used'
                     )
 
                 if len(self.inits) != len(self.chain_ids):
diff --git a/cmdstanpy/install_cmdstan.py b/cmdstanpy/install_cmdstan.py
index a46f84a..97481e9 100644
--- a/cmdstanpy/install_cmdstan.py
+++ b/cmdstanpy/install_cmdstan.py
@@ -194,5 +194,5 @@ def main():
             install_version(cmdstan_version)
 
 
-if __name__ == "__main__":
+if __name__ == '__main__':
     main()
diff --git a/cmdstanpy/model.py b/cmdstanpy/model.py
index 4633f79..43adff2 100644
--- a/cmdstanpy/model.py
+++ b/cmdstanpy/model.py
@@ -7,7 +7,8 @@ from concurrent.futures import ThreadPoolExecutor
 from multiprocessing import cpu_count
 from pathlib import Path
 from typing import Dict, List, Union
-from cmdstanpy.cmdstan_args import CmdStanArgs, SamplerArgs, OptimizeArgs
+from cmdstanpy.cmdstan_args import CmdStanArgs, SamplerArgs,\
+ OptimizeArgs, GenerateQuantitiesArgs
 from cmdstanpy.stanfit import StanFit
 from cmdstanpy.utils import (
     do_command,
@@ -208,6 +209,7 @@ class Model(object):
     ) -> StanFit:
         """
         Wrapper for optimize call
+
         :param data: Values for all data variables in the model, specified
             either as a dictionary with entries matching the data variables,
             or as the path of a data file in JSON or Rdump format.
@@ -231,7 +233,7 @@ class Model(object):
             * string - pathname to a JSON or Rdump data file.
 
         :param csv_basename:  A path or file name which will be used as the
-            base name for the sampler output files.  The csv output files
+            basename for the sampler output files.  The csv output files
             for each chain are written to file ``<basename>-0.csv``
             and the console output and error messages are written to file
             ``<basename>-0.txt``.
@@ -263,7 +265,7 @@ class Model(object):
 
             stanfit = StanFit(args=args, chains=1)
             dummy_chain_id = 0
-            self._do_sample(stanfit, dummy_chain_id)
+            self._run_cmdstan(stanfit, dummy_chain_id)
 
         if not stanfit._check_retcodes():
             msg = 'Error during optimizing'
@@ -389,10 +391,12 @@ class Model(object):
             per iteration.
 
         :param csv_basename: A path or file name which will be used as the
-            base name for the sampler output files.  The csv output files
+            basename for the sampler output files.  The csv output files
             for each chain are written to file ``<basename>-<chain_id>.csv``
             and the console output and error messages are written to file
             ``<basename>-<chain_id>.txt``.
+
+        :return: StanFit object
         """
         if chains < 1:
             raise ValueError(
@@ -428,10 +432,8 @@ class Model(object):
                         )
 
         cores_avail = cpu_count()
-
         if cores is None:
             cores = max(min(cores_avail - 2, chains), 1)
-
         if cores < 1:
             raise ValueError(
                 'cores must be a positive integer value, found {}'.format(cores)
@@ -442,7 +444,7 @@ class Model(object):
             )
             cores = cores_avail
 
-            # TODO:  issue 49: inits can be initialization function
+        # TODO:  issue 49: inits can be initialization function
 
         sampler_args = SamplerArgs(
             warmup_iters=warmup_iters,
@@ -470,7 +472,7 @@ class Model(object):
             stanfit = StanFit(args=args, chains=chains)
             with ThreadPoolExecutor(max_workers=cores) as executor:
                 for i in range(chains):
-                    executor.submit(self._do_sample(stanfit, i))
+                    executor.submit(self._run_cmdstan(stanfit, i))
             if not stanfit._check_retcodes():
                 msg = 'Error during sampling'
                 for i in range(chains):
@@ -482,9 +484,79 @@ class Model(object):
             stanfit._validate_csv_files()
         return stanfit
 
-    def _do_sample(self, stanfit: StanFit, idx: int) -> None:
+    def run_generated_quantities(
+        self,
+        data: Union[Dict, str] = None,
+        csv_files: List[str] = None,
+        seed: int = None,
+        gq_csv_basename: str = None,
+    ) -> StanFit:
+        """
+        Wrapper for generated quantities call.  Given a StanFit object
+        containing a sample from the fitted model, along with the
+        corresponding dataset for that fit, run just the generated quantities
+        block of the model in order to get additional quantities of interest.
+
+        :param data: Values for all data variables in the model, specified
+            either as a dictionary with entries matching the data variables,
+            or as the path of a data file in JSON or Rdump format.
+
+        :param csv_files: A list of sampler output csv files generated by
+            fitting the model to the data, either using CmdStanPy's `sample`
+            method or via another Stan interface.
+
+        :param seed: The seed for random number generator Must be an integer
+            between 0 and 2^32 - 1. If unspecified, numpy.random.RandomState()
+            is used to generate a seed which will be used for all chains.
+            *NOTE: Specifying the seed will guarantee the same result for
+            multiple invocations of this method with the same inputs.  However
+            this will not reproduce results from the sample method given
+            the same inputs because the RNG will be in a different state.*
+
+        :param gq_csv_basename: A path or file name which will be used as the
+            basename for the sampler output files.  The csv output files
+            for each chain are written to file ``<basename>-<chain_id>.csv``
+            and the console output and error messages are written to file
+            ``<basename>-<chain_id>.txt``.
+
+        :return: StanFit object
+        """
+        generate_quantities_args = GenerateQuantitiesArgs(
+            csv_files=csv_files
+        )
+        generate_quantities_args.validate(len(csv_files))
+        chains = len(csv_files)
+        with MaybeDictToFilePath(data, None) as (_data, _inits):
+            args = CmdStanArgs(
+                self._name,
+                self._exe_file,
+                chain_ids=[x + 1 for x in range(chains)],
+                data=_data,
+                seed=seed,
+                output_basename=gq_csv_basename,
+                method_args=generate_quantities_args
+            )
+            stanfit = StanFit(args=args, chains=chains)
+
+            cores_avail = cpu_count()
+            cores = max(min(cores_avail - 2, chains), 1)
+            with ThreadPoolExecutor(max_workers=cores) as executor:
+                for i in range(chains):
+                    executor.submit(self._run_cmdstan(stanfit, i))
+            if not stanfit._check_retcodes():
+                msg = 'Error during sampling'
+                for i in range(chains):
+                    if stanfit._retcode(i) != 0:
+                        msg = '{}, chain {} returned error code {}'.format(
+                            msg, i, stanfit._retcode(i)
+                        )
+                raise RuntimeError(msg)
+            stanfit._set_attrs_gq_csv_files(csv_files[0])
+        return stanfit
+
+    def _run_cmdstan(self, stanfit: StanFit, idx: int) -> None:
         """
-        Encapsulates call to sampler.
+        Encapsulates call to cmdstan.
         Spawn process, capture console output to file, record returncode.
         """
         cmd = stanfit.cmds[idx]
diff --git a/cmdstanpy/stanfit.py b/cmdstanpy/stanfit.py
index 2efb982..71ff5e8 100644
--- a/cmdstanpy/stanfit.py
+++ b/cmdstanpy/stanfit.py
@@ -12,17 +12,20 @@ import logging
 from cmdstanpy import TMPDIR
 from cmdstanpy.utils import (
     check_csv,
+    scan_stan_csv,
     create_named_text_file,
     EXTENSION,
     cmdstan_path,
     do_command,
     get_logger,
 )
-from cmdstanpy.cmdstan_args import CmdStanArgs, OptimizeArgs
+from cmdstanpy.cmdstan_args import CmdStanArgs, OptimizeArgs, SamplerArgs
 
 
 class StanFit(object):
-    """Record of running NUTS sampler on a model."""
+    """
+    Record of CmdStan run for a specified configuration and number of chains.
+    """
 
     def __init__(
         self, args: CmdStanArgs, chains: int = 4, logger: logging.Logger = None
@@ -30,6 +33,7 @@ class StanFit(object):
         """Initialize object."""
         self._args = args
         self._is_optimizing = isinstance(self._args.method_args, OptimizeArgs)
+        self._is_sampling = isinstance(self._args.method_args, SamplerArgs)
         self._chains = chains
         self._logger = logger or get_logger()
         if chains < 1:
@@ -37,7 +41,7 @@ class StanFit(object):
                 'chains must be positive integer value, '
                 'found {i]}'.format(chains)
             )
-        self.csv_files = []
+        self._csv_files = []
         # per-chain sample csv files.
         if args.output_basename is None:
             csv_basename = 'stan-{}-draws'.format(args.model_name)
@@ -47,19 +51,21 @@ class StanFit(object):
                     prefix='{}-{}-'.format(csv_basename, i + 1),
                     suffix='.csv',
                 )
-                self.csv_files.append(fd_name)
+                self._csv_files.append(fd_name)
         else:
             for i in range(chains):
-                self.csv_files.append(
+                self._csv_files.append(
                     '{}-{}.csv'.format(args.output_basename, i + 1)
                 )
         self.console_files = []
         # per-chain sample console output files.
         for i in range(chains):
-            txt_file = ''.join([os.path.splitext(self.csv_files[i])[0], '.txt'])
+            txt_file = ''.join(
+                [os.path.splitext(self._csv_files[i])[0], '.txt']
+            )
             self.console_files.append(txt_file)
         self.cmds = [
-            args.compose_command(i, self.csv_files[i]) for i in range(chains)
+            args.compose_command(i, self._csv_files[i]) for i in range(chains)
         ]
         # per-chain sampler command.
         self._retcodes = [-1 for _ in range(chains)]
@@ -71,11 +77,12 @@ class StanFit(object):
         self._stepsize = None
         self._sample = None
         self._first_draw = None
+        self._generated_quantities = None
 
     def __repr__(self) -> str:
         repr = 'StanFit(args={}, chains={}'.format(self._args, self._chains)
         repr = '{}\n csv_files={}\nconsole_files={})'.format(
-            repr, '\n\t'.join(self.csv_files), '\n\t'.join(self.console_files)
+            repr, '\n\t'.join(self._csv_files), '\n\t'.join(self.console_files)
         )
         return repr
 
@@ -111,6 +118,13 @@ class StanFit(object):
         """
         return self._column_names
 
+    @property
+    def csv_files(self) -> List[str]:
+        """
+        List of paths to CmdStan output files.
+        """
+        return self._csv_files
+
     @property
     def metric_type(self) -> str:
         """Metric type, either 'diag_e' or 'dense_e'."""
@@ -135,6 +149,12 @@ class StanFit(object):
         """Returns true if we are optimizing rather than sampling."""
         return self._is_optimizing
 
+    @property
+    def is_sampling(self) -> bool:
+        """Returns true if we are sampling rather than
+        optimizing or running generate quantities"""
+        return self._is_sampling
+
     @property
     def optimized_params_np(self) -> np.array:
         """Returns optimized params as numpy array."""
@@ -151,17 +171,16 @@ class StanFit(object):
         return OrderedDict(zip(self.column_names, self._first_draw))
 
     def _sampling_only(self):
-        """Raise RuntimeError if method is not sampling."""
-        if self.is_optimizing:
+        if not self.is_sampling:
             raise RuntimeError('Method available only when sampling!')
 
     @property
     def sample(self) -> np.ndarray:
         """
-        A 3-D numpy ndarray which contains all draws across all chain arranged
-        as (draws, chains, columns) stored column major so that the values
-        for each parameter are stored contiguously in memory, likewise
-        all draws from a chain are contiguous.
+        A 3-D numpy ndarray which contains all draws across all chains
+        arranged as (draws, chains, columns) stored column major
+        so that the values for each parameter are stored contiguously
+        in memory, likewise all draws from a chain are contiguous.
         """
         self._sampling_only()
 
@@ -169,6 +188,18 @@ class StanFit(object):
             self._assemble_sample()
         return self._sample
 
+    @property
+    def generated_quantities(self) -> np.ndarray:
+        """
+        A 3-D numpy ndarray which contains all draws across all chains
+        arranged as (draws, chains, columns) stored column major
+        so that the values for each parameter are stored contiguously
+        in memory, likewise all draws from a chain are contiguous.
+        """
+        if self._generated_quantities is None:
+            self._assemble_generated_quantities()
+        return self._generated_quantities
+
     def _check_retcodes(self) -> bool:
         """True when all chains have retcode 0."""
         for i in range(self._chains):
@@ -184,6 +215,8 @@ class StanFit(object):
         """Set retcode for chain[idx] to val."""
         self._retcodes[idx] = val
 
+    # redo - better error handling
+    # only used by unit tests...
     def _check_console_msgs(self) -> bool:
         """Checks console messages for each chain."""
         valid = True
@@ -209,18 +242,22 @@ class StanFit(object):
         for i in range(self._chains):
             if i == 0:
                 dzero = check_csv(
-                    self.csv_files[i], is_optimizing=self.is_optimizing
+                    self._csv_files[i],
+                    is_optimizing=self.is_optimizing,
+                    is_sampling=self.is_sampling,
                 )
             else:
                 d = check_csv(
-                    self.csv_files[i], is_optimizing=self.is_optimizing
+                    self._csv_files[i],
+                    is_optimizing=self.is_optimizing,
+                    is_sampling=self.is_sampling,
                 )
                 for key in dzero:
                     if key not in ('id', 'first_draw') and dzero[key] != d[key]:
                         raise ValueError(
                             'csv file header mismatch, '
                             'file {}, key {} is {}, expected {}'.format(
-                                self.csv_files[i], key, dzero[key], d[key]
+                                self._csv_files[i], key, dzero[key], d[key]
                             )
                         )
         self._draws = dzero['draws']
@@ -229,6 +266,27 @@ class StanFit(object):
         self._first_draw = dzero.get('first_draw')
         self._metric_type = dzero.get('metric')
 
+    def _set_attrs_gq_csv_files(self, sample_csv_0: str) -> None:
+        """
+        Propogate information from original sample to additional sample
+        returned by run_generated_quantities.
+        """
+        sample_meta = check_csv(
+            sample_csv_0, is_optimizing=False, is_sampling=True
+        )
+        self._draws = sample_meta['draws']
+        self._num_params = sample_meta['num_params']
+        self._first_draw = sample_meta.get('first_draw')
+        self._metric_type = sample_meta.get('metric')
+        dzero = scan_stan_csv(self._csv_files[0], is_sampling=False)
+        self._column_names = dzero['column_names']
+
+    def _assemble_generated_quantities(self) -> None:
+        df_list = []
+        for chain in range(self._chains):
+            df_list.append(pd.read_csv(self._csv_files[chain], comment='#'))
+        self._generated_quantities = pd.concat(df_list).values
+
     def _assemble_sample(self) -> None:
         """
         Allocates and populates the stepsize, metric, and sample arrays
@@ -255,7 +313,7 @@ class StanFit(object):
             order='F',
         )
         for chain in range(self._chains):
-            with open(self.csv_files[chain], 'r') as fp:
+            with open(self._csv_files[chain], 'r') as fp:
                 # skip initial comments, reads thru column header
                 line = fp.readline().strip()
                 while len(line) > 0 and line.startswith('#'):
@@ -303,7 +361,7 @@ class StanFit(object):
         tmp_csv_path = create_named_text_file(
             dir=TMPDIR, prefix=tmp_csv_file, suffix='.csv'
         )
-        cmd = [cmd_path, '--csv_file={}'.format(tmp_csv_path)] + self.csv_files
+        cmd = [cmd_path, '--csv_file={}'.format(tmp_csv_path)] + self._csv_files
         do_command(cmd, logger=self._logger)
         with open(tmp_csv_path, 'rb') as fd:
             summary_data = pd.read_csv(
@@ -331,7 +389,7 @@ class StanFit(object):
         self._sampling_only()
 
         cmd_path = os.path.join(cmdstan_path(), 'bin', 'diagnose' + EXTENSION)
-        cmd = [cmd_path] + self.csv_files
+        cmd = [cmd_path] + self._csv_files
         result = do_command(cmd=cmd, logger=self._logger)
         if result:
             self._logger.warning(result)
@@ -385,9 +443,9 @@ class StanFit(object):
             raise Exception('cannot save to path: {}'.format(dir))
 
         for i in range(self.chains):
-            if not os.path.exists(self.csv_files[i]):
+            if not os.path.exists(self._csv_files[i]):
                 raise ValueError(
-                    'cannot access csv file {}'.format(self.csv_files[i])
+                    'cannot access csv file {}'.format(self._csv_files[i])
                 )
             to_path = os.path.join(dir, '{}-{}.csv'.format(basename, i + 1))
             if os.path.exists(to_path):
@@ -396,10 +454,10 @@ class StanFit(object):
                 )
             try:
                 self._logger.debug(
-                    'saving tmpfile: "%s" as: "%s"', self.csv_files[i], to_path
+                    'saving tmpfile: "%s" as: "%s"', self._csv_files[i], to_path
                 )
-                shutil.move(self.csv_files[i], to_path)
-                self.csv_files[i] = to_path
+                shutil.move(self._csv_files[i], to_path)
+                self._csv_files[i] = to_path
             except (IOError, OSError, PermissionError) as e:
                 raise ValueError(
                     'cannot save to file: {}'.format(to_path)
diff --git a/cmdstanpy/utils.py b/cmdstanpy/utils.py
index b891210..2996131 100644
--- a/cmdstanpy/utils.py
+++ b/cmdstanpy/utils.py
@@ -283,9 +283,13 @@ def parse_rdump_value(rhs: str) -> Union[int, float, np.array]:
     return val
 
 
-def check_csv(path: str, is_optimizing: bool = False) -> Dict:
+def check_csv(
+    path: str,
+    is_optimizing: bool = False,
+    is_sampling: bool = True
+) -> Dict:
     """Capture essential config, shape from stan_csv file."""
-    meta = scan_stan_csv(path, is_optimizing=is_optimizing)
+    meta = scan_stan_csv(path, is_sampling=is_sampling)
     # check draws against spec
     if is_optimizing:
         draws_spec = 1
@@ -302,7 +306,7 @@ def check_csv(path: str, is_optimizing: bool = False) -> Dict:
     return meta
 
 
-def scan_stan_csv(path: str, is_optimizing: bool = False) -> Dict:
+def scan_stan_csv(path: str, is_sampling: bool = True) -> Dict:
     """Process stan_csv file line by line."""
     dict = {}
     lineno = 0
@@ -310,7 +314,8 @@ def scan_stan_csv(path: str, is_optimizing: bool = False) -> Dict:
         lineno = scan_config(fp, dict, lineno)
         lineno = scan_column_names(fp, dict, lineno)
         lineno = scan_warmup(fp, dict, lineno)
-        if not is_optimizing:
+
+        if is_sampling:
             lineno = scan_metric(fp, dict, lineno)
         lineno = scan_draws(fp, dict, lineno)
     return dict
diff --git a/cmdstanpy_tutorial.ipynb b/cmdstanpy_tutorial.ipynb
index 669dee4..bbce674 100644
--- a/cmdstanpy_tutorial.ipynb
+++ b/cmdstanpy_tutorial.ipynb
@@ -7,25 +7,33 @@
     "# CmdStanPy Tutorial\n",
     "\n",
     "\n",
-    "### Workflow Outline\n",
+    "## Workflow Outline\n",
     "\n",
     "Given a dataset and a model specification written as a Stan program, the CmdStanPy workflow is:\n",
     "\n",
-    "#### Assemble input data as either:\n",
+    "### Assemble input data as either:\n",
     "  + A Python `dict` object consisting of key-value pairs where the key corresponds\n",
     " to Stan data variables and the value is of the correct type and shape.\n",
     "  + An existing data file on disk in either JSON or Rdump format.\n",
     "\n",
-    "#### Compile the model\n",
-    "  + A `Model` object stores the filepath of the Stan program.\n",
-    "  + Method `compile` translates the Stan program to C++ then calls the C++ compiler.\n",
+    "### Compile the model\n",
+    "  + The `Model` object stores the filepath of the Stan program.\n",
+    "  + The `compile` method translates the Stan program to C++ then calls the C++ compiler which creates the executable program.\n",
     "\n",
-    "#### Fit the model using the data,  sample from the posterior\n",
-    "  + The `Model` class method `sample` invokes Stan's NUTS-HMC sampler to condition model on input data and returns a `StanFit` object which contains a set of draws from the posterior plus metadata.\n",
+    "### Fit the model conditioned on the data to obtain an estimate of the posterior\n",
+    "\n",
+    "#### Run the NUTS-HMC sampler to obtain the full posterior density\n",
+    "\n",
+    "  + The `Model` class method `sample` invokes Stan's NUTS-HMC sampler which conditions the model on the input data and returns a `StanFit` object. The `StanFit` object contains the set of draws from the posterior plus metadata.\n",
     "  + Runs any number of chains - default is 4 chains.\n",
     "  + The output of each chain is stored on disk as a Stan csv file.\n",
     "\n",
-    "#### Summarize and check the fit\n",
+    "#### Estimate the mode of the posterior density via optimization\n",
+    "\n",
+    "  + The `Model` class method `optimize` runs one of Stan's [optimization](https://mc-stan.org/docs/reference-manual/optimization-algorithms-chapter.html) algorithms to obtains an estimate of the mode of the posterior density.\n",
+    "\n",
+    "### Summarize and check the sample\n",
+    "\n",
     "   + The `StanFit` class method `summary` invokes CmdStan's `stansummary` utility. Returns a Pandas DataFrame with estimates of posterior means, standard deviations, Monte-Carlo standard error, effective sample size, and convergence diagnostic statistic for all parameters in the model.\n",
     "   + The `StanFit` class method `diagnose` invokes CmdStan's `diagnose` utility which checks for the following problems:\n",
     "    + transitions that hit the maximum treedepth\n",
@@ -33,8 +41,9 @@
     "    + low E-BFMI values (sampler transitions HMC potential energy)\n",
     "    + low effective sample sizes\n",
     "    + high R-hat values\n",
+    "   + See the Stan reference manual section on [posterior analysis](https://mc-stan.org/docs/reference-manual/analysis-chapter.html) for further details.\n",
     "\n",
-    "####  Assemble the sample in-memory\n",
+    "###  Assemble the sample in-memory\n",
     "  + The resulting sample is accessed via the `StanFit` object:\n",
     "    + `sample`  - all draws from all chains, stored as a 3-D numpy.ndarray.\n",
     "    + `chains` - number of chains run by sampler\n",
@@ -48,7 +57,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "### Installation\n",
+    "## Installation\n",
     "\n",
     "* Install Python package from PyPI or directly from GitHub:\n",
     "\n",
@@ -67,7 +76,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "### Example 1:  Compile and run CmdStan example model `bernoulli.stan`, data `bernoulli.data.json`\n",
+    "## Hello World:  Compile and run CmdStan example model `bernoulli.stan`\n",
     "\n",
     "Every CmdStan release has an `examples/bernoulli` directory which contains the Stan model and test data files.  In this example we compile the model and run the sampler on the model and data."
    ]
@@ -76,12 +85,12 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "#### Import relevant classes and methods"
+    "### Import relevant classes and methods"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -94,7 +103,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "#### Compile the model"
+    "### Compile the model"
    ]
   },
   {
@@ -106,7 +115,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -123,16 +132,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "INFO:cmdstanpy:compiling c++\n",
+      "INFO:cmdstanpy:compiled model file: /Users/mitzi/.cmdstanpy/cmdstan-2.20.0/examples/bernoulli/bernoulli\n"
+     ]
+    },
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "compiling c++: make args ['make', 'O=2', '/Users/mitzi/.cmdstanpy/cmdstan-2.19.1/examples/bernoulli/bernoulli']\n",
-      "compiled model file: /Users/mitzi/.cmdstanpy/cmdstan-2.19.1/examples/bernoulli/bernoulli\n",
-      "Model(name=bernoulli,  stan_file=\"/Users/mitzi/.cmdstanpy/cmdstan-2.19.1/examples/bernoulli/bernoulli.stan\", exe_file=\"/Users/mitzi/.cmdstanpy/cmdstan-2.19.1/examples/bernoulli/bernoulli\")\n"
+      "Model(name=bernoulli,  stan_file=\"/Users/mitzi/.cmdstanpy/cmdstan-2.20.0/examples/bernoulli/bernoulli.stan\", exe_file=\"/Users/mitzi/.cmdstanpy/cmdstan-2.20.0/examples/bernoulli/bernoulli\")\n"
      ]
     }
    ],
@@ -146,7 +161,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "#### Run the HMC-NUTS sampler on the model and data"
+    "### Run the HMC-NUTS sampler on the model and data"
    ]
   },
   {
@@ -158,7 +173,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -174,7 +189,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -185,27 +200,26 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "The `Model` method `sample` runs the NUTS-HMC sampler and returns a `StanFit` object."
+    "The `Model` method `sample` runs the NUTS-HMC sampler and returns a `StanFit` object.  By default, `sample` runs 4 sampler chains."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 21,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
+     "name": "stderr",
      "output_type": "stream",
      "text": [
-      "input data tempfile: /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmpbiqbyrgb/tmppvfbl0nf.json\n",
-      "start chain 1.  \n",
-      "finish chain 1.  \n",
-      "start chain 2.  \n",
-      "finish chain 2.  \n",
-      "start chain 3.  \n",
-      "finish chain 3.  \n",
-      "start chain 4.  \n",
-      "finish chain 4.  \n"
+      "INFO:cmdstanpy:start chain 1\n",
+      "INFO:cmdstanpy:finish chain 1\n",
+      "INFO:cmdstanpy:start chain 2\n",
+      "INFO:cmdstanpy:finish chain 2\n",
+      "INFO:cmdstanpy:start chain 3\n",
+      "INFO:cmdstanpy:finish chain 3\n",
+      "INFO:cmdstanpy:start chain 4\n",
+      "INFO:cmdstanpy:finish chain 4\n"
      ]
     }
    ],
@@ -217,50 +231,16 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "By default, `sample` runs 4 sampler chains.  The `chains` argument specifies the number of chains to run.  The `cores` argument specifies the number of processes to run in parallel."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 22,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "input data tempfile: /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmpbiqbyrgb/tmpewmqgta1.json\n",
-      "start chain 1.  start chain 2.  start chain 3.  \n",
-      "\n",
-      "\n",
-      "finish chain 2.  \n",
-      "start chain 4.  \n",
-      "finish chain 3.  \n",
-      "finish chain 1.  \n",
-      "start chain 5.  \n",
-      "finish chain 4.  \n",
-      "finish chain 5.  \n"
-     ]
-    }
-   ],
-   "source": [
-    "bern_fit = bernoulli_model.sample(chains=5, cores=3, data=bern_data)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "#### Access the sample: the `StanFit` object attributes and methods"
+    "### Access the sample: the `StanFit` object attributes and methods"
    ]
   },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "##### Summarize the results\n",
+    "#### Summarize the results\n",
     "\n",
-    "The `StanFit` method `summary` returns output of CmdStan bin/stansummary as pandas.DataFrame:"
+    "The `StanFit` method `summary` returns output of CmdStan bin/stansummary as pandas.DataFrame.  The `summary` report provides estimates of both the parameter value and the goodness of fit."
    ]
   },
   {
@@ -315,27 +295,27 @@
        "  <tbody>\n",
        "    <tr>\n",
        "      <th>lp__</th>\n",
-       "      <td>-7.302000</td>\n",
-       "      <td>0.019990</td>\n",
-       "      <td>0.804676</td>\n",
-       "      <td>-8.931250</td>\n",
-       "      <td>-6.990090</td>\n",
-       "      <td>-6.749940</td>\n",
-       "      <td>1620.43</td>\n",
-       "      <td>9386.52</td>\n",
-       "      <td>1.00135</td>\n",
+       "      <td>-7.265550</td>\n",
+       "      <td>0.022104</td>\n",
+       "      <td>0.776810</td>\n",
+       "      <td>-8.746650</td>\n",
+       "      <td>-6.980130</td>\n",
+       "      <td>-6.750090</td>\n",
+       "      <td>1235.07</td>\n",
+       "      <td>9644.46</td>\n",
+       "      <td>1.00074</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>theta</th>\n",
-       "      <td>0.247694</td>\n",
-       "      <td>0.002889</td>\n",
-       "      <td>0.121049</td>\n",
-       "      <td>0.073133</td>\n",
-       "      <td>0.235504</td>\n",
-       "      <td>0.474709</td>\n",
-       "      <td>1755.73</td>\n",
-       "      <td>10170.30</td>\n",
-       "      <td>1.00020</td>\n",
+       "      <td>0.253735</td>\n",
+       "      <td>0.003018</td>\n",
+       "      <td>0.119649</td>\n",
+       "      <td>0.084138</td>\n",
+       "      <td>0.239654</td>\n",
+       "      <td>0.471913</td>\n",
+       "      <td>1571.63</td>\n",
+       "      <td>12272.60</td>\n",
+       "      <td>1.00056</td>\n",
        "    </tr>\n",
        "  </tbody>\n",
        "</table>\n",
@@ -344,13 +324,13 @@
       "text/plain": [
        "           Mean      MCSE    StdDev        5%       50%       95%    N_Eff  \\\n",
        "name                                                                         \n",
-       "lp__  -7.302000  0.019990  0.804676 -8.931250 -6.990090 -6.749940  1620.43   \n",
-       "theta  0.247694  0.002889  0.121049  0.073133  0.235504  0.474709  1755.73   \n",
+       "lp__  -7.265550  0.022104  0.776810 -8.746650 -6.980130 -6.750090  1235.07   \n",
+       "theta  0.253735  0.003018  0.119649  0.084138  0.239654  0.471913  1571.63   \n",
        "\n",
        "        N_Eff/s    R_hat  \n",
        "name                      \n",
-       "lp__    9386.52  1.00135  \n",
-       "theta  10170.30  1.00020  "
+       "lp__    9644.46  1.00074  \n",
+       "theta  12272.60  1.00056  "
       ]
      },
      "execution_count": 7,
@@ -366,9 +346,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "##### Run sampler diagnostics\n",
+    "#### Run sampler diagnostics\n",
     "\n",
-    "The `StanFit` method `diagnose` prints diagnostics to console:"
+    "The `StanFit` method `diagnose` prints the output of CmdStan bin/stansummary to the console.  This is useful when the summary report shows `R_hat` values outside of the range of .99 to 1.01, or the number of effective samples (`N_eff` value) is below 5% of the total draws in the sample. "
    ]
   },
   {
@@ -377,11 +357,36 @@
    "metadata": {},
    "outputs": [
     {
-     "name": "stdout",
+     "name": "stderr",
      "output_type": "stream",
      "text": [
-      "No problems detected.\n"
+      "WARNING:cmdstanpy:Processing csv files: /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmp52kam1bg/stan-bernoulli-draws-1-mgz2phsb.csv, /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmp52kam1bg/stan-bernoulli-draws-2-85nxjmmr.csv, /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmp52kam1bg/stan-bernoulli-draws-3-_504d8s7.csv, /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmp52kam1bg/stan-bernoulli-draws-4-ajyoemgm.csv\n",
+      "\n",
+      "Checking sampler transitions treedepth.\n",
+      "Treedepth satisfactory for all transitions.\n",
+      "\n",
+      "Checking sampler transitions for divergences.\n",
+      "No divergent transitions found.\n",
+      "\n",
+      "Checking E-BFMI - sampler transitions HMC potential energy.\n",
+      "E-BFMI satisfactory for all transitions.\n",
+      "\n",
+      "Effective sample size satisfactory.\n",
+      "\n",
+      "Split R-hat values satisfactory all parameters.\n",
+      "\n",
+      "Processing complete, no problems detected.\n"
      ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "'Processing csv files: /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmp52kam1bg/stan-bernoulli-draws-1-mgz2phsb.csv, /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmp52kam1bg/stan-bernoulli-draws-2-85nxjmmr.csv, /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmp52kam1bg/stan-bernoulli-draws-3-_504d8s7.csv, /var/folders/sc/0f0wdc_11_xgjs2v52g20fvr0000gn/T/tmp52kam1bg/stan-bernoulli-draws-4-ajyoemgm.csv\\n\\nChecking sampler transitions treedepth.\\nTreedepth satisfactory for all transitions.\\n\\nChecking sampler transitions for divergences.\\nNo divergent transitions found.\\n\\nChecking E-BFMI - sampler transitions HMC potential energy.\\nE-BFMI satisfactory for all transitions.\\n\\nEffective sample size satisfactory.\\n\\nSplit R-hat values satisfactory all parameters.\\n\\nProcessing complete, no problems detected.'"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
     }
    ],
    "source": [
@@ -392,7 +397,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "##### Get all draws from all chains as an in-memory pandas DataFrame\n",
+    "#### Assemble all draws from all chains as an in-memory pandas DataFrame\n",
     "\n",
     "The `StanFit` method `get_drawset` returns a pandas.DataFrame, one draw per row."
    ]
@@ -421,7 +426,7 @@
     {
      "data": {
       "text/plain": [
-       "((5000, 8),\n",
+       "((4000, 8),\n",
        " Index(['lp__', 'accept_stat__', 'stepsize__', 'treedepth__', 'n_leapfrog__',\n",
        "        'divergent__', 'energy__', 'theta'],\n",
        "       dtype='object'))"
@@ -451,7 +456,7 @@
     {
      "data": {
       "text/plain": [
-       "(5000, 1)"
+       "(4000, 1)"
       ]
      },
      "execution_count": 11,
@@ -496,15 +501,15 @@
        "  <tbody>\n",
        "    <tr>\n",
        "      <th>0</th>\n",
-       "      <td>0.299034</td>\n",
+       "      <td>0.418464</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>1</th>\n",
-       "      <td>0.420992</td>\n",
+       "      <td>0.418464</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>2</th>\n",
-       "      <td>0.449149</td>\n",
+       "      <td>0.267071</td>\n",
        "    </tr>\n",
        "  </tbody>\n",
        "</table>\n",
@@ -512,9 +517,9 @@
       ],
       "text/plain": [
        "      theta\n",
-       "0  0.299034\n",
-       "1  0.420992\n",
-       "2  0.449149"
+       "0  0.418464\n",
+       "1  0.418464\n",
+       "2  0.267071"
       ]
      },
      "execution_count": 12,
@@ -528,22 +533,22 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x11b7ff898>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x112972518>"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 18,
      "metadata": {},
      "output_type": "execute_result"
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
        "<Figure size 432x288 with 1 Axes>"
       ]
@@ -569,22 +574,21 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 23,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "(1000, 5, 8)"
+       "(1000, 4, 8)"
       ]
      },
-     "execution_count": 23,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "bern_fit.sample\n",
     "bern_fit.sample.shape"
    ]
   },
@@ -602,16 +606,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 24,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "('theta', array([0.217442, 0.245027, 0.248628]))"
+       "('theta', array([0.418464, 0.418464, 0.267071]))"
       ]
      },
-     "execution_count": 24,
+     "execution_count": 14,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -624,7 +628,9 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "#### stepsize\n",
+    "#### Get HMC sampler tuning parameters\n",
+    "\n",
+    "##### stepsize\n",
     "\n",
     "The `StanFit` property `stepsize` property is a 1-D numpy ndarray which contains the stepsize used by the sampler for each chain.  This array is created at the same time as the `sample` and `metric` arrays are created.\n",
     "\n",
@@ -633,16 +639,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 25,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "array([1.01259 , 0.934727, 1.0782  , 0.902527, 0.889926])"
+       "array([1.09157 , 0.945093, 1.37647 , 0.882146])"
       ]
      },
-     "execution_count": 25,
+     "execution_count": 15,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -664,20 +670,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 26,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "('diag_e', array([[0.454029],\n",
-       "        [0.459385],\n",
-       "        [0.457433],\n",
-       "        [0.559454],\n",
-       "        [0.608292]]))"
+       "('diag_e', array([[0.598581],\n",
+       "        [0.380448],\n",
+       "        [0.458512],\n",
+       "        [0.466716]]))"
       ]
      },
-     "execution_count": 26,
+     "execution_count": 16,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -685,13 +690,6 @@
    "source": [
     "bern_fit.metric_type,  bern_fit.metric"
    ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {
diff --git a/docs/notebooks/Run Generated Quantities.ipynb b/docs/notebooks/Run Generated Quantities.ipynb
new file mode 100644
index 0000000..9bb1a40
--- /dev/null
+++ b/docs/notebooks/Run Generated Quantities.ipynb
@@ -0,0 +1,151 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#  Generating new quantities of interest given a existing model, data, and sample.\n",
+    "\n",
+    "\n",
+    "A Stan program is structured into named program blocks, all of which are optional, but which must occur in the following order:\n",
+    "  + functions\n",
+    "  + data\n",
+    "  + transformed data\n",
+    "  + parameters\n",
+    "  + transformed parameters\n",
+    "  + model\n",
+    "  + generated quantities\n",
+    "  \n",
+    "The [generated quantities](https://mc-stan.org/docs/2_19/reference-manual/program-block-generated-quantities.html) block computes quantities of interest based on the data, transformed data, parameters, and transformed parameters.  It allows us to:\n",
+    "\n",
+    "  + generate simulated data for model testing by forward sampling\n",
+    "  + generate predictions for new data\n",
+    "  + calculate posterior event probabilities, including multiple comparisons, sign tests, etc.\n",
+    "  + calculating posterior expectations\n",
+    "  + transform parameters for reporting\n",
+    "  + apply full Bayesian decision theory\n",
+    "  + calculate log likelihoods, deviances, etc. for model comparison\n",
+    "\n",
+    "If we have already obtained a sample from a model conditioned on a dataset and are satisfied with the model and the fit of the sample, but would like to compute new quantities of interest, the `run_generated_quantities` method allows us to do so without the expense of re-running the sampler.  Instead it takes the existing sample, and for each draw in the drawset, runs the generated quantities block of the program using the per-draw parameter estimates to compute the quantities of interest.\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Example:  add posterior predictive checks to `bernoulli.stan`\n",
+    "\n",
+    "\n",
+    "In this example we use the CmdStan example model [bernoulli.stan](https://github.com/stan-dev/cmdstanpy/blob/master/test/data/bernoulli.stan)\n",
+    "and data file [bernoulli.data.json](https://github.com/stan-dev/cmdstanpy/blob/master/test/data/bernoulli.data.json) as our existing model and data.\n",
+    "\n",
+    "We instantiate the model `bernoulli`,\n",
+    "as in the \"Hello World\" section\n",
+    "of the CmdStanPy [tutorial](../../cmdstanpy_tutorial.ipynb) notebook."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import os.path\n",
+    "from cmdstanpy import Model, StanFit, cmdstan_path\n",
+    "\n",
+    "bernoulli_dir = os.path.join(cmdstan_path(), 'examples', 'bernoulli')\n",
+    "bernoulli_path = os.path.join(bernoulli_dir, 'bernoulli.stan')\n",
+    "\n",
+    "# instantiate bernoulli model, compile Stan program\n",
+    "bernoulli_model = Model(stan_file=bernoulli_path)\n",
+    "bernoulli_model.compile()\n",
+    "print(bernoulli_model.code())"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We create program [bernoulli_ppc.stan](https://github.com/stan-dev/cmdstanpy/blob/master/test/data/bernoulli_ppc.stan)\n",
+    "by adding a `generated quantities` block which generates a new data vector `y_rep` using the current estimate of theta."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "bernoulli_ppc_model = Model(stan_file='bernoulli_ppc.stan')\n",
+    "bernoulli_ppc_model.compile()\n",
+    "print(bernoulli_ppc_model.code())"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "As in the \"Hello World\" tutorial, we produce a sample from the posterior of the model conditioned on the data:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# fit the model to the data\n",
+    "bern_data = os.path.join(bernoulli_dir, 'bernoulli.data.json')\n",
+    "bern_fit = bernoulli_model.sample(data=bern_data)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "The arguments to the `run_generated_quantities` method are:\n",
+    " + the data used to fit the model  (`bern_data`)\n",
+    " + the list of the resulting stan csv files (`bern_fit.csv_files`)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "new_quantities = bernoulli_ppc_model.run_generated_quantities(data=bern_data, csv_files=bern_fit.csv_files)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.0"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/docs/notebooks/bernoulli_ppc.stan b/docs/notebooks/bernoulli_ppc.stan
new file mode 100644
index 0000000..5efc172
--- /dev/null
+++ b/docs/notebooks/bernoulli_ppc.stan
@@ -0,0 +1,16 @@
+data { 
+  int<lower=0> N; 
+  int<lower=0,upper=1> y[N];
+} 
+parameters {
+  real<lower=0,upper=1> theta;
+} 
+model {
+  theta ~ beta(1,1);
+  y ~ bernoulli(theta);
+}
+generated quantities {
+  int y_rep[N];
+  for (n in 1:N)
+    y_rep[n] = bernoulli_rng(theta);
+}


Test patch:
diff --git a/test/data/bernoulli_ppc.stan b/test/data/bernoulli_ppc.stan
new file mode 100644
index 0000000..5efc172
--- /dev/null
+++ b/test/data/bernoulli_ppc.stan
@@ -0,0 +1,16 @@
+data { 
+  int<lower=0> N; 
+  int<lower=0,upper=1> y[N];
+} 
+parameters {
+  real<lower=0,upper=1> theta;
+} 
+model {
+  theta ~ beta(1,1);
+  y ~ bernoulli(theta);
+}
+generated quantities {
+  int y_rep[N];
+  for (n in 1:N)
+    y_rep[n] = bernoulli_rng(theta);
+}
diff --git a/test/data/sampling_output.csv b/test/data/sampling_output.csv
new file mode 100644
index 0000000..dbfdac2
--- /dev/null
+++ b/test/data/sampling_output.csv
@@ -0,0 +1,1048 @@
+# stan_version_major = 2
+# stan_version_minor = 19
+# stan_version_patch = 1
+# model = bernoulli_ppc_model
+# method = sample (Default)
+#   sample
+#     num_samples = 1000 (Default)
+#     num_warmup = 1000 (Default)
+#     save_warmup = 0 (Default)
+#     thin = 1 (Default)
+#     adapt
+#       engaged = 1 (Default)
+#       gamma = 0.050000000000000003 (Default)
+#       delta = 0.80000000000000004 (Default)
+#       kappa = 0.75 (Default)
+#       t0 = 10 (Default)
+#       init_buffer = 75 (Default)
+#       term_buffer = 50 (Default)
+#       window = 25 (Default)
+#     algorithm = hmc (Default)
+#       hmc
+#         engine = nuts (Default)
+#           nuts
+#             max_depth = 10 (Default)
+#         metric = diag_e (Default)
+#         metric_file =  (Default)
+#         stepsize = 1 (Default)
+#         stepsize_jitter = 0 (Default)
+# id = 1
+# data
+#   file = test/data/bernoulli.data.json
+# init = 2 (Default)
+# random
+#   seed = 80343
+# output
+#   file = /Users/aparna.chaganty/adhoc-datascience/cmdstanpy/test/data/bernoulli_ppc/sampling_output.csv
+#   diagnostic_file =  (Default)
+#   refresh = 100 (Default)
+lp__,accept_stat__,stepsize__,treedepth__,n_leapfrog__,divergent__,energy__,theta,mu,y_rep.1,y_rep.2,y_rep.3,y_rep.4,y_rep.5,y_rep.6,y_rep.7,y_rep.8,y_rep.9,y_rep.10
+# Adaptation terminated
+# Step size = 1.03831
+# Diagonal elements of inverse mass matrix:
+# 0.504345
+-6.98626,1,1.03831,1,1,0,7.07958,0.170975,0.170975,0,0,0,0,0,0,0,0,0,1
+-6.77277,0.971297,1.03831,2,3,0,7.10074,0.278471,0.278471,1,1,1,1,0,0,0,0,0,0
+-7.93552,0.69194,1.03831,2,3,0,8.50486,0.0961425,0.0961425,0,0,0,0,0,0,0,0,0,0
+-6.82418,1,1.03831,2,3,0,7.64203,0.300759,0.300759,0,1,0,0,0,0,1,1,0,1
+-6.82418,0.36473,1.03831,1,3,0,9.21532,0.300759,0.300759,0,0,0,1,0,0,0,0,1,0
+-6.75343,0.96356,1.03831,2,3,0,6.97187,0.26315,0.26315,1,1,0,0,0,0,1,0,0,0
+-7.50177,0.806672,1.03831,1,3,0,7.76463,0.120648,0.120648,0,0,0,1,0,0,0,0,0,0
+-6.79608,1,1.03831,1,3,0,7.38331,0.212645,0.212645,0,0,0,0,1,0,0,0,1,0
+-6.74826,0.988145,1.03831,2,3,0,6.87583,0.252726,0.252726,0,0,0,0,0,0,0,0,0,0
+-6.81134,0.982955,1.03831,1,3,0,6.82407,0.207369,0.207369,0,1,0,0,0,1,1,0,0,0
+-6.92617,0.964408,1.03831,1,3,0,7.05239,0.329047,0.329047,0,0,0,0,0,1,1,0,1,0
+-6.83606,1,1.03831,2,3,0,6.89781,0.200147,0.200147,0,1,1,0,0,0,0,0,0,1
+-7.18753,0.958659,1.03831,2,3,0,7.27339,0.377327,0.377327,0,1,0,0,1,0,0,1,0,1
+-6.83018,0.979064,1.03831,1,3,0,7.30303,0.201749,0.201749,0,0,1,0,0,1,0,0,1,0
+-7.20451,0.655955,1.03831,2,3,0,9.24932,0.144846,0.144846,0,0,0,1,0,0,0,0,0,0
+-7.19895,1,1.03831,1,1,0,7.30883,0.145395,0.145395,0,0,0,0,0,0,0,0,0,0
+-7.14733,1,1.03831,2,3,0,7.27057,0.150716,0.150716,0,1,0,0,0,0,0,0,0,0
+-7.1121,1,1.03831,1,1,0,7.21924,0.154617,0.154617,1,0,0,0,0,0,0,0,0,0
+-7.00832,1,1.03831,1,1,0,7.13122,0.167767,0.167767,0,0,1,0,0,0,1,0,0,0
+-6.74963,0.95674,1.03831,2,3,0,7.27185,0.257126,0.257126,0,0,0,1,0,1,0,0,0,0
+-6.74857,0.940963,1.03831,2,3,0,7.02978,0.254143,0.254143,1,0,0,1,0,0,0,0,0,1
+-7.02827,0.928079,1.03831,1,3,0,7.04423,0.350333,0.350333,0,0,0,0,0,0,0,1,1,0
+-6.82415,1,1.03831,1,1,0,6.96525,0.30075,0.30075,1,0,0,1,0,1,0,0,0,0
+-6.82415,0.823863,1.03831,1,3,0,7.5197,0.30075,0.30075,0,0,1,1,0,0,1,0,1,1
+-6.77015,0.993206,1.03831,1,3,0,6.8603,0.224339,0.224339,0,0,0,0,0,0,1,1,0,0
+-6.84901,0.978553,1.03831,1,1,0,6.84907,0.196813,0.196813,1,0,1,0,1,0,1,0,0,0
+-7.73001,0.853076,1.03831,1,3,0,7.78822,0.106627,0.106627,0,1,0,0,0,0,0,0,0,0
+-8.48811,0.900863,1.03831,1,1,0,8.51742,0.0744851,0.0744851,0,0,0,0,0,0,0,0,0,0
+-6.84244,0.846474,1.03831,1,3,0,8.96494,0.306747,0.306747,1,1,1,1,0,1,0,1,1,1
+-7.26667,0.929694,1.03831,2,3,0,7.27873,0.139011,0.139011,0,0,0,0,0,1,0,0,0,0
+-8.02122,0.959142,1.03831,2,3,0,8.02366,0.0922331,0.0922331,0,1,0,0,0,0,0,0,0,0
+-6.81567,0.866916,1.03831,2,3,0,8.64434,0.29774,0.29774,0,0,1,0,0,0,0,0,1,0
+-7.50103,0.779526,1.03831,1,1,0,7.50138,0.41952,0.41952,0,0,1,0,0,0,1,1,0,0
+-6.98538,1,1.03831,2,3,0,7.35022,0.341917,0.341917,0,0,1,0,1,0,1,0,0,0
+-6.88434,1,1.03831,1,1,0,6.98394,0.318715,0.318715,0,1,0,1,1,0,0,0,0,0
+-6.88434,0.931997,1.03831,1,1,0,7.03574,0.318715,0.318715,0,0,0,0,0,0,0,0,0,0
+-7.09919,0.924681,1.03831,1,1,0,7.12617,0.363044,0.363044,0,0,1,1,0,1,0,0,0,0
+-7.269,0.93713,1.03831,1,1,0,7.37685,0.389363,0.389363,1,1,1,1,0,1,0,1,0,0
+-7.11266,0.858699,1.03831,1,3,0,7.92166,0.154553,0.154553,1,1,0,0,0,0,0,0,0,0
+-6.75892,0.97717,1.03831,1,3,0,7.13228,0.268753,0.268753,0,0,0,0,0,0,0,0,0,0
+-6.75195,1,1.03831,1,1,0,6.75717,0.261185,0.261185,1,0,0,0,1,1,1,0,0,1
+-6.90521,0.891649,1.03831,2,3,0,7.24201,0.324029,0.324029,0,0,0,1,0,1,1,0,1,0
+-9.25017,0.308228,1.03831,1,3,0,11.2821,0.0541253,0.0541253,0,0,0,0,0,0,0,0,0,0
+-6.83066,1,1.03831,2,3,0,8.94686,0.201616,0.201616,1,0,0,0,1,1,0,0,0,0
+-6.82667,1,1.03831,2,3,0,6.85055,0.202737,0.202737,0,0,0,0,0,1,0,1,0,0
+-9.43774,0.536846,1.03831,1,3,0,9.78584,0.579757,0.579757,0,1,1,1,1,0,0,0,1,1
+-7.30158,1,1.03831,2,3,0,8.67511,0.393929,0.393929,0,1,0,0,0,0,0,0,0,1
+-6.93723,0.939821,1.03831,1,3,0,7.61943,0.178822,0.178822,1,1,0,0,0,0,0,0,0,1
+-6.74825,0.997255,1.03831,1,3,0,6.91059,0.247332,0.247332,0,0,1,0,0,0,0,0,0,0
+-8.65278,0.599445,1.03831,1,3,0,9.38863,0.069345,0.069345,0,0,0,0,0,0,0,0,0,0
+-8.77898,0.995705,1.03831,2,3,0,9.05069,0.0657169,0.0657169,0,0,0,0,0,0,0,0,0,0
+-7.19349,1,1.03831,1,3,0,8.57814,0.145937,0.145937,0,0,0,0,0,1,1,1,1,0
+-7.39393,0.987289,1.03831,2,3,0,7.45079,0.128455,0.128455,0,1,0,0,0,0,1,0,0,0
+-7.07458,1,1.03831,1,1,0,7.34883,0.159055,0.159055,0,0,1,0,0,0,1,0,0,1
+-7.38364,0.938942,1.03831,1,1,0,7.40477,0.129249,0.129249,0,1,0,0,0,0,0,0,0,0
+-6.8227,0.975952,1.03831,2,3,0,7.56355,0.300248,0.300248,1,0,0,0,0,0,0,0,1,1
+-6.74818,0.986425,1.03831,2,3,0,6.89206,0.25221,0.25221,1,1,0,0,1,0,1,0,0,0
+-6.78931,0.990367,1.03831,2,3,0,6.80617,0.215277,0.215277,1,0,0,0,0,0,1,0,0,0
+-7.95067,0.779344,1.03831,1,3,0,8.13802,0.0954336,0.0954336,0,0,0,1,0,0,0,0,0,0
+-7.51703,1,1.03831,2,3,0,7.94011,0.119613,0.119613,0,0,0,1,0,1,0,0,0,0
+-6.86958,1,1.03831,1,3,0,7.38438,0.191987,0.191987,0,0,0,0,0,0,1,0,0,1
+-6.83362,1,1.03831,1,1,0,6.87667,0.200805,0.200805,0,0,1,0,0,1,0,0,0,0
+-6.75145,1,1.03831,1,3,0,6.81393,0.239747,0.239747,0,1,1,0,0,0,0,0,1,0
+-6.75317,0.99949,1.03831,1,1,0,6.75391,0.237462,0.237462,1,1,0,0,0,0,0,0,0,0
+-6.77264,0.822135,1.03831,2,3,0,7.74225,0.22297,0.22297,0,0,0,0,0,0,1,0,0,0
+-7.16974,0.890439,1.03831,2,3,0,7.47998,0.374565,0.374565,0,0,1,1,0,1,0,0,0,1
+-6.80719,1,1.03831,2,3,0,7.22018,0.208727,0.208727,0,0,0,1,0,0,0,0,0,0
+-6.84726,0.962302,1.03831,2,3,0,7.06494,0.308234,0.308234,0,1,0,0,0,0,0,1,1,0
+-7.31582,0.842627,1.03831,1,1,0,7.3233,0.395886,0.395886,1,0,0,0,1,0,0,0,1,1
+-6.89246,1,1.03831,2,3,0,7.27274,0.18714,0.18714,0,0,0,1,0,0,1,0,1,0
+-6.74802,0.997522,1.03831,2,3,0,6.9018,0.250142,0.250142,1,1,0,0,0,0,0,1,0,1
+-7.02797,0.928902,1.03831,1,3,0,7.08368,0.16505,0.16505,0,0,0,0,1,0,0,0,0,0
+-6.77324,0.977138,1.03831,1,3,0,7.07902,0.278745,0.278745,0,0,0,1,0,0,0,0,0,0
+-6.84481,0.990372,1.03831,2,3,0,6.847,0.307484,0.307484,0,0,0,0,1,1,1,0,0,0
+-6.80624,0.831313,1.03831,2,3,0,7.50067,0.29418,0.29418,1,1,0,0,0,0,0,1,0,0
+-6.75353,1,1.03831,1,3,0,6.78928,0.26327,0.26327,0,1,0,0,0,0,0,0,0,1
+-7.18557,0.882375,1.03831,1,3,0,7.3287,0.146733,0.146733,0,0,0,0,0,0,0,0,0,0
+-7.79276,0.894331,1.03831,1,1,0,7.79829,0.103242,0.103242,0,1,0,0,0,0,0,0,0,0
+-10.1462,0.801239,1.03831,1,3,0,10.2745,0.0381876,0.0381876,0,0,0,0,0,0,0,0,0,0
+-7.10253,0.97712,1.03831,1,3,0,10.2276,0.15572,0.15572,0,0,0,0,0,0,0,0,0,0
+-6.8574,1,1.03831,2,3,0,7.02883,0.311259,0.311259,0,1,1,1,1,0,0,0,0,0
+-6.84883,1,1.03831,1,1,0,6.88689,0.308712,0.308712,1,0,0,1,0,0,0,0,0,0
+-6.82928,1,1.03831,1,1,0,6.86627,0.302495,0.302495,0,0,0,1,0,0,0,1,0,0
+-6.76661,1,1.03831,2,3,0,6.8096,0.274604,0.274604,0,0,0,0,1,0,0,0,0,0
+-6.92897,0.972281,1.03831,2,3,0,6.94703,0.180261,0.180261,0,0,0,0,0,0,1,0,0,0
+-6.80798,1,1.03831,2,3,0,6.89974,0.208466,0.208466,0,0,0,0,0,0,0,1,0,0
+-7.60347,0.811752,1.03831,1,3,0,7.80339,0.431412,0.431412,1,0,1,0,0,1,0,1,0,0
+-6.79304,1,1.03831,1,3,0,7.55116,0.213801,0.213801,0,0,0,1,0,1,0,0,1,0
+-9.02432,0.595774,1.03831,1,3,0,9.67203,0.0593315,0.0593315,0,0,0,0,1,0,0,0,0,0
+-8.17498,1,1.03831,1,1,0,8.97536,0.0857835,0.0857835,1,0,0,0,0,0,1,0,0,1
+-6.78255,0.961389,1.03831,1,3,0,8.09279,0.218148,0.218148,0,0,0,0,1,0,0,1,0,0
+-7.1145,0.932368,1.03831,2,3,0,7.29113,0.365629,0.365629,1,0,1,0,1,1,1,0,0,1
+-7.1145,0.479301,1.03831,1,1,0,8.27838,0.365629,0.365629,0,0,0,1,1,1,0,1,0,0
+-6.78772,1,1.03831,1,1,0,7.00036,0.286272,0.286272,0,0,0,1,0,0,0,0,0,0
+-6.78081,1,1.03831,1,1,0,6.79493,0.28288,0.28288,1,0,0,0,1,0,0,0,0,0
+-6.90551,0.958348,1.03831,1,1,0,6.9075,0.324103,0.324103,0,1,0,0,0,1,1,0,1,0
+-6.76343,0.871883,1.03831,2,3,0,7.39018,0.272356,0.272356,0,0,0,0,0,0,0,1,0,1
+-6.81664,0.992635,1.03831,2,3,0,6.81963,0.205705,0.205705,0,0,1,1,0,0,0,0,0,0
+-8.11993,0.768301,1.03831,1,3,0,8.31337,0.088015,0.088015,0,0,0,0,0,0,0,0,0,0
+-6.9417,1,1.03831,2,3,0,7.76708,0.332592,0.332592,1,0,0,1,0,0,0,0,0,0
+-7.26055,0.956943,1.03831,2,3,0,7.30083,0.388156,0.388156,0,0,1,0,0,1,1,0,0,0
+-7.90978,0.772803,1.03831,1,1,0,8.04807,0.463377,0.463377,0,0,0,1,1,1,1,0,1,1
+-6.77098,1,1.03831,1,3,0,7.71137,0.223871,0.223871,0,0,0,0,0,0,0,1,0,0
+-8.22481,0.7139,1.03831,1,3,0,8.56255,0.0838323,0.0838323,0,0,0,0,0,0,0,0,0,0
+-6.91637,0.989883,1.03831,2,3,0,8.32625,0.182534,0.182534,0,0,0,0,0,0,0,0,1,1
+-6.77092,0.980566,1.03831,2,3,0,6.99193,0.277365,0.277365,1,0,0,0,0,0,0,0,0,0
+-6.75678,0.934144,1.03831,2,3,0,7.06963,0.233706,0.233706,1,0,0,1,0,0,0,0,0,0
+-6.80181,0.952519,1.03831,2,3,0,7.0257,0.21057,0.21057,1,1,0,1,0,0,0,0,0,0
+-6.90757,0.990917,1.03831,2,3,0,6.90969,0.184181,0.184181,0,0,0,0,0,0,0,0,0,1
+-7.16119,0.927632,1.03831,1,3,0,7.45772,0.373219,0.373219,0,0,0,0,0,1,0,1,0,0
+-6.90692,0.952095,1.03831,1,3,0,7.43069,0.184305,0.184305,0,0,0,0,0,0,0,0,0,0
+-6.85045,0.975784,1.03831,2,3,0,7.14658,0.196459,0.196459,0,0,0,0,0,0,0,1,1,0
+-6.81797,1,1.03831,2,3,0,6.85509,0.205298,0.205298,0,0,1,0,0,1,0,0,0,1
+-6.74928,0.985433,1.03831,2,3,0,6.90787,0.256298,0.256298,0,0,0,0,0,0,0,1,0,0
+-6.89501,0.915111,1.03831,2,3,0,7.147,0.321474,0.321474,1,0,1,0,0,0,0,0,1,0
+-8.48995,0.758526,1.03831,2,3,0,8.49307,0.513955,0.513955,1,1,0,0,0,1,1,1,1,0
+-7.70709,1,1.03831,1,1,0,8.4764,0.442768,0.442768,0,1,0,0,0,1,1,0,0,0
+-6.8632,1,1.03831,2,3,0,7.3969,0.312929,0.312929,0,1,0,1,0,1,0,0,0,0
+-7.27914,0.933357,1.03831,2,3,0,7.28667,0.1379,0.1379,0,0,1,0,0,0,0,0,0,0
+-7.05146,1,1.03831,1,1,0,7.2601,0.161955,0.161955,0,0,0,0,0,0,0,0,0,0
+-7.21385,0.966112,1.03831,1,1,0,7.25318,0.143936,0.143936,1,0,1,1,0,0,0,0,1,0
+-6.86487,0.998074,1.03831,1,3,0,7.13148,0.193047,0.193047,0,1,0,0,0,0,1,1,0,1
+-6.74867,0.999047,1.03831,2,3,0,6.86593,0.254501,0.254501,0,0,0,0,1,0,0,0,0,1
+-6.74989,0.999619,1.03831,1,1,0,6.74996,0.2577,0.2577,0,1,0,1,1,0,0,0,0,0
+-7.23382,0.653361,1.03831,2,3,0,8.51078,0.38428,0.38428,0,1,1,0,0,0,0,0,1,0
+-8.14882,0.860619,1.03831,2,3,0,8.26464,0.485505,0.485505,1,0,1,1,1,1,1,0,0,1
+-7.08008,1,1.03831,1,1,0,7.78656,0.359746,0.359746,0,0,0,0,0,1,1,1,0,0
+-7.08008,0.847932,1.03831,2,3,0,7.73342,0.359746,0.359746,0,0,0,0,0,0,0,1,0,1
+-7.9663,0.706922,1.03831,1,1,0,8.02957,0.468802,0.468802,1,1,1,0,0,1,1,0,0,1
+-6.95826,1,1.03831,1,1,0,7.60171,0.336231,0.336231,1,1,0,0,1,0,0,0,0,1
+-6.78635,1,1.03831,1,1,0,6.90082,0.285623,0.285623,0,0,1,0,1,1,0,0,1,1
+-7.3369,0.86356,1.03831,1,3,0,7.33729,0.398741,0.398741,0,0,1,1,0,0,1,0,0,0
+-7.3369,0.538198,1.03831,1,1,0,8.3848,0.398741,0.398741,0,1,0,1,1,1,1,0,0,1
+-6.86762,0.966469,1.03831,1,3,0,7.50998,0.192425,0.192425,0,1,0,0,0,0,0,1,0,0
+-7.83153,0.84464,1.03831,2,3,0,8.2069,0.101235,0.101235,0,0,1,0,1,0,0,0,0,1
+-6.80504,0.845066,1.03831,2,3,0,9.62543,0.209452,0.209452,0,0,0,1,0,1,0,0,0,0
+-6.80504,0.911405,1.03831,1,3,0,7.18323,0.209452,0.209452,0,0,0,0,0,0,1,1,0,0
+-7.97489,0.786033,1.03831,1,3,0,8.1417,0.0943162,0.0943162,0,0,0,0,0,0,0,0,0,0
+-7.31444,0.967954,1.03831,2,3,0,8.5955,0.134851,0.134851,0,0,0,0,1,0,0,0,0,0
+-7.98079,0.892734,1.03831,1,1,0,7.99042,0.0940469,0.0940469,0,0,1,0,0,1,0,0,1,0
+-7.44345,1,1.03831,1,1,0,7.92767,0.124756,0.124756,0,0,0,0,0,0,0,0,1,1
+-7.01497,0.932777,1.03831,2,3,0,8.1378,0.347791,0.347791,0,0,1,0,1,0,1,0,0,0
+-7.01497,0.323981,1.03831,2,7,0,10.29,0.347791,0.347791,0,0,1,1,0,1,0,1,0,0
+-7.38377,0.868948,1.03831,1,1,0,7.44672,0.404925,0.404925,0,0,0,0,1,1,1,0,0,0
+-7.2375,1,1.03831,1,1,0,7.48998,0.38482,0.38482,0,0,0,0,0,0,1,1,1,1
+-7.15238,1,1.03831,1,1,0,7.34084,0.371818,0.371818,0,0,1,0,1,0,1,0,0,1
+-6.99432,0.916241,1.03831,1,3,0,7.5844,0.169782,0.169782,0,0,0,0,0,0,0,0,0,0
+-6.8232,1,1.03831,1,1,0,6.95252,0.203739,0.203739,0,0,1,0,0,1,0,0,0,0
+-7.14886,0.912856,1.03831,1,3,0,7.32743,0.371254,0.371254,0,0,0,0,1,0,0,0,1,0
+-6.89035,1,1.03831,2,3,0,7.08529,0.187568,0.187568,0,1,0,0,0,1,0,0,0,0
+-6.76564,0.982459,1.03831,2,3,0,6.96316,0.273936,0.273936,0,0,0,0,0,0,1,1,0,0
+-6.76564,0.883335,1.03831,1,3,0,7.19998,0.273936,0.273936,0,0,0,0,1,0,0,0,0,0
+-6.76564,0.702023,1.03831,1,3,0,7.63568,0.273936,0.273936,0,0,0,0,0,1,0,0,0,0
+-6.75026,0.974541,1.03831,2,3,0,6.884,0.241699,0.241699,0,0,0,1,0,0,0,1,1,0
+-6.79271,0.990018,1.03831,1,3,0,6.7942,0.213929,0.213929,0,0,1,1,0,0,0,1,0,1
+-6.74858,1,1.03831,1,3,0,6.78321,0.245839,0.245839,0,0,0,0,0,0,0,1,0,0
+-6.74858,0.72317,1.03831,1,3,0,7.99247,0.245839,0.245839,0,0,0,1,0,0,0,0,0,0
+-6.74858,0.672198,1.03831,1,3,0,8.30516,0.245839,0.245839,1,1,0,0,0,0,1,0,1,0
+-6.75289,0.864887,1.03831,2,3,0,7.45291,0.237799,0.237799,0,0,0,1,1,0,0,0,0,0
+-7.40093,0.666969,1.03831,2,3,0,8.57296,0.407135,0.407135,1,1,0,0,0,1,1,1,0,0
+-6.80254,0.948288,1.03831,2,3,0,7.7448,0.210313,0.210313,0,0,1,0,0,1,0,0,0,0
+-6.96684,0.958468,1.03831,1,1,0,6.967,0.173954,0.173954,0,0,0,0,0,0,0,0,0,0
+-6.74979,0.998713,1.03831,1,3,0,6.93071,0.242612,0.242612,0,0,0,0,1,0,0,0,0,0
+-6.88288,0.967829,1.03831,1,3,0,6.89584,0.189112,0.189112,0,1,0,0,0,0,0,0,1,0
+-6.8057,1,1.03831,1,1,0,6.86749,0.209228,0.209228,1,0,1,0,1,0,1,1,0,0
+-6.81988,0.996211,1.03831,1,1,0,6.83318,0.204723,0.204723,0,0,0,0,0,0,1,0,0,1
+-6.82432,0.998823,1.03831,1,1,0,6.84337,0.203412,0.203412,1,0,1,1,0,1,0,0,0,0
+-6.96874,0.964152,1.03831,1,1,0,6.97144,0.173655,0.173655,0,1,0,0,0,0,0,1,0,0
+-7.12087,0.966424,1.03831,1,1,0,7.14679,0.153623,0.153623,1,0,0,0,0,0,0,0,0,0
+-6.79745,1,1.03831,1,3,0,7.04409,0.212138,0.212138,0,0,0,0,1,0,0,0,1,0
+-7.55179,0.761923,1.03831,2,3,0,8.33674,0.425503,0.425503,1,1,0,1,0,0,0,0,0,1
+-7.08369,1,1.03831,1,1,0,7.45285,0.360375,0.360375,0,1,0,0,0,1,0,0,1,0
+-7.08369,0.205017,1.03831,1,1,0,9.5037,0.360375,0.360375,0,1,1,1,1,0,1,0,1,0
+-7.04359,1,1.03831,2,3,0,7.16809,0.353194,0.353194,1,0,1,1,0,0,1,0,0,1
+-8.52843,0.5579,1.03831,1,1,0,8.56449,0.516973,0.516973,1,0,0,0,0,0,0,0,0,1
+-7.19536,1,1.03831,2,3,0,8.08398,0.378525,0.378525,1,0,0,1,0,0,0,0,0,0
+-8.45179,0.606309,1.03831,1,1,0,8.54114,0.510928,0.510928,1,1,0,0,1,0,0,1,1,1
+-7.79438,1,1.03831,1,1,0,8.53165,0.451882,0.451882,1,1,1,0,1,1,0,0,0,0
+-9.26021,0.778053,1.03831,2,3,0,9.55916,0.5686,0.5686,0,1,0,1,1,0,0,1,0,1
+-9.26021,0.28855,1.03831,1,1,0,12.0302,0.5686,0.5686,1,0,0,0,1,1,0,0,1,0
+-7.50576,1,1.03831,2,3,0,8.7292,0.420086,0.420086,1,0,0,1,0,0,1,1,1,0
+-6.74813,1,1.03831,1,3,0,7.30763,0.248161,0.248161,1,0,0,0,0,0,0,0,1,0
+-7.43921,0.834811,1.03831,1,3,0,7.60867,0.125066,0.125066,0,0,0,1,0,0,0,0,0,0
+-9.88399,0.781915,1.03831,2,3,0,10.4439,0.042201,0.042201,0,0,0,0,0,0,0,0,0,0
+-8.19261,0.888927,1.03831,1,3,0,9.71112,0.085086,0.085086,0,0,1,0,0,0,0,0,0,0
+-7.46498,1,1.03831,1,1,0,8.09304,0.12321,0.12321,1,1,0,0,1,0,0,0,0,1
+-7.64323,0.97025,1.03831,1,1,0,7.74922,0.111616,0.111616,0,0,0,0,0,0,0,0,0,0
+-7.50568,1,1.03831,1,1,0,7.74334,0.120381,0.120381,0,0,0,0,0,0,0,0,0,0
+-7.05585,1,1.03831,1,1,0,7.42083,0.161394,0.161394,0,0,0,0,0,0,0,0,1,1
+-6.7481,0.948157,1.03831,2,3,0,7.40284,0.251611,0.251611,0,1,0,0,0,0,0,0,0,0
+-7.53723,0.860231,1.03831,2,3,0,7.67308,0.118267,0.118267,1,0,0,0,0,0,0,0,0,0
+-10.3,0.881185,1.03831,2,3,0,11.3883,0.628238,0.628238,0,1,0,1,1,1,0,0,1,1
+-7.2252,1,1.03831,1,1,0,9.11983,0.383009,0.383009,1,0,0,0,0,0,0,1,0,0
+-6.74856,0.788318,1.03831,2,3,0,8.06961,0.245902,0.245902,0,1,0,0,0,0,0,0,0,1
+-6.95237,0.955271,1.03831,2,3,0,7.03318,0.17628,0.17628,0,0,0,0,0,0,0,1,0,0
+-7.07327,0.972734,1.03831,1,1,0,7.10107,0.159215,0.159215,1,0,0,1,0,0,0,0,0,0
+-6.94008,1,1.03831,2,3,0,7.06611,0.178335,0.178335,0,0,0,0,0,0,0,0,0,0
+-7.08043,0.968283,1.03831,1,1,0,7.10283,0.158341,0.158341,0,0,0,0,1,1,0,1,0,1
+-6.90726,0.907048,1.03831,2,3,0,8.36092,0.184241,0.184241,0,0,0,0,0,0,0,0,0,0
+-8.11829,0.732436,1.03831,2,3,0,9.0887,0.482791,0.482791,1,1,0,1,0,1,0,1,0,0
+-8.11829,0.964224,1.03831,1,1,0,8.69353,0.482791,0.482791,1,1,1,0,1,1,1,1,1,1
+-8.11829,0.0779478,1.03831,1,1,0,12.4828,0.482791,0.482791,1,0,0,1,0,0,1,1,0,1
+-7.86907,1,1.03831,2,3,0,8.42431,0.459389,0.459389,1,1,0,1,0,0,0,1,1,1
+-7.44864,1,1.03831,1,1,0,7.9259,0.413142,0.413142,0,1,0,0,0,0,0,1,0,1
+-6.76635,1,1.03831,1,3,0,7.2182,0.274426,0.274426,0,0,0,0,0,0,1,1,0,0
+-7.44347,0.811548,1.03831,1,3,0,7.73938,0.124755,0.124755,0,0,0,0,0,0,1,0,1,0
+-8.23467,0.882921,1.03831,1,1,0,8.243,0.0834537,0.0834537,0,0,0,0,0,0,0,0,0,0
+-6.86168,0.993787,1.03831,2,3,0,8.25421,0.193781,0.193781,0,0,0,0,0,0,0,0,0,1
+-7.08025,0.948734,1.03831,1,1,0,7.08294,0.158364,0.158364,0,0,0,0,0,0,0,0,0,0
+-7.18717,0.977672,1.03831,1,1,0,7.24287,0.146572,0.146572,0,1,0,0,0,0,0,1,0,0
+-6.83645,1,1.03831,1,3,0,7.1033,0.200041,0.200041,0,0,0,0,0,0,0,0,0,1
+-7.13933,0.950226,1.03831,1,3,0,7.13954,0.151582,0.151582,0,0,0,1,0,0,0,0,0,0
+-6.9385,1,1.03831,1,1,0,7.108,0.178605,0.178605,1,0,0,0,0,0,0,0,0,0
+-6.77775,1,1.03831,1,3,0,6.89626,0.220375,0.220375,0,0,0,0,0,0,0,0,0,0
+-6.915,0.981016,1.03831,2,3,0,6.94476,0.32641,0.32641,1,1,0,0,0,1,0,0,0,1
+-6.915,0.474328,1.03831,1,1,0,8.10199,0.32641,0.32641,0,0,0,0,0,0,0,1,0,0
+-6.79892,1,1.03831,1,1,0,6.88139,0.291221,0.291221,0,1,0,0,0,0,0,0,1,0
+-6.82676,0.862449,1.03831,2,3,0,7.34296,0.301643,0.301643,0,0,0,1,0,0,1,0,0,0
+-6.95731,0.939647,1.03831,2,3,0,7.15589,0.175474,0.175474,0,0,0,0,0,0,1,0,0,0
+-6.95731,0.762704,1.03831,1,3,0,8.48773,0.175474,0.175474,0,0,1,0,0,0,0,0,0,1
+-7.01862,0.995304,1.03831,2,3,0,7.05856,0.166327,0.166327,0,0,0,0,0,0,0,1,0,1
+-7.37473,0.928028,1.03831,1,1,0,7.38432,0.129944,0.129944,1,0,1,0,0,1,0,0,0,0
+-8.02407,0.898227,1.03831,1,1,0,8.03923,0.092107,0.092107,0,0,0,0,0,0,0,0,1,0
+-7.63028,1,1.03831,1,1,0,8.04379,0.112394,0.112394,0,0,0,0,0,0,0,0,0,1
+-6.91139,1,1.03831,1,3,0,7.48605,0.18346,0.18346,0,0,0,1,0,0,0,0,0,1
+-6.75774,0.989394,1.03831,1,3,0,6.92697,0.267688,0.267688,0,1,1,0,0,0,0,0,0,0
+-6.82892,0.932932,1.03831,2,3,0,7.04535,0.302373,0.302373,0,0,1,1,0,0,0,0,0,0
+-7.60709,0.751452,1.03831,1,1,0,7.60801,0.43182,0.43182,0,1,0,1,0,1,0,1,0,1
+-7.10086,0.876515,1.03831,1,3,0,8.22894,0.155914,0.155914,0,0,0,0,1,0,0,0,0,0
+-7.10086,0.910614,1.03831,1,1,0,7.49258,0.155914,0.155914,0,0,0,1,0,0,0,0,1,0
+-7.16169,0.939579,1.03831,1,3,0,7.70495,0.373298,0.373298,0,0,1,0,0,0,0,0,0,0
+-7.03266,0.897717,1.03831,1,3,0,7.66374,0.16442,0.16442,0,0,0,0,0,0,0,0,0,0
+-6.78148,0.97457,1.03831,1,3,0,7.10028,0.283225,0.283225,0,1,1,0,0,0,0,0,0,0
+-6.75719,0.996976,1.03831,1,3,0,6.79648,0.233331,0.233331,0,1,1,0,0,0,0,0,0,0
+-6.82904,0.979313,1.03831,1,3,0,6.85976,0.302413,0.302413,0,0,1,0,0,0,0,0,1,0
+-6.82904,0.749904,1.03831,1,1,0,7.32572,0.302413,0.302413,0,0,1,1,0,1,0,0,0,1
+-7.63443,0.732936,1.03831,2,3,0,8.19887,0.112144,0.112144,0,0,1,1,0,0,0,0,0,0
+-6.97109,0.994991,1.03831,1,3,0,7.49776,0.173288,0.173288,0,0,0,0,0,0,0,0,0,0
+-6.99261,0.748198,1.03831,2,3,0,9.13763,0.170034,0.170034,0,0,1,0,1,0,0,1,0,0
+-7.87025,0.856945,1.03831,2,3,0,8.37213,0.0992915,0.0992915,0,1,0,0,0,1,0,0,0,1
+-7.51154,1,1.03831,1,1,0,7.88432,0.119983,0.119983,0,0,0,0,0,1,0,0,0,0
+-7.80422,0.98454,1.03831,2,3,0,7.88983,0.102643,0.102643,0,0,0,0,0,1,0,0,0,1
+-7.76428,1,1.03831,1,1,0,7.99105,0.104757,0.104757,0,0,0,0,0,0,0,0,1,0
+-6.9154,1,1.03831,1,3,0,7.60647,0.182713,0.182713,0,1,0,0,0,0,0,0,1,0
+-6.74837,0.998121,1.03831,1,3,0,6.89008,0.246706,0.246706,0,0,1,1,0,0,0,0,0,1
+-6.78068,0.990707,1.03831,2,3,0,6.80131,0.282814,0.282814,0,1,0,0,0,1,0,0,0,0
+-7.257,0.853847,1.03831,1,3,0,7.51186,0.139886,0.139886,1,0,0,0,0,0,0,0,0,0
+-6.89459,1,1.03831,1,1,0,7.17397,0.186713,0.186713,0,1,0,0,0,0,0,0,0,0
+-7.18864,0.92324,1.03831,2,3,0,7.56641,0.146423,0.146423,0,0,0,0,0,0,0,0,0,0
+-6.84513,1,1.03831,2,3,0,7.08952,0.307583,0.307583,0,1,0,0,0,0,0,0,0,0
+-7.04345,0.905943,1.03831,2,3,0,7.31242,0.162993,0.162993,1,0,0,0,0,0,0,0,0,1
+-7.2222,0.962704,1.03831,1,1,0,7.25726,0.143133,0.143133,0,0,1,0,1,0,0,0,0,1
+-6.77821,1,1.03831,1,3,0,7.13411,0.220156,0.220156,0,0,0,1,1,0,0,0,0,1
+-6.77821,0.374953,1.03831,1,3,0,9.88461,0.220156,0.220156,0,0,0,0,0,0,1,0,0,0
+-7.04979,0.94565,1.03831,1,3,0,7.05738,0.16217,0.16217,1,0,0,0,0,0,1,0,1,0
+-7.70194,0.906104,1.03831,1,3,0,7.70196,0.1082,0.1082,1,0,0,0,0,0,0,0,0,0
+-8.85778,0.855725,1.03831,1,1,0,8.85848,0.0635749,0.0635749,0,1,0,0,0,0,0,0,0,0
+-8.19774,1,1.03831,1,1,0,8.86332,0.0848845,0.0848845,0,0,1,0,1,0,0,0,0,0
+-8.09496,1,1.03831,1,1,0,8.40174,0.0890548,0.0890548,0,0,0,0,0,0,0,0,0,0
+-6.84669,0.992871,1.03831,2,3,0,8.1268,0.197392,0.197392,0,0,0,0,1,0,0,1,0,0
+-6.74899,1,1.03831,1,3,0,6.82768,0.244538,0.244538,0,0,1,0,0,0,0,0,1,1
+-7.3959,0.725467,1.03831,2,3,0,8.41469,0.128303,0.128303,0,0,0,0,0,1,0,0,0,0
+-7.53307,0.992015,1.03831,2,3,0,7.63849,0.118542,0.118542,1,0,0,0,0,0,0,0,0,0
+-7.43288,1,1.03831,1,1,0,7.63714,0.125529,0.125529,1,0,0,0,0,0,0,1,0,0
+-7.04778,1,1.03831,2,3,0,7.36411,0.16243,0.16243,0,0,0,0,0,0,0,0,0,0
+-6.98434,0.941673,1.03831,2,3,0,7.56587,0.341706,0.341706,0,0,0,0,0,0,0,0,0,1
+-6.77593,1,1.03831,2,3,0,6.91306,0.280274,0.280274,0,0,0,0,0,1,0,0,0,1
+-6.74808,0.997531,1.03831,2,3,0,6.78886,0.248689,0.248689,0,0,1,0,0,0,0,0,0,0
+-6.75172,0.995326,1.03831,2,3,0,6.77068,0.260844,0.260844,0,0,1,0,0,0,0,1,0,0
+-6.77948,0.995274,1.03831,2,3,0,6.78364,0.219551,0.219551,0,0,1,0,0,0,0,0,0,1
+-6.79415,0.934319,1.03831,2,3,0,7.14738,0.289182,0.289182,0,0,0,0,0,0,0,0,0,0
+-6.97374,0.939529,1.03831,1,1,0,6.97685,0.339516,0.339516,0,0,0,0,1,0,1,1,1,0
+-7.72126,0.750873,1.03831,1,1,0,7.75522,0.444274,0.444274,0,0,0,0,0,0,0,1,0,0
+-7.55746,1,1.03831,1,1,0,7.94407,0.42616,0.42616,0,1,0,0,0,1,0,1,0,0
+-7.1572,1,1.03831,1,1,0,7.51472,0.372587,0.372587,0,1,0,0,1,1,0,1,1,0
+-6.8884,1,1.03831,1,1,0,7.08409,0.319776,0.319776,0,1,0,0,0,0,0,0,0,0
+-6.805,1,1.03831,1,1,0,6.86971,0.293691,0.293691,0,1,1,1,0,0,1,0,1,0
+-6.77048,0.99359,1.03831,1,3,0,6.84246,0.224154,0.224154,0,1,0,0,0,0,0,0,0,0
+-6.76696,1,1.03831,1,1,0,6.77431,0.226215,0.226215,1,1,0,1,0,0,1,0,0,1
+-7.53462,0.81605,1.03831,1,3,0,7.65074,0.423499,0.423499,0,0,0,0,0,0,1,0,1,0
+-7.43361,1,1.03831,1,1,0,7.73914,0.411271,0.411271,1,0,1,0,0,0,0,0,0,1
+-6.75337,0.728186,1.03831,2,3,0,8.56089,0.237225,0.237225,0,0,0,0,0,0,0,0,1,0
+-6.74898,1,1.03831,1,1,0,6.75206,0.244554,0.244554,1,1,0,0,0,0,1,0,0,0
+-8.19575,0.762312,1.03831,2,3,0,8.35887,0.0849622,0.0849622,0,0,0,0,0,0,0,0,0,0
+-7.23402,0.972281,1.03831,1,3,0,8.03,0.142012,0.142012,0,0,0,0,0,1,0,0,0,0
+-6.75129,0.847008,1.03831,2,3,0,8.48265,0.260202,0.260202,0,0,0,0,0,0,1,0,0,1
+-6.91154,0.923226,1.03831,2,3,0,7.13668,0.183432,0.183432,0,0,0,0,0,0,0,0,1,0
+-6.74803,0.833006,1.03831,2,3,0,8.04119,0.250457,0.250457,0,1,1,0,0,0,0,0,0,0
+-7.12483,0.905245,1.03831,1,3,0,7.2064,0.15318,0.15318,0,0,0,0,0,0,0,0,0,0
+-7.79691,0.880399,1.03831,1,1,0,7.7975,0.103024,0.103024,0,0,0,0,0,1,0,1,1,1
+-7.55743,1,1.03831,1,1,0,7.86302,0.116947,0.116947,0,0,0,0,0,0,0,0,1,0
+-6.97042,0.905833,1.03831,2,3,0,9.75058,0.173392,0.173392,0,0,1,0,0,0,0,0,0,0
+-7.16272,0.937257,1.03831,1,3,0,7.54126,0.37346,0.37346,1,1,0,1,1,0,0,1,0,0
+-7.3528,0.929143,1.03831,1,1,0,7.48325,0.400864,0.400864,0,0,0,0,0,1,0,0,0,1
+-6.75702,1,1.03831,1,3,0,7.16181,0.267013,0.267013,0,0,1,0,0,0,0,1,0,1
+-6.85627,0.968925,1.03831,1,3,0,6.90425,0.195052,0.195052,0,0,0,0,0,0,1,1,1,0
+-7.15928,0.976688,1.03831,2,3,0,7.15932,0.149445,0.149445,0,0,0,0,0,0,0,0,0,0
+-7.61846,0.916507,1.03831,1,1,0,7.6331,0.113112,0.113112,0,1,1,0,0,0,0,0,0,1
+-6.92063,1,1.03831,1,3,0,7.47649,0.181755,0.181755,1,0,0,1,0,0,0,1,0,0
+-6.74849,0.994895,1.03831,1,3,0,6.90587,0.25382,0.25382,0,0,0,0,0,0,1,0,1,0
+-6.83377,0.952128,1.03831,2,3,0,6.98822,0.200762,0.200762,1,0,1,0,0,0,0,0,1,0
+-7.51956,0.859276,1.03831,2,3,0,7.96871,0.421725,0.421725,0,0,1,0,0,1,0,1,1,0
+-7.52808,0.996615,1.03831,1,1,0,7.81583,0.422731,0.422731,1,0,1,0,0,0,0,0,1,0
+-6.77015,1,1.03831,1,3,0,7.26841,0.276888,0.276888,1,0,0,0,0,0,0,1,0,1
+-6.84991,0.973637,1.03831,1,1,0,6.85119,0.309039,0.309039,1,1,0,0,0,0,0,0,0,0
+-7.5993,0.757712,1.03831,1,1,0,7.60303,0.430942,0.430942,1,0,0,1,1,0,0,0,0,0
+-6.93925,1,1.03831,2,3,0,7.3753,0.332043,0.332043,1,0,0,0,0,1,1,1,0,0
+-7.90959,0.68978,1.03831,1,1,0,7.92864,0.463359,0.463359,1,1,1,1,0,0,0,1,1,1
+-7.32431,1,1.03831,1,1,0,7.84252,0.397043,0.397043,0,0,0,0,0,0,0,0,0,1
+-8.37003,0.657456,1.03831,1,1,0,8.51321,0.504318,0.504318,0,1,1,1,0,1,0,0,0,1
+-9.6065,0.607107,1.03831,1,1,0,10.1412,0.589954,0.589954,0,1,0,0,0,1,1,1,0,0
+-8.69236,1,1.03831,1,1,0,9.92444,0.529445,0.529445,1,0,0,0,1,1,1,1,0,1
+-7.25427,1,1.03831,1,1,0,8.21957,0.387255,0.387255,0,0,0,0,1,1,0,1,0,1
+-6.79667,1,1.03831,1,1,0,7.09187,0.290273,0.290273,0,1,0,1,0,0,0,1,0,0
+-6.76242,1,1.03831,2,3,0,6.78683,0.271602,0.271602,1,0,0,0,0,0,0,0,0,0
+-6.76242,0.469182,1.03831,1,3,0,8.66883,0.271602,0.271602,1,0,0,1,0,0,0,0,0,0
+-7.06107,0.689579,1.03831,2,3,0,8.34223,0.160733,0.160733,0,0,0,0,0,0,1,0,0,0
+-6.9059,1,1.03831,1,1,0,7.03891,0.1845,0.1845,0,1,1,0,1,0,0,0,1,0
+-6.84368,0.909536,1.03831,2,3,0,7.50375,0.307133,0.307133,0,1,1,1,0,1,1,0,0,0
+-7.39614,0.90286,1.03831,2,3,0,7.41405,0.128285,0.128285,0,0,0,0,0,1,0,0,0,0
+-7.30461,1,1.03831,2,3,0,7.48066,0.135686,0.135686,0,0,0,0,0,1,0,0,0,0
+-6.86046,1,1.03831,1,3,0,7.20293,0.194064,0.194064,0,1,0,0,0,0,0,0,0,0
+-7.3093,0.949033,1.03831,2,3,0,7.42938,0.394993,0.394993,0,0,1,1,1,0,1,0,0,0
+-7.3093,0.790578,1.03831,1,1,0,7.8247,0.394993,0.394993,0,0,1,0,1,0,1,0,0,0
+-6.80351,0.988375,1.03831,1,3,0,7.34607,0.209977,0.209977,1,0,0,0,0,0,0,0,0,1
+-7.79792,0.773028,1.03831,1,3,0,8.00422,0.452243,0.452243,0,1,0,1,1,0,0,1,0,0
+-7.66076,1,1.03831,2,3,0,8.07501,0.437767,0.437767,1,1,0,1,0,0,0,1,0,0
+-8.48016,0.717125,1.03831,1,1,0,8.76406,0.513182,0.513182,0,0,1,0,0,1,1,0,0,0
+-6.97733,0.963852,1.03831,1,3,0,8.6997,0.172325,0.172325,0,0,0,0,0,1,0,1,1,0
+-6.93139,1,1.03831,1,1,0,7.00384,0.179835,0.179835,0,0,0,0,0,1,0,1,0,0
+-6.88666,1,1.03831,1,1,0,6.94775,0.188324,0.188324,0,0,0,0,1,0,1,0,0,0
+-8.13412,0.805737,1.03831,1,3,0,8.24942,0.087432,0.087432,0,1,0,0,0,0,0,0,1,0
+-8.39407,0.968316,1.03831,1,1,0,8.56646,0.0776511,0.0776511,0,0,0,0,0,0,0,0,0,0
+-6.83412,0.979017,1.03831,1,3,0,8.27904,0.200667,0.200667,0,0,0,0,0,0,0,0,0,1
+-6.87328,0.958607,1.03831,2,3,0,7.13406,0.315743,0.315743,0,0,0,0,0,0,1,0,1,0
+-6.81948,0.771177,1.03831,2,3,0,7.79262,0.299113,0.299113,0,0,0,0,0,0,0,0,0,0
+-7.20415,0.938336,1.03831,2,3,0,7.20772,0.37986,0.37986,1,0,1,0,0,0,0,1,0,0
+-6.74811,1,1.03831,1,3,0,7.09245,0.248342,0.248342,0,0,0,0,1,0,0,1,0,1
+-6.74813,0.999993,1.03831,1,1,0,6.74816,0.248129,0.248129,0,0,0,0,0,0,0,1,0,1
+-6.76286,0.995822,1.03831,2,3,0,6.77191,0.271936,0.271936,0,0,0,0,1,0,0,1,0,0
+-7.33161,0.840587,1.03831,1,3,0,7.56699,0.133416,0.133416,0,0,0,0,0,0,1,0,0,0
+-8.45854,0.801944,1.03831,1,3,0,9.49952,0.511467,0.511467,1,0,0,1,1,1,0,1,0,1
+-6.89307,0.732053,1.03831,2,3,0,9.80021,0.187018,0.187018,0,1,0,0,0,0,1,0,0,0
+-6.79424,0.938682,1.03831,2,3,0,7.44575,0.21334,0.21334,0,0,1,0,1,0,1,0,0,0
+-6.9033,0.961965,1.03831,2,3,0,7.08041,0.185,0.185,0,0,0,0,0,0,0,0,1,0
+-6.87026,0.973645,1.03831,2,3,0,7.1728,0.191835,0.191835,0,1,0,0,0,0,0,0,0,0
+-6.92632,0.745983,1.03831,2,3,0,8.78189,0.180731,0.180731,0,0,0,0,0,0,0,0,0,0
+-6.78724,0.989466,1.03831,2,3,0,6.99835,0.286046,0.286046,1,0,0,1,0,0,0,0,1,0
+-6.82405,0.98765,1.03831,1,1,0,6.8323,0.300716,0.300716,0,0,0,1,1,0,0,0,0,0
+-6.88062,0.980515,1.03831,1,1,0,6.89898,0.317727,0.317727,0,1,0,0,1,1,0,0,0,0
+-6.74878,1,1.03831,1,3,0,6.85795,0.245161,0.245161,1,0,0,0,0,0,1,0,0,1
+-6.76061,0.977076,1.03831,2,3,0,6.86222,0.270174,0.270174,1,1,1,1,1,0,0,0,0,0
+-7.72679,0.652176,1.03831,2,3,0,8.88832,0.106806,0.106806,0,0,0,1,0,0,0,0,0,0
+-6.99216,0.994716,1.03831,1,3,0,7.58001,0.170099,0.170099,0,1,0,0,0,0,0,0,0,0
+-7.7081,0.946079,1.03831,2,3,0,7.85329,0.442876,0.442876,0,1,0,1,1,1,1,1,0,0
+-6.83179,1,1.03831,1,1,0,7.3855,0.303328,0.303328,0,1,0,0,0,0,1,0,0,0
+-6.9516,0.9862,1.03831,2,3,0,6.96756,0.334785,0.334785,0,0,0,1,0,1,0,1,1,0
+-6.75253,0.999188,1.03831,1,3,0,6.92841,0.238254,0.238254,0,0,0,1,0,0,1,0,0,1
+-6.75822,0.999443,1.03831,2,3,0,6.7588,0.232433,0.232433,1,0,1,0,1,0,0,0,0,0
+-6.85687,0.978553,1.03831,1,3,0,6.85866,0.194908,0.194908,1,0,0,1,0,0,1,0,1,0
+-6.85687,0.255012,1.03831,1,3,0,11.9768,0.194908,0.194908,0,0,1,1,0,1,0,0,0,0
+-7.10907,0.941111,1.03831,1,1,0,7.11003,0.154965,0.154965,0,0,0,0,1,0,0,0,0,0
+-7.24336,0.926621,1.03831,1,3,0,7.81441,0.385675,0.385675,0,0,0,0,0,0,1,0,0,0
+-6.88982,1,1.03831,2,3,0,7.18593,0.187676,0.187676,0,1,0,0,1,0,0,0,1,1
+-7.21654,0.911391,1.03831,1,3,0,7.49797,0.381722,0.381722,0,0,1,0,1,0,1,1,0,0
+-7.21654,0.68644,1.03831,1,3,0,8.28425,0.381722,0.381722,0,0,0,0,0,1,0,0,0,0
+-7.68594,0.831314,1.03831,1,1,0,7.81759,0.4405,0.4405,1,0,1,0,0,0,1,0,1,1
+-7.19565,1,1.03831,1,1,0,7.61579,0.378569,0.378569,1,0,0,0,0,1,0,1,1,0
+-6.80659,0.985259,1.03831,1,3,0,7.25948,0.208928,0.208928,0,0,0,0,0,0,1,0,0,0
+-6.89815,0.976422,1.03831,1,1,0,6.90191,0.186007,0.186007,0,0,1,0,1,1,0,0,0,0
+-6.82828,0.903129,1.03831,2,3,0,7.52631,0.30216,0.30216,0,1,0,0,0,1,0,1,0,0
+-8.79319,0.637285,1.03831,2,3,0,8.82869,0.0653238,0.0653238,0,0,0,0,0,0,0,0,0,0
+-7.0145,0.993322,1.03831,2,3,0,8.86374,0.166899,0.166899,0,0,0,0,0,0,0,0,0,0
+-6.84349,0.976696,1.03831,2,3,0,7.24596,0.198203,0.198203,0,0,0,0,0,0,0,1,0,0
+-6.76541,0.809242,1.03831,2,3,0,8.1204,0.227186,0.227186,0,1,1,1,0,0,0,1,0,0
+-6.86513,0.984645,1.03831,2,3,0,6.88985,0.313477,0.313477,0,1,0,0,0,0,0,1,0,1
+-7.0808,0.924913,1.03831,1,1,0,7.10162,0.359872,0.359872,0,0,1,0,1,0,0,0,0,0
+-7.49193,0.853253,1.03831,1,1,0,7.57624,0.418427,0.418427,0,0,1,1,1,0,0,0,0,1
+-6.87285,1,1.03831,1,1,0,7.27198,0.315627,0.315627,0,0,0,0,0,0,1,0,0,0
+-6.75223,0.998264,1.03831,1,3,0,6.86431,0.238655,0.238655,0,0,0,0,0,0,0,0,0,0
+-7.13783,0.901202,1.03831,1,3,0,7.18897,0.369474,0.369474,0,0,0,0,1,0,1,0,0,1
+-6.77033,1,1.03831,1,3,0,7.01233,0.277003,0.277003,0,1,0,0,0,0,0,1,0,0
+-6.75294,0.957776,1.03831,2,3,0,6.96429,0.237741,0.237741,0,0,1,1,0,0,0,0,0,1
+-8.4314,0.648383,1.03831,1,3,0,8.54819,0.509296,0.509296,0,0,0,0,1,1,1,0,0,1
+-6.77225,1,1.03831,1,3,0,8.08966,0.223179,0.223179,0,0,0,0,0,0,0,1,0,1
+-6.87352,0.986473,1.03831,2,3,0,6.89187,0.315809,0.315809,0,0,1,0,0,0,0,0,1,0
+-6.77127,1,1.03831,2,3,0,6.86356,0.223715,0.223715,0,1,0,1,0,0,0,0,0,0
+-6.7692,0.910871,1.03831,2,3,0,7.25306,0.276296,0.276296,0,1,1,0,0,1,1,0,1,0
+-11.0431,0.340161,1.03831,1,3,0,11.1223,0.663951,0.663951,0,1,1,1,1,1,1,1,1,0
+-7.27745,1,1.03831,1,1,0,9.58609,0.390559,0.390559,1,0,1,0,1,1,1,1,1,0
+-7.01233,1,1.03831,2,3,0,7.24538,0.347279,0.347279,0,0,0,0,0,0,0,1,0,0
+-6.92056,1,1.03831,1,1,0,7.02751,0.327732,0.327732,0,0,0,0,0,0,1,0,0,0
+-6.7736,1,1.03831,1,1,0,6.87112,0.278956,0.278956,0,1,1,0,0,0,0,1,1,1
+-6.8582,0.971928,1.03831,1,1,0,6.85999,0.311491,0.311491,0,0,0,0,0,0,0,1,0,0
+-7.2298,0.873133,1.03831,1,1,0,7.24237,0.383689,0.383689,0,0,0,0,0,0,0,1,0,0
+-6.77466,0.949816,1.03831,2,3,0,7.52854,0.221916,0.221916,0,1,0,0,0,0,1,1,0,0
+-7.10364,0.926243,1.03831,2,3,0,7.29734,0.155591,0.155591,1,0,0,0,0,0,0,0,0,0
+-6.76246,0.951775,1.03831,2,3,0,7.33383,0.271632,0.271632,0,0,1,0,0,1,1,0,0,0
+-6.75037,1,1.03831,1,1,0,6.75865,0.258622,0.258622,0,0,0,0,1,1,1,1,0,1
+-7.22519,0.910867,1.03831,2,3,0,7.31723,0.142848,0.142848,0,0,0,0,0,1,0,0,0,0
+-7.07501,1,1.03831,1,1,0,7.23958,0.159002,0.159002,0,0,0,0,0,1,0,1,0,0
+-6.86487,1,1.03831,2,3,0,7.01122,0.313403,0.313403,0,1,0,0,0,0,0,1,0,0
+-11.2493,0.410245,1.03831,2,7,0,11.2527,0.025412,0.025412,0,0,0,0,0,0,0,0,0,0
+-10.7796,1,1.03831,1,1,0,11.5134,0.0301567,0.0301567,0,0,0,0,0,0,0,0,0,0
+-9.65064,1,1.03831,1,1,0,10.7794,0.0461891,0.0461891,0,0,0,0,1,0,0,1,0,0
+-8.4531,1,1.03831,2,3,0,9.55261,0.0756431,0.0756431,0,0,0,0,0,1,0,0,0,0
+-8.4531,0.869158,1.03831,1,1,0,9.79038,0.0756431,0.0756431,0,0,0,0,0,0,0,0,0,1
+-7.45137,1,1.03831,1,1,0,8.2991,0.124184,0.124184,1,0,1,0,0,0,1,0,0,0
+-6.74821,0.972354,1.03831,1,3,0,7.41226,0.247604,0.247604,0,0,0,1,0,0,1,1,0,0
+-7.31495,0.859308,1.03831,1,3,0,7.35657,0.395768,0.395768,0,0,0,1,0,1,1,0,0,0
+-6.83019,1,1.03831,1,1,0,7.14288,0.302797,0.302797,0,0,0,1,0,0,1,0,0,1
+-6.85398,0.991787,1.03831,1,1,0,6.87796,0.310254,0.310254,0,0,0,1,0,0,1,0,0,0
+-6.91931,0.977151,1.03831,1,1,0,6.94699,0.327436,0.327436,0,1,1,0,0,0,1,0,0,0
+-7.34655,0.852435,1.03831,1,1,0,7.37471,0.400033,0.400033,0,0,0,0,1,0,0,1,0,0
+-7.33134,1,1.03831,1,1,0,7.55332,0.397994,0.397994,1,0,0,0,0,0,1,1,0,0
+-6.99074,1,1.03831,1,1,0,7.25841,0.343005,0.343005,1,0,0,1,1,0,0,0,1,0
+-6.80363,0.984231,1.03831,1,3,0,7.07643,0.209937,0.209937,1,0,0,0,1,1,0,0,0,1
+-8.47446,0.658386,1.03831,1,3,0,8.72227,0.512731,0.512731,1,0,1,0,0,1,0,0,1,0
+-6.77868,0.543225,1.03831,2,3,0,10.6675,0.21993,0.21993,0,1,0,0,0,0,0,0,0,0
+-6.8424,0.982813,1.03831,1,1,0,6.84375,0.198482,0.198482,0,0,0,0,0,1,0,1,0,0
+-6.75816,0.862875,1.03831,2,3,0,7.68137,0.268074,0.268074,0,0,1,0,1,1,0,0,0,0
+-6.93582,0.946322,1.03831,1,3,0,7.01149,0.179066,0.179066,0,0,0,0,0,0,0,0,0,1
+-6.74802,0.963551,1.03831,2,3,0,7.18734,0.250176,0.250176,0,0,0,0,0,0,0,0,0,1
+-8.41113,0.638343,1.03831,1,3,0,9.03108,0.0770634,0.0770634,0,0,0,1,0,0,0,0,0,0
+-9.1304,0.928269,1.03831,1,1,0,9.2152,0.0568127,0.0568127,0,0,0,0,0,1,0,1,1,0
+-6.96988,0.7939,1.03831,2,7,0,10.1207,0.338705,0.338705,1,0,1,0,1,1,1,0,0,1
+-6.74829,1,1.03831,1,3,0,6.92278,0.247105,0.247105,0,0,0,0,1,0,0,1,0,0
+-7.91311,0.562372,1.03831,2,3,0,9.71756,0.0972065,0.0972065,0,1,0,0,0,0,0,0,0,0
+-7.9255,0.998233,1.03831,1,1,0,8.14959,0.0966161,0.0966161,0,0,0,0,0,0,0,0,0,0
+-7.27593,0.912788,1.03831,1,3,0,8.90669,0.390345,0.390345,0,0,0,0,0,0,1,0,0,0
+-6.96031,1,1.03831,2,3,0,7.1883,0.174991,0.174991,0,1,0,0,0,0,0,0,0,0
+-6.99787,0.991304,1.03831,1,1,0,7.04368,0.169265,0.169265,0,0,0,0,0,0,0,0,0,1
+-6.76507,1,1.03831,1,3,0,6.94435,0.227406,0.227406,0,0,1,0,0,0,0,0,0,0
+-7.95413,0.733981,1.03831,1,3,0,8.08929,0.467644,0.467644,0,1,0,1,1,0,1,0,0,0
+-7.32572,1,1.03831,1,1,0,7.86773,0.397234,0.397234,0,0,1,0,0,1,0,0,1,1
+-6.75058,1,1.03831,1,3,0,7.20188,0.241132,0.241132,1,0,0,0,0,0,0,0,0,0
+-6.96436,0.881507,1.03831,2,3,0,7.41026,0.174345,0.174345,0,0,0,1,0,0,0,0,0,0
+-7.40917,0.886054,1.03831,1,3,0,7.81903,0.408187,0.408187,0,0,0,1,1,0,0,1,1,0
+-6.76817,0.82858,1.03831,2,3,0,8.14515,0.225487,0.225487,0,0,0,0,1,0,0,0,0,0
+-6.82652,0.983953,1.03831,1,1,0,6.82685,0.202781,0.202781,1,0,0,0,0,1,0,1,0,0
+-6.74839,0.998005,1.03831,1,3,0,6.81916,0.253424,0.253424,0,0,0,0,0,0,1,0,0,0
+-7.01576,0.930251,1.03831,1,3,0,7.07646,0.166724,0.166724,0,0,0,0,0,1,0,0,0,0
+-6.83925,1,1.03831,1,1,0,6.97468,0.199299,0.199299,0,0,0,0,0,1,0,0,0,1
+-6.83925,0.963477,1.03831,1,1,0,6.95588,0.199299,0.199299,0,0,1,0,0,0,1,0,0,0
+-6.89682,0.896804,1.03831,2,3,0,7.66648,0.186268,0.186268,0,0,0,0,0,0,0,0,1,0
+-6.86748,1,1.03831,2,3,0,6.9153,0.192457,0.192457,0,0,0,1,0,0,0,0,0,0
+-7.50556,0.898532,1.03831,1,3,0,7.52153,0.120389,0.120389,0,0,0,0,1,0,0,0,0,0
+-7.09733,1,1.03831,1,1,0,7.43786,0.156327,0.156327,0,0,0,0,0,0,0,0,0,0
+-6.75651,1,1.03831,1,3,0,7.03676,0.233953,0.233953,0,0,0,0,0,1,0,0,0,0
+-6.76059,0.993801,1.03831,2,3,0,6.79237,0.230538,0.230538,0,0,0,0,0,0,1,0,0,0
+-6.8188,0.991684,1.03831,2,3,0,6.8294,0.298872,0.298872,0,0,1,1,0,0,1,0,0,0
+-6.80078,1,1.03831,1,1,0,6.82737,0.29199,0.29199,1,1,1,1,0,0,1,0,0,0
+-7.60285,0.761959,1.03831,1,3,0,8.08037,0.114072,0.114072,0,0,0,1,0,0,1,0,1,0
+-7.16707,1,1.03831,1,1,0,7.53801,0.148629,0.148629,1,0,0,0,0,0,0,0,0,0
+-6.74843,0.997608,1.03831,2,3,0,7.15852,0.246451,0.246451,1,0,0,0,0,0,1,0,0,0
+-7.21191,0.911189,1.03831,2,3,0,7.33636,0.144124,0.144124,1,0,0,0,0,0,0,0,0,0
+-7.21191,0.89824,1.03831,1,1,0,7.7041,0.144124,0.144124,0,0,1,1,1,0,0,0,0,0
+-8.6762,0.737076,1.03831,1,3,0,9.57168,0.528241,0.528241,1,0,0,0,1,0,1,0,1,0
+-9.28146,0.783201,1.03831,1,1,0,9.98588,0.56996,0.56996,1,1,0,1,0,0,0,0,0,1
+-8.38531,1,1.03831,1,1,0,9.48423,0.505567,0.505567,0,0,0,1,0,1,1,1,1,1
+-8.04591,1,1.03831,2,3,0,8.71887,0.476232,0.476232,1,0,0,0,0,0,0,1,0,0
+-7.086,1,1.03831,1,1,0,7.73215,0.360777,0.360777,0,1,0,0,0,0,0,0,1,1
+-6.96796,1,1.03831,1,1,0,7.10565,0.3383,0.3383,0,1,0,0,0,0,1,1,0,1
+-8.92827,0.714375,1.03831,2,3,0,8.93939,0.546414,0.546414,1,1,0,1,1,1,1,1,1,0
+-7.20955,0.874498,1.03831,1,3,0,9.62624,0.144354,0.144354,1,1,0,0,0,0,0,0,0,0
+-8.07748,0.881587,1.03831,1,3,0,8.07766,0.0897937,0.0897937,0,0,0,0,0,0,0,0,0,0
+-9.07198,0.891541,1.03831,1,1,0,9.09485,0.0581832,0.0581832,0,0,0,0,0,1,0,0,0,0
+-8.20855,1,1.03831,1,1,0,9.02291,0.084462,0.084462,0,0,0,0,0,0,0,0,0,0
+-8.47639,0.989464,1.03831,2,3,0,8.65472,0.07487,0.07487,0,0,0,0,0,0,0,0,0,0
+-6.87253,0.996501,1.03831,2,3,0,8.44842,0.191333,0.191333,0,0,0,0,0,1,0,0,0,0
+-6.78574,0.985067,1.03831,2,3,0,6.99687,0.216761,0.216761,0,0,1,0,0,0,0,0,1,0
+-6.76368,1,1.03831,1,1,0,6.78108,0.228325,0.228325,0,1,1,0,1,0,0,1,0,0
+-6.77499,0.966217,1.03831,2,3,0,6.96744,0.221745,0.221745,0,0,0,0,0,0,0,1,0,0
+-6.91454,0.890971,1.03831,2,3,0,7.46349,0.182873,0.182873,0,0,0,1,0,0,0,1,0,0
+-6.78504,1,1.03831,2,3,0,6.88014,0.217058,0.217058,0,0,0,0,0,0,0,1,0,0
+-9.5512,0.499648,1.03831,1,3,0,10.5555,0.0480221,0.0480221,0,0,0,0,0,1,0,1,0,0
+-9.4016,1,1.03831,1,1,0,9.86719,0.0509456,0.0509456,0,0,1,0,0,0,0,0,0,0
+-8.74261,1,1.03831,1,1,0,9.46227,0.0667369,0.0667369,0,0,1,0,0,0,0,0,0,0
+-7.80865,1,1.03831,1,1,0,8.63631,0.102412,0.102412,0,0,0,0,0,0,1,0,0,0
+-7.87084,0.990842,1.03831,1,1,0,8.06291,0.0992623,0.0992623,0,0,0,0,0,0,0,0,0,0
+-7.17789,1,1.03831,1,1,0,7.74536,0.147513,0.147513,0,0,1,0,0,1,0,0,0,0
+-6.76245,0.942586,1.03831,2,3,0,7.45692,0.271625,0.271625,0,0,0,0,0,0,0,0,0,0
+-6.76245,0.799717,1.03831,1,3,0,7.31833,0.271625,0.271625,0,1,0,0,0,0,0,0,0,1
+-7.62075,0.794449,1.03831,1,3,0,7.634,0.43335,0.43335,0,0,0,1,0,0,1,1,0,0
+-6.82438,1,1.03831,1,1,0,7.32927,0.300831,0.300831,0,0,0,0,1,0,0,0,1,0
+-6.98737,0.633826,1.03831,2,3,0,8.55159,0.342322,0.342322,0,0,0,0,0,1,0,0,1,0
+-6.77573,0.754584,1.03831,2,3,0,7.96143,0.280166,0.280166,0,1,1,0,1,0,0,1,0,1
+-6.7648,1,1.03831,1,1,0,6.77598,0.273353,0.273353,0,0,0,0,0,0,0,1,0,1
+-6.7648,0.832309,1.03831,1,3,0,7.22022,0.273353,0.273353,0,1,0,0,1,0,0,1,0,0
+-7.55833,0.854886,1.03831,2,3,0,7.63991,0.116889,0.116889,0,0,0,0,0,0,0,0,0,0
+-7.91132,0.946041,1.03831,1,1,0,7.99012,0.0972921,0.0972921,0,0,0,0,0,0,0,0,0,0
+-8.51596,0.904744,1.03831,2,3,0,9.60996,0.0735813,0.0735813,0,0,0,0,0,0,0,0,0,0
+-8.52541,0.99965,1.03831,2,3,0,8.82636,0.0732775,0.0732775,0,1,0,0,1,0,1,0,0,0
+-8.28323,1,1.03831,2,3,0,8.69139,0.0816239,0.0816239,0,0,0,0,1,0,0,1,0,0
+-6.75072,1,1.03831,2,3,0,8.0426,0.240899,0.240899,0,0,0,0,0,0,1,0,0,0
+-7.46546,0.826597,1.03831,1,3,0,7.53068,0.415213,0.415213,1,1,1,0,0,1,1,0,0,1
+-6.98438,1,1.03831,1,1,0,7.32927,0.341712,0.341712,1,0,0,0,1,0,0,0,0,1
+-6.99101,0.997566,1.03831,1,1,0,7.07246,0.34306,0.34306,1,0,0,0,0,0,1,0,0,0
+-8.36968,0.787007,1.03831,2,3,0,8.39404,0.50429,0.50429,1,1,0,0,0,0,1,1,1,0
+-6.90342,1,1.03831,1,1,0,7.81303,0.323586,0.323586,0,0,0,0,0,1,0,0,0,0
+-6.80055,1,1.03831,2,3,0,6.87552,0.291895,0.291895,0,0,1,0,1,1,0,0,1,1
+-6.77631,1,1.03831,1,1,0,6.79849,0.280487,0.280487,0,0,0,1,1,0,0,1,0,0
+-6.95783,0.743214,1.03831,2,3,0,8.01257,0.175391,0.175391,0,0,0,1,0,0,0,0,0,0
+-6.92303,0.934534,1.03831,2,3,0,7.46023,0.328314,0.328314,1,1,0,0,0,0,0,1,0,0
+-8.14665,0.625562,1.03831,1,1,0,8.15791,0.485313,0.485313,0,1,1,0,0,0,0,1,1,0
+-7.65246,1,1.03831,1,1,0,8.24801,0.436859,0.436859,1,0,0,1,0,1,1,0,1,1
+-6.75268,0.538778,1.03831,2,3,0,9.8815,0.262199,0.262199,0,0,1,1,1,0,0,0,0,0
+-6.89569,0.958559,1.03831,1,3,0,6.94485,0.186493,0.186493,0,1,0,1,0,1,1,0,1,0
+-6.77502,0.98685,1.03831,2,3,0,6.99966,0.221732,0.221732,0,0,0,0,0,0,0,0,0,0
+-6.79521,0.994404,1.03831,1,1,0,6.79962,0.212972,0.212972,0,0,0,1,0,1,0,0,0,1
+-8.31942,0.680285,1.03831,1,3,0,8.54167,0.500138,0.500138,0,1,1,0,1,0,0,1,0,0
+-8.55521,0.908366,1.03831,1,1,0,9.14677,0.519051,0.519051,0,0,0,0,0,0,0,1,1,0
+-8.44102,1,1.03831,2,3,0,9.16028,0.510067,0.510067,0,1,0,0,1,1,0,1,1,0
+-7.61462,1,1.03831,1,1,0,8.37141,0.432664,0.432664,1,0,0,1,1,0,0,0,1,0
+-6.90992,1,1.03831,2,3,0,7.71245,0.183737,0.183737,0,1,0,0,0,1,0,0,0,0
+-6.94089,0.997512,1.03831,2,3,0,6.97653,0.178196,0.178196,0,0,0,0,0,0,0,0,0,0
+-6.7515,1,1.03831,1,3,0,6.90446,0.239677,0.239677,0,1,0,1,1,0,1,1,0,1
+-6.7515,0.658125,1.03831,1,3,0,7.93973,0.239677,0.239677,1,0,0,0,0,0,0,1,0,0
+-6.86846,0.968181,1.03831,1,3,0,6.89341,0.314411,0.314411,0,0,0,1,1,1,1,0,0,0
+-7.30826,0.850589,1.03831,1,1,0,7.32149,0.39485,0.39485,0,0,0,0,0,0,0,0,0,0
+-7.71424,0.851379,1.03831,1,1,0,7.88526,0.443529,0.443529,1,1,0,0,1,0,0,0,0,0
+-7.71424,0.250592,1.03831,1,3,0,10.8281,0.443529,0.443529,0,1,0,0,0,0,1,0,0,1
+-6.91154,1,1.03831,2,3,0,7.42601,0.325575,0.325575,0,1,0,1,0,1,0,0,1,0
+-6.8164,1,1.03831,1,1,0,6.89117,0.298005,0.298005,0,1,1,1,0,0,1,1,0,0
+-7.5567,0.878671,1.03831,2,3,0,7.55692,0.426071,0.426071,0,0,0,0,1,0,0,0,1,1
+-7.14489,1,1.03831,1,1,0,7.5043,0.370617,0.370617,1,0,0,1,0,0,0,0,0,1
+-7.04056,1,1.03831,1,1,0,7.19722,0.352634,0.352634,0,0,1,1,0,0,1,1,0,0
+-7.27355,0.915295,1.03831,1,1,0,7.35442,0.390008,0.390008,1,0,0,0,1,1,1,1,0,1
+-7.52326,0.906531,1.03831,1,1,0,7.69193,0.422162,0.422162,0,0,1,0,0,0,0,0,1,0
+-13.2718,0.105248,1.03831,1,1,0,13.3176,0.747869,0.747869,0,1,1,0,1,0,1,1,1,1
+-11.8557,1,1.03831,1,1,0,14.5477,0.698045,0.698045,1,0,0,1,1,1,1,1,1,1
+-6.79608,1,1.03831,1,3,0,9.99065,0.290017,0.290017,0,1,0,1,0,0,0,0,0,1
+-7.86103,0.802354,1.03831,2,3,0,7.9189,0.0997489,0.0997489,0,0,0,0,0,0,0,1,0,0
+-6.86678,1,1.03831,2,3,0,7.58044,0.313943,0.313943,0,0,0,0,1,0,0,1,1,0
+-6.89075,0.864744,1.03831,2,3,0,7.46364,0.187486,0.187486,0,0,0,0,1,0,0,0,0,0
+-7.32962,0.934269,1.03831,1,3,0,7.33012,0.133581,0.133581,0,0,0,0,1,0,0,0,0,0
+-7.21877,1,1.03831,1,1,0,7.38911,0.143461,0.143461,0,0,0,0,0,1,0,0,0,0
+-6.93847,1,1.03831,1,1,0,7.16282,0.17861,0.17861,0,0,0,1,0,1,0,0,0,0
+-7.06212,0.971868,1.03831,1,1,0,7.08676,0.160601,0.160601,1,1,1,0,0,0,0,0,0,0
+-7.0142,0.949452,1.03831,2,3,0,7.55287,0.347642,0.347642,1,0,1,0,0,0,0,1,0,0
+-7.78656,0.862205,1.03831,2,3,0,7.78733,0.103569,0.103569,0,0,0,0,0,0,0,0,0,0
+-6.79198,0.91243,1.03831,1,3,0,7.96506,0.288223,0.288223,0,0,0,0,0,0,0,1,0,1
+-6.78225,0.933458,1.03831,2,3,0,7.04998,0.283615,0.283615,1,0,0,0,0,0,1,0,0,0
+-6.75846,1,1.03831,2,3,0,6.77636,0.232237,0.232237,1,0,0,1,0,0,0,0,0,0
+-6.77743,0.993454,1.03831,1,3,0,6.79959,0.281099,0.281099,0,0,0,0,0,0,1,0,1,0
+-7.52987,0.817129,1.03831,1,3,0,7.53365,0.422942,0.422942,0,0,1,0,1,0,1,0,1,0
+-7.04041,1,1.03831,2,3,0,7.40832,0.163391,0.163391,0,0,0,0,0,1,1,0,0,0
+-7.70091,0.905791,1.03831,1,3,0,7.70106,0.108259,0.108259,0,0,0,0,0,0,1,0,0,0
+-7.34727,1,1.03831,1,1,0,7.69052,0.132134,0.132134,0,0,0,0,0,1,1,0,0,0
+-7.13955,1,1.03831,1,1,0,7.35225,0.151557,0.151557,0,0,1,0,0,0,0,0,1,0
+-6.93864,1,1.03831,2,3,0,7.10823,0.17858,0.17858,0,0,0,0,0,1,1,0,0,0
+-7.1208,0.959339,1.03831,1,1,0,7.13731,0.153632,0.153632,0,0,0,0,0,1,0,0,0,1
+-7.66091,0.949741,1.03831,2,3,0,7.67469,0.437784,0.437784,0,1,0,1,1,1,1,1,0,0
+-7.66091,0.125211,1.03831,1,1,0,10.9754,0.437784,0.437784,1,1,0,0,0,0,1,0,1,0
+-6.84082,0.932431,1.03831,2,3,0,8.15043,0.19889,0.19889,0,0,0,1,0,0,0,0,0,0
+-6.96344,0.961011,1.03831,1,3,0,7.13596,0.337341,0.337341,0,1,1,0,0,0,1,0,1,0
+-6.7602,1,1.03831,1,3,0,6.8965,0.269838,0.269838,0,0,0,0,1,1,1,1,0,0
+-6.91563,0.933577,1.03831,2,3,0,7.08676,0.182671,0.182671,0,0,0,0,1,0,0,0,0,0
+-6.91563,0.902586,1.03831,1,3,0,7.45475,0.182671,0.182671,0,0,0,1,0,0,0,0,0,0
+-7.34242,0.969589,1.03831,2,3,0,7.34243,0.132529,0.132529,0,0,0,0,0,0,0,0,0,0
+-7.54146,0.964933,1.03831,1,1,0,7.62303,0.117989,0.117989,0,0,0,0,0,0,0,0,0,0
+-7.09107,1,1.03831,1,1,0,7.46137,0.157066,0.157066,0,0,0,1,0,0,0,1,0,0
+-6.85808,1,1.03831,2,3,0,7.0208,0.311457,0.311457,0,1,0,1,0,0,0,0,1,0
+-6.75073,0.992133,1.03831,2,3,0,6.90144,0.240877,0.240877,0,0,0,0,0,0,0,1,0,0
+-6.75073,0.917053,1.03831,1,3,0,7.05231,0.240877,0.240877,0,1,1,0,0,0,0,0,0,0
+-7.99759,0.721085,1.03831,1,3,0,8.08672,0.47175,0.47175,1,1,1,1,1,0,1,0,1,0
+-6.9683,0.940673,1.03831,1,3,0,8.28697,0.173725,0.173725,0,0,0,0,0,0,1,0,0,0
+-7.42735,0.90621,1.03831,1,1,0,7.42801,0.125937,0.125937,1,0,1,0,0,0,0,0,0,0
+-8.32061,0.868932,1.03831,1,1,0,8.32312,0.0802536,0.0802536,0,0,0,0,0,0,0,1,1,0
+-8.31661,1,1.03831,1,1,0,8.60013,0.0803987,0.0803987,0,0,1,0,0,0,0,0,0,0
+-7.4886,1,1.03831,1,1,0,8.19778,0.121554,0.121554,0,0,1,0,0,0,0,0,0,0
+-7.43013,0.898722,1.03831,1,3,0,8.52786,0.410835,0.410835,0,1,0,0,0,0,1,0,1,1
+-6.75346,1,1.03831,1,3,0,7.29305,0.237115,0.237115,1,0,0,0,0,0,0,0,0,0
+-6.75346,0.901719,1.03831,1,3,0,7.0748,0.237115,0.237115,0,1,0,0,0,0,0,1,0,0
+-6.76327,0.996535,1.03831,1,3,0,6.77496,0.272242,0.272242,0,0,0,0,1,1,0,0,0,0
+-7.32721,0.781732,1.03831,2,3,0,7.95092,0.133781,0.133781,0,0,0,0,0,1,0,0,1,0
+-6.97005,1,1.03831,1,1,0,7.25463,0.17345,0.17345,0,0,1,0,0,0,0,1,0,1
+-6.93747,1,1.03831,2,3,0,7.00405,0.178781,0.178781,0,0,0,0,0,0,0,0,0,0
+-6.89673,0.970918,1.03831,2,3,0,7.24861,0.186286,0.186286,0,0,0,0,0,0,0,0,0,0
+-6.89673,0.827816,1.03831,1,3,0,7.85826,0.186286,0.186286,0,1,0,1,0,0,1,0,1,0
+-6.75315,1,1.03831,1,3,0,6.86492,0.237485,0.237485,0,0,0,0,1,0,0,0,0,0
+-6.80559,0.988237,1.03831,1,3,0,6.80641,0.209267,0.209267,0,0,1,1,0,0,0,0,1,0
+-6.83695,0.991698,1.03831,1,1,0,6.84726,0.199909,0.199909,0,1,0,0,0,0,0,0,1,0
+-7.06559,0.935296,1.03831,1,3,0,7.25147,0.357186,0.357186,1,0,1,0,0,0,0,0,0,0
+-7.05348,0.889286,1.03831,1,3,0,7.59867,0.161697,0.161697,0,0,0,0,0,1,0,0,0,0
+-7.24852,0.93208,1.03831,2,3,0,7.79672,0.140663,0.140663,0,0,1,0,1,0,0,0,0,0
+-8.02015,0.873817,1.03831,1,1,0,8.0215,0.0922802,0.0922802,1,0,0,0,0,0,0,0,0,0
+-6.78738,0.87807,1.03831,2,3,0,9.77823,0.21607,0.21607,1,0,1,0,0,0,0,0,0,1
+-6.74816,0.989243,1.03831,2,3,0,6.8578,0.252062,0.252062,0,0,1,0,0,1,0,0,0,0
+-7.08176,0.844993,1.03831,2,3,0,7.59216,0.15818,0.15818,0,1,0,0,1,0,0,0,0,1
+-7.69025,0.946887,1.03831,2,3,0,7.7292,0.440964,0.440964,1,1,0,1,0,0,0,0,0,1
+-7.69025,0.756349,1.03831,1,1,0,8.40275,0.440964,0.440964,1,1,1,0,1,0,1,1,0,1
+-7.02062,1,1.03831,1,1,0,7.48327,0.348878,0.348878,0,0,1,0,0,0,0,0,0,1
+-6.81996,1,1.03831,2,3,0,6.95805,0.299285,0.299285,0,0,0,0,0,0,0,0,0,1
+-6.7816,0.987205,1.03831,2,3,0,6.90225,0.218575,0.218575,0,0,0,1,0,0,1,0,1,1
+-6.87349,0.991737,1.03831,2,3,0,6.874,0.191122,0.191122,0,1,0,1,0,0,0,0,0,0
+-7.89256,0.76856,1.03831,2,3,0,8.70263,0.461698,0.461698,1,1,0,1,1,0,0,0,0,1
+-7.89256,0.316711,1.03831,1,1,0,9.87528,0.461698,0.461698,0,0,1,0,1,0,1,0,0,0
+-6.83979,1,1.03831,1,1,0,7.50137,0.305915,0.305915,1,0,0,1,0,0,0,0,0,0
+-6.78014,1,1.03831,2,3,0,6.82402,0.219244,0.219244,1,1,0,1,0,0,1,1,0,0
+-6.78014,0.854016,1.03831,1,3,0,7.33593,0.219244,0.219244,0,1,1,1,0,0,0,0,0,0
+-7.42106,0.781314,1.03831,2,3,0,8.12515,0.409694,0.409694,0,1,1,0,0,0,1,1,1,0
+-6.76401,0.801275,1.03831,2,3,0,8.25673,0.228106,0.228106,0,0,0,0,0,0,0,0,1,0
+-6.76757,0.990992,1.03831,2,3,0,6.81966,0.225843,0.225843,0,0,0,0,0,0,0,0,0,0
+-6.7955,0.997154,1.03831,2,3,0,6.79585,0.289769,0.289769,0,0,0,0,1,1,0,1,0,0
+-6.90266,0.963753,1.03831,1,1,0,6.90872,0.323397,0.323397,0,0,1,0,1,0,0,0,0,0
+-6.75886,0.891448,1.03831,2,3,0,7.31433,0.2687,0.2687,1,0,0,0,0,0,1,0,0,0
+-6.79211,0.995611,1.03831,2,3,0,6.7928,0.288281,0.288281,0,1,1,1,0,0,1,0,0,0
+-7.04409,0.915784,1.03831,1,1,0,7.0454,0.353285,0.353285,0,0,0,0,0,0,1,0,0,0
+-6.88263,0.962234,1.03831,1,3,0,7.27396,0.189164,0.189164,1,0,0,0,0,0,0,0,0,1
+-7.19888,0.971193,1.03831,2,3,0,7.2312,0.379062,0.379062,0,1,0,0,0,0,0,1,0,0
+-6.76679,0.638904,1.03831,2,3,0,8.77045,0.27472,0.27472,0,0,0,0,0,1,0,0,0,0
+-7.35866,0.891003,1.03831,2,3,0,7.42543,0.131218,0.131218,0,1,0,0,0,0,0,0,0,1
+-6.78244,0.819865,1.03831,2,3,0,9.0515,0.218198,0.218198,0,1,0,1,0,0,0,1,1,1
+-6.82369,0.988822,1.03831,1,1,0,6.82741,0.203597,0.203597,0,0,0,0,0,0,0,0,0,0
+-7.66014,0.852513,1.03831,1,3,0,7.72511,0.110614,0.110614,0,0,0,0,0,0,0,0,0,0
+-7.34716,1,1.03831,1,1,0,7.66384,0.132144,0.132144,0,0,1,0,0,0,0,0,0,0
+-7.90112,0.910389,1.03831,1,1,0,7.92368,0.0977828,0.0977828,0,0,0,0,0,0,0,0,0,0
+-9.03147,0.869938,1.03831,1,1,0,9.03709,0.0591575,0.0591575,0,1,0,1,0,0,0,0,0,0
+-7.82965,1,1.03831,1,1,0,8.88064,0.101331,0.101331,0,0,0,0,1,0,0,0,0,0
+-7.35064,1,1.03831,1,1,0,7.78004,0.131862,0.131862,0,0,0,0,0,0,0,0,0,0
+-7.03224,1,1.03831,1,1,0,7.29872,0.164475,0.164475,0,0,0,0,1,0,0,0,0,0
+-6.80193,1,1.03831,2,3,0,6.97058,0.292458,0.292458,1,0,0,0,0,1,1,0,0,0
+-7.23677,0.85655,1.03831,1,1,0,7.23737,0.384713,0.384713,0,0,0,1,0,1,0,0,0,1
+-7.23677,0.821796,1.03831,1,1,0,7.67546,0.384713,0.384713,1,0,0,0,1,1,0,0,0,1
+-7.33325,0.757032,1.03831,1,3,0,8.29351,0.133281,0.133281,0,0,0,1,0,1,0,0,0,0
+-7.99701,0.83868,1.03831,1,3,0,8.98335,0.471696,0.471696,1,1,1,0,1,1,1,0,1,0
+-6.98546,1,1.03831,1,1,0,7.63628,0.341934,0.341934,0,1,1,0,0,0,1,0,0,0
+-6.79821,1,1.03831,1,1,0,6.92391,0.290922,0.290922,0,0,1,0,0,0,0,0,1,0
+-6.79821,0.777092,1.03831,1,3,0,7.69551,0.290922,0.290922,1,0,0,0,1,0,0,0,1,0
+-7.78458,0.766025,1.03831,1,3,0,7.78594,0.450877,0.450877,0,0,1,1,1,1,0,1,1,1
+-7.08228,1,1.03831,1,1,0,7.58171,0.36013,0.36013,0,1,0,0,0,0,0,0,1,1
+-8.36475,0.603348,1.03831,1,1,0,8.41681,0.503885,0.503885,0,1,0,0,0,0,0,1,0,1
+-8.36475,0.459076,1.03831,1,3,0,10.3275,0.503885,0.503885,1,1,0,1,1,0,1,0,0,1
+-7.28007,1,1.03831,2,3,0,8.19653,0.137817,0.137817,0,0,0,0,1,0,0,0,0,0
+-7.09114,1,1.03831,1,1,0,7.28274,0.157057,0.157057,0,0,1,0,1,0,0,0,0,0
+-7.28922,0.960061,1.03831,1,1,0,7.32923,0.137014,0.137014,0,0,0,0,0,1,0,0,1,0
+-7.32925,0.992388,1.03831,1,1,0,7.4423,0.133612,0.133612,0,0,0,0,0,0,0,0,0,0
+-6.82742,0.912637,1.03831,2,3,0,8.57658,0.202525,0.202525,1,0,0,0,0,0,0,0,0,1
+-6.7482,0.999622,1.03831,1,3,0,6.81376,0.247614,0.247614,0,1,0,1,0,0,1,0,0,0
+-6.74818,0.892962,1.03831,2,3,0,7.29308,0.24778,0.24778,0,0,1,1,0,0,0,1,0,0
+-6.85023,0.974055,1.03831,1,3,0,6.86419,0.196514,0.196514,0,0,1,0,1,0,0,0,0,0
+-6.84586,1,1.03831,1,1,0,6.87493,0.197602,0.197602,0,1,0,0,0,0,0,0,0,0
+-7.5937,0.87466,1.03831,1,3,0,7.63094,0.114642,0.114642,0,0,1,0,0,0,0,0,0,0
+-6.90024,1,1.03831,1,3,0,7.45314,0.185595,0.185595,0,0,0,0,0,0,0,0,0,0
+-6.75579,0.990747,1.03831,1,3,0,6.91136,0.265797,0.265797,0,0,0,0,0,0,0,0,0,0
+-6.87487,0.963756,1.03831,1,3,0,6.9259,0.190821,0.190821,0,0,1,0,1,0,0,0,0,0
+-6.78626,1,1.03831,1,1,0,6.85226,0.216538,0.216538,0,0,0,0,0,0,0,0,0,0
+-6.78098,1,1.03831,1,1,0,6.79319,0.218857,0.218857,0,0,1,0,0,0,1,0,0,1
+-6.83978,0.994093,1.03831,2,3,0,6.84182,0.305911,0.305911,0,0,0,1,0,0,1,1,0,1
+-7.72791,0.834049,1.03831,2,3,0,7.75887,0.106744,0.106744,0,0,0,0,0,0,0,0,0,0
+-6.79735,0.891658,1.03831,2,3,0,8.20701,0.290562,0.290562,1,0,0,0,0,0,0,1,0,0
+-6.80535,0.997306,1.03831,1,1,0,6.82023,0.293829,0.293829,1,1,0,0,0,0,0,1,1,1
+-7.52135,0.751914,1.03831,2,3,0,8.1614,0.119323,0.119323,0,0,0,0,0,1,0,0,0,1
+-7.5587,0.993674,1.03831,1,1,0,7.71384,0.116865,0.116865,0,0,0,0,0,0,0,0,0,0
+-6.79614,1,1.03831,2,3,0,7.375,0.290043,0.290043,0,0,0,1,0,1,1,0,0,1
+-6.74919,1,1.03831,1,3,0,6.78277,0.256084,0.256084,0,0,0,0,1,0,1,0,1,0
+-6.88367,0.971978,1.03831,2,3,0,6.9231,0.188946,0.188946,0,0,0,0,0,1,0,0,0,0
+-7.57596,0.87367,1.03831,2,3,0,7.96944,0.115759,0.115759,0,0,0,0,0,0,0,0,0,0
+-6.76523,0.900244,1.03831,2,3,0,8.1044,0.273656,0.273656,0,1,0,1,0,1,0,0,1,0
+-6.92676,0.972143,1.03831,2,3,0,6.94574,0.180653,0.180653,0,0,0,0,0,0,0,0,0,0
+-6.94166,0.99881,1.03831,2,3,0,6.985,0.178066,0.178066,0,0,0,0,0,0,0,0,0,0
+-6.94166,0.388588,1.03831,1,3,0,11.3998,0.178066,0.178066,1,0,0,0,1,0,0,0,0,0
+-6.76406,1,1.03831,1,3,0,6.89811,0.228067,0.228067,0,0,0,0,0,0,0,1,0,0
+-6.74816,0.991785,1.03831,2,3,0,6.81178,0.247943,0.247943,1,0,0,0,0,0,0,0,0,1
+-6.97532,0.942923,1.03831,1,3,0,7.01398,0.172634,0.172634,0,0,1,0,0,0,0,0,0,0
+-7.2315,0.926166,1.03831,1,3,0,7.62874,0.383939,0.383939,0,1,1,0,1,1,0,1,1,1
+-8.25094,0.666229,1.03831,1,1,0,8.36159,0.494368,0.494368,0,1,0,0,0,0,0,0,0,1
+-7.15421,1,1.03831,1,1,0,7.89743,0.37211,0.37211,0,0,0,0,0,1,0,1,1,1
+-6.75309,0.727733,1.03831,2,3,0,8.25192,0.262718,0.262718,0,0,0,1,0,1,1,0,0,0
+-7.43792,0.514988,1.03831,2,3,0,9.42728,0.411809,0.411809,0,0,0,0,0,0,1,1,0,1
+-6.99395,1,1.03831,2,3,0,7.33418,0.169836,0.169836,1,0,0,0,0,0,1,0,0,1
+-6.80645,0.981299,1.03831,2,3,0,7.1624,0.208977,0.208977,0,0,0,0,0,0,0,0,1,0
+-7.0156,0.941161,1.03831,1,3,0,7.15081,0.347912,0.347912,0,0,0,0,0,0,0,0,0,0
+-6.74923,0.933493,1.03831,2,3,0,7.30403,0.243888,0.243888,0,0,0,0,0,0,0,0,1,0
+-6.74816,0.88562,1.03831,2,3,0,7.34149,0.247901,0.247901,0,0,0,0,0,0,0,0,0,0
+-6.91705,0.957302,1.03831,1,3,0,6.94356,0.182408,0.182408,1,0,0,0,0,0,0,0,1,0
+-6.91705,0.484775,1.03831,1,3,0,9.80895,0.182408,0.182408,0,0,0,0,0,0,0,0,0,1
+-7.21504,0.934521,1.03831,1,1,0,7.21864,0.143821,0.143821,0,0,0,0,1,0,0,1,0,1
+-6.84379,0.97887,1.03831,2,3,0,7.42929,0.198127,0.198127,1,0,1,1,0,0,0,0,1,0
+-7.79857,0.838942,1.03831,1,3,0,7.87441,0.102937,0.102937,0,0,1,0,0,0,0,1,0,0
+-6.89135,1,1.03831,1,3,0,7.63972,0.187365,0.187365,0,0,1,1,0,0,0,0,0,0
+-7.06481,0.959783,1.03831,1,1,0,7.0747,0.160264,0.160264,0,0,0,0,0,0,0,0,0,0
+-7.10364,0.99161,1.03831,1,1,0,7.1721,0.155591,0.155591,0,0,1,0,0,1,0,0,0,1
+-7.71838,0.945791,1.03831,2,3,0,7.75144,0.443968,0.443968,1,0,0,0,1,0,1,0,1,0
+-7.31214,1,1.03831,1,1,0,7.72984,0.395383,0.395383,1,0,1,0,0,1,1,0,1,1
+-6.78098,1,1.03831,1,3,0,7.12608,0.28297,0.28297,1,0,0,0,0,1,0,0,0,0
+-6.77867,1,1.03831,1,1,0,6.78971,0.281764,0.281764,1,0,1,1,0,0,0,0,1,0
+-7.67863,0.83443,1.03831,2,3,0,7.74738,0.109535,0.109535,0,0,0,0,0,0,0,0,0,0
+-6.92471,1,1.03831,2,3,0,7.45254,0.328707,0.328707,1,1,0,1,0,1,0,0,0,0
+-6.77608,0.812598,1.03831,2,3,0,7.64594,0.280357,0.280357,0,0,0,0,0,0,1,1,1,1
+-7.00755,0.910824,1.03831,2,3,0,7.21695,0.167876,0.167876,0,0,0,0,0,0,1,0,0,0
+-6.87959,1,1.03831,1,1,0,6.98959,0.189806,0.189806,0,1,0,0,0,0,0,1,0,1
+-6.75841,0.990838,1.03831,1,3,0,6.89707,0.2683,0.2683,1,1,1,0,0,1,0,0,0,0
+-7.07534,0.940664,1.03831,2,3,0,7.12615,0.158961,0.158961,0,0,0,0,0,0,0,0,0,0
+-6.8454,1,1.03831,1,1,0,7.02014,0.197718,0.197718,0,0,0,1,1,0,0,0,0,0
+-6.80557,0.982385,1.03831,2,3,0,7.00219,0.209273,0.209273,0,0,0,0,1,0,0,0,0,0
+-6.76877,1,1.03831,1,1,0,6.79675,0.225129,0.225129,0,0,0,0,1,0,0,0,1,1
+-7.86967,0.777324,1.03831,1,3,0,8.07907,0.0993203,0.0993203,0,0,0,0,0,0,1,0,1,0
+-7.29566,1,1.03831,1,1,0,7.78594,0.136455,0.136455,0,0,1,0,0,0,0,0,0,0
+-6.95868,1,1.03831,2,3,0,7.22689,0.175253,0.175253,1,0,0,0,1,0,1,0,0,0
+-6.98845,0.963116,1.03831,2,3,0,7.33122,0.342542,0.342542,0,1,0,1,1,1,0,0,0,0
+-6.96794,1,1.03831,1,1,0,7.05459,0.338298,0.338298,1,1,0,1,0,0,0,0,1,0
+-6.77205,0.992238,1.03831,1,3,0,6.99155,0.223288,0.223288,0,0,1,1,0,0,0,0,0,0
+-6.82861,0.98454,1.03831,1,1,0,6.82943,0.20219,0.20219,0,0,0,0,0,0,0,0,0,1
+-7.17895,0.907043,1.03831,1,3,0,7.36936,0.376001,0.376001,0,0,0,1,0,0,0,0,0,0
+-6.77167,1,1.03831,1,3,0,7.03933,0.277819,0.277819,0,1,1,0,1,0,0,1,1,1
+-6.93819,0.973219,1.03831,2,3,0,6.93832,0.331804,0.331804,0,1,1,0,0,1,0,1,0,1
+-6.75567,0.997498,1.03831,1,3,0,6.92719,0.234755,0.234755,0,0,0,0,0,0,1,0,0,1
+-6.80236,0.982911,1.03831,2,3,0,6.86092,0.210378,0.210378,1,0,0,1,0,0,0,0,0,0
+-7.11934,0.952824,1.03831,2,3,0,7.23105,0.366435,0.366435,0,0,0,1,0,1,0,1,0,0
+-6.79737,0.986666,1.03831,1,3,0,7.17514,0.212167,0.212167,0,0,0,0,0,0,0,0,0,0
+-7.55957,0.856369,1.03831,1,3,0,7.62991,0.116809,0.116809,0,0,0,0,0,0,0,0,0,0
+-8.19994,0.907808,1.03831,1,1,0,8.23077,0.084798,0.084798,0,0,0,0,0,0,0,0,0,0
+-7.54248,1,1.03831,1,1,0,8.12733,0.117921,0.117921,0,0,0,1,0,1,1,0,0,0
+-7.76932,0.963972,1.03831,1,1,0,7.87477,0.104486,0.104486,0,1,0,0,0,1,0,0,1,0
+-7.48339,1,1.03831,1,1,0,7.80544,0.121916,0.121916,0,0,0,0,0,0,0,0,0,0
+-6.74921,0.901811,1.03831,2,3,0,8.26222,0.243948,0.243948,0,0,0,1,0,0,1,0,0,0
+-7.00271,0.945514,1.03831,2,3,0,7.10048,0.168566,0.168566,0,0,0,0,0,0,0,0,1,0
+-7.28807,0.940718,1.03831,1,1,0,7.30236,0.137115,0.137115,0,0,0,0,0,0,0,0,0,0
+-7.28807,0.869929,1.03831,1,1,0,7.96781,0.137115,0.137115,0,0,0,0,0,0,1,0,1,0
+-7.91986,0.896287,1.03831,1,1,0,7.93032,0.0968842,0.0968842,0,1,0,0,0,1,0,0,0,0
+-10.0501,0.799492,1.03831,1,3,0,10.1169,0.0396054,0.0396054,0,0,0,0,0,0,0,0,1,0
+-6.76223,1,1.03831,2,3,0,9.23622,0.271459,0.271459,0,1,0,1,1,0,1,1,0,0
+-6.76223,0.435968,1.03831,2,3,0,9.8439,0.271459,0.271459,0,0,0,0,0,0,0,0,1,0
+-6.74908,1,1.03831,1,3,0,6.75821,0.255786,0.255786,0,0,1,1,0,0,0,0,1,1
+-8.39969,0.254915,1.03831,2,3,0,11.8602,0.506736,0.506736,1,1,1,1,0,0,1,0,0,0
+-6.90745,1,1.03831,1,1,0,7.83265,0.324578,0.324578,1,1,1,0,1,0,0,0,1,0
+-6.92051,0.995327,1.03831,1,1,0,6.97315,0.32772,0.32772,0,0,0,1,0,1,0,0,1,0
+-7.32713,0.940513,1.03831,2,3,0,7.32843,0.133788,0.133788,0,1,0,0,0,0,0,0,1,0
+-6.78642,0.872369,1.03831,2,3,0,8.39077,0.285658,0.285658,0,1,0,1,0,1,0,0,1,0
+-6.76487,0.942647,1.03831,2,3,0,7.04741,0.227535,0.227535,0,0,0,1,0,0,0,0,0,1
+-6.79311,0.966787,1.03831,2,3,0,6.95569,0.288726,0.288726,0,0,0,0,1,0,1,1,0,1
+-6.79291,1,1.03831,1,1,0,6.80762,0.288637,0.288637,1,0,0,0,1,0,0,0,1,0
+-6.8443,0.982659,1.03831,1,1,0,6.85307,0.307326,0.307326,0,0,0,0,0,1,0,0,0,1
+-6.8443,0.700752,1.03831,2,3,0,7.99184,0.307326,0.307326,0,0,0,0,0,0,0,0,1,0
+-7.26734,0.857257,1.03831,1,1,0,7.27516,0.389126,0.389126,0,1,1,0,0,1,0,0,0,1
+-6.94925,1,1.03831,1,1,0,7.19113,0.334269,0.334269,0,1,0,1,0,0,1,0,1,0
+-6.77392,0.991597,1.03831,1,3,0,6.97967,0.222296,0.222296,0,0,0,0,0,0,0,1,0,0
+-7.02143,0.933295,1.03831,1,3,0,7.10751,0.349033,0.349033,0,1,0,1,0,0,0,1,1,0
+-6.89479,1,1.03831,2,3,0,7.01196,0.321418,0.321418,0,1,0,0,0,0,1,0,1,0
+-6.95943,0.992337,1.03831,2,3,0,7.0015,0.336484,0.336484,0,0,0,1,1,0,0,0,0,1
+-6.92192,0.934192,1.03831,2,3,0,7.30063,0.18152,0.18152,0,0,0,0,0,0,1,0,0,0
+-7.21287,0.92269,1.03831,2,3,0,7.62455,0.144031,0.144031,0,0,0,0,0,0,0,1,0,0
+-6.7656,0.990581,1.03831,2,3,0,7.27116,0.227063,0.227063,0,0,0,0,0,0,1,0,0,0
+-6.75612,1,1.03831,1,1,0,6.76391,0.234326,0.234326,0,0,0,0,0,0,0,0,0,1
+-8.151,0.778974,1.03831,2,3,0,8.34659,0.0867452,0.0867452,0,0,1,0,0,0,0,0,0,0
+-6.75139,0.930482,1.03831,1,3,0,8.15082,0.239836,0.239836,1,0,0,0,0,0,1,0,0,0
+-6.77456,0.990682,1.03831,2,3,0,6.80524,0.221967,0.221967,0,0,0,0,1,0,0,0,0,1
+-6.77456,0.691637,1.03831,1,3,0,8.32827,0.221967,0.221967,0,0,0,1,0,0,0,0,1,0
+-9.48274,0.515262,1.03831,1,3,0,9.71499,0.582514,0.582514,0,0,1,1,1,1,0,0,1,0
+-7.98258,1,1.03831,1,1,0,9.24292,0.47034,0.47034,0,0,0,0,0,0,0,0,1,0
+-7.35414,1,1.03831,2,3,0,7.77622,0.13158,0.13158,0,0,0,0,0,0,0,1,0,0
+-8.76849,0.843701,1.03831,1,3,0,8.79273,0.0660089,0.0660089,0,0,0,0,0,0,0,0,0,0
+-6.95058,0.819514,1.03831,1,3,0,9.56512,0.334559,0.334559,0,1,1,0,1,0,1,0,1,0
+-8.68521,0.509718,1.03831,1,1,0,8.69564,0.528914,0.528914,1,1,1,0,1,1,1,1,1,1
+-6.86336,1,1.03831,1,1,0,7.99123,0.312975,0.312975,1,0,1,0,1,1,0,1,0,0
+-7.37917,0.917935,1.03831,2,3,0,7.38925,0.404328,0.404328,0,0,1,1,1,0,1,1,0,0
+-9.27238,0.466144,1.03831,1,1,0,9.4018,0.56938,0.56938,1,0,0,1,1,0,1,1,0,1
+-6.74869,1,1.03831,1,3,0,8.47099,0.254605,0.254605,0,0,0,0,0,1,1,1,1,0
+-7.40594,0.838916,1.03831,1,3,0,7.43786,0.407775,0.407775,0,0,1,0,1,0,0,1,1,0
+-6.9233,1,1.03831,1,1,0,7.25221,0.328377,0.328377,1,1,0,1,0,0,0,0,1,1
+-6.78219,0.989431,1.03831,1,3,0,6.97392,0.218311,0.218311,0,0,0,0,0,0,0,0,0,0
+-6.91075,0.983978,1.03831,2,3,0,6.93248,0.325383,0.325383,0,0,0,1,0,0,1,0,0,0
+-6.77974,1,1.03831,1,1,0,6.86769,0.282326,0.282326,1,1,0,0,0,0,0,0,0,0
+-6.7578,1,1.03831,2,3,0,6.77425,0.232794,0.232794,0,0,1,1,0,0,0,0,0,1
+-6.7578,0.512439,1.03831,1,3,0,8.71887,0.232794,0.232794,0,0,0,0,0,0,0,0,0,1
+-7.17851,0.792001,1.03831,2,3,0,8.02548,0.14745,0.14745,0,0,0,1,0,1,0,1,0,0
+-7.97977,0.933789,1.03831,2,3,0,8.03732,0.470075,0.470075,0,1,0,0,0,0,0,1,0,1
+-9.14578,0.826793,1.03831,2,3,0,9.53359,0.561156,0.561156,1,1,1,0,0,1,1,1,1,1
+-7.3384,1,1.03831,1,1,0,8.53691,0.398943,0.398943,0,1,1,0,0,1,1,0,1,0
+-6.83996,1,1.03831,2,3,0,7.16197,0.305968,0.305968,0,1,1,1,0,1,1,1,0,0
+-6.83996,0.799771,1.03831,1,1,0,7.22963,0.305968,0.305968,1,0,1,0,1,0,0,1,1,1
+-7.51189,0.781125,1.03831,1,1,0,7.51495,0.420815,0.420815,0,0,0,1,0,0,0,1,1,1
+-7.27546,0.776915,1.03831,1,3,0,8.48323,0.138225,0.138225,0,0,0,0,0,0,0,0,0,0
+-6.94342,1,1.03831,1,1,0,7.20585,0.177768,0.177768,0,0,0,0,0,0,0,0,0,0
+-8.25385,0.814894,1.03831,1,3,0,8.35317,0.0827242,0.0827242,0,0,0,1,0,0,0,0,0,0
+-7.60648,1,1.03831,1,1,0,8.19214,0.113847,0.113847,0,1,0,0,0,1,0,0,0,0
+-8.97097,0.835369,1.03831,1,3,0,8.97551,0.060651,0.060651,0,0,0,0,0,0,0,0,0,1
+-6.74845,0.975937,1.03831,2,3,0,9.20314,0.246368,0.246368,0,0,0,0,0,0,0,0,0,0
+-7.04634,0.926609,1.03831,1,3,0,7.09745,0.162616,0.162616,0,0,0,0,0,0,0,0,1,0
+-6.90166,1,1.03831,2,3,0,7.027,0.185318,0.185318,0,0,0,0,0,0,0,0,1,0
+-7.10706,0.953203,1.03831,1,1,0,7.11547,0.155195,0.155195,1,0,1,0,0,0,0,0,0,0
+-6.87818,1,1.03831,1,1,0,7.05662,0.190107,0.190107,1,0,0,1,0,0,0,0,0,0
+-7.0092,0.968882,1.03831,1,1,0,7.02148,0.167643,0.167643,0,0,0,0,0,0,0,1,0,1
+-6.77629,0.977556,1.03831,1,3,0,7.06559,0.280474,0.280474,0,1,0,0,1,0,0,0,0,0
+-6.74941,1,1.03831,1,3,0,6.76824,0.256616,0.256616,0,0,0,0,0,1,0,0,0,0
+-7.1613,0.892438,1.03831,1,3,0,7.27284,0.149232,0.149232,0,0,0,1,0,0,0,0,0,0
+-6.90028,1,1.03831,1,1,0,7.105,0.185589,0.185589,0,0,0,0,0,0,0,0,0,1
+-7.08826,0.981003,1.03831,2,3,0,7.08984,0.361168,0.361168,0,0,0,0,1,0,0,0,0,1
+-6.74988,1,1.03831,1,3,0,7.02241,0.242434,0.242434,0,0,1,0,0,0,0,0,1,0
+-6.74988,0.683849,1.03831,1,3,0,8.24604,0.242434,0.242434,0,0,1,1,0,0,0,0,1,1
+-7.01339,0.943256,1.03831,2,3,0,7.11787,0.167054,0.167054,0,0,0,0,0,0,0,0,0,0
+-7.12963,0.974786,1.03831,1,1,0,7.17028,0.152646,0.152646,0,0,0,0,1,0,0,0,0,0
+-7.40372,0.947067,1.03831,1,1,0,7.43747,0.127707,0.127707,0,0,1,0,0,0,0,0,0,0
+-6.86563,1,1.03831,2,3,0,7.24868,0.31362,0.31362,0,1,0,0,0,1,0,0,0,1
+-7.85623,0.692976,1.03831,1,3,0,8.64256,0.0999882,0.0999882,0,0,0,0,0,0,0,0,0,0
+-6.74992,0.986302,1.03831,2,3,0,7.89193,0.257761,0.257761,0,0,0,1,0,0,0,0,1,0
+-7.62919,0.783314,1.03831,1,3,0,7.91707,0.11246,0.11246,1,0,0,0,1,0,0,0,0,0
+-7.56132,1,1.03831,1,1,0,7.77024,0.116696,0.116696,0,0,0,0,0,0,0,1,1,0
+-7.56132,0.78523,1.03831,1,3,0,10.8841,0.116696,0.116696,0,0,0,0,0,0,0,0,0,1
+-6.76676,0.940723,1.03831,1,3,0,7.63665,0.274701,0.274701,0,1,0,0,0,1,1,0,1,1
+-6.75624,0.98553,1.03831,2,3,0,6.82753,0.266251,0.266251,1,0,0,0,0,0,1,1,1,1
+-6.79771,0.960073,1.03831,2,3,0,6.92824,0.290711,0.290711,0,0,0,1,1,0,1,0,0,0
+-7.32531,0.8323,1.03831,1,3,0,7.65196,0.133939,0.133939,0,0,0,0,0,0,0,0,0,0
+-6.7481,0.979204,1.03831,1,3,0,7.28582,0.248428,0.248428,0,1,0,0,0,0,0,1,0,0
+-6.76027,0.996536,1.03831,2,3,0,6.76776,0.269893,0.269893,0,0,0,0,1,1,0,1,0,0
+-6.7488,0.982438,1.03831,2,3,0,6.84194,0.245087,0.245087,0,0,1,0,0,1,1,1,0,0
+-7.0051,0.945368,1.03831,2,3,0,7.1001,0.168224,0.168224,1,1,0,1,0,1,0,0,0,0
+-7.20109,0.958332,1.03831,1,1,0,7.22684,0.145183,0.145183,1,0,0,0,0,0,0,0,0,1
+-6.75151,0.992641,1.03831,1,3,0,7.14253,0.239662,0.239662,0,1,0,0,0,0,0,1,1,0
+-6.7632,0.996569,1.03831,1,1,0,6.76327,0.228651,0.228651,0,0,1,1,0,0,0,1,0,0
+-7.89733,0.743856,1.03831,1,3,0,8.02469,0.462165,0.462165,1,0,0,1,0,0,0,1,1,1
+-6.97209,1,1.03831,1,1,0,7.56988,0.33917,0.33917,0,1,0,0,0,0,1,0,0,0
+-6.81647,0.981441,1.03831,1,3,0,7.08399,0.205757,0.205757,0,1,0,0,0,0,0,0,1,1
+-6.90667,0.97041,1.03831,1,3,0,7.03553,0.324389,0.324389,0,1,1,1,1,1,1,0,0,0
+-6.7542,1,1.03831,1,3,0,6.85873,0.264062,0.264062,1,1,0,0,1,1,1,0,0,0
+-6.7542,0.811583,1.03831,1,3,0,7.2887,0.264062,0.264062,0,0,0,0,0,0,1,0,0,0
+-6.75955,0.998297,1.03831,1,1,0,6.76075,0.26929,0.26929,0,0,0,0,0,0,0,1,0,0
+-6.95852,0.914715,1.03831,2,3,0,7.18294,0.175279,0.175279,1,0,0,0,0,0,1,0,0,1
+-6.91443,0.969335,1.03831,2,3,0,7.2958,0.182892,0.182892,0,0,0,0,0,0,0,0,1,0
+-6.90248,1,1.03831,1,1,0,6.94971,0.18516,0.18516,0,0,0,0,0,0,0,0,0,0
+-6.74915,0.994655,1.03831,1,3,0,6.89282,0.255969,0.255969,1,1,0,1,0,1,0,0,1,1
+-8.28434,0.667442,1.03831,1,3,0,8.34152,0.497199,0.497199,0,0,1,1,0,1,1,0,1,0
+-7.69279,1,1.03831,1,1,0,8.35535,0.441238,0.441238,0,1,1,1,1,1,0,0,1,1
+-6.84995,1,1.03831,1,1,0,7.38259,0.30905,0.30905,0,1,1,0,0,1,0,0,0,0
+-6.74802,1,1.03831,1,3,0,6.82738,0.250139,0.250139,0,0,1,0,0,0,1,0,0,0
+-7.55037,0.808407,1.03831,1,3,0,7.76828,0.117405,0.117405,0,0,0,0,0,0,0,0,0,1
+-6.84989,1,1.03831,1,3,0,7.41476,0.196595,0.196595,0,0,1,1,0,1,1,0,0,0
+-7.72378,0.799098,1.03831,2,3,0,8.40289,0.44454,0.44454,0,0,0,0,0,1,0,0,0,0
+-6.88633,1,1.03831,1,1,0,7.41804,0.319237,0.319237,0,1,0,0,0,0,1,0,0,0
+-7.18966,0.85463,1.03831,2,3,0,7.60028,0.146321,0.146321,0,0,0,1,0,1,1,0,0,0
+-6.76172,1,1.03831,1,3,0,7.11517,0.229699,0.229699,0,0,0,0,0,0,0,0,1,0
+-7.1912,0.907117,1.03831,1,3,0,7.2342,0.146166,0.146166,0,0,0,0,0,0,0,0,0,0
+-6.88587,1,1.03831,1,1,0,7.12113,0.188487,0.188487,0,0,0,0,1,1,0,0,0,0
+-6.74903,0.968538,1.03831,2,3,0,7.12885,0.244422,0.244422,1,1,0,1,1,0,1,0,0,0
+-6.74858,0.997793,1.03831,2,3,0,6.76049,0.245828,0.245828,0,0,0,0,1,0,0,0,0,1
+-6.74806,0.99991,1.03831,2,3,0,6.74911,0.24887,0.24887,0,0,0,1,0,0,0,0,0,0
+-6.75306,0.992244,1.03831,2,3,0,6.78548,0.262689,0.262689,1,0,1,0,0,1,0,1,0,0
+-6.78922,0.983742,1.03831,2,3,0,6.8331,0.215312,0.215312,0,0,0,0,0,1,1,0,0,0
+-7.32441,0.856951,1.03831,2,3,0,7.7556,0.397056,0.397056,0,0,1,0,0,1,1,0,0,1
+-7.24484,1,1.03831,2,3,0,7.46581,0.38589,0.38589,0,0,1,0,0,1,0,1,1,0
+-6.82097,0.982206,1.03831,1,3,0,7.33225,0.204395,0.204395,0,0,0,0,0,1,1,0,0,0
+-7.15668,0.941666,1.03831,1,3,0,7.15904,0.149719,0.149719,0,0,0,1,0,0,0,0,1,0
+-6.83257,0.979341,1.03831,2,3,0,7.35944,0.201089,0.201089,0,0,0,0,0,0,0,0,0,0
+-6.80258,1,1.03831,1,1,0,6.83436,0.210298,0.210298,1,0,0,1,0,0,0,0,0,1
+-7.44153,0.831494,1.03831,2,3,0,7.97048,0.412259,0.412259,0,1,0,1,0,1,0,1,0,1
+-7.09504,1,1.03831,2,3,0,7.40128,0.362335,0.362335,0,1,0,0,0,0,1,1,0,1
+-8.12259,0.612272,1.03831,2,3,0,9.54893,0.0879053,0.0879053,0,0,0,0,0,0,0,0,0,0
+-10.1797,0.792229,1.03831,1,3,0,10.2192,0.0377071,0.0377071,0,0,0,0,0,0,0,0,0,0
+-8.54998,1,1.03831,1,1,0,10.0322,0.0724965,0.0724965,0,0,0,0,0,0,0,0,0,0
+-7.58672,1,1.03831,1,1,0,8.41531,0.115079,0.115079,0,0,0,1,0,0,0,0,1,0
+-8.37811,0.890375,1.03831,1,1,0,8.39447,0.0782066,0.0782066,0,0,0,0,0,0,0,1,0,0
+-7.68589,0.966472,1.03831,2,3,0,9.22588,0.109117,0.109117,0,0,0,0,0,0,0,1,0,0
+-6.74826,0.956859,1.03831,1,3,0,7.65958,0.247281,0.247281,0,0,0,0,1,1,1,0,1,1
+-6.74826,0.709916,1.03831,1,3,0,7.68793,0.247281,0.247281,0,0,0,1,0,0,0,0,0,0
+-6.77816,0.991867,1.03831,1,3,0,6.78311,0.281492,0.281492,0,0,0,0,1,0,0,1,0,0
+-6.79022,0.996006,1.03831,1,1,0,6.79816,0.287428,0.287428,1,0,0,0,0,0,1,0,0,0
+-6.89023,0.98687,1.03831,2,3,0,6.89526,0.320251,0.320251,1,0,1,0,0,1,1,0,0,0
+-6.77839,0.840928,1.03831,2,3,0,7.49701,0.281615,0.281615,0,0,0,0,0,0,0,0,1,1
+-7.23988,0.85892,1.03831,1,3,0,7.48154,0.141463,0.141463,0,0,0,0,0,0,0,0,0,1
+-7.83237,0.899555,1.03831,1,1,0,7.84243,0.101192,0.101192,0,0,0,0,0,0,0,0,0,0
+-7.4847,1,1.03831,1,1,0,7.84614,0.121825,0.121825,0,0,0,0,0,0,0,0,0,0
+-6.85349,1,1.03831,2,3,0,7.30761,0.31011,0.31011,0,0,0,0,1,0,0,1,0,0
+-6.75617,0.937768,1.03831,2,3,0,7.0951,0.266181,0.266181,1,0,1,0,1,0,0,0,0,1
+-6.75617,0.710987,1.03831,2,3,0,8.05982,0.266181,0.266181,0,0,0,0,1,0,0,1,1,0
+-7.95714,0.787241,1.03831,2,3,0,8.06496,0.095133,0.095133,0,0,0,0,0,0,0,0,0,1
+-7.4597,1,1.03831,1,1,0,7.91808,0.123587,0.123587,0,1,0,0,1,1,0,0,0,1
+-7.6163,0.973637,1.03831,1,1,0,7.72704,0.113244,0.113244,0,0,0,0,1,0,0,0,0,0
+-7.39112,1,1.03831,1,1,0,7.66034,0.12867,0.12867,0,0,0,0,0,0,1,0,0,0
+-6.74891,0.978675,1.03831,1,3,0,7.34202,0.244762,0.244762,0,0,0,0,0,0,0,0,1,1
+-6.76107,0.967687,1.03831,2,3,0,6.90965,0.270549,0.270549,0,0,0,0,1,0,1,0,1,1
+-7.34671,0.837759,1.03831,1,3,0,7.58178,0.13218,0.13218,0,1,0,1,1,0,0,0,0,0
+-7.31539,1,1.03831,1,1,0,7.46128,0.134771,0.134771,0,1,0,0,0,0,1,1,0,0
+-6.8551,1,1.03831,2,3,0,7.18345,0.310584,0.310584,0,0,0,0,0,1,0,0,0,0
+-6.76362,1,1.03831,1,1,0,6.82483,0.272499,0.272499,0,0,0,1,0,1,0,0,0,0
+-6.77186,0.972052,1.03831,2,3,0,6.87853,0.27793,0.27793,0,0,0,0,0,0,0,1,1,0
+-6.87604,0.854866,1.03831,2,3,0,7.37818,0.316496,0.316496,0,1,0,1,0,0,0,0,0,0
+-6.75049,0.988646,1.03831,2,3,0,6.93729,0.241291,0.241291,0,0,0,0,0,0,1,1,0,1
+-6.82934,0.978329,1.03831,1,3,0,6.84709,0.302513,0.302513,0,0,1,1,0,0,0,0,0,0
+-6.82934,0.944147,1.03831,1,1,0,6.94686,0.302513,0.302513,1,1,0,0,0,0,0,0,0,1
+-7.362,0.913377,1.03831,2,3,0,7.36505,0.402081,0.402081,1,1,1,1,0,1,0,0,0,0
+-8.07783,0.898061,1.03831,2,3,0,8.25121,0.479147,0.479147,1,0,1,0,0,0,0,0,1,0
+-6.76103,1,1.03831,1,3,0,7.63606,0.270517,0.270517,0,1,1,0,0,0,1,0,0,0
+-7.34253,0.838806,1.03831,1,3,0,7.57575,0.13252,0.13252,0,0,1,0,0,0,0,0,0,0
+-7.22378,1,1.03831,1,1,0,7.39959,0.142982,0.142982,0,0,0,0,1,0,0,0,0,0
+-7.22378,0.373528,1.03831,2,7,0,14.5927,0.142982,0.142982,0,0,0,0,0,0,0,0,0,0
+-7.81023,0.899619,1.03831,1,1,0,7.81959,0.10233,0.10233,0,0,0,0,0,0,0,0,0,0
+-8.23231,0.943161,1.03831,1,1,0,8.32618,0.0835444,0.0835444,0,0,0,0,1,0,0,0,0,0
+-6.75405,0.89624,1.03831,1,3,0,8.36598,0.263889,0.263889,0,1,0,0,0,0,0,0,0,0
+-6.80165,0.991847,1.03831,2,3,0,6.80844,0.210625,0.210625,0,0,0,0,1,0,0,0,0,0
+-7.30535,0.890968,1.03831,2,3,0,7.62459,0.39445,0.39445,0,1,0,1,1,1,0,1,0,1
+-7.33908,0.986918,1.03831,1,1,0,7.53967,0.399034,0.399034,1,0,1,1,1,1,0,1,1,1
+-7.33908,0.82612,1.03831,1,1,0,7.80618,0.399034,0.399034,1,0,0,0,0,1,0,1,0,0
+-6.82854,0.994896,1.03831,2,3,0,7.46018,0.202207,0.202207,0,0,0,0,0,0,0,0,0,1
+-7.64924,0.856888,1.03831,1,3,0,7.708,0.111258,0.111258,1,0,0,0,0,1,0,0,0,0
+-8.12359,0.97741,1.03831,2,3,0,8.1891,0.0878641,0.0878641,0,0,0,0,0,0,0,0,0,0
+-7.37159,1,1.03831,2,3,0,8.00752,0.130191,0.130191,0,0,0,0,0,0,0,0,0,0
+-8.41306,0.862796,1.03831,1,3,0,8.41344,0.0769973,0.0769973,0,0,0,0,0,1,0,0,0,0
+-6.74927,1,1.03831,2,3,0,8.08323,0.256292,0.256292,0,1,0,0,1,0,1,0,0,0
+-6.77643,0.838044,1.03831,2,3,0,7.5611,0.221022,0.221022,0,0,0,0,0,0,0,0,0,0
+-7.2481,0.880344,1.03831,1,3,0,7.36219,0.386363,0.386363,1,0,1,0,0,0,0,1,0,0
+-7.2481,0.722849,1.03831,1,1,0,7.86492,0.386363,0.386363,0,0,0,1,1,0,0,1,0,1
+-7.34379,0.751701,1.03831,1,3,0,8.32607,0.132417,0.132417,0,0,0,0,0,0,0,0,0,0
+-7.01535,1,1.03831,1,1,0,7.28611,0.166781,0.166781,0,1,0,1,1,0,0,0,1,1
+-6.90885,1,1.03831,2,3,0,7.01158,0.183939,0.183939,0,0,0,0,0,0,0,0,0,0
+-6.76717,1,1.03831,1,3,0,6.87183,0.226086,0.226086,1,0,0,1,0,0,0,1,0,0
+-7.09902,0.930028,1.03831,1,3,0,7.11985,0.156129,0.156129,0,1,0,0,0,0,1,0,0,0
+-8.43343,0.823756,1.03831,2,3,0,8.98403,0.0763045,0.0763045,0,0,0,0,0,0,0,0,0,0
+-7.6708,1,1.03831,1,1,0,8.35024,0.10999,0.10999,0,0,0,0,0,0,0,0,0,0
+-8.87904,0.848127,1.03831,1,1,0,8.87904,0.0630124,0.0630124,0,0,0,0,1,0,0,0,0,0
+-7.12426,1,1.03831,1,3,0,8.69179,0.153243,0.153243,0,0,1,1,1,0,1,0,0,0
+-7.75034,0.88764,1.03831,1,1,0,7.75207,0.105511,0.105511,0,1,0,0,0,1,0,0,0,0
+-6.86149,0.829701,1.03831,2,3,0,9.73527,0.193825,0.193825,0,0,1,0,0,0,0,0,0,0
+-7.87565,0.751952,1.03831,2,3,0,8.7382,0.460039,0.460039,0,0,0,1,1,0,0,1,0,1
+-6.77552,1,1.03831,1,3,0,7.49098,0.280048,0.280048,1,0,0,0,0,0,0,0,1,0
+-6.98304,0.966268,1.03831,2,3,0,6.98315,0.341438,0.341438,0,0,1,1,0,1,0,1,0,0
+-6.77447,1,1.03831,1,1,0,6.91175,0.279457,0.279457,0,0,0,0,0,0,1,1,0,0
+-6.75243,0.998252,1.03831,1,3,0,6.78107,0.238389,0.238389,0,0,0,0,1,1,0,0,0,1
+-7.22013,0.908627,1.03831,2,3,0,7.37118,0.143331,0.143331,1,0,0,0,0,0,0,1,0,0
+-7.92289,0.844858,1.03831,1,3,0,8.74582,0.464647,0.464647,1,1,0,1,0,0,0,1,0,1
+-6.79215,1,1.03831,1,3,0,7.78964,0.214144,0.214144,0,0,1,0,1,0,0,0,0,0
+-7.26095,0.910049,1.03831,1,3,0,7.28411,0.139527,0.139527,1,0,0,0,1,0,0,0,0,0
+-7.20805,1,1.03831,2,3,0,7.34435,0.1445,0.1445,0,0,0,0,0,0,0,0,0,0
+-7.43769,0.957004,1.03831,1,1,0,7.49124,0.125177,0.125177,0,0,0,0,0,1,0,0,0,0
+-6.81779,1,1.03831,1,3,0,7.31698,0.205352,0.205352,0,0,0,0,1,0,0,1,0,0
+-6.75407,0.97006,1.03831,2,3,0,7.03071,0.236422,0.236422,0,0,0,0,0,1,0,0,0,1
+-6.76026,0.998192,1.03831,1,1,0,6.76116,0.230792,0.230792,1,0,1,0,0,0,0,0,0,0
+-6.7487,0.999428,1.03831,1,3,0,6.76079,0.25462,0.25462,0,1,0,0,1,1,1,0,1,0
+-6.79503,0.987069,1.03831,1,3,0,6.80656,0.213039,0.213039,0,0,0,0,1,0,0,0,0,0
+-6.78434,0.953202,1.03831,2,3,0,7.12585,0.217363,0.217363,0,0,0,0,0,1,0,0,0,1
+-6.76056,1,1.03831,2,3,0,6.77843,0.23056,0.23056,0,0,1,0,1,0,1,1,0,0
+-6.80508,0.987498,1.03831,1,1,0,6.80515,0.209441,0.209441,0,0,0,0,0,0,1,0,0,0
+-6.94015,0.965662,1.03831,1,1,0,6.94124,0.178322,0.178322,1,0,0,0,0,0,0,1,0,0
+-6.74806,0.962356,1.03831,2,3,0,7.20577,0.248874,0.248874,0,0,0,0,0,0,0,0,0,0
+-6.74841,0.999353,1.03831,2,3,0,6.75123,0.246509,0.246509,0,0,0,0,0,1,0,1,0,0
+-6.82679,0.973394,1.03831,2,3,0,6.89245,0.301654,0.301654,0,0,0,1,1,0,1,0,0,0
+-7.05043,0.923475,1.03831,1,1,0,7.05978,0.354448,0.354448,1,0,1,1,0,1,0,0,0,0
+-6.75331,1,1.03831,1,3,0,6.95931,0.262996,0.262996,0,0,0,1,0,1,1,1,0,1
+-6.74802,0.989565,1.03831,2,3,0,6.80192,0.250122,0.250122,0,0,0,0,1,0,1,0,0,0
+-6.87482,0.967122,1.03831,1,3,0,6.89652,0.190833,0.190833,0,0,0,0,0,1,1,1,1,0
+-6.87482,0.747275,1.03831,1,3,0,8.09899,0.190833,0.190833,0,1,0,0,0,0,0,1,0,0
+-7.06428,0.943418,1.03831,1,3,0,7.30072,0.356951,0.356951,0,0,0,0,1,0,1,0,0,1
+-8.36059,0.799096,1.03831,2,3,0,8.40687,0.503543,0.503543,1,1,0,1,1,1,0,1,1,1
+-8.36059,0.71403,1.03831,1,1,0,9.41519,0.503543,0.503543,1,1,1,1,1,1,0,0,1,1
+-6.74842,1,1.03831,1,3,0,7.87236,0.253538,0.253538,1,0,0,0,1,0,0,0,1,0
+-6.86864,0.939314,1.03831,2,3,0,7.04114,0.314463,0.314463,0,0,0,0,0,0,0,1,0,1
+-6.81933,1,1.03831,1,1,0,6.86903,0.299058,0.299058,1,0,0,0,0,0,0,0,1,0
+-6.92816,0.962625,1.03831,1,1,0,6.94097,0.32951,0.32951,1,1,0,0,0,0,0,0,0,0
+-8.51497,0.541933,1.03831,1,1,0,8.52299,0.515921,0.515921,0,1,1,0,1,1,0,1,0,0
+-7.18052,1,1.03831,1,1,0,8.06563,0.376244,0.376244,0,0,0,0,1,1,1,0,0,1
+-7.18052,0.558447,1.03831,1,3,0,8.7101,0.376244,0.376244,1,0,0,0,1,0,0,0,0,1
+-6.87578,1,1.03831,2,3,0,7.12516,0.190625,0.190625,1,1,0,0,0,0,0,0,0,0
+-7.00397,0.986697,1.03831,2,3,0,7.00401,0.345644,0.345644,0,0,1,0,0,0,0,1,1,0
+-7.66335,0.888098,1.03831,2,3,0,7.66384,0.110425,0.110425,0,1,0,0,0,0,0,0,0,0
+-7.65519,1,1.03831,1,1,0,7.84864,0.110906,0.110906,0,0,0,0,0,0,0,0,1,0
+-7.97479,0.98429,1.03831,2,3,0,8.07337,0.0943211,0.0943211,0,0,0,0,0,0,0,0,0,0
+-6.8846,1,1.03831,1,3,0,7.81091,0.188752,0.188752,0,0,0,0,0,1,0,0,0,0
+-6.83563,1,1.03831,1,1,0,6.88674,0.200261,0.200261,0,0,0,0,0,1,0,0,1,0
+-6.74809,0.998273,1.03831,2,3,0,6.84283,0.25143,0.25143,0,1,0,0,0,0,1,0,0,0
+-6.94417,0.899522,1.03831,2,3,0,7.27572,0.177642,0.177642,0,1,0,0,0,0,0,0,0,1
+-6.90632,1,1.03831,1,1,0,6.96832,0.184421,0.184421,0,0,0,0,0,0,0,0,0,0
+-6.91548,0.968317,1.03831,2,3,0,7.24122,0.182699,0.182699,1,0,0,0,1,0,0,0,0,0
+-6.76264,1,1.03831,1,3,0,6.87711,0.229045,0.229045,0,0,0,1,0,0,0,0,1,0
+-6.75237,1,1.03831,1,1,0,6.75986,0.238468,0.238468,1,0,1,1,0,1,1,0,0,0
+-6.90652,0.95469,1.03831,2,3,0,7.01845,0.324351,0.324351,0,0,1,1,1,0,0,1,0,0
+-6.75101,0.926932,1.03831,2,3,0,7.193,0.25974,0.25974,0,0,0,0,0,0,1,0,0,0
+-6.75139,0.897488,1.03831,2,3,0,7.24303,0.239842,0.239842,0,0,0,0,0,1,0,1,0,0
+-6.76995,0.991924,1.03831,2,3,0,6.79759,0.224449,0.224449,0,1,0,1,1,0,0,0,0,1
+-6.75415,1,1.03831,1,1,0,6.76561,0.23633,0.23633,1,0,0,0,1,1,0,0,1,0
+-6.77462,0.977938,1.03831,2,3,0,6.872,0.279538,0.279538,0,0,0,1,0,0,0,0,1,1
+-6.76053,1,1.03831,1,1,0,6.77226,0.270112,0.270112,1,0,1,1,0,0,0,0,0,0
+-6.80881,0.984277,1.03831,1,1,0,6.80933,0.295176,0.295176,0,0,0,0,1,0,0,0,0,0
+-9.05343,0.597147,1.03831,2,3,0,9.09196,0.0586267,0.0586267,0,0,0,0,0,0,0,0,0,0
+-6.78028,0.887583,1.03831,1,3,0,9.1528,0.219179,0.219179,1,1,0,0,0,0,0,0,0,0
+-6.78028,0.851182,1.03831,1,3,0,7.34658,0.219179,0.219179,0,0,0,0,0,0,0,0,1,0
+-9.4301,0.515646,1.03831,1,3,0,10.3773,0.0503726,0.0503726,0,0,0,0,0,0,0,0,0,0
+-8.20208,1,1.03831,1,1,0,9.30648,0.0847145,0.0847145,0,0,0,0,0,0,0,0,1,0
+-8.60583,0.984538,1.03831,2,3,0,8.74544,0.0707615,0.0707615,0,0,0,0,0,0,0,0,0,0
+-6.96809,1,1.03831,2,3,0,8.11227,0.338329,0.338329,0,0,0,0,0,0,0,0,0,0
+-6.96809,0.448481,1.03831,1,3,0,9.13964,0.338329,0.338329,1,0,0,0,0,0,0,0,0,0
+-7.16866,0.927899,1.03831,1,1,0,7.22544,0.374395,0.374395,1,0,0,0,0,1,1,0,1,1
+-7.72958,0.921376,1.03831,2,3,0,7.8381,0.445153,0.445153,1,0,0,0,0,1,0,1,1,1
+-6.77156,1,1.03831,1,3,0,7.39882,0.277754,0.277754,0,0,1,1,0,0,0,0,1,0
+-6.98226,0.931409,1.03831,1,3,0,7.10344,0.171576,0.171576,0,1,1,0,1,0,0,0,0,0
+-6.75761,0.965585,1.03831,2,3,0,7.15467,0.267572,0.267572,1,0,0,0,0,1,0,0,0,1
+-6.94844,0.964598,1.03831,2,3,0,6.98045,0.176929,0.176929,0,0,0,0,1,1,1,1,0,0
+-6.89124,1,1.03831,1,1,0,6.96052,0.187387,0.187387,0,0,0,0,0,0,0,0,0,0
+-7.429,0.683899,1.03831,2,3,0,9.43849,0.125815,0.125815,0,0,1,0,1,0,1,0,0,0
+-7.00337,1,1.03831,1,1,0,7.34326,0.168472,0.168472,0,0,0,1,0,0,0,0,0,1
+-7.08261,0.98247,1.03831,1,1,0,7.12867,0.158078,0.158078,0,0,1,0,0,0,0,0,0,0
+-6.96603,1,1.03831,2,3,0,7.0874,0.174081,0.174081,0,0,0,0,0,1,0,0,0,1
+-7.33876,0.922307,1.03831,1,1,0,7.34242,0.132828,0.132828,1,0,0,0,0,0,0,0,0,0
+-6.87958,1,1.03831,2,3,0,7.20298,0.31745,0.31745,1,0,1,1,0,0,1,0,0,0
+-6.87346,0.683596,1.03831,2,3,0,8.27191,0.315793,0.315793,0,0,0,0,0,0,0,0,0,0
+-6.87346,0.615068,1.03831,1,1,0,7.67331,0.315793,0.315793,0,0,1,0,1,0,0,0,0,0
+-6.85551,1,1.03831,2,3,0,6.9007,0.310705,0.310705,1,0,1,1,0,0,1,0,1,1
+-6.85551,0.484902,1.03831,1,3,0,8.50385,0.310705,0.310705,1,0,1,0,1,1,0,0,0,0
+-6.7651,1,1.03831,1,1,0,6.82568,0.273562,0.273562,0,0,0,1,1,0,0,0,1,0
+-7.26515,0.875331,1.03831,1,3,0,7.26984,0.388814,0.388814,1,0,0,1,0,1,1,0,0,0
+# 
+#  Elapsed Time: 0.008445 seconds (Warm-up)
+#                0.032092 seconds (Sampling)
+#                0.040537 seconds (Total)
+# 
diff --git a/test/test_cmdstan_args.py b/test/test_cmdstan_args.py
index ca69bdb..ae8f97f 100644
--- a/test/test_cmdstan_args.py
+++ b/test/test_cmdstan_args.py
@@ -2,11 +2,13 @@ import os
 import unittest
 
 from cmdstanpy import TMPDIR
+
 from cmdstanpy.cmdstan_args import (
-    SamplerArgs,
+    SamplerArgs, 
     CmdStanArgs,
-    FixedParamArgs,
-    OptimizeArgs,
+    FixedParamArgs, 
+    OptimizeArgs, 
+    GenerateQuantitiesArgs
 )
 
 datafiles_path = os.path.join('test', 'data')
@@ -463,5 +465,19 @@ class CmdStanArgsTest(unittest.TestCase):
             )
 
 
+class GenerateQuantitesTest(unittest.TestCase):
+    def test_args_fitted_params(self):
+        args = GenerateQuantitiesArgs(csv_files=['no_such_file'])
+        with self.assertRaises(ValueError):
+            args.validate(chains=1)
+        csv_files = [os.path.join(datafiles_path, 'runset-good', 'bern-{}.csv'.format(i+1)) for i in range(4)]
+        print(csv_files)
+        args = GenerateQuantitiesArgs(csv_files=csv_files)
+        args.validate(chains=4)
+        cmd = args.compose(idx=1, cmd='')
+        print(cmd)
+        self.assertIn('method=generate_quantities', cmd)
+        self.assertIn('fitted_params={}'.format(csv_files[0]), cmd) 
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/test/test_model.py b/test/test_model.py
index caea9b4..6e812ce 100644
--- a/test/test_model.py
+++ b/test/test_model.py
@@ -1,8 +1,10 @@
 import os
 import unittest
 
+from cmdstanpy.cmdstan_args import SamplerArgs, CmdStanArgs
 from cmdstanpy.utils import EXTENSION
 from cmdstanpy.model import Model
+from cmdstanpy.stanfit import StanFit
 import numpy as np
 
 here = os.path.dirname(os.path.abspath(__file__))
@@ -257,6 +259,58 @@ class SampleTest(unittest.TestCase):
                 chains=4, cores=2, seed=12345, sampling_iters=100
             )
 
+class GenerateQuantitiesTest(unittest.TestCase):
+    def test_gen_quantities_good(self):
+        stan = os.path.join(datafiles_path, 'bernoulli_ppc.stan')
+        model = Model(stan_file=stan)
+        model.compile()
+
+        jdata = os.path.join(datafiles_path, 'bernoulli.data.json')
+
+        # synthesize stanfit object -
+        # see test_stanfit.py, method 'test_validate_good_run'
+        goodfiles_path = os.path.join(datafiles_path, 'runset-good')
+        output = os.path.join(goodfiles_path, 'bern')
+        sampler_args = SamplerArgs(
+            sampling_iters=100, max_treedepth=11, adapt_delta=0.95
+        )
+        cmdstan_args = CmdStanArgs(
+            model_name=model.name,
+            model_exe=model.exe_file,
+            chain_ids=[1, 2, 3, 4],
+            seed=12345,
+            data=jdata,
+            output_basename=output,
+            method_args=sampler_args,
+        )
+        sampler_fit = StanFit(args=cmdstan_args, chains=4)
+        for i in range(4):
+            sampler_fit._set_retcode(i, 0)
+
+        bern_fit = model.run_generated_quantities(
+            csv_files=sampler_fit.csv_files,
+            data=jdata)
+
+        # check results - ouput files, quantities of interest, draws
+        self.assertEqual(bern_fit.chains, 4)
+        for i in range(4):
+            self.assertEqual(bern_fit._retcodes[i], 0)
+            csv_file = bern_fit.csv_files[i]
+            self.assertTrue(os.path.exists(csv_file))
+        column_names = [
+            'y_rep.1',
+            'y_rep.2',
+            'y_rep.3',
+            'y_rep.4',
+            'y_rep.5',
+            'y_rep.6',
+            'y_rep.7',
+            'y_rep.8',
+            'y_rep.9',
+            'y_rep.10'
+        ]
+        self.assertEqual(bern_fit.column_names, tuple(column_names))
+        self.assertEqual(bern_fit.draws, 100) 
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/test/test_stanfit.py b/test/test_stanfit.py
index 8868125..3f178eb 100644
--- a/test/test_stanfit.py
+++ b/test/test_stanfit.py
@@ -60,7 +60,6 @@ class StanFitTest(unittest.TestCase):
         for i in range(len(retcodes)):
             fit._set_retcode(i, 0)
         self.assertTrue(fit._check_retcodes())
-        fit._check_console_msgs()
         fit._validate_csv_files()
         self.assertEqual(4, fit.chains)
         self.assertEqual(100, fit.draws)
@@ -202,6 +201,7 @@ class StanFitTest(unittest.TestCase):
         )
         self.assertIn(expected, fit.diagnose().replace("\r\n", "\n"))
 
+    # redo - better error handling
     def test_validate_bad_run(self):
         exe = os.path.join(datafiles_path, 'bernoulli' + EXTENSION)
         jdata = os.path.join(datafiles_path, 'bernoulli.data.json')