From 3a2f0cff91f1727a5c76aea3b737d27796b87a94 Mon Sep 17 00:00:00 2001 From: Jiaxiang Yi <88609987+JiaxiangYi96@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:52:07 +0100 Subject: [PATCH] push to main for code release week 3 (#42) * delete odb for veni sve simulation * smaller radius threshold * reduce log info for microstructure * add asca rve * naming of pp/pe mixture * add cddm with f3dasm * modify the bash script * handling errors for pp/pe mixture class * cddm data * flake8 test --- .gitignore | 5 +- setup.cfg | 4 +- src/rvesimulator/additions/ampitudesampler.py | 10 +- src/rvesimulator/additions/hardening_law.py | 3 +- src/rvesimulator/benchmarks/__init__.py | 3 +- src/rvesimulator/benchmarks/asca_rve.py | 252 ++ src/rvesimulator/benchmarks/cddm_rve.py | 11 +- .../benchmarks/hollow_plate_sve.py | 8 +- .../benchmarks/pppe_no_cohesive_rve.py | 254 ++ .../microstructure/circle_particles.py | 26 +- .../microstructure/shpere_particles.py | 4 +- .../benchmark_abaqus_scripts/__init__.py | 15 +- .../pppe_mixture_no_coh.py | 805 ++++ .../two_materials_rve.py | 14 +- .../design_of_experiments.csv | 4001 +++++++++++++++++ .../cddm_data_generation/exp_cddm_input.csv | 4001 +++++++++++++++++ .../cddm_data_generation/exp_cddm_output.csv | 4001 +++++++++++++++++ studies/cddm_data_generation/main.py | 234 + studies/cddm_data_generation/pbsjob.sh | 40 + 19 files changed, 13644 insertions(+), 47 deletions(-) create mode 100644 src/rvesimulator/benchmarks/asca_rve.py create mode 100644 src/rvesimulator/benchmarks/pppe_no_cohesive_rve.py create mode 100644 src/rvesimulator/scriptbase/benchmark_abaqus_scripts/pppe_mixture_no_coh.py create mode 100644 studies/cddm_data_generation/design_of_experiments.csv create mode 100644 studies/cddm_data_generation/exp_cddm_input.csv create mode 100644 studies/cddm_data_generation/exp_cddm_output.csv create mode 100644 studies/cddm_data_generation/main.py create mode 100644 studies/cddm_data_generation/pbsjob.sh diff --git a/.gitignore b/.gitignore index e6e7676..c4420d8 100644 --- a/.gitignore +++ b/.gitignore @@ -131,4 +131,7 @@ dmypy.json # folders examples/ -tutorials/Data/ \ No newline at end of file +tutorials/Data/ +studies/cddm_data_generation/Data/ +studies/cddm_data_generation/err* +studies/cddm_data_generation/out* \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 95ea020..ed44700 100644 --- a/setup.cfg +++ b/setup.cfg @@ -14,13 +14,13 @@ classifiers = License :: OSI Approved :: MIT License Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.8 [options] package_dir= =src packages=find: -python_requires = >=3.10 +python_requires = >=3.8 install_requires = numpy pandas diff --git a/src/rvesimulator/additions/ampitudesampler.py b/src/rvesimulator/additions/ampitudesampler.py index d547c45..c6d5147 100644 --- a/src/rvesimulator/additions/ampitudesampler.py +++ b/src/rvesimulator/additions/ampitudesampler.py @@ -1,7 +1,7 @@ # Modules # ============================================================================= # Standard -from typing import Any +from typing import Any, Tuple # Third-party import numpy as np @@ -100,10 +100,7 @@ def get_amplitude( @staticmethod def generate_control_points( seed: int, num_control: int, num_steps: int, num_dim: int = 3 - ) -> tuple[ - np.ndarray[Any, np.dtype[np.floating]], - np.ndarray[Any, np.dtype[np.floating]], - ]: + ) -> Tuple[Any, Any]: """generate control points Parameters @@ -119,8 +116,7 @@ def generate_control_points( Returns ------- - tuple[ np.ndarray[any, np.dtype[np.floating]], - np.ndarray[any, np.dtype[np.floating]], ] + Tuple[Any, Any] x_location of control points, y_location of control points """ num_control = int(num_control) diff --git a/src/rvesimulator/additions/hardening_law.py b/src/rvesimulator/additions/hardening_law.py index 6ac9598..c992a21 100644 --- a/src/rvesimulator/additions/hardening_law.py +++ b/src/rvesimulator/additions/hardening_law.py @@ -24,8 +24,9 @@ # ============================================================================= -# Base Classes +# Classes # ============================================================================= + class HardeningLaw(ABC): def __init__(self) -> None: """Abstract class for the hardening law. The hardening law is defined diff --git a/src/rvesimulator/benchmarks/__init__.py b/src/rvesimulator/benchmarks/__init__.py index 8b9bfa2..7ffbaf7 100644 --- a/src/rvesimulator/benchmarks/__init__.py +++ b/src/rvesimulator/benchmarks/__init__.py @@ -1,5 +1,6 @@ +from .asca_rve import ASCA_RVE from .cddm_rve import CDDM_RVE from .hollow_plate_sve import (ElasticRegularLoads, VonMisesPlasticPathLoads, VonMisesPlasticRegularLoads) -from .veni_nocohesive_rve import VeniNoCohRVE +from .pppe_no_cohesive_rve import PPPEMixtureNoCohesive diff --git a/src/rvesimulator/benchmarks/asca_rve.py b/src/rvesimulator/benchmarks/asca_rve.py new file mode 100644 index 0000000..9c707b3 --- /dev/null +++ b/src/rvesimulator/benchmarks/asca_rve.py @@ -0,0 +1,252 @@ +# Modules +# ============================================================================= +# Standard +import logging +import os +import time +from typing import Any + +import rvesimulator +from rvesimulator.abaqus2py.abaqus_simulator import AbaqusSimulator +from rvesimulator.additions.hardening_law import LinearHardeningLaw +from rvesimulator.microstructure.circle_particles import CircleParticles + +from .shared_functionalities import SimulationBase + +# Authorship & Credits +# ============================================================================= +__author__ = "Jiaxiang Yi (J.Yi@tudelft.nl)" +__credits__ = ["Jiaxiang Yi"] +__status__ = "Stable" +# ============================================================================= + +class ASCA_RVE(SimulationBase): + """Interface between python and abaqus of the ASCA RVE case + + Parameters + ---------- + SimulationBase : class + base class for simulation + """ + def __init__(self) -> None: + """Interface between python and abaqus of the ASCA case""" + + logging.basicConfig(level=logging.INFO, filename="asca_rve.log") + self.logger = logging.getLogger("abaqus_simulation") + + self.main_folder = os.getcwd() + self.folder_info = { + "main_work_directory": os.path.join(os.getcwd(), "Data"), + "script_path": os.path.dirname(rvesimulator.__file__) + \ + "/scriptbase", + "current_work_directory": "point_1", + "sim_path": "benchmark_abaqus_scripts.two_materials_rve", + "sim_script": "VonMisesPlasticElasticRegularLoads", + "post_path": "basic_analysis_scripts.post_process", + "post_script": "PostProcess2D", + } + + + def update_sim_info( + self, + size: float = 0.048, + radius_mu: float = 0.003, + radius_std: float = 0.0, + vol_req: float = 0.30, + youngs_modulus_matrix: float = 100.0, + poisson_ratio_matrix: float = 0.3, + youngs_modulus_fiber: float = 1.0, + poisson_ratio_fiber: float = 0.19, + mesh_partition: int = 30, + strain: list = [0.1, 0.0, 0.0], + num_steps: int = 100, + simulation_time: float = 1.0, + num_cpu: int = 1, + platform: str = "ubuntu", + hardening_law: Any = LinearHardeningLaw(), + seed: Any = None, + print_info: bool = False, + ) -> None: + """path dependent rve for cddm + + Parameters + ---------- + size : float, optional + size of the rve, by default 0.048 + radius_mu : float, optional + radius mean of the rve, by default 0.003 + radius_std : float, optional + radius deviation of the rve, by default 0.0 + vol_req : float, optional + volume fraction requirement, by default 0.30 + youngs_modulus_matrix : float, optional + youngs modulus of the matrix material, by default 100.0 + poisson_ratio_matrix : float, optional + poisson ratio of the matrix material, by default 0.3 + youngs_modulus_fiber : float, optional + youngs modulus of the fiber material, by default 1.0 + poisson_ratio_fiber : float, optional + poisson ratio of the fiber material, by default 0.19 + mesh_partition : int, optional + mesh partition for the edges, by default 30 + strain : list, optional + applied maximum strain, by default [0.1, 0.0, 0.0] + num_steps : int, optional + number of simulation steps, by default 100 + simulation_time : float, optional + total simulation time, by default 1.0 + num_cpu : int, optional + number of cpu used for simulation, by default 1 + platform : str, optional + platform for simulation, by default "ubuntu" + hardening_law : class, optional + hardening law for the simulation, by default LinearHardeningLaw() + seed : Any, optional + seed number, by default None + print_info : bool, optional + print simulation information or not, by default False + """ + + # get simulation information + self.size = size + self.radius_mu = radius_mu + self.radius_std = radius_std + self.vol_req = vol_req + self.youngs_modulus_matrix = youngs_modulus_matrix + self.poisson_ratio_matrix = poisson_ratio_matrix + self.youngs_modulus_fiber = youngs_modulus_fiber + self.poisson_ratio_fiber = poisson_ratio_fiber + self.mesh_partition = mesh_partition + self.strain = strain + self.num_steps = num_steps + self.simulation_time = simulation_time + self.num_cpu = num_cpu + self.platform = platform + self.hardening_law = hardening_law + self.seed = seed + # get hardening law + self.hardening_table = hardening_law.calculate_hardening_table() + + self.sim_paras = { + "size": size, + "radius_mu": radius_mu, + "radius_std": radius_std, + "vol_req": vol_req, + "youngs_modulus_matrix": youngs_modulus_matrix, + "poisson_ratio_matrix": poisson_ratio_matrix, + "youngs_modulus_fiber": youngs_modulus_fiber, + "poisson_ratio_fiber": poisson_ratio_fiber, + "hardening_table": self.hardening_table, + "mesh_partition": mesh_partition, + "strain": strain, + "num_steps": num_steps, + "simulation_time": simulation_time, + "num_cpu": num_cpu, + "platform": platform, } + + # print simulation information to screen + if print_info: + self._print_sim_info(info=self.sim_paras) + + def _get_sim_info(self) -> None: + """get simulation information""" + self.sim_info = { + "job_name": "asca_rve", + "location_information": self.microstructure.microstructure_info[ + "location_information" + ], + "radius_mu": self.microstructure.microstructure_info["radius_mu"], + "radius_std": self.microstructure.microstructure_info[ + "radius_std"], + "len_start": self.microstructure.microstructure_info["len_start"], + "len_end": self.microstructure.microstructure_info["len_end"], + "wid_start": self.microstructure.microstructure_info["wid_start"], + "wid_end": self.microstructure.microstructure_info["wid_end"], + "youngs_modulus_matrix": self.youngs_modulus_matrix, + "poisson_ratio_matrix": self.poisson_ratio_matrix, + "youngs_modulus_fiber": self.youngs_modulus_fiber, + "poisson_ratio_fiber": self.poisson_ratio_fiber, + "mesh_partition": self.mesh_partition, + "hardening_table": self.hardening_table, + "num_steps": self.num_steps, + "simulation_time": self.simulation_time, + "strain": self.strain, + "num_cpu": self.num_cpu, + "platform": self.platform, + } + + def run_simulation( + self, + sample: dict = None, + folder_index: int = None, + sub_folder_index: int = None, + third_folder_index: int = None, + ) -> dict: + """run single simulation + + Parameters + ---------- + sample : dict, optional + a dict contains the information of design variables + folder_index : int, optional + first folder index, by default None + sub_folder_index : int, optional + second folder index, by default None + third_folder_index : int, optional + third folder index, by default None + + Returns + ------- + dict + all the simulation results from abaqus + """ + # number of samples + self._create_working_folder( + folder_index, + sub_folder_index, + third_folder_index, + ) + os.chdir(self.working_folder) + self.logger.info("working folder: {}".format(self.working_folder)) + # create microstructure + self.microstructure = CircleParticles( + length=self.size, + width=self.size, + radius_mu=self.radius_mu, + radius_std=self.radius_std, + vol_req=self.vol_req, + ) + self.microstructure.generate_microstructure(seed=self.seed) + self.microstructure.to_abaqus_format() + self.microstructure.plot_microstructure(save_figure=True, + fig_name="rve_{}.png". + format(self.seed)) + self.vol_frac = self.microstructure.vol_frac + self.logger.info("volume fraction: {}".format(self.vol_frac)) + # update simulation information + self._get_sim_info() + # update the geometry info for microstructure + self._update_sample_info(sample=sample) + # update logger on samples + self.logger.info("============== update info ============") + self.logger.info("sample: {}".format(sample)) + # change folder to main folder + # save microstructure + # update simulation information + self.logger.info("============== Start abaqus simulation ============") + start_time = time.time() + simulator = AbaqusSimulator( + sim_info=self.sim_info, folder_info=self.folder_info + ) + # run abaqus simulation + simulator.run() + # get the simulation results back + results = simulator.read_back_results() + end_time = time.time() + self.logger.info("time used: {} s".format(end_time - start_time)) + self.logger.info("============== End abaqus simulation ============") + + # back to main folder + os.chdir(self.main_folder) + + return results diff --git a/src/rvesimulator/benchmarks/cddm_rve.py b/src/rvesimulator/benchmarks/cddm_rve.py index 4ac3972..c390cd9 100644 --- a/src/rvesimulator/benchmarks/cddm_rve.py +++ b/src/rvesimulator/benchmarks/cddm_rve.py @@ -245,9 +245,16 @@ def run_simulation( sim_info=self.sim_info, folder_info=self.folder_info ) # run abaqus simulation - simulator.run() + try: + simulator.execute() + simulator.post_process(delete_odb=True) + results = simulator.read_back_results() + self.logger.info("simulation finished") + except Exception as e: + self.logger.info("simulation failed") + self.logger.info(e) + results = None # get the simulation results back - results = simulator.read_back_results() end_time = time.time() self.logger.info("time used: {} s".format(end_time - start_time)) self.logger.info("============== End abaqus simulation ============") diff --git a/src/rvesimulator/benchmarks/hollow_plate_sve.py b/src/rvesimulator/benchmarks/hollow_plate_sve.py index f9c40c1..3e9a675 100644 --- a/src/rvesimulator/benchmarks/hollow_plate_sve.py +++ b/src/rvesimulator/benchmarks/hollow_plate_sve.py @@ -28,7 +28,7 @@ # ============================================================================= -class HollowplateBase(SimulationBase): +class HollowPlateBase(SimulationBase): def _get_sim_info(self) -> None: """get simulation info @@ -103,7 +103,7 @@ def run_simulation( return results -class ElasticRegularLoads(HollowplateBase): +class ElasticRegularLoads(HollowPlateBase): def __init__(self) -> None: """Interface between python and abaqus of the Hollow plate case""" logging.basicConfig(level=logging.INFO, @@ -197,7 +197,7 @@ def update_sim_info( # ============================================================================= -class VonMisesPlasticRegularLoads(HollowplateBase): +class VonMisesPlasticRegularLoads(HollowPlateBase): def __init__(self) -> None: """Interface between python and abaqus of the Hollow plate case""" @@ -312,7 +312,7 @@ def update_sim_info( # ============================================================================= -class VonMisesPlasticPathLoads(HollowplateBase): +class VonMisesPlasticPathLoads(HollowPlateBase): """Hollow plate simulation case, with von mises plasticity and path loading Parameters diff --git a/src/rvesimulator/benchmarks/pppe_no_cohesive_rve.py b/src/rvesimulator/benchmarks/pppe_no_cohesive_rve.py new file mode 100644 index 0000000..4becb93 --- /dev/null +++ b/src/rvesimulator/benchmarks/pppe_no_cohesive_rve.py @@ -0,0 +1,254 @@ +# Modules +# ============================================================================= +# Standard +import logging +import os +import time +from typing import Any + +import rvesimulator + +from ..abaqus2py.abaqus_simulator import AbaqusSimulator +from ..microstructure.circle_particles import CircleParticles +from .shared_functionalities import SimulationBase + +# Authorship & Credits +# ============================================================================= +__author__ = "Jiaxiang Yi (J.Yi@tudelft.nl)" +__credits__ = ["Jiaxiang Yi"] +__status__ = "Stable" + +# ============================================================================= + +# ============================================================================= + + +class PPPEMixtureNoCohesive(SimulationBase): + """uni-axial tension for pp/pe Mixture/composite without cohesive elements + in between fiber and matrix material phases""" + + def __init__(self) -> None: + + logging.basicConfig(level=logging.INFO, + filename='rve_simulation.log', filemode='w') + self.logger = logging.getLogger("abaqus_simulation") + self.main_folder = os.getcwd() + self.folder_info = { + "main_work_directory": os.path.join(self.main_folder, "Data"), + "script_path": os.path.dirname(rvesimulator.__file__) + \ + "/scriptbase/", + "current_work_directory": "point_1", + "sim_path": "benchmark_abaqus_scripts.pppe_mixture_no_coh", + "sim_script": "PPPEMixtureNoCohesive", + "post_path": "benchmark_abaqus_scripts.pppe_mixture_no_coh", + "post_script": "PostProcess", + } + self.subroutine_path = self.folder_info["script_path"] + \ + "benchmark_abaqus_scripts/vevp_leonov_model.f" + + def update_sim_info( + self, + size: float = 0.02, + radius_mu: float = 0.0031, + radius_std: float = 0.0, + vol_req: float = 0.30, + paras_pp: list = [ + 748.234, + 0.45, + 296.0, + 0.1, + 1.53e-02, + 6.608e-01, + 7.33e02, + 2.51e08, + 3.30e-26, + 7.42e06, + 2.67e-02, + 4.826e1, + 1.520, + 1.303, + ], + paras_pe: list = [ + 611.6, + 0.45, + 296.0, + 0.1, + 4.40e-01, + 5.1e-03, + 772.1, + 2.29e08, + 9.94e-26, + 5.01e06, + 3.234e-01, + 15.88, + 13.52, + 0.043, + ], + mesh_partition: int = 100, + strain: list = [0.1, 0.0, 0.0], + num_steps: int = 1000, + simulation_time: float = 100.0, + num_cpu: int = 8, + platform: str = "ubuntu", + seed: Any = None, + print_info: bool = False, + ) -> None: + # micro_structure information + self.seed = seed + self.size = size + self.radius_mu = radius_mu + self.radius_std = radius_std + self.vol_req = vol_req + # material properties + self.paras_pp = paras_pp + self.paras_pe = paras_pe + # simulation information + self.mesh_partition = mesh_partition + self.strain = strain + self.num_steps = num_steps + self.simulation_time = simulation_time + # parallel information and platform + self.num_cpu = num_cpu + self.platform = platform + # get the micro_structure information + self.seed = seed + + # update simulation information to logger + self.logger.info("=============== simulation information ============") + self.logger.info("size: {}".format(size)) + self.logger.info("radius_mu: {}".format(radius_mu)) + self.logger.info("radius_std: {}".format(radius_std)) + self.logger.info("vol_req: {}".format(vol_req)) + self.logger.info("paras_pp: {}".format(paras_pp)) + self.logger.info("paras_pe: {}".format(paras_pe)) + self.logger.info("mesh_partition: {}".format(mesh_partition)) + self.logger.info("strain: {}".format(strain)) + self.logger.info("num_steps: {}".format(num_steps)) + self.logger.info("simulation_time: {}".format(simulation_time)) + self.logger.info("num_cpu: {}".format(num_cpu)) + self.logger.info("platform: {}".format(platform)) + + self.sim_paras = { + "size": size, + "radius_mu": radius_mu, + "radius_std": radius_std, + "vol_req": vol_req, + "paras_pp": paras_pp, + "paras_pe": paras_pe, + "mesh_partition": mesh_partition, + "strain": strain, + "num_steps": num_steps, + "simulation_time": simulation_time, + "num_cpu": num_cpu, + "platform": platform, } + + # print simulation information to screen + if print_info: + self._print_sim_info(info=self.sim_paras) + + def _get_sim_info(self) -> None: + """get simulation information""" + self.sim_info = { + "job_name": "veni_nocoh_rve", + "location_information": self.microstructure.microstructure_info[ + "location_information" + ], + "radius_mu": self.microstructure.microstructure_info["radius_mu"], + "radius_std": self.microstructure.microstructure_info[ + "radius_std"], + "len_start": self.microstructure.microstructure_info["len_start"], + "len_end": self.microstructure.microstructure_info["len_end"], + "wid_start": self.microstructure.microstructure_info["wid_start"], + "wid_end": self.microstructure.microstructure_info["wid_end"], + "paras_pp": self.paras_pp, + "paras_pe": self.paras_pe, + "mesh_partition": self.mesh_partition, + "num_steps": self.num_steps, + "simulation_time": self.simulation_time, + "strain": self.strain, + "num_cpu": self.num_cpu, + "platform": self.platform, + "subroutine_path": self.subroutine_path + } + + def run_simulation( + self, + sample: dict = None, + folder_index: int = None, + sub_folder_index: int = None, + third_folder_index: int = None, + ) -> dict: + """run single simulation + + Parameters + ---------- + sample : dict, optional + a dict contains the information of design variables + folder_index : int, optional + first folder index, by default None + sub_folder_index : int, optional + second folder index, by default None + third_folder_index : int, optional + third folder index, by default None + + Returns + ------- + dict + all the simulation results from abaqus + """ + # number of samples + self._create_working_folder( + folder_index, + sub_folder_index, + third_folder_index, + ) + os.chdir(self.working_folder) + self.logger.info("working folder: {}".format(self.working_folder)) + # create microstructure + self.microstructure = CircleParticles( + length=self.size, + width=self.size, + radius_mu=self.radius_mu, + radius_std=self.radius_std, + vol_req=self.vol_req, + ) + self.microstructure.generate_microstructure(seed=self.seed) + self.microstructure.to_abaqus_format() + self.microstructure.plot_microstructure(save_figure=True, + fig_name="rve_{}.png". + format(self.seed)) + self.vol_frac = self.microstructure.vol_frac + self.logger.info("volume fraction: {}".format(self.vol_frac)) + # update simulation information + self._get_sim_info() + # update the geometry info for microstructure + self._update_sample_info(sample=sample) + # change folder to main folder + # save microstructure + # update simulation information + self.logger.info("============== Start abaqus simulation ============") + start_time = time.time() + simulator = AbaqusSimulator( + sim_info=self.sim_info, folder_info=self.folder_info + ) + # run abaqus simulation + try: + simulator.execute() + simulator.post_process(delete_odb=True) + # get the simulation results back + results = simulator.read_back_results() + self.logger.info("simulation finished") + except FileNotFoundError: + # if the results file is not found, then we assume that there is an + # error occurs in the simulation, return None and continue the + # simulation + self.logger.info("simulation failed") + results = None + end_time = time.time() + self.logger.info("time used: {} s".format(end_time - start_time)) + self.logger.info("============== End abaqus simulation ============") + + # back to main folder + os.chdir(self.main_folder) + + return results diff --git a/src/rvesimulator/microstructure/circle_particles.py b/src/rvesimulator/microstructure/circle_particles.py index 9f653b5..9154227 100644 --- a/src/rvesimulator/microstructure/circle_particles.py +++ b/src/rvesimulator/microstructure/circle_particles.py @@ -5,7 +5,7 @@ import logging import math import time -from typing import Any +from typing import Any, Tuple # Third party import numpy as np @@ -285,7 +285,7 @@ def _core_iteration(self) -> None: width=self.width, ) if new_fiber[0, 3] == 4: - self.logger.info("generate fiber, vertex check ...") + # self.logger.info("generate fiber, vertex check ...") # if the temp fiber locates at un-proper location for mesh while self.vertices_mesh_loc(new_fiber) == "fail": fiber_temp = self.generate_random_fibers( @@ -304,9 +304,9 @@ def _core_iteration(self) -> None: length=self.length, width=self.width, ) - self.logger.info("generate fiber, vertex check pass") + # self.logger.info("generate fiber, vertex check pass") elif new_fiber[0, 3] == 2: - self.logger.info("generate fiber, edge check ...") + # self.logger.info("generate fiber, edge check ...") # if the temp fiber locates at un-proper location for mesh while self.proper_edge_mesh_location(new_fiber) == "fail": fiber_temp = self.generate_random_fibers( @@ -325,7 +325,7 @@ def _core_iteration(self) -> None: length=self.length, width=self.width, ) - self.logger.info("generate fiber, edge check pass") + # self.logger.info("generate fiber, edge check pass") # check the overlap of new fiber overlap_status = self.overlap_check( new_fiber=new_fiber, @@ -380,7 +380,7 @@ def _core_iteration(self) -> None: # max stirring iteration stirring_iter = 0 if new_fiber[0, 3] == 4: - self.logger.info("stirring fiber,vertex check ...") + # self.logger.info("stirring fiber,vertex check ...") while ( self.vertices_mesh_loc(new_fiber) == "fail" and stirring_iter < self.stirring_iters @@ -408,10 +408,10 @@ def _core_iteration(self) -> None: if stirring_iter == self.stirring_iters: self.logger.error( "stirring vertex check failed") - else: - self.logger.info("stirring vertex check pass") + # else: + # self.logger.info("stirring vertex check pass") elif new_fiber[0, 3] == 2: - self.logger.info("stirring fiber, edge check ...") + # self.logger.info("stirring fiber, edge check ...") # check proper location for mesh while self.proper_edge_mesh_location( new_fiber @@ -438,8 +438,8 @@ def _core_iteration(self) -> None: stirring_iter += 1 if stirring_iter == self.stirring_iters: self.logger.error("stirring edge check failed") - else: - self.logger.info("stirring edge check pass") + # else: + # self.logger.info("stirring edge check pass") overlap_status = self.overlap_check( new_fiber=new_fiber, fiber_pos=self.fiber_positions.copy(), @@ -887,7 +887,7 @@ def min_dis_index( fiber_min_dis_vector: np.ndarray, ii: int, cycle: int, - ) -> list[np.ndarray, int, float]: + ) -> Tuple[np.ndarray, int, float]: """This function is used to identify the index of closest fiber of every fiber, which is very import for the first heuristic stirring to get more space placing the new disks. @@ -1076,7 +1076,7 @@ def generate_random_fibers( y = rng.uniform(wid_start, wid_end, 1) r = rng.normal(radius_mu, radius_std, 1) # the radius is too small for mesh - while r <= 0.02*(len_end - len_start - 2*radius_mu): + while r <= 0.01*(len_end - len_start - 2*radius_mu): r = rng.normal(radius_mu, radius_std, 1) fiber = np.array([x, y, r]) return fiber diff --git a/src/rvesimulator/microstructure/shpere_particles.py b/src/rvesimulator/microstructure/shpere_particles.py index 38ec899..4d2ca2e 100644 --- a/src/rvesimulator/microstructure/shpere_particles.py +++ b/src/rvesimulator/microstructure/shpere_particles.py @@ -4,7 +4,7 @@ import json import math import time -from typing import Any +from typing import Any, Tuple # third-party import numpy as np @@ -1944,7 +1944,7 @@ def min_dis_index( fiber_min_dis_vector: np.ndarray, ii: int, cycle: int, - ) -> list[np.ndarray, int, float]: + ) -> Tuple[np.ndarray, int, float]: """This function is used to identify the index of closest fiber of every fiber, which is very import for the first heuristic stirring to get more space placing the new disks. diff --git a/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/__init__.py b/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/__init__.py index ed72ffd..334c475 100644 --- a/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/__init__.py +++ b/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/__init__.py @@ -1,7 +1,8 @@ -from hollow_plate_sve import (ElasticRegularLoads, VonMisesPlasticPathLoads, - VonMisesPlasticRegularLoads) -from single_material_sve import (ElasticRegularLoads, VonMisesPlasticPathLoads, - VonMisesPlasticRegularLoads) -from two_materials_sve import (VonMisesPlasticElasticPathLoads, - VonMisesPlasticElasticRegularLoads) -from veni_nocohesive_rve import VeniNoCohRVE +from .hollow_plate_sve import (ElasticRegularLoads, VonMisesPlasticPathLoads, + VonMisesPlasticRegularLoads) +from .pppe_mixture_no_coh import PPPEMixtureNoCohesive +from .single_material_sve import (ElasticRegularLoads, + VonMisesPlasticPathLoads, + VonMisesPlasticRegularLoads) +from .two_materials_sve import (VonMisesPlasticElasticPathLoads, + VonMisesPlasticElasticRegularLoads) diff --git a/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/pppe_mixture_no_coh.py b/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/pppe_mixture_no_coh.py new file mode 100644 index 0000000..0791e5b --- /dev/null +++ b/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/pppe_mixture_no_coh.py @@ -0,0 +1,805 @@ + +# -*- coding: mbcs -*- +import assembly +import mesh +import numpy +import regionToolset +from math import ceil +from abaqus import * +from abaqusConstants import * +from caeModules import * +# import packages for abaqus post-processing +from odbAccess import * + +try: + import cPickle as pickle # Improve speed +except ValueError: + import pickle + +class PPPEMixtureNoCohesive(object): + """ PP and PE 2D SVE without cohesive elements""" + + def __init__(self, sim_info={"location_information": None, + "radius_mu": None, + "radius_std": None, + "len_start": None, + "len_end":None, + "wid_start":None, + "wid_end": None, + "job_name": "veni_nocoh_rve", + "strain": [0.10,0.0,0.0], + "paras_pp": None, + "paras_pp": None, + "mesh_partition": None, + "simulation_time": 100.0, + "num_steps": None, + "platform": "ubuntu", + "num_cpu":1, + "subroutine_path":None}): + # ------------------------------ parameters ------------------------- # + # names of model, part, instance + self.model_name = "veni_sve" + self.part_name = "Final_Stuff" + self.instance_name = "Final_Stuff" + self.job_name = str(sim_info["job_name"]) + self.platform = sim_info["platform"] + self.num_cpu = sim_info["num_cpu"] + + # information of geometry of RVE + self.loc_info = sim_info + # mech and sets information + self.circles_information = sim_info["location_information"] + self.length = ( + sim_info["len_end"] - sim_info["len_start"] + ) - 2 * sim_info["radius_mu"] + self.width = ( + sim_info["wid_end"] - sim_info["wid_start"] + ) - 2 * sim_info["radius_mu"] + self.center = [ + (sim_info["len_end"] + sim_info["len_start"]) / 2.0, + (sim_info["wid_end"] + sim_info["wid_start"]) / 2.0, + ] + self.radius_mu = sim_info["radius_mu"] + self.radius_std = sim_info["radius_std"] + + # information of RVE modeling + self.strain = sim_info["strain"] + self.mesh_size = ( + min(self.length, self.width) / sim_info["mesh_partition"] + ) + self.time_period = sim_info["simulation_time"] + self.time_interval = ( + sim_info["simulation_time"] / sim_info["num_steps"] + ) + + # material properties + self.paras_pp = sim_info["paras_pp"] + self.paras_pe = sim_info["paras_pe"] + self.subroutine_path = str(sim_info["subroutine_path"]) + + # submit + self.create_simulation_job() + self.create_job() + self.submit_job() + # post process + if sim_info["platform"] == "cluster": + PostProcess(job_name=self.job_name) + + def create_simulation_job(self): + + # get delta + delta = min(min(self.length, self.width) / 1000, self.mesh_size / 10) + + # get model information + instance_name = self.instance_name + model_name = self.model_name + + # create model--------------------------------------------------------- + mdb.models.changeKey(fromName='Model-1', toName=model_name) + model = mdb.models[model_name] + # delete existed model + if 'Model-1' in mdb.models.keys(): + del mdb.models['Model-1'] + + # create sketch-------------------------------------------------------- + # model the matrix part first + sketch = model.ConstrainedSketch(name='__profile__', sheetSize=200.0) + sketch.rectangle(point1=(0.0, 0.0), point2=(self.length, self.width)) + part = model.Part(name='Final_Stuff', + dimensionality=TWO_D_PLANAR, type=DEFORMABLE_BODY) + part.BaseShell(sketch=sketch) + del sketch + + # partition of square + faces = part.faces + t = part.MakeSketchTransform( + sketchPlane=faces[0], sketchPlaneSide=SIDE1, origin=(0.0, 0.0, 0.0)) + # origin if used for shifting the coordinates + sketch = model.ConstrainedSketch( + name='__profile__', sheetSize=2.82, gridSpacing=0.07, transform=t) + sketch.setPrimaryObject(option=SUPERIMPOSE) + part.projectReferencesOntoSketch(sketch=sketch, filter=COPLANAR_EDGES) + + # create the fibers + for ii in range(len(self.circles_information)): + # actual fibers + sketch.CircleByCenterPerimeter( + center=(self.circles_information[ii][0], self.circles_information[ii][1]), + point1=(self.circles_information[ii][0] + + self.circles_information[ii][2], self.circles_information[ii][1]), + ) + part.PartitionFaceBySketch(faces=faces[:], sketch=sketch) + del sketch + + # create sets---------------------------------------------------------- + # get faces + faces = part.faces[:] + + # for all faces + part.Set(faces=faces, name="all_faces") + + # fiber faces + fiberface = part.faces.getByBoundingCylinder( + (self.circles_information[0][0], self.circles_information[0][1], 0.0), + (self.circles_information[0][0], self.circles_information[0][1], 1.0), + self.circles_information[0][2] + 0.001 * self.circles_information[0][2], + ) + part.Set(faces=fiberface, name="fiberface") + for ii in range(1, len(self.circles_information)): + fiberface_1 = part.faces.getByBoundingCylinder( + (self.circles_information[ii][0], self.circles_information[ii][1], 0.0), + (self.circles_information[ii][0], self.circles_information[ii][1], 1.0), + self.circles_information[ii][2] + 0.001 * self.circles_information[ii][2], + ) + part.Set(faces=fiberface_1, name="fiberface_1") + part.SetByBoolean( + name="fiberface", + sets=(part.sets["fiberface_1"], part.sets["fiberface"]), + operation=UNION, + ) + # delete fiber face 1 + del part.sets["fiberface_1"] + + # create set for matrix + part.SetByBoolean( + name="matrixface", + sets=(part.sets["all_faces"], part.sets["fiberface"]), + operation=DIFFERENCE, + ) + + # create sets for edges + s = part.edges + edgesLEFT = s.getByBoundingBox( + self.center[0] - self.length / 2 - delta, + self.center[1] - self.width / 2 - delta, + 0, + self.center[0] - self.length / 2 + delta, + self.center[1] + self.width / 2 + delta, + 0, + ) + part.Set(edges=edgesLEFT, name="edgesLEFT") + edgesRIGHT = s.getByBoundingBox( + self.center[0] + self.length / 2 - delta, + self.center[1] - self.width / 2 - delta, + 0, + self.center[0] + self.length / 2 + delta, + self.center[1] + self.width / 2 + delta, + 0, + ) + part.Set(edges=edgesRIGHT, name="edgesRIGHT") + edgesTOP = s.getByBoundingBox( + self.center[0] - self.length / 2 - delta, + self.center[1] + self.width / 2 - delta, + 0, + self.center[0] + self.width / 2 + delta, + self.center[1] + self.width / 2 + delta, + 0, + ) + part.Set(edges=edgesTOP, name="edgesTOP") + edgesBOT = s.getByBoundingBox( + self.center[0] - self.length / 2 - delta, + self.center[1] - self.width / 2 - delta, + 0, + self.center[0] + self.length / 2 + delta, + self.center[1] - self.width / 2 + delta, + 0, + ) + part.Set(edges=edgesBOT, name="edgesBOT") + name_edges = ["edgesLEFT", "edgesRIGHT", "edgesTOP", "edgesBOT"] + + # create set for vertices + v = part.vertices + vertexLB = v.getByBoundingBox( + self.center[0] - self.length / 2 - delta, + self.center[1] - self.width / 2 - delta, + 0, + self.center[0] - self.length / 2 + delta, + self.center[1] - self.width / 2 + delta, + 0, + ) + part.Set(vertices=vertexLB, name="VertexLB") + vertexRB = v.getByBoundingBox( + self.center[0] + self.length / 2 - delta, + self.center[1] - self.width / 2 - delta, + 0, + self.center[0] + self.length / 2 + delta, + self.center[1] - self.width / 2 + delta, + 0, + ) + part.Set(vertices=vertexRB, name="VertexRB") + vertexRT = v.getByBoundingBox( + self.center[0] + self.length / 2 - delta, + self.center[1] + self.width / 2 - delta, + 0, + self.center[0] + self.length / 2 + delta, + self.center[1] + self.width / 2 + delta, + 0, + ) + part.Set(vertices=vertexRT, name="VertexRT") + vertexLT = v.getByBoundingBox( + self.center[0] - self.length / 2 - delta, + self.center[1] + self.width / 2 - delta, + 0, + self.center[0] - self.length / 2 + delta, + self.center[1] + self.width / 2 + delta, + 0, + ) + part.Set(vertices=vertexLT, name="VertexLT") + vertices_name = ["VertexLB", "VertexLT", "VertexRB", "VertexRT"] + + # meshing --------------------------------------------------------------------- + part.seedPart(deviationFactor=0.05, minSizeFactor=0.05,size=self.mesh_size) + # element type (plane strain element) + elemType1 = mesh.ElemType(elemCode=CPE4R, elemLibrary=STANDARD, + secondOrderAccuracy=OFF, hourglassControl=ENHANCED, + distortionControl=DEFAULT) + elemType2 = mesh.ElemType(elemCode=CPE3, elemLibrary=STANDARD) + part.setElementType( + regions=part.sets["fiberface"], elemTypes=(elemType1, elemType2)) + part.setElementType( + regions=part.sets["matrixface"], elemTypes=(elemType1, elemType2)) + + part.generateMesh() + + # material properties --------------------------------------------------------- + # material property for top part + material_fiber = model.Material(name="material_fiber") + material_fiber.Depvar(n=44) + material_fiber.Density(table=((7.9e-9, ), )) + material_fiber.UserMaterial( + mechanicalConstants=( + self.paras_pp[0], + self.paras_pp[1], + self.paras_pp[2], + self.paras_pp[3], + self.paras_pp[4], + self.paras_pp[5], + self.paras_pp[6], + self.paras_pp[7], + self.paras_pp[8], + self.paras_pp[9], + self.paras_pp[10], + self.paras_pp[11], + self.paras_pp[12], + self.paras_pp[13], + ) + ) + material_matrix = model.Material(name="material_matrix") + material_matrix.Depvar(n=44) + material_matrix.Density(table=((7.9e-9, ), )) + material_matrix.UserMaterial( + mechanicalConstants=( + self.paras_pe[0], + self.paras_pe[1], + self.paras_pe[2], + self.paras_pe[3], + self.paras_pe[4], + self.paras_pe[5], + self.paras_pe[6], + self.paras_pe[7], + self.paras_pe[8], + self.paras_pe[9], + self.paras_pe[10], + self.paras_pe[11], + self.paras_pe[12], + self.paras_pe[13], + ) + ) + # create section and assign material property to corresponding section + # matrix material + model.HomogeneousSolidSection( + name='matrix', material='material_matrix', thickness=None) + part.SectionAssignment(region=part.sets['matrixface'], sectionName='matrix', offset=0.0, + offsetType=MIDDLE_SURFACE, offsetField='', thicknessAssignment=FROM_SECTION) + + + # fiber material + model.HomogeneousSolidSection( + name='fiber', material='material_fiber', thickness=None) + part.SectionAssignment(region=part.sets['fiberface'], sectionName='fiber', offset=0.0, + offsetType=MIDDLE_SURFACE, offsetField='', + thicknessAssignment=FROM_SECTION) + + sim_assembly = model.rootAssembly + sim_instance = sim_assembly.Instance( + dependent=ON, name=instance_name, part=part) + + + # pbcs----------------------------------------------------------------- + # right reference point + right_reference_point_id = sim_assembly.ReferencePoint(point=(self.length * 1.5, self.center[1], 0.0)).id + # top reference point + top_reference_point_id = sim_assembly.ReferencePoint(point=(self.center[0], self.width * 1.5, 0.0)).id + # reference points + + reference_points = sim_assembly.referencePoints + # create sets for reference points + sim_assembly.Set( + name="Ref-R", + referencePoints=((reference_points[right_reference_point_id],)), + ) + sim_assembly.Set( + name="Ref-T", + referencePoints=((reference_points[top_reference_point_id],)), + ) + + # pbc for vertices ------------------------------------------------------------ + # regenerate assembly + session.viewports["Viewport: 1"].setValues( displayedObject=sim_assembly) + sim_assembly.regenerate() + + # + set_name_for_vertices =["NodeLB", "NodeLT", "NodeRB", "NodeRT"] + for ii in range(len(vertices_name)): + vertex_node = part.sets[vertices_name[ii]].nodes + # create the assembly node set for vertex + sim_assembly.SetFromNodeLabels( + name=set_name_for_vertices[ii], + nodeLabels=((instance_name, (vertex_node[0].label,)),), + unsorted=True, + ) + + # apply the pbc to vertexes + model.Equation( + name="LB_RT_1", + terms=( + (1, "NodeRT", 1), + (-1, "NodeLB", 1), + (-1 * self.length, "Ref-R", 1), + (-1 * self.width, "Ref-T", 1), + ), + ) + model.Equation( + name="LB_RT_2", + terms=( + (1, "NodeRT", 2), + (-1, "NodeLB", 2), + (-1 * self.length, "Ref-R", 2), + (-1 * self.width, "Ref-T", 2), + ), + ) + model.Equation( + name="LT_RB_1", + terms=( + (1, "NodeRB", 1), + (-1, "NodeLT", 1), + (-1 * self.length, "Ref-R", 1), + (1 * self.width, "Ref-T", 1), + ), + ) + model.Equation( + name="LT_RB_2", + terms=( + (1, "NodeRB", 2), + (-1, "NodeLT", 2), + (-1 * self.length, "Ref-R", 2), + (1 * self.width, "Ref-T", 2), + ), + ) + + # pbcs for edges + # part 1: equations for edges 2 (edgesFRONT_RIGHT) and 4 (edgesBACK_LEFT) + edgesRIGHT_nodes = part.sets["edgesRIGHT"].nodes + edgesRIGHT_nodes_sorted = sorted(edgesRIGHT_nodes, key=get_node_y) + edgesLEFT_nodes = part.sets["edgesLEFT"].nodes + edgesLEFT_nodes_sorted = sorted(edgesLEFT_nodes, key=get_node_y) + if len(edgesRIGHT_nodes_sorted) == len(edgesLEFT_nodes_sorted): + for ii in range(1, len(edgesRIGHT_nodes_sorted) - 1): + sim_assembly.SetFromNodeLabels( + name="LEFT_" + str(ii), + nodeLabels=( + ( + instance_name, + tuple([edgesLEFT_nodes_sorted[ii].label]), + ), + ), + unsorted=True, + ) + sim_assembly.SetFromNodeLabels( + name="RIGHT_" + str(ii), + nodeLabels=( + ( + instance_name, + tuple([edgesRIGHT_nodes_sorted[ii].label]), + ), + ), + unsorted=True, + ) + for jj in range(1, 3): + model.Equation( + name="LEFT_RIGHT_" + str(ii) + "_" + str(jj), + terms=( + (1, "RIGHT_" + str(ii), jj), + (-1, "LEFT_" + str(ii), jj), + (-1 * self.length, "Ref-R", jj), + ), + ) + else: + print "the number of nodes between the two sides are not the same" + + # part II: + edgesTOP_nodes = part.sets["edgesTOP"].nodes + edgesTOP_nodes_sorted = sorted(edgesTOP_nodes, key=get_node_x) + edgesBOT_nodes = part.sets["edgesBOT"].nodes + edgesBOT_nodes_sorted = sorted(edgesBOT_nodes, key=get_node_x) + if len(edgesTOP_nodes_sorted) == len(edgesBOT_nodes_sorted): + for ii in range(1, len(edgesTOP_nodes_sorted) - 1): + sim_assembly.SetFromNodeLabels( + name="TOP_" + str(ii), + nodeLabels=( + ( + instance_name, + tuple([edgesTOP_nodes_sorted[ii].label]), + ), + ), + unsorted=True, + ) + sim_assembly.SetFromNodeLabels( + name="BOT_" + str(ii), + nodeLabels=( + ( + instance_name, + tuple([edgesBOT_nodes_sorted[ii].label]), + ), + ), + unsorted=True, + ) + for jj in range(1, 3): + model.Equation( + name="TOP_BOT_" + str(ii) + "_" + str(jj), + terms=( + (1, "TOP_" + str(ii), jj), + (-1, "BOT_" + str(ii), jj), + (-1 * self.width, "Ref-T", jj), + ), + ) + else: + print "the number of nodes between the two sides are not the same" + + + # steps (static-step, implicit solver) + model.StaticStep(name="Step-1", previous="Initial") + step = model.StaticStep( + initialInc=0.01, + maxInc=1.0, + maxNumInc=100000, + minInc=1e-20, + name="Step-1", + previous="Initial", + timePeriod=self.time_period, + ) + model.fieldOutputRequests["F-Output-1"].setValues( + variables=( + "S", + "E", + "LE", + "ENER", + "ELEN", + "ELEDEN", + "EVOL", + "IVOL", + 'SDV' + ), + timeInterval=self.time_interval, + ) + model.FieldOutputRequest( + name="F-Output-2", + createStepName="Step-1", + variables=("U", "RF"), + timeInterval=self.time_interval, + ) + model.historyOutputRequests["H-Output-1"].setValues( + variables=( + "ALLAE", + "ALLCD", + "ALLIE", + "ALLKE", + "ALLPD", + "ALLSE", + "ALLWK", + "ETOTAL", + ), + timeInterval=self.time_interval, + ) + + # loadings -------------------------------------------------------------------- + model.DisplacementBC( + name="E_11", + createStepName="Step-1", + region=sim_assembly.sets["Ref-R"], + u1=self.strain[0], + u2=UNSET, + ur3=UNSET, + amplitude=UNSET, + fixed=OFF, + distributionType=UNIFORM, + fieldName="", + localCsys=None, + ) + # fix the rigid movement + model.DisplacementBC( + amplitude=UNSET, + createStepName="Step-1", + distributionType=UNIFORM, + fieldName="", + fixed=OFF, + localCsys=None, + name="rigid_x_1", + region=sim_assembly.instances[instance_name].sets["VertexLB"], + u1=0.0, + u2=UNSET, + ur3=UNSET, + ) + + model.DisplacementBC( + amplitude=UNSET, + createStepName="Step-1", + distributionType=UNIFORM, + fieldName="", + fixed=OFF, + localCsys=None, + name="rigid_x_2", + region=sim_assembly.instances[instance_name].sets["VertexLT"], + u1=0.0, + u2=0.0, + ur3=UNSET, + ) + + def create_job(self): + # run the job + self.job = mdb.Job(name=self.job_name, model=self.model_name, description='', type=ANALYSIS, + atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90, + memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True, + explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF, + modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, userSubroutine=self.subroutine_path, + scratch='', resultsFormat=ODB, multiprocessingMode=DEFAULT, numCpus=self.num_cpu, + numDomains=self.num_cpu, numGPUs=0) + + def data_check(self): + """check if there is error in the model + """ + self.job.submit(consistencyChecking=OFF, datacheckJob=True) + self.job.waitForCompletion() + + def submit_job(self): + # submit the job + self.job.submit(consistencyChecking=OFF) + self.job.waitForCompletion() + + +class PostProcess: + + def __init__(self, job_name): + # job name + self.job_name = str(job_name) + # record time step (fir saving memory) + self.record_time_step = 1 + # post process + if job_name == "error": + results = { + "mesh": "error" + } + # Save the results to a pickle file + with open("results.p", "wb") as fp: + pickle.dump(results, fp) + else: + self.post_process() + + def post_process(self): + # Define name of this .odb file + odbfile = self.job_name + ".odb" + # Open the output database + rve_odb = openOdb(path=odbfile) + # get element sets + entire_element_set = rve_odb.rootAssembly.elementSets[" ALL ELEMENTS"] + fiber_element_set = rve_odb.rootAssembly.instances["FINAL_STUFF"].elementSets['FIBERFACE'] + matrix_element_set = rve_odb.rootAssembly.instances["FINAL_STUFF"].elementSets["MATRIXFACE"] + + ref1_node_set = rve_odb.rootAssembly.nodeSets["REF-R"] + ref2_node_set = rve_odb.rootAssembly.nodeSets["REF-T"] + + # get total steps, usually only one step + my_steps = rve_odb.steps + + # get total frames + total_frames = 0 + for ii in range(len(my_steps)): + total_frames = total_frames + \ + len(my_steps[my_steps.keys()[ii]].frames) + + # get the variables that do not change with time steps + rve_frame = rve_odb.steps[my_steps.keys()[0]].frames[0] + + # Extract volume at integration point in ENTIRE RVE: + ivol_field = rve_frame.fieldOutputs["IVOL"] + + # get element volume for fiber + self.ivol_fibers = self.get_ivol(ivol_field, fiber_element_set) + # get the filed output for matrix + self.ivol_matrix = self.get_ivol(ivol_field, matrix_element_set) + + # define required variables + self.deformation_gradient = numpy.zeros((total_frames, 2, 2)) + self.strain = numpy.zeros((total_frames, 2, 2)) + self.stress = numpy.zeros((total_frames, 2, 2)) + self.total_time = numpy.zeros(len(my_steps)) + + # define other variables + self.U_ref1 = self.define_arrays( + "U", rve_frame, ref1_node_set, total_frames) + self.U_ref2 = self.define_arrays( + "U", rve_frame, ref2_node_set, total_frames) + self.RF_ref1 = self.define_arrays( + "RF", rve_frame, ref1_node_set, total_frames) + self.RF_ref2 = self.define_arrays( + "RF", rve_frame, ref2_node_set, total_frames) + self.plastic_strain = self.define_arrays( + "SDV17", rve_frame, matrix_element_set, total_frames) + + # loop over all steps + for ii in range(len(my_steps)): + step = my_steps[my_steps.keys()[ii]] + self.total_time[ii] = step.timePeriod + # loop over all frames + step_frames = step.frames # improve speed + for jj in range(len(step_frames)): + frame = step_frames[jj] + # get displacement for reference points + # loop over elements + u_field_ref1 = frame.fieldOutputs["U"].getSubset( + region=ref1_node_set, position=NODAL) + u_field_ref2 = frame.fieldOutputs["U"].getSubset( + region=ref2_node_set, position=NODAL) + if isinstance(u_field_ref1.values[0].data, float): + # variable is a scalar + + self.U_ref1[ii * len(step_frames) + + jj] = u_field_ref1.values[0].data + self.U_ref2[ii * len(step_frames) + + jj] = u_field_ref2.values[0].data + else: + + # variable is an array + self.U_ref1[ii * len(step_frames) + + jj][:] = u_field_ref1.values[0].data[:] + self.U_ref2[ii * len(step_frames) + + jj][:] = u_field_ref2.values[0].data[:] + + # get reaction force for reference points + rf_field_ref1 = frame.fieldOutputs["RF"].getSubset( + region=ref1_node_set, position=NODAL) + rf_field_ref2 = frame.fieldOutputs["RF"].getSubset( + region=ref2_node_set, position=NODAL) + if isinstance(rf_field_ref1.values[0].data, float): + # variable is a scalar + self.RF_ref1[ii * len(step_frames) + + jj] = rf_field_ref1.values[0].data + self.RF_ref2[ii * len(step_frames) + + jj] = rf_field_ref2.values[0].data + else: + + # variable is an array + self.RF_ref1[ii * len(step_frames) + + jj][:] = rf_field_ref1.values[0].data[:] + self.RF_ref2[ii * len(step_frames) + + jj][:] = rf_field_ref2.values[0].data[:] + # get plastic strain for matrix + + # save the results every 10 frames to save memory + if jj % self.record_time_step == 0: + + plastic_strain_field = frame.fieldOutputs["SDV17"].getSubset( + region=matrix_element_set, position=INTEGRATION_POINT) + for kk in range(0, len(plastic_strain_field.values)): + self.plastic_strain[ii * len(step_frames) + + jj / self.record_time_step][kk] = plastic_strain_field.values[kk].data + # get deformation gradient + for i in range(0, 2): + # get deformation gradient + self.deformation_gradient[ii * len(step_frames) + jj][0][i] \ + = self.U_ref1[ii * len(step_frames) + + jj][i] + numpy.identity(2)[0][i] + self.deformation_gradient[ii * len(step_frames) + jj][1][i] \ + = self.U_ref2[ii * len(step_frames) + + jj][i] + numpy.identity(2)[1][i] + # get strain + self.strain[ii * len(step_frames) + jj][0][i] \ + = self.U_ref1[ii * len(step_frames) + jj][i] + self.strain[ii * len(step_frames) + jj][1][i] \ + = self.U_ref2[ii * len(step_frames) + jj][i] + + # get stress + self.stress[ii * len(step_frames) + jj][0][i] \ + = self.RF_ref1[ii * len(step_frames) + jj][i] / \ + (self.ivol_matrix.sum() + self.ivol_fibers.sum()) + self.stress[ii * len(step_frames) + jj][1][i] = \ + self.RF_ref2[ii * len(step_frames) + jj][i] / \ + (self.ivol_matrix.sum() + self.ivol_fibers.sum()) + + self.save_results() + + def get_ivol(self, field, element_set): + + # get the subfile + ivolSubField = field.getSubset( + region=element_set, position=INTEGRATION_POINT + ) + # preallocate array for fibers + ivol = numpy.zeros((len(ivolSubField.values))) + # get the ivol + for i in range(0, len(ivolSubField.values)): + # Volume for i-th integration point + ivol[i] = ivolSubField.values[i].data + + return ivol + + def define_arrays(self, field_name, frame, element_set, total_frames): + # get the filed output + field = frame.fieldOutputs[field_name] + # preallocate array element set + if field_name == "U" or field_name == "RF": + + # get filed output for selected element set + sub_field = field.getSubset(region=element_set, + position=NODAL) + if isinstance(sub_field.values[0].data, float): + # variable is a scalar + array_temp = numpy.zeros((total_frames)) + else: + # variable is an array + array_temp = numpy.zeros((total_frames, + len(sub_field.values[0].data))) + elif field_name == "SDV17": + # only save the results every 10 frames to save memory + recorded_frames = int( + ceil(total_frames / float(self.record_time_step))) + sub_field = field.getSubset(region=element_set, + position=INTEGRATION_POINT) + array_temp = numpy.zeros((recorded_frames, len(sub_field.values))) + + return array_temp + + def save_results(self): + + # Save all variables to a single structured variable with all the data + results = { + "total_time": self.total_time, + "stress": self.stress, + "deformation_gradient": self.deformation_gradient, + "strain": self.strain, + "fiber_volume": self.ivol_fibers, + "matrix_volume": self.ivol_matrix, + "plastic_strain": self.plastic_strain, + } + # Save the results to a pickle file + with open("results.p", "wb") as fp: + pickle.dump(results, fp) + + +# get node coordinates +def get_node_y(node): + return node.coordinates[1] + +# get node coordinates +def get_node_x(node): + return node.coordinates[0] diff --git a/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/two_materials_rve.py b/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/two_materials_rve.py index db2d5b7..77ad131 100644 --- a/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/two_materials_rve.py +++ b/src/rvesimulator/scriptbase/benchmark_abaqus_scripts/two_materials_rve.py @@ -1,12 +1,13 @@ # abaqus modulus +# system and standard python packages +import sys + +import numpy from abaqus import * from abaqusConstants import * from caeModules import * from odbAccess import * -# system and standard python packages -import sys -import numpy try: import cPickle as pickle @@ -15,10 +16,10 @@ # import local functions from basic_analysis_scripts.common_procedure import CommonProcedure -from basic_analysis_scripts.geometry_modeling import MultiCirclesInclusion +from basic_analysis_scripts.geometry_modeling import MultiCirclesInclusion from basic_analysis_scripts.jobs import Jobs -from basic_analysis_scripts.loading_condition import \ - NormalDisplacementLoading, HistoryDependentDisplacement2D +from basic_analysis_scripts.loading_condition import ( + HistoryDependentDisplacement2D, NormalDisplacementLoading) from basic_analysis_scripts.materials import MaterialLib from basic_analysis_scripts.mesh import Mesh2D from basic_analysis_scripts.periodical_boundary_condition import \ @@ -27,7 +28,6 @@ from basic_analysis_scripts.steps import LargeDeformationSteps - # ============================================================================= class TwoMaterialsRVEBase(CommonProcedure, MaterialLib, diff --git a/studies/cddm_data_generation/design_of_experiments.csv b/studies/cddm_data_generation/design_of_experiments.csv new file mode 100644 index 0000000..efde513 --- /dev/null +++ b/studies/cddm_data_generation/design_of_experiments.csv @@ -0,0 +1,4001 @@ +,task_ID,seed +0,task_A,1 +1,task_A,2 +2,task_A,3 +3,task_A,4 +4,task_A,5 +5,task_A,6 +6,task_A,7 +7,task_A,8 +8,task_A,9 +9,task_A,10 +10,task_A,11 +11,task_A,12 +12,task_A,13 +13,task_A,14 +14,task_A,15 +15,task_A,16 +16,task_A,17 +17,task_A,18 +18,task_A,19 +19,task_A,20 +20,task_A,21 +21,task_A,22 +22,task_A,23 +23,task_A,24 +24,task_A,25 +25,task_A,26 +26,task_A,27 +27,task_A,28 +28,task_A,29 +29,task_A,30 +30,task_A,31 +31,task_A,32 +32,task_A,33 +33,task_A,34 +34,task_A,35 +35,task_A,36 +36,task_A,37 +37,task_A,38 +38,task_A,39 +39,task_A,40 +40,task_A,41 +41,task_A,42 +42,task_A,43 +43,task_A,44 +44,task_A,45 +45,task_A,46 +46,task_A,47 +47,task_A,48 +48,task_A,49 +49,task_A,50 +50,task_A,51 +51,task_A,52 +52,task_A,53 +53,task_A,54 +54,task_A,55 +55,task_A,56 +56,task_A,57 +57,task_A,58 +58,task_A,59 +59,task_A,60 +60,task_A,61 +61,task_A,62 +62,task_A,63 +63,task_A,64 +64,task_A,65 +65,task_A,66 +66,task_A,67 +67,task_A,68 +68,task_A,69 +69,task_A,70 +70,task_A,71 +71,task_A,72 +72,task_A,73 +73,task_A,74 +74,task_A,75 +75,task_A,76 +76,task_A,77 +77,task_A,78 +78,task_A,79 +79,task_A,80 +80,task_A,81 +81,task_A,82 +82,task_A,83 +83,task_A,84 +84,task_A,85 +85,task_A,86 +86,task_A,87 +87,task_A,88 +88,task_A,89 +89,task_A,90 +90,task_A,91 +91,task_A,92 +92,task_A,93 +93,task_A,94 +94,task_A,95 +95,task_A,96 +96,task_A,97 +97,task_A,98 +98,task_A,99 +99,task_A,100 +100,task_A,101 +101,task_A,102 +102,task_A,103 +103,task_A,104 +104,task_A,105 +105,task_A,106 +106,task_A,107 +107,task_A,108 +108,task_A,109 +109,task_A,110 +110,task_A,111 +111,task_A,112 +112,task_A,113 +113,task_A,114 +114,task_A,115 +115,task_A,116 +116,task_A,117 +117,task_A,118 +118,task_A,119 +119,task_A,120 +120,task_A,121 +121,task_A,122 +122,task_A,123 +123,task_A,124 +124,task_A,125 +125,task_A,126 +126,task_A,127 +127,task_A,128 +128,task_A,129 +129,task_A,130 +130,task_A,131 +131,task_A,132 +132,task_A,133 +133,task_A,134 +134,task_A,135 +135,task_A,136 +136,task_A,137 +137,task_A,138 +138,task_A,139 +139,task_A,140 +140,task_A,141 +141,task_A,142 +142,task_A,143 +143,task_A,144 +144,task_A,145 +145,task_A,146 +146,task_A,147 +147,task_A,148 +148,task_A,149 +149,task_A,150 +150,task_A,151 +151,task_A,152 +152,task_A,153 +153,task_A,154 +154,task_A,155 +155,task_A,156 +156,task_A,157 +157,task_A,158 +158,task_A,159 +159,task_A,160 +160,task_A,161 +161,task_A,162 +162,task_A,163 +163,task_A,164 +164,task_A,165 +165,task_A,166 +166,task_A,167 +167,task_A,168 +168,task_A,169 +169,task_A,170 +170,task_A,171 +171,task_A,172 +172,task_A,173 +173,task_A,174 +174,task_A,175 +175,task_A,176 +176,task_A,177 +177,task_A,178 +178,task_A,179 +179,task_A,180 +180,task_A,181 +181,task_A,182 +182,task_A,183 +183,task_A,184 +184,task_A,185 +185,task_A,186 +186,task_A,187 +187,task_A,188 +188,task_A,189 +189,task_A,190 +190,task_A,191 +191,task_A,192 +192,task_A,193 +193,task_A,194 +194,task_A,195 +195,task_A,196 +196,task_A,197 +197,task_A,198 +198,task_A,199 +199,task_A,200 +200,task_A,201 +201,task_A,202 +202,task_A,203 +203,task_A,204 +204,task_A,205 +205,task_A,206 +206,task_A,207 +207,task_A,208 +208,task_A,209 +209,task_A,210 +210,task_A,211 +211,task_A,212 +212,task_A,213 +213,task_A,214 +214,task_A,215 +215,task_A,216 +216,task_A,217 +217,task_A,218 +218,task_A,219 +219,task_A,220 +220,task_A,221 +221,task_A,222 +222,task_A,223 +223,task_A,224 +224,task_A,225 +225,task_A,226 +226,task_A,227 +227,task_A,228 +228,task_A,229 +229,task_A,230 +230,task_A,231 +231,task_A,232 +232,task_A,233 +233,task_A,234 +234,task_A,235 +235,task_A,236 +236,task_A,237 +237,task_A,238 +238,task_A,239 +239,task_A,240 +240,task_A,241 +241,task_A,242 +242,task_A,243 +243,task_A,244 +244,task_A,245 +245,task_A,246 +246,task_A,247 +247,task_A,248 +248,task_A,249 +249,task_A,250 +250,task_A,251 +251,task_A,252 +252,task_A,253 +253,task_A,254 +254,task_A,255 +255,task_A,256 +256,task_A,257 +257,task_A,258 +258,task_A,259 +259,task_A,260 +260,task_A,261 +261,task_A,262 +262,task_A,263 +263,task_A,264 +264,task_A,265 +265,task_A,266 +266,task_A,267 +267,task_A,268 +268,task_A,269 +269,task_A,270 +270,task_A,271 +271,task_A,272 +272,task_A,273 +273,task_A,274 +274,task_A,275 +275,task_A,276 +276,task_A,277 +277,task_A,278 +278,task_A,279 +279,task_A,280 +280,task_A,281 +281,task_A,282 +282,task_A,283 +283,task_A,284 +284,task_A,285 +285,task_A,286 +286,task_A,287 +287,task_A,288 +288,task_A,289 +289,task_A,290 +290,task_A,291 +291,task_A,292 +292,task_A,293 +293,task_A,294 +294,task_A,295 +295,task_A,296 +296,task_A,297 +297,task_A,298 +298,task_A,299 +299,task_A,300 +300,task_A,301 +301,task_A,302 +302,task_A,303 +303,task_A,304 +304,task_A,305 +305,task_A,306 +306,task_A,307 +307,task_A,308 +308,task_A,309 +309,task_A,310 +310,task_A,311 +311,task_A,312 +312,task_A,313 +313,task_A,314 +314,task_A,315 +315,task_A,316 +316,task_A,317 +317,task_A,318 +318,task_A,319 +319,task_A,320 +320,task_A,321 +321,task_A,322 +322,task_A,323 +323,task_A,324 +324,task_A,325 +325,task_A,326 +326,task_A,327 +327,task_A,328 +328,task_A,329 +329,task_A,330 +330,task_A,331 +331,task_A,332 +332,task_A,333 +333,task_A,334 +334,task_A,335 +335,task_A,336 +336,task_A,337 +337,task_A,338 +338,task_A,339 +339,task_A,340 +340,task_A,341 +341,task_A,342 +342,task_A,343 +343,task_A,344 +344,task_A,345 +345,task_A,346 +346,task_A,347 +347,task_A,348 +348,task_A,349 +349,task_A,350 +350,task_A,351 +351,task_A,352 +352,task_A,353 +353,task_A,354 +354,task_A,355 +355,task_A,356 +356,task_A,357 +357,task_A,358 +358,task_A,359 +359,task_A,360 +360,task_A,361 +361,task_A,362 +362,task_A,363 +363,task_A,364 +364,task_A,365 +365,task_A,366 +366,task_A,367 +367,task_A,368 +368,task_A,369 +369,task_A,370 +370,task_A,371 +371,task_A,372 +372,task_A,373 +373,task_A,374 +374,task_A,375 +375,task_A,376 +376,task_A,377 +377,task_A,378 +378,task_A,379 +379,task_A,380 +380,task_A,381 +381,task_A,382 +382,task_A,383 +383,task_A,384 +384,task_A,385 +385,task_A,386 +386,task_A,387 +387,task_A,388 +388,task_A,389 +389,task_A,390 +390,task_A,391 +391,task_A,392 +392,task_A,393 +393,task_A,394 +394,task_A,395 +395,task_A,396 +396,task_A,397 +397,task_A,398 +398,task_A,399 +399,task_A,400 +400,task_A,401 +401,task_A,402 +402,task_A,403 +403,task_A,404 +404,task_A,405 +405,task_A,406 +406,task_A,407 +407,task_A,408 +408,task_A,409 +409,task_A,410 +410,task_A,411 +411,task_A,412 +412,task_A,413 +413,task_A,414 +414,task_A,415 +415,task_A,416 +416,task_A,417 +417,task_A,418 +418,task_A,419 +419,task_A,420 +420,task_A,421 +421,task_A,422 +422,task_A,423 +423,task_A,424 +424,task_A,425 +425,task_A,426 +426,task_A,427 +427,task_A,428 +428,task_A,429 +429,task_A,430 +430,task_A,431 +431,task_A,432 +432,task_A,433 +433,task_A,434 +434,task_A,435 +435,task_A,436 +436,task_A,437 +437,task_A,438 +438,task_A,439 +439,task_A,440 +440,task_A,441 +441,task_A,442 +442,task_A,443 +443,task_A,444 +444,task_A,445 +445,task_A,446 +446,task_A,447 +447,task_A,448 +448,task_A,449 +449,task_A,450 +450,task_A,451 +451,task_A,452 +452,task_A,453 +453,task_A,454 +454,task_A,455 +455,task_A,456 +456,task_A,457 +457,task_A,458 +458,task_A,459 +459,task_A,460 +460,task_A,461 +461,task_A,462 +462,task_A,463 +463,task_A,464 +464,task_A,465 +465,task_A,466 +466,task_A,467 +467,task_A,468 +468,task_A,469 +469,task_A,470 +470,task_A,471 +471,task_A,472 +472,task_A,473 +473,task_A,474 +474,task_A,475 +475,task_A,476 +476,task_A,477 +477,task_A,478 +478,task_A,479 +479,task_A,480 +480,task_A,481 +481,task_A,482 +482,task_A,483 +483,task_A,484 +484,task_A,485 +485,task_A,486 +486,task_A,487 +487,task_A,488 +488,task_A,489 +489,task_A,490 +490,task_A,491 +491,task_A,492 +492,task_A,493 +493,task_A,494 +494,task_A,495 +495,task_A,496 +496,task_A,497 +497,task_A,498 +498,task_A,499 +499,task_A,500 +500,task_A,501 +501,task_A,502 +502,task_A,503 +503,task_A,504 +504,task_A,505 +505,task_A,506 +506,task_A,507 +507,task_A,508 +508,task_A,509 +509,task_A,510 +510,task_A,511 +511,task_A,512 +512,task_A,513 +513,task_A,514 +514,task_A,515 +515,task_A,516 +516,task_A,517 +517,task_A,518 +518,task_A,519 +519,task_A,520 +520,task_A,521 +521,task_A,522 +522,task_A,523 +523,task_A,524 +524,task_A,525 +525,task_A,526 +526,task_A,527 +527,task_A,528 +528,task_A,529 +529,task_A,530 +530,task_A,531 +531,task_A,532 +532,task_A,533 +533,task_A,534 +534,task_A,535 +535,task_A,536 +536,task_A,537 +537,task_A,538 +538,task_A,539 +539,task_A,540 +540,task_A,541 +541,task_A,542 +542,task_A,543 +543,task_A,544 +544,task_A,545 +545,task_A,546 +546,task_A,547 +547,task_A,548 +548,task_A,549 +549,task_A,550 +550,task_A,551 +551,task_A,552 +552,task_A,553 +553,task_A,554 +554,task_A,555 +555,task_A,556 +556,task_A,557 +557,task_A,558 +558,task_A,559 +559,task_A,560 +560,task_A,561 +561,task_A,562 +562,task_A,563 +563,task_A,564 +564,task_A,565 +565,task_A,566 +566,task_A,567 +567,task_A,568 +568,task_A,569 +569,task_A,570 +570,task_A,571 +571,task_A,572 +572,task_A,573 +573,task_A,574 +574,task_A,575 +575,task_A,576 +576,task_A,577 +577,task_A,578 +578,task_A,579 +579,task_A,580 +580,task_A,581 +581,task_A,582 +582,task_A,583 +583,task_A,584 +584,task_A,585 +585,task_A,586 +586,task_A,587 +587,task_A,588 +588,task_A,589 +589,task_A,590 +590,task_A,591 +591,task_A,592 +592,task_A,593 +593,task_A,594 +594,task_A,595 +595,task_A,596 +596,task_A,597 +597,task_A,598 +598,task_A,599 +599,task_A,600 +600,task_A,601 +601,task_A,602 +602,task_A,603 +603,task_A,604 +604,task_A,605 +605,task_A,606 +606,task_A,607 +607,task_A,608 +608,task_A,609 +609,task_A,610 +610,task_A,611 +611,task_A,612 +612,task_A,613 +613,task_A,614 +614,task_A,615 +615,task_A,616 +616,task_A,617 +617,task_A,618 +618,task_A,619 +619,task_A,620 +620,task_A,621 +621,task_A,622 +622,task_A,623 +623,task_A,624 +624,task_A,625 +625,task_A,626 +626,task_A,627 +627,task_A,628 +628,task_A,629 +629,task_A,630 +630,task_A,631 +631,task_A,632 +632,task_A,633 +633,task_A,634 +634,task_A,635 +635,task_A,636 +636,task_A,637 +637,task_A,638 +638,task_A,639 +639,task_A,640 +640,task_A,641 +641,task_A,642 +642,task_A,643 +643,task_A,644 +644,task_A,645 +645,task_A,646 +646,task_A,647 +647,task_A,648 +648,task_A,649 +649,task_A,650 +650,task_A,651 +651,task_A,652 +652,task_A,653 +653,task_A,654 +654,task_A,655 +655,task_A,656 +656,task_A,657 +657,task_A,658 +658,task_A,659 +659,task_A,660 +660,task_A,661 +661,task_A,662 +662,task_A,663 +663,task_A,664 +664,task_A,665 +665,task_A,666 +666,task_A,667 +667,task_A,668 +668,task_A,669 +669,task_A,670 +670,task_A,671 +671,task_A,672 +672,task_A,673 +673,task_A,674 +674,task_A,675 +675,task_A,676 +676,task_A,677 +677,task_A,678 +678,task_A,679 +679,task_A,680 +680,task_A,681 +681,task_A,682 +682,task_A,683 +683,task_A,684 +684,task_A,685 +685,task_A,686 +686,task_A,687 +687,task_A,688 +688,task_A,689 +689,task_A,690 +690,task_A,691 +691,task_A,692 +692,task_A,693 +693,task_A,694 +694,task_A,695 +695,task_A,696 +696,task_A,697 +697,task_A,698 +698,task_A,699 +699,task_A,700 +700,task_A,701 +701,task_A,702 +702,task_A,703 +703,task_A,704 +704,task_A,705 +705,task_A,706 +706,task_A,707 +707,task_A,708 +708,task_A,709 +709,task_A,710 +710,task_A,711 +711,task_A,712 +712,task_A,713 +713,task_A,714 +714,task_A,715 +715,task_A,716 +716,task_A,717 +717,task_A,718 +718,task_A,719 +719,task_A,720 +720,task_A,721 +721,task_A,722 +722,task_A,723 +723,task_A,724 +724,task_A,725 +725,task_A,726 +726,task_A,727 +727,task_A,728 +728,task_A,729 +729,task_A,730 +730,task_A,731 +731,task_A,732 +732,task_A,733 +733,task_A,734 +734,task_A,735 +735,task_A,736 +736,task_A,737 +737,task_A,738 +738,task_A,739 +739,task_A,740 +740,task_A,741 +741,task_A,742 +742,task_A,743 +743,task_A,744 +744,task_A,745 +745,task_A,746 +746,task_A,747 +747,task_A,748 +748,task_A,749 +749,task_A,750 +750,task_A,751 +751,task_A,752 +752,task_A,753 +753,task_A,754 +754,task_A,755 +755,task_A,756 +756,task_A,757 +757,task_A,758 +758,task_A,759 +759,task_A,760 +760,task_A,761 +761,task_A,762 +762,task_A,763 +763,task_A,764 +764,task_A,765 +765,task_A,766 +766,task_A,767 +767,task_A,768 +768,task_A,769 +769,task_A,770 +770,task_A,771 +771,task_A,772 +772,task_A,773 +773,task_A,774 +774,task_A,775 +775,task_A,776 +776,task_A,777 +777,task_A,778 +778,task_A,779 +779,task_A,780 +780,task_A,781 +781,task_A,782 +782,task_A,783 +783,task_A,784 +784,task_A,785 +785,task_A,786 +786,task_A,787 +787,task_A,788 +788,task_A,789 +789,task_A,790 +790,task_A,791 +791,task_A,792 +792,task_A,793 +793,task_A,794 +794,task_A,795 +795,task_A,796 +796,task_A,797 +797,task_A,798 +798,task_A,799 +799,task_A,800 +800,task_A,801 +801,task_A,802 +802,task_A,803 +803,task_A,804 +804,task_A,805 +805,task_A,806 +806,task_A,807 +807,task_A,808 +808,task_A,809 +809,task_A,810 +810,task_A,811 +811,task_A,812 +812,task_A,813 +813,task_A,814 +814,task_A,815 +815,task_A,816 +816,task_A,817 +817,task_A,818 +818,task_A,819 +819,task_A,820 +820,task_A,821 +821,task_A,822 +822,task_A,823 +823,task_A,824 +824,task_A,825 +825,task_A,826 +826,task_A,827 +827,task_A,828 +828,task_A,829 +829,task_A,830 +830,task_A,831 +831,task_A,832 +832,task_A,833 +833,task_A,834 +834,task_A,835 +835,task_A,836 +836,task_A,837 +837,task_A,838 +838,task_A,839 +839,task_A,840 +840,task_A,841 +841,task_A,842 +842,task_A,843 +843,task_A,844 +844,task_A,845 +845,task_A,846 +846,task_A,847 +847,task_A,848 +848,task_A,849 +849,task_A,850 +850,task_A,851 +851,task_A,852 +852,task_A,853 +853,task_A,854 +854,task_A,855 +855,task_A,856 +856,task_A,857 +857,task_A,858 +858,task_A,859 +859,task_A,860 +860,task_A,861 +861,task_A,862 +862,task_A,863 +863,task_A,864 +864,task_A,865 +865,task_A,866 +866,task_A,867 +867,task_A,868 +868,task_A,869 +869,task_A,870 +870,task_A,871 +871,task_A,872 +872,task_A,873 +873,task_A,874 +874,task_A,875 +875,task_A,876 +876,task_A,877 +877,task_A,878 +878,task_A,879 +879,task_A,880 +880,task_A,881 +881,task_A,882 +882,task_A,883 +883,task_A,884 +884,task_A,885 +885,task_A,886 +886,task_A,887 +887,task_A,888 +888,task_A,889 +889,task_A,890 +890,task_A,891 +891,task_A,892 +892,task_A,893 +893,task_A,894 +894,task_A,895 +895,task_A,896 +896,task_A,897 +897,task_A,898 +898,task_A,899 +899,task_A,900 +900,task_A,901 +901,task_A,902 +902,task_A,903 +903,task_A,904 +904,task_A,905 +905,task_A,906 +906,task_A,907 +907,task_A,908 +908,task_A,909 +909,task_A,910 +910,task_A,911 +911,task_A,912 +912,task_A,913 +913,task_A,914 +914,task_A,915 +915,task_A,916 +916,task_A,917 +917,task_A,918 +918,task_A,919 +919,task_A,920 +920,task_A,921 +921,task_A,922 +922,task_A,923 +923,task_A,924 +924,task_A,925 +925,task_A,926 +926,task_A,927 +927,task_A,928 +928,task_A,929 +929,task_A,930 +930,task_A,931 +931,task_A,932 +932,task_A,933 +933,task_A,934 +934,task_A,935 +935,task_A,936 +936,task_A,937 +937,task_A,938 +938,task_A,939 +939,task_A,940 +940,task_A,941 +941,task_A,942 +942,task_A,943 +943,task_A,944 +944,task_A,945 +945,task_A,946 +946,task_A,947 +947,task_A,948 +948,task_A,949 +949,task_A,950 +950,task_A,951 +951,task_A,952 +952,task_A,953 +953,task_A,954 +954,task_A,955 +955,task_A,956 +956,task_A,957 +957,task_A,958 +958,task_A,959 +959,task_A,960 +960,task_A,961 +961,task_A,962 +962,task_A,963 +963,task_A,964 +964,task_A,965 +965,task_A,966 +966,task_A,967 +967,task_A,968 +968,task_A,969 +969,task_A,970 +970,task_A,971 +971,task_A,972 +972,task_A,973 +973,task_A,974 +974,task_A,975 +975,task_A,976 +976,task_A,977 +977,task_A,978 +978,task_A,979 +979,task_A,980 +980,task_A,981 +981,task_A,982 +982,task_A,983 +983,task_A,984 +984,task_A,985 +985,task_A,986 +986,task_A,987 +987,task_A,988 +988,task_A,989 +989,task_A,990 +990,task_A,991 +991,task_A,992 +992,task_A,993 +993,task_A,994 +994,task_A,995 +995,task_A,996 +996,task_A,997 +997,task_A,998 +998,task_A,999 +999,task_A,1000 +1000,task_B,1 +1001,task_B,2 +1002,task_B,3 +1003,task_B,4 +1004,task_B,5 +1005,task_B,6 +1006,task_B,7 +1007,task_B,8 +1008,task_B,9 +1009,task_B,10 +1010,task_B,11 +1011,task_B,12 +1012,task_B,13 +1013,task_B,14 +1014,task_B,15 +1015,task_B,16 +1016,task_B,17 +1017,task_B,18 +1018,task_B,19 +1019,task_B,20 +1020,task_B,21 +1021,task_B,22 +1022,task_B,23 +1023,task_B,24 +1024,task_B,25 +1025,task_B,26 +1026,task_B,27 +1027,task_B,28 +1028,task_B,29 +1029,task_B,30 +1030,task_B,31 +1031,task_B,32 +1032,task_B,33 +1033,task_B,34 +1034,task_B,35 +1035,task_B,36 +1036,task_B,37 +1037,task_B,38 +1038,task_B,39 +1039,task_B,40 +1040,task_B,41 +1041,task_B,42 +1042,task_B,43 +1043,task_B,44 +1044,task_B,45 +1045,task_B,46 +1046,task_B,47 +1047,task_B,48 +1048,task_B,49 +1049,task_B,50 +1050,task_B,51 +1051,task_B,52 +1052,task_B,53 +1053,task_B,54 +1054,task_B,55 +1055,task_B,56 +1056,task_B,57 +1057,task_B,58 +1058,task_B,59 +1059,task_B,60 +1060,task_B,61 +1061,task_B,62 +1062,task_B,63 +1063,task_B,64 +1064,task_B,65 +1065,task_B,66 +1066,task_B,67 +1067,task_B,68 +1068,task_B,69 +1069,task_B,70 +1070,task_B,71 +1071,task_B,72 +1072,task_B,73 +1073,task_B,74 +1074,task_B,75 +1075,task_B,76 +1076,task_B,77 +1077,task_B,78 +1078,task_B,79 +1079,task_B,80 +1080,task_B,81 +1081,task_B,82 +1082,task_B,83 +1083,task_B,84 +1084,task_B,85 +1085,task_B,86 +1086,task_B,87 +1087,task_B,88 +1088,task_B,89 +1089,task_B,90 +1090,task_B,91 +1091,task_B,92 +1092,task_B,93 +1093,task_B,94 +1094,task_B,95 +1095,task_B,96 +1096,task_B,97 +1097,task_B,98 +1098,task_B,99 +1099,task_B,100 +1100,task_B,101 +1101,task_B,102 +1102,task_B,103 +1103,task_B,104 +1104,task_B,105 +1105,task_B,106 +1106,task_B,107 +1107,task_B,108 +1108,task_B,109 +1109,task_B,110 +1110,task_B,111 +1111,task_B,112 +1112,task_B,113 +1113,task_B,114 +1114,task_B,115 +1115,task_B,116 +1116,task_B,117 +1117,task_B,118 +1118,task_B,119 +1119,task_B,120 +1120,task_B,121 +1121,task_B,122 +1122,task_B,123 +1123,task_B,124 +1124,task_B,125 +1125,task_B,126 +1126,task_B,127 +1127,task_B,128 +1128,task_B,129 +1129,task_B,130 +1130,task_B,131 +1131,task_B,132 +1132,task_B,133 +1133,task_B,134 +1134,task_B,135 +1135,task_B,136 +1136,task_B,137 +1137,task_B,138 +1138,task_B,139 +1139,task_B,140 +1140,task_B,141 +1141,task_B,142 +1142,task_B,143 +1143,task_B,144 +1144,task_B,145 +1145,task_B,146 +1146,task_B,147 +1147,task_B,148 +1148,task_B,149 +1149,task_B,150 +1150,task_B,151 +1151,task_B,152 +1152,task_B,153 +1153,task_B,154 +1154,task_B,155 +1155,task_B,156 +1156,task_B,157 +1157,task_B,158 +1158,task_B,159 +1159,task_B,160 +1160,task_B,161 +1161,task_B,162 +1162,task_B,163 +1163,task_B,164 +1164,task_B,165 +1165,task_B,166 +1166,task_B,167 +1167,task_B,168 +1168,task_B,169 +1169,task_B,170 +1170,task_B,171 +1171,task_B,172 +1172,task_B,173 +1173,task_B,174 +1174,task_B,175 +1175,task_B,176 +1176,task_B,177 +1177,task_B,178 +1178,task_B,179 +1179,task_B,180 +1180,task_B,181 +1181,task_B,182 +1182,task_B,183 +1183,task_B,184 +1184,task_B,185 +1185,task_B,186 +1186,task_B,187 +1187,task_B,188 +1188,task_B,189 +1189,task_B,190 +1190,task_B,191 +1191,task_B,192 +1192,task_B,193 +1193,task_B,194 +1194,task_B,195 +1195,task_B,196 +1196,task_B,197 +1197,task_B,198 +1198,task_B,199 +1199,task_B,200 +1200,task_B,201 +1201,task_B,202 +1202,task_B,203 +1203,task_B,204 +1204,task_B,205 +1205,task_B,206 +1206,task_B,207 +1207,task_B,208 +1208,task_B,209 +1209,task_B,210 +1210,task_B,211 +1211,task_B,212 +1212,task_B,213 +1213,task_B,214 +1214,task_B,215 +1215,task_B,216 +1216,task_B,217 +1217,task_B,218 +1218,task_B,219 +1219,task_B,220 +1220,task_B,221 +1221,task_B,222 +1222,task_B,223 +1223,task_B,224 +1224,task_B,225 +1225,task_B,226 +1226,task_B,227 +1227,task_B,228 +1228,task_B,229 +1229,task_B,230 +1230,task_B,231 +1231,task_B,232 +1232,task_B,233 +1233,task_B,234 +1234,task_B,235 +1235,task_B,236 +1236,task_B,237 +1237,task_B,238 +1238,task_B,239 +1239,task_B,240 +1240,task_B,241 +1241,task_B,242 +1242,task_B,243 +1243,task_B,244 +1244,task_B,245 +1245,task_B,246 +1246,task_B,247 +1247,task_B,248 +1248,task_B,249 +1249,task_B,250 +1250,task_B,251 +1251,task_B,252 +1252,task_B,253 +1253,task_B,254 +1254,task_B,255 +1255,task_B,256 +1256,task_B,257 +1257,task_B,258 +1258,task_B,259 +1259,task_B,260 +1260,task_B,261 +1261,task_B,262 +1262,task_B,263 +1263,task_B,264 +1264,task_B,265 +1265,task_B,266 +1266,task_B,267 +1267,task_B,268 +1268,task_B,269 +1269,task_B,270 +1270,task_B,271 +1271,task_B,272 +1272,task_B,273 +1273,task_B,274 +1274,task_B,275 +1275,task_B,276 +1276,task_B,277 +1277,task_B,278 +1278,task_B,279 +1279,task_B,280 +1280,task_B,281 +1281,task_B,282 +1282,task_B,283 +1283,task_B,284 +1284,task_B,285 +1285,task_B,286 +1286,task_B,287 +1287,task_B,288 +1288,task_B,289 +1289,task_B,290 +1290,task_B,291 +1291,task_B,292 +1292,task_B,293 +1293,task_B,294 +1294,task_B,295 +1295,task_B,296 +1296,task_B,297 +1297,task_B,298 +1298,task_B,299 +1299,task_B,300 +1300,task_B,301 +1301,task_B,302 +1302,task_B,303 +1303,task_B,304 +1304,task_B,305 +1305,task_B,306 +1306,task_B,307 +1307,task_B,308 +1308,task_B,309 +1309,task_B,310 +1310,task_B,311 +1311,task_B,312 +1312,task_B,313 +1313,task_B,314 +1314,task_B,315 +1315,task_B,316 +1316,task_B,317 +1317,task_B,318 +1318,task_B,319 +1319,task_B,320 +1320,task_B,321 +1321,task_B,322 +1322,task_B,323 +1323,task_B,324 +1324,task_B,325 +1325,task_B,326 +1326,task_B,327 +1327,task_B,328 +1328,task_B,329 +1329,task_B,330 +1330,task_B,331 +1331,task_B,332 +1332,task_B,333 +1333,task_B,334 +1334,task_B,335 +1335,task_B,336 +1336,task_B,337 +1337,task_B,338 +1338,task_B,339 +1339,task_B,340 +1340,task_B,341 +1341,task_B,342 +1342,task_B,343 +1343,task_B,344 +1344,task_B,345 +1345,task_B,346 +1346,task_B,347 +1347,task_B,348 +1348,task_B,349 +1349,task_B,350 +1350,task_B,351 +1351,task_B,352 +1352,task_B,353 +1353,task_B,354 +1354,task_B,355 +1355,task_B,356 +1356,task_B,357 +1357,task_B,358 +1358,task_B,359 +1359,task_B,360 +1360,task_B,361 +1361,task_B,362 +1362,task_B,363 +1363,task_B,364 +1364,task_B,365 +1365,task_B,366 +1366,task_B,367 +1367,task_B,368 +1368,task_B,369 +1369,task_B,370 +1370,task_B,371 +1371,task_B,372 +1372,task_B,373 +1373,task_B,374 +1374,task_B,375 +1375,task_B,376 +1376,task_B,377 +1377,task_B,378 +1378,task_B,379 +1379,task_B,380 +1380,task_B,381 +1381,task_B,382 +1382,task_B,383 +1383,task_B,384 +1384,task_B,385 +1385,task_B,386 +1386,task_B,387 +1387,task_B,388 +1388,task_B,389 +1389,task_B,390 +1390,task_B,391 +1391,task_B,392 +1392,task_B,393 +1393,task_B,394 +1394,task_B,395 +1395,task_B,396 +1396,task_B,397 +1397,task_B,398 +1398,task_B,399 +1399,task_B,400 +1400,task_B,401 +1401,task_B,402 +1402,task_B,403 +1403,task_B,404 +1404,task_B,405 +1405,task_B,406 +1406,task_B,407 +1407,task_B,408 +1408,task_B,409 +1409,task_B,410 +1410,task_B,411 +1411,task_B,412 +1412,task_B,413 +1413,task_B,414 +1414,task_B,415 +1415,task_B,416 +1416,task_B,417 +1417,task_B,418 +1418,task_B,419 +1419,task_B,420 +1420,task_B,421 +1421,task_B,422 +1422,task_B,423 +1423,task_B,424 +1424,task_B,425 +1425,task_B,426 +1426,task_B,427 +1427,task_B,428 +1428,task_B,429 +1429,task_B,430 +1430,task_B,431 +1431,task_B,432 +1432,task_B,433 +1433,task_B,434 +1434,task_B,435 +1435,task_B,436 +1436,task_B,437 +1437,task_B,438 +1438,task_B,439 +1439,task_B,440 +1440,task_B,441 +1441,task_B,442 +1442,task_B,443 +1443,task_B,444 +1444,task_B,445 +1445,task_B,446 +1446,task_B,447 +1447,task_B,448 +1448,task_B,449 +1449,task_B,450 +1450,task_B,451 +1451,task_B,452 +1452,task_B,453 +1453,task_B,454 +1454,task_B,455 +1455,task_B,456 +1456,task_B,457 +1457,task_B,458 +1458,task_B,459 +1459,task_B,460 +1460,task_B,461 +1461,task_B,462 +1462,task_B,463 +1463,task_B,464 +1464,task_B,465 +1465,task_B,466 +1466,task_B,467 +1467,task_B,468 +1468,task_B,469 +1469,task_B,470 +1470,task_B,471 +1471,task_B,472 +1472,task_B,473 +1473,task_B,474 +1474,task_B,475 +1475,task_B,476 +1476,task_B,477 +1477,task_B,478 +1478,task_B,479 +1479,task_B,480 +1480,task_B,481 +1481,task_B,482 +1482,task_B,483 +1483,task_B,484 +1484,task_B,485 +1485,task_B,486 +1486,task_B,487 +1487,task_B,488 +1488,task_B,489 +1489,task_B,490 +1490,task_B,491 +1491,task_B,492 +1492,task_B,493 +1493,task_B,494 +1494,task_B,495 +1495,task_B,496 +1496,task_B,497 +1497,task_B,498 +1498,task_B,499 +1499,task_B,500 +1500,task_B,501 +1501,task_B,502 +1502,task_B,503 +1503,task_B,504 +1504,task_B,505 +1505,task_B,506 +1506,task_B,507 +1507,task_B,508 +1508,task_B,509 +1509,task_B,510 +1510,task_B,511 +1511,task_B,512 +1512,task_B,513 +1513,task_B,514 +1514,task_B,515 +1515,task_B,516 +1516,task_B,517 +1517,task_B,518 +1518,task_B,519 +1519,task_B,520 +1520,task_B,521 +1521,task_B,522 +1522,task_B,523 +1523,task_B,524 +1524,task_B,525 +1525,task_B,526 +1526,task_B,527 +1527,task_B,528 +1528,task_B,529 +1529,task_B,530 +1530,task_B,531 +1531,task_B,532 +1532,task_B,533 +1533,task_B,534 +1534,task_B,535 +1535,task_B,536 +1536,task_B,537 +1537,task_B,538 +1538,task_B,539 +1539,task_B,540 +1540,task_B,541 +1541,task_B,542 +1542,task_B,543 +1543,task_B,544 +1544,task_B,545 +1545,task_B,546 +1546,task_B,547 +1547,task_B,548 +1548,task_B,549 +1549,task_B,550 +1550,task_B,551 +1551,task_B,552 +1552,task_B,553 +1553,task_B,554 +1554,task_B,555 +1555,task_B,556 +1556,task_B,557 +1557,task_B,558 +1558,task_B,559 +1559,task_B,560 +1560,task_B,561 +1561,task_B,562 +1562,task_B,563 +1563,task_B,564 +1564,task_B,565 +1565,task_B,566 +1566,task_B,567 +1567,task_B,568 +1568,task_B,569 +1569,task_B,570 +1570,task_B,571 +1571,task_B,572 +1572,task_B,573 +1573,task_B,574 +1574,task_B,575 +1575,task_B,576 +1576,task_B,577 +1577,task_B,578 +1578,task_B,579 +1579,task_B,580 +1580,task_B,581 +1581,task_B,582 +1582,task_B,583 +1583,task_B,584 +1584,task_B,585 +1585,task_B,586 +1586,task_B,587 +1587,task_B,588 +1588,task_B,589 +1589,task_B,590 +1590,task_B,591 +1591,task_B,592 +1592,task_B,593 +1593,task_B,594 +1594,task_B,595 +1595,task_B,596 +1596,task_B,597 +1597,task_B,598 +1598,task_B,599 +1599,task_B,600 +1600,task_B,601 +1601,task_B,602 +1602,task_B,603 +1603,task_B,604 +1604,task_B,605 +1605,task_B,606 +1606,task_B,607 +1607,task_B,608 +1608,task_B,609 +1609,task_B,610 +1610,task_B,611 +1611,task_B,612 +1612,task_B,613 +1613,task_B,614 +1614,task_B,615 +1615,task_B,616 +1616,task_B,617 +1617,task_B,618 +1618,task_B,619 +1619,task_B,620 +1620,task_B,621 +1621,task_B,622 +1622,task_B,623 +1623,task_B,624 +1624,task_B,625 +1625,task_B,626 +1626,task_B,627 +1627,task_B,628 +1628,task_B,629 +1629,task_B,630 +1630,task_B,631 +1631,task_B,632 +1632,task_B,633 +1633,task_B,634 +1634,task_B,635 +1635,task_B,636 +1636,task_B,637 +1637,task_B,638 +1638,task_B,639 +1639,task_B,640 +1640,task_B,641 +1641,task_B,642 +1642,task_B,643 +1643,task_B,644 +1644,task_B,645 +1645,task_B,646 +1646,task_B,647 +1647,task_B,648 +1648,task_B,649 +1649,task_B,650 +1650,task_B,651 +1651,task_B,652 +1652,task_B,653 +1653,task_B,654 +1654,task_B,655 +1655,task_B,656 +1656,task_B,657 +1657,task_B,658 +1658,task_B,659 +1659,task_B,660 +1660,task_B,661 +1661,task_B,662 +1662,task_B,663 +1663,task_B,664 +1664,task_B,665 +1665,task_B,666 +1666,task_B,667 +1667,task_B,668 +1668,task_B,669 +1669,task_B,670 +1670,task_B,671 +1671,task_B,672 +1672,task_B,673 +1673,task_B,674 +1674,task_B,675 +1675,task_B,676 +1676,task_B,677 +1677,task_B,678 +1678,task_B,679 +1679,task_B,680 +1680,task_B,681 +1681,task_B,682 +1682,task_B,683 +1683,task_B,684 +1684,task_B,685 +1685,task_B,686 +1686,task_B,687 +1687,task_B,688 +1688,task_B,689 +1689,task_B,690 +1690,task_B,691 +1691,task_B,692 +1692,task_B,693 +1693,task_B,694 +1694,task_B,695 +1695,task_B,696 +1696,task_B,697 +1697,task_B,698 +1698,task_B,699 +1699,task_B,700 +1700,task_B,701 +1701,task_B,702 +1702,task_B,703 +1703,task_B,704 +1704,task_B,705 +1705,task_B,706 +1706,task_B,707 +1707,task_B,708 +1708,task_B,709 +1709,task_B,710 +1710,task_B,711 +1711,task_B,712 +1712,task_B,713 +1713,task_B,714 +1714,task_B,715 +1715,task_B,716 +1716,task_B,717 +1717,task_B,718 +1718,task_B,719 +1719,task_B,720 +1720,task_B,721 +1721,task_B,722 +1722,task_B,723 +1723,task_B,724 +1724,task_B,725 +1725,task_B,726 +1726,task_B,727 +1727,task_B,728 +1728,task_B,729 +1729,task_B,730 +1730,task_B,731 +1731,task_B,732 +1732,task_B,733 +1733,task_B,734 +1734,task_B,735 +1735,task_B,736 +1736,task_B,737 +1737,task_B,738 +1738,task_B,739 +1739,task_B,740 +1740,task_B,741 +1741,task_B,742 +1742,task_B,743 +1743,task_B,744 +1744,task_B,745 +1745,task_B,746 +1746,task_B,747 +1747,task_B,748 +1748,task_B,749 +1749,task_B,750 +1750,task_B,751 +1751,task_B,752 +1752,task_B,753 +1753,task_B,754 +1754,task_B,755 +1755,task_B,756 +1756,task_B,757 +1757,task_B,758 +1758,task_B,759 +1759,task_B,760 +1760,task_B,761 +1761,task_B,762 +1762,task_B,763 +1763,task_B,764 +1764,task_B,765 +1765,task_B,766 +1766,task_B,767 +1767,task_B,768 +1768,task_B,769 +1769,task_B,770 +1770,task_B,771 +1771,task_B,772 +1772,task_B,773 +1773,task_B,774 +1774,task_B,775 +1775,task_B,776 +1776,task_B,777 +1777,task_B,778 +1778,task_B,779 +1779,task_B,780 +1780,task_B,781 +1781,task_B,782 +1782,task_B,783 +1783,task_B,784 +1784,task_B,785 +1785,task_B,786 +1786,task_B,787 +1787,task_B,788 +1788,task_B,789 +1789,task_B,790 +1790,task_B,791 +1791,task_B,792 +1792,task_B,793 +1793,task_B,794 +1794,task_B,795 +1795,task_B,796 +1796,task_B,797 +1797,task_B,798 +1798,task_B,799 +1799,task_B,800 +1800,task_B,801 +1801,task_B,802 +1802,task_B,803 +1803,task_B,804 +1804,task_B,805 +1805,task_B,806 +1806,task_B,807 +1807,task_B,808 +1808,task_B,809 +1809,task_B,810 +1810,task_B,811 +1811,task_B,812 +1812,task_B,813 +1813,task_B,814 +1814,task_B,815 +1815,task_B,816 +1816,task_B,817 +1817,task_B,818 +1818,task_B,819 +1819,task_B,820 +1820,task_B,821 +1821,task_B,822 +1822,task_B,823 +1823,task_B,824 +1824,task_B,825 +1825,task_B,826 +1826,task_B,827 +1827,task_B,828 +1828,task_B,829 +1829,task_B,830 +1830,task_B,831 +1831,task_B,832 +1832,task_B,833 +1833,task_B,834 +1834,task_B,835 +1835,task_B,836 +1836,task_B,837 +1837,task_B,838 +1838,task_B,839 +1839,task_B,840 +1840,task_B,841 +1841,task_B,842 +1842,task_B,843 +1843,task_B,844 +1844,task_B,845 +1845,task_B,846 +1846,task_B,847 +1847,task_B,848 +1848,task_B,849 +1849,task_B,850 +1850,task_B,851 +1851,task_B,852 +1852,task_B,853 +1853,task_B,854 +1854,task_B,855 +1855,task_B,856 +1856,task_B,857 +1857,task_B,858 +1858,task_B,859 +1859,task_B,860 +1860,task_B,861 +1861,task_B,862 +1862,task_B,863 +1863,task_B,864 +1864,task_B,865 +1865,task_B,866 +1866,task_B,867 +1867,task_B,868 +1868,task_B,869 +1869,task_B,870 +1870,task_B,871 +1871,task_B,872 +1872,task_B,873 +1873,task_B,874 +1874,task_B,875 +1875,task_B,876 +1876,task_B,877 +1877,task_B,878 +1878,task_B,879 +1879,task_B,880 +1880,task_B,881 +1881,task_B,882 +1882,task_B,883 +1883,task_B,884 +1884,task_B,885 +1885,task_B,886 +1886,task_B,887 +1887,task_B,888 +1888,task_B,889 +1889,task_B,890 +1890,task_B,891 +1891,task_B,892 +1892,task_B,893 +1893,task_B,894 +1894,task_B,895 +1895,task_B,896 +1896,task_B,897 +1897,task_B,898 +1898,task_B,899 +1899,task_B,900 +1900,task_B,901 +1901,task_B,902 +1902,task_B,903 +1903,task_B,904 +1904,task_B,905 +1905,task_B,906 +1906,task_B,907 +1907,task_B,908 +1908,task_B,909 +1909,task_B,910 +1910,task_B,911 +1911,task_B,912 +1912,task_B,913 +1913,task_B,914 +1914,task_B,915 +1915,task_B,916 +1916,task_B,917 +1917,task_B,918 +1918,task_B,919 +1919,task_B,920 +1920,task_B,921 +1921,task_B,922 +1922,task_B,923 +1923,task_B,924 +1924,task_B,925 +1925,task_B,926 +1926,task_B,927 +1927,task_B,928 +1928,task_B,929 +1929,task_B,930 +1930,task_B,931 +1931,task_B,932 +1932,task_B,933 +1933,task_B,934 +1934,task_B,935 +1935,task_B,936 +1936,task_B,937 +1937,task_B,938 +1938,task_B,939 +1939,task_B,940 +1940,task_B,941 +1941,task_B,942 +1942,task_B,943 +1943,task_B,944 +1944,task_B,945 +1945,task_B,946 +1946,task_B,947 +1947,task_B,948 +1948,task_B,949 +1949,task_B,950 +1950,task_B,951 +1951,task_B,952 +1952,task_B,953 +1953,task_B,954 +1954,task_B,955 +1955,task_B,956 +1956,task_B,957 +1957,task_B,958 +1958,task_B,959 +1959,task_B,960 +1960,task_B,961 +1961,task_B,962 +1962,task_B,963 +1963,task_B,964 +1964,task_B,965 +1965,task_B,966 +1966,task_B,967 +1967,task_B,968 +1968,task_B,969 +1969,task_B,970 +1970,task_B,971 +1971,task_B,972 +1972,task_B,973 +1973,task_B,974 +1974,task_B,975 +1975,task_B,976 +1976,task_B,977 +1977,task_B,978 +1978,task_B,979 +1979,task_B,980 +1980,task_B,981 +1981,task_B,982 +1982,task_B,983 +1983,task_B,984 +1984,task_B,985 +1985,task_B,986 +1986,task_B,987 +1987,task_B,988 +1988,task_B,989 +1989,task_B,990 +1990,task_B,991 +1991,task_B,992 +1992,task_B,993 +1993,task_B,994 +1994,task_B,995 +1995,task_B,996 +1996,task_B,997 +1997,task_B,998 +1998,task_B,999 +1999,task_B,1000 +2000,task_C,1 +2001,task_C,2 +2002,task_C,3 +2003,task_C,4 +2004,task_C,5 +2005,task_C,6 +2006,task_C,7 +2007,task_C,8 +2008,task_C,9 +2009,task_C,10 +2010,task_C,11 +2011,task_C,12 +2012,task_C,13 +2013,task_C,14 +2014,task_C,15 +2015,task_C,16 +2016,task_C,17 +2017,task_C,18 +2018,task_C,19 +2019,task_C,20 +2020,task_C,21 +2021,task_C,22 +2022,task_C,23 +2023,task_C,24 +2024,task_C,25 +2025,task_C,26 +2026,task_C,27 +2027,task_C,28 +2028,task_C,29 +2029,task_C,30 +2030,task_C,31 +2031,task_C,32 +2032,task_C,33 +2033,task_C,34 +2034,task_C,35 +2035,task_C,36 +2036,task_C,37 +2037,task_C,38 +2038,task_C,39 +2039,task_C,40 +2040,task_C,41 +2041,task_C,42 +2042,task_C,43 +2043,task_C,44 +2044,task_C,45 +2045,task_C,46 +2046,task_C,47 +2047,task_C,48 +2048,task_C,49 +2049,task_C,50 +2050,task_C,51 +2051,task_C,52 +2052,task_C,53 +2053,task_C,54 +2054,task_C,55 +2055,task_C,56 +2056,task_C,57 +2057,task_C,58 +2058,task_C,59 +2059,task_C,60 +2060,task_C,61 +2061,task_C,62 +2062,task_C,63 +2063,task_C,64 +2064,task_C,65 +2065,task_C,66 +2066,task_C,67 +2067,task_C,68 +2068,task_C,69 +2069,task_C,70 +2070,task_C,71 +2071,task_C,72 +2072,task_C,73 +2073,task_C,74 +2074,task_C,75 +2075,task_C,76 +2076,task_C,77 +2077,task_C,78 +2078,task_C,79 +2079,task_C,80 +2080,task_C,81 +2081,task_C,82 +2082,task_C,83 +2083,task_C,84 +2084,task_C,85 +2085,task_C,86 +2086,task_C,87 +2087,task_C,88 +2088,task_C,89 +2089,task_C,90 +2090,task_C,91 +2091,task_C,92 +2092,task_C,93 +2093,task_C,94 +2094,task_C,95 +2095,task_C,96 +2096,task_C,97 +2097,task_C,98 +2098,task_C,99 +2099,task_C,100 +2100,task_C,101 +2101,task_C,102 +2102,task_C,103 +2103,task_C,104 +2104,task_C,105 +2105,task_C,106 +2106,task_C,107 +2107,task_C,108 +2108,task_C,109 +2109,task_C,110 +2110,task_C,111 +2111,task_C,112 +2112,task_C,113 +2113,task_C,114 +2114,task_C,115 +2115,task_C,116 +2116,task_C,117 +2117,task_C,118 +2118,task_C,119 +2119,task_C,120 +2120,task_C,121 +2121,task_C,122 +2122,task_C,123 +2123,task_C,124 +2124,task_C,125 +2125,task_C,126 +2126,task_C,127 +2127,task_C,128 +2128,task_C,129 +2129,task_C,130 +2130,task_C,131 +2131,task_C,132 +2132,task_C,133 +2133,task_C,134 +2134,task_C,135 +2135,task_C,136 +2136,task_C,137 +2137,task_C,138 +2138,task_C,139 +2139,task_C,140 +2140,task_C,141 +2141,task_C,142 +2142,task_C,143 +2143,task_C,144 +2144,task_C,145 +2145,task_C,146 +2146,task_C,147 +2147,task_C,148 +2148,task_C,149 +2149,task_C,150 +2150,task_C,151 +2151,task_C,152 +2152,task_C,153 +2153,task_C,154 +2154,task_C,155 +2155,task_C,156 +2156,task_C,157 +2157,task_C,158 +2158,task_C,159 +2159,task_C,160 +2160,task_C,161 +2161,task_C,162 +2162,task_C,163 +2163,task_C,164 +2164,task_C,165 +2165,task_C,166 +2166,task_C,167 +2167,task_C,168 +2168,task_C,169 +2169,task_C,170 +2170,task_C,171 +2171,task_C,172 +2172,task_C,173 +2173,task_C,174 +2174,task_C,175 +2175,task_C,176 +2176,task_C,177 +2177,task_C,178 +2178,task_C,179 +2179,task_C,180 +2180,task_C,181 +2181,task_C,182 +2182,task_C,183 +2183,task_C,184 +2184,task_C,185 +2185,task_C,186 +2186,task_C,187 +2187,task_C,188 +2188,task_C,189 +2189,task_C,190 +2190,task_C,191 +2191,task_C,192 +2192,task_C,193 +2193,task_C,194 +2194,task_C,195 +2195,task_C,196 +2196,task_C,197 +2197,task_C,198 +2198,task_C,199 +2199,task_C,200 +2200,task_C,201 +2201,task_C,202 +2202,task_C,203 +2203,task_C,204 +2204,task_C,205 +2205,task_C,206 +2206,task_C,207 +2207,task_C,208 +2208,task_C,209 +2209,task_C,210 +2210,task_C,211 +2211,task_C,212 +2212,task_C,213 +2213,task_C,214 +2214,task_C,215 +2215,task_C,216 +2216,task_C,217 +2217,task_C,218 +2218,task_C,219 +2219,task_C,220 +2220,task_C,221 +2221,task_C,222 +2222,task_C,223 +2223,task_C,224 +2224,task_C,225 +2225,task_C,226 +2226,task_C,227 +2227,task_C,228 +2228,task_C,229 +2229,task_C,230 +2230,task_C,231 +2231,task_C,232 +2232,task_C,233 +2233,task_C,234 +2234,task_C,235 +2235,task_C,236 +2236,task_C,237 +2237,task_C,238 +2238,task_C,239 +2239,task_C,240 +2240,task_C,241 +2241,task_C,242 +2242,task_C,243 +2243,task_C,244 +2244,task_C,245 +2245,task_C,246 +2246,task_C,247 +2247,task_C,248 +2248,task_C,249 +2249,task_C,250 +2250,task_C,251 +2251,task_C,252 +2252,task_C,253 +2253,task_C,254 +2254,task_C,255 +2255,task_C,256 +2256,task_C,257 +2257,task_C,258 +2258,task_C,259 +2259,task_C,260 +2260,task_C,261 +2261,task_C,262 +2262,task_C,263 +2263,task_C,264 +2264,task_C,265 +2265,task_C,266 +2266,task_C,267 +2267,task_C,268 +2268,task_C,269 +2269,task_C,270 +2270,task_C,271 +2271,task_C,272 +2272,task_C,273 +2273,task_C,274 +2274,task_C,275 +2275,task_C,276 +2276,task_C,277 +2277,task_C,278 +2278,task_C,279 +2279,task_C,280 +2280,task_C,281 +2281,task_C,282 +2282,task_C,283 +2283,task_C,284 +2284,task_C,285 +2285,task_C,286 +2286,task_C,287 +2287,task_C,288 +2288,task_C,289 +2289,task_C,290 +2290,task_C,291 +2291,task_C,292 +2292,task_C,293 +2293,task_C,294 +2294,task_C,295 +2295,task_C,296 +2296,task_C,297 +2297,task_C,298 +2298,task_C,299 +2299,task_C,300 +2300,task_C,301 +2301,task_C,302 +2302,task_C,303 +2303,task_C,304 +2304,task_C,305 +2305,task_C,306 +2306,task_C,307 +2307,task_C,308 +2308,task_C,309 +2309,task_C,310 +2310,task_C,311 +2311,task_C,312 +2312,task_C,313 +2313,task_C,314 +2314,task_C,315 +2315,task_C,316 +2316,task_C,317 +2317,task_C,318 +2318,task_C,319 +2319,task_C,320 +2320,task_C,321 +2321,task_C,322 +2322,task_C,323 +2323,task_C,324 +2324,task_C,325 +2325,task_C,326 +2326,task_C,327 +2327,task_C,328 +2328,task_C,329 +2329,task_C,330 +2330,task_C,331 +2331,task_C,332 +2332,task_C,333 +2333,task_C,334 +2334,task_C,335 +2335,task_C,336 +2336,task_C,337 +2337,task_C,338 +2338,task_C,339 +2339,task_C,340 +2340,task_C,341 +2341,task_C,342 +2342,task_C,343 +2343,task_C,344 +2344,task_C,345 +2345,task_C,346 +2346,task_C,347 +2347,task_C,348 +2348,task_C,349 +2349,task_C,350 +2350,task_C,351 +2351,task_C,352 +2352,task_C,353 +2353,task_C,354 +2354,task_C,355 +2355,task_C,356 +2356,task_C,357 +2357,task_C,358 +2358,task_C,359 +2359,task_C,360 +2360,task_C,361 +2361,task_C,362 +2362,task_C,363 +2363,task_C,364 +2364,task_C,365 +2365,task_C,366 +2366,task_C,367 +2367,task_C,368 +2368,task_C,369 +2369,task_C,370 +2370,task_C,371 +2371,task_C,372 +2372,task_C,373 +2373,task_C,374 +2374,task_C,375 +2375,task_C,376 +2376,task_C,377 +2377,task_C,378 +2378,task_C,379 +2379,task_C,380 +2380,task_C,381 +2381,task_C,382 +2382,task_C,383 +2383,task_C,384 +2384,task_C,385 +2385,task_C,386 +2386,task_C,387 +2387,task_C,388 +2388,task_C,389 +2389,task_C,390 +2390,task_C,391 +2391,task_C,392 +2392,task_C,393 +2393,task_C,394 +2394,task_C,395 +2395,task_C,396 +2396,task_C,397 +2397,task_C,398 +2398,task_C,399 +2399,task_C,400 +2400,task_C,401 +2401,task_C,402 +2402,task_C,403 +2403,task_C,404 +2404,task_C,405 +2405,task_C,406 +2406,task_C,407 +2407,task_C,408 +2408,task_C,409 +2409,task_C,410 +2410,task_C,411 +2411,task_C,412 +2412,task_C,413 +2413,task_C,414 +2414,task_C,415 +2415,task_C,416 +2416,task_C,417 +2417,task_C,418 +2418,task_C,419 +2419,task_C,420 +2420,task_C,421 +2421,task_C,422 +2422,task_C,423 +2423,task_C,424 +2424,task_C,425 +2425,task_C,426 +2426,task_C,427 +2427,task_C,428 +2428,task_C,429 +2429,task_C,430 +2430,task_C,431 +2431,task_C,432 +2432,task_C,433 +2433,task_C,434 +2434,task_C,435 +2435,task_C,436 +2436,task_C,437 +2437,task_C,438 +2438,task_C,439 +2439,task_C,440 +2440,task_C,441 +2441,task_C,442 +2442,task_C,443 +2443,task_C,444 +2444,task_C,445 +2445,task_C,446 +2446,task_C,447 +2447,task_C,448 +2448,task_C,449 +2449,task_C,450 +2450,task_C,451 +2451,task_C,452 +2452,task_C,453 +2453,task_C,454 +2454,task_C,455 +2455,task_C,456 +2456,task_C,457 +2457,task_C,458 +2458,task_C,459 +2459,task_C,460 +2460,task_C,461 +2461,task_C,462 +2462,task_C,463 +2463,task_C,464 +2464,task_C,465 +2465,task_C,466 +2466,task_C,467 +2467,task_C,468 +2468,task_C,469 +2469,task_C,470 +2470,task_C,471 +2471,task_C,472 +2472,task_C,473 +2473,task_C,474 +2474,task_C,475 +2475,task_C,476 +2476,task_C,477 +2477,task_C,478 +2478,task_C,479 +2479,task_C,480 +2480,task_C,481 +2481,task_C,482 +2482,task_C,483 +2483,task_C,484 +2484,task_C,485 +2485,task_C,486 +2486,task_C,487 +2487,task_C,488 +2488,task_C,489 +2489,task_C,490 +2490,task_C,491 +2491,task_C,492 +2492,task_C,493 +2493,task_C,494 +2494,task_C,495 +2495,task_C,496 +2496,task_C,497 +2497,task_C,498 +2498,task_C,499 +2499,task_C,500 +2500,task_C,501 +2501,task_C,502 +2502,task_C,503 +2503,task_C,504 +2504,task_C,505 +2505,task_C,506 +2506,task_C,507 +2507,task_C,508 +2508,task_C,509 +2509,task_C,510 +2510,task_C,511 +2511,task_C,512 +2512,task_C,513 +2513,task_C,514 +2514,task_C,515 +2515,task_C,516 +2516,task_C,517 +2517,task_C,518 +2518,task_C,519 +2519,task_C,520 +2520,task_C,521 +2521,task_C,522 +2522,task_C,523 +2523,task_C,524 +2524,task_C,525 +2525,task_C,526 +2526,task_C,527 +2527,task_C,528 +2528,task_C,529 +2529,task_C,530 +2530,task_C,531 +2531,task_C,532 +2532,task_C,533 +2533,task_C,534 +2534,task_C,535 +2535,task_C,536 +2536,task_C,537 +2537,task_C,538 +2538,task_C,539 +2539,task_C,540 +2540,task_C,541 +2541,task_C,542 +2542,task_C,543 +2543,task_C,544 +2544,task_C,545 +2545,task_C,546 +2546,task_C,547 +2547,task_C,548 +2548,task_C,549 +2549,task_C,550 +2550,task_C,551 +2551,task_C,552 +2552,task_C,553 +2553,task_C,554 +2554,task_C,555 +2555,task_C,556 +2556,task_C,557 +2557,task_C,558 +2558,task_C,559 +2559,task_C,560 +2560,task_C,561 +2561,task_C,562 +2562,task_C,563 +2563,task_C,564 +2564,task_C,565 +2565,task_C,566 +2566,task_C,567 +2567,task_C,568 +2568,task_C,569 +2569,task_C,570 +2570,task_C,571 +2571,task_C,572 +2572,task_C,573 +2573,task_C,574 +2574,task_C,575 +2575,task_C,576 +2576,task_C,577 +2577,task_C,578 +2578,task_C,579 +2579,task_C,580 +2580,task_C,581 +2581,task_C,582 +2582,task_C,583 +2583,task_C,584 +2584,task_C,585 +2585,task_C,586 +2586,task_C,587 +2587,task_C,588 +2588,task_C,589 +2589,task_C,590 +2590,task_C,591 +2591,task_C,592 +2592,task_C,593 +2593,task_C,594 +2594,task_C,595 +2595,task_C,596 +2596,task_C,597 +2597,task_C,598 +2598,task_C,599 +2599,task_C,600 +2600,task_C,601 +2601,task_C,602 +2602,task_C,603 +2603,task_C,604 +2604,task_C,605 +2605,task_C,606 +2606,task_C,607 +2607,task_C,608 +2608,task_C,609 +2609,task_C,610 +2610,task_C,611 +2611,task_C,612 +2612,task_C,613 +2613,task_C,614 +2614,task_C,615 +2615,task_C,616 +2616,task_C,617 +2617,task_C,618 +2618,task_C,619 +2619,task_C,620 +2620,task_C,621 +2621,task_C,622 +2622,task_C,623 +2623,task_C,624 +2624,task_C,625 +2625,task_C,626 +2626,task_C,627 +2627,task_C,628 +2628,task_C,629 +2629,task_C,630 +2630,task_C,631 +2631,task_C,632 +2632,task_C,633 +2633,task_C,634 +2634,task_C,635 +2635,task_C,636 +2636,task_C,637 +2637,task_C,638 +2638,task_C,639 +2639,task_C,640 +2640,task_C,641 +2641,task_C,642 +2642,task_C,643 +2643,task_C,644 +2644,task_C,645 +2645,task_C,646 +2646,task_C,647 +2647,task_C,648 +2648,task_C,649 +2649,task_C,650 +2650,task_C,651 +2651,task_C,652 +2652,task_C,653 +2653,task_C,654 +2654,task_C,655 +2655,task_C,656 +2656,task_C,657 +2657,task_C,658 +2658,task_C,659 +2659,task_C,660 +2660,task_C,661 +2661,task_C,662 +2662,task_C,663 +2663,task_C,664 +2664,task_C,665 +2665,task_C,666 +2666,task_C,667 +2667,task_C,668 +2668,task_C,669 +2669,task_C,670 +2670,task_C,671 +2671,task_C,672 +2672,task_C,673 +2673,task_C,674 +2674,task_C,675 +2675,task_C,676 +2676,task_C,677 +2677,task_C,678 +2678,task_C,679 +2679,task_C,680 +2680,task_C,681 +2681,task_C,682 +2682,task_C,683 +2683,task_C,684 +2684,task_C,685 +2685,task_C,686 +2686,task_C,687 +2687,task_C,688 +2688,task_C,689 +2689,task_C,690 +2690,task_C,691 +2691,task_C,692 +2692,task_C,693 +2693,task_C,694 +2694,task_C,695 +2695,task_C,696 +2696,task_C,697 +2697,task_C,698 +2698,task_C,699 +2699,task_C,700 +2700,task_C,701 +2701,task_C,702 +2702,task_C,703 +2703,task_C,704 +2704,task_C,705 +2705,task_C,706 +2706,task_C,707 +2707,task_C,708 +2708,task_C,709 +2709,task_C,710 +2710,task_C,711 +2711,task_C,712 +2712,task_C,713 +2713,task_C,714 +2714,task_C,715 +2715,task_C,716 +2716,task_C,717 +2717,task_C,718 +2718,task_C,719 +2719,task_C,720 +2720,task_C,721 +2721,task_C,722 +2722,task_C,723 +2723,task_C,724 +2724,task_C,725 +2725,task_C,726 +2726,task_C,727 +2727,task_C,728 +2728,task_C,729 +2729,task_C,730 +2730,task_C,731 +2731,task_C,732 +2732,task_C,733 +2733,task_C,734 +2734,task_C,735 +2735,task_C,736 +2736,task_C,737 +2737,task_C,738 +2738,task_C,739 +2739,task_C,740 +2740,task_C,741 +2741,task_C,742 +2742,task_C,743 +2743,task_C,744 +2744,task_C,745 +2745,task_C,746 +2746,task_C,747 +2747,task_C,748 +2748,task_C,749 +2749,task_C,750 +2750,task_C,751 +2751,task_C,752 +2752,task_C,753 +2753,task_C,754 +2754,task_C,755 +2755,task_C,756 +2756,task_C,757 +2757,task_C,758 +2758,task_C,759 +2759,task_C,760 +2760,task_C,761 +2761,task_C,762 +2762,task_C,763 +2763,task_C,764 +2764,task_C,765 +2765,task_C,766 +2766,task_C,767 +2767,task_C,768 +2768,task_C,769 +2769,task_C,770 +2770,task_C,771 +2771,task_C,772 +2772,task_C,773 +2773,task_C,774 +2774,task_C,775 +2775,task_C,776 +2776,task_C,777 +2777,task_C,778 +2778,task_C,779 +2779,task_C,780 +2780,task_C,781 +2781,task_C,782 +2782,task_C,783 +2783,task_C,784 +2784,task_C,785 +2785,task_C,786 +2786,task_C,787 +2787,task_C,788 +2788,task_C,789 +2789,task_C,790 +2790,task_C,791 +2791,task_C,792 +2792,task_C,793 +2793,task_C,794 +2794,task_C,795 +2795,task_C,796 +2796,task_C,797 +2797,task_C,798 +2798,task_C,799 +2799,task_C,800 +2800,task_C,801 +2801,task_C,802 +2802,task_C,803 +2803,task_C,804 +2804,task_C,805 +2805,task_C,806 +2806,task_C,807 +2807,task_C,808 +2808,task_C,809 +2809,task_C,810 +2810,task_C,811 +2811,task_C,812 +2812,task_C,813 +2813,task_C,814 +2814,task_C,815 +2815,task_C,816 +2816,task_C,817 +2817,task_C,818 +2818,task_C,819 +2819,task_C,820 +2820,task_C,821 +2821,task_C,822 +2822,task_C,823 +2823,task_C,824 +2824,task_C,825 +2825,task_C,826 +2826,task_C,827 +2827,task_C,828 +2828,task_C,829 +2829,task_C,830 +2830,task_C,831 +2831,task_C,832 +2832,task_C,833 +2833,task_C,834 +2834,task_C,835 +2835,task_C,836 +2836,task_C,837 +2837,task_C,838 +2838,task_C,839 +2839,task_C,840 +2840,task_C,841 +2841,task_C,842 +2842,task_C,843 +2843,task_C,844 +2844,task_C,845 +2845,task_C,846 +2846,task_C,847 +2847,task_C,848 +2848,task_C,849 +2849,task_C,850 +2850,task_C,851 +2851,task_C,852 +2852,task_C,853 +2853,task_C,854 +2854,task_C,855 +2855,task_C,856 +2856,task_C,857 +2857,task_C,858 +2858,task_C,859 +2859,task_C,860 +2860,task_C,861 +2861,task_C,862 +2862,task_C,863 +2863,task_C,864 +2864,task_C,865 +2865,task_C,866 +2866,task_C,867 +2867,task_C,868 +2868,task_C,869 +2869,task_C,870 +2870,task_C,871 +2871,task_C,872 +2872,task_C,873 +2873,task_C,874 +2874,task_C,875 +2875,task_C,876 +2876,task_C,877 +2877,task_C,878 +2878,task_C,879 +2879,task_C,880 +2880,task_C,881 +2881,task_C,882 +2882,task_C,883 +2883,task_C,884 +2884,task_C,885 +2885,task_C,886 +2886,task_C,887 +2887,task_C,888 +2888,task_C,889 +2889,task_C,890 +2890,task_C,891 +2891,task_C,892 +2892,task_C,893 +2893,task_C,894 +2894,task_C,895 +2895,task_C,896 +2896,task_C,897 +2897,task_C,898 +2898,task_C,899 +2899,task_C,900 +2900,task_C,901 +2901,task_C,902 +2902,task_C,903 +2903,task_C,904 +2904,task_C,905 +2905,task_C,906 +2906,task_C,907 +2907,task_C,908 +2908,task_C,909 +2909,task_C,910 +2910,task_C,911 +2911,task_C,912 +2912,task_C,913 +2913,task_C,914 +2914,task_C,915 +2915,task_C,916 +2916,task_C,917 +2917,task_C,918 +2918,task_C,919 +2919,task_C,920 +2920,task_C,921 +2921,task_C,922 +2922,task_C,923 +2923,task_C,924 +2924,task_C,925 +2925,task_C,926 +2926,task_C,927 +2927,task_C,928 +2928,task_C,929 +2929,task_C,930 +2930,task_C,931 +2931,task_C,932 +2932,task_C,933 +2933,task_C,934 +2934,task_C,935 +2935,task_C,936 +2936,task_C,937 +2937,task_C,938 +2938,task_C,939 +2939,task_C,940 +2940,task_C,941 +2941,task_C,942 +2942,task_C,943 +2943,task_C,944 +2944,task_C,945 +2945,task_C,946 +2946,task_C,947 +2947,task_C,948 +2948,task_C,949 +2949,task_C,950 +2950,task_C,951 +2951,task_C,952 +2952,task_C,953 +2953,task_C,954 +2954,task_C,955 +2955,task_C,956 +2956,task_C,957 +2957,task_C,958 +2958,task_C,959 +2959,task_C,960 +2960,task_C,961 +2961,task_C,962 +2962,task_C,963 +2963,task_C,964 +2964,task_C,965 +2965,task_C,966 +2966,task_C,967 +2967,task_C,968 +2968,task_C,969 +2969,task_C,970 +2970,task_C,971 +2971,task_C,972 +2972,task_C,973 +2973,task_C,974 +2974,task_C,975 +2975,task_C,976 +2976,task_C,977 +2977,task_C,978 +2978,task_C,979 +2979,task_C,980 +2980,task_C,981 +2981,task_C,982 +2982,task_C,983 +2983,task_C,984 +2984,task_C,985 +2985,task_C,986 +2986,task_C,987 +2987,task_C,988 +2988,task_C,989 +2989,task_C,990 +2990,task_C,991 +2991,task_C,992 +2992,task_C,993 +2993,task_C,994 +2994,task_C,995 +2995,task_C,996 +2996,task_C,997 +2997,task_C,998 +2998,task_C,999 +2999,task_C,1000 +3000,task_D,1 +3001,task_D,2 +3002,task_D,3 +3003,task_D,4 +3004,task_D,5 +3005,task_D,6 +3006,task_D,7 +3007,task_D,8 +3008,task_D,9 +3009,task_D,10 +3010,task_D,11 +3011,task_D,12 +3012,task_D,13 +3013,task_D,14 +3014,task_D,15 +3015,task_D,16 +3016,task_D,17 +3017,task_D,18 +3018,task_D,19 +3019,task_D,20 +3020,task_D,21 +3021,task_D,22 +3022,task_D,23 +3023,task_D,24 +3024,task_D,25 +3025,task_D,26 +3026,task_D,27 +3027,task_D,28 +3028,task_D,29 +3029,task_D,30 +3030,task_D,31 +3031,task_D,32 +3032,task_D,33 +3033,task_D,34 +3034,task_D,35 +3035,task_D,36 +3036,task_D,37 +3037,task_D,38 +3038,task_D,39 +3039,task_D,40 +3040,task_D,41 +3041,task_D,42 +3042,task_D,43 +3043,task_D,44 +3044,task_D,45 +3045,task_D,46 +3046,task_D,47 +3047,task_D,48 +3048,task_D,49 +3049,task_D,50 +3050,task_D,51 +3051,task_D,52 +3052,task_D,53 +3053,task_D,54 +3054,task_D,55 +3055,task_D,56 +3056,task_D,57 +3057,task_D,58 +3058,task_D,59 +3059,task_D,60 +3060,task_D,61 +3061,task_D,62 +3062,task_D,63 +3063,task_D,64 +3064,task_D,65 +3065,task_D,66 +3066,task_D,67 +3067,task_D,68 +3068,task_D,69 +3069,task_D,70 +3070,task_D,71 +3071,task_D,72 +3072,task_D,73 +3073,task_D,74 +3074,task_D,75 +3075,task_D,76 +3076,task_D,77 +3077,task_D,78 +3078,task_D,79 +3079,task_D,80 +3080,task_D,81 +3081,task_D,82 +3082,task_D,83 +3083,task_D,84 +3084,task_D,85 +3085,task_D,86 +3086,task_D,87 +3087,task_D,88 +3088,task_D,89 +3089,task_D,90 +3090,task_D,91 +3091,task_D,92 +3092,task_D,93 +3093,task_D,94 +3094,task_D,95 +3095,task_D,96 +3096,task_D,97 +3097,task_D,98 +3098,task_D,99 +3099,task_D,100 +3100,task_D,101 +3101,task_D,102 +3102,task_D,103 +3103,task_D,104 +3104,task_D,105 +3105,task_D,106 +3106,task_D,107 +3107,task_D,108 +3108,task_D,109 +3109,task_D,110 +3110,task_D,111 +3111,task_D,112 +3112,task_D,113 +3113,task_D,114 +3114,task_D,115 +3115,task_D,116 +3116,task_D,117 +3117,task_D,118 +3118,task_D,119 +3119,task_D,120 +3120,task_D,121 +3121,task_D,122 +3122,task_D,123 +3123,task_D,124 +3124,task_D,125 +3125,task_D,126 +3126,task_D,127 +3127,task_D,128 +3128,task_D,129 +3129,task_D,130 +3130,task_D,131 +3131,task_D,132 +3132,task_D,133 +3133,task_D,134 +3134,task_D,135 +3135,task_D,136 +3136,task_D,137 +3137,task_D,138 +3138,task_D,139 +3139,task_D,140 +3140,task_D,141 +3141,task_D,142 +3142,task_D,143 +3143,task_D,144 +3144,task_D,145 +3145,task_D,146 +3146,task_D,147 +3147,task_D,148 +3148,task_D,149 +3149,task_D,150 +3150,task_D,151 +3151,task_D,152 +3152,task_D,153 +3153,task_D,154 +3154,task_D,155 +3155,task_D,156 +3156,task_D,157 +3157,task_D,158 +3158,task_D,159 +3159,task_D,160 +3160,task_D,161 +3161,task_D,162 +3162,task_D,163 +3163,task_D,164 +3164,task_D,165 +3165,task_D,166 +3166,task_D,167 +3167,task_D,168 +3168,task_D,169 +3169,task_D,170 +3170,task_D,171 +3171,task_D,172 +3172,task_D,173 +3173,task_D,174 +3174,task_D,175 +3175,task_D,176 +3176,task_D,177 +3177,task_D,178 +3178,task_D,179 +3179,task_D,180 +3180,task_D,181 +3181,task_D,182 +3182,task_D,183 +3183,task_D,184 +3184,task_D,185 +3185,task_D,186 +3186,task_D,187 +3187,task_D,188 +3188,task_D,189 +3189,task_D,190 +3190,task_D,191 +3191,task_D,192 +3192,task_D,193 +3193,task_D,194 +3194,task_D,195 +3195,task_D,196 +3196,task_D,197 +3197,task_D,198 +3198,task_D,199 +3199,task_D,200 +3200,task_D,201 +3201,task_D,202 +3202,task_D,203 +3203,task_D,204 +3204,task_D,205 +3205,task_D,206 +3206,task_D,207 +3207,task_D,208 +3208,task_D,209 +3209,task_D,210 +3210,task_D,211 +3211,task_D,212 +3212,task_D,213 +3213,task_D,214 +3214,task_D,215 +3215,task_D,216 +3216,task_D,217 +3217,task_D,218 +3218,task_D,219 +3219,task_D,220 +3220,task_D,221 +3221,task_D,222 +3222,task_D,223 +3223,task_D,224 +3224,task_D,225 +3225,task_D,226 +3226,task_D,227 +3227,task_D,228 +3228,task_D,229 +3229,task_D,230 +3230,task_D,231 +3231,task_D,232 +3232,task_D,233 +3233,task_D,234 +3234,task_D,235 +3235,task_D,236 +3236,task_D,237 +3237,task_D,238 +3238,task_D,239 +3239,task_D,240 +3240,task_D,241 +3241,task_D,242 +3242,task_D,243 +3243,task_D,244 +3244,task_D,245 +3245,task_D,246 +3246,task_D,247 +3247,task_D,248 +3248,task_D,249 +3249,task_D,250 +3250,task_D,251 +3251,task_D,252 +3252,task_D,253 +3253,task_D,254 +3254,task_D,255 +3255,task_D,256 +3256,task_D,257 +3257,task_D,258 +3258,task_D,259 +3259,task_D,260 +3260,task_D,261 +3261,task_D,262 +3262,task_D,263 +3263,task_D,264 +3264,task_D,265 +3265,task_D,266 +3266,task_D,267 +3267,task_D,268 +3268,task_D,269 +3269,task_D,270 +3270,task_D,271 +3271,task_D,272 +3272,task_D,273 +3273,task_D,274 +3274,task_D,275 +3275,task_D,276 +3276,task_D,277 +3277,task_D,278 +3278,task_D,279 +3279,task_D,280 +3280,task_D,281 +3281,task_D,282 +3282,task_D,283 +3283,task_D,284 +3284,task_D,285 +3285,task_D,286 +3286,task_D,287 +3287,task_D,288 +3288,task_D,289 +3289,task_D,290 +3290,task_D,291 +3291,task_D,292 +3292,task_D,293 +3293,task_D,294 +3294,task_D,295 +3295,task_D,296 +3296,task_D,297 +3297,task_D,298 +3298,task_D,299 +3299,task_D,300 +3300,task_D,301 +3301,task_D,302 +3302,task_D,303 +3303,task_D,304 +3304,task_D,305 +3305,task_D,306 +3306,task_D,307 +3307,task_D,308 +3308,task_D,309 +3309,task_D,310 +3310,task_D,311 +3311,task_D,312 +3312,task_D,313 +3313,task_D,314 +3314,task_D,315 +3315,task_D,316 +3316,task_D,317 +3317,task_D,318 +3318,task_D,319 +3319,task_D,320 +3320,task_D,321 +3321,task_D,322 +3322,task_D,323 +3323,task_D,324 +3324,task_D,325 +3325,task_D,326 +3326,task_D,327 +3327,task_D,328 +3328,task_D,329 +3329,task_D,330 +3330,task_D,331 +3331,task_D,332 +3332,task_D,333 +3333,task_D,334 +3334,task_D,335 +3335,task_D,336 +3336,task_D,337 +3337,task_D,338 +3338,task_D,339 +3339,task_D,340 +3340,task_D,341 +3341,task_D,342 +3342,task_D,343 +3343,task_D,344 +3344,task_D,345 +3345,task_D,346 +3346,task_D,347 +3347,task_D,348 +3348,task_D,349 +3349,task_D,350 +3350,task_D,351 +3351,task_D,352 +3352,task_D,353 +3353,task_D,354 +3354,task_D,355 +3355,task_D,356 +3356,task_D,357 +3357,task_D,358 +3358,task_D,359 +3359,task_D,360 +3360,task_D,361 +3361,task_D,362 +3362,task_D,363 +3363,task_D,364 +3364,task_D,365 +3365,task_D,366 +3366,task_D,367 +3367,task_D,368 +3368,task_D,369 +3369,task_D,370 +3370,task_D,371 +3371,task_D,372 +3372,task_D,373 +3373,task_D,374 +3374,task_D,375 +3375,task_D,376 +3376,task_D,377 +3377,task_D,378 +3378,task_D,379 +3379,task_D,380 +3380,task_D,381 +3381,task_D,382 +3382,task_D,383 +3383,task_D,384 +3384,task_D,385 +3385,task_D,386 +3386,task_D,387 +3387,task_D,388 +3388,task_D,389 +3389,task_D,390 +3390,task_D,391 +3391,task_D,392 +3392,task_D,393 +3393,task_D,394 +3394,task_D,395 +3395,task_D,396 +3396,task_D,397 +3397,task_D,398 +3398,task_D,399 +3399,task_D,400 +3400,task_D,401 +3401,task_D,402 +3402,task_D,403 +3403,task_D,404 +3404,task_D,405 +3405,task_D,406 +3406,task_D,407 +3407,task_D,408 +3408,task_D,409 +3409,task_D,410 +3410,task_D,411 +3411,task_D,412 +3412,task_D,413 +3413,task_D,414 +3414,task_D,415 +3415,task_D,416 +3416,task_D,417 +3417,task_D,418 +3418,task_D,419 +3419,task_D,420 +3420,task_D,421 +3421,task_D,422 +3422,task_D,423 +3423,task_D,424 +3424,task_D,425 +3425,task_D,426 +3426,task_D,427 +3427,task_D,428 +3428,task_D,429 +3429,task_D,430 +3430,task_D,431 +3431,task_D,432 +3432,task_D,433 +3433,task_D,434 +3434,task_D,435 +3435,task_D,436 +3436,task_D,437 +3437,task_D,438 +3438,task_D,439 +3439,task_D,440 +3440,task_D,441 +3441,task_D,442 +3442,task_D,443 +3443,task_D,444 +3444,task_D,445 +3445,task_D,446 +3446,task_D,447 +3447,task_D,448 +3448,task_D,449 +3449,task_D,450 +3450,task_D,451 +3451,task_D,452 +3452,task_D,453 +3453,task_D,454 +3454,task_D,455 +3455,task_D,456 +3456,task_D,457 +3457,task_D,458 +3458,task_D,459 +3459,task_D,460 +3460,task_D,461 +3461,task_D,462 +3462,task_D,463 +3463,task_D,464 +3464,task_D,465 +3465,task_D,466 +3466,task_D,467 +3467,task_D,468 +3468,task_D,469 +3469,task_D,470 +3470,task_D,471 +3471,task_D,472 +3472,task_D,473 +3473,task_D,474 +3474,task_D,475 +3475,task_D,476 +3476,task_D,477 +3477,task_D,478 +3478,task_D,479 +3479,task_D,480 +3480,task_D,481 +3481,task_D,482 +3482,task_D,483 +3483,task_D,484 +3484,task_D,485 +3485,task_D,486 +3486,task_D,487 +3487,task_D,488 +3488,task_D,489 +3489,task_D,490 +3490,task_D,491 +3491,task_D,492 +3492,task_D,493 +3493,task_D,494 +3494,task_D,495 +3495,task_D,496 +3496,task_D,497 +3497,task_D,498 +3498,task_D,499 +3499,task_D,500 +3500,task_D,501 +3501,task_D,502 +3502,task_D,503 +3503,task_D,504 +3504,task_D,505 +3505,task_D,506 +3506,task_D,507 +3507,task_D,508 +3508,task_D,509 +3509,task_D,510 +3510,task_D,511 +3511,task_D,512 +3512,task_D,513 +3513,task_D,514 +3514,task_D,515 +3515,task_D,516 +3516,task_D,517 +3517,task_D,518 +3518,task_D,519 +3519,task_D,520 +3520,task_D,521 +3521,task_D,522 +3522,task_D,523 +3523,task_D,524 +3524,task_D,525 +3525,task_D,526 +3526,task_D,527 +3527,task_D,528 +3528,task_D,529 +3529,task_D,530 +3530,task_D,531 +3531,task_D,532 +3532,task_D,533 +3533,task_D,534 +3534,task_D,535 +3535,task_D,536 +3536,task_D,537 +3537,task_D,538 +3538,task_D,539 +3539,task_D,540 +3540,task_D,541 +3541,task_D,542 +3542,task_D,543 +3543,task_D,544 +3544,task_D,545 +3545,task_D,546 +3546,task_D,547 +3547,task_D,548 +3548,task_D,549 +3549,task_D,550 +3550,task_D,551 +3551,task_D,552 +3552,task_D,553 +3553,task_D,554 +3554,task_D,555 +3555,task_D,556 +3556,task_D,557 +3557,task_D,558 +3558,task_D,559 +3559,task_D,560 +3560,task_D,561 +3561,task_D,562 +3562,task_D,563 +3563,task_D,564 +3564,task_D,565 +3565,task_D,566 +3566,task_D,567 +3567,task_D,568 +3568,task_D,569 +3569,task_D,570 +3570,task_D,571 +3571,task_D,572 +3572,task_D,573 +3573,task_D,574 +3574,task_D,575 +3575,task_D,576 +3576,task_D,577 +3577,task_D,578 +3578,task_D,579 +3579,task_D,580 +3580,task_D,581 +3581,task_D,582 +3582,task_D,583 +3583,task_D,584 +3584,task_D,585 +3585,task_D,586 +3586,task_D,587 +3587,task_D,588 +3588,task_D,589 +3589,task_D,590 +3590,task_D,591 +3591,task_D,592 +3592,task_D,593 +3593,task_D,594 +3594,task_D,595 +3595,task_D,596 +3596,task_D,597 +3597,task_D,598 +3598,task_D,599 +3599,task_D,600 +3600,task_D,601 +3601,task_D,602 +3602,task_D,603 +3603,task_D,604 +3604,task_D,605 +3605,task_D,606 +3606,task_D,607 +3607,task_D,608 +3608,task_D,609 +3609,task_D,610 +3610,task_D,611 +3611,task_D,612 +3612,task_D,613 +3613,task_D,614 +3614,task_D,615 +3615,task_D,616 +3616,task_D,617 +3617,task_D,618 +3618,task_D,619 +3619,task_D,620 +3620,task_D,621 +3621,task_D,622 +3622,task_D,623 +3623,task_D,624 +3624,task_D,625 +3625,task_D,626 +3626,task_D,627 +3627,task_D,628 +3628,task_D,629 +3629,task_D,630 +3630,task_D,631 +3631,task_D,632 +3632,task_D,633 +3633,task_D,634 +3634,task_D,635 +3635,task_D,636 +3636,task_D,637 +3637,task_D,638 +3638,task_D,639 +3639,task_D,640 +3640,task_D,641 +3641,task_D,642 +3642,task_D,643 +3643,task_D,644 +3644,task_D,645 +3645,task_D,646 +3646,task_D,647 +3647,task_D,648 +3648,task_D,649 +3649,task_D,650 +3650,task_D,651 +3651,task_D,652 +3652,task_D,653 +3653,task_D,654 +3654,task_D,655 +3655,task_D,656 +3656,task_D,657 +3657,task_D,658 +3658,task_D,659 +3659,task_D,660 +3660,task_D,661 +3661,task_D,662 +3662,task_D,663 +3663,task_D,664 +3664,task_D,665 +3665,task_D,666 +3666,task_D,667 +3667,task_D,668 +3668,task_D,669 +3669,task_D,670 +3670,task_D,671 +3671,task_D,672 +3672,task_D,673 +3673,task_D,674 +3674,task_D,675 +3675,task_D,676 +3676,task_D,677 +3677,task_D,678 +3678,task_D,679 +3679,task_D,680 +3680,task_D,681 +3681,task_D,682 +3682,task_D,683 +3683,task_D,684 +3684,task_D,685 +3685,task_D,686 +3686,task_D,687 +3687,task_D,688 +3688,task_D,689 +3689,task_D,690 +3690,task_D,691 +3691,task_D,692 +3692,task_D,693 +3693,task_D,694 +3694,task_D,695 +3695,task_D,696 +3696,task_D,697 +3697,task_D,698 +3698,task_D,699 +3699,task_D,700 +3700,task_D,701 +3701,task_D,702 +3702,task_D,703 +3703,task_D,704 +3704,task_D,705 +3705,task_D,706 +3706,task_D,707 +3707,task_D,708 +3708,task_D,709 +3709,task_D,710 +3710,task_D,711 +3711,task_D,712 +3712,task_D,713 +3713,task_D,714 +3714,task_D,715 +3715,task_D,716 +3716,task_D,717 +3717,task_D,718 +3718,task_D,719 +3719,task_D,720 +3720,task_D,721 +3721,task_D,722 +3722,task_D,723 +3723,task_D,724 +3724,task_D,725 +3725,task_D,726 +3726,task_D,727 +3727,task_D,728 +3728,task_D,729 +3729,task_D,730 +3730,task_D,731 +3731,task_D,732 +3732,task_D,733 +3733,task_D,734 +3734,task_D,735 +3735,task_D,736 +3736,task_D,737 +3737,task_D,738 +3738,task_D,739 +3739,task_D,740 +3740,task_D,741 +3741,task_D,742 +3742,task_D,743 +3743,task_D,744 +3744,task_D,745 +3745,task_D,746 +3746,task_D,747 +3747,task_D,748 +3748,task_D,749 +3749,task_D,750 +3750,task_D,751 +3751,task_D,752 +3752,task_D,753 +3753,task_D,754 +3754,task_D,755 +3755,task_D,756 +3756,task_D,757 +3757,task_D,758 +3758,task_D,759 +3759,task_D,760 +3760,task_D,761 +3761,task_D,762 +3762,task_D,763 +3763,task_D,764 +3764,task_D,765 +3765,task_D,766 +3766,task_D,767 +3767,task_D,768 +3768,task_D,769 +3769,task_D,770 +3770,task_D,771 +3771,task_D,772 +3772,task_D,773 +3773,task_D,774 +3774,task_D,775 +3775,task_D,776 +3776,task_D,777 +3777,task_D,778 +3778,task_D,779 +3779,task_D,780 +3780,task_D,781 +3781,task_D,782 +3782,task_D,783 +3783,task_D,784 +3784,task_D,785 +3785,task_D,786 +3786,task_D,787 +3787,task_D,788 +3788,task_D,789 +3789,task_D,790 +3790,task_D,791 +3791,task_D,792 +3792,task_D,793 +3793,task_D,794 +3794,task_D,795 +3795,task_D,796 +3796,task_D,797 +3797,task_D,798 +3798,task_D,799 +3799,task_D,800 +3800,task_D,801 +3801,task_D,802 +3802,task_D,803 +3803,task_D,804 +3804,task_D,805 +3805,task_D,806 +3806,task_D,807 +3807,task_D,808 +3808,task_D,809 +3809,task_D,810 +3810,task_D,811 +3811,task_D,812 +3812,task_D,813 +3813,task_D,814 +3814,task_D,815 +3815,task_D,816 +3816,task_D,817 +3817,task_D,818 +3818,task_D,819 +3819,task_D,820 +3820,task_D,821 +3821,task_D,822 +3822,task_D,823 +3823,task_D,824 +3824,task_D,825 +3825,task_D,826 +3826,task_D,827 +3827,task_D,828 +3828,task_D,829 +3829,task_D,830 +3830,task_D,831 +3831,task_D,832 +3832,task_D,833 +3833,task_D,834 +3834,task_D,835 +3835,task_D,836 +3836,task_D,837 +3837,task_D,838 +3838,task_D,839 +3839,task_D,840 +3840,task_D,841 +3841,task_D,842 +3842,task_D,843 +3843,task_D,844 +3844,task_D,845 +3845,task_D,846 +3846,task_D,847 +3847,task_D,848 +3848,task_D,849 +3849,task_D,850 +3850,task_D,851 +3851,task_D,852 +3852,task_D,853 +3853,task_D,854 +3854,task_D,855 +3855,task_D,856 +3856,task_D,857 +3857,task_D,858 +3858,task_D,859 +3859,task_D,860 +3860,task_D,861 +3861,task_D,862 +3862,task_D,863 +3863,task_D,864 +3864,task_D,865 +3865,task_D,866 +3866,task_D,867 +3867,task_D,868 +3868,task_D,869 +3869,task_D,870 +3870,task_D,871 +3871,task_D,872 +3872,task_D,873 +3873,task_D,874 +3874,task_D,875 +3875,task_D,876 +3876,task_D,877 +3877,task_D,878 +3878,task_D,879 +3879,task_D,880 +3880,task_D,881 +3881,task_D,882 +3882,task_D,883 +3883,task_D,884 +3884,task_D,885 +3885,task_D,886 +3886,task_D,887 +3887,task_D,888 +3888,task_D,889 +3889,task_D,890 +3890,task_D,891 +3891,task_D,892 +3892,task_D,893 +3893,task_D,894 +3894,task_D,895 +3895,task_D,896 +3896,task_D,897 +3897,task_D,898 +3898,task_D,899 +3899,task_D,900 +3900,task_D,901 +3901,task_D,902 +3902,task_D,903 +3903,task_D,904 +3904,task_D,905 +3905,task_D,906 +3906,task_D,907 +3907,task_D,908 +3908,task_D,909 +3909,task_D,910 +3910,task_D,911 +3911,task_D,912 +3912,task_D,913 +3913,task_D,914 +3914,task_D,915 +3915,task_D,916 +3916,task_D,917 +3917,task_D,918 +3918,task_D,919 +3919,task_D,920 +3920,task_D,921 +3921,task_D,922 +3922,task_D,923 +3923,task_D,924 +3924,task_D,925 +3925,task_D,926 +3926,task_D,927 +3927,task_D,928 +3928,task_D,929 +3929,task_D,930 +3930,task_D,931 +3931,task_D,932 +3932,task_D,933 +3933,task_D,934 +3934,task_D,935 +3935,task_D,936 +3936,task_D,937 +3937,task_D,938 +3938,task_D,939 +3939,task_D,940 +3940,task_D,941 +3941,task_D,942 +3942,task_D,943 +3943,task_D,944 +3944,task_D,945 +3945,task_D,946 +3946,task_D,947 +3947,task_D,948 +3948,task_D,949 +3949,task_D,950 +3950,task_D,951 +3951,task_D,952 +3952,task_D,953 +3953,task_D,954 +3954,task_D,955 +3955,task_D,956 +3956,task_D,957 +3957,task_D,958 +3958,task_D,959 +3959,task_D,960 +3960,task_D,961 +3961,task_D,962 +3962,task_D,963 +3963,task_D,964 +3964,task_D,965 +3965,task_D,966 +3966,task_D,967 +3967,task_D,968 +3968,task_D,969 +3969,task_D,970 +3970,task_D,971 +3971,task_D,972 +3972,task_D,973 +3973,task_D,974 +3974,task_D,975 +3975,task_D,976 +3976,task_D,977 +3977,task_D,978 +3978,task_D,979 +3979,task_D,980 +3980,task_D,981 +3981,task_D,982 +3982,task_D,983 +3983,task_D,984 +3984,task_D,985 +3985,task_D,986 +3986,task_D,987 +3987,task_D,988 +3988,task_D,989 +3989,task_D,990 +3990,task_D,991 +3991,task_D,992 +3992,task_D,993 +3993,task_D,994 +3994,task_D,995 +3995,task_D,996 +3996,task_D,997 +3997,task_D,998 +3998,task_D,999 +3999,task_D,1000 diff --git a/studies/cddm_data_generation/exp_cddm_input.csv b/studies/cddm_data_generation/exp_cddm_input.csv new file mode 100644 index 0000000..786c323 --- /dev/null +++ b/studies/cddm_data_generation/exp_cddm_input.csv @@ -0,0 +1,4001 @@ +,seed,task_ID +0,1,task_A +1,2,task_A +2,3,task_A +3,4,task_A +4,5,task_A +5,6,task_A +6,7,task_A +7,8,task_A +8,9,task_A +9,10,task_A +10,11,task_A +11,12,task_A +12,13,task_A +13,14,task_A +14,15,task_A +15,16,task_A +16,17,task_A +17,18,task_A +18,19,task_A +19,20,task_A +20,21,task_A +21,22,task_A +22,23,task_A +23,24,task_A +24,25,task_A +25,26,task_A +26,27,task_A +27,28,task_A +28,29,task_A +29,30,task_A +30,31,task_A +31,32,task_A +32,33,task_A +33,34,task_A +34,35,task_A +35,36,task_A +36,37,task_A +37,38,task_A +38,39,task_A +39,40,task_A +40,41,task_A +41,42,task_A +42,43,task_A +43,44,task_A +44,45,task_A +45,46,task_A +46,47,task_A +47,48,task_A +48,49,task_A +49,50,task_A +50,51,task_A +51,52,task_A +52,53,task_A +53,54,task_A +54,55,task_A +55,56,task_A +56,57,task_A +57,58,task_A +58,59,task_A +59,60,task_A +60,61,task_A +61,62,task_A +62,63,task_A +63,64,task_A +64,65,task_A +65,66,task_A +66,67,task_A +67,68,task_A +68,69,task_A +69,70,task_A +70,71,task_A +71,72,task_A +72,73,task_A +73,74,task_A +74,75,task_A +75,76,task_A +76,77,task_A +77,78,task_A +78,79,task_A +79,80,task_A +80,81,task_A +81,82,task_A +82,83,task_A +83,84,task_A +84,85,task_A +85,86,task_A +86,87,task_A +87,88,task_A +88,89,task_A +89,90,task_A +90,91,task_A +91,92,task_A +92,93,task_A +93,94,task_A +94,95,task_A +95,96,task_A +96,97,task_A +97,98,task_A +98,99,task_A +99,100,task_A +100,101,task_A +101,102,task_A +102,103,task_A +103,104,task_A +104,105,task_A +105,106,task_A +106,107,task_A +107,108,task_A +108,109,task_A +109,110,task_A +110,111,task_A +111,112,task_A +112,113,task_A +113,114,task_A +114,115,task_A +115,116,task_A +116,117,task_A +117,118,task_A +118,119,task_A +119,120,task_A +120,121,task_A +121,122,task_A +122,123,task_A +123,124,task_A +124,125,task_A +125,126,task_A +126,127,task_A +127,128,task_A +128,129,task_A +129,130,task_A +130,131,task_A +131,132,task_A +132,133,task_A +133,134,task_A +134,135,task_A +135,136,task_A +136,137,task_A +137,138,task_A +138,139,task_A +139,140,task_A +140,141,task_A +141,142,task_A +142,143,task_A +143,144,task_A +144,145,task_A +145,146,task_A +146,147,task_A +147,148,task_A +148,149,task_A +149,150,task_A +150,151,task_A +151,152,task_A +152,153,task_A +153,154,task_A +154,155,task_A +155,156,task_A +156,157,task_A +157,158,task_A +158,159,task_A +159,160,task_A +160,161,task_A +161,162,task_A +162,163,task_A +163,164,task_A +164,165,task_A +165,166,task_A +166,167,task_A +167,168,task_A +168,169,task_A +169,170,task_A +170,171,task_A +171,172,task_A +172,173,task_A +173,174,task_A +174,175,task_A +175,176,task_A +176,177,task_A +177,178,task_A +178,179,task_A +179,180,task_A +180,181,task_A +181,182,task_A +182,183,task_A +183,184,task_A +184,185,task_A +185,186,task_A +186,187,task_A +187,188,task_A +188,189,task_A +189,190,task_A +190,191,task_A +191,192,task_A +192,193,task_A +193,194,task_A +194,195,task_A +195,196,task_A +196,197,task_A +197,198,task_A +198,199,task_A +199,200,task_A +200,201,task_A +201,202,task_A +202,203,task_A +203,204,task_A +204,205,task_A +205,206,task_A +206,207,task_A +207,208,task_A +208,209,task_A +209,210,task_A +210,211,task_A +211,212,task_A +212,213,task_A +213,214,task_A +214,215,task_A +215,216,task_A +216,217,task_A +217,218,task_A +218,219,task_A +219,220,task_A +220,221,task_A +221,222,task_A +222,223,task_A +223,224,task_A +224,225,task_A +225,226,task_A +226,227,task_A +227,228,task_A +228,229,task_A +229,230,task_A +230,231,task_A +231,232,task_A +232,233,task_A +233,234,task_A +234,235,task_A +235,236,task_A +236,237,task_A +237,238,task_A +238,239,task_A +239,240,task_A +240,241,task_A +241,242,task_A +242,243,task_A +243,244,task_A +244,245,task_A +245,246,task_A +246,247,task_A +247,248,task_A +248,249,task_A +249,250,task_A +250,251,task_A +251,252,task_A +252,253,task_A +253,254,task_A +254,255,task_A +255,256,task_A +256,257,task_A +257,258,task_A +258,259,task_A +259,260,task_A +260,261,task_A +261,262,task_A +262,263,task_A +263,264,task_A +264,265,task_A +265,266,task_A +266,267,task_A +267,268,task_A +268,269,task_A +269,270,task_A +270,271,task_A +271,272,task_A +272,273,task_A +273,274,task_A +274,275,task_A +275,276,task_A +276,277,task_A +277,278,task_A +278,279,task_A +279,280,task_A +280,281,task_A +281,282,task_A +282,283,task_A +283,284,task_A +284,285,task_A +285,286,task_A +286,287,task_A +287,288,task_A +288,289,task_A +289,290,task_A +290,291,task_A +291,292,task_A +292,293,task_A +293,294,task_A +294,295,task_A +295,296,task_A +296,297,task_A +297,298,task_A +298,299,task_A +299,300,task_A +300,301,task_A +301,302,task_A +302,303,task_A +303,304,task_A +304,305,task_A +305,306,task_A +306,307,task_A +307,308,task_A +308,309,task_A +309,310,task_A +310,311,task_A +311,312,task_A +312,313,task_A +313,314,task_A +314,315,task_A +315,316,task_A +316,317,task_A +317,318,task_A +318,319,task_A +319,320,task_A +320,321,task_A +321,322,task_A +322,323,task_A +323,324,task_A +324,325,task_A +325,326,task_A +326,327,task_A +327,328,task_A +328,329,task_A +329,330,task_A +330,331,task_A +331,332,task_A +332,333,task_A +333,334,task_A +334,335,task_A +335,336,task_A +336,337,task_A +337,338,task_A +338,339,task_A +339,340,task_A +340,341,task_A +341,342,task_A +342,343,task_A +343,344,task_A +344,345,task_A +345,346,task_A +346,347,task_A +347,348,task_A +348,349,task_A +349,350,task_A +350,351,task_A +351,352,task_A +352,353,task_A +353,354,task_A +354,355,task_A +355,356,task_A +356,357,task_A +357,358,task_A +358,359,task_A +359,360,task_A +360,361,task_A +361,362,task_A +362,363,task_A +363,364,task_A +364,365,task_A +365,366,task_A +366,367,task_A +367,368,task_A +368,369,task_A +369,370,task_A +370,371,task_A +371,372,task_A +372,373,task_A +373,374,task_A +374,375,task_A +375,376,task_A +376,377,task_A +377,378,task_A +378,379,task_A +379,380,task_A +380,381,task_A +381,382,task_A +382,383,task_A +383,384,task_A +384,385,task_A +385,386,task_A +386,387,task_A +387,388,task_A +388,389,task_A +389,390,task_A +390,391,task_A +391,392,task_A +392,393,task_A +393,394,task_A +394,395,task_A +395,396,task_A +396,397,task_A +397,398,task_A +398,399,task_A +399,400,task_A +400,401,task_A +401,402,task_A +402,403,task_A +403,404,task_A +404,405,task_A +405,406,task_A +406,407,task_A +407,408,task_A +408,409,task_A +409,410,task_A +410,411,task_A +411,412,task_A +412,413,task_A +413,414,task_A +414,415,task_A +415,416,task_A +416,417,task_A +417,418,task_A +418,419,task_A +419,420,task_A +420,421,task_A +421,422,task_A +422,423,task_A +423,424,task_A +424,425,task_A +425,426,task_A +426,427,task_A +427,428,task_A +428,429,task_A +429,430,task_A +430,431,task_A +431,432,task_A +432,433,task_A +433,434,task_A +434,435,task_A +435,436,task_A +436,437,task_A +437,438,task_A +438,439,task_A +439,440,task_A +440,441,task_A +441,442,task_A +442,443,task_A +443,444,task_A +444,445,task_A +445,446,task_A +446,447,task_A +447,448,task_A +448,449,task_A +449,450,task_A +450,451,task_A +451,452,task_A +452,453,task_A +453,454,task_A +454,455,task_A +455,456,task_A +456,457,task_A +457,458,task_A +458,459,task_A +459,460,task_A +460,461,task_A +461,462,task_A +462,463,task_A +463,464,task_A +464,465,task_A +465,466,task_A +466,467,task_A +467,468,task_A +468,469,task_A +469,470,task_A +470,471,task_A +471,472,task_A +472,473,task_A +473,474,task_A +474,475,task_A +475,476,task_A +476,477,task_A +477,478,task_A +478,479,task_A +479,480,task_A +480,481,task_A +481,482,task_A +482,483,task_A +483,484,task_A +484,485,task_A +485,486,task_A +486,487,task_A +487,488,task_A +488,489,task_A +489,490,task_A +490,491,task_A +491,492,task_A +492,493,task_A +493,494,task_A +494,495,task_A +495,496,task_A +496,497,task_A +497,498,task_A +498,499,task_A +499,500,task_A +500,501,task_A +501,502,task_A +502,503,task_A +503,504,task_A +504,505,task_A +505,506,task_A +506,507,task_A +507,508,task_A +508,509,task_A +509,510,task_A +510,511,task_A +511,512,task_A +512,513,task_A +513,514,task_A +514,515,task_A +515,516,task_A +516,517,task_A +517,518,task_A +518,519,task_A +519,520,task_A +520,521,task_A +521,522,task_A +522,523,task_A +523,524,task_A +524,525,task_A +525,526,task_A +526,527,task_A +527,528,task_A +528,529,task_A +529,530,task_A +530,531,task_A +531,532,task_A +532,533,task_A +533,534,task_A +534,535,task_A +535,536,task_A +536,537,task_A +537,538,task_A +538,539,task_A +539,540,task_A +540,541,task_A +541,542,task_A +542,543,task_A +543,544,task_A +544,545,task_A +545,546,task_A +546,547,task_A +547,548,task_A +548,549,task_A +549,550,task_A +550,551,task_A +551,552,task_A +552,553,task_A +553,554,task_A +554,555,task_A +555,556,task_A +556,557,task_A +557,558,task_A +558,559,task_A +559,560,task_A +560,561,task_A +561,562,task_A +562,563,task_A +563,564,task_A +564,565,task_A +565,566,task_A +566,567,task_A +567,568,task_A +568,569,task_A +569,570,task_A +570,571,task_A +571,572,task_A +572,573,task_A +573,574,task_A +574,575,task_A +575,576,task_A +576,577,task_A +577,578,task_A +578,579,task_A +579,580,task_A +580,581,task_A +581,582,task_A +582,583,task_A +583,584,task_A +584,585,task_A +585,586,task_A +586,587,task_A +587,588,task_A +588,589,task_A +589,590,task_A +590,591,task_A +591,592,task_A +592,593,task_A +593,594,task_A +594,595,task_A +595,596,task_A +596,597,task_A +597,598,task_A +598,599,task_A +599,600,task_A +600,601,task_A +601,602,task_A +602,603,task_A +603,604,task_A +604,605,task_A +605,606,task_A +606,607,task_A +607,608,task_A +608,609,task_A +609,610,task_A +610,611,task_A +611,612,task_A +612,613,task_A +613,614,task_A +614,615,task_A +615,616,task_A +616,617,task_A +617,618,task_A +618,619,task_A +619,620,task_A +620,621,task_A +621,622,task_A +622,623,task_A +623,624,task_A +624,625,task_A +625,626,task_A +626,627,task_A +627,628,task_A +628,629,task_A +629,630,task_A +630,631,task_A +631,632,task_A +632,633,task_A +633,634,task_A +634,635,task_A +635,636,task_A +636,637,task_A +637,638,task_A +638,639,task_A +639,640,task_A +640,641,task_A +641,642,task_A +642,643,task_A +643,644,task_A +644,645,task_A +645,646,task_A +646,647,task_A +647,648,task_A +648,649,task_A +649,650,task_A +650,651,task_A +651,652,task_A +652,653,task_A +653,654,task_A +654,655,task_A +655,656,task_A +656,657,task_A +657,658,task_A +658,659,task_A +659,660,task_A +660,661,task_A +661,662,task_A +662,663,task_A +663,664,task_A +664,665,task_A +665,666,task_A +666,667,task_A +667,668,task_A +668,669,task_A +669,670,task_A +670,671,task_A +671,672,task_A +672,673,task_A +673,674,task_A +674,675,task_A +675,676,task_A +676,677,task_A +677,678,task_A +678,679,task_A +679,680,task_A +680,681,task_A +681,682,task_A +682,683,task_A +683,684,task_A +684,685,task_A +685,686,task_A +686,687,task_A +687,688,task_A +688,689,task_A +689,690,task_A +690,691,task_A +691,692,task_A +692,693,task_A +693,694,task_A +694,695,task_A +695,696,task_A +696,697,task_A +697,698,task_A +698,699,task_A +699,700,task_A +700,701,task_A +701,702,task_A +702,703,task_A +703,704,task_A +704,705,task_A +705,706,task_A +706,707,task_A +707,708,task_A +708,709,task_A +709,710,task_A +710,711,task_A +711,712,task_A +712,713,task_A +713,714,task_A +714,715,task_A +715,716,task_A +716,717,task_A +717,718,task_A +718,719,task_A +719,720,task_A +720,721,task_A +721,722,task_A +722,723,task_A +723,724,task_A +724,725,task_A +725,726,task_A +726,727,task_A +727,728,task_A +728,729,task_A +729,730,task_A +730,731,task_A +731,732,task_A +732,733,task_A +733,734,task_A +734,735,task_A +735,736,task_A +736,737,task_A +737,738,task_A +738,739,task_A +739,740,task_A +740,741,task_A +741,742,task_A +742,743,task_A +743,744,task_A +744,745,task_A +745,746,task_A +746,747,task_A +747,748,task_A +748,749,task_A +749,750,task_A +750,751,task_A +751,752,task_A +752,753,task_A +753,754,task_A +754,755,task_A +755,756,task_A +756,757,task_A +757,758,task_A +758,759,task_A +759,760,task_A +760,761,task_A +761,762,task_A +762,763,task_A +763,764,task_A +764,765,task_A +765,766,task_A +766,767,task_A +767,768,task_A +768,769,task_A +769,770,task_A +770,771,task_A +771,772,task_A +772,773,task_A +773,774,task_A +774,775,task_A +775,776,task_A +776,777,task_A +777,778,task_A +778,779,task_A +779,780,task_A +780,781,task_A +781,782,task_A +782,783,task_A +783,784,task_A +784,785,task_A +785,786,task_A +786,787,task_A +787,788,task_A +788,789,task_A +789,790,task_A +790,791,task_A +791,792,task_A +792,793,task_A +793,794,task_A +794,795,task_A +795,796,task_A +796,797,task_A +797,798,task_A +798,799,task_A +799,800,task_A +800,801,task_A +801,802,task_A +802,803,task_A +803,804,task_A +804,805,task_A +805,806,task_A +806,807,task_A +807,808,task_A +808,809,task_A +809,810,task_A +810,811,task_A +811,812,task_A +812,813,task_A +813,814,task_A +814,815,task_A +815,816,task_A +816,817,task_A +817,818,task_A +818,819,task_A +819,820,task_A +820,821,task_A +821,822,task_A +822,823,task_A +823,824,task_A +824,825,task_A +825,826,task_A +826,827,task_A +827,828,task_A +828,829,task_A +829,830,task_A +830,831,task_A +831,832,task_A +832,833,task_A +833,834,task_A +834,835,task_A +835,836,task_A +836,837,task_A +837,838,task_A +838,839,task_A +839,840,task_A +840,841,task_A +841,842,task_A +842,843,task_A +843,844,task_A +844,845,task_A +845,846,task_A +846,847,task_A +847,848,task_A +848,849,task_A +849,850,task_A +850,851,task_A +851,852,task_A +852,853,task_A +853,854,task_A +854,855,task_A +855,856,task_A +856,857,task_A +857,858,task_A +858,859,task_A +859,860,task_A +860,861,task_A +861,862,task_A +862,863,task_A +863,864,task_A +864,865,task_A +865,866,task_A +866,867,task_A +867,868,task_A +868,869,task_A +869,870,task_A +870,871,task_A +871,872,task_A +872,873,task_A +873,874,task_A +874,875,task_A +875,876,task_A +876,877,task_A +877,878,task_A +878,879,task_A +879,880,task_A +880,881,task_A +881,882,task_A +882,883,task_A +883,884,task_A +884,885,task_A +885,886,task_A +886,887,task_A +887,888,task_A +888,889,task_A +889,890,task_A +890,891,task_A +891,892,task_A +892,893,task_A +893,894,task_A +894,895,task_A +895,896,task_A +896,897,task_A +897,898,task_A +898,899,task_A +899,900,task_A +900,901,task_A +901,902,task_A +902,903,task_A +903,904,task_A +904,905,task_A +905,906,task_A +906,907,task_A +907,908,task_A +908,909,task_A +909,910,task_A +910,911,task_A +911,912,task_A +912,913,task_A +913,914,task_A +914,915,task_A +915,916,task_A +916,917,task_A +917,918,task_A +918,919,task_A +919,920,task_A +920,921,task_A +921,922,task_A +922,923,task_A +923,924,task_A +924,925,task_A +925,926,task_A +926,927,task_A +927,928,task_A +928,929,task_A +929,930,task_A +930,931,task_A +931,932,task_A +932,933,task_A +933,934,task_A +934,935,task_A +935,936,task_A +936,937,task_A +937,938,task_A +938,939,task_A +939,940,task_A +940,941,task_A +941,942,task_A +942,943,task_A +943,944,task_A +944,945,task_A +945,946,task_A +946,947,task_A +947,948,task_A +948,949,task_A +949,950,task_A +950,951,task_A +951,952,task_A +952,953,task_A +953,954,task_A +954,955,task_A +955,956,task_A +956,957,task_A +957,958,task_A +958,959,task_A +959,960,task_A +960,961,task_A +961,962,task_A +962,963,task_A +963,964,task_A +964,965,task_A +965,966,task_A +966,967,task_A +967,968,task_A +968,969,task_A +969,970,task_A +970,971,task_A +971,972,task_A +972,973,task_A +973,974,task_A +974,975,task_A +975,976,task_A +976,977,task_A +977,978,task_A +978,979,task_A +979,980,task_A +980,981,task_A +981,982,task_A +982,983,task_A +983,984,task_A +984,985,task_A +985,986,task_A +986,987,task_A +987,988,task_A +988,989,task_A +989,990,task_A +990,991,task_A +991,992,task_A +992,993,task_A +993,994,task_A +994,995,task_A +995,996,task_A +996,997,task_A +997,998,task_A +998,999,task_A +999,1000,task_A +1000,1,task_B +1001,2,task_B +1002,3,task_B +1003,4,task_B +1004,5,task_B +1005,6,task_B +1006,7,task_B +1007,8,task_B +1008,9,task_B +1009,10,task_B +1010,11,task_B +1011,12,task_B +1012,13,task_B +1013,14,task_B +1014,15,task_B +1015,16,task_B +1016,17,task_B +1017,18,task_B +1018,19,task_B +1019,20,task_B +1020,21,task_B +1021,22,task_B +1022,23,task_B +1023,24,task_B +1024,25,task_B +1025,26,task_B +1026,27,task_B +1027,28,task_B +1028,29,task_B +1029,30,task_B +1030,31,task_B +1031,32,task_B +1032,33,task_B +1033,34,task_B +1034,35,task_B +1035,36,task_B +1036,37,task_B +1037,38,task_B +1038,39,task_B +1039,40,task_B +1040,41,task_B +1041,42,task_B +1042,43,task_B +1043,44,task_B +1044,45,task_B +1045,46,task_B +1046,47,task_B +1047,48,task_B +1048,49,task_B +1049,50,task_B +1050,51,task_B +1051,52,task_B +1052,53,task_B +1053,54,task_B +1054,55,task_B +1055,56,task_B +1056,57,task_B +1057,58,task_B +1058,59,task_B +1059,60,task_B +1060,61,task_B +1061,62,task_B +1062,63,task_B +1063,64,task_B +1064,65,task_B +1065,66,task_B +1066,67,task_B +1067,68,task_B +1068,69,task_B +1069,70,task_B +1070,71,task_B +1071,72,task_B +1072,73,task_B +1073,74,task_B +1074,75,task_B +1075,76,task_B +1076,77,task_B +1077,78,task_B +1078,79,task_B +1079,80,task_B +1080,81,task_B +1081,82,task_B +1082,83,task_B +1083,84,task_B +1084,85,task_B +1085,86,task_B +1086,87,task_B +1087,88,task_B +1088,89,task_B +1089,90,task_B +1090,91,task_B +1091,92,task_B +1092,93,task_B +1093,94,task_B +1094,95,task_B +1095,96,task_B +1096,97,task_B +1097,98,task_B +1098,99,task_B +1099,100,task_B +1100,101,task_B +1101,102,task_B +1102,103,task_B +1103,104,task_B +1104,105,task_B +1105,106,task_B +1106,107,task_B +1107,108,task_B +1108,109,task_B +1109,110,task_B +1110,111,task_B +1111,112,task_B +1112,113,task_B +1113,114,task_B +1114,115,task_B +1115,116,task_B +1116,117,task_B +1117,118,task_B +1118,119,task_B +1119,120,task_B +1120,121,task_B +1121,122,task_B +1122,123,task_B +1123,124,task_B +1124,125,task_B +1125,126,task_B +1126,127,task_B +1127,128,task_B +1128,129,task_B +1129,130,task_B +1130,131,task_B +1131,132,task_B +1132,133,task_B +1133,134,task_B +1134,135,task_B +1135,136,task_B +1136,137,task_B +1137,138,task_B +1138,139,task_B +1139,140,task_B +1140,141,task_B +1141,142,task_B +1142,143,task_B +1143,144,task_B +1144,145,task_B +1145,146,task_B +1146,147,task_B +1147,148,task_B +1148,149,task_B +1149,150,task_B +1150,151,task_B +1151,152,task_B +1152,153,task_B +1153,154,task_B +1154,155,task_B +1155,156,task_B +1156,157,task_B +1157,158,task_B +1158,159,task_B +1159,160,task_B +1160,161,task_B +1161,162,task_B +1162,163,task_B +1163,164,task_B +1164,165,task_B +1165,166,task_B +1166,167,task_B +1167,168,task_B +1168,169,task_B +1169,170,task_B +1170,171,task_B +1171,172,task_B +1172,173,task_B +1173,174,task_B +1174,175,task_B +1175,176,task_B +1176,177,task_B +1177,178,task_B +1178,179,task_B +1179,180,task_B +1180,181,task_B +1181,182,task_B +1182,183,task_B +1183,184,task_B +1184,185,task_B +1185,186,task_B +1186,187,task_B +1187,188,task_B +1188,189,task_B +1189,190,task_B +1190,191,task_B +1191,192,task_B +1192,193,task_B +1193,194,task_B +1194,195,task_B +1195,196,task_B +1196,197,task_B +1197,198,task_B +1198,199,task_B +1199,200,task_B +1200,201,task_B +1201,202,task_B +1202,203,task_B +1203,204,task_B +1204,205,task_B +1205,206,task_B +1206,207,task_B +1207,208,task_B +1208,209,task_B +1209,210,task_B +1210,211,task_B +1211,212,task_B +1212,213,task_B +1213,214,task_B +1214,215,task_B +1215,216,task_B +1216,217,task_B +1217,218,task_B +1218,219,task_B +1219,220,task_B +1220,221,task_B +1221,222,task_B +1222,223,task_B +1223,224,task_B +1224,225,task_B +1225,226,task_B +1226,227,task_B +1227,228,task_B +1228,229,task_B +1229,230,task_B +1230,231,task_B +1231,232,task_B +1232,233,task_B +1233,234,task_B +1234,235,task_B +1235,236,task_B +1236,237,task_B +1237,238,task_B +1238,239,task_B +1239,240,task_B +1240,241,task_B +1241,242,task_B +1242,243,task_B +1243,244,task_B +1244,245,task_B +1245,246,task_B +1246,247,task_B +1247,248,task_B +1248,249,task_B +1249,250,task_B +1250,251,task_B +1251,252,task_B +1252,253,task_B +1253,254,task_B +1254,255,task_B +1255,256,task_B +1256,257,task_B +1257,258,task_B +1258,259,task_B +1259,260,task_B +1260,261,task_B +1261,262,task_B +1262,263,task_B +1263,264,task_B +1264,265,task_B +1265,266,task_B +1266,267,task_B +1267,268,task_B +1268,269,task_B +1269,270,task_B +1270,271,task_B +1271,272,task_B +1272,273,task_B +1273,274,task_B +1274,275,task_B +1275,276,task_B +1276,277,task_B +1277,278,task_B +1278,279,task_B +1279,280,task_B +1280,281,task_B +1281,282,task_B +1282,283,task_B +1283,284,task_B +1284,285,task_B +1285,286,task_B +1286,287,task_B +1287,288,task_B +1288,289,task_B +1289,290,task_B +1290,291,task_B +1291,292,task_B +1292,293,task_B +1293,294,task_B +1294,295,task_B +1295,296,task_B +1296,297,task_B +1297,298,task_B +1298,299,task_B +1299,300,task_B +1300,301,task_B +1301,302,task_B +1302,303,task_B +1303,304,task_B +1304,305,task_B +1305,306,task_B +1306,307,task_B +1307,308,task_B +1308,309,task_B +1309,310,task_B +1310,311,task_B +1311,312,task_B +1312,313,task_B +1313,314,task_B +1314,315,task_B +1315,316,task_B +1316,317,task_B +1317,318,task_B +1318,319,task_B +1319,320,task_B +1320,321,task_B +1321,322,task_B +1322,323,task_B +1323,324,task_B +1324,325,task_B +1325,326,task_B +1326,327,task_B +1327,328,task_B +1328,329,task_B +1329,330,task_B +1330,331,task_B +1331,332,task_B +1332,333,task_B +1333,334,task_B +1334,335,task_B +1335,336,task_B +1336,337,task_B +1337,338,task_B +1338,339,task_B +1339,340,task_B +1340,341,task_B +1341,342,task_B +1342,343,task_B +1343,344,task_B +1344,345,task_B +1345,346,task_B +1346,347,task_B +1347,348,task_B +1348,349,task_B +1349,350,task_B +1350,351,task_B +1351,352,task_B +1352,353,task_B +1353,354,task_B +1354,355,task_B +1355,356,task_B +1356,357,task_B +1357,358,task_B +1358,359,task_B +1359,360,task_B +1360,361,task_B +1361,362,task_B +1362,363,task_B +1363,364,task_B +1364,365,task_B +1365,366,task_B +1366,367,task_B +1367,368,task_B +1368,369,task_B +1369,370,task_B +1370,371,task_B +1371,372,task_B +1372,373,task_B +1373,374,task_B +1374,375,task_B +1375,376,task_B +1376,377,task_B +1377,378,task_B +1378,379,task_B +1379,380,task_B +1380,381,task_B +1381,382,task_B +1382,383,task_B +1383,384,task_B +1384,385,task_B +1385,386,task_B +1386,387,task_B +1387,388,task_B +1388,389,task_B +1389,390,task_B +1390,391,task_B +1391,392,task_B +1392,393,task_B +1393,394,task_B +1394,395,task_B +1395,396,task_B +1396,397,task_B +1397,398,task_B +1398,399,task_B +1399,400,task_B +1400,401,task_B +1401,402,task_B +1402,403,task_B +1403,404,task_B +1404,405,task_B +1405,406,task_B +1406,407,task_B +1407,408,task_B +1408,409,task_B +1409,410,task_B +1410,411,task_B +1411,412,task_B +1412,413,task_B +1413,414,task_B +1414,415,task_B +1415,416,task_B +1416,417,task_B +1417,418,task_B +1418,419,task_B +1419,420,task_B +1420,421,task_B +1421,422,task_B +1422,423,task_B +1423,424,task_B +1424,425,task_B +1425,426,task_B +1426,427,task_B +1427,428,task_B +1428,429,task_B +1429,430,task_B +1430,431,task_B +1431,432,task_B +1432,433,task_B +1433,434,task_B +1434,435,task_B +1435,436,task_B +1436,437,task_B +1437,438,task_B +1438,439,task_B +1439,440,task_B +1440,441,task_B +1441,442,task_B +1442,443,task_B +1443,444,task_B +1444,445,task_B +1445,446,task_B +1446,447,task_B +1447,448,task_B +1448,449,task_B +1449,450,task_B +1450,451,task_B +1451,452,task_B +1452,453,task_B +1453,454,task_B +1454,455,task_B +1455,456,task_B +1456,457,task_B +1457,458,task_B +1458,459,task_B +1459,460,task_B +1460,461,task_B +1461,462,task_B +1462,463,task_B +1463,464,task_B +1464,465,task_B +1465,466,task_B +1466,467,task_B +1467,468,task_B +1468,469,task_B +1469,470,task_B +1470,471,task_B +1471,472,task_B +1472,473,task_B +1473,474,task_B +1474,475,task_B +1475,476,task_B +1476,477,task_B +1477,478,task_B +1478,479,task_B +1479,480,task_B +1480,481,task_B +1481,482,task_B +1482,483,task_B +1483,484,task_B +1484,485,task_B +1485,486,task_B +1486,487,task_B +1487,488,task_B +1488,489,task_B +1489,490,task_B +1490,491,task_B +1491,492,task_B +1492,493,task_B +1493,494,task_B +1494,495,task_B +1495,496,task_B +1496,497,task_B +1497,498,task_B +1498,499,task_B +1499,500,task_B +1500,501,task_B +1501,502,task_B +1502,503,task_B +1503,504,task_B +1504,505,task_B +1505,506,task_B +1506,507,task_B +1507,508,task_B +1508,509,task_B +1509,510,task_B +1510,511,task_B +1511,512,task_B +1512,513,task_B +1513,514,task_B +1514,515,task_B +1515,516,task_B +1516,517,task_B +1517,518,task_B +1518,519,task_B +1519,520,task_B +1520,521,task_B +1521,522,task_B +1522,523,task_B +1523,524,task_B +1524,525,task_B +1525,526,task_B +1526,527,task_B +1527,528,task_B +1528,529,task_B +1529,530,task_B +1530,531,task_B +1531,532,task_B +1532,533,task_B +1533,534,task_B +1534,535,task_B +1535,536,task_B +1536,537,task_B +1537,538,task_B +1538,539,task_B +1539,540,task_B +1540,541,task_B +1541,542,task_B +1542,543,task_B +1543,544,task_B +1544,545,task_B +1545,546,task_B +1546,547,task_B +1547,548,task_B +1548,549,task_B +1549,550,task_B +1550,551,task_B +1551,552,task_B +1552,553,task_B +1553,554,task_B +1554,555,task_B +1555,556,task_B +1556,557,task_B +1557,558,task_B +1558,559,task_B +1559,560,task_B +1560,561,task_B +1561,562,task_B +1562,563,task_B +1563,564,task_B +1564,565,task_B +1565,566,task_B +1566,567,task_B +1567,568,task_B +1568,569,task_B +1569,570,task_B +1570,571,task_B +1571,572,task_B +1572,573,task_B +1573,574,task_B +1574,575,task_B +1575,576,task_B +1576,577,task_B +1577,578,task_B +1578,579,task_B +1579,580,task_B +1580,581,task_B +1581,582,task_B +1582,583,task_B +1583,584,task_B +1584,585,task_B +1585,586,task_B +1586,587,task_B +1587,588,task_B +1588,589,task_B +1589,590,task_B +1590,591,task_B +1591,592,task_B +1592,593,task_B +1593,594,task_B +1594,595,task_B +1595,596,task_B +1596,597,task_B +1597,598,task_B +1598,599,task_B +1599,600,task_B +1600,601,task_B +1601,602,task_B +1602,603,task_B +1603,604,task_B +1604,605,task_B +1605,606,task_B +1606,607,task_B +1607,608,task_B +1608,609,task_B +1609,610,task_B +1610,611,task_B +1611,612,task_B +1612,613,task_B +1613,614,task_B +1614,615,task_B +1615,616,task_B +1616,617,task_B +1617,618,task_B +1618,619,task_B +1619,620,task_B +1620,621,task_B +1621,622,task_B +1622,623,task_B +1623,624,task_B +1624,625,task_B +1625,626,task_B +1626,627,task_B +1627,628,task_B +1628,629,task_B +1629,630,task_B +1630,631,task_B +1631,632,task_B +1632,633,task_B +1633,634,task_B +1634,635,task_B +1635,636,task_B +1636,637,task_B +1637,638,task_B +1638,639,task_B +1639,640,task_B +1640,641,task_B +1641,642,task_B +1642,643,task_B +1643,644,task_B +1644,645,task_B +1645,646,task_B +1646,647,task_B +1647,648,task_B +1648,649,task_B +1649,650,task_B +1650,651,task_B +1651,652,task_B +1652,653,task_B +1653,654,task_B +1654,655,task_B +1655,656,task_B +1656,657,task_B +1657,658,task_B +1658,659,task_B +1659,660,task_B +1660,661,task_B +1661,662,task_B +1662,663,task_B +1663,664,task_B +1664,665,task_B +1665,666,task_B +1666,667,task_B +1667,668,task_B +1668,669,task_B +1669,670,task_B +1670,671,task_B +1671,672,task_B +1672,673,task_B +1673,674,task_B +1674,675,task_B +1675,676,task_B +1676,677,task_B +1677,678,task_B +1678,679,task_B +1679,680,task_B +1680,681,task_B +1681,682,task_B +1682,683,task_B +1683,684,task_B +1684,685,task_B +1685,686,task_B +1686,687,task_B +1687,688,task_B +1688,689,task_B +1689,690,task_B +1690,691,task_B +1691,692,task_B +1692,693,task_B +1693,694,task_B +1694,695,task_B +1695,696,task_B +1696,697,task_B +1697,698,task_B +1698,699,task_B +1699,700,task_B +1700,701,task_B +1701,702,task_B +1702,703,task_B +1703,704,task_B +1704,705,task_B +1705,706,task_B +1706,707,task_B +1707,708,task_B +1708,709,task_B +1709,710,task_B +1710,711,task_B +1711,712,task_B +1712,713,task_B +1713,714,task_B +1714,715,task_B +1715,716,task_B +1716,717,task_B +1717,718,task_B +1718,719,task_B +1719,720,task_B +1720,721,task_B +1721,722,task_B +1722,723,task_B +1723,724,task_B +1724,725,task_B +1725,726,task_B +1726,727,task_B +1727,728,task_B +1728,729,task_B +1729,730,task_B +1730,731,task_B +1731,732,task_B +1732,733,task_B +1733,734,task_B +1734,735,task_B +1735,736,task_B +1736,737,task_B +1737,738,task_B +1738,739,task_B +1739,740,task_B +1740,741,task_B +1741,742,task_B +1742,743,task_B +1743,744,task_B +1744,745,task_B +1745,746,task_B +1746,747,task_B +1747,748,task_B +1748,749,task_B +1749,750,task_B +1750,751,task_B +1751,752,task_B +1752,753,task_B +1753,754,task_B +1754,755,task_B +1755,756,task_B +1756,757,task_B +1757,758,task_B +1758,759,task_B +1759,760,task_B +1760,761,task_B +1761,762,task_B +1762,763,task_B +1763,764,task_B +1764,765,task_B +1765,766,task_B +1766,767,task_B +1767,768,task_B +1768,769,task_B +1769,770,task_B +1770,771,task_B +1771,772,task_B +1772,773,task_B +1773,774,task_B +1774,775,task_B +1775,776,task_B +1776,777,task_B +1777,778,task_B +1778,779,task_B +1779,780,task_B +1780,781,task_B +1781,782,task_B +1782,783,task_B +1783,784,task_B +1784,785,task_B +1785,786,task_B +1786,787,task_B +1787,788,task_B +1788,789,task_B +1789,790,task_B +1790,791,task_B +1791,792,task_B +1792,793,task_B +1793,794,task_B +1794,795,task_B +1795,796,task_B +1796,797,task_B +1797,798,task_B +1798,799,task_B +1799,800,task_B +1800,801,task_B +1801,802,task_B +1802,803,task_B +1803,804,task_B +1804,805,task_B +1805,806,task_B +1806,807,task_B +1807,808,task_B +1808,809,task_B +1809,810,task_B +1810,811,task_B +1811,812,task_B +1812,813,task_B +1813,814,task_B +1814,815,task_B +1815,816,task_B +1816,817,task_B +1817,818,task_B +1818,819,task_B +1819,820,task_B +1820,821,task_B +1821,822,task_B +1822,823,task_B +1823,824,task_B +1824,825,task_B +1825,826,task_B +1826,827,task_B +1827,828,task_B +1828,829,task_B +1829,830,task_B +1830,831,task_B +1831,832,task_B +1832,833,task_B +1833,834,task_B +1834,835,task_B +1835,836,task_B +1836,837,task_B +1837,838,task_B +1838,839,task_B +1839,840,task_B +1840,841,task_B +1841,842,task_B +1842,843,task_B +1843,844,task_B +1844,845,task_B +1845,846,task_B +1846,847,task_B +1847,848,task_B +1848,849,task_B +1849,850,task_B +1850,851,task_B +1851,852,task_B +1852,853,task_B +1853,854,task_B +1854,855,task_B +1855,856,task_B +1856,857,task_B +1857,858,task_B +1858,859,task_B +1859,860,task_B +1860,861,task_B +1861,862,task_B +1862,863,task_B +1863,864,task_B +1864,865,task_B +1865,866,task_B +1866,867,task_B +1867,868,task_B +1868,869,task_B +1869,870,task_B +1870,871,task_B +1871,872,task_B +1872,873,task_B +1873,874,task_B +1874,875,task_B +1875,876,task_B +1876,877,task_B +1877,878,task_B +1878,879,task_B +1879,880,task_B +1880,881,task_B +1881,882,task_B +1882,883,task_B +1883,884,task_B +1884,885,task_B +1885,886,task_B +1886,887,task_B +1887,888,task_B +1888,889,task_B +1889,890,task_B +1890,891,task_B +1891,892,task_B +1892,893,task_B +1893,894,task_B +1894,895,task_B +1895,896,task_B +1896,897,task_B +1897,898,task_B +1898,899,task_B +1899,900,task_B +1900,901,task_B +1901,902,task_B +1902,903,task_B +1903,904,task_B +1904,905,task_B +1905,906,task_B +1906,907,task_B +1907,908,task_B +1908,909,task_B +1909,910,task_B +1910,911,task_B +1911,912,task_B +1912,913,task_B +1913,914,task_B +1914,915,task_B +1915,916,task_B +1916,917,task_B +1917,918,task_B +1918,919,task_B +1919,920,task_B +1920,921,task_B +1921,922,task_B +1922,923,task_B +1923,924,task_B +1924,925,task_B +1925,926,task_B +1926,927,task_B +1927,928,task_B +1928,929,task_B +1929,930,task_B +1930,931,task_B +1931,932,task_B +1932,933,task_B +1933,934,task_B +1934,935,task_B +1935,936,task_B +1936,937,task_B +1937,938,task_B +1938,939,task_B +1939,940,task_B +1940,941,task_B +1941,942,task_B +1942,943,task_B +1943,944,task_B +1944,945,task_B +1945,946,task_B +1946,947,task_B +1947,948,task_B +1948,949,task_B +1949,950,task_B +1950,951,task_B +1951,952,task_B +1952,953,task_B +1953,954,task_B +1954,955,task_B +1955,956,task_B +1956,957,task_B +1957,958,task_B +1958,959,task_B +1959,960,task_B +1960,961,task_B +1961,962,task_B +1962,963,task_B +1963,964,task_B +1964,965,task_B +1965,966,task_B +1966,967,task_B +1967,968,task_B +1968,969,task_B +1969,970,task_B +1970,971,task_B +1971,972,task_B +1972,973,task_B +1973,974,task_B +1974,975,task_B +1975,976,task_B +1976,977,task_B +1977,978,task_B +1978,979,task_B +1979,980,task_B +1980,981,task_B +1981,982,task_B +1982,983,task_B +1983,984,task_B +1984,985,task_B +1985,986,task_B +1986,987,task_B +1987,988,task_B +1988,989,task_B +1989,990,task_B +1990,991,task_B +1991,992,task_B +1992,993,task_B +1993,994,task_B +1994,995,task_B +1995,996,task_B +1996,997,task_B +1997,998,task_B +1998,999,task_B +1999,1000,task_B +2000,1,task_C +2001,2,task_C +2002,3,task_C +2003,4,task_C +2004,5,task_C +2005,6,task_C +2006,7,task_C +2007,8,task_C +2008,9,task_C +2009,10,task_C +2010,11,task_C +2011,12,task_C +2012,13,task_C +2013,14,task_C +2014,15,task_C +2015,16,task_C +2016,17,task_C +2017,18,task_C +2018,19,task_C +2019,20,task_C +2020,21,task_C +2021,22,task_C +2022,23,task_C +2023,24,task_C +2024,25,task_C +2025,26,task_C +2026,27,task_C +2027,28,task_C +2028,29,task_C +2029,30,task_C +2030,31,task_C +2031,32,task_C +2032,33,task_C +2033,34,task_C +2034,35,task_C +2035,36,task_C +2036,37,task_C +2037,38,task_C +2038,39,task_C +2039,40,task_C +2040,41,task_C +2041,42,task_C +2042,43,task_C +2043,44,task_C +2044,45,task_C +2045,46,task_C +2046,47,task_C +2047,48,task_C +2048,49,task_C +2049,50,task_C +2050,51,task_C +2051,52,task_C +2052,53,task_C +2053,54,task_C +2054,55,task_C +2055,56,task_C +2056,57,task_C +2057,58,task_C +2058,59,task_C +2059,60,task_C +2060,61,task_C +2061,62,task_C +2062,63,task_C +2063,64,task_C +2064,65,task_C +2065,66,task_C +2066,67,task_C +2067,68,task_C +2068,69,task_C +2069,70,task_C +2070,71,task_C +2071,72,task_C +2072,73,task_C +2073,74,task_C +2074,75,task_C +2075,76,task_C +2076,77,task_C +2077,78,task_C +2078,79,task_C +2079,80,task_C +2080,81,task_C +2081,82,task_C +2082,83,task_C +2083,84,task_C +2084,85,task_C +2085,86,task_C +2086,87,task_C +2087,88,task_C +2088,89,task_C +2089,90,task_C +2090,91,task_C +2091,92,task_C +2092,93,task_C +2093,94,task_C +2094,95,task_C +2095,96,task_C +2096,97,task_C +2097,98,task_C +2098,99,task_C +2099,100,task_C +2100,101,task_C +2101,102,task_C +2102,103,task_C +2103,104,task_C +2104,105,task_C +2105,106,task_C +2106,107,task_C +2107,108,task_C +2108,109,task_C +2109,110,task_C +2110,111,task_C +2111,112,task_C +2112,113,task_C +2113,114,task_C +2114,115,task_C +2115,116,task_C +2116,117,task_C +2117,118,task_C +2118,119,task_C +2119,120,task_C +2120,121,task_C +2121,122,task_C +2122,123,task_C +2123,124,task_C +2124,125,task_C +2125,126,task_C +2126,127,task_C +2127,128,task_C +2128,129,task_C +2129,130,task_C +2130,131,task_C +2131,132,task_C +2132,133,task_C +2133,134,task_C +2134,135,task_C +2135,136,task_C +2136,137,task_C +2137,138,task_C +2138,139,task_C +2139,140,task_C +2140,141,task_C +2141,142,task_C +2142,143,task_C +2143,144,task_C +2144,145,task_C +2145,146,task_C +2146,147,task_C +2147,148,task_C +2148,149,task_C +2149,150,task_C +2150,151,task_C +2151,152,task_C +2152,153,task_C +2153,154,task_C +2154,155,task_C +2155,156,task_C +2156,157,task_C +2157,158,task_C +2158,159,task_C +2159,160,task_C +2160,161,task_C +2161,162,task_C +2162,163,task_C +2163,164,task_C +2164,165,task_C +2165,166,task_C +2166,167,task_C +2167,168,task_C +2168,169,task_C +2169,170,task_C +2170,171,task_C +2171,172,task_C +2172,173,task_C +2173,174,task_C +2174,175,task_C +2175,176,task_C +2176,177,task_C +2177,178,task_C +2178,179,task_C +2179,180,task_C +2180,181,task_C +2181,182,task_C +2182,183,task_C +2183,184,task_C +2184,185,task_C +2185,186,task_C +2186,187,task_C +2187,188,task_C +2188,189,task_C +2189,190,task_C +2190,191,task_C +2191,192,task_C +2192,193,task_C +2193,194,task_C +2194,195,task_C +2195,196,task_C +2196,197,task_C +2197,198,task_C +2198,199,task_C +2199,200,task_C +2200,201,task_C +2201,202,task_C +2202,203,task_C +2203,204,task_C +2204,205,task_C +2205,206,task_C +2206,207,task_C +2207,208,task_C +2208,209,task_C +2209,210,task_C +2210,211,task_C +2211,212,task_C +2212,213,task_C +2213,214,task_C +2214,215,task_C +2215,216,task_C +2216,217,task_C +2217,218,task_C +2218,219,task_C +2219,220,task_C +2220,221,task_C +2221,222,task_C +2222,223,task_C +2223,224,task_C +2224,225,task_C +2225,226,task_C +2226,227,task_C +2227,228,task_C +2228,229,task_C +2229,230,task_C +2230,231,task_C +2231,232,task_C +2232,233,task_C +2233,234,task_C +2234,235,task_C +2235,236,task_C +2236,237,task_C +2237,238,task_C +2238,239,task_C +2239,240,task_C +2240,241,task_C +2241,242,task_C +2242,243,task_C +2243,244,task_C +2244,245,task_C +2245,246,task_C +2246,247,task_C +2247,248,task_C +2248,249,task_C +2249,250,task_C +2250,251,task_C +2251,252,task_C +2252,253,task_C +2253,254,task_C +2254,255,task_C +2255,256,task_C +2256,257,task_C +2257,258,task_C +2258,259,task_C +2259,260,task_C +2260,261,task_C +2261,262,task_C +2262,263,task_C +2263,264,task_C +2264,265,task_C +2265,266,task_C +2266,267,task_C +2267,268,task_C +2268,269,task_C +2269,270,task_C +2270,271,task_C +2271,272,task_C +2272,273,task_C +2273,274,task_C +2274,275,task_C +2275,276,task_C +2276,277,task_C +2277,278,task_C +2278,279,task_C +2279,280,task_C +2280,281,task_C +2281,282,task_C +2282,283,task_C +2283,284,task_C +2284,285,task_C +2285,286,task_C +2286,287,task_C +2287,288,task_C +2288,289,task_C +2289,290,task_C +2290,291,task_C +2291,292,task_C +2292,293,task_C +2293,294,task_C +2294,295,task_C +2295,296,task_C +2296,297,task_C +2297,298,task_C +2298,299,task_C +2299,300,task_C +2300,301,task_C +2301,302,task_C +2302,303,task_C +2303,304,task_C +2304,305,task_C +2305,306,task_C +2306,307,task_C +2307,308,task_C +2308,309,task_C +2309,310,task_C +2310,311,task_C +2311,312,task_C +2312,313,task_C +2313,314,task_C +2314,315,task_C +2315,316,task_C +2316,317,task_C +2317,318,task_C +2318,319,task_C +2319,320,task_C +2320,321,task_C +2321,322,task_C +2322,323,task_C +2323,324,task_C +2324,325,task_C +2325,326,task_C +2326,327,task_C +2327,328,task_C +2328,329,task_C +2329,330,task_C +2330,331,task_C +2331,332,task_C +2332,333,task_C +2333,334,task_C +2334,335,task_C +2335,336,task_C +2336,337,task_C +2337,338,task_C +2338,339,task_C +2339,340,task_C +2340,341,task_C +2341,342,task_C +2342,343,task_C +2343,344,task_C +2344,345,task_C +2345,346,task_C +2346,347,task_C +2347,348,task_C +2348,349,task_C +2349,350,task_C +2350,351,task_C +2351,352,task_C +2352,353,task_C +2353,354,task_C +2354,355,task_C +2355,356,task_C +2356,357,task_C +2357,358,task_C +2358,359,task_C +2359,360,task_C +2360,361,task_C +2361,362,task_C +2362,363,task_C +2363,364,task_C +2364,365,task_C +2365,366,task_C +2366,367,task_C +2367,368,task_C +2368,369,task_C +2369,370,task_C +2370,371,task_C +2371,372,task_C +2372,373,task_C +2373,374,task_C +2374,375,task_C +2375,376,task_C +2376,377,task_C +2377,378,task_C +2378,379,task_C +2379,380,task_C +2380,381,task_C +2381,382,task_C +2382,383,task_C +2383,384,task_C +2384,385,task_C +2385,386,task_C +2386,387,task_C +2387,388,task_C +2388,389,task_C +2389,390,task_C +2390,391,task_C +2391,392,task_C +2392,393,task_C +2393,394,task_C +2394,395,task_C +2395,396,task_C +2396,397,task_C +2397,398,task_C +2398,399,task_C +2399,400,task_C +2400,401,task_C +2401,402,task_C +2402,403,task_C +2403,404,task_C +2404,405,task_C +2405,406,task_C +2406,407,task_C +2407,408,task_C +2408,409,task_C +2409,410,task_C +2410,411,task_C +2411,412,task_C +2412,413,task_C +2413,414,task_C +2414,415,task_C +2415,416,task_C +2416,417,task_C +2417,418,task_C +2418,419,task_C +2419,420,task_C +2420,421,task_C +2421,422,task_C +2422,423,task_C +2423,424,task_C +2424,425,task_C +2425,426,task_C +2426,427,task_C +2427,428,task_C +2428,429,task_C +2429,430,task_C +2430,431,task_C +2431,432,task_C +2432,433,task_C +2433,434,task_C +2434,435,task_C +2435,436,task_C +2436,437,task_C +2437,438,task_C +2438,439,task_C +2439,440,task_C +2440,441,task_C +2441,442,task_C +2442,443,task_C +2443,444,task_C +2444,445,task_C +2445,446,task_C +2446,447,task_C +2447,448,task_C +2448,449,task_C +2449,450,task_C +2450,451,task_C +2451,452,task_C +2452,453,task_C +2453,454,task_C +2454,455,task_C +2455,456,task_C +2456,457,task_C +2457,458,task_C +2458,459,task_C +2459,460,task_C +2460,461,task_C +2461,462,task_C +2462,463,task_C +2463,464,task_C +2464,465,task_C +2465,466,task_C +2466,467,task_C +2467,468,task_C +2468,469,task_C +2469,470,task_C +2470,471,task_C +2471,472,task_C +2472,473,task_C +2473,474,task_C +2474,475,task_C +2475,476,task_C +2476,477,task_C +2477,478,task_C +2478,479,task_C +2479,480,task_C +2480,481,task_C +2481,482,task_C +2482,483,task_C +2483,484,task_C +2484,485,task_C +2485,486,task_C +2486,487,task_C +2487,488,task_C +2488,489,task_C +2489,490,task_C +2490,491,task_C +2491,492,task_C +2492,493,task_C +2493,494,task_C +2494,495,task_C +2495,496,task_C +2496,497,task_C +2497,498,task_C +2498,499,task_C +2499,500,task_C +2500,501,task_C +2501,502,task_C +2502,503,task_C +2503,504,task_C +2504,505,task_C +2505,506,task_C +2506,507,task_C +2507,508,task_C +2508,509,task_C +2509,510,task_C +2510,511,task_C +2511,512,task_C +2512,513,task_C +2513,514,task_C +2514,515,task_C +2515,516,task_C +2516,517,task_C +2517,518,task_C +2518,519,task_C +2519,520,task_C +2520,521,task_C +2521,522,task_C +2522,523,task_C +2523,524,task_C +2524,525,task_C +2525,526,task_C +2526,527,task_C +2527,528,task_C +2528,529,task_C +2529,530,task_C +2530,531,task_C +2531,532,task_C +2532,533,task_C +2533,534,task_C +2534,535,task_C +2535,536,task_C +2536,537,task_C +2537,538,task_C +2538,539,task_C +2539,540,task_C +2540,541,task_C +2541,542,task_C +2542,543,task_C +2543,544,task_C +2544,545,task_C +2545,546,task_C +2546,547,task_C +2547,548,task_C +2548,549,task_C +2549,550,task_C +2550,551,task_C +2551,552,task_C +2552,553,task_C +2553,554,task_C +2554,555,task_C +2555,556,task_C +2556,557,task_C +2557,558,task_C +2558,559,task_C +2559,560,task_C +2560,561,task_C +2561,562,task_C +2562,563,task_C +2563,564,task_C +2564,565,task_C +2565,566,task_C +2566,567,task_C +2567,568,task_C +2568,569,task_C +2569,570,task_C +2570,571,task_C +2571,572,task_C +2572,573,task_C +2573,574,task_C +2574,575,task_C +2575,576,task_C +2576,577,task_C +2577,578,task_C +2578,579,task_C +2579,580,task_C +2580,581,task_C +2581,582,task_C +2582,583,task_C +2583,584,task_C +2584,585,task_C +2585,586,task_C +2586,587,task_C +2587,588,task_C +2588,589,task_C +2589,590,task_C +2590,591,task_C +2591,592,task_C +2592,593,task_C +2593,594,task_C +2594,595,task_C +2595,596,task_C +2596,597,task_C +2597,598,task_C +2598,599,task_C +2599,600,task_C +2600,601,task_C +2601,602,task_C +2602,603,task_C +2603,604,task_C +2604,605,task_C +2605,606,task_C +2606,607,task_C +2607,608,task_C +2608,609,task_C +2609,610,task_C +2610,611,task_C +2611,612,task_C +2612,613,task_C +2613,614,task_C +2614,615,task_C +2615,616,task_C +2616,617,task_C +2617,618,task_C +2618,619,task_C +2619,620,task_C +2620,621,task_C +2621,622,task_C +2622,623,task_C +2623,624,task_C +2624,625,task_C +2625,626,task_C +2626,627,task_C +2627,628,task_C +2628,629,task_C +2629,630,task_C +2630,631,task_C +2631,632,task_C +2632,633,task_C +2633,634,task_C +2634,635,task_C +2635,636,task_C +2636,637,task_C +2637,638,task_C +2638,639,task_C +2639,640,task_C +2640,641,task_C +2641,642,task_C +2642,643,task_C +2643,644,task_C +2644,645,task_C +2645,646,task_C +2646,647,task_C +2647,648,task_C +2648,649,task_C +2649,650,task_C +2650,651,task_C +2651,652,task_C +2652,653,task_C +2653,654,task_C +2654,655,task_C +2655,656,task_C +2656,657,task_C +2657,658,task_C +2658,659,task_C +2659,660,task_C +2660,661,task_C +2661,662,task_C +2662,663,task_C +2663,664,task_C +2664,665,task_C +2665,666,task_C +2666,667,task_C +2667,668,task_C +2668,669,task_C +2669,670,task_C +2670,671,task_C +2671,672,task_C +2672,673,task_C +2673,674,task_C +2674,675,task_C +2675,676,task_C +2676,677,task_C +2677,678,task_C +2678,679,task_C +2679,680,task_C +2680,681,task_C +2681,682,task_C +2682,683,task_C +2683,684,task_C +2684,685,task_C +2685,686,task_C +2686,687,task_C +2687,688,task_C +2688,689,task_C +2689,690,task_C +2690,691,task_C +2691,692,task_C +2692,693,task_C +2693,694,task_C +2694,695,task_C +2695,696,task_C +2696,697,task_C +2697,698,task_C +2698,699,task_C +2699,700,task_C +2700,701,task_C +2701,702,task_C +2702,703,task_C +2703,704,task_C +2704,705,task_C +2705,706,task_C +2706,707,task_C +2707,708,task_C +2708,709,task_C +2709,710,task_C +2710,711,task_C +2711,712,task_C +2712,713,task_C +2713,714,task_C +2714,715,task_C +2715,716,task_C +2716,717,task_C +2717,718,task_C +2718,719,task_C +2719,720,task_C +2720,721,task_C +2721,722,task_C +2722,723,task_C +2723,724,task_C +2724,725,task_C +2725,726,task_C +2726,727,task_C +2727,728,task_C +2728,729,task_C +2729,730,task_C +2730,731,task_C +2731,732,task_C +2732,733,task_C +2733,734,task_C +2734,735,task_C +2735,736,task_C +2736,737,task_C +2737,738,task_C +2738,739,task_C +2739,740,task_C +2740,741,task_C +2741,742,task_C +2742,743,task_C +2743,744,task_C +2744,745,task_C +2745,746,task_C +2746,747,task_C +2747,748,task_C +2748,749,task_C +2749,750,task_C +2750,751,task_C +2751,752,task_C +2752,753,task_C +2753,754,task_C +2754,755,task_C +2755,756,task_C +2756,757,task_C +2757,758,task_C +2758,759,task_C +2759,760,task_C +2760,761,task_C +2761,762,task_C +2762,763,task_C +2763,764,task_C +2764,765,task_C +2765,766,task_C +2766,767,task_C +2767,768,task_C +2768,769,task_C +2769,770,task_C +2770,771,task_C +2771,772,task_C +2772,773,task_C +2773,774,task_C +2774,775,task_C +2775,776,task_C +2776,777,task_C +2777,778,task_C +2778,779,task_C +2779,780,task_C +2780,781,task_C +2781,782,task_C +2782,783,task_C +2783,784,task_C +2784,785,task_C +2785,786,task_C +2786,787,task_C +2787,788,task_C +2788,789,task_C +2789,790,task_C +2790,791,task_C +2791,792,task_C +2792,793,task_C +2793,794,task_C +2794,795,task_C +2795,796,task_C +2796,797,task_C +2797,798,task_C +2798,799,task_C +2799,800,task_C +2800,801,task_C +2801,802,task_C +2802,803,task_C +2803,804,task_C +2804,805,task_C +2805,806,task_C +2806,807,task_C +2807,808,task_C +2808,809,task_C +2809,810,task_C +2810,811,task_C +2811,812,task_C +2812,813,task_C +2813,814,task_C +2814,815,task_C +2815,816,task_C +2816,817,task_C +2817,818,task_C +2818,819,task_C +2819,820,task_C +2820,821,task_C +2821,822,task_C +2822,823,task_C +2823,824,task_C +2824,825,task_C +2825,826,task_C +2826,827,task_C +2827,828,task_C +2828,829,task_C +2829,830,task_C +2830,831,task_C +2831,832,task_C +2832,833,task_C +2833,834,task_C +2834,835,task_C +2835,836,task_C +2836,837,task_C +2837,838,task_C +2838,839,task_C +2839,840,task_C +2840,841,task_C +2841,842,task_C +2842,843,task_C +2843,844,task_C +2844,845,task_C +2845,846,task_C +2846,847,task_C +2847,848,task_C +2848,849,task_C +2849,850,task_C +2850,851,task_C +2851,852,task_C +2852,853,task_C +2853,854,task_C +2854,855,task_C +2855,856,task_C +2856,857,task_C +2857,858,task_C +2858,859,task_C +2859,860,task_C +2860,861,task_C +2861,862,task_C +2862,863,task_C +2863,864,task_C +2864,865,task_C +2865,866,task_C +2866,867,task_C +2867,868,task_C +2868,869,task_C +2869,870,task_C +2870,871,task_C +2871,872,task_C +2872,873,task_C +2873,874,task_C +2874,875,task_C +2875,876,task_C +2876,877,task_C +2877,878,task_C +2878,879,task_C +2879,880,task_C +2880,881,task_C +2881,882,task_C +2882,883,task_C +2883,884,task_C +2884,885,task_C +2885,886,task_C +2886,887,task_C +2887,888,task_C +2888,889,task_C +2889,890,task_C +2890,891,task_C +2891,892,task_C +2892,893,task_C +2893,894,task_C +2894,895,task_C +2895,896,task_C +2896,897,task_C +2897,898,task_C +2898,899,task_C +2899,900,task_C +2900,901,task_C +2901,902,task_C +2902,903,task_C +2903,904,task_C +2904,905,task_C +2905,906,task_C +2906,907,task_C +2907,908,task_C +2908,909,task_C +2909,910,task_C +2910,911,task_C +2911,912,task_C +2912,913,task_C +2913,914,task_C +2914,915,task_C +2915,916,task_C +2916,917,task_C +2917,918,task_C +2918,919,task_C +2919,920,task_C +2920,921,task_C +2921,922,task_C +2922,923,task_C +2923,924,task_C +2924,925,task_C +2925,926,task_C +2926,927,task_C +2927,928,task_C +2928,929,task_C +2929,930,task_C +2930,931,task_C +2931,932,task_C +2932,933,task_C +2933,934,task_C +2934,935,task_C +2935,936,task_C +2936,937,task_C +2937,938,task_C +2938,939,task_C +2939,940,task_C +2940,941,task_C +2941,942,task_C +2942,943,task_C +2943,944,task_C +2944,945,task_C +2945,946,task_C +2946,947,task_C +2947,948,task_C +2948,949,task_C +2949,950,task_C +2950,951,task_C +2951,952,task_C +2952,953,task_C +2953,954,task_C +2954,955,task_C +2955,956,task_C +2956,957,task_C +2957,958,task_C +2958,959,task_C +2959,960,task_C +2960,961,task_C +2961,962,task_C +2962,963,task_C +2963,964,task_C +2964,965,task_C +2965,966,task_C +2966,967,task_C +2967,968,task_C +2968,969,task_C +2969,970,task_C +2970,971,task_C +2971,972,task_C +2972,973,task_C +2973,974,task_C +2974,975,task_C +2975,976,task_C +2976,977,task_C +2977,978,task_C +2978,979,task_C +2979,980,task_C +2980,981,task_C +2981,982,task_C +2982,983,task_C +2983,984,task_C +2984,985,task_C +2985,986,task_C +2986,987,task_C +2987,988,task_C +2988,989,task_C +2989,990,task_C +2990,991,task_C +2991,992,task_C +2992,993,task_C +2993,994,task_C +2994,995,task_C +2995,996,task_C +2996,997,task_C +2997,998,task_C +2998,999,task_C +2999,1000,task_C +3000,1,task_D +3001,2,task_D +3002,3,task_D +3003,4,task_D +3004,5,task_D +3005,6,task_D +3006,7,task_D +3007,8,task_D +3008,9,task_D +3009,10,task_D +3010,11,task_D +3011,12,task_D +3012,13,task_D +3013,14,task_D +3014,15,task_D +3015,16,task_D +3016,17,task_D +3017,18,task_D +3018,19,task_D +3019,20,task_D +3020,21,task_D +3021,22,task_D +3022,23,task_D +3023,24,task_D +3024,25,task_D +3025,26,task_D +3026,27,task_D +3027,28,task_D +3028,29,task_D +3029,30,task_D +3030,31,task_D +3031,32,task_D +3032,33,task_D +3033,34,task_D +3034,35,task_D +3035,36,task_D +3036,37,task_D +3037,38,task_D +3038,39,task_D +3039,40,task_D +3040,41,task_D +3041,42,task_D +3042,43,task_D +3043,44,task_D +3044,45,task_D +3045,46,task_D +3046,47,task_D +3047,48,task_D +3048,49,task_D +3049,50,task_D +3050,51,task_D +3051,52,task_D +3052,53,task_D +3053,54,task_D +3054,55,task_D +3055,56,task_D +3056,57,task_D +3057,58,task_D +3058,59,task_D +3059,60,task_D +3060,61,task_D +3061,62,task_D +3062,63,task_D +3063,64,task_D +3064,65,task_D +3065,66,task_D +3066,67,task_D +3067,68,task_D +3068,69,task_D +3069,70,task_D +3070,71,task_D +3071,72,task_D +3072,73,task_D +3073,74,task_D +3074,75,task_D +3075,76,task_D +3076,77,task_D +3077,78,task_D +3078,79,task_D +3079,80,task_D +3080,81,task_D +3081,82,task_D +3082,83,task_D +3083,84,task_D +3084,85,task_D +3085,86,task_D +3086,87,task_D +3087,88,task_D +3088,89,task_D +3089,90,task_D +3090,91,task_D +3091,92,task_D +3092,93,task_D +3093,94,task_D +3094,95,task_D +3095,96,task_D +3096,97,task_D +3097,98,task_D +3098,99,task_D +3099,100,task_D +3100,101,task_D +3101,102,task_D +3102,103,task_D +3103,104,task_D +3104,105,task_D +3105,106,task_D +3106,107,task_D +3107,108,task_D +3108,109,task_D +3109,110,task_D +3110,111,task_D +3111,112,task_D +3112,113,task_D +3113,114,task_D +3114,115,task_D +3115,116,task_D +3116,117,task_D +3117,118,task_D +3118,119,task_D +3119,120,task_D +3120,121,task_D +3121,122,task_D +3122,123,task_D +3123,124,task_D +3124,125,task_D +3125,126,task_D +3126,127,task_D +3127,128,task_D +3128,129,task_D +3129,130,task_D +3130,131,task_D +3131,132,task_D +3132,133,task_D +3133,134,task_D +3134,135,task_D +3135,136,task_D +3136,137,task_D +3137,138,task_D +3138,139,task_D +3139,140,task_D +3140,141,task_D +3141,142,task_D +3142,143,task_D +3143,144,task_D +3144,145,task_D +3145,146,task_D +3146,147,task_D +3147,148,task_D +3148,149,task_D +3149,150,task_D +3150,151,task_D +3151,152,task_D +3152,153,task_D +3153,154,task_D +3154,155,task_D +3155,156,task_D +3156,157,task_D +3157,158,task_D +3158,159,task_D +3159,160,task_D +3160,161,task_D +3161,162,task_D +3162,163,task_D +3163,164,task_D +3164,165,task_D +3165,166,task_D +3166,167,task_D +3167,168,task_D +3168,169,task_D +3169,170,task_D +3170,171,task_D +3171,172,task_D +3172,173,task_D +3173,174,task_D +3174,175,task_D +3175,176,task_D +3176,177,task_D +3177,178,task_D +3178,179,task_D +3179,180,task_D +3180,181,task_D +3181,182,task_D +3182,183,task_D +3183,184,task_D +3184,185,task_D +3185,186,task_D +3186,187,task_D +3187,188,task_D +3188,189,task_D +3189,190,task_D +3190,191,task_D +3191,192,task_D +3192,193,task_D +3193,194,task_D +3194,195,task_D +3195,196,task_D +3196,197,task_D +3197,198,task_D +3198,199,task_D +3199,200,task_D +3200,201,task_D +3201,202,task_D +3202,203,task_D +3203,204,task_D +3204,205,task_D +3205,206,task_D +3206,207,task_D +3207,208,task_D +3208,209,task_D +3209,210,task_D +3210,211,task_D +3211,212,task_D +3212,213,task_D +3213,214,task_D +3214,215,task_D +3215,216,task_D +3216,217,task_D +3217,218,task_D +3218,219,task_D +3219,220,task_D +3220,221,task_D +3221,222,task_D +3222,223,task_D +3223,224,task_D +3224,225,task_D +3225,226,task_D +3226,227,task_D +3227,228,task_D +3228,229,task_D +3229,230,task_D +3230,231,task_D +3231,232,task_D +3232,233,task_D +3233,234,task_D +3234,235,task_D +3235,236,task_D +3236,237,task_D +3237,238,task_D +3238,239,task_D +3239,240,task_D +3240,241,task_D +3241,242,task_D +3242,243,task_D +3243,244,task_D +3244,245,task_D +3245,246,task_D +3246,247,task_D +3247,248,task_D +3248,249,task_D +3249,250,task_D +3250,251,task_D +3251,252,task_D +3252,253,task_D +3253,254,task_D +3254,255,task_D +3255,256,task_D +3256,257,task_D +3257,258,task_D +3258,259,task_D +3259,260,task_D +3260,261,task_D +3261,262,task_D +3262,263,task_D +3263,264,task_D +3264,265,task_D +3265,266,task_D +3266,267,task_D +3267,268,task_D +3268,269,task_D +3269,270,task_D +3270,271,task_D +3271,272,task_D +3272,273,task_D +3273,274,task_D +3274,275,task_D +3275,276,task_D +3276,277,task_D +3277,278,task_D +3278,279,task_D +3279,280,task_D +3280,281,task_D +3281,282,task_D +3282,283,task_D +3283,284,task_D +3284,285,task_D +3285,286,task_D +3286,287,task_D +3287,288,task_D +3288,289,task_D +3289,290,task_D +3290,291,task_D +3291,292,task_D +3292,293,task_D +3293,294,task_D +3294,295,task_D +3295,296,task_D +3296,297,task_D +3297,298,task_D +3298,299,task_D +3299,300,task_D +3300,301,task_D +3301,302,task_D +3302,303,task_D +3303,304,task_D +3304,305,task_D +3305,306,task_D +3306,307,task_D +3307,308,task_D +3308,309,task_D +3309,310,task_D +3310,311,task_D +3311,312,task_D +3312,313,task_D +3313,314,task_D +3314,315,task_D +3315,316,task_D +3316,317,task_D +3317,318,task_D +3318,319,task_D +3319,320,task_D +3320,321,task_D +3321,322,task_D +3322,323,task_D +3323,324,task_D +3324,325,task_D +3325,326,task_D +3326,327,task_D +3327,328,task_D +3328,329,task_D +3329,330,task_D +3330,331,task_D +3331,332,task_D +3332,333,task_D +3333,334,task_D +3334,335,task_D +3335,336,task_D +3336,337,task_D +3337,338,task_D +3338,339,task_D +3339,340,task_D +3340,341,task_D +3341,342,task_D +3342,343,task_D +3343,344,task_D +3344,345,task_D +3345,346,task_D +3346,347,task_D +3347,348,task_D +3348,349,task_D +3349,350,task_D +3350,351,task_D +3351,352,task_D +3352,353,task_D +3353,354,task_D +3354,355,task_D +3355,356,task_D +3356,357,task_D +3357,358,task_D +3358,359,task_D +3359,360,task_D +3360,361,task_D +3361,362,task_D +3362,363,task_D +3363,364,task_D +3364,365,task_D +3365,366,task_D +3366,367,task_D +3367,368,task_D +3368,369,task_D +3369,370,task_D +3370,371,task_D +3371,372,task_D +3372,373,task_D +3373,374,task_D +3374,375,task_D +3375,376,task_D +3376,377,task_D +3377,378,task_D +3378,379,task_D +3379,380,task_D +3380,381,task_D +3381,382,task_D +3382,383,task_D +3383,384,task_D +3384,385,task_D +3385,386,task_D +3386,387,task_D +3387,388,task_D +3388,389,task_D +3389,390,task_D +3390,391,task_D +3391,392,task_D +3392,393,task_D +3393,394,task_D +3394,395,task_D +3395,396,task_D +3396,397,task_D +3397,398,task_D +3398,399,task_D +3399,400,task_D +3400,401,task_D +3401,402,task_D +3402,403,task_D +3403,404,task_D +3404,405,task_D +3405,406,task_D +3406,407,task_D +3407,408,task_D +3408,409,task_D +3409,410,task_D +3410,411,task_D +3411,412,task_D +3412,413,task_D +3413,414,task_D +3414,415,task_D +3415,416,task_D +3416,417,task_D +3417,418,task_D +3418,419,task_D +3419,420,task_D +3420,421,task_D +3421,422,task_D +3422,423,task_D +3423,424,task_D +3424,425,task_D +3425,426,task_D +3426,427,task_D +3427,428,task_D +3428,429,task_D +3429,430,task_D +3430,431,task_D +3431,432,task_D +3432,433,task_D +3433,434,task_D +3434,435,task_D +3435,436,task_D +3436,437,task_D +3437,438,task_D +3438,439,task_D +3439,440,task_D +3440,441,task_D +3441,442,task_D +3442,443,task_D +3443,444,task_D +3444,445,task_D +3445,446,task_D +3446,447,task_D +3447,448,task_D +3448,449,task_D +3449,450,task_D +3450,451,task_D +3451,452,task_D +3452,453,task_D +3453,454,task_D +3454,455,task_D +3455,456,task_D +3456,457,task_D +3457,458,task_D +3458,459,task_D +3459,460,task_D +3460,461,task_D +3461,462,task_D +3462,463,task_D +3463,464,task_D +3464,465,task_D +3465,466,task_D +3466,467,task_D +3467,468,task_D +3468,469,task_D +3469,470,task_D +3470,471,task_D +3471,472,task_D +3472,473,task_D +3473,474,task_D +3474,475,task_D +3475,476,task_D +3476,477,task_D +3477,478,task_D +3478,479,task_D +3479,480,task_D +3480,481,task_D +3481,482,task_D +3482,483,task_D +3483,484,task_D +3484,485,task_D +3485,486,task_D +3486,487,task_D +3487,488,task_D +3488,489,task_D +3489,490,task_D +3490,491,task_D +3491,492,task_D +3492,493,task_D +3493,494,task_D +3494,495,task_D +3495,496,task_D +3496,497,task_D +3497,498,task_D +3498,499,task_D +3499,500,task_D +3500,501,task_D +3501,502,task_D +3502,503,task_D +3503,504,task_D +3504,505,task_D +3505,506,task_D +3506,507,task_D +3507,508,task_D +3508,509,task_D +3509,510,task_D +3510,511,task_D +3511,512,task_D +3512,513,task_D +3513,514,task_D +3514,515,task_D +3515,516,task_D +3516,517,task_D +3517,518,task_D +3518,519,task_D +3519,520,task_D +3520,521,task_D +3521,522,task_D +3522,523,task_D +3523,524,task_D +3524,525,task_D +3525,526,task_D +3526,527,task_D +3527,528,task_D +3528,529,task_D +3529,530,task_D +3530,531,task_D +3531,532,task_D +3532,533,task_D +3533,534,task_D +3534,535,task_D +3535,536,task_D +3536,537,task_D +3537,538,task_D +3538,539,task_D +3539,540,task_D +3540,541,task_D +3541,542,task_D +3542,543,task_D +3543,544,task_D +3544,545,task_D +3545,546,task_D +3546,547,task_D +3547,548,task_D +3548,549,task_D +3549,550,task_D +3550,551,task_D +3551,552,task_D +3552,553,task_D +3553,554,task_D +3554,555,task_D +3555,556,task_D +3556,557,task_D +3557,558,task_D +3558,559,task_D +3559,560,task_D +3560,561,task_D +3561,562,task_D +3562,563,task_D +3563,564,task_D +3564,565,task_D +3565,566,task_D +3566,567,task_D +3567,568,task_D +3568,569,task_D +3569,570,task_D +3570,571,task_D +3571,572,task_D +3572,573,task_D +3573,574,task_D +3574,575,task_D +3575,576,task_D +3576,577,task_D +3577,578,task_D +3578,579,task_D +3579,580,task_D +3580,581,task_D +3581,582,task_D +3582,583,task_D +3583,584,task_D +3584,585,task_D +3585,586,task_D +3586,587,task_D +3587,588,task_D +3588,589,task_D +3589,590,task_D +3590,591,task_D +3591,592,task_D +3592,593,task_D +3593,594,task_D +3594,595,task_D +3595,596,task_D +3596,597,task_D +3597,598,task_D +3598,599,task_D +3599,600,task_D +3600,601,task_D +3601,602,task_D +3602,603,task_D +3603,604,task_D +3604,605,task_D +3605,606,task_D +3606,607,task_D +3607,608,task_D +3608,609,task_D +3609,610,task_D +3610,611,task_D +3611,612,task_D +3612,613,task_D +3613,614,task_D +3614,615,task_D +3615,616,task_D +3616,617,task_D +3617,618,task_D +3618,619,task_D +3619,620,task_D +3620,621,task_D +3621,622,task_D +3622,623,task_D +3623,624,task_D +3624,625,task_D +3625,626,task_D +3626,627,task_D +3627,628,task_D +3628,629,task_D +3629,630,task_D +3630,631,task_D +3631,632,task_D +3632,633,task_D +3633,634,task_D +3634,635,task_D +3635,636,task_D +3636,637,task_D +3637,638,task_D +3638,639,task_D +3639,640,task_D +3640,641,task_D +3641,642,task_D +3642,643,task_D +3643,644,task_D +3644,645,task_D +3645,646,task_D +3646,647,task_D +3647,648,task_D +3648,649,task_D +3649,650,task_D +3650,651,task_D +3651,652,task_D +3652,653,task_D +3653,654,task_D +3654,655,task_D +3655,656,task_D +3656,657,task_D +3657,658,task_D +3658,659,task_D +3659,660,task_D +3660,661,task_D +3661,662,task_D +3662,663,task_D +3663,664,task_D +3664,665,task_D +3665,666,task_D +3666,667,task_D +3667,668,task_D +3668,669,task_D +3669,670,task_D +3670,671,task_D +3671,672,task_D +3672,673,task_D +3673,674,task_D +3674,675,task_D +3675,676,task_D +3676,677,task_D +3677,678,task_D +3678,679,task_D +3679,680,task_D +3680,681,task_D +3681,682,task_D +3682,683,task_D +3683,684,task_D +3684,685,task_D +3685,686,task_D +3686,687,task_D +3687,688,task_D +3688,689,task_D +3689,690,task_D +3690,691,task_D +3691,692,task_D +3692,693,task_D +3693,694,task_D +3694,695,task_D +3695,696,task_D +3696,697,task_D +3697,698,task_D +3698,699,task_D +3699,700,task_D +3700,701,task_D +3701,702,task_D +3702,703,task_D +3703,704,task_D +3704,705,task_D +3705,706,task_D +3706,707,task_D +3707,708,task_D +3708,709,task_D +3709,710,task_D +3710,711,task_D +3711,712,task_D +3712,713,task_D +3713,714,task_D +3714,715,task_D +3715,716,task_D +3716,717,task_D +3717,718,task_D +3718,719,task_D +3719,720,task_D +3720,721,task_D +3721,722,task_D +3722,723,task_D +3723,724,task_D +3724,725,task_D +3725,726,task_D +3726,727,task_D +3727,728,task_D +3728,729,task_D +3729,730,task_D +3730,731,task_D +3731,732,task_D +3732,733,task_D +3733,734,task_D +3734,735,task_D +3735,736,task_D +3736,737,task_D +3737,738,task_D +3738,739,task_D +3739,740,task_D +3740,741,task_D +3741,742,task_D +3742,743,task_D +3743,744,task_D +3744,745,task_D +3745,746,task_D +3746,747,task_D +3747,748,task_D +3748,749,task_D +3749,750,task_D +3750,751,task_D +3751,752,task_D +3752,753,task_D +3753,754,task_D +3754,755,task_D +3755,756,task_D +3756,757,task_D +3757,758,task_D +3758,759,task_D +3759,760,task_D +3760,761,task_D +3761,762,task_D +3762,763,task_D +3763,764,task_D +3764,765,task_D +3765,766,task_D +3766,767,task_D +3767,768,task_D +3768,769,task_D +3769,770,task_D +3770,771,task_D +3771,772,task_D +3772,773,task_D +3773,774,task_D +3774,775,task_D +3775,776,task_D +3776,777,task_D +3777,778,task_D +3778,779,task_D +3779,780,task_D +3780,781,task_D +3781,782,task_D +3782,783,task_D +3783,784,task_D +3784,785,task_D +3785,786,task_D +3786,787,task_D +3787,788,task_D +3788,789,task_D +3789,790,task_D +3790,791,task_D +3791,792,task_D +3792,793,task_D +3793,794,task_D +3794,795,task_D +3795,796,task_D +3796,797,task_D +3797,798,task_D +3798,799,task_D +3799,800,task_D +3800,801,task_D +3801,802,task_D +3802,803,task_D +3803,804,task_D +3804,805,task_D +3805,806,task_D +3806,807,task_D +3807,808,task_D +3808,809,task_D +3809,810,task_D +3810,811,task_D +3811,812,task_D +3812,813,task_D +3813,814,task_D +3814,815,task_D +3815,816,task_D +3816,817,task_D +3817,818,task_D +3818,819,task_D +3819,820,task_D +3820,821,task_D +3821,822,task_D +3822,823,task_D +3823,824,task_D +3824,825,task_D +3825,826,task_D +3826,827,task_D +3827,828,task_D +3828,829,task_D +3829,830,task_D +3830,831,task_D +3831,832,task_D +3832,833,task_D +3833,834,task_D +3834,835,task_D +3835,836,task_D +3836,837,task_D +3837,838,task_D +3838,839,task_D +3839,840,task_D +3840,841,task_D +3841,842,task_D +3842,843,task_D +3843,844,task_D +3844,845,task_D +3845,846,task_D +3846,847,task_D +3847,848,task_D +3848,849,task_D +3849,850,task_D +3850,851,task_D +3851,852,task_D +3852,853,task_D +3853,854,task_D +3854,855,task_D +3855,856,task_D +3856,857,task_D +3857,858,task_D +3858,859,task_D +3859,860,task_D +3860,861,task_D +3861,862,task_D +3862,863,task_D +3863,864,task_D +3864,865,task_D +3865,866,task_D +3866,867,task_D +3867,868,task_D +3868,869,task_D +3869,870,task_D +3870,871,task_D +3871,872,task_D +3872,873,task_D +3873,874,task_D +3874,875,task_D +3875,876,task_D +3876,877,task_D +3877,878,task_D +3878,879,task_D +3879,880,task_D +3880,881,task_D +3881,882,task_D +3882,883,task_D +3883,884,task_D +3884,885,task_D +3885,886,task_D +3886,887,task_D +3887,888,task_D +3888,889,task_D +3889,890,task_D +3890,891,task_D +3891,892,task_D +3892,893,task_D +3893,894,task_D +3894,895,task_D +3895,896,task_D +3896,897,task_D +3897,898,task_D +3898,899,task_D +3899,900,task_D +3900,901,task_D +3901,902,task_D +3902,903,task_D +3903,904,task_D +3904,905,task_D +3905,906,task_D +3906,907,task_D +3907,908,task_D +3908,909,task_D +3909,910,task_D +3910,911,task_D +3911,912,task_D +3912,913,task_D +3913,914,task_D +3914,915,task_D +3915,916,task_D +3916,917,task_D +3917,918,task_D +3918,919,task_D +3919,920,task_D +3920,921,task_D +3921,922,task_D +3922,923,task_D +3923,924,task_D +3924,925,task_D +3925,926,task_D +3926,927,task_D +3927,928,task_D +3928,929,task_D +3929,930,task_D +3930,931,task_D +3931,932,task_D +3932,933,task_D +3933,934,task_D +3934,935,task_D +3935,936,task_D +3936,937,task_D +3937,938,task_D +3938,939,task_D +3939,940,task_D +3940,941,task_D +3941,942,task_D +3942,943,task_D +3943,944,task_D +3944,945,task_D +3945,946,task_D +3946,947,task_D +3947,948,task_D +3948,949,task_D +3949,950,task_D +3950,951,task_D +3951,952,task_D +3952,953,task_D +3953,954,task_D +3954,955,task_D +3955,956,task_D +3956,957,task_D +3957,958,task_D +3958,959,task_D +3959,960,task_D +3960,961,task_D +3961,962,task_D +3962,963,task_D +3963,964,task_D +3964,965,task_D +3965,966,task_D +3966,967,task_D +3967,968,task_D +3968,969,task_D +3969,970,task_D +3970,971,task_D +3971,972,task_D +3972,973,task_D +3973,974,task_D +3974,975,task_D +3975,976,task_D +3976,977,task_D +3977,978,task_D +3978,979,task_D +3979,980,task_D +3980,981,task_D +3981,982,task_D +3982,983,task_D +3983,984,task_D +3984,985,task_D +3985,986,task_D +3986,987,task_D +3987,988,task_D +3988,989,task_D +3989,990,task_D +3990,991,task_D +3991,992,task_D +3992,993,task_D +3993,994,task_D +3994,995,task_D +3995,996,task_D +3996,997,task_D +3997,998,task_D +3998,999,task_D +3999,1000,task_D diff --git a/studies/cddm_data_generation/exp_cddm_output.csv b/studies/cddm_data_generation/exp_cddm_output.csv new file mode 100644 index 0000000..333334f --- /dev/null +++ b/studies/cddm_data_generation/exp_cddm_output.csv @@ -0,0 +1,4001 @@ +,progress +0, +1,finished +2,finished +3,finished +4,finished +5,finished +6,finished +7,finished +8,finished +9,finished +10,finished +11,finished +12,finished +13,finished +14,finished +15,finished +16,finished +17,finished +18,finished +19,finished +20,finished +21,finished +22,finished +23,finished +24,finished +25,finished +26,finished +27,finished +28,finished +29,finished +30,finished +31,finished +32,finished +33,finished +34,finished +35,finished +36,finished +37,finished +38,finished +39,finished +40,finished +41,finished +42,finished +43,finished +44,finished +45,finished +46,finished +47,finished +48,finished +49,finished +50,finished +51,finished +52,finished +53,finished +54,finished +55,finished +56,finished +57,finished +58,finished +59,finished +60,finished +61,finished +62,finished +63,finished +64,finished +65,finished +66,finished +67,finished +68,finished +69,finished +70,finished +71,finished +72,finished +73,finished +74,finished +75,finished +76,finished +77,finished +78,finished +79,finished +80,finished +81,finished +82,finished +83,finished +84,finished +85,finished +86,finished +87,finished +88,finished +89,finished +90,finished +91,finished +92,finished +93,finished +94,finished +95,finished +96,finished +97,finished +98,finished +99,finished +100,finished +101,finished +102,finished +103,finished +104,finished +105,finished +106,finished +107,finished +108,finished +109,finished +110,finished +111,finished +112,finished +113,finished +114,finished +115,finished +116,finished +117,finished +118,finished +119,finished +120,finished +121,finished +122,finished +123,finished +124,finished +125,finished +126,finished +127,finished +128,finished +129,finished +130,finished +131,finished +132,finished +133,finished +134,finished +135,finished +136,finished +137,finished +138,finished +139,finished +140,finished +141,finished +142,finished +143,finished +144,finished +145,finished +146,finished +147,finished +148,finished +149,finished +150,finished +151,finished +152,finished +153,finished +154,finished +155,finished +156,finished +157,finished +158,finished +159,finished +160,finished +161,finished +162,finished +163,finished +164,finished +165,finished +166,finished +167,finished +168,finished +169,finished +170,finished +171,finished +172,finished +173,finished +174,finished +175,finished +176,finished +177,finished +178,finished +179,finished +180,finished +181,finished +182,finished +183,finished +184,finished +185,finished +186,finished +187,finished +188,finished +189,finished +190,finished +191,finished +192,finished +193,finished +194,finished +195,finished +196,finished +197,finished +198,finished +199,finished +200,finished +201,finished +202,finished +203,finished +204,finished +205,finished +206,finished +207,finished +208,finished +209,finished +210,finished +211,finished +212,finished +213,finished +214,finished +215,finished +216,finished +217,finished +218,finished +219,finished +220,finished +221,finished +222,finished +223,finished +224,finished +225,finished +226,finished +227,finished +228,finished +229,finished +230,finished +231,finished +232,finished +233,finished +234,finished +235,finished +236,finished +237,finished +238,finished +239,finished +240,finished +241,finished +242,finished +243,finished +244,finished +245,finished +246,finished +247,finished +248,finished +249,finished +250,finished +251,finished +252,finished +253,finished +254,finished +255,finished +256,finished +257,finished +258,finished +259,finished +260,finished +261,finished +262,finished +263,finished +264,finished +265,finished +266,finished +267,finished +268,finished +269,finished +270,finished +271,finished +272,finished +273,finished +274,finished +275,finished +276,finished +277,finished +278,finished +279,finished +280,finished +281,finished +282,finished +283,finished +284,finished +285,finished +286,finished +287,finished +288,finished +289,finished +290,finished +291,finished +292,finished +293,finished +294,finished +295,finished +296,finished +297,finished +298,finished +299,finished +300,finished +301,finished +302,finished +303,finished +304,finished +305,finished +306,finished +307,finished +308,finished +309,finished +310,finished +311,finished +312,finished +313,finished +314,finished +315,finished +316,finished +317,finished +318,finished +319,finished +320,finished +321,finished +322,finished +323,finished +324,finished +325,finished +326,finished +327,finished +328,finished +329,finished +330,finished +331,finished +332,finished +333,finished +334,finished +335,finished +336,finished +337,finished +338,finished +339,finished +340,finished +341,finished +342,finished +343,finished +344,finished +345,finished +346,finished +347,finished +348,finished +349,finished +350,finished +351,finished +352,finished +353,finished +354,finished +355,finished +356,finished +357,finished +358,finished +359,finished +360,finished +361,finished +362,finished +363,finished +364,finished +365,finished +366,finished +367,finished +368,finished +369,finished +370,finished +371,finished +372,finished +373,finished +374,finished +375,finished +376,finished +377,finished +378,finished +379,finished +380,finished +381,finished +382,finished +383,finished +384,finished +385,finished +386,finished +387,finished +388,finished +389,finished +390,finished +391,finished +392,finished +393,finished +394,finished +395,finished +396,finished +397,finished +398,finished +399,finished +400,finished +401,finished +402,finished +403,finished +404,finished +405,finished +406,finished +407,finished +408,finished +409,finished +410,finished +411,finished +412,finished +413,finished +414,finished +415,finished +416,finished +417,finished +418,finished +419,finished +420,finished +421,finished +422,finished +423,finished +424,finished +425,finished +426,finished +427,finished +428,finished +429,finished +430,finished +431,finished +432,finished +433,finished +434,finished +435,finished +436,finished +437,finished +438,finished +439,finished +440,finished +441,finished +442,finished +443,finished +444,finished +445,finished +446,finished +447,finished +448,finished +449,finished +450,finished +451,finished +452,finished +453,finished +454,finished +455,finished +456,finished +457,finished +458,finished +459,finished +460,finished +461,finished +462,finished +463,finished +464,finished +465,finished +466,finished +467,finished +468,finished +469,finished +470,finished +471,finished +472,finished +473,finished +474,finished +475,finished +476,finished +477,finished +478,finished +479,finished +480,finished +481,finished +482,finished +483,finished +484,finished +485,finished +486,finished +487,finished +488,finished +489,finished +490,finished +491,finished +492,finished +493,finished +494,finished +495,finished +496,finished +497,finished +498,finished +499,finished +500,finished +501,finished +502,finished +503,finished +504,finished +505,finished +506,finished +507,finished +508,finished +509,finished +510,finished +511,finished +512,finished +513,finished +514,finished +515,finished +516,finished +517,finished +518,finished +519,finished +520,finished +521,finished +522,finished +523,finished +524,finished +525,finished +526,finished +527,finished +528,finished +529,finished +530,finished +531,finished +532,finished +533,finished +534,finished +535,finished +536,finished +537,finished +538,finished +539,finished +540,finished +541,finished +542,finished +543,finished +544,finished +545,finished +546,finished +547,finished +548,finished +549,finished +550,finished +551,finished +552,finished +553,finished +554,finished +555,finished +556,finished +557,finished +558,finished +559,finished +560,finished +561,finished +562,finished +563,finished +564,finished +565,finished +566,finished +567,finished +568,finished +569,finished +570,finished +571,finished +572,finished +573,finished +574,finished +575,finished +576,finished +577,finished +578,finished +579,finished +580,finished +581,finished +582,finished +583,finished +584,finished +585,finished +586,finished +587,finished +588,finished +589,finished +590,finished +591,finished +592,finished +593,finished +594,finished +595,finished +596,finished +597,finished +598,finished +599,finished +600,finished +601,finished +602,finished +603,finished +604,finished +605,finished +606,finished +607,finished +608,finished +609,finished +610,finished +611,finished +612,finished +613,finished +614,finished +615,finished +616,finished +617,finished +618,finished +619,finished +620,finished +621,finished +622,finished +623,finished +624,finished +625,finished +626,finished +627,finished +628,finished +629,finished +630,finished +631,finished +632,finished +633,finished +634,finished +635,finished +636,finished +637,finished +638,finished +639,finished +640,finished +641,finished +642,finished +643,finished +644,finished +645,finished +646,finished +647,finished +648,finished +649,finished +650,finished +651,finished +652,finished +653,finished +654,finished +655,finished +656,finished +657,finished +658,finished +659,finished +660,finished +661,finished +662,finished +663,finished +664,finished +665,finished +666,finished +667,finished +668,finished +669,finished +670,finished +671,finished +672,finished +673,finished +674,finished +675,finished +676,finished +677,finished +678,finished +679,finished +680,finished +681,finished +682,finished +683,finished +684,finished +685,finished +686,finished +687,finished +688,finished +689,finished +690,finished +691,finished +692,finished +693,finished +694,finished +695,finished +696,finished +697,finished +698,finished +699,finished +700,finished +701,finished +702,finished +703,finished +704,finished +705,finished +706,finished +707,finished +708,finished +709,finished +710,finished +711,finished +712,finished +713,finished +714,finished +715,finished +716,finished +717,finished +718,finished +719,finished +720,finished +721,finished +722,finished +723,finished +724,finished +725,finished +726,finished +727,finished +728,finished +729,finished +730,finished +731,finished +732,finished +733,finished +734,finished +735,finished +736,finished +737,finished +738,finished +739,finished +740,finished +741,finished +742,finished +743,finished +744,finished +745,finished +746,finished +747,finished +748,finished +749,finished +750,finished +751,finished +752,finished +753,finished +754,finished +755,finished +756,finished +757,finished +758,finished +759,finished +760,finished +761,finished +762,finished +763,finished +764,finished +765,finished +766,finished +767,finished +768,finished +769,finished +770,finished +771,finished +772,finished +773,finished +774,finished +775,finished +776,finished +777,finished +778,finished +779,finished +780,finished +781,finished +782,finished +783,finished +784,finished +785,finished +786,finished +787,finished +788,finished +789,finished +790,finished +791,finished +792,finished +793,finished +794,finished +795,finished +796,finished +797,finished +798,finished +799,finished +800,finished +801,finished +802,finished +803,finished +804,finished +805,finished +806,finished +807,finished +808,finished +809,finished +810,finished +811,finished +812,finished +813,finished +814,finished +815,finished +816,finished +817,finished +818,finished +819,finished +820,finished +821,finished +822,finished +823,finished +824,finished +825,finished +826,finished +827,finished +828,finished +829,finished +830,finished +831,finished +832,finished +833,finished +834,finished +835,finished +836,finished +837,finished +838,finished +839,finished +840,finished +841,finished +842,finished +843,finished +844,finished +845,finished +846,finished +847,finished +848,finished +849,finished +850,finished +851,finished +852,finished +853,finished +854,finished +855,finished +856,finished +857,finished +858,finished +859,finished +860,finished +861,finished +862,finished +863,finished +864,finished +865,finished +866,finished +867,finished +868,finished +869,finished +870,finished +871,finished +872,finished +873,finished +874,finished +875,finished +876,finished +877,finished +878,finished +879,finished +880,finished +881,finished +882,finished +883,finished +884,finished +885,finished +886,finished +887,finished +888,finished +889,finished +890,finished +891,finished +892,finished +893,finished +894,finished +895,finished +896,finished +897,finished +898,finished +899,finished +900,finished +901,finished +902,finished +903,finished +904,finished +905,finished +906,finished +907,finished +908,finished +909,finished +910,finished +911,finished +912,finished +913,finished +914,finished +915,finished +916,finished +917,finished +918,finished +919,finished +920,finished +921,finished +922,finished +923,finished +924,finished +925,finished +926,finished +927,finished +928,finished +929,finished +930,finished +931,finished +932,finished +933,finished +934,finished +935,finished +936,finished +937,finished +938,finished +939,finished +940,finished +941,finished +942,finished +943,finished +944,finished +945,finished +946,finished +947,finished +948,finished +949,finished +950,finished +951,finished +952,finished +953,finished +954,finished +955,finished +956,finished +957,finished +958,finished +959,finished +960,finished +961,finished +962,finished +963,finished +964,finished +965,finished +966,finished +967,finished +968,finished +969,finished +970,finished +971,finished +972,finished +973,finished +974,finished +975,finished +976,finished +977,finished +978,finished +979,finished +980,finished +981,finished +982,finished +983,finished +984,finished +985,finished +986,finished +987,finished +988,finished +989,finished +990,finished +991,finished +992,finished +993,finished +994,finished +995,finished +996,finished +997,finished +998,finished +999,finished +1000,finished +1001,finished +1002,finished +1003,finished +1004,finished +1005,finished +1006,finished +1007,finished +1008,finished +1009,finished +1010,finished +1011,finished +1012,finished +1013,finished +1014,finished +1015,finished +1016,finished +1017,finished +1018,finished +1019,finished +1020,finished +1021,finished +1022,finished +1023,finished +1024,finished +1025,finished +1026,finished +1027,finished +1028,finished +1029,finished +1030,finished +1031,finished +1032,finished +1033,finished +1034,finished +1035,finished +1036,finished +1037,finished +1038,finished +1039,finished +1040,finished +1041,finished +1042,finished +1043,finished +1044,finished +1045,finished +1046,finished +1047,finished +1048,finished +1049,finished +1050,finished +1051,finished +1052,finished +1053,finished +1054,finished +1055,finished +1056,finished +1057,finished +1058,finished +1059,finished +1060,finished +1061,finished +1062,finished +1063,finished +1064,finished +1065,finished +1066,finished +1067,finished +1068,finished +1069,finished +1070,finished +1071,finished +1072,finished +1073,finished +1074,finished +1075,finished +1076,finished +1077,finished +1078,finished +1079,finished +1080,finished +1081,finished +1082,finished +1083,finished +1084,finished +1085,finished +1086,finished +1087,finished +1088,finished +1089,finished +1090,finished +1091,finished +1092,finished +1093,finished +1094,finished +1095,finished +1096,finished +1097,finished +1098,finished +1099,finished +1100,finished +1101,finished +1102,finished +1103,finished +1104,finished +1105,finished +1106,finished +1107,finished +1108,finished +1109,finished +1110,finished +1111,finished +1112,finished +1113,finished +1114,finished +1115,finished +1116,finished +1117,finished +1118,finished +1119,finished +1120,finished +1121,finished +1122,finished +1123,finished +1124,finished +1125,finished +1126,finished +1127,finished +1128,finished +1129,finished +1130,finished +1131,finished +1132,finished +1133,finished +1134,finished +1135,finished +1136,finished +1137,finished +1138,finished +1139,finished +1140,finished +1141,finished +1142,finished +1143,finished +1144,finished +1145,finished +1146,finished +1147,finished +1148,finished +1149,finished +1150,finished +1151,finished +1152,finished +1153,finished +1154,finished +1155,finished +1156,finished +1157,finished +1158,finished +1159,finished +1160,finished +1161,finished +1162,finished +1163,finished +1164,finished +1165,finished +1166,finished +1167,finished +1168,finished +1169,finished +1170,finished +1171,finished +1172,finished +1173,finished +1174,finished +1175,finished +1176,finished +1177,finished +1178,finished +1179,finished +1180,finished +1181,finished +1182,finished +1183,finished +1184,finished +1185,finished +1186,finished +1187,finished +1188,finished +1189,finished +1190,finished +1191,finished +1192,finished +1193,finished +1194,finished +1195,finished +1196,finished +1197,finished +1198,finished +1199,finished +1200,finished +1201,finished +1202,finished +1203,finished +1204,finished +1205,finished +1206,finished +1207,finished +1208,finished +1209,finished +1210,finished +1211,finished +1212,finished +1213,finished +1214,finished +1215,finished +1216,finished +1217,finished +1218,finished +1219,finished +1220,finished +1221,finished +1222,finished +1223,finished +1224,finished +1225,finished +1226,finished +1227,finished +1228,finished +1229,finished +1230,finished +1231,finished +1232,finished +1233,finished +1234,finished +1235,finished +1236,finished +1237,finished +1238,finished +1239,finished +1240,finished +1241,finished +1242,finished +1243,finished +1244,finished +1245,finished +1246,finished +1247,finished +1248,finished +1249,finished +1250,finished +1251,finished +1252,finished +1253,finished +1254,finished +1255,finished +1256,finished +1257,finished +1258,finished +1259,finished +1260,finished +1261,finished +1262,finished +1263,finished +1264,finished +1265,finished +1266,finished +1267,finished +1268,finished +1269,finished +1270,finished +1271,finished +1272,finished +1273,finished +1274,finished +1275,finished +1276,finished +1277,finished +1278,finished +1279,finished +1280,finished +1281,finished +1282,finished +1283,finished +1284,finished +1285,finished +1286,finished +1287,finished +1288,finished +1289,finished +1290,finished +1291,finished +1292,finished +1293,finished +1294,finished +1295,finished +1296,finished +1297,finished +1298,finished +1299,finished +1300,finished +1301,finished +1302,finished +1303,finished +1304,finished +1305,finished +1306,finished +1307,finished +1308,finished +1309,finished +1310,finished +1311,finished +1312,finished +1313,finished +1314,finished +1315,finished +1316,finished +1317,finished +1318,finished +1319,finished +1320,finished +1321,finished +1322,finished +1323,finished +1324,finished +1325,finished +1326,finished +1327,finished +1328,finished +1329,finished +1330,finished +1331,finished +1332,finished +1333,finished +1334,finished +1335,finished +1336,finished +1337,finished +1338,finished +1339,finished +1340,finished +1341,finished +1342,finished +1343,finished +1344,finished +1345,finished +1346,finished +1347,finished +1348,finished +1349,finished +1350,finished +1351,finished +1352,finished +1353,finished +1354,finished +1355,finished +1356,finished +1357,finished +1358,finished +1359,finished +1360,finished +1361,finished +1362,finished +1363,finished +1364,finished +1365,finished +1366,finished +1367,finished +1368,finished +1369,finished +1370,finished +1371,finished +1372,finished +1373,finished +1374,finished +1375,finished +1376,finished +1377,finished +1378,finished +1379,finished +1380,finished +1381,finished +1382,finished +1383,finished +1384,finished +1385,finished +1386,finished +1387,finished +1388,finished +1389,finished +1390,finished +1391,finished +1392,finished +1393,finished +1394,finished +1395,finished +1396,finished +1397,finished +1398,finished +1399,finished +1400,finished +1401,finished +1402,finished +1403,finished +1404,finished +1405,finished +1406,finished +1407,finished +1408,finished +1409,finished +1410,finished +1411,finished +1412,finished +1413,finished +1414,finished +1415,finished +1416,finished +1417,finished +1418,finished +1419,finished +1420,finished +1421,finished +1422,finished +1423,finished +1424,finished +1425,finished +1426,finished +1427,finished +1428,finished +1429,finished +1430,finished +1431,finished +1432,finished +1433,finished +1434, +1435, +1436, +1437,finished +1438, +1439, +1440, +1441, +1442, +1443, +1444, +1445, +1446, +1447, +1448, +1449, +1450, +1451, +1452, +1453, +1454, +1455, +1456, +1457, +1458, +1459, +1460, +1461, +1462, +1463, +1464, +1465, +1466, +1467, +1468, +1469, +1470, +1471, +1472, +1473, +1474, +1475, +1476, +1477, +1478, +1479, +1480, +1481, +1482, +1483, +1484, +1485, +1486, +1487, +1488, +1489, +1490, +1491, +1492, +1493, +1494, +1495, +1496, +1497, +1498, +1499, +1500, +1501, +1502, +1503, +1504, +1505, +1506, +1507, +1508, +1509, +1510, +1511, +1512, +1513, +1514, +1515, +1516, +1517, +1518, +1519, +1520, +1521, +1522, +1523, +1524, +1525, +1526, +1527, +1528, +1529, +1530, +1531, +1532, +1533, +1534, +1535, +1536, +1537, +1538, +1539, +1540, +1541, +1542, +1543, +1544, +1545, +1546, +1547, +1548, +1549, +1550, +1551, +1552, +1553, +1554, +1555, +1556, +1557, +1558, +1559, +1560, +1561, +1562, +1563, +1564, +1565, +1566, +1567, +1568, +1569, +1570, +1571, +1572, +1573, +1574, +1575, +1576, +1577, +1578, +1579, +1580, +1581, +1582, +1583, +1584, +1585, +1586, +1587, +1588, +1589, +1590, +1591, +1592, +1593, +1594, +1595, +1596, +1597, +1598, +1599, +1600, +1601, +1602, +1603, +1604, +1605, +1606, +1607, +1608, +1609, +1610, +1611, +1612, +1613, +1614, +1615, +1616, +1617, +1618, +1619, +1620, +1621, +1622, +1623, +1624, +1625, +1626, +1627, +1628, +1629, +1630, +1631, +1632, +1633, +1634, +1635, +1636, +1637, +1638, +1639, +1640, +1641, +1642, +1643, +1644, +1645, +1646, +1647, +1648, +1649, +1650, +1651, +1652, +1653, +1654, +1655, +1656, +1657, +1658, +1659, +1660, +1661, +1662, +1663, +1664, +1665, +1666, +1667, +1668, +1669, +1670, +1671, +1672, +1673, +1674, +1675, +1676, +1677, +1678, +1679, +1680, +1681, +1682, +1683, +1684, +1685, +1686, +1687, +1688, +1689, +1690, +1691, +1692, +1693, +1694, +1695, +1696, +1697, +1698, +1699, +1700, +1701, +1702, +1703, +1704, +1705, +1706, +1707, +1708, +1709, +1710, +1711, +1712, +1713, +1714, +1715, +1716, +1717, +1718, +1719, +1720, +1721, +1722, +1723, +1724, +1725, +1726, +1727, +1728, +1729, +1730, +1731, +1732, +1733, +1734, +1735, +1736, +1737, +1738, +1739, +1740, +1741, +1742, +1743, +1744, +1745, +1746, +1747, +1748, +1749, +1750, +1751, +1752, +1753, +1754, +1755, +1756, +1757, +1758, +1759, +1760, +1761, +1762, +1763, +1764, +1765, +1766, +1767, +1768, +1769, +1770, +1771, +1772, +1773, +1774, +1775, +1776, +1777, +1778, +1779, +1780, +1781, +1782, +1783, +1784, +1785, +1786, +1787, +1788, +1789, +1790, +1791, +1792, +1793, +1794, +1795, +1796, +1797, +1798, +1799, +1800, +1801, +1802, +1803, +1804, +1805, +1806, +1807, +1808, +1809, +1810, +1811, +1812, +1813, +1814, +1815, +1816, +1817, +1818, +1819, +1820, +1821, +1822, +1823, +1824, +1825, +1826, +1827, +1828, +1829, +1830, +1831, +1832, +1833, +1834, +1835, +1836, +1837, +1838, +1839, +1840, +1841, +1842, +1843, +1844, +1845, +1846, +1847, +1848, +1849, +1850, +1851, +1852, +1853, +1854, +1855, +1856, +1857, +1858, +1859, +1860, +1861, +1862, +1863, +1864, +1865, +1866, +1867, +1868, +1869, +1870, +1871, +1872, +1873, +1874, +1875, +1876, +1877, +1878, +1879, +1880, +1881, +1882, +1883, +1884, +1885, +1886, +1887, +1888, +1889, +1890, +1891, +1892, +1893, +1894, +1895, +1896, +1897, +1898, +1899, +1900, +1901, +1902, +1903, +1904, +1905, +1906, +1907, +1908, +1909, +1910, +1911, +1912, +1913, +1914, +1915, +1916, +1917, +1918, +1919, +1920, +1921, +1922, +1923, +1924, +1925, +1926, +1927, +1928, +1929, +1930, +1931, +1932, +1933, +1934, +1935, +1936, +1937, +1938, +1939, +1940, +1941, +1942, +1943, +1944, +1945, +1946, +1947, +1948, +1949, +1950, +1951, +1952, +1953, +1954, +1955, +1956, +1957, +1958, +1959, +1960, +1961, +1962, +1963, +1964, +1965, +1966, +1967, +1968, +1969, +1970, +1971, +1972, +1973, +1974, +1975, +1976, +1977, +1978, +1979, +1980, +1981, +1982, +1983, +1984, +1985, +1986, +1987, +1988, +1989, +1990, +1991, +1992, +1993, +1994, +1995, +1996, +1997, +1998, +1999, +2000, +2001, +2002, +2003, +2004, +2005, +2006, +2007, +2008, +2009, +2010, +2011, +2012, +2013, +2014, +2015, +2016, +2017, +2018, +2019, +2020, +2021, +2022, +2023, +2024, +2025, +2026, +2027, +2028, +2029, +2030, +2031, +2032, +2033, +2034, +2035, +2036, +2037, +2038, +2039, +2040, +2041, +2042, +2043, +2044, +2045, +2046, +2047, +2048, +2049, +2050, +2051, +2052, +2053, +2054, +2055, +2056, +2057, +2058, +2059, +2060, +2061, +2062, +2063, +2064, +2065, +2066, +2067, +2068, +2069, +2070, +2071, +2072, +2073, +2074, +2075, +2076, +2077, +2078, +2079, +2080, +2081, +2082, +2083, +2084, +2085, +2086, +2087, +2088, +2089, +2090, +2091, +2092, +2093, +2094, +2095, +2096, +2097, +2098, +2099, +2100, +2101, +2102, +2103, +2104, +2105, +2106, +2107, +2108, +2109, +2110, +2111, +2112, +2113, +2114, +2115, +2116, +2117, +2118, +2119, +2120, +2121, +2122, +2123, +2124, +2125, +2126, +2127, +2128, +2129, +2130, +2131, +2132, +2133, +2134, +2135, +2136, +2137, +2138, +2139, +2140, +2141, +2142, +2143, +2144, +2145, +2146, +2147, +2148, +2149, +2150, +2151, +2152, +2153, +2154, +2155, +2156, +2157, +2158, +2159, +2160, +2161, +2162, +2163, +2164, +2165, +2166, +2167, +2168, +2169, +2170, +2171, +2172, +2173, +2174, +2175, +2176, +2177, +2178, +2179, +2180, +2181, +2182, +2183, +2184, +2185, +2186, +2187, +2188, +2189, +2190, +2191, +2192, +2193, +2194, +2195, +2196, +2197, +2198, +2199, +2200, +2201, +2202, +2203, +2204, +2205, +2206, +2207, +2208, +2209, +2210, +2211, +2212, +2213, +2214, +2215, +2216, +2217, +2218, +2219, +2220, +2221, +2222, +2223, +2224, +2225, +2226, +2227, +2228, +2229, +2230, +2231, +2232, +2233, +2234, +2235, +2236, +2237, +2238, +2239, +2240, +2241, +2242, +2243, +2244, +2245, +2246, +2247, +2248, +2249, +2250, +2251, +2252, +2253, +2254, +2255, +2256, +2257, +2258, +2259, +2260, +2261, +2262, +2263, +2264, +2265, +2266, +2267, +2268, +2269, +2270, +2271, +2272, +2273, +2274, +2275, +2276, +2277, +2278, +2279, +2280, +2281, +2282, +2283, +2284, +2285, +2286, +2287, +2288, +2289, +2290, +2291, +2292, +2293, +2294, +2295, +2296, +2297, +2298, +2299, +2300, +2301, +2302, +2303, +2304, +2305, +2306, +2307, +2308, +2309, +2310, +2311, +2312, +2313, +2314, +2315, +2316, +2317, +2318, +2319, +2320, +2321, +2322, +2323, +2324, +2325, +2326, +2327, +2328, +2329, +2330, +2331, +2332, +2333, +2334, +2335, +2336, +2337, +2338, +2339, +2340, +2341, +2342, +2343, +2344, +2345, +2346, +2347, +2348, +2349, +2350, +2351, +2352, +2353, +2354, +2355, +2356, +2357, +2358, +2359, +2360, +2361, +2362, +2363, +2364, +2365, +2366, +2367, +2368, +2369, +2370, +2371, +2372, +2373, +2374, +2375, +2376, +2377, +2378, +2379, +2380, +2381, +2382, +2383, +2384, +2385, +2386, +2387, +2388, +2389, +2390, +2391, +2392, +2393, +2394, +2395, +2396, +2397, +2398, +2399, +2400, +2401, +2402, +2403, +2404, +2405, +2406, +2407, +2408, +2409, +2410, +2411, +2412, +2413, +2414, +2415, +2416, +2417, +2418, +2419, +2420, +2421, +2422, +2423, +2424, +2425, +2426, +2427, +2428, +2429, +2430, +2431, +2432, +2433, +2434, +2435, +2436, +2437, +2438, +2439, +2440, +2441, +2442, +2443, +2444, +2445, +2446, +2447, +2448, +2449, +2450, +2451, +2452, +2453, +2454, +2455, +2456, +2457, +2458, +2459, +2460, +2461, +2462, +2463, +2464, +2465, +2466, +2467, +2468, +2469, +2470, +2471, +2472, +2473, +2474, +2475, +2476, +2477, +2478, +2479, +2480, +2481, +2482, +2483, +2484, +2485, +2486, +2487, +2488, +2489, +2490, +2491, +2492, +2493, +2494, +2495, +2496, +2497, +2498, +2499, +2500, +2501, +2502, +2503, +2504, +2505, +2506, +2507, +2508, +2509, +2510, +2511, +2512, +2513, +2514, +2515, +2516, +2517, +2518, +2519, +2520, +2521, +2522, +2523, +2524, +2525, +2526, +2527, +2528, +2529, +2530, +2531, +2532, +2533, +2534, +2535, +2536, +2537, +2538, +2539, +2540, +2541, +2542, +2543, +2544, +2545, +2546, +2547, +2548, +2549, +2550, +2551, +2552, +2553, +2554, +2555, +2556, +2557, +2558, +2559, +2560, +2561, +2562, +2563, +2564, +2565, +2566, +2567, +2568, +2569, +2570, +2571, +2572, +2573, +2574, +2575, +2576, +2577, +2578, +2579, +2580, +2581, +2582, +2583, +2584, +2585, +2586, +2587, +2588, +2589, +2590, +2591, +2592, +2593, +2594, +2595, +2596, +2597, +2598, +2599, +2600, +2601, +2602, +2603, +2604, +2605, +2606, +2607, +2608, +2609, +2610, +2611, +2612, +2613, +2614, +2615, +2616, +2617, +2618, +2619, +2620, +2621, +2622, +2623, +2624, +2625, +2626, +2627, +2628, +2629, +2630, +2631, +2632, +2633, +2634, +2635, +2636, +2637, +2638, +2639, +2640, +2641, +2642, +2643, +2644, +2645, +2646, +2647, +2648, +2649, +2650, +2651, +2652, +2653, +2654, +2655, +2656, +2657, +2658, +2659, +2660, +2661, +2662, +2663, +2664, +2665, +2666, +2667, +2668, +2669, +2670, +2671, +2672, +2673, +2674, +2675, +2676, +2677, +2678, +2679, +2680, +2681, +2682, +2683, +2684, +2685, +2686, +2687, +2688, +2689, +2690, +2691, +2692, +2693, +2694, +2695, +2696, +2697, +2698, +2699, +2700, +2701, +2702, +2703, +2704, +2705, +2706, +2707, +2708, +2709, +2710, +2711, +2712, +2713, +2714, +2715, +2716, +2717, +2718, +2719, +2720, +2721, +2722, +2723, +2724, +2725, +2726, +2727, +2728, +2729, +2730, +2731, +2732, +2733, +2734, +2735, +2736, +2737, +2738, +2739, +2740, +2741, +2742, +2743, +2744, +2745, +2746, +2747, +2748, +2749, +2750, +2751, +2752, +2753, +2754, +2755, +2756, +2757, +2758, +2759, +2760, +2761, +2762, +2763, +2764, +2765, +2766, +2767, +2768, +2769, +2770, +2771, +2772, +2773, +2774, +2775, +2776, +2777, +2778, +2779, +2780, +2781, +2782, +2783, +2784, +2785, +2786, +2787, +2788, +2789, +2790, +2791, +2792, +2793, +2794, +2795, +2796, +2797, +2798, +2799, +2800, +2801, +2802, +2803, +2804, +2805, +2806, +2807, +2808, +2809, +2810, +2811, +2812, +2813, +2814, +2815, +2816, +2817, +2818, +2819, +2820, +2821, +2822, +2823, +2824, +2825, +2826, +2827, +2828, +2829, +2830, +2831, +2832, +2833, +2834, +2835, +2836, +2837, +2838, +2839, +2840, +2841, +2842, +2843, +2844, +2845, +2846, +2847, +2848, +2849, +2850, +2851, +2852, +2853, +2854, +2855, +2856, +2857, +2858, +2859, +2860, +2861, +2862, +2863, +2864, +2865, +2866, +2867, +2868, +2869, +2870, +2871, +2872, +2873, +2874, +2875, +2876, +2877, +2878, +2879, +2880, +2881, +2882, +2883, +2884, +2885, +2886, +2887, +2888, +2889, +2890, +2891, +2892, +2893, +2894, +2895, +2896, +2897, +2898, +2899, +2900, +2901, +2902, +2903, +2904, +2905, +2906, +2907, +2908, +2909, +2910, +2911, +2912, +2913, +2914, +2915, +2916, +2917, +2918, +2919, +2920, +2921, +2922, +2923, +2924, +2925, +2926, +2927, +2928, +2929, +2930, +2931, +2932, +2933, +2934, +2935, +2936, +2937, +2938, +2939, +2940, +2941, +2942, +2943, +2944, +2945, +2946, +2947, +2948, +2949, +2950, +2951, +2952, +2953, +2954, +2955, +2956, +2957, +2958, +2959, +2960, +2961, +2962, +2963, +2964, +2965, +2966, +2967, +2968, +2969, +2970, +2971, +2972, +2973, +2974, +2975, +2976, +2977, +2978, +2979, +2980, +2981, +2982, +2983, +2984, +2985, +2986, +2987, +2988, +2989, +2990, +2991, +2992, +2993, +2994, +2995, +2996, +2997, +2998, +2999, +3000, +3001, +3002, +3003, +3004, +3005, +3006, +3007, +3008, +3009, +3010, +3011, +3012, +3013, +3014, +3015, +3016, +3017, +3018, +3019, +3020, +3021, +3022, +3023, +3024, +3025, +3026, +3027, +3028, +3029, +3030, +3031, +3032, +3033, +3034, +3035, +3036, +3037, +3038, +3039, +3040, +3041, +3042, +3043, +3044, +3045, +3046, +3047, +3048, +3049, +3050, +3051, +3052, +3053, +3054, +3055, +3056, +3057, +3058, +3059, +3060, +3061, +3062, +3063, +3064, +3065, +3066, +3067, +3068, +3069, +3070, +3071, +3072, +3073, +3074, +3075, +3076, +3077, +3078, +3079, +3080, +3081, +3082, +3083, +3084, +3085, +3086, +3087, +3088, +3089, +3090, +3091, +3092, +3093, +3094, +3095, +3096, +3097, +3098, +3099, +3100, +3101, +3102, +3103, +3104, +3105, +3106, +3107, +3108, +3109, +3110, +3111, +3112, +3113, +3114, +3115, +3116, +3117, +3118, +3119, +3120, +3121, +3122, +3123, +3124, +3125, +3126, +3127, +3128, +3129, +3130, +3131, +3132, +3133, +3134, +3135, +3136, +3137, +3138, +3139, +3140, +3141, +3142, +3143, +3144, +3145, +3146, +3147, +3148, +3149, +3150, +3151, +3152, +3153, +3154, +3155, +3156, +3157, +3158, +3159, +3160, +3161, +3162, +3163, +3164, +3165, +3166, +3167, +3168, +3169, +3170, +3171, +3172, +3173, +3174, +3175, +3176, +3177, +3178, +3179, +3180, +3181, +3182, +3183, +3184, +3185, +3186, +3187, +3188, +3189, +3190, +3191, +3192, +3193, +3194, +3195, +3196, +3197, +3198, +3199, +3200, +3201, +3202, +3203, +3204, +3205, +3206, +3207, +3208, +3209, +3210, +3211, +3212, +3213, +3214, +3215, +3216, +3217, +3218, +3219, +3220, +3221, +3222, +3223, +3224, +3225, +3226, +3227, +3228, +3229, +3230, +3231, +3232, +3233, +3234, +3235, +3236, +3237, +3238, +3239, +3240, +3241, +3242, +3243, +3244, +3245, +3246, +3247, +3248, +3249, +3250, +3251, +3252, +3253, +3254, +3255, +3256, +3257, +3258, +3259, +3260, +3261, +3262, +3263, +3264, +3265, +3266, +3267, +3268, +3269, +3270, +3271, +3272, +3273, +3274, +3275, +3276, +3277, +3278, +3279, +3280, +3281, +3282, +3283, +3284, +3285, +3286, +3287, +3288, +3289, +3290, +3291, +3292, +3293, +3294, +3295, +3296, +3297, +3298, +3299, +3300, +3301, +3302, +3303, +3304, +3305, +3306, +3307, +3308, +3309, +3310, +3311, +3312, +3313, +3314, +3315, +3316, +3317, +3318, +3319, +3320, +3321, +3322, +3323, +3324, +3325, +3326, +3327, +3328, +3329, +3330, +3331, +3332, +3333, +3334, +3335, +3336, +3337, +3338, +3339, +3340, +3341, +3342, +3343, +3344, +3345, +3346, +3347, +3348, +3349, +3350, +3351, +3352, +3353, +3354, +3355, +3356, +3357, +3358, +3359, +3360, +3361, +3362, +3363, +3364, +3365, +3366, +3367, +3368, +3369, +3370, +3371, +3372, +3373, +3374, +3375, +3376, +3377, +3378, +3379, +3380, +3381, +3382, +3383, +3384, +3385, +3386, +3387, +3388, +3389, +3390, +3391, +3392, +3393, +3394, +3395, +3396, +3397, +3398, +3399, +3400, +3401, +3402, +3403, +3404, +3405, +3406, +3407, +3408, +3409, +3410, +3411, +3412, +3413, +3414, +3415, +3416, +3417, +3418, +3419, +3420, +3421, +3422, +3423, +3424, +3425, +3426, +3427, +3428, +3429, +3430, +3431, +3432, +3433, +3434, +3435, +3436, +3437, +3438, +3439, +3440, +3441, +3442, +3443, +3444, +3445, +3446, +3447, +3448, +3449, +3450, +3451, +3452, +3453, +3454, +3455, +3456, +3457, +3458, +3459, +3460, +3461, +3462, +3463, +3464, +3465, +3466, +3467, +3468, +3469, +3470, +3471, +3472, +3473, +3474, +3475, +3476, +3477, +3478, +3479, +3480, +3481, +3482, +3483, +3484, +3485, +3486, +3487, +3488, +3489, +3490, +3491, +3492, +3493, +3494, +3495, +3496, +3497, +3498, +3499, +3500, +3501, +3502, +3503, +3504, +3505, +3506, +3507, +3508, +3509, +3510, +3511, +3512, +3513, +3514, +3515, +3516, +3517, +3518, +3519, +3520, +3521, +3522, +3523, +3524, +3525, +3526, +3527, +3528, +3529, +3530, +3531, +3532, +3533, +3534, +3535, +3536, +3537, +3538, +3539, +3540, +3541, +3542, +3543, +3544, +3545, +3546, +3547, +3548, +3549, +3550, +3551, +3552, +3553, +3554, +3555, +3556, +3557, +3558, +3559, +3560, +3561, +3562, +3563, +3564, +3565, +3566, +3567, +3568, +3569, +3570, +3571, +3572, +3573, +3574, +3575, +3576, +3577, +3578, +3579, +3580, +3581, +3582, +3583, +3584, +3585, +3586, +3587, +3588, +3589, +3590, +3591, +3592, +3593, +3594, +3595, +3596, +3597, +3598, +3599, +3600, +3601, +3602, +3603, +3604, +3605, +3606, +3607, +3608, +3609, +3610, +3611, +3612, +3613, +3614, +3615, +3616, +3617, +3618, +3619, +3620, +3621, +3622, +3623, +3624, +3625, +3626, +3627, +3628, +3629, +3630, +3631, +3632, +3633, +3634, +3635, +3636, +3637, +3638, +3639, +3640, +3641, +3642, +3643, +3644, +3645, +3646, +3647, +3648, +3649, +3650, +3651, +3652, +3653, +3654, +3655, +3656, +3657, +3658, +3659, +3660, +3661, +3662, +3663, +3664, +3665, +3666, +3667, +3668, +3669, +3670, +3671, +3672, +3673, +3674, +3675, +3676, +3677, +3678, +3679, +3680, +3681, +3682, +3683, +3684, +3685, +3686, +3687, +3688, +3689, +3690, +3691, +3692, +3693, +3694, +3695, +3696, +3697, +3698, +3699, +3700, +3701, +3702, +3703, +3704, +3705, +3706, +3707, +3708, +3709, +3710, +3711, +3712, +3713, +3714, +3715, +3716, +3717, +3718, +3719, +3720, +3721, +3722, +3723, +3724, +3725, +3726, +3727, +3728, +3729, +3730, +3731, +3732, +3733, +3734, +3735, +3736, +3737, +3738, +3739, +3740, +3741, +3742, +3743, +3744, +3745, +3746, +3747, +3748, +3749, +3750, +3751, +3752, +3753, +3754, +3755, +3756, +3757, +3758, +3759, +3760, +3761, +3762, +3763, +3764, +3765, +3766, +3767, +3768, +3769, +3770, +3771, +3772, +3773, +3774, +3775, +3776, +3777, +3778, +3779, +3780, +3781, +3782, +3783, +3784, +3785, +3786, +3787, +3788, +3789, +3790, +3791, +3792, +3793, +3794, +3795, +3796, +3797, +3798, +3799, +3800, +3801, +3802, +3803, +3804, +3805, +3806, +3807, +3808, +3809, +3810, +3811, +3812, +3813, +3814, +3815, +3816, +3817, +3818, +3819, +3820, +3821, +3822, +3823, +3824, +3825, +3826, +3827, +3828, +3829, +3830, +3831, +3832, +3833, +3834, +3835, +3836, +3837, +3838, +3839, +3840, +3841, +3842, +3843, +3844, +3845, +3846, +3847, +3848, +3849, +3850, +3851, +3852, +3853, +3854, +3855, +3856, +3857, +3858, +3859, +3860, +3861, +3862, +3863, +3864, +3865, +3866, +3867, +3868, +3869, +3870, +3871, +3872, +3873, +3874, +3875, +3876, +3877, +3878, +3879, +3880, +3881, +3882, +3883, +3884, +3885, +3886, +3887, +3888, +3889, +3890, +3891, +3892, +3893, +3894, +3895, +3896, +3897, +3898, +3899, +3900, +3901, +3902, +3903, +3904, +3905, +3906, +3907, +3908, +3909, +3910, +3911, +3912, +3913, +3914, +3915, +3916, +3917, +3918, +3919, +3920, +3921, +3922, +3923, +3924, +3925, +3926, +3927, +3928, +3929, +3930, +3931, +3932, +3933, +3934, +3935, +3936, +3937, +3938, +3939, +3940, +3941, +3942, +3943, +3944, +3945, +3946, +3947, +3948, +3949, +3950, +3951, +3952, +3953, +3954, +3955, +3956, +3957, +3958, +3959, +3960, +3961, +3962, +3963, +3964, +3965, +3966, +3967, +3968, +3969, +3970, +3971, +3972, +3973, +3974, +3975, +3976, +3977, +3978, +3979, +3980, +3981, +3982, +3983, +3984, +3985, +3986, +3987, +3988, +3989, +3990, +3991, +3992, +3993, +3994, +3995, +3996,finished +3997,finished +3998,finished +3999,finished diff --git a/studies/cddm_data_generation/main.py b/studies/cddm_data_generation/main.py new file mode 100644 index 0000000..112bf37 --- /dev/null +++ b/studies/cddm_data_generation/main.py @@ -0,0 +1,234 @@ +# Modules +# ============================================================================= +# standard library + +from pathlib import Path +from time import sleep + +# third party +import f3dasm +import pandas as pd +from f3dasm import (CategoricalParameter, DiscreteParameter, Domain, + ExperimentData, ExperimentSample) +from f3dasm.datageneration import DataGenerator + +from rvesimulator.additions.ampitudesampler import AmplitudeGenerator +# local functionalities +from rvesimulator.additions.hardening_law import (LinearHardeningLaw, + RambergHardeningLaw, + SwiftHardeningLaw) +from rvesimulator.benchmarks.cddm_rve import CDDM_RVE + +# define the hardening law +swift_law = SwiftHardeningLaw(a=0.5, b=0.5, yield_stress=0.5) +# Authorship & Credits +# ============================================================================= +__author__ = 'Jiaxiang Yi' +__credits__ = ['Jiaxiang Yi'] +__status__ = 'Development' +# ============================================================================= + +class CDDMDataGenerator(DataGenerator): + """ + + Parameters + ---------- + DataGenerator : DataGenerator + data generator class from f3dasm + """ + def execute(data: ExperimentSample) -> ExperimentSample: + + + """execute simulation for CDDM data generator + + Parameters + ---------- + data : ExperimentSample + experimental data sample from f3dasm + + Returns + ------- + ExperimentSample + experimetal data with updated output data + """ + # get one row of the experimental sample + sample = data.experiment_sample + # print job number to the screen + print(sample.job_number) + # get input parameters + task_ID = sample.input_data['task_ID'] + # seed for generating amplitude curves + seed = sample.input_data['seed'] + + # initialize the ASCA RVE + simulator = CDDMDataGenerator().initialize_simulator(task_ID=task_ID) + + # obtain amplitude curves + path_sampler = AmplitudeGenerator(num_dim=3) + paths = path_sampler.get_amplitude( + num_amplitude=1, + num_control=8, + num_steps=100, + arg_name="strain_amplitude", + seed=seed, + ) + samples_dict = paths.to_dict("records") + # add output parameters + try: + simulator.run_simulation(sample=samples_dict[0], + folder_index=sample.job_number) + # get the output data + sample.output_data['progress'] = "finished" + + except Exception: + # if the job failed, then we set the progress to be failed + sample.output_data['progress'] = "failed" + + return data + + def initialize_simulator(self, task_ID: int) -> None: + + if task_ID == "task_A": + return self._config_simulator_of_task_A() + elif task_ID == "task_B": + return self._config_simulator_of_task_B() + elif task_ID == "task_C": + return self._config_simulator_of_task_C() + elif task_ID == "task_D": + return self._config_simulator_of_task_D() + else: + raise ValueError("task ID is not defined") + + def _config_simulator_of_task_A(self) -> None: + + # initialize CDDM RVE simulator + simulator = CDDM_RVE() + # update simulation parameters + simulator.update_sim_info( + mesh_partition=100, + strain=[0.02, 0.02, 0.02], + vol_req=0.45, + radius_mu=0.01, + radius_std=0.003, + youngs_modulus_fiber=10, + youngs_modulus_matrix=100, + hardening_law=LinearHardeningLaw(a=0.5, yield_stress=0.5), + num_cpu=8, + platform="cluster", + seed=2, + print_info=False) + return simulator + + def _config_simulator_of_task_B(self) -> None: + # initialize CDDM RVE simulator + simulator = CDDM_RVE() + # update simulation parameters + simulator.update_sim_info( + mesh_partition=100, + strain=[0.02, 0.02, 0.02], + vol_req=0.30, + radius_mu=0.003, + radius_std=0.0, + youngs_modulus_fiber=1, + youngs_modulus_matrix=100, + hardening_law=SwiftHardeningLaw(a=0.5, b=0.4, yield_stress=0.5), + num_cpu=8, + platform="cluster", + seed=17, + print_info=False) + + return simulator + + def _config_simulator_of_task_C(self) -> None: + # initialize CDDM RVE simulator + simulator = CDDM_RVE() + # update simulation parameters + simulator.update_sim_info( + mesh_partition=100, + strain=[0.02, 0.02, 0.02], + vol_req=0.15, + radius_mu=0.0015, + radius_std=0.0003, + youngs_modulus_fiber=1000, + youngs_modulus_matrix=100, + hardening_law=RambergHardeningLaw(a=0.5, b=0.4, yield_stress=0.5), + num_cpu=8, + platform="cluster", + seed=23, + print_info=False) + + return simulator + + def _config_simulator_of_task_D(self) -> None: + # initialize CDDM RVE simulator + simulator = CDDM_RVE() + # update simulation parameters + simulator.update_sim_info( + mesh_partition=100, + strain=[0.02, 0.02, 0.02], + vol_req=0.30, + radius_mu=0.003, + radius_std=0.0, + youngs_modulus_fiber=10, + youngs_modulus_matrix=100, + hardening_law=SwiftHardeningLaw(a=0.5, b=0.4, yield_stress=0.5), + num_cpu=8, + platform="cluster", + seed=17, + print_info=False) + + return simulator + + + +def create_experimentdata() -> None: + """this function is used to create design of experiment for CDDM case, the + DOE contains two columns, one is the task ID number, the other is the seed + used for generating the amplitude curves.""" + + # TODO: read from file can not work properly from f3dasm + # get the working path + file_path = Path.cwd() + # joint the path + file_path = file_path.joinpath('design_of_experiments.csv') + # read csv file via pandas + samples = pd.read_csv(file_path, index_col=0, header=0) + # define a domain for the design of experiments + domain = Domain() + domain.add('task_ID', + CategoricalParameter(['task_A', 'task_B', 'task_C', 'task_D'])) + domain.add('seed', DiscreteParameter(lower_bound=1, upper_bound=1000)) + + # create experiment data + data = ExperimentData(domain=domain) + data.sample(sampler='random', n_samples=4000, seed=1) + + # fill input_data with correct values + data.input_data.data['task_ID'] = samples['task_ID'].values + data.input_data.data['seed'] = samples['seed'].values + # add output parameters + # data = f3dasm.ExperimentData.from_file(filename='exp_{}'.format('cddm')) + data.add_output_parameter('progress') + + # save data + data.store(filename='exp_{}'.format('cddm')) + +def execute_experimentdata() -> None: + + # load data from file + data = f3dasm.ExperimentData.from_file(filename='exp_{}'.format('cddm')) + # run the function + data.evaluate(CDDMDataGenerator(), mode='cluster') + data.store(filename='exp_{}'.format('cddm')) + + +if __name__ == '__main__': + # run the function + """ Main script distinguishes between the master and the workers.""" + print(f3dasm.HPC_JOBID) + if f3dasm.HPC_JOBID == 0: + create_experimentdata() + execute_experimentdata() + elif f3dasm.HPC_JOBID > 0: + sleep(f3dasm.HPC_JOBID) + execute_experimentdata() diff --git a/studies/cddm_data_generation/pbsjob.sh b/studies/cddm_data_generation/pbsjob.sh new file mode 100644 index 0000000..048509f --- /dev/null +++ b/studies/cddm_data_generation/pbsjob.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Torque directives (#PBS) must always be at the start of a job script! + +#PBS -N cddm +#PBS -q mse +#PBS -l nodes=1:ppn=8 +#PBS -o out.$PBS_JOBID +#PBS -e err.$PBS_JOBID +#PBS -M J.Yi@tudelft.nl + + +# Make sure I'm the only one that can read my output +umask 0077 + + +PBS_ARRAYID=$(echo "${PBS_JOBID}" | sed -n 's/.*\[\([^]]*\)\].*/\1/p') +echo "jobid $PBS_ARRAYID " +JOB_ID=$(echo "${PBS_JOBID}" | sed 's/\[[^][]*\]//g') +echo "Directory is $PBS_JOBID" + +module load use.own +module load miniconda3 +module load abaqus/2021 +cd $PBS_O_WORKDIR + +# Here is where the application is started on the node +# activating my conda environment: +source activate f3dasm_env + + + # limiting number of threads + OMP_NUM_THREADS=12 + export OMP_NUM_THREADS=12 + +if ! [ -n "${PBS_ARRAYID+1}" ]; then + PBS_ARRAYID=None +fi + +#Executing my python program +python main.py --jobid=${PBS_ARRAYID} \ No newline at end of file